2017-03-03 89 views
0

我试图执行以下SPARQL查询
GraphDB- Python的SPARQL查询返回:HTTP状态(404)

select * where { 
    ?s ?p ?o . 
} limit 100 

它运行良好,为http://localhost:7200/sparql即GraphDB工作台需要产生的结果。 我想使用Python做同样的查询,并为了这个,我产生点击“获取URL,以当前查询”中GraphDB界面下面的查询网址。

http://localhost:7200/sparql?name=&infer=true&sameAs=false&query=select+*+where+%7B+%0A%09%3Fs+%3Fp+%3Fo+.%0A%7D+limit+100+%0A&execute= 

我试着写Python代码这个

import pycurl 
from StringIO import StringIO 
url="http://localhost:7200/sparql?name=&infer=true&sameAs=false&query=select+*+where+%7B+%0A%09%3Fs+%3Fp+%3Fo+.%0A%7D+limit+100+%0A&execute=" 
response_buffer = StringIO() 
curl = pycurl.Curl() 
curl.setopt(curl.URL,url) 
curl.setopt(curl.USERPWD, '%s:%s' % (' ' , ' ')) 
curl.setopt(curl.WRITEFUNCTION, response_buffer.write) 
curl.perform() 
curl.close() 
response_value = response_buffer.getvalue() 
print response_value 

然而,这将返回:错误 - HTTP状态(404) - 无消息,看看服务器日志以获取更多信息

我需要在Python中查询GraphDB做任何额外的设置 。我可以获得关于如何使用Python和Sparql查询GraphDB的指导吗?

+0

这两个网址在您的示例中不匹配。 – AKSW

+0

是的,在这里输入时发生了变化..但是最初两者在尝试时都是相同的..感谢评论..已编辑错字在这里.. – vinay2k2

+0

您可能想查看[sparql-wrapper](https:// rdflib。 github.io/sparqlwrapper/),用curl查询GraphDB会更好。 –

回答

1

GraphDB数据库公开每个RDF存储库的SPARQL端点。正确的SPARQL端点地址可以从Workbench的界面Setup> Repositories>存储库名称旁边的链接图标(“Copy Repository URL to Clipboard”)复制。

你的HTTP请求应该是这样的:

http://localhost:7200/repositories/%repositoryID%?name=&infer=true&sameAs=false&query=select+*+where+%7B+%0A%09%3Fs+%3Fp+%3Fo+.%0A%7D+limit+100+%0A&execute= 

其中%repositoryID%值是存储库的ID。