Un tipico di query SPARQL che specifica un grafico potrebbe assomigliare a questo:esegue una query sparql su due grafici?
SELECT ?b ?c WHERE { GRAPH <http://AliceIRI> {
<http://local.virt/foo> ?b ?c}}
Questo mi dirà tutte le triple di AliceIRI dove "foo" è un soggetto. Cosa succede se voglio guardare in due grafici differenti, è la mia unica opzione per fare un UNION:
SELECT ?b ?c WHERE {{ GRAPH <http://AliceIRI> {
<http://local.virt/foo> ?b ?c}}
UNION
{ GRAPH <http://BobIRI> {
<http://local.virt/foo> ?b ?c}}}
O c'è qualche scorciatoia che mi permettesse di scrivere questo più comodamente, qualcosa di simile:
SELECT ?b ?c WHERE { GRAPH <http://AliceIRI> + <http://BobIRI> {
<http://local.virt/foo> ?b ?c}
BTW Sono su Virtuoso 6.01.3127.
Update 1
Per chiarire, mi piacerebbe davvero essere in grado di eseguire:
SELECT ?b ?c WHERE { GRAPH <http://AliceIRI> + <http://BobIRI> {
<http://local.virt/foo> ?b ?c .
<http://local.virt/bar> ?b ?c}}
e hanno questa partita ?b
e ?c
tale che <http://local.virt/foo> ?b ?c
è in <http://AliceIRI>
e <http://local.virt/bar> ?b ?c
è in <http://BobIRI>
. Prendendo semplicemente l'unione delle partite in <http://AliceIRI>
(solo) e <http://BobIRI>
(da solo) non riuscirai a farlo.
E per chiarire ulteriormente: ho capito che se i Foos appartenevano tutti ad Alice e le barre appartenevano tutti a Bob, quindi ho potuto scrivere
SELECT ?b ?c WHERE {
GRAPH <http://AliceIRI> {
<http://local.virt/foo> ?b ?c } .
GRAPH <http://BobIRI> {
<http://local.virt/bar> ?b ?c}}
(che in realtà è quello che mi serviva per la mia applicazione) - ma almeno per "interesse accademico" rimane la questione se esista un modo sintatticamente bello di eseguire una query contro un'unione di grafici (rispetto a più grafici e quindi unione dei risultati).
Se questo ai raccordi i risultati attraverso grafici, piuttosto che permettere gli schemi triple da trarre da triple in vari grafici, quindi è un po 'di un corpo contundente. Puoi chiarire se questo è l'unico strumento disponibile (vedi Aggiornamento 1 sopra). –
@JoeCorneli Ho aggiornato la mia risposta, sì puoi farlo con una domanda leggermente diversa – RobV
meravigliosa, grazie per l'aggiunta. –