SPARQL DBpedia查询超时

时间:2017-09-28 05:28:05

标签: python sparql dbpedia

我试图在Python上对DBPedia执行一个相当简单的SPARQL查询,如下所示:

from SPARQLWrapper import SPARQLWrapper, JSON
city_name = 'Manhattan'
query = """select * 
               where {
               ?URI rdfs:label ?name.
               filter(regex(str(?name), "^%s"))
           }"""%(city_name)
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setReturnFormat(JSON)
sparql.setQuery(query)
result = sparql.query().convert()

我想要检索名称第一部分中与给定城市匹配的所有实体。我知道很多实体,但它在DBPedia测试浏览器here中运行良好。

每当我尝试在Python中运行上述查询时,我都会遇到超时错误:

EndPointInternalError: EndPointInternalError: endpoint returned code 500 and response. 

Response:
Virtuoso S1T00 Error SR171: Transaction timed out

有关避免此超时错误的建议吗?我意识到我可能必须使我的查询更具体,以收紧搜索范围。

1 个答案:

答案 0 :(得分:2)

首先使用bif:contains进行全文搜索,然后对其进行过滤:

stats filename using (last=$2) nooutput
plot filename using 1:2 title sprintf("1/N %0.2f", last) with lines