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

发布于 2024-12-09 05:08:42 字数 310 浏览 0 评论 0原文

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

我的 SPARQL 查询是

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

I am trying to insert an resource in my rdf file which is being stored in local virtuoso triple store. My sparql endpoint is also on my own server. But it says some error 500 is coming which says server internal problem occured. Thanks for any suggestion in advance

My SPARQL query is

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

命比纸薄 2024-12-16 05:08:42

语法

Yep Jeen 是正确的。

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" . }
}

权限

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

为此,您需要进入 Virtuosoconductor(默认情况下为 http://localhost:8890/conductor/)并确保 SPARQL 用户帐户具有角色 SPARQL_UPDATE 应用于它。您将在系统管理员选项卡下找到用户帐户选项卡。

Syntax

Yep Jeen was correct.

Virtuoso still supports the older non-standard SPARUL syntax rather than did not yet support the new SPARQL 1.1 update syntax (added in Virtuoso 6.1.7 / 7.0.0).

Also Virtuoso does not allow inserts into the default graph as it doesn't have an explicit unnamed default graph. Your update needs to be changed to the following:

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

For comparison in standard 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" . }
}

Permissions

Another possible issue is whether you have permissions set up properly so that SPARQL Updates can be made via the web interface?

To do this, you need to go into Virtuoso conductor (http://localhost:8890/conductor/ by default) and ensure the SPARQL user account has the role SPARQL_UPDATE applied to it. You'll find the User Accounts tab under the System Admin tab.

他夏了夏天 2024-12-16 05:08:42

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

Your SPARQL update query looks fine. At a guess, I'd say your version of Virtuoso does not support SPARQL Update (it's relatively new feature of the SPARQL language and not all RDF databases support it fully yet). Ask around on the Virtuoso's own community forum for details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文