3

这是我第一次玩 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: OFFSETand LIMIT,但我不确定如何使用它来获得所有结果。

4

0 回答 0