Diego MAGRO di Informaticagoy/materiale/1920/magro.pdfDal Web semantico al Web di dati • Iniziamo...
Transcript of Diego MAGRO di Informaticagoy/materiale/1920/magro.pdfDal Web semantico al Web di dati • Iniziamo...
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Gufi, scintille e altre cose straneUna panoramica sull’idea di Web Semantico e su
quanto essa ha finora prodotto
Diego MAGRODipartimento di Informatica
Università di Torino
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Sommario
1. Cose per nulla strane 2. Cose un po’ strane (molto interessanti, ma
che non tratteremo)3. Cose strane4. Scintille5. Gufi
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Cose per nulla strane
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Il Web attuale
• L’attuale Web è:
– una rete globale di risorse informative (multimediali) interconnesse
– una piattaforma globale attraverso cui è possibile produrre e accedere a risorse informative e offrire e fruire di servizi
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Risorse per gli umani…
• Molte risorse presenti su Web sono rivolte principalmente a utenti umani:
» testi
» immagini
» audio
» video
» …
Sempre caro mi fu quest’ermo colle, /e questa siepe…
https://openclipart.org/
https://openclipart.org/
https://openclipart.org/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Un esempio di risorsa testuale: la pagina Wikipedia per Torino
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Torino Film Festival
Esempi di collegamenti ipertestuali fra risorse Web
http://en.wikipedia.org/wiki/Turin
Wikipedia
Università di Torino
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Cose un po’ strane (molto interessanti, ma che non tratteremo)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Accesso da parte delle macchine alle risorse pensate per gli umani
• Sono stati sviluppati particolari software per accedere al contenuto (o, almeno, ad una parte di esso) di risorse testuali, audio, video e immagini, basati su complesse tecnologie, es.– Tecnologie di Natural Language Processing per la “comprensione” di testi (o l’estrazione di informazione da testi)
– Tecnologie di elaborazione delle immagini per la “comprensione” del contenuto di immagini (e filmati)
– Tecnologie di elaborazione dell’informazione audio per la comprensione del parlato (e altro)
– …
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Esempio di uso di tecnologie di NERC (Named Entity Recognition and Classification)
Stanford NER online demo http://nlp.stanford.edu:8080/ner/(al 22/02/2020, risulta non disponibile)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Esempio di uso di tecnologie di NERC (Named Entity Recognition and Classification)
Stanford NER online demo http://nlp.stanford.edu:8080/ner/(al 22/02/2020, risulta non disponibile)
Qualche errore…
DipartimentoInformatica
© Diego MAGRO - All rights reserved
[un secondo] Esempio di uso di tecnologie di NERC (Named Entity Recognition and Classification)
Qualche errore e qualche imprecisione…
Allen NLP NER online demo https://demo.allennlp.org/named‐entity‐recognition
DipartimentoInformatica
© Diego MAGRO - All rights reserved
https://twitter.com/filmreviewin140
Esempio di uso di tecnologie di Sentiment Analysis
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Esempio di uso di tecnologie di Sentiment Analysis
Stanford Sentiment Analysis online demo http://nlp.stanford.edu:8080/sentiment/rntnDemo.html(al 22/02/2020, risulta non disponibile)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Esempio di uso di tecnologie di Sentiment Analysis
Stanford Sentiment Analysis online demo http://nlp.stanford.edu:8080/sentiment/rntnDemo.html(al 22/02/2020, risulta non disponibile)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
[un secondo] Esempio di uso di tecnologie di Sentiment Analysis
Allen NLP Sentiment Analysis online demo https://demo.allennlp.org/sentiment‐analysis
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Google Immagini [https://images.google.com/]
Esempio di uso di tecnologie per la “comprensione” delle immagini
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Esempio di uso di tecnologie per la “comprensione” delle immagini
Wow!Ci azzecca!!
Google Immagini [https://images.google.com/]
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Altro esempio di uso di tecnologie per la “comprensione” delle immagini
Clarifai image recognition demohttp://www.clarifai.com/demo(al 22/02/2020, risulta non disponibile)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Altro esempio di uso di tecnologie per la “comprensione” delle immagini
http://www.clarifai.com
Be’…ci azzeccava
(marzo 2019) abbastanza!
Clarifai image recognition demohttp://www.clarifai.com/demo(al 22/02/2020, risulta non disponibile)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
L’accesso al contenuto informativo di questo genere di risorse è:
agevole per un umano faticoso per un agente artificiale
da https://openclipart.org/da https://openclipart.org/
FIGO!UFF!
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Cose strane
DipartimentoInformatica
© Diego MAGRO - All rights reserved
…e risorse per le macchine
• Due considerazioni:1. Attualmente:
a) organizzazioni e persone dispongono di una grande quantità di dati (molti dei quali possono essere pubblicati)
b) Molti dati sono presenti nei database che stanno “dietro le quinte” delle applicazioni Web (data tier)
Questi dati potrebbero essere pubblicati su Web e resi disponibili a chiunque (umani e/o macchine)
2. Nuove e interessanti applicazioni potrebbero essere costruite se le macchine potessero aver direttoaccesso al contenuto informativo (alla semantica) di dati e informazioni presenti su Web
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Semantic Web
• Tutto inizia così, nel 2001, con questo articolo:– T. Berners‐Lee, J. Hendler and O. Lassila, “The Semantic Web. A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities”, Scientific American, 2001
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Semantic Web
• Tutto inizia così, nel 2001, con questo articolo:– T. Berners‐Lee, J. Hendler and O. Lassila, “The Semantic Web. A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities”, Scientific American, 2001
Da: http://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Tim_Berners‐Lee_2012.jpg/220px‐Tim_Berners‐Lee_2012.jpg
Da: http://openclipart.org/
Oh! Questo è l’inventore(assieme a Robert Cailliau) del Web!! ...e attuale direttore del W3C!!
Mica uno qualunque!
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Inizia così l’avventura della costruzione del Web semantico
• Idea centrale: arricchire il Web con rappresentazioni formali del contenuto semantico delle risorse, in modo da rendere tale contenuto immediatamente accessibile alle macchine
• …quindi, il Web semantico è concepito per ampliare, non per sostituire, il Web ‘‘classico’’!
Semantic Web
DipartimentoInformatica
© Diego MAGRO - All rights reserved
“Semantic Web (Layer) Cake” o “Semantic Web Stack”
Tratto da http://en.wikipedia.orgLicenza: Public Domain
Ne esistono altre versioni, leggermente diverse da questa e fra loro
Tratto da http://openclipart.org/Licenza: Public Domain
DipartimentoInformatica
© Diego MAGRO - All rights reserved
“Semantic Web (Layer) Cake” o “Semantic Web Stack”
Tratto da http://en.wikipedia.orgLicenza: Public Domain
Tratto da http://openclipart.org/Licenza: Public Domain
Da: http://openclipart.org/
Casomai interessasse, un bel tutorial (non recentissimo) - legalmente scaricabile a gratis! - su Web Semantico:
Ivan Herman, “Tutorial on Semantic Web”, W3C, reperibile all’URL http://www.w3.org/People/Ivan/CorePresentations/SWTutorial/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
“Semantic Web (Layer) Cake” o “Semantic Web Stack”
Tratto da http://en.wikipedia.orgLicenza: Public Domain
Tratto da http://openclipart.org/Licenza: Public Domain
Le informazioni presenti e scambiate nell’ambito del Web semantico hanno una rappresentazione testuale (in cui i caratteri appartengono al Character set Unicode) in un qualche formato XML
(…il formato XML non è però l’unico possibile)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Le attese iniziali…
• Inizialmente, ci si aspettava (si sperava) che, nel giro di pochi anni, la rappresentazione formale ed esplicita della semantica delle informazioni sarebbe stata così pervasiva da essere presente su molte pagine (e, in generale, associata a molte risorse) Web
• Il contenuto di quelle pagine e risorse sarebbe quindi diventato immediatamente accessibile anche alle macchine (oltre che agli umani)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Le attese (almeno in parte) deluse…
• Non andò proprio così:– Si iniziò la costruzione del Web semantico– Vennero definiti standard e messe a punto tecnologie (di alcuni parleremo in questa presentazione)
– Ma non ci fu nelle pagine Web un’inondazione di semantica formalizzata (machine‐readable)
– Tipicamente, nelle attuali pagine Web, possiamo trovare ‘‘briciole’’ di semantica machine‐readablesotto forma di annotazioni schema.org (https://schema.org/) e poco più…
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Una parziale correzione di rotta (o di narrazione) in corso d’opera…
• Inserire nelle pagine Web una rappresentazione formale del loro contenuto non è l’unico modo di rendere disponibile semantica machine‐readablesul Web…
• Pubblichiamo su Web dati in formati aperti, accessibili, machine‐readable e interconnettiamoli fra loro: costruiremo così un Web di dati navigabile e fruibile dalle macchine
• …potremo poi aggiungere a questi dati uno strato semantico che ne rappresenti il significato in maniera direttamente accessibile alle macchine
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Dal Web semantico al Web di dati
• Iniziamo “dal basso”, cioè dai dati…
• ‘‘Semantic Web’’ e ‘‘Web of data’’ diventano sinonimi(e la prima espressione comincia ad essere meno usata)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Le 5 stelle di Tim Berners‐Lee
Esempi a http://5stardata.info/ (non molto recenti, ma ancora validi)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Le 5 stelle di Tim Berners‐Lee
Esempi a http://5stardata.info/ (non molto recenti, ma ancora validi)
Qui intervengono le tecnologie e le buone pratiche legate al Web of data
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Linked Data
• I Linked Data sono un insieme di best practices per la pubblicazione di dati su Web:1. Use IRIs as names for things.2. Use HTTP IRIs, so that people can look up those names.3. When someone looks up a IRI, provide useful
information, using the standards (RDF, SPARQL).4. Include links to other IRIs, so that they can discover
more things.Un dataset con licenza aperta e pubblicato secondo i
principi dei linked data è un dataset a 5 stelle
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Casomai interessasse, un bel tutorial su Linked Data (nemmeno questo recentissimo):
T. Heath and C. Bizer: Linked Data: Evolving the Web into a Global Data Space, 2011http://www.linkeddatabook.com/editions/1.0/
Linked Data
Da: http://openclipart.org/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Un esempio: DBpediala versione “linked data” di Wikipedia: http://dbpedia.org/
• DBpedia è la versione “linked data” di Wikipedia• Ne esistono anche localizzazioni in 125 lingue diverse, compresa quella italiana: http://it.dbpedia.org/
• Contiene informazioni estratte da Wikipedia e rappresentate in modo da essere facilmente fruite da una macchina
• Al momento, è uno dei più importanti esempi di applicazione dei principi dei linked data (…anchese perfettibile sotto vari aspetti…)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
La pagina Wikipedia vs quella DBpediasu Torino
Wikipedia:http://en.wikipedia.org/wiki/Turin
DBpedia:http://dbpedia.org/page/Turin
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• La pagina DBpedia su Torino è poco adatta ad un utente umano (per questi, meglio quella di Wikipedia)… ed è poco adatta anche per una macchina
La pagina Wikipedia vs quella DBpediasu Torino
da https://openclipart.org/ da https://openclipart.org/
Bah!Bah!
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Allora, a che serve la pagina di DBpedia?
• Fornisce ad un utente umano la visione sui dati che DBpedia offre alle macchine
• Tali dati sono però offerti ad una macchina in una diversa rappresentazione…ed è (anche) questa la forza di DBpedia:
La pagina Wikipedia vs quella DBpediasu Torino
DipartimentoInformatica
© Diego MAGRO - All rights reserved
La descrizione di Torino che DBpediaoffre alle macchine
Wow!
DipartimentoInformatica
© Diego MAGRO - All rights reserved
“Semantic Web (Layer) Cake” o “Semantic Web Stack”
Tratto da http://en.wikipedia.orgLicenza: Public Domain
I PRINCIPI DEI LINKED DATA1. Use IRIs as names for things.2. Use HTTP IRIs, so that people
can look up those names.3. When someone looks up a IRI,
provide useful information, using the standards (RDF, SPARQL).
4. Include links to other IRIs, so that they can discover more things.
Tratto da http://openclipart.org/Licenza: Public Domain
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Linked Data: uso di IRI HTTP
• Gli IRI HTTP sono stati originariamente introdotti per identificare risorse Web (e specificarne l’ubicazione nel Web), es:
– http://en.wikipedia.org/wiki/Turin identifica la pagina in inglese di Wikipedia che descrive Torino (e specifica dove si trova tale pagina nella Rete)
– http://www.unito.it/ identifica la home page del sito dell’Università di Torino (e specifica dove si trova tale pagina nella Rete)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• In ambito Linked Data, un IRI HTTP può identificare qualunque cosa: risorse Web, oggetti reali, concetti astratti, relazioni…
• …inoltre, ogni elemento che necessita di essere identificato è identificato tramite IRI HTTP
• Es. (di IRI usati in DBpedia):– http://dbpedia.org/resource/Turin identifica la città di Torino
– http://dbpedia.org/ontology/Scientist identifica il concetto di Scienziato
– http://dbpedia.org/ontology/birthPlace identifica la relazione fra una persona e il luogo di nascita
Linked Data: uso di IRI HTTP
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• In ambito Linked Data, un client Web che chiede la “dereferenziazione” di un IRI deve ottenere o la risorsa Web corrispondente (se l’IRI identifica una risorsa Web), oppure una descrizione della risorsa (se l’IRI identifica un’entità che non è una risorsa Web)
• Es., se nella barra indirizzi di un browser digitiamo http://dbpedia.org/resource/Turin, otteniamo la già citata pagina Web di DBpedia su Torino
Linked Data: uso di IRI HTTP
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• In ambito Linked Data, un client Web che chiede la “dereferenziazione” di un IRI deve ottenere o la risorsa Web corrispondente (se l’IRI identifica una risorsa Web), oppure una descrizione della risorsa (se l’IRI identifica un’entità che non è una risorsa Web)
• Es., se nella barra indirizzi di un browser digitiamo http://dbpedia.org/resource/Turin, otteniamo la già citata pagina Web di DBpedia su Torino
Linked Data: uso di IRI HTTP
DipartimentoInformatica
© Diego MAGRO - All rights reserved
“Semantic Web (Layer) Cake” o “Semantic Web Stack”
Tratto da http://en.wikipedia.orgLicenza: Public Domain
I PRINCIPI DEI LINKED DATA1. Use IRIs as names for things.2. Use HTTP IRIs, so that people
can look up those names.3. When someone looks up a IRI,
provide useful information, using the standards (RDF, SPARQL).
4. Include links to other IRIs, so that they can discover more things.
Tratto da http://openclipart.org/Licenza: Public Domain
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Linked Data: uso di RDF (Resource Description Framework)
• In ambito Linked Data i dati sono rappresentati secondo il modello RDF
• RDF è un modello dati (piuttosto semplice)
• E’ una specifica del W3C (http://www.w3.org/)
• Una buona descrizione introduttiva prodotta dal W3C: “RDF 1.1 Primer” (W3C Working Group Note 24 June 2014) [http://www.w3.org/TR/2014/NOTE‐rdf11‐primer‐20140624/]
• In RDF i dati sono rappresentati da “triple” o “asserzioni” (in inglese: “statements”) (soggetto predicato oggetto)
• Informalmente: il significato di una tripla (s p o) è: “il soggetto s ha valore o per il predicato p” (viene usato anche il termine “proprietà” come sinonimo di “predicato”)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Es (adattato da DBPedia): – (http://.../Turin http://.../populationTotal 911823 )
– (http://.../Turin http://.../birthPlace http://.../Amedeo_Avogadro)
– (http://.../Amedeo_Avogadro http://...#type http://.../Scientist)
– (http://.../Amedeo_Avogadro http://.../birthDate 1776‐08‐09)
– (http://.../Amedeo_Avogadro http://.../deathDate 1856‐07‐09)
Linked Data: uso di RDF (Resource Description Framework)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Nei testi e documenti che parlano di RDF, una tripla (soggetto predicato oggetto) è spesso rappresentata graficamente in questo modo:
soggetto oggettopredicato
Linked Data: uso di RDF (Resource Description Framework)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
http://.../Turin http://.../Amedeo_Avogadrohttp://.../birthPlace
Es.
http://.../Turinhttp://.../populationTotal
http://.../Amedeo_Avogadro http://.../Scientisthttp://...#type
http://.../Amedeo_Avogadrohttp://.../birthDate
http://.../Amedeo_Avogadrohttp://.../deathDate
911823
Linked Data: uso di RDF (Resource Description Framework)
1776‐08‐09
1856‐07‐09
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Se sovrapponiamo gli “ovali” che rappresentano le stesseentità, otteniamo una rappresentazione complessiva dei datisotto forma di (multi)grafo diretto etichettato
Linked Data: uso di RDF (Resource Description Framework)
http://.../Turinhttp://.../populationTotal
911823
http://.../Amedeo_Avogadro
http://.../birthPlace
http://.../Scientisthttp://...#type
http://.../birthDate http://.../deathDate
1776‐08‐09 1856‐07‐09
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• RDF è un modello dati cui corrispondono diversi formati di serializzazione. Uno di questi è basato su XML. – serializzazione dei dati = rappresentazione dei dati in un qualche
formato che ne consenta la memorizzazione in un calcolatore o il trasferimento attraverso reti di calcolatori
• La succitata descrizione di Torino che DBpediaoffre alle macchine non è nient’altro che la rappresentazione in XML delle triple RDF che descrivono Torino in DBpedia
Linked Data: uso di RDF (Resource Description Framework)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• RDF è un modello dati cui corrispondono diversi formati di serializzazione. Uno di questi è basato su XML. – serializzazione dei dati = rappresentazione dei dati in un qualche
formato che ne consenta la memorizzazione in un calcolatore o il trasferimento attraverso reti di calcolatori
• La succitata descrizione di Torino che DBpediaoffre alle macchine non è nient’altro che la rappresentazione in XML delle triple RDF che descrivono Torino in DBpedia
Linked Data: uso di RDF (Resource Description Framework)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Scintille
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
• SPARQL (pron. “sparkle” = “scintillare” ) è un protocollo e un linguaggio di interrogazione e manipolazione di dataset RDF
• E’ una specifica del W3C (http://www.w3.org/)
• Una brevissima introduzione prodotta dal W3C: SPARQL 1.1 Overview (W3C Recommendation 21 March 2013) [http://www.w3.org/TR/sparql11‐overview/]. Altri documenti ufficiali del W3C descrivono dettagliatamente questo standard
• Il linguaggio di interrogazione (SPARQL query language) consente di estrarre informazioni da dataset RDF; il linguaggio di manipolazione (SPARQL update) consente di aggiungere, cancellare e aggiornare dati in un dataset RDF; il protocollo specifica come le richieste e le risposte SPARQL devono essere veicolate tramite protocollo HTTP
https://openclipart.org/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• SPARQL è un insieme di specifiche “piuttosto complesse”
• Nel seguito, faremo qualche cenno al solo suo aspetto di linguaggio di interrogazione
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
https://openclipart.org/
Vi sono vari manuali di SPARQL, fra questi: Bob DuCharme, LearningSPARQL, 2nd Edition, O’Reilly2013
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Come linguaggio di interrogazione (e manipolazione), SPARQL è per i dataset RDF (all’incirca) quello che SQL è per le basi di dati relazionali
• Supporta 4 tipi di query: SELECT (quelle che più da vicino ricordano SQL), ASK,CONSTRUCT e DESCRIBE
• Faremo solo qualche breve cenno a SELECT
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
https://openclipart.org/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Es.– (http://.../Marco http://.../conosce http://.../Luisa )– (http://.../Marco http://.../conosce http://.../Pippo)– (http://.../Marco http://.../conosce http://.../Omar)– (http://.../Luisa http://.../haNome Luisa)– (http://.../Luisa http://.../haNome Marialuisa)– (http://.../Pippo http://.../haNome Filippo)– (http://.../Omar http://.../haNome Omar)
Per estrarre i nomi di tutti coloro che Marco conosce:SELECT ?nomeWHERE {< http://.../Marco > < http://.../conosce > ?person.?person <http://.../haNome> ?nome.}
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
https://openclipart.org/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Es.– (http://.../Marco http://.../conosce http://.../Luisa )– (http://.../Marco http://.../conosce http://.../Pippo)– (http://.../Marco http://.../conosce http://.../Omar)– (http://.../Luisa http://.../haNome Luisa)– (http://.../Luisa http://.../haNome Marialuisa)– (http://.../Pippo http://.../haNome Filippo)– (http://.../Omar http://.../haNome Omar)
Per estrarre i nomi di tutti coloro che Marco conosce:SELECT ?nomeWHERE {< http://.../Marco > < http://.../conosce > ?person.?person <http://.../haNome> ?nome.}
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
Variabili
https://openclipart.org/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Es.– (http://.../Marco http://.../conosce http://.../Luisa )– (http://.../Marco http://.../conosce http://.../Pippo)– (http://.../Marco http://.../conosce http://.../Omar)– (http://.../Luisa http://.../haNome Luisa)– (http://.../Luisa http://.../haNome Marialuisa)– (http://.../Pippo http://.../haNome Filippo)– (http://.../Omar http://.../haNome Omar)
Per estrarre i nomi di tutti coloro che Marco conosce:SELECT ?nomeWHERE {< http://.../Marco > < http://.../conosce > ?person.?person <http://.../haNome> ?nome.}
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
Variabile di output
https://openclipart.org/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Es.– (http://.../Marco http://.../conosce http://.../Luisa )– (http://.../Marco http://.../conosce http://.../Pippo)– (http://.../Marco http://.../conosce http://.../Omar)– (http://.../Luisa http://.../haNome Luisa)– (http://.../Luisa http://.../haNome Marialuisa)– (http://.../Pippo http://.../haNome Filippo)– (http://.../Omar http://.../haNome Omar)
Per estrarre i nomi di tutti coloro che Marco conosce:SELECT ?nomeWHERE {< http://.../Marco > < http://.../conosce > ?person.?person <http://.../haNome> ?nome.}
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
Schema di grafo RDF
https://openclipart.org/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• L’interprete SPARQL individua nei dati cui la query fa riferimento tutte le combinazioni di valori per le variabili, corrispondenti a dati che rispettano lo schema di grafo RDF e restituisce i valori per le sole variabili di output
• Nel caso dell’esempio, il risultato sarebbe:
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
?nomeLuisa
MarialuisaFilippoOmar
https://openclipart.org/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Per poter essere interrogati tramite SPARQL, i dataset nel Web di dati devono offrire uno SPARQL endpoint, cioè un server che risponde a richieste SPARQL
• Ad esempio, lo SPARQL endpoint di DBpediaha indirizzo: http://dbpedia.org/sparql
• Vediamone un esempio d’uso…
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
https://openclipart.org/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
https://openclipart.org/
Estrarre dal dataset di DBpedia IRI, data di nascita e eventuale data di morte di tutti gli scienziati nati a Torino
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
https://openclipart.org/
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Linked Data: SPARQL (SPARQL Protocol and RDF Query Language)
https://openclipart.org/
N.B.: ottenere le stesse informazioni navigando le pagine di Wikipedia sarebbe stato molto più difficile!
DipartimentoInformatica
© Diego MAGRO - All rights reserved
“Semantic Web (Layer) Cake” o “Semantic Web Stack”
Tratto da http://en.wikipedia.orgLicenza: Public Domain
I PRINCIPI DEI LINKED DATA1. Use IRIs as names for things.2. Use HTTP IRIs, so that people
can look up those names.3. When someone looks up a IRI,
provide useful information, using the standards (RDF, SPARQL).
4. Include links to other IRIs, so that they can discover more things.
Tratto da http://openclipart.org/Licenza: Public Domain
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Linked Data: specificare collegamenti tra i dati
• Costruire un Web di dati significa anche stabilire espliciti collegamenti fra le risorse di cui i dati parlano (…i dati devono essere “linked”, appunto)– collegamenti possono essere interni ad un medesimo dataset (es. collegamenti fra risorse interne a DBpedia). Sono l’analogo dei collegamenti ipertestuali fra risorse in uno stesso sito Web.
– collegamenti fra dataset diversi: importantissimi per non confinare i dati in silos separati (Es. collegamenti fra risorse interne a DBpedia e risorse interne a Geonames o a LinkedGeoData). Sono l’analogo dei collegamenti ipertestuali fra risorse che risiedono su siti Web diversi
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Linked Data: specificare collegamenti tra i dati
http://.../Turin
http://.../populationTotal
911823
http://.../Amedeo_Avogadro
http://.../birthPlace
http://.../Scientist
http://...#type
http://.../birthDate http://.../deathDate
1776‐08‐09
1856‐07‐09
http://.../3165524/http://.../sameAs
http://.../node63621589
http://.../sameAs
DBpedia
Geonames
LinkedGeoData
DipartimentoInformatica
© Diego MAGRO - All rights reserved
A che punto è la pubblicazione di Linked Open Data su Web?
• Possiamo farcene un’idea, consultando https://lod‐cloud.net/
• Al 29 marzo 2019, su quella pagina risultano censiti 1.239 dataset (DBPedia è uno di questi)
• 1.239 dataset è già qualcosa, ma, certamente, nell’ambito del Web questi rappresentano solo un piccolo frammento delle informazioni disponibili…
• …inoltre, la crescita pare essere molto lenta…
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Il LOD Cloud Diagram
Da http://lod‐cloud.net/,Ultimo aggiornamento: 29/03/2019
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Il LOD Cloud Diagram
Questo è DBPedia
Da http://lod‐cloud.net/,Ultimo aggiornamento: 29/03/2019
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Gufi
DipartimentoInformatica
© Diego MAGRO - All rights reserved
“Semantic Web (Layer) Cake” o “Semantic Web Stack”
Tratto da http://en.wikipedia.orgLicenza: Public Domain
Tratto da http://openclipart.org/Licenza: Public Domain
E dov’è la semantica di ’sto Web semantico? O, se preferisci: dov’è la semantica dei dati di ’sto Web di dati?
da: http://openclipart.org Qui!
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Semantica
• I dati sono espressi per mezzo di un vocabolario, es.:
http://.../Turin
http://.../populationTotal
911823
http://.../Amedeo_Avogadro
http://.../birthPlace
http://.../Scientist
http://...#type
http://.../birthDatehttp://.../deathDate
1776‐08‐09
1856‐07‐09
DBpedia
Qual è il significato (la semantica) dei termini del vocabolario utilizzato? Es.: che significano http://.../populationTotal, http://.../birthPlace, http://.../Scientist?
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Un umano può riuscire a comprendere questi termini (o, almeno, a ipotizzarne il significato); questo compito è molto più complesso per una macchina
• C’è un modo per rappresentare esplicitamente il significato dei termini del vocabolario in modo che esso sia immediatamente accessibile ad una macchina?
• L’idea attuata nel Web semantico/Web di dati è quella di sfruttare la logica matematica (dove la semantica di termini e formule è ben definita)
Semantica
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Adottando tale approccio, la semantica viene espressa tramite un insieme di formule logiche (dette “assiomi”) che usano i termini del linguaggio per vincolarne l’uso
Semantica
http://commons.wikimedia.org
• …può sembrare un po’ strano, ma vincolare l’uso dei termini è un modo per delinearne il significato … riflettere su questo fatto:
• Non sempre (quasi mai…) è possibile esprimere completamente il significato dei termini, quindi spesso ci si accontenta di approssimarlo
DipartimentoInformatica
© Diego MAGRO - All rights reserved
OWL (Web Ontology Language)• Uno dei modi per esprimere (una parte del)la semantica di un insieme di termini in ambito Web è quello di specificare delle teorie logiche in OWL (“owl”=“gufo”) che usano tali termini […non è l’unico modo ‐ es. ci sono anche RDFS e i linguaggi a regole ‐ma è uno dei più diffusi ed è l’unico cui accenneremo qui]
• Queste teorie logiche vengono chiamate ontologie o vocabolari
• OWL è un linguaggio logico (meglio: una famiglia di linguaggi logici) “derivato” dalla logica dei predicati del primo ordine (è un frammento di essa, con l’aggiunta di termini per denotare valori di tipi particolari, come stringhe, numeri, ecc.)
• E’ una specifica del W3C (http://www.w3.org/)
da: http://openclipart.org
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• OWL consente la caratterizzazione semantica di termini che denotano:– Classi (o concetti, o tipi di individui), es. http://.../Scientist
– Proprietà binarie fra individui (object properties), es. http://.../birthPlace
– Proprietà binarie che legano individui a valori (data properties), es. http://.../populationTotal, http://.../birthDate, http://.../deathDate
– Individui, es. http://.../Turin, http://.../Amedeo_Avogadro
OWL (Web Ontology Language)da: http://openclipart.org
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Es., DBpedia usa (anche) una propria ontologia OWL (DBpedia ontology) che caratterizza (in maniera molto approssimata) la semantica dei termini usati in DBpediastessa
• Es., la DBpedia ontology contiene,fra i suoi numerosi assiomi, anche i seguenti:– (x)(http://.../Scientist(x) http://.../Person (x))
(“tutti gli scienziati sono persone”)– (x,y)(http://.../birthPlace(x,y) http://.../Person(x)
http://.../Place(y))(“ ‘birthPlace’ è una relazione tra persone e luoghi”)
– (x,y)( http://.../birthDate(x,y) http://.../Person (x) Date(y)) (“ ‘birthDate’ associa una data a una persona”)
OWL (Web Ontology Language)da: http://openclipart.org
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Il primo tipo di assiomi consente di definire tassonomie di classi, es. (piccolo frammento della tassonomia della DBpedia ontology):
OWL (Web Ontology Language)da: http://openclipart.org
Thing
Agent
Person
Scientist Region
PopulatedPlace
State
Place
“tutti gli scienziati sono persone”
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• La caratterizzazione dei termini tramite linguaggi logici:– ne riduce l’ambiguità, rappresentandone esplicitamente un frammento di semantica [già visto…]
– Consente di sfruttare meccanismi di inferenza automatica……vale a dire: l’esplicitazione automatica di conoscenza implicita e l’individuazione di un’eventuale inconsistenza (cioè la presenza di una contraddizione, eventualmente nascosta, nei dati), il tutto tramite appositi software, detti «reasoners»
OWL (Web Ontology Language)da: http://openclipart.org
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Es.
OWL (Web Ontology Language)da: http://openclipart.org
Agent
Person
Scientist
Un reasoner che disponesse della DBpedia ontology,dalla sola tripla RDF(http://.../Amedeo_Avogadro http://...#type http://.../Scientist), sarebbe in grado di dedurre automaticamente queste altre due triple:
(http://.../Amedeo_Avogadro http://...#type http://.../Person)(http://.../Amedeo_Avogadro http://...#type http://.../Agent)
DipartimentoInformatica
© Diego MAGRO - All rights reserved
• Esistono vari tools per scrivere ontologie OWL, fra questi, quello più noto, al momento, è Protégé(http://protege.stanford.edu/)
• Vi sono vari reasoners utilizzabili con le ontologie OWL (alcuni invocabili anche da Protégé), fra questi:– HermiT (http://hermit‐reasoner.com/)– Pellet (https://github.com/complexible/pellet)– Fact++ (http://owl.man.ac.uk/factplusplus/)– Konclude (http://derivo.de/en/products/konclude/)
OWL (Web Ontology Language)da: http://openclipart.org
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Dati in RDF, ontologie/vocabolari OWL,…
faticoso per un umano agevole per un agente artificiale
da https://openclipart.org/da https://openclipart.org/
UFF! ΦGO!
L’accesso al contenuto informativo di questo genere di risorse è:
il Web di dati è infatti pensato per le macchine: gli umani ne fruiscono e beneficiano indirettamente, attraverso le applicazioni software in grado di accedere alle risorse che esso offre
DipartimentoInformatica
© Diego MAGRO - All rights reserved
…e il tutto è ancora…
• …lavoro in corso!• …che, per ora, ha prodotto:
– Risultati scientifici, metodologie standard e tecnologie il cui potenziale ambito di applicazione supera i confini del Web semantico/Web di dati
– Un primo embrione (forse già pulcino?) di Web semantico/Web di dati
• Vedremo se e in quali direzioni evolverà!
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Bon! Finisce qui…
questa è stata solo un’introduzione……ci sarebbero tante altre cose da dire!
DipartimentoInformatica
© Diego MAGRO - All rights reserved
Grazie per l’attenzione!!