Как я могу игнорировать акцентированные символы при сопоставлении строк в 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
")