3
私はオントロジを作成しており、dbpedia
のデータを追加したいと考えています。たとえば、スイスに関するデータを追加したいと思います。 これは私がやっていることです。Python:rdflibを使ってDbpediaからグラフに情報を追加する方法は?
g = Graph()
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
query = """
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT DISTINCT ?s ?pop ?code
WHERE{
?s rdf:type dbo:PopulatedPlace.
?s dbp:iso3166code ?code.
?s dbo:populationTotal ?pop.
FILTER (?s = dbpedia:Switzerland)
}
"""
sparql.setQuery(query)
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
は、その後、私は
for result in results["results"]["bindings"]:
N = int(result["pop"]["value"])
totPopulation = Literal(N)
g.add((cName, RDF.type, dbo.Country))
g.add((cName, dbo.populationTotal, totPopulation))
g.add((cName, dbp.iso3166code, Literal(str(result["code"]["value"]))))
はそれを行うための簡単な方法がないです、私は私のグラフに抽出した情報を追加しますか?
をSPARQL 'CONSTRUCT'クエリはRDFトリプルのセットを返します。 – AKSW
@AKSW例がありますか? – emax
SELECTクエリに似ています: 'prefix dbpedia: { ?s rdf:dbo:PopulatedPlaceを入力してください。 ?s dbp:iso3166code?コード。 ?s dbo:populationTotal?pop。 } WHERE { ?s rdf:type dbo:PopulatedPlace。 ?s dbp:iso3166code?コード。 ?s dbo:populationTotal?pop。 FILTER(?s = dbpedia:Switzerland) } ' –
AKSW