2017-06-14 1 views
0

Voici une SPARQL:SPARQL: comment sélectionner aussi l'objet que je visite à la suite de la requête

PREFIX : <...#> 

SELECT * 
WHERE { { :Airspace_LSAGE_411 ?p ?o . } 
UNION { :Airspace_LSAGN_411 ?p ?o . } 
UNION { :Airspace_LSAGS_411 ?p ?o . } 
} LIMIT 2000 

Cela me obtenir les propriétés et les valeurs associées des trois espaces aériens objets Airspace_LSAGE_411, Airspace_LSAGN_411 , Airspace_LSAGS_411.

Le problème est que dans la table de résultat, j'ai seulement les colonnes p et o. Je ne sais pas quelle ligne appartient à laquelle l'espace aérien, par exemple:

p  o 
---- ---- 
:color red 
:color blue 

Est-il possible de répéter le nom de l'espace aérien dans le résultat pour obtenir quelque chose comme ceci:

s      p  o 
----     ---- ---- 
Airspace_LSAGE_411 color red 
Airspace_LSAGN_411 color blue 

Je sais que la différenciation devrait être facile en faisant trois requêtes, l'une après l'autre, mais mon point principal est de savoir comment obtenir des triples complets en conséquence.

Répondre

2

Utilisez VALUES pour fournir les données en ligne.

SELECT ?s ?p ?o 
{VALUES ?s { :Airspace_LSAGE_411 :Airspace_LSAGN_411 :Airspace_LSAGS_411} 
?s ?p ?o. } 
+0

fonctionne. J'ai également appris que le mot clé WHERE n'est évidemment pas requis. – Ulu83

+0

Je pense que c'est seulement facultatif lors de l'utilisation d'un motif graphique de base. – chrisis