我将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
答案 0 :(得分:4)
问题是您使用HTTP PUT
请求而不是POST
请求将数据添加到Sesame存储库。
PUT
请求会覆盖现有数据,它是替换(而不是追加)操作。有关详细信息,请参阅Sesame REST protocol documentation,尤其是adding statements部分。