如何使用本地sparql端点插入/更新存储在本地virtuoso中的RDF?

时间:2011-10-12 13:48:34

标签: rdf sparql virtuoso

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

我的SPARQL查询

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

2 个答案:

答案 0 :(得分:3)

语法

是的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。您可以在系统管理员标签下找到用户帐户标签。

答案 1 :(得分:0)

您的SPARQL更新查询看起来很好。我猜你的Virtuoso版本不支持SPARQL更新(它是SPARQL语言的相对新功能,并不是所有的RDF数据库都支持它)。在Virtuoso自己的社区论坛上询问详情。