Visualizzazione Image Grid

Image Grid View

WDQS può visualizzare i risultati delle nostre query in diversi formati. Finora abbiamo sempre visto i risultati in formato tabella. Riprendiamo l’esercizio precedente:

Dopo aver eseguito la query, scorrere fino ai risultati. Sopra la tabella, fai clic sulla freccia accanto all’occhio. Apparirà un menu a discesa. Scegli “Image grid” dal menu e WDQS visualizzerà il logo di ogni elemento, con i risultati di ogni elemento sotto.

Un altro modo per visualizzare i risultati nella visualizzazione Image grid consiste nello specificarlo nella query stessa. Il codice sulla riga 1, dopo il segno dell’hashtag, dice alla query che i risultati della query devono essere mostrati non come una tabella, ma come una griglia con immagini.

Non è necessario ricordare il codice esatto per la griglia dell’immagine: grazie alla funzione di autocompletamento di WDQS, una volta digitato un hashtag nella finestra della query, un menu a tendina suggerirà le diverse opzioni di visualizzazione.

La clausola OPTIONAL

Valori mancanti e clausola OPTIONAL

Come abbiamo visto, quando c’è più di un pattern da abbinare nella clausola WHERE, c’è un AND implicito tra le istruzioni, in modo tale che solo i pattern che corrispondono a tutte le istruzioni verranno restituiti dalla query. Ad esempio, nell’ultimo esercizio, c’erano tre modelli di corrispondenza:

#Film della serie Guerre stellari

SELECT ?item ?itemLabel ?directorLabel ?cost
WHERE 
{ 
  ?item wdt:P179 wd:Q22092344.             # l'elemento (item) fa parte della serie Star Wars (serie di film)
  ?item wdt:P57 ?director.                 # il valore della proprietà regista dell'item viene raccolto dalla variabile regista
  OPTIONAL {?item wdt:P2130 ?cost.}        # il valore della proprietà costo di produzione dell'item viene raccolto dalla variabile costo
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}

Le affermazioni alle righe 6, 7 e 8 hanno una relazione AND tra di loro. Pertanto, un articolo sarà considerato una corrispondenza solo se ha una proprietà P179 (parte di una serie) con un valore di Q22092344 (serie di film Guerre stellari), nonché una proprietà P57 (regista) e una proprietà P2130 (costo) . Se un elemento non corrisponde a una di queste affermazioni (ad esempio, non ha il costo della proprietà), viene ignorato dalla query.

SPARQL è un linguaggio di query di corrispondenza dei modelli. Le query SPARQL restituiranno dati solo quando il pattern nella clausola WHERE corrisponde esattamente al pattern nei dati che stai interrogando. Ma molti set di dati hanno valori mancanti e i dati sono una corrispondenza per la query solo se sono presenti dati validi in ogni parte dell’istruzione dichiarata all’interno di WHERE. Ciò significa che SPARQL non restituirà un elemento a cui manca il nome della proprietà o il valore richiesto in WHERE.

La parola chiave OPTIONAL all’interno della clausola WHERE indica i modelli facoltativi che vorresti abbinare nei dati. OPTIONAL consente di cercare dati che possono essere o meno presenti.

Esegui nuovamente la query con costo come variabile facoltativa.

Un altro esercizio

| Esercizio: Mostra regista e costo (P2130) di ogni film della serie Star Wars

mostra soluzione

o utilizzando una sintassi diversa (vedi la spiegazione qui):

Una precedente query che ha recuperato ogni film di Star Wars e il suo regista ha restituito 9 risultati. Questa query corrente restituisce solo 8 risultati. Come mai?

Perché alcuni articoli non hanno un costo (P2130) come proprietà e vengono quindi ignorati dalla query.

Esercizio: più di una variabile

| Esercizio: scrivi una query per mostrare il regista e sceneggiatore (P58) di ogni film della serie di film di Star Wars

mostra soluzione

oppure, utilizzando una sintassi diversa (vedi spiegazione qui):

La precedente query che elencava il regista di ogni film di Guerre stellari ha restituito 9 risultati. Questa query restituisce 16 risultati. Come mai?

Perché ci sono più sceneggiatori per alcuni dei film. Quindi otteniamo una riga per ogni sceneggiatore.

Interrogazione con più di una variabile

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.

Valori multipli

Proprietà con più valori

Valori multipli per una proprietà non sono un problema per un database come Wikidata. Non c’è niente di sbagliato nell’avere più valori per la stessa proprietà. Per certe affermazioni – come i figli di una persona o le lingue ufficiali di un paese – è perfettamente ragionevole avere più valori. Essenzialmente si tratta di coppie proprietà-valore aggiuntive.

Ad esempio, per l’elemento Star Wars Episodio V: L’impero colpisce ancora (Q181795) la proprietà dello sceneggiatore ha questi valori:

Una rappresentazione grafica sarebbe:

Una rappresentazione grafica delle proprietà del regista e dello sceneggiatore e dei loro valori per l’elemento Q181795 di Wikidata
Skip to content