2012-05-21 15 views
7

Utilizando sparql \ sparqlwrapper en python, ¿cómo podré consultar los valores de cierto recurso de dbpedia? Por ejemplo, ¿cómo podré obtener los valores de dbpedia-owl: wikiPageExternalLink de http://dbpedia.org/page/Asturias? Aquí hay un ejemplo simple de cómo podré consultar la etiqueta rdfs: Asturias. Pero no sé cómo modificar los parámetros de consulta/consulta para obtener valores de propiedad/ontología que no sean los incluidos en el esquema de rdfs. Aquí está la muestra:Cómo consultar la ontología de recursos de 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"] 

Esperando recibir comentarios. ¡Gracias por adelantado!

Respuesta

7

No sé donde estás atascado-Esto es realmente fácil:

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

Por lo general, tiene que declarar los prefijos de espacio de nombres como rdfs: o dbpedia-owl: si desea utilizarlos en la consulta, pero en el DBpedia punto final esto funciona incluso sin. Si lo desea, puede declarar que de todos modos:

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

Puede averiguar la URI completa correspondiente al prefijo yendo a http://dbpedia.org/sparql y haciendo clic en “Espacio de nombres Los prefijos” cerca de la esquina superior derecha.

Si desea cambiar el nombre de la variable (por ejemplo, de ?label a ?link) y luego hacerlo de esta manera:

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

y también hay que cambiar "label" a "link" en el código Python que obtiene el valor fuera del resultado JSON.

+0

gracias por los comentarios. Pero en "Nombre de conjunto de datos predeterminado (IRI de gráfico)" de sparql, ¿qué debo poner? ¡Gracias otra véz! – jaysonpryde

+2

Solo deja ese campo solo – cygri

Cuestiones relacionadas