3

我想通过 http 向远程端点发送更新。我发现 joseki 就是这样一个端点。

但是,如果我只知道端点的 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/更新协议草案。但由于它是草稿并且相当新的支持是一个小变种。

通常,您可以像编写 SQL 插入或更新语句一样编写 sparql 更新查询。

更新命令是修改、插入、删除、加载、清除,但并非每个实施都支持所有这些。

由于端点通常是公共的,因此在允许操作之前通常需要一些身份验证,这在规范中没有定义,因此是特定于实现的。

建议更新语句使用不同的 URL,以便使用 http 认证。4store,使用 /sparql 进行查询,使用 /update 进行更新查询。

W3C 草案有一些关于如何构建 sparql 更新查询的示例。

于 2010-08-18T07:58:22.040 回答
1

Joseki 不支持远程更新。您可能应该看看它的继任者Fuseki,它支持 SPARQL 更新。

于 2011-07-02T18:39:17.430 回答