2017-03-03 87 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。