3

httpを介してリモートエンドポイントに更新を送信したいと思います。私は、定石がそのようなエンドポイントとして機能することを発見しました。

ただし、エンドポイントのURIしかわからない場合、このエンドポイントに更新クエリを送信するにはどうすればよいですか?

// To do a select-query you can use this:
QueryExecution qe = QueryExecutionFactory.sparqlService(serviceURI, query);

// (Sidenote:) does the next line have the desired effect of setting the binding?
// After all, sparqlService has no alternative with initialBindang as parameter
qe.setInitialBinding(initialBinding);

result = qe.execSelect();

// But updates do not support this kind of sparqlService method
// Illegal:
// UpdateAction.sparqlServiceExecute(serviceURI, query);
// I can use the following:
UpdateAction.parseExecute(updateQuery, dataset, initialBinding);
// But dataset is a Dataset object, not the uri.

// I don't believe this is the correct way to overcome this:
Dataset dataset = DatasetFactory.create(serviceURI);

それ以外の場合は、URIのみがわかっているエンドポイントに対してリモート更新クエリを実行する方法を聞きたいです。

更新: 最終的に地元のイエナに頼った。この種のRDFエンドポイントは、挿入ステートメントと削除ステートメントを受け入れます。クエリの変更を受け入れるリモートRDFエンドポイントを見つけることに成功しませんでした。

4

2 に答える 2

1

それ以外の場合は、URI のみがわかっているエンドポイントに対してリモート更新クエリを実行する方法を知りたいです。

これは、エンドポイント サーバーによって少し異なる方法で処理されます。草案のsparql/updateプロトコルがあります。ただし、これはドラフトであり、かなり新しいサポートであるため、少し異なります。

一般に、sparql update クエリは、SQL の insert または update ステートメントを書くのと同じように書くことができます。

更新コマンドは、Modify、Insert、Delete、Load、Clear ですが、すべての実装がこれらすべてをサポートしているわけではありません。

エンドポイントは公開されることが多いため、通常、アクションが許可される前に何らかの認証が必要になります。これは仕様では定義されていないため、実装固有です。

http 認証を使用できるように、更新ステートメントには別の URL を使用することをお勧めします。4store では、クエリに /sparql を使用し、更新クエリに /update を使用します。

W3C ドラフトには、sparql 更新クエリを作成する方法の例がいくつかあります。

于 2010-08-18T07:58:22.040 に答える
1

Joseki はリモート アップデートをサポートしていません。おそらく、SPARQL Update をサポートする後継のFusekiを確認する必要があります。

于 2011-07-02T18:39:17.430 に答える