私はPythonプログラマーではありませんが、文字列フォーマット(%
演算子付き)を使用してSPARQLクエリに値を挿入しているようです。この場合、p
( "OSPF")の値が文字列に挿入され、%s
の代わりに使用されます。だから、これの結果は次のとおりです。
FOAF:price :OSPF .
OSPF
の前で:
は、デフォルトの接頭辞で、ここに接頭辞名を使用していることを意味します。
PREFIX : <http://something.com>
これはあなたのSPARQLクエリビーイングに挿入された最終的なURIにつながる:あなたは別のURLを使用する場合は
FOAF:price <http://something.comOSPF> .
は、あなたが変更する必要がデフォルトの接頭辞は次のようにあなたの名前空間宣言で定義されていますこれは代用されます。 1つの解決策は、完全なURIをp
の値として持つことです。その後、%s
から先頭のコロンを削除し、代わりに(それは完全なURIです示すために)角括弧で囲む必要があります。
p = "http://www.myurl.com/OSPF"
queryString = ("""
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX FOAF: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX : <http://something.com>
INSERT DATA {
: rdf:type FOAF:productdetails ;
FOAF:price <%s> .
}""")% p
別のオプションは、あなたのSPARQLクエリで別の名前空間宣言を導入し、中にそれを使用することですフロントは%s
です。例:
p = "OSPF"
queryString = ("""
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX FOAF: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX my: <http://www.myurl.com/>
PREFIX : <http://something.com>
INSERT DATA {
: rdf:type FOAF:productdetails ;
FOAF:price my:%s .
}""")% p
脇に:Sesame _Workbench_にプログラムでクエリを送信しないでください。 Workbenchは単なるクライアントUIです。代わりに実際のSesame Serverにクエリを送信してください。 –
@JeenBroekstraどうすればいいですか?それから終わりの点は何ですか? – Aravind
典型的には 'http:///openrdf-sesame/repositories/'のようなものです –