0

我在 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'))}";

在某些情况下可以正常工作,而在其他情况下则不能。任何人都可以帮助我。

4

1 回答 1

0

您可以尝试以下方法:

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

即包裹?namestr()这将确保第一个参数是一个字符串。

于 2012-05-25T14:33:43.757 回答