2017-07-06 4 views
1

Je n'ai aucune idée de la façon de comparer différentes étiquettes sans tenir compte des accents.Comment puis-je ignorer les caractères accentués lorsque la chaîne correspond dans SPARQL

La requête suivante ne renvoie pas l'emplacement car "Ibáñez" a des accents dans DBpedia espagnol, mais il a des accents différents dans ma source de données.

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> 

SELECT DISTINCT ?iri 

WHERE { 

    ?iri rdfs:label ?label . 
    ?label bif:contains "'Blasco Ibañez'" . 

    ?iri ?location ?city . 
    FILTER (?location = <http://dbpedia.org/ontology/location> || <http://dbpedia.org/ontology/wikiPageWikiLink>) . 
    ?city bif:contains "valencia" 

} LIMIT 100 

Existe-t-il un moyen de ne pas tenir compte des accents?

+1

[Essayez cette requête] (https : //dbpedia.org/sparql? default-graph-uri = http% 3A% 2F% 2Fdbpedia.org & query = SELECT + DISTINCT +% 3Firi% 0D% 0AWHERE + {% 0D% 0A ++% 3Firi + rdfs% 3Alabel +% 3Flabel +.% 0D % 0A ++% 3Flabel ++ bif% 3Actient ++ "'' Blasco + Ibanez '" +.% 0D% 0A% 0D% 0A ++% 3Firi +% 3Flocation +% 3Fcity +.% 0D% 0A ++ FILTRE + (% 3Flocation +% 3D + + || ++ ) +.% 0D% 0A ++% 3Fcity + bif% 3Accepte + " lencia "+} + limite + 100). Voir aussi [cet article] (http://docs.openlinksw.com/virtuoso/virtuosotipsandtrickscontrolunicode3/). –

+0

Votre requête et ma requête sont les mêmes. Je ne peux pas trouver la différence entre les deux. Quoi qu'il en soit, la page de données DBpedia particulière que je veux est seulement dans la version spannish http://es.dbpedia.org/sparql –

+0

Sur dbpedia.org, votre requête ne retaille rien, ma requête renvoie 3 résultats. Sur es.dbpedia.org, [cette requête] (http://es.dbpedia.org/sparql?default-graph-uri=&query=SELECT+DISTINCT+%3Firi%0D%0A%0D%0AWHERE+ {% 0D% 0A % 0D% 0A ++% 3Firi + rdfs% 3Alabel +% 3Flabel +.% 0D% 0A ++% 3Flabel ++ bif% 3Contenu ++ "'Blasco + Ibáñez'" +.% 0D% 0A% 0D% 0A ++% 3Firi +% 3Flocation +% 3Fcity +.% 0D % 0A ++ FILTER + (% 3Flocation +% 3D + + || ++ ) +.% 0D % 0A ++% 3Fcity + bif% 3Contenu + "valencia" +% 0D% 0A} + limite + 100) renvoie 4 résultats –

Répondre

1

Le problème est le current configuration of the Spanish DBpedia endpoint. (Vous trouverez peut-être intéressant the query I used to check their configuration.)

Leur virtuoso.ini doit être ajusté pour inclure -

[I18N] 
XAnyNormalization=3 

- comme décrit dans le documentation of the INI file, et comme expliqué dans le article about "normalization of UNICODE3 accented chars in free-text index and queries", tel que cité dans les commentaires par @ StanislavKralin.

(note - que nous écrivons ces lignes, il y a une faute de frappe dans le document, la section sur "WideFileNames = 1/2/3/0" devrait le dire est de "XAnyNormalization = 1/2/3/0")