1

Python の SPARQLWrapper を介してウィキデータをクエリする次の例があります。

import rdflib, urllib
from SPARQLWrapper import SPARQLWrapper, JSON, XML, TURTLE, RDF, N3 
from rdflib import Graph, Namespace, URIRef, RDF#, RDFS, Literal    

def graph_full(uri, f)
    sparql = SPARQLWrapper('https://query.wikidata.org/sparql')
    sparql.setQuery('''
    PREFIX entity: <http://www.wikidata.org/entity/>

    SELECT ?predicate ?object WHERE {
        <'''+urllib.unquote(uri).encode("utf8")+'''> ?predicate ?object .
    } LIMIT 100
    ''')

    sparql.setReturnFormat(N3)
    results = sparql.query().convert()
    #print results.serialize()

    print type(results)
    g = Graph()
    g.parse(results)
    print g 
    #g.serialize(f, format="n3")

if __name__ == '__main__':
    graph_full("entity:Q76", "wikidata/output.nt")

SPARQL クエリの結果をシリアル化し、ファイルに保存したいと考えています。これは常に次のエラーをスローするようです:

Exception: Unexpected type '<type 'instance'>' for source    '<xml.dom.minidom.Document instance at 0x7fa11e3715a8>'

DBpedia SPARQL エンドポイントに対して同様のコードを使用しても、エラーは発生しません。

4

0 に答える 0