这是我第一次玩 SPARQL。我在下面创建了一个查询,但只获得了前 10000 个结果。如何从 DBpedia 获得所有结果?
from SPARQLWrapper import SPARQLWrapper, JSON
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery("""
PREFIX dbpedia0: <http://dbpedia.org/ontology/>
PREFIX dbpedia2: <http://dbpedia.org/property/>
SELECT str(?song) as ?song str(?artist) as ?artist str(?genre) as ?genre WHERE {
?song a dbpedia0:Single.
?song dbpedia0:genre ?genre.
?song dbpedia0:musicalArtist ?artist
}
ORDER BY ?genre
""")
print '\n\n*** JSON Example'
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
for result in results["results"]["bindings"]:
print result["genre"]["value"].replace("http://dbpedia.org/resource/", "") +"\t\t"+result["artist"]["value"].replace("http://dbpedia.org/resource/", "")+"\t\t"+result["song"]["value"].replace("http://dbpedia.org/resource/", "")
我找到了一些 re: OFFSET
and LIMIT
,但我不确定如何使用它来获得所有结果。