虽然我在网上浏览了很多示例,解释了使用 python SPARQLWrapper 使用 SELECT 语句从芝麻三重存储中获取数据,但不确定我们如何使用它在芝麻中插入/删除/更新语句。你们中的任何人都可以在这方面进行指导。
谢谢
虽然我在网上浏览了很多示例,解释了使用 python SPARQLWrapper 使用 SELECT 语句从芝麻三重存储中获取数据,但不确定我们如何使用它在芝麻中插入/删除/更新语句。你们中的任何人都可以在这方面进行指导。
谢谢
SPARQL 查询作为 GET 请求发送,但 UPDATE(如 INSERT、DELETE 等)要求将查询作为 POST 请求发送。只需在 sparql.query() 之前添加以下行
sparql.method = 'POST'
此外,更新的 url 与查询不同。更新基于工作台而不是芝麻网址。例如,如果查询 url 是:
http://localhost:8080/openrdf-sesame/repositories/test/
或者
http://localhost:8080/openrdf-workbench/repositories/test/query
那么更新网址将是:
http://localhost:8080/openrdf-workbench/repositories/test/update
因此,UPDATE/INSERT 请求应如下所示:
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()
这在文档中并不是特别清楚,但我认为您可以像执行查询一样执行更新语句:
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 协议文档。