SPARQL DBpedia 查询超时

SPARQL DBpedia query times out

我正在尝试从 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

关于避免此超时错误的任何建议?我意识到我可能必须使我的查询更具体以缩小搜索范围。

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

SELECT * {
  ?uri rdfs:label ?name .
  ?name bif:contains "Manhattan" . # Or "'Manhattan*'"
  FILTER(STRSTARTS(?name, "Manhattan"))
}