执行 SPARQL ADD 查询时用于 Sesame 存储库的 URI

What URI to use for a Sesame repository while executing a SPARQL ADD query

我正在尝试将数据从 Sesame 存储库复制到另一个三元存储库。我尝试了以下查询:

ADD <http://my.ip.ad.here:8080/openrdf-workbench/repositories/rep_name> TO <http://dydra.com/username/rep_name>

执行查询时输出为 'true',但未添加三元组。

因此,我尝试了一个类似的查询,看看是否可以使用 SPARQL 更新将数据从一个 Sesame 存储库移动到另一个存储库:

ADD <http://my.ip.ad.here:8080/openrdf-workbench/repositories/source_rep> TO <http://my.ip.ad.here:8080/openrdf-workbench/repositories/destination_rep>

再次执行查询,但未添加任何三元组。

我做错了什么? URL 我用于存储库的 URL 是否正常或是否需要更改其他内容?

SPARQL ADD 操作复制 命名图 (或 'contexts',因为它们在 Sesame 中是众所周知的)。更新在单个存储库(您执行更新的存储库)上运行——它不会将数据从一个存储库复制到另一个存储库。

要通过 SPARQL 更新将数据从一个存储库复制到另一个存储库,您需要使用带有 SERVICE 子句的 INSERT 操作:

INSERT { ?s ?p ?o }
WHERE { 
   SERVICE <http://my.ip.ad.here:8080/openrdf-sesame/repositories/rep_name> { ?s ?p ?o }
}

(请注意,以上内容不会保留源代码库中的上下文/命名图信息)

或者,您可以通过 API 复制,或者通过 Workbench 将 http://my.ip.ad.here:8080/openrdf-sesame/repositories/rep_name/statements 用作您要上传的 RDF 文件的 URL . .

中有更多详细信息