Il problema della gestione dei dati in rete Gestione dei ... · Condivisione dei contenuti:...

22
1 Gestione dei dati Gestione dei dati e dei contenuti e dei contenuti Flavio De Paoli [email protected] 2 Outline Outline 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 rete Dati in rete Tipologia di dati tradizionale File che realizzano documenti nei formati tradizionali: testo + immagini File system condivisi consentono l’accesso multi-utente Organizzazione tradizionale I documenti sono patrimonio di un numero ristretto di persone che condividono finalità e dominio applicativo (terminologia e metodo) 4 Dati in rete Dati in rete Tipologia dei dati in rete Nuove importanti forme: ipertesti, e-mail, news, multimedia, … Molti server mettono a disposizione enormi quantità di dati eterogenei Modello organizzativo Il Web è diventato il modello di riferimento Chiunque può accedere, organizzare e distribuire dati Non è più scontata la comprensione dei dati (manca il background comune tra i lettori)

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