2011-05-07 9 views
6

Sto cercando di ottenere la risorsa che descrive paese Romania dal nome del paese con questa query:Recupero di una risorsa DBpedia con il suo nome stringa con SPARQL

PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
PREFIX : <http://dbpedia.org/resource/> 

SELECT DISTINCT ?x WHERE { 
    ?x foaf:name 'Romania' 
} 

SPARQL results

Tuttavia, non recupera nulla . Come posso ottenere la risorsa http://dbpedia.org/resource/Romania (:Romania) dalla stringa 'Romania'. Se voglio recuperare il nome del paese dalla risorsa Paese Io uso la seguente query che funziona bene:

PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
PREFIX : <http://dbpedia.org/resource/> 

SELECT DISTINCT ?x WHERE { 
    :Romania foaf:name ?x 
} 

SPARQL results

risposta

10

Questo dovrebbe farlo:

SELECT ?c 
WHERE { 
    ?c a dbo:Country ; 
    foaf:name "Romania"@en . 
    FILTER NOT EXISTS { ?c dbo:dissolutionYear ?y } 
} 

SPARQL results

La peculiarità critica qui è che "Romania" senza tag lingua è diverso da "Romania"@en. E poi hai anche un gruppo di stati storici che sono stati anche chiamati Romania, quindi escludiamo quelli che hanno anni di dissoluzione. La completezza dei dati di DBpedia per anni di dissoluzione non è eccezionale, ma tutti i rumeni, almeno, sono contrassegnati.

+0

Grazie! Ha funzionato. –

+1

Fantastico! (Dovresti contrassegnare la risposta come accettata, per dimostrarlo.) –

+0

@glennmcdonald È interessante notare che alcuni anni dopo, qualcuno ha utilizzato il modello di Infobox del Paese nella pagina Romania, quindi i risultati includono anche [Commemorative_coins_of_Romania] (http: // dbpedia. org/risorsa/Commemorative_coins_of_Romania)! –

Problemi correlati