我在C#中使用SemWeb.Sparql.dll通过C#在sparql中执行一些查询 我需要将给定的字符串变量与我的本体中的字符串(rdfs:label)进行比较,但我需要这种比较不区分大小写,所以我使用了正则表达式函数。我使用了这个查询:
disease = "'^" + disease + "'";
string query = prefixes + @"
Select ?a ?name Where{
?a ?c owl:Class .
?a rdfs:label ?name.
FILTER (Regex(?name," + @disease + ",'i'))}";
在某些情况下可以正常工作,而在其他情况下则不然。任何人都可以帮助我。
答案 0 :(得分:0)
您可以尝试以下方法:
FILTER (regex(str(?name), ...
即。在?name
中换str()
。这将确保第一个参数是一个字符串。