我将 RDF 格式的数据插入到存储库中的 Sesame 中,但是当我尝试将更多数据附加到该存储库时,我以前的数据消失了,新数据被覆盖到该存储库中。我做错了什么?
import urllib2
import urllib
import httplib2
par = {"text": "he is a good boy"}
headers={"Accept" : "application/rdf+xml"}
request = urllib2.Request("http://wit.istc.cnr.it/stlab-tools/fred/?" + urllib.urlencode(par),headers=headers)
contents = urllib2.urlopen(request).read()
print contents
repository = 'good_boy'
graph = 'http://wit.istc.cnr.it/sentilo-dev/fred/xdot/graphviz_139546518295.gv'
print "Loading into Sesame"
params = { 'context': '<' + graph + '>' }
endpoint = "http://localhost:3030/openrdf-sesame/repositories/%s/statements?%s" % (repository, urllib.urlencode(params))
(response, content) = httplib2.Http().request(endpoint, 'PUT',
body=contents, headers={ 'content-type': 'application/rdf+xml' })
print "Response %s" % response.status
print content
最佳答案
问题是您使用 HTTP PUT
请求而不是 POST
请求将数据添加到 Sesame 存储库。
PUT
请求覆盖现有数据,这是一个替换(而不是追加)操作。查看Sesame REST protocol documentation ,特别是关于 adding statements 的部分, 了解详情。
关于python - 数据追加到芝麻存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22600026/