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 に答える