Я ожидаю, что флаг игнорирования регистра "i" только увеличит количество совпадений, но не уменьшит их, но следующий запрос SPARQL (конечная точка http://www.snik.eu/sparql) приведет к одному совпадению без флага, но не совпадет сэто:
select * { ?s rdfs:label ?l. filter(regex(str(?l),"قانون بیمارستان")) }
-> 1 совпадение
select * { ?s rdfs:label ?l. filter(regex(str(?l),"قانون بیمارستان","i")) }
-> нет совпадения
с неперсидскимбуквы работают как положено:
select count(*) { ?s rdfs:label ?l.filter(regex(str(?l),"Information"))
}
-> 319 совпадений
select count(*) { ?s rdfs:label ?l.filter(regex(str(?l),"Information","i"))
}
-> 363 совпадений
В чем причина такого поведения и как я могу изменить его поведение так, как ожидается?
Virtuoso версия 07.20.3217 для Linux (x86_64-unknown-linux-gnu), Single Server Edition
PS: проблема по-прежнему сохраняется после обновления до 07.20.3229.
Проблема также возникает в DBpedia, которая сейчас имеет ту же версию:
select *
{
<http://dbpedia.org/resource/Persian_language> dbo:abstract ?l.
filter(regex(str(?l),"فارسی","i")).
}