Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python SPARQLWrapper仅返回10000个结果_Python_Python 3.x_Sparql_Virtuoso_Sparqlwrapper - Fatal编程技术网

python SPARQLWrapper仅返回10000个结果

python SPARQLWrapper仅返回10000个结果,python,python-3.x,sparql,virtuoso,sparqlwrapper,Python,Python 3.x,Sparql,Virtuoso,Sparqlwrapper,我使用SPARQLWrapper模块启动对virtuoso端点的查询并获得结果 查询始终最多返回10000个结果 以下是python脚本: from SPARQLWrapper import SPARQLWrapper, JSON queryString = """ SELECT DISTINCT ?s WHERE { ?s ?p ?o . } """ sparql = SPARQLWrapper("http://localhost:8890/sparql") sparql.s

我使用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


如何获得所有结果?

答案是调整。特别是对于这种情况,您需要增加
[SPARQL]
小节中的
ResultSetMaxRows


限制不在SPARQLWrapper中。如果您通过SPARQL端点、导体或任何其他接口进行完整的
选择(而不是
计数,它只传递1行),您将看到相同的限制。

10000个结果由数据所有者通过
virtuoso.ini
中的
ResultSetMaxRows
项设置,以保护数据。

如果没有,任何人都可以使用一个简单的sparql查询
select*where{s?p?o}
来获取所有数据,这可能会花费数据所有者大量的时间和金钱

“直接发布”是什么意思?通常,Virtuoso在
Virtuoso.ini
文件中设置了一个默认限制-因此,首先,您应该检查您的配置。当在Virtuoso的导体界面中启动带有计数的查询时,我得到了正确的数字。我更改了.ini文件中的参数,它成功了,谢谢!