【问题标题】:How to insert/update an RDF which is being stored in local virtuoso using local sparql endpoint?如何使用本地 sparql 端点插入/更新存储在本地 virtuoso 中的 RDF?
【发布时间】:2011-10-12 13:48:33
【问题描述】:

我试图在我的 rdf 文件中插入一个资源,该文件存储在本地 virtuoso 三重存储中。我的 sparql 端点也在我自己的服务器上。但它说出现了一些错误 500,表示服务器内部出现问题。感谢您提前提出任何建议

我的 SPARQL 查询是

    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    INSERT DATA
    {
          <http://edf.org/resource/dev> foaf:name "dev" . 
    }

【问题讨论】:

    标签: rdf sparql virtuoso


    【解决方案1】:

    语法

    是的 Jeen 是正确的。

    Virtuoso 仍然支持older non-standard SPARUL 语法,而不是还不支持新的SPARQL 1.1 更新语法(在Virtuoso 6.1.7 / 7.0.0 中添加)。

    此外,Virtuoso 不允许插入到默认图中,因为它没有明确的未命名默认图。您的更新需要更改为以下

    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    INSERT DATA INTO GRAPH <http://example.org/graph>
    {
          <http://edf.org/resource/dev> foaf:name "dev" . 
    }
    

    为了在标准 SPARQL 1.1 中进行比较:

    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    INSERT DATA
    {
       GRAPH <http://example.org/graph> 
         { <http://edf.org/resource/dev> foaf:name "dev" . }
    }
    

    权限

    另一个可能的问题是您是否已正确设置权限以便可以通过 Web 界面进行 SPARQL 更新?

    为此,您需要进入 Virtuoso 指挥(默认为http://localhost:8890/conductor/)并确保SPARQL 用户帐户已应用SPARQL_UPDATE 角色。您会在 System Admin 标签下找到 User Accounts 标签。

    【讨论】:

      【解决方案2】:

      您的 SPARQL 更新查询看起来不错。猜测一下,我会说您的 Virtuoso 版本不支持 SPARQL 更新(它是 SPARQL 语言的相对较新的功能,并非所有 RDF 数据库都完全支持它)。在 Virtuoso 自己的社区论坛上询问详细信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-03
        • 1970-01-01
        • 2018-02-18
        • 1970-01-01
        • 2014-09-06
        相关资源
        最近更新 更多