Wikidata:SPARQL query service/Una introduzione indolore a Wikidata Query Service

Outdated translations are marked like this.

Other languages:
Afrikaans • ‎Bahasa Indonesia • ‎Deutsch • ‎English • ‎Türkçe • ‎català • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎svenska • ‎русский • ‎српски / srpski • ‎українська • ‎العربية • ‎বাংলা • ‎中文 • ‎日本語

Una introduzione indolore a Wikidata Query Service

Ti sei mai fatto domande come

  • Quali sono le città più grandi al mondo con un sindaco donna?
  • Quali aeroporti sono localizzati entro 100km da Berlino?
  • Chi sono i discendenti conosciuti di Genghis Khan?

Wikidata ha le risposte.

Cos'è Wikidata?

Wikidata è un deposito di conoscenza. Puoi leggere un'introduzione all'idea e i concetti che stanno dietro Wikidata nella nostra pagina di introduzione.

Come faccio una domanda?

La lingua di interrogazione per fare domande come queste su Wikidata è chiamata SPARQL. Se questo suona troppo tecnico e troppo complicato per te, non preoccuparti. Per questa introduzione indolore non dovrai imparare SPARQL. Invece, esamineremo le query di esempio esistenti e come modificarle.

Cos'è una query?

Una query è una speciale forma di domanda che i sistemi informatici possono comprendere e quindi rispondere. A meno che tu non stia interagendo con un'Intelligenza Artificiale, avrai bisogno di imparare come formulare le tue domande nel modo corretto.

Posso usare liberamente questi dati?

Sì. Wikidata può essere utilizzato da chiunque per qualsiasi cosa perché tutti i dati sono nel Pubblico Dominio (CC0).

E adesso?

Inizieremo con un esempio semplice per mostrarti come usare questo servizio, poi andremo via via a fare esempi più complessi in maniera tale che alla fine avrai la risposta alle tue domande. Promesso.

Come utilizzare Wikidata per una query semplice

Esaminiamo un semplice esempio che dimostra come ottenere un elenco di tutti i gatti conosciuti nel mondo.

Ottenere un elenco di tutti i gatti nel mondo

Usa questo URL per accedere al Query Service: https://query.wikidata.org

  1. Clicca su Esempi
  2. Seleziona Cats (Gatti) dalla lista che appare nella nuova finestra
  3. Clicca su Esegui query (è il tringolo bianco a metà schermata a sinistra)

 

Questo ci ha dato una lista di tutti i gatti, famosi o no presenti su Intenet - o almeno quelli di cui Wikidata è a conoscenza. È fantastico, purché tu sia un amante dei gatti e non, per esempio, un amante dei cani.

E per i cani?

Se vuoi elencare i cani invece (o qualsiasi altra cosa simile), ci sono due modi per modificare la tua query:

  1. Usa il Query Helper per cambiare l'elemento da gatto a zoo (giardino zoologico):  
  2. Modificare manualmente la query Ogni elemento su Wikdiata è identificato univocamente usando un codice. Questo codice è Q146 per “gatto domestico”. Per trovare il corrispondente codice per il “cane”, puoi cercarlo su Wikidata:
  1. Usa il completamento automatico (sarà spiegato meglio alla fine)
  2. Inizia con l'esempio"Gatti", rimuovi "Q146"
  3. Posiziona il cursore dopo "wd:"
  4. Digita "Cane" dopo "wd:"
  5. Premi Ctrl+Spazio
  6. Usa le frecce su/giù per selezionare; quando premi Invio - sarà sostituito con Q144
Nota: i risultati della ricerca dipendono dalla lingua dell'interfaccia.
  1. Vai a https://www.wikidata.org
  2. Scrivi “cane” nella casella di ricerca
  3. Clicca sul primo risultato della lista dei risultati
  4. Prendi nota del numero dell'item per “cane” dalla pagina Wikidata che si apre (Q144)

 

Per cambiare la tua query da “gatto” a “cane”, semplicemente sostituisci Q146 con Q144 nell'editor di query SPARQL.

Esegui la query, verrà mostrata una lista di tutti i cani, famosi o no presenti su Internet.

 

Scomposizione della query

Ora analizziamo il codice per per poterlo generalizzare in maniera tale da poter cercare qualsiasi singolo oggetto (ad esempio, cani, pianeti, paesi, canzoni):

#Cats
SELECT ?item ?itemLabel
WHERE
{
	?item wdt:P31 wd:Q146 . 
	SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
  • SELECT Una query SELEZIONA (SELECT) qualcosa. Che cosa esattamente si desidera selezionare e visualizzare è descritto più avanti, ma per il momento ci limitiamo ad indicare i segnaposto (o variabili). Qui queste variabili sono chiamate ?item e ?itemLabel. Puoi dire che qualcosa è una variabile se inizia con un punto interrogativo.
  • ?item Questa è la lista di articoli che stiamo cercando. Nel nostro caso sarebbero i famosi gatti. Gli articoli su Wikidata funzionano in molte lingue diverse, quasi 300. Poiché non pensiamo che tutto il mondo sia inglese e tutte le altre lingue siano solo casi speciali dell' inglese, gli elementi sono archiviati in modo da funzionare attraverso i vari linguaggi. Ogni concetto ha un numero. Q146 è il concetto di gatto, Q64 è Berlino in Germania, Q42 è lo scrittore Douglas Adams e così via. Suggerimento: ?item è solo il nome di una variabile che abbiamo deciso di usare. Potrebbe essere qualsiasi cosa, ad esempio; ?animale.
  • ?itemLabel Gli umani possono digerire i nomi in una lingua umana molto meglio dei numeri. Un'etichetta è il nome di un oggetto in una lingua umana, es. italiano (o esperanto, o giapponese, o zulu…). Noi vogliamo che sia visualizzata l'etichetta nella nostra query, così che Q1371145 sarà mostrato come “Socks” (il gatto appartenente a Bill Clinton e famiglia). Maggiori dettagli sul servizio label in Manuale utente.
  • WHERE {   Questa è la clausola WHERE della query. Qui definiamo cosa va nei segnaposti. Una clausola WHERE inizia con una parentesi graffa aperta { e termina con una parentesi graffa di chiusura }.
  • ?item Questo è il segnaposto che vogliamo riempire. È l'argomento di cui vogliamo sapere qualcosa.
  • wdt:P31 Questo è il predicato del soggetto. Se passi il mouse sopra, vedrai che sta per istanza di.

What exactly you want to select and display is described later, but for the time being you just state the placeholders (or variables). Here they are called ?item and ?itemLabel. You can tell that something is a variable if it starts with a question mark.

  • ?item This is the list of items we are looking for. In our case that would be the famous cats. Items on Wikidata work in many different languages, almost 300 of them. Because we don’t think that everything in the world is English and all the other languages are just special cases of English, items are stored in a way that works across languages. Every concept gets a number. Q146 is the concept of a cat, Q64 is Berlin in Germany, Q42 is the writer Douglas Adams and so on. Tip: ?item is just a variable name that we decided to use in our query. It could be anything, for example: ?animal.
  • ?itemLabel Humans can digest names in a human language much better than numbers. A label is the name of an item in a human language, e.g. English (or Esperanto, or Japanese, or Zulu…). We want the labels displayed in our query so that Q1371145 gets displayed as “Socks” (the cat belonging to Bill Clinton and family). Precise details about label service in User manual.
  • WHERE {   This is the WHERE clause of the query. Here we define what goes in the placeholders. A WHERE clause starts with an opening curly bracket { and ends with a closing curly bracket }.
  • wdt:P31 This is the predicate of the subject. If you hover over it, you’ll see that it stands for instance of.

 

  • wd:Q146 . Questo è l'oggetto. Se passi il mouse sopra, vedrai che sta per gatto domestico.

If you hover over it, you’ll see that it stands for cat.

 

Tutto questo è un bel boccone. Può aiutare se esprimiamo la query in linguaggio naturale:

“Dammi un elenco di elementi e le loro etichette, dove gli elementi sono istanza di gatto domestico. Quindi genera le etichette per gli articoli in inglese.”

Con il codice che abbiamo usato nei nostri esempi abbiamo mostrato un elenco di tutti i gatti famosi e no presenti su Internet. Questa query può essere facilmente modificata per mostrare, per esempio, un elenco simile per i cani.

Procedura dettagliata da testo a SPARQL

Queste immagini mostrano come scrivere triplette in linguaggio umano e convertirle in query SPARQL:

The key is to prefix variables with ?, items with wd: and properties with wdt:, and then using the Ctrl+Space (or Ctrl+Alt+Space or Alt+Enter) keyboard shortcut to activate the auto-completion feature that replaces the latter two with the actual Wikidata identifiers.

 

 

Approfondire l'interfaccia utente

Come cambiare la lingua in cui vengono visualizzati i risultati?

Con questo strumento per le query di ricerca, puoi non solo personalizzare e cercare query semplici o aggregate, composte, nidificate e complesse, ma puoi anche cercare in QUALSIASI lingua e ottenere risultati in QUALUNQUE lingua.

  • Cambia il codice lingua da "en" (inglese) a qualsiasi altro codice di lingua, diciamo "ja" per il giapponese.
#Cats  
SELECT ?item ?itemLabel WHERE
{
     ?item wdt:P31 wd:Q146 .
     SERVICE wikibase:label { bd:serviceParam wikibase:language "ja" }
}

Come modificare l'ordine di ordinamento dei risultati visualizzati?

L'ordinamento degli elementi visualizzati può essere facilmente modificato nell'interfaccia. Basta cliccare sulle colonne pertinenti dei risultati di ricerca per personalizzare l'ordinamento:

 

Come cambiare la lingua dell'interfaccia utente?

Clicca sulla parola italiano e seleziona la lingua dall'elenco visualizzato:

 

Nota che l'interfaccia utente è cambiata nella lingua selezionata:

Ma io voglio le foto dei gatti! Come cercare le immagini?

Finora, abbiamo visto il risultato delle query visualizzate come tabella. Proviamo con le immagini:

Copia la query qua sotto ed eseguila: immagini di gatti salteranno fuori nella metà inferiore dello schermo.

 

Questo è come mostrare il risultato con immagini al posto di tabelle. È possibile cambiare manualmente la modalità di visualizzazione dei dati utilizzando il menu a sinistra subito prima dei risultati. Prova a cambiare il menu da "Image grid" a "Table" per vedere lo stesso risultato in una vista tabellare.

Diamo un'occhiata alle novità nella query, rispetto alla query nel capitolo precedente. Scritto in semplice italiano, la query dovrebbe leggersi "Dammi tutti gli elementi che hanno qualcosa a che fare con i gatti. Dammi anche l'immagine per ogni elemento. E a proposito, mostra il risultato come una griglia di immagini, non come una tabella. "

  • #defaultView:ImageGrid Quello che sembra un commento, è in realtà un'istruzione per visualizzare il risultato della query come immagini anziché come tabella.
  • ?x1 Questo significa che facciamo una query per qualsiasi predicato, non solo per “è un'istanza di”. Pensa a predicati come “raffigura” (P180) o “prende il nome da” (P138). Non stiamo usando ?x1 in nessun'altra parte della query, il che significa che il segnaposto sta per "Non mi interessa quale sia il predicato, dammi tutti i risultati che in qualche modo hanno un gatto come soggetto”
  • OPTIONAL All'interno delle parentesi graffe viene visualizzata un'altra istruzione che aggiunge dati opzionali al risultato. Il segnaposto ?item è riusato in coppia con il predicato P18 (“immagine”) e un nuovo segnaposto: ?pic. Racchiudere la dichiarazione in OPTIONAL significa che gli elementi non obbligatoriamente devono avere un predicato P18 da mostrare nella lista e che il segnaposto ?pic può essere vuoto.

Prova a modificare la query:

  • Cerca cani anziché gatti. Suggerimento: cambia l'oggetto nella prima dichiarazione all'interno del WHERE.
  • Mostra solo gli elementi che “raffigurano” cani (otterrai i dipint). Sugggerimento: sostituisci ?x1 con qualcos'altro.
  • Rimuovi OPTIONAL

Ci sono altri modi di mostrare i tuoi dati, ma non tutti sono sempre applicabili, questa è la ragione per cui alcuni nel menù sono in grigio. “Image grid” è selezionabile solo se il risultato contiene URL di immagini. In uno dei prossimi capitoli imparerai come visualizzare gli elementi come punti su una mappa.

Come condividere la tua query affinché altri utenti la possano utilizzare?

Se vuoi condividere la tua query con qualcun altro, ad esempio sui social media, puoi creare un link breve per la tua query.

  • Completa la tua richiesta
  • Clicca sull'icona Collegamento (a destra prima dei risultati):
  • Clicca su URL breve al risultato e copia l'URL mostrato. Questo è l'URL per la query.

Trovare cose sulle mappe

Esistono altri modi per visualizzare i risultati della query. Se la query richiede coordinate geografiche, i risultati possono essere visualizzati su una mappa.

Guarda questo esempio di fari in Norvegia. Quando esegui la query, vedrai dei punti rossi che indicano la posizione dei fari sulla costa norvegese.


Using the Explorer Dialog

Once the results of a query have loaded, you can see a magnifying glass icon on each result. Clicking this icon opens the Explorer Dialog.

 

The explorer dialog by default, displays a single node representing that particular result. Below the node, you can see a toggle that defaults to ‘Outgoing’. This means that clicking on any node will expand all the properties of that node, from the entire Wikidata knowledge base. Toggling this to ‘Incoming’ allows you to see all the incoming links or properties that point to the node. This is a way to explore all the relationships between the various items and their properties using Wikidata.

 

You can open multiple explorer dialogs at once, allowing you to compare the results of more than one query at once. The explorer dialog also has a toolbar at the bottom right corner which is used to switch between multiple views like Graph, Tree, Map, Table etc.

C'è ancora di più

Ci sono più visualizzazioni da esplorare:

e altre ancora.

Guarda gli esempi di query e provali!

Completamento automatico

Nell'editor puoi premere Ctrl+Spazio in qualsiasi punto della query e ottenere suggerimenti per il codice che possono essere appropriati; seleziona il suggerimento appropriato con freccia in su/freccia giù, e premi Invio per selezionarlo.

Per esempio invece di scrivere ogni volta SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }, puoi semplicemente scrivere SERV, premere Ctrl+Spazio e il primo sugggerimento sarà quello che aggiunge il Service label pronto da usare! Semplicemente premi Invio per accettarlo. (La formattazione sarà leggermente diversa, ma non importa.)

Inoltre il completamento automatico può anche ricerche al posto tuo. Se si digita uno dei prefissi di Wikidata, come wd: or wdt:, e poi digiti Ctrl+Spazio cercherà quel testo su Wikidata e suggerirà i risultati. wd: ricerca negli elementi, wdt: nelle proprietà. Ad esempio, anziché cercare gli articoli per Johann Sebastian Bach (Q1339) e father (P22), puoi semplicemente digitare wd:Bach e wdt:pad e selezionare la voce giusta dal completamento automatico. (Questo funziona anche con gli spazi nel testo, es. wd:Johann Sebastian Bach.)

Dove andare da qui

Probabilmente ora puoi orientarti in Wikidata Query Service. Esplorare l'interfaccia e modificare i valori nelle query può essere un buon modo per imparare come fare le tue domande su Wikidata.