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.

Skip to content