Query con più di una variabile
Until now our queries essentially had just one variable, even if additional variables were declared for the label and/or description of the item. Now we will look at queries with more variables.
The following query retrieves items that are part of the Star Wars film series, and the director of each film.
#Film della serie Guerre stellari
SELECT ?item ?itemLabel ?director
WHERE
{
?item wdt:P179 wd:Q22092344. # l'elemento (item) fa parte di Guerre stellari (serie televisiva)
?item wdt:P57 ?director. # il valore della proprietà regista dell'item viene raccolto dalla variabile regista
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}
Spiegazione della query
Nella sezione SELECT abbiamo le variabili ?item e ?director, così come ?itemLabel che recupera l’etichetta per ?item.
Nella sezione WHERE, alle righe 6 e 7, vediamo le condizioni di pattern matching:
?item wdt: P179 wd: Q22092344.
?item wdt:P57 ?director.
SPARQL ricerca elementi Wikidata con istruzioni che corrispondono allo schema definito nella sezione WHERE. Quindi, come prima, la prima riga della nostra sezione WHERE dice: “Trovami oggetti che hanno una dichiarazione con una proprietà P179 (parte di una serie) con il valore Q22092344 (Star Wars (serie di film))”.
La seconda riga dice: “Quindi per ciascuno di questi elementi, trovami la loro proprietà P57 (director) e inserisci il suo valore nella variabile ?director”.
Come abbiamo visto, c’è un AND implicito tra ogni istruzione nella sezione WHERE, ovvero solo i modelli che corrispondono a tutte le istruzioni verranno restituiti da questa query.
Ora eseguiamo la query:
Cosa bisogna aggiungere per vedere i nomi dei direttori? Aggiungilo ed esegui di nuovo la query.
Mostra la soluzione
#Un po’ di sintassi
If we wanted the query to show the name of each director, but not the Q number, we could omit the ?director from the SELECT section and only declare ?directorLabel. This implies there is a ?director variable (which we see in the WHERE section) but it isn’t presented in the query results.