2

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

我的 SPARQL 查询是

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

2 回答 2

3

句法

是的,珍是对的。

Virtuoso仍然支持旧的非标准 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应用角色。您将在“系统管理员”选项卡下找到“用户帐户”选项卡。

于 2011-10-13T09:46:04.667 回答
0

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

于 2011-10-13T07:05:37.763 回答