Aiuto:Wikidata/SPARQL

Questa pagina raccoglie una serie di query SPARQL per Wikidata, con la caratteristica, rispetto ad altre pagine come d:Wikidata:SPARQL query service/queries/examples, di eseguire le ricerche più semplici e fondamentali, orientate agli utenti itwiki e scritte in modo che gli identificativi delle proprietà e i valori da ricercare possono essere facilmente rimpiazzati da quelli che servono di volta in volta all'utente.

Tutte le query visualizzano:

  • il numero dell'elemento (Qxxxx)
  • l'etichetta in italiano, se quest'ultima non è disponibile, sarà visualizzata quella in inglese, se manca anche questa sarà visualizzato il numero dell'elemento; è ottenuto tramite la riga: SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
  • se la query restituisce troppi risultati il risultato è limitato ai primi 100; è ottenuto tramite la riga: LIMIT 100

Per ottenere solo il numero di risultati sostiture negli esempi la prima riga (SELECT ...) con: SELECT (COUNT(?item) AS ?total)

Ricerca degli elementi con una specifica proprietàModifica

Esempio di come ricercare gli elementi con una specifica proprietà.

# Ricerca gli elementi che hanno la proprietà codice municipale norvegese (P2504)
SELECT ?item ?itemLabel ?propVal
WHERE {
  ?item wdt:P2504 ?propVal .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Ricerca gli elementi che hanno due specifiche proprietà (entrambe).

# Ricerca gli elementi che hanno sia la proprietà codice municipale norvegese (P2504) che la proprietà identificativo LCNAF (P244)
SELECT ?item ?itemLabel ?propVal ?propVal2
WHERE {
  ?item wdt:P2504 ?propVal .
  ?item wdt:P244 ?propVal2 .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Ricerca gli elementi che hanno una proprietà e non ne hanno invece un'altra.

# Ricerca gli elementi che hanno la proprietà codice municipale norvegese (P2504) e non hanno la proprietà identificativo LCNAF (P244)
SELECT ?item ?itemLabel ?propVal
WHERE {
  ?item wdt:P2504 ?propVal .
  MINUS { ?item wdt:P244 [] } .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Ricerca degli elementi in base al valore della proprietàModifica

Esempi di come ricercare gli elementi in base al valore di una certa proprietà. La query può cambiare a seconda del tipo di proprietà.

Proprietà di tipo ElementoModifica

Ricerca gli elementi che hanno una proprietà di tipo elemento con uno specifico valore.

# Ricerca gli elementi che hanno la proprietà "istanza di" (P31) uguale a museo (Q33506)
SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P31 wd:Q33506 .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Proprietà di tipo StringaModifica

Ricerca gli elementi che hanno una proprietà di tipo stringa con uno specifico valore.

# Ricerca gli elementi che hanno la proprietà codice di lingua Wikimedia (P424) uguale a it
SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P424 "it" .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Proprietà di tipo File multimediale su CommonsModifica

Ricerca gli elementi che hanno una proprietà di tipo File multimediale su Commons con uno specifico valore.

Occorre:

  • anteporre http://commons.wikimedia.org/wiki/Special:FilePath/ al nome del file da ricercare
  • sostituire gli spazi con %20
  • racchiudere l'URL risultante tra "<" e ">"
# Ricerca gli elementi che hanno la proprietà logo (P154) uguale a "The GIMP icon - gnome.svg"
SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P154 <http://commons.wikimedia.org/wiki/Special:FilePath/The%20GIMP%20icon%20-%20gnome.svg> .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Proprietà di tipo Forma geograficaModifica

Ricerca gli elementi che hanno una proprietà di tipo Forma geografica con uno specifico valore.

Occorre:

  • anteporre http://commons.wikimedia.org/data/main/ al nome della mappa da ricercare
  • sostituire gli spazi con "+"
  • racchiudere l'URL risultante tra "<" e ">"
# Ricerca gli elementi che hanno la proprietà geoshape (P3896) uguale a "Data:United States.map"
SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P3896 <http://commons.wikimedia.org/data/main/Data:United+States.map> .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Proprietà di tipo Coordinate geograficheModifica

Ricerca gli elementi che hanno una proprietà di tipo Coordinate geografiche con uno specifico valore.

# Ricerca gli elementi che hanno una specifica latitudine e longitudine in P625
SELECT ?item ?itemLabel
WHERE {
  ?item p:P625 ?coord .
  ?coord psv:P625 ?coord_node .
  ?coord_node wikibase:geoLatitude "48.858"^^xsd:decimal .  
  ?coord_node wikibase:geoLongitude "2.2953"^^xsd:decimal .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Non conoscendo a priori la latitudine e la longitudine esatta da ricercare, presumibilmente la ricerca sarà eseguita nei dintorni di un certo punto, come nell'esempio seguente.

# Ricerca gli elementi entro un chilometro da una specifica latitudine e longitudine in P625
SELECT ?item ?itemLabel ?distance
WHERE {
  SERVICE wikibase:around {
    ?item wdt:P625 ?coord .
    bd:serviceParam wikibase:center "Point(2.2953 48.858)"^^geo:wktLiteral .
    bd:serviceParam wikibase:radius "1" .
    bd:serviceParam wikibase:distance ?distance .
  }   
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Proprietà di tipo Testo monolinguaModifica

Ricerca gli elementi che hanno una proprietà di tipo Testo monolingua con uno specifico valore.

# Ricerca gli elementi che hanno la proprietà soprannome (P1449) uguale a "Ville-Lumière"
SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P1449 ?propVal .
  FILTER(STR(?propVal) = "Ville-Lumière") .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

La stessa query precedente ma specificando anche che la lingua utilizzata dev'essere il francese.

# Ricerca gli elementi che hanno la proprietà soprannome (P1449) uguale a "Ville-Lumière" e la lingua utilizzata è il francese
SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P1449 ?propVal .
  FILTER(STR(?propVal) = "Ville-Lumière" && LANG(?propVal) = "fr") .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

L'ultima query può essere anche scritta più semplicemente come:

# Ricerca gli elementi che hanno la proprietà soprannome (P1449) uguale a "Ville-Lumière" e la lingua utilizzata è il francese
SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P1449 "Ville-Lumière"@fr .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Proprietà di tipo QuantitàModifica

Ricerca gli elementi che hanno una proprietà di tipo Quantità con uno specifico valore.

# Ricerca gli elementi che hanno la proprietà altezza sul mare (P2044) uguale a "10000"
SELECT ?item ?itemLabel
WHERE {
  ?item p:P2044 ?statement .
  ?statement psv:P2044 ?valuenode .
  ?valuenode wikibase:quantityAmount "10000"^^xsd:decimal .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

La stessa query precedente ma specificando anche che l'unità di misura utilizzata dev'essere il piede (Q3710).

# Ricerca gli elementi che hanno la proprietà altezza sul mare (P2044) uguale a "10000" e l'unità di misura è il piede (Q3710)
SELECT ?item ?itemLabel
WHERE {
  ?item p:P2044 ?statement .
  ?statement psv:P2044 ?valuenode .
  ?valuenode wikibase:quantityUnit wd:Q3710 .
  ?valuenode wikibase:quantityAmount "10000"^^xsd:decimal .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Proprietà di tipo Tabular dataModifica

Ricerca gli elementi che hanno una proprietà di tipo Tabular data con uno specifico valore.

Occorre:

  • anteporre http://commons.wikimedia.org/data/main/ al nome della tabella da ricercare
  • sostituire gli spazi con "+"
  • racchiudere l'URL risultante tra "<" e ">"
# Ricerca gli elementi che hanno la popolazione tabellare (P4179) uguale a "Data:Taipei Beitou District Population.tab"
SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P4179 <http://commons.wikimedia.org/data/main/Data:Taipei+Beitou+District+Population.tab> .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Proprietà di tipo Data e oraModifica

Ricerca gli elementi che hanno una proprietà di tipo Data e ora con uno specifico valore.

# Ricerca gli elementi che hanno la proprietà data di nascita (P569) uguale a 4 luglio 1807
SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P569 "1807-07-04T00:00:00Z"^^xsd:dateTime .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Proprietà di tipo URLModifica

Ricerca gli elementi che hanno una proprietà di tipo URL con uno specifico valore.

# Ricerca gli elementi che hanno la proprietà sito web ufficiale (P856) uguale a http://www.example.com
SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P856 <http://www.example.com> .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Proprietà di tipo Identificativo esternoModifica

Ricerca gli elementi che hanno una proprietà di tipo Identificativo esterno con uno specifico valore.

# Ricerca gli elementi che hanno l'identificativo IMDb uguale a tt0068646
SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P345 "tt0068646" .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Proprietà di tipo Espressione matematicaModifica

Ricerca gli elementi che hanno una proprietà di tipo Espressione matematica con uno specifico valore.

Per questa query c'è ancora qualche problema in risoluzione a Phab:T195765.

Etichette, descrizioni e aliasModifica

Ricerca gli elementi che hanno l'etichetta con uno specifico valore.

# Ricerca gli elementi che hanno l'etichetta in italiano uguale a "Parigi"
SELECT ?item
WHERE {
  ?item rdfs:label "Parigi"@it .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Ricerca gli elementi che hanno la descrizione con uno specifico valore.

# Ricerca gli elementi che hanno la descrizione in italiano uguale a "capoluogo della città metropolitana di Milano e della Lombardia"
SELECT ?item ?itemLabel
WHERE {
  ?item schema:description "capoluogo della città metropolitana di Milano e della Lombardia"@it .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Ricerca gli elementi che hanno un alias con uno specifico valore.

# Ricerca gli elementi che hanno un alias in italiano uguale a "Città eterna"
SELECT ?item ?itemLabel
WHERE {
  ?item skos:altLabel "Città eterna"@it .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

SitelinkModifica

Tutte le query precedenti possono essere ulteriormente ristrette per:

  • avere una voce in itwiki: FILTER EXISTS { ?wit schema:about ?item . ?wit schema:inLanguage "it" }
  • non avere una voce in itwiki: FILTER NOT EXISTS { ?wit schema:about ?item . ?wit schema:inLanguage "it" }

Esempi:

# Ricerca gli elementi che hanno la proprietà codice municipale norvegese (P2504) e una voce in itwiki
SELECT ?item ?itemLabel ?propVal
WHERE {
  ?item wdt:P2504 ?propVal .
  FILTER EXISTS { ?wit schema:about ?item . ?wit schema:inLanguage "it" }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

# Ricerca gli elementi che hanno la proprietà codice municipale norvegese (P2504) e che non hanno una voce in itwiki
SELECT ?item ?itemLabel ?propVal
WHERE {
  ?item wdt:P2504 ?propVal .
  FILTER NOT EXISTS { ?wit schema:about ?item . ?wit schema:inLanguage "it" }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

QualificatoriModifica

Esempio di come ricercare gli elementi con una specifica proprietà con uno specifico qualificatore.

# Ricerca gli elementi che hanno la proprietà via (P669) con qualificatore numero civico (P670)
SELECT ?item ?itemLabel ?qVal
WHERE {
  ?item p:P669 ?statement .
  ?statement pq:P670 ?qVal .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

Esempio di come ricercare gli elementi in base al valore di una certa proprietà (di tipo elemento) e al valore di un suo qualificatore (di tipo stringa).

# Ricerca gli elementi che hanno la proprietà via (P669) uguale a via Giuseppe Garibaldi (Q2343106) con qualificatore numero civico (P670) uguale a "1"
SELECT ?item ?itemLabel
WHERE {
  ?item p:P669 ?statement .
  ?statement ps:P669 wd:Q2343106 .
  ?statement pq:P670 "1" .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en" }
}
LIMIT 100

Provala!

RiferimentiModifica

  Progetto Wikidata: collabora a Wikipedia sull'argomento Wikidata