我使用 SPARQLWrapper 模块向 virtuoso 端点发起查询并获得结果。
查询始终返回最多 10000 个结果
这是python脚本:
from SPARQLWrapper import SPARQLWrapper, JSON
queryString = """
SELECT DISTINCT ?s
WHERE {
?s ?p ?o .
}
"""
sparql = SPARQLWrapper("http://localhost:8890/sparql")
sparql.setQuery(queryString)
sparql.setReturnFormat(JSON)
res = sparql.query().convert()
# Parse result
parsed = []
for entry in res['results']['bindings']:
for sparql_variable in entry.keys():
parsed.append({sparql_variable: entry[sparql_variable]['value']})
print('Query return ' + str(len(parsed)) + ' results')
当我启动查询时
SELECT count(*) AS ?count
我得到了正确数量的三元组:917051。
为什么 SPARQLWrapper 模块将结果数限制为 10000 ?
我如何获得所有结果?