正在从 python 向 linux 中的 virtuoso 服务器执行 sparql 查询?
Executing sparql query from python to virtuoso server in linux?
我在 运行 宁以下程序 (sparql_test.py
) 时遇到问题。我正在 运行 从 Linux 机器上安装它。我正在同一台 Linux 机器上安装 Virtuoso 服务器。在 Linux 服务器中,我没有 sudo
权限,也没有浏览器访问权限。但是,我可以从 isql
提示符 (SQL>
) 成功执行 SPARQL 查询。
程序:sparql_test.py
from SPARQLWrapper import SPARQLWrapper, JSON
sparql = SPARQLWrapper("http://localhost:8890/sparql")
sparql.setQuery("select ?s where { ?s a <http://ehrofip.com/data/Admissions>.} limit 10")
sparql.setReturnFormat(JSON)
result = sparql.query().convert()
for res in result["results"]["bindings"]:
print(res)
我收到以下错误:
[suresh@deodar complex2vec]$ python sparql_test.py
Traceback (most recent call last):
File "sparql1.py", line 14, in "<module>"
result = sparql.query().convert()
File "/home/suresh/.local/lib/python2.7/site-packages/SPARQLWrapper/Wrapper.py", line 687, in query
return QueryResult(self._query())
File "/home/suresh/.local/lib/python2.7/site-packages/SPARQLWrapper/Wrapper.py", line 667, in _query
raise e
urllib2.HTTPError: HTTP Error 502: Bad Gateway
不过,上面的程序运行在我自己的笔记本上运行的很顺利。可能是什么问题?这是连接问题吗?
谢谢
最佳,
苏雷什
我不认为这个错误是由 Virtuoso 提出的。我相信它是由 SPARQLWrapper 提出的。
看起来在外部世界(包括 Linux 机器本身)和端口 8890
上的 Virtuoso 侦听器之间存在某种东西。 "Bad Gateway" 暗示可能有两件事——反向代理和防火墙。
端口 8890(在 INI 文件中设置为 [HttpServer]:Listen
)必须对直接或代理通信开放,以便 SPARQL 访问正常工作。
iSQL 与端口 1111 通信(在 INI 文件中设置为 [Parameters]:Listen
),显然没有类似的 block/proxy.
我在 运行 宁以下程序 (sparql_test.py
) 时遇到问题。我正在 运行 从 Linux 机器上安装它。我正在同一台 Linux 机器上安装 Virtuoso 服务器。在 Linux 服务器中,我没有 sudo
权限,也没有浏览器访问权限。但是,我可以从 isql
提示符 (SQL>
) 成功执行 SPARQL 查询。
程序:sparql_test.py
from SPARQLWrapper import SPARQLWrapper, JSON
sparql = SPARQLWrapper("http://localhost:8890/sparql")
sparql.setQuery("select ?s where { ?s a <http://ehrofip.com/data/Admissions>.} limit 10")
sparql.setReturnFormat(JSON)
result = sparql.query().convert()
for res in result["results"]["bindings"]:
print(res)
我收到以下错误:
[suresh@deodar complex2vec]$ python sparql_test.py
Traceback (most recent call last):
File "sparql1.py", line 14, in "<module>"
result = sparql.query().convert()
File "/home/suresh/.local/lib/python2.7/site-packages/SPARQLWrapper/Wrapper.py", line 687, in query
return QueryResult(self._query())
File "/home/suresh/.local/lib/python2.7/site-packages/SPARQLWrapper/Wrapper.py", line 667, in _query
raise e
urllib2.HTTPError: HTTP Error 502: Bad Gateway
不过,上面的程序运行在我自己的笔记本上运行的很顺利。可能是什么问题?这是连接问题吗?
谢谢
最佳,
苏雷什
我不认为这个错误是由 Virtuoso 提出的。我相信它是由 SPARQLWrapper 提出的。
看起来在外部世界(包括 Linux 机器本身)和端口 8890
上的 Virtuoso 侦听器之间存在某种东西。 "Bad Gateway" 暗示可能有两件事——反向代理和防火墙。
端口 8890(在 INI 文件中设置为 [HttpServer]:Listen
)必须对直接或代理通信开放,以便 SPARQL 访问正常工作。
iSQL 与端口 1111 通信(在 INI 文件中设置为 [Parameters]:Listen
),显然没有类似的 block/proxy.