在SPARQL中进行字符串匹配时,如何忽略重音字符

时间:2017-07-06 09:58:02

标签: unicode sparql dbpedia virtuoso accent-insensitive

我不知道如何在不考虑重音的情况下比较不同的标签。

下一个查询不返回该地点,因为“Ibáñez”在西班牙语DBpedia中有重音,但它在我的数据源中有不同的重音。

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

有没有办法不考虑口音?

1 个答案:

答案 0 :(得分:1)

问题是current configuration of the Spanish DBpedia endpoint。 (您可能会发现the query I used to check their configuration很有趣。)

必须调整他们的virtuoso.ini以包含 -

[I18N]
XAnyNormalization=3

- 如documentation of the INI file中所述,以及article about "normalization of UNICODE3 accented chars in free-text index and queries"中进一步讨论的内容,如@StanislavKralin的评论所述。

(注意 - 在撰写本文时,文档中出现了错字;关于&#34; WideFileNames = 1/2/3/0 &#34;的部分应该说关于&#34; XAnyNormalization = 1/2/3/0 &#34;)