我一直在尝试让 SPARQLWrapper 将一个简单的三元组插入到 GraphDB 中,但没有成功。我对选择查询没有任何问题。这是失败的 Python 测试代码:
db = sparqlw.SPARQLWrapper(endpoint)
query = '''
INSERT {<http://example.com/123456789876> a owl:Thing .}
WHERE {}
'''
db.setQuery(query)
db.method = sparqlw.POST
db.setReturnFormat(sparqlw.JSON)
db.queryType= sparqlw.INSERT
result = db.query()
它返回这些错误:
"urllib.error.HTTPError: HTTP Error 400: Bad Request"
and
"SPARQLWrapper.SPARQLExceptions.QueryBadFormed: QueryBadFormed: a bad
request has been sent to the endpoint, probably the sparql query is bad
formed."
回复:
b'缺少参数:查询'
我到处查看并尝试了所有建议的方法,但无法使其工作。感谢任何好的线索。
请参阅我对查询验证添加的评论。关于该问题重复且已回答的建议不适用。
GraphDB 公开芝麻式端点 URL。
下面是 GraphDB 8.3 Workbench 帮助页面的屏幕截图(我使用的是免费版)。
以下 Python 代码对我有用(repositoryID
is wikidata
):
from SPARQLWrapper import SPARQLWrapper, BASIC
db = SPARQLWrapper("http://localhost:7200/repositories/wikidata/statements")
query = '''
INSERT {<http://example.com/123456789879> a owl:Thing .}
WHERE {}
'''
db.setHTTPAuth(BASIC)
db.setCredentials('login', 'password')
db.setQuery(query)
db.method = "POST"
db.setReturnFormat('json')
db.queryType = "INSERT"
result = db.query()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)