2012-05-21 13 views
7

Utilizzando sparql \ sparqlwrapper in python, come sarò in grado di interrogare i valori di una determinata risorsa dbpedia? Ad esempio, come sarò in grado di ottenere i valori dbpedia-owl: wikiPageExternalLink di http://dbpedia.org/page/Asturias? Ecco un semplice esempio su come sarò in grado di eseguire una query per i file rdf: etichetta delle Asturie. Ma non so come modificare i parametri query/query per ottenere valori di proprietà/ontologia diversi da quelli inclusi nello schema rdfs. Ecco il campione:Come interrogare l'ontologia delle risorse dbpedia 'wikiPageExternalLink'

from SPARQLWrapper import SPARQLWrapper, JSON, XML, N3, RDF 
sparql = SPARQLWrapper("http://dbpedia.org/sparql") 
sparql.setQuery(""" 
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
    SELECT ?label 
    WHERE { <http://dbpedia.org/resource/Asturias> rdfs:label ?label } 
""") 
print '\n\n*** JSON Example' 
sparql.setReturnFormat(JSON) 
results = sparql.query().convert() 
for result in results["results"]["bindings"]: 
    print result["label"]["value"] 

Sperando di ricevere feedback. Grazie in anticipo!

risposta

7

Non sai da dove sei bloccato-Questo è veramente facile:

SELECT ?label 
WHERE { <http://dbpedia.org/resource/Asturias> 
      dbpedia-owl:wikiPageExternalLink ?label } 

Di solito è necessario dichiarare i prefissi dello spazio dei nomi come rdfs: o dbpedia-owl: se si desidera utilizzarli nella query, ma sul DBpedia endpoint funziona anche senza. Se si desidera, è possibile dichiarare in ogni modo:

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 
SELECT ?label 
WHERE { <http://dbpedia.org/resource/Asturias> 
      dbpedia-owl:wikiPageExternalLink ?label } 

Si può scoprire il pieno URI corrispondente al prefisso andando a http://dbpedia.org/sparql e cliccando su “Namespace prefissi” nell'angolo in alto a destra.

Se si desidera rinominare la variabile (ad esempio, da ?label a ?link) allora fare in questo modo:

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 
SELECT ?link 
WHERE { <http://dbpedia.org/resource/Asturias> 
      dbpedia-owl:wikiPageExternalLink ?link } 

e si hanno anche per cambiare "label"-"link" nel codice Python che ottiene il valore fuori dal risultato JSON.

+0

grazie per il feedback. Ma sotto "Default Data Set Name (Graph IRI)" di sparql, cosa dovrei inserire? Ancora una volta, grazie! – jaysonpryde

+2

Lascia solo quel campo da solo – cygri

Problemi correlati