SPARQL 正则表达式不匹配带有 "i" 标志的波斯字符

SPARQL regex doesn't match Persian characters with the "i" flag

我希望忽略大小写 "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),单服务器版

P.S.: 升级到 07.20.3229 后问题仍然存在。

DBpedia上也出现了这个问题,现在有相同的版本:

select *
{
  <http://dbpedia.org/resource/Persian_language> dbo:abstract ?l.    
  filter(regex(str(?l),"فارسی","i")).
}

我在 https://github.com/openlink/virtuoso-opensource/issues/705 的 Virtuoso GitHub 存储库中发现了一个关于此问题的未解决问题,似乎正在调查中。

感谢所有评论者帮助调查并提供了很好的解决方法和替代方案。