我正在尝试接收其标签包含某个字符串的所有属性。我使用以下查询:
SELECT ?p ?l count(?p) as ?count WHERE {
?someobj ?p ?s .
?p a <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> .
?p <http://www.w3.org/2000/01/rdf-schema#label> ?l .
?l bif:contains "string" .
FILTER (lang(?l) = 'en').
FILTER (!isLiteral(?someobj)).
} ORDER BY DESC(?count) LIMIT 5
通过公共 DBPedia 端点 @ http://dbpedia.org/sparql发出查询时,它可以工作,并返回我想要的。但是,当我通过 Python 脚本中的 SPARQLWrapper 执行相同操作时,我不断得到:
File "E:\thesis\sem_web21.py", line 254, in findWord
results = sparql.query().convert()
File "build/bdist.linux-i686/egg/SPARQLWrapper/Wrapper.py", line 355, in query
return QueryResult(self._query())
File "build/bdist.linux-i686/egg/SPARQLWrapper/Wrapper.py", line 334, in _query
raise e
HTTPError: HTTP Error 500: SPARQL Request Failed
我尝试了查询的变体,有和没有计数和排序,有和没有限制。我不断收到 HTTP 500。我不认为端点不稳定,因为我对同一个脚本中的其他查询没有问题,它只会在这个查询中停止。
检索对象的类似查询工作正常(都在公共端点通过我的脚本):
SELECT ?s ?l count(?s) as ?count WHERE {
?someobj ?p ?s .
?s <http://www.w3.org/2000/01/rdf-schema#label> ?l .
?l bif:contains "computer" .
FILTER (!regex(str(?s), '^http://dbpedia.org/resource/Category:')).
FILTER (!regex(str(?s), '^http://dbpedia.org/resource/List')).
FILTER (!regex(str(?s), '^http://sw.opencyc.org/')).
FILTER (lang(?l) = 'en').
FILTER (!isLiteral(?someobj)).
} ORDER BY DESC(?count) LIMIT 20
知道是什么原因造成的吗?或者知道如何检索更具体的错误?提前致谢。