rdf schema mario arrigoni neri. 2 interoperabilità: fase 0 ricerca testuale motori di ricerca...

42
RDF Schema Mario Arrigoni Neri

Upload: daniela-lai

Post on 01-May-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

RDF Schema

Mario Arrigoni Neri

Page 2: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

2

Interoperabilità: fase 0

Ricerca testuale

Motori di ricerca “classici” : Google, Yahoo, ecc..

Ricerca su termini specifici: “Parapendio”– I risultati sono piuttosto specifici e pertinenti

Ricerca su termini specifici: “Verdi”– Giuseppe Verdi– Teatro Verdi– Il partito dei Verdi– Libri Verdi della commissione europea

L’interoperabilità si basa sulla comprensione umana dei termini

Page 3: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

3

Interoperabilità: fase 1

XML Schemi definiti dall’utente offrono una possibilità di condividere le

interpretazioni dei dati con diverse applicazioni Diversi repository diversi schemi:

– Swiss Prot: Find <Species>leech</Species>– EMBLChange. Find <Organism>leech<Organism>

Page 4: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

4

Interoperabilità: fase 2

Semantic Web Si elimina il riferimento diretto alla realtà costruendo ontologie

composte da termini La semantica dei metadati è eterogenea ed inconsistente tra

repository diversi

DB1

DB2

Information System 1

Information System 2

interpr. 1

interpr. 2

Page 5: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

5

Eterogeneicità semantica

Standardizzazione: consenso su markup comuni– Applicabile se non esistono applicazioni esistenti– Applicabile se esistono attori dominanti che “dettano” le regole

Traduzione: creazione di mappe tra schemi differenti– Richiede interpretazione e comprensione– La mappatura è complessa e costosa– Schemi di traduzione N2

Annotazione: creare relazioni con concettualizzazioni comuni– Richiede interpretazione e comprensione– La creazione delle relazioni può essere complessa– Servizi di ragionamento sulla concettualizzazione comune (ontologia)

possono fornire valore aggiunto

Page 6: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

6

Annotazione

L’ontologia deve consegnare al sistema il significato dei termini utilizzati

http://www.bio.com/SP.xml<SP_entry> <ID>…</ID> <Authors>…</Authors> <Organism> Dog </Organism></SP_entry>

http://www.bio.com/EC.xml<EC_entry> <ID>…</ID> <Authors>…</Authors> <Species> Leech </Species></EC_entry>

OrganismInvertebrateISA

IOIO

<Organism> Leech </Organism>

?

Page 7: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

7

Ontologie

Una ontologia è una esplicita rappresentazione di una concettualizzazione della realtà [Gruber, 1993] Diversi sistemi concordano su una ontologia (direttamente o indirettamente) Associano i propri modelli a nodi dell’ontologia condivisa Occorre raggiungere un accordo sull’ontologia

DB1

DB2

Information System 1

Information System 1

interpr. 1

interpr. 2

Ontologiaconcettual.

Page 8: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

8

Ontologie

Da un punto di vista tecnico, l’ontologia permette di dare una semantica ai metadati

<?xml version="1.0"?><note>

<to> </to><from> </from> <message>…</message>

</note>

Ok, ma che significa ???

Note InfomrativeObject from.Person……

Ah ok !!!

Page 9: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

9

Uno schema per RDF

RDF fornisce un modo per descrivere generiche asserzioni su risorse e proprietà

E’ spesso necessario indicare il fatto che queste si riferiscono a particolari tipi di risorse ed usano specifiche proprietà

http://www.elet.polimi.it/bib/book0001

http://www.elet.polimi.it/terms/author

http://www.elet.polimi.it/people/D02005

http://www.elet.polimi.it/terms#Book http://www.elet.polimi.it/terms#PhDS

rdf:type rdf:type

http://www.elet.polimi.it/terms#author

Page 10: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

10

RDF(S)

Per descrivere le classi e le relazioni utilizzate per costruire il particolare modello RDF si utilizza ancora RDF

Il particolare vocabolario è definito dall’ RDF Vocabulary Description Language, altrimenti noto come RDF-Schema

Non fornisce un vocabolario specifico per l’applicazione (terms:Book, terms:PhDS, terms:author, ecc..)

Definisce un meccanismo per specificare classi e proprietà e costruire lo specifico vocabolario

RDF(S) fornisce un sistema di tipi (semantici) per RDF

Page 11: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

11

Classi – 1

Le classi sono aggregati di individui. Ogni classe rappresenta un tipo di risorsa su cui si costruisce il modello RDF

Il namespace di riferimento è: http://www.w3.org/2000/01/rdf-schema# Ogni classe è una risorsa in relazione rdf:type con la risorsa

http://www.w3.org/2000/01/rdf-schema#Class

http://www.elet.polimi.it/terms#PhDS

http://www.w3.org/200/01/rdf-schema#Class

http://www.w3.org/1999/02/22-rdf-syntax-ns#type

Page 12: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

12

Classi – 2

<rdf:RDF xmlns:terms=“http://www.elet.polimi.it/terms#”xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”xmlns:rdfs=“http://www.w3.org/2000/01/rdf-schema#”>

<rdf:Description rdf:about=“http://www.elet.polimi.it/terms#PhDS”> <rdf:type rdf:resource=“http://www.w3.org/2000/01/rdf-schema#Class”/> </rdf:Description></rdf:RDF>

terms:PhDS rdf:type rdfs:Class

<rdf:RDF xml:base=“http://www.elet.polimi.it/terms”xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”xmlns:rdfs=“http://www.w3.org/2000/01/rdf-schema#”>

<rdfs:Class rdf:ID=“PhDS”/></rdf:RDF>

Utilizzo la forma abbreviata di RDF ed rdf:ID per riferirmi alla descrizioneLocale (per fare questo occorre strutturare correttamente il ns)

Page 13: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

13

Gerarchie di classi – 1

Analogamente ai linguaggi OO, RDF(S) permette di organizzare le classi in gerarchie Il vocabolario RDF(S) mette a disposizione la relazione subClassOf

– Transitiva Es: un PhD Student è (is-a) una Persona

C : insieme dei simboli di classe∆I : insieme di interpretazione●I : funzione di interpretazione AI ∆I A, BCA rdfs:subClassOf Bx ∆I : x AI x BI

Ovvero : AI BI

Dove x AI ↔ <x rdf:type A>

Page 14: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

14

Gerarchie di classi – 2

http://www.elet.polimi.it/terms#PhDS

http://www.w3.org/200/01/rdf-schema#Class

rdf:typehttp://www.elet.polimi.it/terms#Person

rdf:type

rdfs:subClassOf

<rdfs:Class rdf:ID=“Person”/><rdfs:Class rdf:ID=“PhDS”>

<rdfs:subClassOf rdf:resource=“#Person”/></rdfs:Class>

Page 15: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

15

Sintassi alternative

Dato che RDFS è espresso esso stesso in RDF posso utilizzare tutte le varianti sintattiche

<rdfs:Class rdf:ID=“PhDS”><rdfs:subClassOf> <rdfs:Class rdf:ID=“Person”/></rdfs:subClassOf>

</rdfs:Class>

Page 16: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

16

Il meta-modello RDF(S)

Le stesse risorse che usiamo per descrivere lo schema sono classi. rdfs:Class è la (meta) classe a cui appartengono tutte le classi

– NON è l’analogo dell’Object di Java rdfs:Resource è la classe “universo” da cui derivano tutte le classi di

un modello. Se non indico alcun rdfs:subClassOf la classe deriva implicitamente da rdfs:Resource.

– E’ l’analogo dell’Object di Java

http://www.w3.org/200/01/rdf-schema#Class

http://www.w3.org/200/01/rdf-schema#Resource

rdfs:subClassOf rdf:type

http://www.elet.polimi.it/terms#Person

rdf:type

rdfs:subClassOf

Page 17: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

17

Istanze – classi – metaclassi

rdfs:Class

rdfs:Resource

rdfs:subClassOfrdf:type

rdf:type

terms:Person

terms:PhDS

terms:Book

rdf:type

rdfs:subClassOf

people:D02005 bib:book0001

rdf:typeterms:author

Mario Arrigoni Neriterms:name

rdf:type

Page 18: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

18

Reasoning – 1

I semplici costrutti rdf:type ed rdfs:subClassOf permettono già un servizio minimale di reasoning

http://www.elet.polimi.it/terms#PhDS

rdf:typehttp://www.elet.polimi.it/terms#Person

rdf:type

rdfs:subClassOf

http://www.w3.org/200/01/rdf-schema#Resource

rdfs:subClassOf

http://www.elet.polimi.it/people/D02005

rdfs:subClassOf

rdf:type

Page 19: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

19

Reasoning – 2

people:D02005 rdf:type terms:PhDSterms:PhDS rdf:type rdfs:Classterms:Person rdf:type rdfs:Classterms:PhDS rdfs:subClassOf terms:Person

term:Person rdfs:subClassOf rdfs:Resource

A rdfs:subClassOf BB rdfs:subClassOf C

A rdfs:subClassOf C

A rdf:type BB rdfs:subClassOf C

A rdf:type C

Term:PhDS rdfs:subClassOf rdfs:Resourcepeople:D02005 rdf:type terms:Personpeople:D02005 rdf:type terms:Resource

Page 20: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

20

Reasoning – 3

In questo esempio resoning basato su REGOLE DI INFERENZA Il motore inferenziale cerca di combinare gli antecedenti delle regole

con i fatti presenti nella base di conoscenza tramite il PATTERN MATCHING

A rdfs:subClassOf BB rdfs:subClassOf C

A rdfs:subClassOf C

terms:PhDS rdfs:subClassOf terms:Personterms:Person rdfs:subClassOf terms:Resource

A = terms:PhDSB = terms: PersonC = ?

A = terms: PersonB = terms: ResourceC = ?

1)2)

A = terms:PhDSB = terms: PersonC = terms: Resource

Page 21: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

21

Reasoning sul meta-modello

rdfs:Resource rdfs:type rdfs:Classrdfs:Class rdfs:subCassOf rdfs:Resource

A rdf:type BB rdfs:subClassOf C

A rdf:type C

A = rdfs:ResourceB = rdfs:ClassC = rdfs:Resource

rdfs:Resource rdf:type rdfs:Recource

Page 22: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

22

Proprietà

Oltre a descrivere le classi a cui appartengono gli oggetti del modello abbiamo bisogno di descrivere specifiche proprietà

Ogni proprietà RDF è istanza della classe predefinita rdf:Property.

http://www.elet.polimi.it/terms#author

http://www.w3.org/1999/02/22-rdf-syntax-ns#Property

http://www.w3.org/1999/02/22-rdf-syntax-ns#type

terms:author rdf:type rdf:Property

<rdf:Property rdf:ID=“author”/>

Page 23: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

23

Domain e Range – 1

Rimane il problema di collegare tra di loro classi e proprietà RDF(S) fornisce anche un vocabolario per descrivere come ci si aspetta che proprietà

e classi si combinino tra di loro Le principali informazioni in questo frangente sono date dalle proprietà prdefinite

rdfs:domain ed rdfs:range Es: la relazione author sussiste tra un libro ed una persona:

http://www.elet.polimi.it/terms#Person

http://www.elet.polimi.it/terms#author

http://www.w3.org/1999/02/22-rdf-syntax-ns#Property

rdf:type

http://www.elet.polimi.it/terms#Book

rdfs:domain rdfs:range

Page 24: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

24

Domain e Range – 2

rrdfs:domain

C

R : insieme dei simboli di relazione●I : funzione di interpretazione RI ∆I x ∆I

x, y ∆I : <x,y> r I x CI

rrdfs:range

C

x, y ∆I : <x,y> r I y CI

Page 25: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

25

Literal range – 1

Opzionalmente il range delle proprietà (e solo quello) può essere un literal tipizzato

http://www.elet.polimi.it/terms#pubDaterdfs:range

http://www.w3.org/200/01/rdf-schema#Literal

http://www.elet.polimi.it/bib/book0001 “2004-01-01”

http://www.elet.polimi.it/terms#pubDate

Page 26: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

26

Literal range – 2

Opzionalmente può essere un literal tipizzato Se si vuole esprimere esplicitamente il fatto che si tratta di un literal si può utilizzare la classe

rdfs:Datatype

http://www.elet.polimi.it/terms#pubDaterdfs:range

xsd:date

http://www.w3.org/200/01/rdf-schema#Datatype

rdf:type

http://www.elet.polimi.it/bib/book0001 “2004-01-01”^^xsd:date

http://www.elet.polimi.it/terms#pubDate

Page 27: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

27

Literal range – 3

RDF non assegna alcun significato ai particolari tipi di literal Il controllo di consistenza tra testo formattato e tipo è lasciato all’applicazione Quindi il parser RDF non ha modo di “validare” un modello in cui compaiano literal tipizzati Si richiede che il literal nel documento sia esplicitamente tipizzato

<terms:Book rdf:ID=“book0001”> <terms:author rdf:resource=“http://www.elet.polimi.it/bib/book0001”/> <terms:pubDate rdf:datatype=“http://www.w3.org/2001/XMLSchema#date”>

2004-01-01</terms:pubDate></terms:Book>

<rdf:Property rdf:ID=“pubDate”> <rdfs:domain rdf:resource=“http://www.elet.polimi.it/terms#Book”/> <rdfs:range rdf:resource=“http://www.w3.org/2001/XMLSchema#date”/></rdf:Property><rdfs:Datatype rdf:about=“http://www.w3.org/2001/XMLSchema#date”/>

Page 28: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

28

Domini e Range multipli

<rdfs:Property rdf:ID=“author”> <rdfs:range resource=“#Person”/> <rdfs:range resource=“#Company”/></rdfs:Property>

<rdfs:Property rdf:ID=“author”> <rdfs:range resource=“#Person”/></rdf:Property>…<rdfs:Property rdf:ID=“author”> <rdfs:range resource=“#Company”/></rdf:Property>

x, y ∆I : <x,y> authorI y PersonI

x, y ∆I : <x,y> authorI y CompanyI

x, y ∆I : <x,y> authorI y PersonI y CompanyI

x, y ∆I : <x,y> authorI y (PersonI CompanyI) = Ø

Page 29: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

29

Sottoproprietà

Analogamente a quanto accade con le classi, ogni proprietà può essere definita come sottoproprietà di una data

Per questo si utilizza la relazione rdfs:subPropertyOf

La semantica è la solita:– L’interpretazione della sottorelazione (sottoproprietà) è un sottoinsieme dell’interpretazione della relazione da cui deriva

<rdf:Property rdf:ID=“author”> <rdfs:subPropertyOf resource=“#contributor”/></rdf:Property>

R : insieme dei simboli di classe∆I : insieme di interpretazione●I : funzione di interpretazione rI ∆I x ∆I

r, s Rr rdfs:subPropertyOf sx, y ∆I : <x, y> rI <x, y> sI

Page 30: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

30

Sottoproprietà, Domain e Range

Domini e codomini (range) si ereditano lungo le catene di rdfs:subPropertyOf

x, y ∆I : <x, y> rI <x, y> sI

x, y ∆I : <x, y> sI x DI

srdfs:domain

Drrdfs:subPropertyOf

rdfs:domain

x, y ∆I : <x, y> rI x DI

x, y ∆I : (<x, y> rI <x, y> sI) (<x, y> sI x DI)

Page 31: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

31

OWA – Open World Assumption

La semantica di RDF/RDF(S) è studiata in modo da poter effettuare inferenze anche assumendo di non possedere tutta la conoscenza sull’argomento

– Posso usare nell’RDF classi e relazioni che non compaiono nello schema Anche le inferenze rimangono corrette (logica monotonica) con l’aumentare della

conoscenza. Non vero ad esempio con interpretazione disgiuntiva di domini e range multipli

<rdf:Property rdf:ID=“author”> <rdfs:range resource=“#People”/></rdf:Property><terms:Book rdf:about=“bib:book0001”> <terms:author rdf:resource=“#D02005”/></terms:Book>

<terms:People rdf:about=“#D02005”/>

<rdf:Property rdf:ID=“author”> <rdfs:range resource=“#Company”/></rdf:Property>

<terms:People rdf:about=“#D02005”> <rdf:type resource=“..Company”/></terms:People>

Page 32: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

32

Corrispondenza con le DL

Costrutto RDF DL

<A rdfs:subClassOf B> AB

<R rdfs:range B> T=R.B

<R rdfs:domain A> T=R-.A // RA

<R rdfs:subPropertyOf S> RS

<x rdf:type A> x:A // A(x)

<x R y> R(x,y)Però ad RDFS mancano molti costrutti per rientrare nelle logiche AL

Page 33: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

33

Documentazioni

rdfs:label– rdf:type rdf:Property– rdfs:domain rdfs:Resource– rdfs:range rdfs:Literal– Permette di assegnare una stringa human-readable ad ogni risorsa

rdfs:comment– rdf:type rdf:Property– rdfs:domain rdfs:Resource– rdfs:range rdfs:Literal– Permette di assegnare una descrizione human-readable ad ogni risorsa

Page 34: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

34

Annotazioni

rdfs:seeAlso– rdf:type rdf:Property– rdfs:domain rdfs:Resource– rdfs:range rdfs:Resource– Collega la risorsa ad altre risorse che forniscono ulteriori informazioni sulla risorsa o sul suo contesto di uso

rdfs:isDefinedBy– rdf:type rdf:Property– rdfs:domain rdfs:Resource– rdfs:range rdfs:Resource– rdfs:subPropertyOf rdfs:seeAlso– Collega a risorse che “definiscono” la risorsa data

Page 35: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

35

Uno schema semantico?

XML-Schema e DTD specificano la sintassi dei documenti

RDF Schema specifica la semantica intesa delle risorse utilizzate

Cioè non vincola la struttura del documento, ma fornisce informazioni utili all’interpretazione del modello rappresentato nel documento

<rdf:Description rdf:ID=“D02005Name”><names:name>Mario</names:name> <names:surname>Arrigoni Neri</names:surname>

</rdf:Description>

<rdf:Description rdf:ID=“D02005Name” names:name=”Mario”><names:surname>Arrigoni Neri</names:surname>

</rdf:Description>

Varianti sintatticheper uno stessomodello

Page 36: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

36

RDF(S) e linguaggi OOP

RDF(S) ha molti punti in comune con i comuni linguaggi di programmazione OOP (es: Java), ma differisce da questi in alcuni punti centrali

Differente ripartizione delle descrizioni:

Java RDF(S)

public class Person

{…}

public class Book

{

.. public Person author;

}

<rdfs:Class rdf:ID=“Book”/>

<rdfs:Class rdf:ID=“Person”/>

<rdf:Property rdf:ID=“author”>

<rdfs:domain rdf:resource=“#Book”/>

<rdfs:range rdf:resource=“#Person”/>

</rdf:Property>

Page 37: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

37

Scope delle proprietà

Ma si tratta solo di una differenza sintattica? In un linguaggio di programmazione imperativo la definizione delle relazioni (proprietà) non è semplicemente “sintatticamente” inserita nella definizione della classe, ma è anche “semanticamente”

contestuale alla classe Se facessi lo stesso in RDF(S) sarei autorizzato a dedurre che l’autore è, contemporaneamente, una persona

ed una compagnia Posso definire la proprietà “peso” senza

indicare dom. e range. Diventa facile riusareproprietà in contesti inattesi.. però

public class Book{.. Public Person author;}…public class Specification{.. Public Company author;}

Le due proprietà author sonoomonime, ma differenti

Page 38: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

38

Uso dello schema

Nei linguaggi di programmazione lo schema dei tipi ha sempre uno scopo PRESCRITTIVO. Il programma che non rispetta i vincoli semplicemente è scorretto In RDF lo Schema fornisce informazioni aggiuntive, ma si lascia all’applicazione la scelta dell’uso di queste informazioni Scenario 1 – uso prescrittivo: l’applicazione interpreta lo schema come dei vincoli (constraints) sui modelli leciti Scenario 2 – uso deduttivo sul modello: si possono usare le informazioni sullo schema per dedurre ulteriore conoscenza. Es: ho un libro di cui conosco l’autore, posso dedurre che

la risorsa autore è una persona Scenario 3 – uso deduttivo sullo schema: incontro un libro che ha per autore una Company, in questo caso potrebbe esserci una inconsistenza, oppure posso trovare che

Company subClassOf Person

Page 39: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

39

Limiti di RDF – Schema

Limitato potere espressivo (subClassOf, subPropertyOf, range, domain) Semantica non ben definita

Linguaggi per ontologie– Intuitivi / espressivi– Sintassi ben specificata, semantica formale, adeguato potere espressivo– Compatibili con linguaggi esistenti (RDF)

rdfs:subPropertyOf

P1

P2

C1

C2

rdfs:subClassOf

rdfs:domain

rdfs:domain

Page 40: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

40

Dublin Core – 1

E’ una libreria di metadati definiti da un consorzio di bibliotecari ed archivisti

Dublino – 1995

Nato indipendentemente (e prima) del Semantic Web, ma ovviamente ben adatto ad essere integrato con RDF

Dublin Core 1: quindici (!) categorie di meta-informazioni

Dublin Core 2: sistema i classe-sottoclasse delle categorie (qualificatori)

Page 41: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

41

Dublin Core – 2

Contenuto

Title

Subject

Description

Type

Source

Relation

Coverage

Copyright

Creator

Publisher

Contributor

Rights

Istanza

Date

Format

Identifier

language

I modificatori permettono di specificare meglio i contenuti delle proprietà

– Date : created, valid, ecc.. Codifica: è possibile indicare tramite modificatori

particolari codifiche per i dati:– Subject : LCSH (Library of Congress Subject

Headings), MeSH, ecc..

Page 42: RDF Schema Mario Arrigoni Neri. 2 Interoperabilità: fase 0 Ricerca testuale Motori di ricerca classici : Google, Yahoo, ecc.. Ricerca su termini specifici:Parapendio

42

Dublin Core – 3

Marco

rdf:type

bib:assertion01

rdf:Statement

people:D02005

rdf:subject

terms:authorbib:book0001

rdf:predicate rdf:object

people:…

terms:name

names:name

Colombetti

names:surname

dc:Creator