Quella richiesta non funziona su né dbpedia o bibleontology perché le informazioni sono memorizzate in due diversi database e quando si esegue una query che si SPARQL fondamentalmente ha colpito uno o l'altro. Ciò significa che devi scaricare i dati da entrambi i database per metterli in un triplo store locale per poter eseguire una query SPARQL come quella che hai mostrato. Un'altra opzione è usare una libreria che lo faccia per te.
The Semantic Web Client Library seguirà tutti gli URI presenti nella query SPARQL e scaricherà i dati RDF da ciascuna risorsa in modo che possa unire tutti i tripli motivi visualizzati nella query dell'utente e fornire le risposte.
È possibile eseguire la query con alcune lievi modifiche:
PREFIX bibleontology: <http://bibleontology.com/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX dbpedia: <http://dbpedia.org/ontology/>
SELECT * WHERE {
bibleontology:Ezra owl:sameAs ?art .
?art dbpedia:abstract ?abstract .
FILTER langMatches(lang(?abstract), "EN")
}
Spiegazione delle modifiche:
- Incluso
owl
e dbpedia
namespace
?art dbpedia:abstract ?abstract .
è necessario abbinare il dbpedia:abstract
predicato per ottenere l'abstract al posto di bibleontology:abstract
per ottenere l'abstract da dbpedia
- Ho anche incluso uno
filter
per recuperare solo gli abstract in inglese, questo è ovviamente facoltativo.
Una volta scaricato "Il Web Semantico Biblioteca" e si mette la query in un file (ad esempio: query.sparql) è possibile eseguire il seguente comando per verificare la vostra query:
./semwebquery -sparqlfile query.sparql -retrieveduris -maxsteps 5
Tutto il i parametri di comando sono illustrati nella documentazione della libreria client Web semantica.
si otterrebbe il seguente output:
| ?art | ?abstract
| <http://dbpedia.org/resource/Ezra> | "Ezra is a major .... "@en |
Successfully dereferenced URIs:
http://www.w3.org/2002/07/owl
http://bibleontology.com/data/Ezra
http://dbpedia.org/data/Ezra.xml
http://dbpedia.org/data3/abstract.n3
ho omesso il lungo astratta da DBpedia per semplicità. L'elenco di "URI con esito positivo senza referenze" sono i documenti recuperati dalla libreria per rispondere alla tua domanda. Nella documentazione della libreria vedrai come eseguire query in modo programmatico in Java.
fonte
2011-01-30 11:14:12
Come è possibile eseguire query tra, quando il modello non viene fusa . Potrebbe essere possibile eseguire personalmente la raccolta dati, unendo i due archivi rdf (modelli), ma non è possibile eseguire una query incrociata. –
Quindi RDF fornisce collegamenti ai luoghi in cui sono descritti i modelli, ma mai ai dati stessi? Pensavo che uno degli obiettivi del web semantico fosse quello di consentire query distribuite su vari set di dati? –
Forse non ho capito il commento, come nel modello che viene unito. La stessa voce per la bontontologia: Ezra fornisce un collegamento a una voce dbo. Questo è ciò che mi ha fatto pensare che sarebbe stato possibile unirmi a loro. –