7

ゴマトリプルストアからデータをフェッチするためのSELECTステートメントを使用したPythonSPARQLWrapperの使用法を説明する多くの例をウェブ上で確認しましたが、ゴマでそれを使用してINSERT / DELETE/UPDATEステートメントを実行する方法がわかりません。この点についてご案内いただけますでしょうか。

ありがとう

4

2 に答える 2

10

SPARQL クエリは GET リクエストとして送信されますが、UPDATE (INSERT、DELETE など) ではクエリを POST リクエストとして送信する必要があります。sparql.query() の前に次の行を追加するだけです

sparql.method = 'POST'

また、更新用のURLはクエリとは異なります。更新はワークベンチに基づいており、ごまの URL ではありません。たとえば、クエリ URL が次の場合:

http://localhost:8080/openrdf-sesame/repositories/test/

また

http://localhost:8080/openrdf-workbench/repositories/test/query

更新 URL は次のようになります。

http://localhost:8080/openrdf-workbench/repositories/test/update

したがって、UPDATE/INSERT リクエストは次のようになります。

queryString = "INSERT DATA { GRAPH <http://example.com/> { "b" a "c". } }" 
sparql = SPARQLWrapper("http://localhost:8080/openrdf-workbench/repositories/test/update")

sparql.setQuery(queryString) 
sparql.method = 'POST'
sparql.query()
于 2013-03-10T12:54:32.650 に答える
2

これはドキュメントから特に明確ではありませんが、クエリを実行するのと同じ方法で update ステートメントを実行できると思います。

queryString = "DELETE WHERE { ?s ?p ?o. }" 
sparql = SPARQLWrapper("http://localhost:8080/openrdf-sesame/repositories/test/statements")

sparql.setQuery(queryString) 
ret = sparql.query()

Sesame の場合、更新エンドポイントの URL ( repositories/<repId>/statements) がクエリ エンドポイントの URL ( ) と同じではないことに注意してrepositories/<repId>ください。詳細については、Sesame プロトコルのドキュメントを参照してください。

于 2013-01-07T07:03:05.230 に答える