Il problema della gestione dei dati in rete Gestione dei ... · Condivisione dei contenuti:...
Transcript of Il problema della gestione dei dati in rete Gestione dei ... · Condivisione dei contenuti:...
1
Gestione dei dati Gestione dei dati e dei contenutie dei contenuti
Flavio De [email protected]
2
OutlineOutline
Il problema della gestione dei dati in rete
Dati strutturati e non strutturati: posta elettronica, testi, news
Descrizione del contenuto e metadati
Condivisione dei contenuti: l’approccio del Semantic Web
3
Dati in reteDati in rete
Tipologia di dati tradizionaleFile che realizzano documenti nei formati tradizionali: testo + immaginiFile system condivisi consentono l’accesso multi-utente
Organizzazione tradizionaleI documenti sono patrimonio di un numero ristretto di persone che condividono finalità e dominio applicativo (terminologia e metodo)
4
Dati in reteDati in rete
Tipologia dei dati in reteNuove importanti forme: ipertesti, e-mail, news, multimedia, …Molti server mettono a disposizione enormi quantità di dati eterogenei
Modello organizzativoIl Web è diventato il modello di riferimentoChiunque può accedere, organizzare e distribuire datiNon è più scontata la comprensione dei dati (manca il background comune tra i lettori)
5
Gestione della quantitGestione della quantitàà
La grande massa di dati disponibili eterogenei crea problemi di efficienza nell’accesso;organizzazione (sia personale sia condivisa);comprensione dei contenuti;selezione efficace (searching);ordinamento (ranking per contenuto, importanza, temporale);…Integrazione (interoperabilità)
6
Organizzazione dei datiOrganizzazione dei dati
Data Base Management System - DBMSModello relazionale tabelle attributo-valore, chiavi di accessoAccesso tramite interrogazioni (query) SQL
Content Management System - CMSModello a collage (enfasi sulla presentazione)collezioni strutturate di testi e immaginiAccesso a navigazione secondo il modello Web
Document Management System - DMSModello a file systemAccesso a navigazione diretta di collezioni (cartelle) e documenti (file)
7
ArchitetturaArchitettura didi accessoaccesso a DBa DB
BrowserJSP/
Servlet
Beans
Beans
Database
Architettura client/server
Accesso ai dati attraverso componenti (Java Beans, Servlet) che mascherano il DB
8
ArchitetturaArchitettura CM e DMSCM e DMS
BrowserJSP/
Servlet
Beans
Beans Database
Struttura simile al precedente: architettura client/server
Accesso ai dati attraverso componenti (Java Beans, Servlet) che mascherano la struttura interna
Spesso si ricorre a un DB per memorizzare i dati di gestione
File System
9
Il problema della ricercaIl problema della ricerca
Ricerca “full text”Dispendiosa (indicizzazione e memorizzazione del risultato)Lenta (analisi preventiva dei testi)Imprecisa (significato dei termini)E i dati multimediali?
Selezione e ordinamentoDifficoltà di confronto dei risultatiMancanza di informazioni di contesto
10
Semantica dellSemantica dell’’informazione informazione scambiata e sua scambiata e sua ““comprensionecomprensione””
Analogia:
Cosa noi diciamo ai cani“stai lontanto dalla spazzatura! Capito, Ginger? Stai lontano dallaspazzatura!
Cosa capiscono i cani"... blah blah blah blah blah blah!blah GINGER? blah blah blahblah blah blah! ..."
Da Gary Larson's The Far Side®http://www.thefarside.com/
11
Per le macchine Per le macchine ““capirecapire”” significa significa ““saper elaboraresaper elaborare””
Cosa capiscono le macchine del Web attuale" ... blah blah <a href=“http://www.xwz.com/foo.html”> link </a> blah …”
Nota: per “capire” non si intende il capire umano, ma solo utile elaborabilità da parte delle macchine
Tuttavia assumendo una strategia molto semplice[page] links [page] = popolarità
ordina i risultati in maniera sorprendente!
Da Google technology: “The heart of oursoftware is PageRank™, a system forranking web pages […] (that) relies on the uniquely democratic nature of the web by using its vast link structure asan indicator of an individual page's value.”http://www.google.com/technology/
12
Due approcci per rendere i contenuti Due approcci per rendere i contenuti elaborabili dalle macchineelaborabili dalle macchine
Macchine più “smart”
Insegnare alle macchine ad inferire il significato dell’informazioneNatural language processing (NLP)Image recognition (IR)…
È un problema (complesso!) affrontato dall’intelligenza artificialeNLP meets IRNLP: What does your eye see?IR: I see a seaNLP: You see a “c”?IR: Yes, what else could it be?
Some NLP Related Entertainment: http://www.cl.cam.ac.uk/Research/NL/amusement.html
13
Due approcci per rendere i contenuti Due approcci per rendere i contenuti elaborabili dalle macchineelaborabili dalle macchine
Dati più “smart”
Rendere i contenuti più semplici da trovare, accedere e processare per le macchine
Si tratta di esprimere i dati e il loro significato in formati standard direttamente elaborabili dalle macchine individuando meccanismi decentralizzati per la loro definizione e gestione.
È il problema affrontato dal Semantic Web
14
Struttura di un Struttura di un ““datodato””
Un dato (un file di testo, un messaggio di e-mail o una figura) sono affiancati da una descrizione
MetadatiDefinizione: dati sui datiForma: coppie <nome, valore> associate a un datoProblema 1: come rappresentare i metadati?Problema 2: come interpretare i “nomi” e i “valori”?
Il significato dei dati (la semantica) può essere reso trattabile tramite le ontologie perchè abilitano la comprensione dei simboli da parte degli umani e li rendono elaborabili dalle macchine
15
Uso della Uso della ““semanticasemantica””
Ricerca testuale lessicalePattern matching: confronto tra simboli (stringhe o sequenze di caratteri)Posso cercare stringhe esatte o sottostringhecerco “quadro”trovo “il quadro di Van Gogh”non trovo “i quadri degli impressionisti olandesi”
cerco “quadri”trovo “le carte di quadri e di picche” e trovo “i quadri degli impressionisti olandesi”
cerco “quadr”trovo “il quadro di Van Gogh”trovo “le carte di quadri e di picche” e trovo “i quadri degli impressionisti olandesi”trovo “i quaderni a quadretti”
16
I concetti come legami per i datiI concetti come legami per i dati
I concetti e le loro relazioni permettono di collegare i dati perIntegrareInterpretareSelezionare
17
Uso della Uso della ““semanticasemantica””
Un’ontologia permette di descrivere le relazioni tra i simboli in modo formale.
La più semplice relazione èquella di classificazione.
Ad esempio, nel contesto del turismo le “sagre” e le “mostre”sono due tipi di “eventi culturali”che a loro volta sono “attrattive culturali” come i “beni culturali”
AttrattivaCulturale
BeniCulturaliEventiCulturali
MostreSagre
Fotografica Pittura
18
Plug
-in
Exac
tSu
bsum
e
Uso della Uso della ““semanticasemantica””
Un’ontologia permette di utilizzare le relazioni tra i simboli per “inferire” altre forme di matching.I possibili mathcing abilitati dalla relazione di classificazione sono:Exact Mathcing ( )
dati classificati utilizzando il simbolo richiesto
Plug-in matching ( )dati classificati utilizzando uno dei simboli classificati come più specifici di quello richiesto
Subsume matching ( )dati classificati utilizzando uno dei simboli classificati come più generici di quello richiesto
Ricerca di “EventiCulturali”
AttrattivaCulturale
BeniCulturaliEventiCulturali
MostreSagre
Fotografica Pittura
19
Che cosa Che cosa èè in pratica unin pratica un’’ontologia?ontologia?
Un’ontologia (nel contesto dell’ICT) specifica un modello concettuale condiviso che descrive un dominio applicativo per agevolare la comunicazione sia tra applicazioni sia tra utenti eapplicazioni
Medications
HormonalTherapy Blockers
Alpha Blockers Beta Blockers
Atenolol Metoprolol
Lopressor
Seloken
Tenormine
…
Disease
Cancer Hypertension
Breast Cancer Skin Cancer
Cont
rols
Dise
ases
20
Una specifica esplicita e formale di una concettualizzazione condivisa
Precisa, quindi
leggibiledalle
macchine
Concetti, relazioni,funzioni, assiomi
sono espressi
Conoscenzasu cui vi è
accordo
Un modello concettualedi un qualche aspetto
del mondo
Una definizione di ontologiaUna definizione di ontologia
Studer(98)
Studer , Benjamins, Fensel . Knowledge Engineering: Principles and Methods. Data and Knowledge Engineering . 25 (1998)161-197
21
Terminologia Terminologia
concettiastrazioni del dominio applicativo tipicamente visti come insiemi
relazioniesprimono l’esistenza di relazioni tra i concetti del dominio tipicamente viste come relazioni binarie tra gli individui
individuielementi degli insiemi definiti dai concetti
assiomi/restrizioni:formalizzano quali combinazioni di concetti e relazioni sono ammissibili
asserzionidichiarano l’appartenenza di un individuo ad un insieme
fattilegano due individui tramite una relazione
22
OntologiaOntologiaQuesta Questa èè unun’’ontologia?ontologia?
NO, perchèÈ una concettualizzazioneÈ condivisa dalla comunitàche l’ha sviluppata
… ma non èesplicita (la dimensione dei rami molto probabilmente non indica la numerosità delle specie)formale (nessuna macchina può usarla)
23
Terminologiafemmina (italico) : concetto o relazione primitiva (non definita)donna (grassetto) : concetto o relazione derivata (definita in funzione di concetti e/orelazioni primitive)è (sottolinato): linguaggioontologico
Fatti e Asserzionidonna (italico) : concetto o relazioneRosanna (grassetto) : individuoè (sottolinato): linguaggioontologico
essere umano, maschio e femmina sono concetti primitiviha figlio è una relazione che lega tra loro gli esseri umaniun uomo è un essere umano ed è maschiouna donna è un essere umano ed è femminauna madre è una donna che ha_figlio almeno un essere umanouna padre è una uomo che ha_figlio almeno un essere umanoun genitore è o un padre o una madreUn nonno è un uomo che ha_figlio un genitoreè figlio di è l’inversa di ha figlio
Antonio, Lorenzo e Carlo sono uominiRosanna è una donnaAntonio ha_figlio LorenzoRosanna ha_figlio CarloCarlo è_figlio_di Lorenzo
Una macchina in grado di “capire” il linguaggio ontologico “sa” anche cheAntonio è un nonno, Lorenzo è un padre, Rosanna è una madreAntonio, Lorenzo e Rosanna sono genitori
Antonio
Rosanna Lorenzo
Carlo
ha figlio
ha figlio
è figlio di
UnUn’’ontologia (da formalizzare)ontologia (da formalizzare)
24
Integrazione e interoperabilitIntegrazione e interoperabilitàà
Problema: come effettuare ricerche su più basi di dati dello stesso dominio ma che sono state progettate indipendentemente?
CaratteristicaOntologie differenti, ma “simili”Dati non allineati (informazioni eterogenee)…
Serve trovare il modo di “interpretare” i dati per rendere interoperabili le basi di dati (e quindi le applicazioni basate su di esse) = integrazione tra ontologie
25
Tecnologie disponibiliTecnologie disponibili
26
EterogeneitEterogeneitàà strutturale 1/3strutturale 1/3
La famiglia di tecnologie XML offre un’ottima base per l’interoperabilità sintattica,una soluzione limitata alla gestione dell’eterogeneità strutturale anche tra schemi dello stesso dominio ma progettati indipendentemente
27
EterogeneitEterogeneitàà strutturale 2/3strutturale 2/3
Conflitto sui nomi (Namig conflict)Si presenta quando il significato associato agli elementi di due schemi coincide, ma le etichette usate sono differentiEs.<!ENTITY persona (nome, cognome) ><!ENTITY person (first_name, last_name)>
Conflitto sulle aggregazioni (Aggregation conflict)Si presenta quando la stessa informazione in due schemi diversi èrappresentata con granularità differenteEs.<!ENTITY persona (nome, cognome, natoIl) ><!ENTITY persona (nominativo, natoIl) >
28
EterogeneitEterogeneitàà strutturale 3/3strutturale 3/3
Conflitto tra schemi isomorfiSi presenta quando in due schemi la stessa relazione concettuale è resa in maniera differente
STRUCTregistro +
STRUCTesame
EMPTY
studente
+
STRUCT
esame
STRING
studente
STRINGmat
STRUCT
librettiFLOAT
mat
1..N1..Nstudenteesame
[18..31]voto
[18..31]voto
voto
matcod
STRINGcod
+
STRINGcod
+
29
...<xsl:template match="persona"><persona><nominativo><xsl:value-of select="nome"/><xsl:value-of select="cognome"/></nominativo><natoIl><xsl:value-of select="natoIl"/></natoIl>
</persona></xsl:template>...
Gestione conflitti strutturali 1/3Gestione conflitti strutturali 1/3
In XML la modalità consolidata di gestire conflitti strutturali ècodificare in XSL Transformations (XSLT) le regole di trasformazione che li risolvono
Es. risoluzione dell’aggregation conflict esemplificato
30
Gestione conflitti strutturali 2/3Gestione conflitti strutturali 2/3
In un contesto in cui N organizzazione sono in grado di imporre il proprio DTD, sono richieste almeno NxN trasformazioni XSLT per rendere interoperabili i sistemi informativi delle N organizzazioni
DTD1DTD2
DTD3
DTD4
DTD5
XSLT1,2
XSLT2,3
XSLT3,4XSLT4,5
XSLT1,5
XSLT1,3
XSLT1,4
XSLT2,5
XSLT2,4
XSLT3,5
31
Gestione conflitti strutturali 3/3Gestione conflitti strutturali 3/3
Una soluzione più scalabile richiederebbe l’uso di una qualche “lingua franca” rispettosa dell’autonomia delle organizzazioni e di N trasformazioni (una per organizzazione)
DTD1DTD2
DTD3
DTD4
DTD5
?
?
? ?
?
Lingua francatrasformazioni
?
32
• “The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation.”
Tim Berners-Lee, James Hendler, Ora Lassila,The Semantic Web, Scientific American, May 2001
Le tecnologie ad oggi disponibiliProtocollo: HTTPSintassi: UNICODE + URI + XML + namespace
Metadati: Resource Description Framework - RDFW3C Recommendation 10 February 2004
http://www.w3.org/TR/REC-rdf-syntax
Linguaggi Ontologici: RDF Schema - RDFSW3C Recommendation 10 February 2004
http://www.w3.org/TR/rdf-schema/
Ontology Web Language – OWLW3C Recommendation 10 February 2004
http://www.w3.org/TR/owl-ref/
Ontologie: Simple Knowledge Organization System - SKOSW3C Working Draft 10 May 2005http://www.w3.org/2004/02/skos/
Dublin Core Metadata Initiative (DCMI)W3C Recommendation 10 February 2004
http://dublincore.org/e le altre numerose ontologie che sono in via di definizione
http://www.schemaweb.info/
Una proposta: il Semantic WebUna proposta: il Semantic Web
Web
Web
Sem
anti
cSe
man
tic
33
Il Il ““layerlayer cakecake”” (aggiornato)(aggiornato)
Machine-processable GlobalWeb Standard…
Assegnare nomi non ambigui (URI)Rappresentare dati relazionali e metadati (RDF)Linguaggio ontologico (RDF Schema e OWL)Linguaggi di interrogazione, regole, logic, proof, trust (ancora in sviluppo)
Dati sempre accessibili via Web[Source http://www.w3.org/DesignIssues/diagrams/sw-stack-2005.png]
34
RDF RDF ResourceResource DescriptionDescription FrameworkFramework
Flavio De [email protected]
35
Scopo di RDFScopo di RDF
RDF si propone di definire collegamenti tra concetti per consentire interoperabilità semantica
Source: Tim Berners Lee http://www.w3.org/2002/Talks/09-lcs-sweb-tbl/Overview.html 36
Un modello semplice e flessibileUn modello semplice e flessibile
Il modello base:
permette di modellare e combinare diverse strutture
37
Che cosChe cos’è’è RDFRDF
Un modello che permette di creare link tra risorse in rete
Caratteristiche dei link:sono etichettati per rendere esplicita la relazione tra gli oggettisi riferiscono a oggetti tipizzati, nel senso che RDF standardizza la modalità con cui si assegna un significato ad una risorsa
Rodin Il bacio
ha scolpito
38Solo risorse e link generici“Human understandable”
Confronto HTMLConfronto HTML--RDFRDF
risorse e link etichettati“machine-processable”
HTML RDF
?
39
Descrizioni RDFDescrizioni RDF
Il modello RDF genera descrizioni machine-processable di risorse in rete
EsempioPossiamo dire che qualcuno di nome Mario Rossi ha creato la pagina Web di indirizzo http://www.example.org/index.html con la frase
“http://www.example.org/index.html ha un autore il cui valore è Mario Rossi”Le parti sottolineate identificano:
ciò che si vuole descrivere (in questo caso la pagina)la specifica proprietà (autore)il valore assegnato alla proprietà (chi è l’autore)
40
Terminologia RDF Terminologia RDF
in RDF per identificare la frase si usa il termine statementciò di cui la frase parla si usa soggetto (subject)ciò che identifica la proprietà del soggetto si usa predicato (predicate)ciò che identifica il valore assegnato alla proprietà si usa oggetto (object)
Una descrizione RDF è un grafo orientato etichettato
soggetto oggetto
predicato Grafo orientato
etichettato
statement
41
Cosa significa Cosa significa ““machinemachine--processableprocessable””
La descrizione deve essere precisaSimboli interpretabili: identificazione certa di soggetto-predicato-oggettoFormato interpretabile: scambiabile tra macchine
Supporto tecnologico:Uniform Resource Identifier (URI) permette di identificare univocamente elementi in reteExtensible Markup Language (XML)è un formato indipendente dalle piattaforme tecnologiche(ma possono essere utilizzati altri formati: Turtle, n3, RXR, …)
42
Per scriverehttp://www.example.org/index.html ha un autore il cui valore è Mario Rossi
Occorre assegnare un URI agli oggetti della fraseRiferimenti a risorse di rete
Nello statement RDF di esempio:il soggetto è già un URIIl valore (l’oggetto) “Mario Rossi” potrebbe essere identificato dall’URI URN:org:example:staffid:85740per il predicato “autore” si può utilizzare l’URI http://purl.org/dc/elements/1.1/creator
Gli elementi sono URIGli elementi sono URI
43
Risultatohttp://www.example.org/index.html ha un http://purl.org/dc/elements/1.1/creator il cui valore è URN:org:example:staffid:85740
GGllii eelleemmeennttii sono URIsono URI
http://www.example.org/index.html URN:org:example:staffid:85740
http://purl.org/dc/elements/1.1/creator
44
http://purl.org/dc/elements/1.1/creatorEtichetta
Creatore Definizione
Un'entità che ha la responsabilità principale della produzione del contenuto della risorsa
Descrizione Esempi di Creator includono una persona, un'organizzazione o un servizio. In particolare, il nome di un Creator dovrebbe essere usato per indicare l'entità
Cfr. http://dublincore.org/dcregistry/queryServlet
Un esempio di URIUn esempio di URI
METAMETA
definito da
45
RDF RDF namespacenamespace
È possibile abbreviare le URI facendo uso dei prefissi dei namespace di XMLEs.
lo statement
introducendo i seguenti prefissi per i tre namespacexmlns:ex=“http://www.example.org/”xmlns:sid=“URN:org:example:staffid:”xmlns:dc=“http://purl.org/dc/elements/1.1/”
diventa
ex:index.html sid:85740
dc:creator
http://www.example.org/index.html URN:org:example:staffid:85740
http://purl.org/dc/elements/1.1/creator
46
Ci sono molti vantaggi nell’utilizzare gli URI come semplice modalità di identificazioneInvece di
identificare l’autore come la stringa “Mario Rossi“, si può usare l’URI sid:85740
ex:index.html ha un dc:creator il cui valore è sid:85740
Vantaggi 1. possiamo essere più precisi nella nostra identificazione dell’autore della
pagina • non è la stringa “Mario Rossi”, o qualcuna delle
migliaia di persone che si chiamano “Mario Rossi" • ma il particolare Mario Rossi associato all’URI
Elementi come URI 1/2Elementi come URI 1/2
47
2. Una URI è una risorsa, quindi possiamo raffinarla, per esempio assegnando, il nome, l’età, ...Es.ex:index.html ha un dc:creator il cui valore è sid:85740sid:85740 ha un foaf:email il cui valore è mailto:[email protected]
Elementi come URI 2/2Elementi come URI 2/2
ex:index.html sid:85740
dc:creator
mailto:[email protected]:email
FOAF: Friend Of A FriendProposta di
metadati per descrivere le
relazioni socialhttp://www.foaf-project.org/
48
Elementi come valoriElementi come valori
Il soggetto e il predicato di ogni statement devono essere dellerisorse, quindi devono avere un URIL’oggetto può anche essere un valore
La terminologia di RDF utilizza il termine letterale (Literal) Es.
http://www.example.org/index.html ha un http://purl.org/dc/elements/1.1/creator il cui valore è “Mario Rossi”
http://www.example.org/index.html Mario Rossi
http://purl.org/dc/elements/1.1/creator
In un diagramma RDF, le risorse sono disegnate comeovali, mentre i letterali sono disegnati come rettangoli.
49
Possiamo assegnare una categoria alla risorsa utilizzando la proprietà rdf:type (in gergo: tipizzare una risorsa)
ex:index.html è un pagina web ex:index.html ha un dc:creator il cui valore èsid:85740
sid:85740 è un impiegatosid:85740 ha un foaf:email il cui valore èmailto:[email protected]
Tipizzare le risorseTipizzare le risorse
ex:index.html sid:85740
dc:creator
mailto:[email protected]:email
ex:pagina_webex:impiegato
rdf:type rdf:type
50
RDF in XML 1/5RDF in XML 1/5
Questa sintassi è definita in RDF/XML Syntax Specification [http://www.w3.org/TR/rdf-syntax-grammar/]
ex:index.html sid:85740
dc:creator
nodenodeelementelement
propertypropertyelementelement
RootRoot tagtag
l’idea base prevede un elemento XML per ogni nodo (soggetto e oggetto) e arco (predicato)Es.
<rdf:RDFxmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”xmlns:ex=”http://www.example.org/”xmlns:sid=“URN:org:example:staffid:”xmlns:dc=”http://purl.org/dc/elements/1.1/”><rdf:Description rdf:about="http://www.example.org/index.html "><dc:creator><rdf:Description rdf:about="URN:org:example:staffid:85740"/></dc:creator >
</rdf:Description></rdf:RDF>
51
RDF in XML 2/5RDF in XML 2/5
Una possibile abbreviazione prevede l’uso dell’attributo rdf:resource nei property element
Es.<rdf:RDF
xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”xmlns:ex=”http://www.example.org/”xmlns:sid=“URN:org:example:staffid:”xmlns:dc=”http://purl.org/dc/elements/1.1/”><rdf:Description rdf:about="http://www.example.org/index.html "><dc:creator rdf:resource="URN:org:example:staffid:85740"/></rdf:Description>
</rdf:RDF>
52
ex:index.html sid:85740
dc:creator
mailto:[email protected]:email
RDF in XML 3/5RDF in XML 3/5
Altri statement Es.
si possono serializzare sempre di seguito<rdf:Description rdf:about="http://www.example.org/index.html">
<dc:creator rdf:resource="URN:org:example:staffid:85740"/></rdf:Description><rdf:Description rdf:about="URN:org:example:staffid:85740">
<foaf:email rdf:resource="mailto:[email protected]"/></rdf:Description>
nel caso in cui si descriva l’oggetto del primo anche innestandoli <rdf:Description rdf:about="http://www.example.org/index.html ">
<dc:creator><rdf:Description rdf:about="URN:org:example:staffid:85740">
<foaf:email rdf:resource="mailto:[email protected]"/></rdf:Description>
</dc:creator ></rdf:Description>
Interoperabilitàsintattica !!!
53
ex:index.html
ex:pagina_web
rdf:type
RDF in XML 4/5RDF in XML 4/5
Possibile abbreviazione per risorse tipizzateEs.
Forma non abbreviata
<rdf:Descriptionrdf:about="http://www.example.org/index.html"><rdf:type rdf:resource="http://www.example.org/pagina_web">
</rdf:Description>
Forma abbreviata
<ex:pagina_web rdf:about="http://www.example.org/index.html" />
54
RDF in XML 5/5RDF in XML 5/5
Una serializzazione compatta di
potrebbe essere
<ex:pagina_web rdf:about="http://www.example.org/index.html"><dc:creator><ex:impiegato rdf:about="sid:55740"
foaf:email="mailto:[email protected]"/><dc:creator>
</ex:pagina_web>
ex:index.html sid:85740
dc:creator
mailto:[email protected]:email
ex:pagina_web ex:impiegato
rdf:type rdf:type
Quasi un normale XML!
55
RiferimentiRiferimenti
Dublin core: metadati per il Webhttp://dublincore.org/schemas/rdfs/
RDF Calendar: appuntamenti ed eventihttp://ilrt.org/discovery/2001/04/calendar/
vCard RDF: contattihttp://www.w3.org/TR/vcard-rdf
FOAF: friend of a friendhttp://www.foaf-project.org/
LOM : Learning-object metadatahttp://kmr.nada.kth.se/el/ims/md-lomrdf.html
56
Utilizzo di RDF Utilizzo di RDF
RDF consente una buona interoperabilitàstrutturale
Ovvero i vari sistemi informativi, che condividono lo stesso modello RDF, possono scegliere indipendentemente il formato più adatto all’informazione che intendono scambiare
RDF consente di fondere (merge) modelliOvvero non ci sono ostacoli nel combinare informazione proveniente da sistemi differenti (quindi anche in formati diversi), purché questi condividano lo stesso modello RDF
57
Un esempio di interoperabilitUn esempio di interoperabilitàà 1/31/3
Consideriamo il modello RDF
British Library
Spina_Verde
Baita_degli_Alpini
Parco
rdf:type
rdf:type
contiene
Baita
S11
rdf:type
Sentiero
raggiungibile_da
percorso_da
attraversa situata_in
58
Un esempio di interoperabilitUn esempio di interoperabilitàà 2/32/3
Il consorzio che gestisce il parco della Spina Verde, nel comunicare con l’ARPA (interessata a censire l’offerta escursionistica del parco), potrebbe scegliere il formato
<Parco rdf:about="Spina_verde"><contiene><Baita rdf:about="Baita_degli_alpin"/>
</contiene> <percorso_da><Sentiero rdf=about="S11"/>
</percorso_da></Parco>
Spina_Verde
Baita_degli_Alpini
Parco
rdf:type
rdf:type
contiene
Baita
S11
rdf:type
Sentiero
raggiungibile_da
percorso_daattraversa situata_in
59
Un esempio di interoperabilitUn esempio di interoperabilitàà 3/33/3
ma, nel comunicare con il CAI (interessato ai sentieri di accesso alle baite), potrebbe scegliere il formato
<Baita rdf:about="Baita_degli_alpini"situata_in="Spina_verde">
<raggiungibile_da><Sentiero rdf=about="S11"/></raggiungibile_da>
</Baita>
e ogni altra ricopertura ad albero del grafo
Spina_Verde
Baita_degli_Alpini
Parco
rdf:type
rdf:type
contiene
Baita
S11
rdf:type
Sentiero
raggiungibile_da
percorso_da
attraversa situata_in
60
Un esempio di fusione (Un esempio di fusione (mergemerge) 1/3) 1/3
I due file XML/RDF dell’esempio precedente
A ciascuno corrisponde un modello RDF
<Parco rdf:about="Spina_verde"><contiene><Baita rdf:about="Baita_degli_alpin"/></contiene> <percorso_da><Sentiero rdf:about="S11"/></percorso_da>
</Parco>
<Baita rdf:about="Baita_degli_alpini"situata_in="Spina_verde">
<raggiungibile_da><Sentiero rdf=about="S11"/></raggiungibile_da>
</Baita>
Spina_Verde
Baita_degli_Alpini
Parco
rdf:type
rdf:type
contiene
Baita
S11
rdf:type
Sentiero
percorso_da
Spina_Verde
Baita_degli_Alpini
rdf:type
Baita
S11
rdf:typeSentiero
raggiungibile_da
situata_in
61
Un esempio di fusione (Un esempio di fusione (mergemerge) 2/3) 2/3
Basta fonderli facendo in modo che1. Se ci sono nodi del grafo replicati (con lo stesso identificativo) allora si
può sostituire tutti i nodi con un solo nodo e connettere tutti gli archi a questo
Spina_Verde
Baita_degli_Alpini
Parco
rdf:type
rdf:type
contiene
Baita
S11
rdf:type
Sentiero
percorso_da
Spina_Verde
Baita_degli_Alpini
rdf:type
Baita
S11
rdf:typeSentiero
raggiungibile_da
situata_inU
Spina_Verde
Baita_degli_Alpini
Parco
rdf:type
rdf:type
contiene
Baita
S11
rdf:typeSentiero
raggiungibile_da
percorso_dasituata_in
rdf:type
!!!
62
Un esempio di fusione (Un esempio di fusione (mergemerge) 3/3) 3/3
2. Quando non ci sono più nodi replicati se una coppia di nodi è connessa da due o più archi con la stessa URI se può lasciare un solo arco
Per ottenere un unico modello RDF
Spina_Verde
Baita_degli_Alpini
Parco
rdf:type
rdf:type
contiene
Baita
S11
Sentiero
raggiungibile_da
percorso_da
situata_in
rdf:type
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
Scopo Scopo 1/21/2
RDFpermette di per associare metadati
a risorse pubblicate sul Web
GliGli utilizzatoriutilizzatori di RDF devonodevono, però, anche poterpoterdefinire i definire i metadatimetadati
RisorsaMETAMETA
definito da Ontologia!
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
Scopo Scopo 2/42/4
Hanno bisogno di un linguaggio ontologicolinguaggio ontologico con cui definire il significato associato ai metadati
Es Parentelaun uomo è un essere umano ed è maschiouna donna è un essere umano ed è femminauna madre è una donna che ha_figlio almeno un essere umanouna padre è un uomo che ha_figlio almeno un essere umanoun genitore è o un padre o una madreUn nonno è un uomo che ha_figlio almeno un genitore
I termini sottolineati sono parte del linguaggio utilizzato per definire madre, padre, …, nonno.
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
Scopo Scopo 3/43/4
Il linguaggio ontologico deve però essereesplicito
perché basato su strutture (concetto, proprietà, etc.) diimmediata applicazione
– un, è un, che, almeno un, o sono già abbastanza espliciti
Formaleperché automaticamente decodificabile
– il linguaggio naturale (nel nostro caso l’italiano) non èadatto
perciò occorre definire esplicitamente e in modo formale il significato dei termini del linguaggio ontologico (un, è un, che, almeno un, o)
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
Scopo Scopo 4/44/4
RDFS : RDF Vocabulary Description LanguageRDFS : RDF Vocabulary Description Language o RDF Schema è un linguaggio ontologico adattoperchè
è formaleessendo costruito sopra RDF
è esplicitospecifica un insieme predefinito di risorse e predicatispecifica un insieme predefinito di risorse e predicatiRDF per
–– definiredefinire classi e predicati–– controllarecontrollare quali classi e
predicati debbono essereutilizzati contempora-neamente
Classirdfs:Resourcerdfs:Classrdf:Property...
Proprietàrdfs:subClassOfrdfs:subPropertyOfrdfs:rangerdfs:domain....
OWL èuna
versione estesa di
RDFS
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
classi ed esemplariclassi ed esemplari
creare una classeclasseex:Artista rdf:type rdfs:Class .
creare una sotto classesotto classeex:Pittore rdfs:subClassOf ex:Artista .ex:Scultore rdfs:subClassOf ex:Artista .
creare un esemplareesemplare (istance)ex:Rodin rdf:type ex:Scultore .
gode della proprietà transitiva
artistapittore
scultoreRodin
Quelli rappresentati sono degli insiemi e non dei diagrammi RDF
Insiemistica!
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
classi ed esemplariclassi ed esemplari
Uso di “Multiple Multiple inheritanceinheritance”ex:ArtistaMultidisciplinare
rdfs:subClassOf ex:Pittore .ex:ArtistaMultidisciplinare
rdfs:subClassOf ex:Scultore .Uso di “Multiple Multiple instantiationinstantiation”
ex:Michelangelo rdf:type ex:Pittore .ex:Michelangelo rdf:type ex:Scultore .
pittore scultore
Michelangelo
artistaArtistaMultidisciplinare
Quelli rappresentati sono degli insiemi e non dei diagrammi RDF
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
proprietproprietàà
creare una proprietproprietààex:crea rdf:type rdf:Property .
usare una proprietusare una proprietààex:Rodin ex:crea ex:Il_bacio .
creare sotto proprietsotto proprietààex:dipinge rdfs:subPropertyOf ex:crea .ex:scolpisce rdfs:subPropertyOf ex:crea .
gode della proprietà transitiva
crea
dipinge Quelli rappresentati sono degli insiemi e non dei diagrammi RDF
Restrizione di una relazione!
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
rangerange e e domaindomain constrainconstrain
controllare quali classi e predicati devono essere controllare quali classi e predicati devono essere utilizzati contemporaneamenteutilizzati contemporaneamente
ex:crea rdfs:domain ex:Artista .ex:crea rdfs:range ex:Opera .ex:dipinge rdfs:domain ex:Pittore .ex:dipinge rdfs:range ex:Pittura .ex:scolpisce rdfs:domain ex:Scultore .ex:scolpisce rdfs:range ex:Scultura .
La composizione di gerarchie di proprietà e vincoli di range e domainimpone una gerarchia di classi
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
rangerange e e domaindomain constrainconstrain
artista opera
pittore pittura
dipinge
scultore scultura
scolpisce
crea
Quelli rappresentati sono degli insiemi e non dei diagrammi RDF
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
Un poUn po’’ della semantica di RDFSdella semantica di RDFS
sese alloraallorax rdfs:subClassOf y . a rdf:type y .a rdf:type x .x rdfs:subClassOf y . x rdfs:subClassOf z .y rdfs:subClassOf z .x a y . x b y .a rdfs:subPropertyOf b .a rdfs:subPropertyOf b . a rdfs:subPropertyOf c .b rdfs:subPropertyOf c .x a y . x rdf:type z .a rdfs:domain z .x a u . u rdf:type z .a rdfs:range z .
polimorfismo
[...] RDF Semantics http://www.w3.org/TR/rdf-mt/
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
potenzialitpotenzialitàà di RDFS di RDFS 1/41/4
Dato la seguente ontologia ...ex:Scultore rdf:subClassOf ex:Artista .ex:Pittore rdf:subClassOf ex:Artista .ex:Scultura rdf:subClassOf rdfs:Opera .ex:Pittura rdf:subClassOf rdfs:Opera .ex:crea rdfs:domain ex:Artista .ex:crea rdfs:range ex:Opera .ex:scolpisce rdfs:subPropertyOf ex:crea .ex:scolpisce rdfs:domain ex:Scultore .ex:scolpisce rdfs:range ex:Scultura .
... e solo i seguenti datiex:Rodin rdf:type ex:Scultore .ex:Rodin ex:scolpisce ex:Il_bacio .
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
potenzialitpotenzialitàà di RDFS di RDFS 2/42/4
artista opera
pittore pittura
dipinge
scultore scultura
scolpisce
crea
Quelli rappresentati sono degli insiemi e non dei diagrammi RDF
Rodin Il bacio
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
potenzialitpotenzialitàà di RDFS di RDFS 3/43/4
sfruttando l’informazione di schema per dedurreEs. usando RACER [http://www.sts.tu-harburg.de/~r.f.moeller/racer/]
è possibile porre alcune interrogazioniD: mi elenchi gli artisti che conosci?R: RodinM: Rodin è uno scultore e gli scultori sono degli artisti
D: cosa ha creato Rodin?R: Il bacioM: Il bacio è stato scolpito da Rodin, ma scolpire è un
particolare modo di creare
[demo]
Già: è il polimorfisfmo
della POO!
!
[demo]
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
potenzialitpotenzialitàà di RDFS di RDFS 4/44/4
D: mi elenchi le sculture che conosci?R: Il bacioM: Il bacio è una scultura perchè è stata utilizzata come
valore nel predicato scolpisce
“non è tutto oro quel che luccica!”Quali prestazioni ?Scala ?... ?
[demo]
!!!
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
Linguaggi piLinguaggi piùù espressivi ... espressivi ... 1/21/2
RDFS mette a disposizione un insieme di capacità di base per definire vocabolaripotrebbero essere utile poter esprimere...poter esprimere...
vincoli di vincoli di cardinalitcardinalitàà (max, min, esattamente) sui predicati
Es. un Poligono ha 3 o più Lati
caratteristiche delle proprietcaratteristiche delle proprietààtransitiva
– Es. HaComeAntenato è transitiva: se A HaComeAntenato B, e B HaComeAntenato C, allora A HaComeAntenato C.
inversa– Es. Richiede ha come inversa èRichiesta: se A Richiede B
allora B è Richiesta da A
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
Linguaggi piLinguaggi piùù espressivi ... espressivi ... 2/22/2
simmetrica– Es. Vicino è simmetrica: se A Vicino B allora B Vicino A
ect.
Restrizioni sulle proprietRestrizioni sulle proprietàà in specifici contestiTutti i valori di tipo, alcuni valori di tipo
– Es. un Vino è una particolare Bevanda che ha un Produttore i cui valori sono tutti di tipo Viticoltore
etc.
che una classe classe èè costruita combinando altre classicostruita combinando altre classi(unione, intersezione, negazione, ...)
Es. un vino bianco è definibile come l’intersezione di Vino e di cosa di colore bianco
che una classe, proprietà o esemplare èè rispettivamente equivalenteequivalente aad un’altra classe, proprietà, esemplare
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
... ma trattabili... ma trattabili
... mantenendo... mantenendo allo stesso tempo il processo il processo inferenzialeinferenziale computazionalmente trattabiletrattabile
da queste esigenze nasce Ontology Web Language (OWL):http://www.w3.org/2001/sw/WebOnt/
RDFS/OWL in a RDFS/OWL in a nutshellnutshell
rapporto tra RDF e OWLrapporto tra RDF e OWL
OWL FullOWL Full: concepito per gli utenti che desiderano la massima espressività e libertà sintattica di RDF senzarichiedere garanzie computazionali.OWL DLOWL DL: (Description Logics) include tutti i costrutti diOWL ma pone alcune restrizioni sul loro utilizzo per garantire la decidibilità e la trattabilità computazionaleOWL OWL LiteLite: concepito per fornire agli utenti una gerarchia diclassificazione e vincoli semplici, un sottoinsiemefunzionale da utilizzare per semplici implementazioni
OWL FullOWL Full
RDFRDF OWL OWL LiteLite
OWL OWL DLDL
RDFS/OWL in a RDFS/OWL in a nutshellnutshellOWL Class ConstructorsOWL Class Constructors
Sia XMLS datatypes che classi in ∀C e ∃CEs. ∀hasAge.nonNegativeInteger
Combinazioni arbitrariamente complesseE.g., Person ∪ ∃hasChild.Doctor ∩ ∀hasChild.Doctor
OWL è un linguaggio ontologico piùespressivo di RDFS
RDFS/OWL in a RDFS/OWL in a nutshellnutshellOWL OWL AxiomsAxioms
RDFS/OWL in a RDFS/OWL in a nutshellnutshellEs.Es. Ontologie & lOntologie & l’’interoperabilitinteroperabilitàà
Se formalizziamo i prestiti di una biblioteca in OWL...ex:Persona rdf:type rdfs:Class .ex:Libro rdf:type rdfs:Class .ex:ha_in_prestito rdf:type rdf:Property .ex:è_in_prestito_a rdf:type rdf:Property .ex:ha_in_prestito owl:inverseOf ex:è_in_prestito_a .
... allora l’informazione...“Alice ha preso in prestito Cime tempestose”
Persona Librordf:type rdf:type
ha_in_prestito
è_in_prestito_aAlice Cime Tempestose
RDFS/OWL in a RDFS/OWL in a nutshellnutshellEs.Es. Ontologie & lOntologie & l’’interoperabilitinteroperabilitàà
... può essere serializzata in XML ......sia dal punto di vista di Alice
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://ex.org/">
<ex:Persona rdf:about="URN:ex:Alice"><ex:ha_in_prestito><ex:Libro rdf:about="URN:ex:cime_tempostese"/>
</ex:ha_in_prestito></ex:Persona>
</rdf:RDF>
... sia dal punto di vista della biblioteca<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://ex.org/">
<ex:Libro rdf:about="URN:ex:cime_tempostese"><ex:è_in_prestito_a><ex:Persona rdf:about="URN:ex:Alice"/>
</ex:è_in_prestito_a></ex:Libro>
</rdf:RDF>
RDFS/OWL in a RDFS/OWL in a nutshellnutshellalcuni strumentialcuni strumenti
HP Jena 2.1 http://jena.sourceforge.net/APIs per manipolare RDF, RDFS e OWLSupporto per persistenza e querysistema a regole per supporto a inferenza
Protègè + OWL plug-in http://protege.stanford.edu/Editor grafico di OWLNumerosi plug-in
Racer http://www.sts.tu-harburg.de/~r.f.moeller/racerDescription Logic Reasoner compatibile con OWL-DL
Rice http://www.b1g-systems.com/ronald/rice/Client di RACER
Sesame http://www.openrdf.org/Sistema ottimizzato per persistenza RDF(S) e query