首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SPARQLWrapper插入/删除/更新查询

使用SPARQLWrapper插入/删除/更新查询
EN

Stack Overflow用户
提问于 2013-01-04 23:56:59
回答 2查看 4.5K关注 0票数 7

虽然我已经在网络上通过很多例子解释了python SPARQLWrapper使用SELECT语句从芝麻三元组存储中获取数据的用法,但不确定如何使用它在芝麻中插入/删除/更新语句。你们中有谁可以在这方面指导一下。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-10 20:54:33

SPARQL查询作为GET请求发送,但更新(如INSERT、DELETE等)要求将查询作为POST请求发送。只需在sparql.query()之前添加以下行

代码语言:javascript
复制
sparql.method = 'POST'

此外,更新的url与查询不同。更新是基于工作台的,而不是基于芝麻url的。例如,如果查询url为:

代码语言:javascript
复制
http://localhost:8080/openrdf-sesame/repositories/test/

代码语言:javascript
复制
http://localhost:8080/openrdf-workbench/repositories/test/query

那么更新url将是:

代码语言:javascript
复制
http://localhost:8080/openrdf-workbench/repositories/test/update

因此,更新/插入请求应如下所示:

代码语言:javascript
复制
queryString = "INSERT DATA { GRAPH <http://example.com/> { "b" a "c". } }" 
sparql = SPARQLWrapper("http://localhost:8080/openrdf-workbench/repositories/test/update")

sparql.setQuery(queryString) 
sparql.method = 'POST'
sparql.query()
票数 10
EN

Stack Overflow用户

发布于 2013-01-07 15:03:05

这在文档中并不是特别清楚,但我认为您可以像执行查询一样执行update语句:

代码语言:javascript
复制
queryString = "DELETE WHERE { ?s ?p ?o. }" 
sparql = SPARQLWrapper("http://localhost:8080/openrdf-sesame/repositories/test/statements")

sparql.setQuery(queryString) 
ret = sparql.query()

在使用Sesame的情况下,需要记住的一件事是,更新端点(repositories/<repId>/statements)的URL与查询端点(repositories/<repId>)的URL不同。有关详细信息,请参阅Sesame protocol docs

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14160437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档