sparql-正则表达式不';不区分大小写

sparql-正则表达式不';不区分大小写,sparql,Sparql,我正在使用C#中的SemWeb.Sparql.dll通过C#在Sparql中执行一些查询 我需要将一个给定的字符串变量与我的本体(rdfs:label)中的字符串进行比较,但是我需要这个不区分大小写的比较,所以我使用了regex函数。我使用了这个查询: disease = "'^" + disease + "'"; string query = prefixes + @" Select ?a ?name Where{ ?a ?c owl

我正在使用C#中的SemWeb.Sparql.dll通过C#在Sparql中执行一些查询 我需要将一个给定的字符串变量与我的本体(rdfs:label)中的字符串进行比较,但是我需要这个不区分大小写的比较,所以我使用了regex函数。我使用了这个查询:

disease = "'^" + disease + "'";
string query = prefixes + @"
               Select ?a ?name Where{
               ?a ?c owl:Class .
               ?a rdfs:label ?name.
               FILTER (Regex(?name," + @disease + ",'i'))}";

它在某些情况下正常工作,而在其他情况下则无法正常工作。有人能帮我吗。

您能尝试以下方法吗:

FILTER (regex(str(?name), ...

i、 e.将
名称
包装在
str()
中。这将确保第一个参数是字符串。

我使用了它,但结果是相同的。在某些情况下,它不太区分大小写。所以,当你说“某些情况”时,你是指“某些疾病不匹配”还是“对于给定的疾病,某些应该匹配的标签不匹配”?我的意思是:“对于给定的疾病,某些应该匹配的标签不匹配”你使用SemWeb有什么特别的原因吗?SemWeb在2010年停止了积极的开发,不支持任何较新的SPARQL 1.1标准。您是否考虑过dotNetRDF()作为替代方案?(免责声明-我开发此)