虽然我已经在网络上通过很多例子解释了python SPARQLWrapper使用SELECT语句从芝麻三元组存储中获取数据的用法,但不确定如何使用它在芝麻中插入/删除/更新语句。你们中有谁可以在这方面指导一下。
谢谢
发布于 2013-03-10 20:54:33
SPARQL查询作为GET请求发送,但更新(如INSERT、DELETE等)要求将查询作为POST请求发送。只需在sparql.query()之前添加以下行
sparql.method = 'POST'此外,更新的url与查询不同。更新是基于工作台的,而不是基于芝麻url的。例如,如果查询url为:
http://localhost:8080/openrdf-sesame/repositories/test/或
http://localhost:8080/openrdf-workbench/repositories/test/query那么更新url将是:
http://localhost:8080/openrdf-workbench/repositories/test/update因此,更新/插入请求应如下所示:
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()发布于 2013-01-07 15:03:05
这在文档中并不是特别清楚,但我认为您可以像执行查询一样执行update语句:
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。
https://stackoverflow.com/questions/14160437
复制相似问题