Escludere dei risultati

FILTER – escludere dei risultati

Finora abbiamo visto modificatori che operavano sulla clausola SELECT o dopo la clausola WHERE. Un altro utile modificatore è FILTER, che può apparire all’interno della clausola WHERE.
Dimostreremo il filtraggio in due modi: la funzione FILTER che seleziona solo gli elementi che soddisfano la condizione del filtro (cioè esclude gli elementi che non lo fanno) e FILTER NOT EXISTS che è una clausola che esclude i risultati che corrispondono a determinati schemi.

Funzione FILTER

La funzione FILTER esclude gli elementi in base all’espressione che appare all’interno delle parentesi della funzione: vengono utilizzati solo i risultati per i quali l’espressione tra parentesi è vera.

Supponiamo di voler modificare la query sui 10 film di maggior incasso che fanno parte di una serie, in modo che la query restituisca solo i film usciti prima del 2000.

Alla riga 8, abbiamo aggiunto un modello di corrispondenza per raccogliere il valore della proprietà P577 (data di pubblicazione) con la variabile ?date. Nella riga successiva abbiamo utilizzato FILTER per includere solo gli elementi la cui data di pubblicazione è precedente al 01-01-2000.

Nota che mettiamo la data del criterio (01-01-2000) tra virgolette e aggiungiamo “^^xsd:dateTime” dopo, per indicare che il formato di questo valore è una data.

Funzione YEAR

Un altro modo per scrivere questa query è usare la funzione YEAR. Questa funzione incorporata restituisce la parte dell’anno di una data (o un valore dateTime):

FILTER NOT EXISTS

Diciamo di voler modificare la query sulle attrici nominate per più di tre Academy Awards, in modo che la query restituisca solo quelle attrici che non hanno mai ricevuto un Academy Award.

Aggiungiamo la clausola FILTER NOT EXISTS, nella quale specifichiamo i pattern che NON devono essere abbinati, ovvero che l’attrice ha una proprietà P166 (premio ricevuto) che ha un valore che è un’istanza (P31) di Academy Awards (Q19020):

In altre parole, la query esclude gli elementi che hanno istruzioni che corrispondono al modello fornito all’interno della clausola FILTER NOT EXISTS.

Skip to content