Как я могу игнорировать акцентированные символы при сопоставлении строк в SPARQL

Я понятия не имею, как сравнивать разные этикетки без учета акцентов.

Следующий запрос не возвращает место, потому что "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 ответ

Проблема заключается в текущей конфигурации конечной точки испанской DBpedia. (Вы можете найти интересный запрос, который я использовал для проверки их конфигурации.)

Их virtuoso.ini должны быть скорректированы, чтобы включить -

[I18N]
XAnyNormalization=3

- как описано в документации к файлу INI и как обсуждено далее в статье о "нормализации акцентированных символов UNICODE3 в свободном текстовом индексе и запросах", как цитируется в комментариях @StanislavKralin.

(Примечание: на момент написания статьи в документе была опечатка; раздел "WideFileNames = 1/2/3/0"должен сказать, что это о"XAnyNormalization = 1/2/3/0")

Другие вопросы по тегам