【问题标题】:What URI to use for a Sesame repository while executing a SPARQL ADD query执行 SPARQL ADD 查询时,芝麻存储库使用什么 URI
【发布时间】:2015-12-24 20:19:20
【问题描述】:

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

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

查询被执行,输出为“真”,但没有添加三元组。

所以,我尝试了一个类似的查询,看看我是否可以使用 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 是否正常或是否需要更改其他内容?

【问题讨论】:

    标签: sparql sesame linked-data


    【解决方案1】:

    SPARQL ADD 操作复制命名图(或“上下文”,因为它们在 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 进行复制。更多详情请见my answer to this related question

    【讨论】:

    • Dydra 不允许我使用 SERVICE。作为替代方案,我正在尝试使用 RDFlib 图来解析 sesame 存储库并一次性插入其中的所有数据。我已经能够使用 GUI 移植数据。这种对其他方法的追求是为了找到一种以编程方式移植数据的完美方法。您能否还演示一个代码示例来解析图中的所有三元组,而不在您的响应中使用 SERVICE?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多