0

エンドポイントで次の sparql クエリを実行したい:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?name WHERE{?person foaf:name ?name.FILTER regex(str(?name), "+ns+","i")}

私は Visual Studio の C# でコーディングしており、このクエリをエンドポイントに送信します。大文字と小文字を区別せずに結果をチェックする必要がありますが、この方法でクエリを記述すると、Visual Studio でエラーが発生します。どうすれば修正できますか?

4

1 に答える 1

2

更新(「i」が問題の場所であるという著者の説明に基づく):

" 記号が SPARQL クエリ文字列に含まれるように、適切にエスケープする必要があります。現在、[i] の前の ["] は、テキスト文字列の終わりを示しています。エラーメッセージが表示されるのも不思議ではありません。

MSDNを参照してください:ルールをエスケープするための文字列リテラル:

  • " \" としてエスケープするか、文字列を C# のそのままのリテラルにして "" としてエスケープします。

SPARQL の例を使用したクエリについては、DotNetRdf のドキュメントを確認してください。

SPARQL クエリを実行する方法 (DotNetRdf を使用) と変数値をクエリに挿入する方法 ("+ns+" と "i" を使用して何をしようとしているのか) の両方を示します。

また:

  • answer.semanticweb.comは、セマンティック Web / RDF / SPARQL に関する質問をするのに適した場所です。
  • 発生しているエラーについて説明してください (上記のコメントで Ren が尋ねたこと)
于 2013-04-11T19:16:25.027 に答える