Corso di Laurea Specialistica in Ingegneria Gestionale Corso di Sistemi Informativi A. A. 2012-2013 Semantic Web: linguaggi e tecnologie Eufemia TINELLI
Dal Web al Semantic Web: Motivazioni Il Web dovrebbe permettere di condividere informazioni tra persone svolgere attività per soddisfare le necessità degli utenti che utilizzano il Web Problemi Il Web è enorme Il Web contiene informazioni destinate ad utenti umani Non c è niente in un documento HTML che indichi l argomento trattato o la fonte delle informazioni Un calcolatore non può comprendere il significato di un documento L unico tipo di ricerca possibile è quello sintattico (per parole-chiave). Difficoltà dovute a: Polisemia e omonimia (una parola con più significati): bassa precision Sinonimia (più parole con stesso significato): basso recall Come integrare informazioni provenienti da diverse fonti? Come svolgere un compito integrando diversi servizi disponibili sul Web? E.g.: Prenotare un biglietto aereo per Roma, un biglietto ferroviario dall'aeroporto al centro città e un albergo a meno di 5 isolati dalla stazione 2
Il Semantic Web Il W3C (World Wide Web Consortium) considera il Semantic Web come l ideale evoluzione del Web da machine-representable a machine-understandable Il Web è una ragnatela di documenti collegati tra loro, per l'utilizzo umano Il Semantic Web è una ragnatela di informazioni connesse dalla semantica (il significato). L idea è di generare documenti che possano al tempo stesso essere letti e compresi da esseri umani, ma anche acceduti ed interpretati da agenti automatici alla ricerca di contenuti. Il Semantic Web punta a trasformare il Web in una grande Base di Conoscenza Agente SW 3
Come passiamo dal Web al Semantic Web? Il Web già offre un'infrastruttura per pubblicare contenuti accessibili da tutti e per integrare i propri contenuti con quelli forniti da altri (attraverso gli URL e i collegamenti) Passo 1: rendere la semantica delle informazioni accessibile agli elaboratori (machine-understandable) Soluzione: uso di metadati (data about data) Passo 2: combinare informazioni provenienti da sorgenti diverse ai fini di realizzare servizi intelligenti : Ricerca basata su concetti Scambio di informazioni e composizione di servizi su base dichiarativa 4
Come condividere la conoscenza Occorre un linguaggio che: abbia una sintassi che assicuri l'interoperabilità abbia una semantica condivisa permetta di esprimere ontologie permetta elaborazioni efficienti, data la grandezza del Web Occorre un'infrastruttura che permetta di: aggiungere metadati ai documenti esistenti (evitare l'impresa impossibile di riscrittura del Web) referenziare entità in maniera univoca nell'intero Web integrare diverse fonti di conoscenza in un ambiente distribuito quale è il Web Un ontologia è una specifica esplicita e formale di una concettualizzazione condivisa [Gruber, 1993] relativa ad una porzione della realtà (dominio) 5
I livelli di interoperabilità richiesti dal Semantic Web Sintattico Richiede una struttura sintattica per la descrizione e lo scambio di dati (XML) Semantico Richiede il mapping tra termini (l interoperabilità migliora se gli stessi termini sono usati per denotare gli stessi concetti) e l analisi del contenuto (RDF&RDFS,OWL,DLs) Logico Richiede specifiche esplicite delle regole di inferenza per il ragionamento sulla conoscenza del livello semantico (SWRL) 6
Struttura del Semantic Web - W3C Recommendation (Gennaio 2008) 7
RDF Resource Description Framework (RDF) è un framework (modello generale) per asserire conoscenza nel Web È progettato per descrivere i metadati Le specifiche di RDF sono disponibili su: http://www.w3c.org/rdf/ RDF consiste di: Model and Syntax Specification (22 Febbraio 1999) specifiche per modellare i metadati RDF e codificarli opportunamente per assicurare l interoperabilità RDF/XML Syntax Specification (Revised - 25 Marzo 2005) estensione della versione originale RDF Model & Syntax Document RDF Schema (27 Marzo 2000) - descrivere come usare RDF per descrivere vocabolari RDF 8
Modello dei dati RDF E' basato su tre concetti: Risorse: tutto ciò che viene descritto. Ogni risorsa è identificata da un URI Proprietà: una coppia attributo-valore che si vuole associare ad una risorsa l'attributo è anch'esso identificato da un URI il valore può essere un'altra risorsa o un tipo di dato primitivo (stringa, intero...) Asserzioni (statement): l associazione di una proprietà ad una risorsa Una asserzione ci dice che una risorsa (soggetto) ha un certo valore (oggetto) per una certa proprietà (predicato) 9
Asserzioni RDF L'asserzione (statement) è l'unità informativa elementare in RDF Ha obbligatoriamente una struttura a tripla soggetto - predicato - oggetto. Un insieme di asserzioni RDF è detto modello Esempi Subject http://www.di.uniba.it/~g ci/rdf Tutorial.ppt mailto:capursi@sword.it Predicate http://purl.org/dc/elemen ts/1.1/creator http://www.myspace.co m/properties#firstname Object mailto:capursi@sword.it Daniele 10
Rappresentazione grafica - Esempio 1 Un modello RDF può essere rappresentato come un grafo etichettato orientato Resource Property Literal Value Resource Il precedente esempio. Property Resource Value http://www.di.uniba.it/~gci/rd F Tutorial.ppt http://purl.org/dc/elements/1.1/creator mailto:capursi@sword.it mailto:capursi@sword.it http://www.myspace.com/properties #firstname Daniele 11
Rappresentazione grafica - Esempio 2 http://www.di.uniba.it/ ~gci/rdf Tutorial.ppt http://purl.org/dc/elements/1.1/creator mailto:capursi@sword.it http://www.myspace.com/prope rties#firstname http://www.myspace.com/properties#age Daniele 25 12
Serializzazione di RDF Occorre una sintassi per la serializzazione di RDF per: salvare modelli RDF in forma persistente (e.g. su file) trasferirli da un'applicazione ad un'altra consentire il loro recupero dal Web RDF Model & Syntax Specification definisce una codifica XML standard del modello dati RDF Perché una codifica XML? Parser RDF più facili da implementare (basati su parser XML) XML risolve i problemi di interoperabilità e internazionalizzazione Servizio di validazione RDF/XML: http://www.w3.org/rdf/validator/ 13
L'esempio 2 codificato in XML <?xml version= 1.0?> <rdf:rdf xmlns:rdf= http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:dc= http://purl.org/dc/elements/1.0/ xmlns:ns0= http://www.myspace.com/properties# > <rdf:description rdf:about= http://www.di.uniba.it/~gci/rdftutorial.ppt > <dc:creator rdf:resource= mailto:capursi@sword.it /> </rdf:description> <rdf:description rdf:about= mailto:capursi@sword.it > <NS0:firstName>Daniele</NS0:firstName> <NS0:age>25</NS0:age> </rdf:description> </rdf:rdf> N.B. Sia le risorse sia le proprietà sono identificate da URI 14
L'esempio 2 codifica abbreviata in XML <?xml version= 1.0?> <rdf:rdf > xmlns:rdf= http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:dc= http://purl.org/dc/elements/1.0/ xmlns:ns0= http://www.myspace.com/properties# <rdf:description rdf:about= http://www.di.uniba.it/~gci/rdf Tutorial.ppt > <dc:creator rdf:resource= mailto:capursi@sword.it NS0:firstName= Daniele NS0:age= 25 /> </rdf:description> </rdf:rdf> Più asserzioni con il medesimo soggetto possono essere raggruppate in un unico tag Description 15
Altre sintassi XML è solo uno dei possibili modi di serializzare RDF Esistono altre sintassi non standard per la codifica N3 (Notation 3) N-Triple Esempio 2 codificato in N-Triple <http://www.di.uniba.it/~gci/rdf Tutorial.ppt> <http://purl.org/dc/elements/1.0/creator> <mailto:capursi@sword.it>. <mailto:capursi@sword.it> <http://www.myspace.com/properties#firstname> "Daniele". <mailto:capursi@sword.it> <http://www.myspace.com/properties#age> "25". 16
Blank node Es. La ragazza con i capelli rossi ha 23 anni http://myspace.com/properties#haircolor urn:colors/red http://www.myspace.com/properties#age 23 17
Contenitori A volte è importante fare riferimento ad un insieme di risorse (ad esempio, se un documento è stato creato da più autori) In questo caso tali risorse devono essere inserite all interno di un contenitore che sarà l oggetto dello statement RDF definisce tre tipi di contenitori: Bag. E un insieme con ripetizioni. L ordine non è rilevante Sequence. E un insieme con ripetizioni ed un ordine definito tra le risorse presenti Alternative. E un insieme senza ripetizioni in cui può essere scelto uno solo degli elementi. L ordine degli elementi può essere usato per esprimere preferenza 18
Contenitori - esempio <rdf:description about="http://www.example.org"> <dc:contributor> <rdf:bag> <rdf:li>gianni</rdf:li> http://www.example.org <rdf:li>pinotto</rdf:li> </rdf:bag> </dc:contributor> </rdf:description> dc:contributor rdf:type rdf:_1 rdf:_2 rdf:bag Gianni Pinotto Analogamente si useranno i tipi rdf:seq per le sequenze e rdf:alt per le alternative. 19
Reificazione - 1 Come è possibile fornire meta-informazioni su una metainformazione? Ad esempio come posso esprimere la frase «Daniele Capursi afferma che gli asini possono volare»? Occorre considerare la metainformazione come una risorsa da descrivere mailto:capursi@sword.it http://myspace.com /properties#tosay urn:donkeys http://myspace.com /properties#ability urn:tofly Questa procedura si chiama reificazione (riduzione ad oggetto) dell'asserzione. Dopo avere reificato l asserzione si potranno esprimere ulteriori proprietà su di essa. 20
Reificazione - 2 Proprietà di reificazione rdf:subject corrisponde al soggetto nel data model RDF rdf:predicate corrisponde al predicato nel data model RDF rdf:object corrisponde all' oggetto nel data model RDF rdf:statement corrisponde all'insieme chiamato asserzione nel data model di RDF mailto:capursi@sword.it http://myspace.com/ properties#tosay rdf:object urn:tofly rdf:statement rdf:type rdf:subject urn:donkeys rdf:predicate http://myspace.com/ properties#ability 21
A che serve RDF? Non bastava XML per i metadati sul Web? In XML chiunque può definire tag e attributi......e chiunque può interpretarli come vuole In RDF invece se più persone (o programmi) usano lo stesso URI per una risorsa o proprietà, essi ne condividono esattamente il significato RDF non è XML Questo però non basta a fornire l'interoperabilità a livello semantico richiesta dalle applicazioni concepite per il Semantic Web Il modello di RDF non permette di effettuare validazione di un valore o restrizione di un dominio di applicazione di una proprietà 22
Esempio di vocabolario RDF L'esempio più famoso è forse il Dublin Core Metadata Initiative, relativo al dominio dei documenti (anche multimediali e ipertestuali) Proprietà Dublin Core 1.0: http://purl.org/dc/elements/1.0/ + Contenuti Title Subject Description Type Source Relation Coverage Proprietà intellettuale Creator Publisher Contributor Rights Istanza Date Format Identifier Language 23
RDF Schema RDF Schema (RDFS) permette di definire i propri vocabolari A differenza di XML Schema o di un DTD, RDF Schema non vincola la struttura del documento, ma fornisce informazioni utili all interpretazione del documento stesso RDF Schema è definito in termini di RDF stesso RDF Schema definisce un insieme di risorse RDF (schema) da usare per descrivere caratteristiche di altre risorse e proprietà RDF Uno schema può definire nuovi elementi from scratch o importarli da schemi esistenti per estenderli RDFS è un linguaggio ontologico lightweight RDFS è indipendente dal dominio 24
Le risorse RDFS RDF namespace (xmlns:rdf): http://www.w3.org/1999/02/22-rdf-syntax-ns# RDFS namespace (xmlns:rdfs): http://www.w3.org/2000/01/rdf-schema# 25
RDFS: Classi e proprietà (1) rdfs:resource - Ogni risorsa RDF è istanza di questa classe rdfs:literal - Sottoclasse di rdfs:resource, rappresenta un letterale, cioè una stringa di testo rdf:property - Rappresenta le proprietà. E sottoclasse di rdfs:resource. rdfs:class - Corrisponde al concetto di classe nella programmazione object-oriented. Quando viene definita una nuova classe, la risorsa che la rappresenta deve avere la proprietà rdf:type impostata a rdfs:class rdfs:subclassof - Specifica la relazione di ereditarietà fra classi Può essere assegnata solo a istanze di rdfs:class Una classe può essere sottoclasse di più classi (ereditarietà multipla) 26
RDFS: Classi e proprietà (2) rdfs:subpropertyof Istanza di rdf:property usata per specificare che una proprietà è una specializzazione di un altra. Ogni proprietà può essere la specializzazione di zero o più proprietà rdfs:seealso Istanza di rdf:property usata per indicare una risorsa che potrebbe fornire ulteriori informazioni riguardo al soggetto rdfs:isdefinedby - Sottoproprietà di rdfs:seealso, indica una risorsa che definisce il soggetto di un asserzione rdfs:label Usata per fornire una versione leggibile da utenti umani del nome di una risorsa 27
Vincoli I predicati più utilizzati per esprimere vincoli su altre proprietà sono rdfs:domain (dominio) - Usato come predicato di una risorsa r, indica le classi (soggetto) a cui può essere applicata r. rdfs:range (codominio) - Usato come predicato di una risorsa r, indica le classi che saranno oggetto di un asserzione che ha r come predicato <rdf:description rdf:id= NumeroPasseggeri"> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax -ns#property"/> <rdfs:domain rdf:resource="#veicolopasseggeri"/> <rdfs:range rdf:resource="http://www.w3.org/2000/03/example/ classes#number"/> </rdf:description> 28
RDF & RDFS 29
RDFS: Esempio di codifica in XML. 30
Sparql Protocol And Rdf Query Language (SPARQL) Linguaggio di interrogazione per dataset RDF basati su HTTP/SOAP: graph pattern matching Nessuna inferenza propria del linguaggio SPARQL query si compone di Uno SPARQL endpoint accetta queries and restituisce risultati via HTTP 31
SPARQL: Esempio Restituisci il full name di tutte le persone nel dataset 32
SPARQL: Esempio Restituisci la relazione tra John e Mary 33
SPARQL: Esempio Restituisci tutte le persone sopra i 30 anni 34
SPARQL: Esempio Restituisci tutte le persone e (opzionalmente) le loro spose 35
Riferimenti T. Berners-Lee, J. Hendler, 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, May, 2001 E. Della Valle, I. Celino, D. Cerizza, Semantic Web Modellare e condividere per innovare, Pearson (collana Addison Wesley) 2008 D. Beckett, RDF/XML Syntax Specification (Revised), W3C Recommendation 10/02/2004, http://www.w3.org/tr/rdf-syntaxgrammar/ D. Brickley, R.V. Guha, RDF Vocabulary Description Language 1.0: RDF Schema, W3C Recommendation 10/02/2004, http://www.w3.org/tr/rdf-schema/ E. TINELLI LTW A. A. 2011-2012 36