数据附加到芝麻存储库中

时间:2014-03-24 02:21:26

标签: python rdf semantic-web sesame

我将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

1 个答案:

答案 0 :(得分:4)

问题是您使用HTTP PUT请求而不是POST请求将数据添加到Sesame存储库。

PUT请求会覆盖现有数据,它是替换(而不是追加)操作。有关详细信息,请参阅Sesame REST protocol documentation,尤其是adding statements部分。