我希望忽略大小写“ 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个匹配项
此行为的原因是什么,如何更改其行为以达到预期效果?
Linux(x86_64-unknown-linux-gnu),单服务器版上的Virtuoso版本07.20.3217
P.S .: 升级到07.20.3229后,问题仍然存在。
在现在具有相同版本的DBpedia上也会发生此问题:
select *
{
<http://dbpedia.org/resource/Persian_language> dbo:abstract ?l.
filter(regex(str(?l),"فارسی","i")).
}
答案 0 :(得分:0)
我在https://github.com/openlink/virtuoso-opensource/issues/705的Virtuoso GitHub存储库中发现了一个有关此问题的未解决问题,似乎正在调查中。
感谢所有评论者为调查提供帮助,并提供了很好的解决方法和替代方法。