Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide...

31
1 Basi di Dati e Sistemi Informativi su Web Prof. Massimo Ruffolo Ing. Maurizio Colica UNICAL - A.A. 2006-2007 Capitolo 4 RDF: Resource Description Framework Introduzione Classi e Istanze Proprietà

Transcript of Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide...

Page 1: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

1

Basi di Dati e Sistemi Informativi su Web

Prof. Massimo RuffoloIng. Maurizio Colica

UNICAL - A.A. 2006-2007

Capitolo 4RDF: Resource Description Framework

IntroduzioneClassi e IstanzeProprietà

Page 2: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

2

RDF: Resource Description Framework

Introduzione

RDF: Resource Description Framework

The Resource Description Framework(RDF) è uno standard W3C per la descrizione delle risorse Web,in termini di titolo, autore, data modifica, e copyright.

Page 3: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

3

Cos’è RDF?

RDF sta per Resource Description FrameworkRDF è una piattaforma per la descrizione delle risorse sul webRDF è costituito da un modello dei dati e da una sintassi separate l’una dall’altraRDF può essere interpretato da un computerRDF non è nato per essere letto dall’uomo RDF è scritto in XMLRDF fa parte delle attività del W3C per il “Web Semantico”RDF è una “W3C Recommendation“

RDF – Esempi d’uso

Descrizione di proprietà di oggetti in vendita come prezzo e disponibilitàDescrizione di informazioni relative a Pagine Web: autore,modifica,copyrightDescrizione dei contenuti e classificazione di immagini sul webDescrizione di contenuti per facilitare il compito dei motori di ricercaDescrizione di librerie digitali

Page 4: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

4

RDF è disegnato per essere interpretato da un pc

RDF è stato disegnato per essere di facile interpretazione da parte di applicazioni che si occupano di trattare contenuti.RDF non è stato disegnato per essere visualizzato sul web

RDF è scritto in XML Il linguaggio XML usato da RDF èchiamato RDF/XML. Usando XML, le informazioni RDF possono essere facilmente scambiate fra computer che utilizzino differenti piattaforme e differenti linguaggi di programmazione.

Page 5: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

5

RDF ed il “Web Semantico" Il linguaggio RDF fa parte del W3C's SemanticWeb Activity. W3C's "Semantic Web Vision" mira ad un futuro in cui:Le risorse web siano esattamente descritte Le risorse Web possano essere estratte e catalogate direttamente da un calcolatore Le applicazioni possano automaticamente incamerare e consumare contenuti eterogenei distribuiti sul web.

RDF è un W3C RecommandationRDF è diventato un W3C Recommendation nel Febbraio 2004.Un “W3C Recommendation” è considerato all’interno della comunità internazionale come uno standard. Una W3C Recommendation è una specifica di un linguaggio del quale W3C dopo un attenta revisione ne dichiara la validità come standard.La W3C Raccomendation per RDF si trova a questo link:

http://www.w3.org/RDF/

Page 6: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

6

RDF Risorse, Proprietà, e valori di Proprietà

RDF identifica gli oggetti attraverso una URI e descrive tali oggetti attraverso le proprietà

Una Risorsa è tutto ciò che è identificato da un Uri. Es. "http://www.w3schools.com/RDF" Una proprietà è una risorsa cui viene associato un nome come “mail” ,“name”Il valore di una proprietà esprime il valore che una proprietà di una risorsa può assumere. Il valore di una proprietà può essere un’altra risorsa.

RDF Risorse, Proprietà, e valori di Proprietà: un esempio.

L’RDF seguente descrive ad esempio la risorsa "http://www.unical.it/employee/mcolica":<?xml version="1.0"?><RDF> <Descriptionabout=" http://www.unical.it/employee/mcolica"> <author>Maurizio Colica</author> <homepage> http://www.unical.it</homepage> </Description> </RDF> Notate come nell’esempio non è stato considerato alcun Namespace

Page 7: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

7

Esempio Visivo

http://www.unical.it/employee/mcolica

mcolica

author

http://www.unical.it

homepage

Soggetto

Predicato

Oggetto

RDF Asserzioni La combinazione di una risorsa una proprietà ed un valore di proprietà si chiama asserzione.In un asserzione la risorsa viene chiamata Soggetto, la proprietàPredicato ed il valore Oggetto.Nell’esempio precedente:Asserzione: “L’autore di http://www.unical.it/employee/mcolica è Maurizio Colica".

Il soggetto è: http://www.unical.it/employee/mcolicaIl predicato è: authorL’oggetto è: Maurizio Colica

Assrezione: “L’homePage di http://www.unical.it/employee/mcolica èhttp://www.unical.it ".

Soggetto: http://www.w3schools.com/RDF Predicato: homepageOggetto: http://www.unical.it

Page 8: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

8

RDF EsempioCollezione di CD:

...

200118 euroCBS RecordsUKMisunderstoodRobbie Williams

200612 euroColumbiaItaliaElisaPearl Days

YearPriceCompanyCountryArtistTitle

http:// www.mp3.it/cd/Pearl Days

2006

year

Elisa

artistColumbia

company

12 euro

price

Page 9: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

9

RDF Esempi<?xml version="1.0" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.mp3.it/cd#"><rdf:Description rdf:about="http:// www.mp3.it/cd/Pearl Days"><cd:artist>Elisa</cd:artist> <cd:country>Italia</cd:country> <cd:company>Columbia</cd:company> <cd:price>12 euro</cd:price> <cd:year>2006</cd:year> </rdf:Description><rdf:Description rdf:about="www.mp3.it/cd /Misunderstood"><cd:artist>Robbie Williams</cd:artist> <cd:country>UK</cd:country> <cd:company>CBS Records</cd:company> <cd:price>18 euro</cd:price> <cd:year>2001</cd:year> </rdf:Description>. . . </rdf:RDF>

RDF EsempiLa prima linea è la dichiarazione XML. Segue la root di un documento RDF: <rdf:RDF>.Il xmlns:rdf namespace, specifica che all’interno del documento tutto ciò che porta il prefisso rdf fa riferimento al namespace"http://www.w3.org/1999/02/22-rdf-syntax-ns#".Il xmlns:cd namespace, specifica che all’interno del documento tutto ciò che porta il prefisso rdf fa riferimento al namespacehttp://www.mp3.it/cd#“ .Il tag <rdf:Description> specifica la descrione della risorsa identificata dall’attibuto rdf:about.Gli elementi: <cd:artist>, <cd:country>, <cd:company>, etc. sono proprietà della risorsa.

Page 10: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

10

L’elemento <rdf:RDF><rdf:RDF> è la root di qualsiasi documento RDF e lo identifica: in esso può essere contenuto il riferimento al namesapce RDF<?xml version="1.0"?><rdf:RDFxmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> [descrizioni delle risorse]</rdf:RDF>

L’ elemento <rdf:Description>L’ <rdf:Description> identifica una risorsa ed i suoi attributiL’ <rdf:Description> contiene elementi che descrivono le sue proprietàGli elementi, artist, country, company, price, e year, sono definiti nel namespacehttp://www.mp3.it/cd#. Questo namespacenon ha nulla a che fare con RDF . RDFdefinisce solo l’infrastruttura.

Page 11: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

11

Proprietà come Attributi Le proprietà possono essere rappresentate come attributi

<?xml version="1.0" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-

syntax-ns#" xmlns:cd="http://www.mp3.it/cd#"><rdf:Description rdf:about="http:// www.mp3.it/cd/Pearl

Days" cd:artist="Elisa" cd:country="Italia" cd:company="Columbia" cd:price="12 euro" cd:year="2006" />

</rdf:RDF>

Proprietà come RisorseI valori di proprietà possono essere espressi come risorse:<?xml version="1.0"?><rdf:RDFxmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cd="http:// www.mp3.it/cd#"> <rdf:Description rdf:about="http:// www.mp3.it/cd/PearlDays"> <cd:artist rdf:resource="http:// www.mp3.it/artist/Elisa" /> . . . . </rdf:Description></rdf:RDF>La proprietà artista non ha un valore ma un riferimento ad un’altra risorsa.

Page 12: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

12

Proprietà come Risorse

http:// www.mp3.it/cd/Pearl Days

2006

year

artistColumbia

company

12 euro

price

http:// www.mp3.it/artist/Elisa

Elisaname

RDF Elementi contenitoriRDF containers: sono usati per descrivere gruppi di cose. Ad esempio per elencare gli autori di un disco o di una canzone.Per descrivere questi gruppi si usano i tag: <Bag>, <Seq>, e <Alt>.

Page 13: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

13

L’elemento <rdf:Bag>Rappresenta una lista di valori non ordinata.Può contenere valori duplicati.Esempio

<?xml version="1.0" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http:// www.mp3.it/cd#"><rdf:Description rdf:about="http:// www.mp3.it/song/Ostacoli del cuore"><cd:artist><rdf:Bag><rdf:li>Elisa</rdf:li> <rdf:li>Ligabue</rdf:li> </rdf:Bag></cd:artist></rdf:Description></rdf:RDF>

rdf:Baghttp:// www.mp3.it/song/Ostacoli del cuore

rdf:type

Elisardf:_1

Ligabue

rdf:_2

rdf:Bag

cd:artist

Page 14: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

14

L’elemento <rdf:Seq>Rappresenta un lista di valori ordinataPuò contenere valori duplicati.Esempio

<?xml version="1.0" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http:// www.mp3.it/cd#"><rdf:Description rdf:about="http:// www.mp3.it/cd/Pearl Days"><cd:songs><rdf:Seq>

<rdf:li>01 Stay</rdf:li> <rdf:li>02 Gli Ostacoli del cuore</rdf:li> <rdf:li>03 Broken</rdf:li> <rdf:li>. . . .</rdf:li>

</rdf:Seq></cd:artist></rdf:Description></rdf:RDF>

rdf:Seqhttp:// www.mp3.it/cd/Pearl Days

rdf:type

01 Stayrdf:_1

02 Gli Ostacoli del cuore

rdf:_2

rdf:Seq

cd:song

. . . .

rdf:_3

Page 15: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

15

L’elemento <rdf:Alt>Rappresenta una lista di alternative Esempio

<?xml version="1.0" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http:// www.mp3.it/cd#"><rdf:Description rdf:about="http:// www.mp3.it/song/Ostacoli del cuore">

<cd:format><rdf:Alt>

<rdf:li>CD</rdf:li> <rdf:li>Disco Vinile</rdf:li> <rdf:li>MC</rdf:li>

</rdf:Alt></cd:format>

</rdf:Description></rdf:RDF>

rdf:Althttp:// www.mp3.it/song/Ostacoli del cuore

rdf:type

CDrdf:_1

Disco

rdf:_2

rdf:Alt

cd:format

MC

rdf:_3

Page 16: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

16

RDF TermsUna lista di valori in RDF si chiamano membri.Quindi:Un contenitore è una risorsa che contiene altri oggetti Gli oggetti contenuti si chiamano membri.

RDF CollectionsRDF collections sono usati per descrivere gruppi che contengono solo gli elementi specificati.

Page 17: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

17

L’attirbutordf:parseType="Collection"

Un container dice che una risorsa contiene alcuni membri ma tale affermazione non è chiusa: può contenerne anche altri.RDF collections è usato per esprimere liste chiuseUna collezione è descritta dall’attibuto rdf:parseType="Collection".Example

<?xml version="1.0" ?> - <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http:// www.mp3.it/cd#">- <rdf:Description rdf:about="http:// www.mp3.it/song/Ostacoli del cuore">- <cd:artist rdf:parseType="Collection">

<rdf:Description rdf:about="http:// www.mp3.it/artist/Elisa" /> <rdf:Description rdf:about="http:// www.mp3.it/artist/Ligabue" /> </cd:artist></rdf:Description></rdf:RDF>

RDF Schema (RDFS)

RDF Schema (RDFS) è un estensione di RDF.

Page 18: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

18

RDF Schema e ClassiRDF descrive risorse tramite classi, proprietà e valori.RDF ha bisogno di definire delle classi e proprietà specifiche per un applicazioneQueste classi devono essere definite usando un estensione di RDF. Tale estensione è RDF Schema.

RDF Schema (RDFS)RDF Schema non ha classi predefinite.RDF Schema fornisce la piattaforma per desrcivere nuovi tipi di classi.Le classi in RDF Schema sono simili alle classi di un linguaggio di programmazione ad oggetti.In RDF si possono rappresentare le risorse

come istanze di classi e definire sottoclassi e tipi.

Page 19: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

19

RDFS EsempiClassi e Sotto classi:

<?xml version="1.0" ?> - <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://www.animals.it/animals#">

- <rdf:Description rdf:ID="animal"><rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class" /> </rdf:Description>

- <rdf:Description rdf:ID="horse"><rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class" /> <rdfs:subClassOf rdf:resource="#animal" /> </rdf:Description></rdf:RDF>

La classe horse viene dichiarata come sottoclasse della classe Animal.

Esempio AbbreviatoRDFS Class è sotto classe della classe rdf:Resource. Per questo motivo possiamo evitare di usare rdf:Description rdf:type ed usare direttamente rdf:class

<?xml version="1.0" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-

ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://www.animals.it/animals#">

<rdfs:Class rdf:ID="animal" /> <rdfs:Class rdf:ID="horse"><rdfs:subClassOf rdf:resource="#animal" /> </rdfs:Class></rdf:RDF>

Page 20: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

20

RDF Classi e Proprietà

Namespace prefix:'rdfs' URI:'http://www.w3.org/2000/01/rdf-schema#' Le risorse possono essere istanze di una o più classi La classe è indicata tramite l’attibuto rdf:type propertyLa risorsa http://www.unical.it/students/Maurizio èrdf:type StudentLa risorsa http://www.unicla.it/students/Maurizio èrdf:type PersonStudent è rdfs:subClassOf PersonLe proprietà vengono definite in funzione della classe di risorse su cui si applicano

RDF Classirdfs:Resource – le risorse sono istanze di questa classerdf:Property – le proprietà sono istanze di questa classe.rdfs:Class – una classe dei linguaggi object oriented.

Page 21: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

21

RDF Propertàrdf:type – indica che una risorsa è del tipo della classe che viene specificata rdfs:subClassOf – indica la relazione classe/sottoclasse fra due classi rdfs:subPropertyOf – indica che una proprietà e specializzazione di un’altra. rdfs:seeAlso – specifica che la risorsa è anche descritta in altre parti rdfs:isDefinedBy – indica la risorsa “soggetto dell’asserzione” ovvero chi ha fatto l’asserzione

RDF Constraintsrdfs:range

Indica la classe dei valori ammissibili di una proprietà.rdfs:range è una classe rdf:Class

rdfs:domainIndica la classe cui la proprietà si applica. Se non è specificata indica che quella proprietà può essere usata su qualsiasi classe.

Page 22: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

22

Domain e RangeLegame tra classi e proprietà

RDF(S) fornisce anche un vocabolario per descrivere come ci si aspetta che proprietà e classi si combinino tra di loroProprietà predefinite rdfs:domain ed rdfs:range

http:// www.mp3.it/cd/#Artist

http:// www.mp3.it/cd/#singer

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

rdf:type

http:// www.mp3.it/cd/#Song

rdfs:domain rdfs:range

RDF Documentationrdfs:comment – testo libero rdfs:label – Riporta informazioni sulla versione di una risorsa

Page 23: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

23

RDF Schema Esempio (1)<?xml version="1.0"?>

<rdf:RDF 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="Person"><rdfs:comment>Person Class</rdfs:comment><rdfs:subClassOf

rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Resource"/></rdfs:Class>

<rdfs:Class rdf:ID="Student"><rdfs:comment>Student Class</rdfs:comment><rdfs:subClassOf rdf:resource="#Person"/>

</rdfs:Class>

RDF Schema Esempio (2)<rdfs:Class rdf:ID="Teacher">

<rdfs:comment>Teacher Class</rdfs:comment><rdfs:subClassOf rdf:resource="#Person"/>

</rdfs:Class>

<rdfs:Class rdf:ID="Course"><rdfs:comment>Course Class</rdfs:comment><rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Resource"/>

</rdfs:Class>

<rdf:Property rdf:ID="teacher"><rdfs:comment>Teacher of a course</rdfs:comment><rdfs:domain rdf:resource="#Course"/><rdfs:range rdf:resource="#Teacher"/>

</rdf:Property>

Page 24: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

24

RDF Schema Esempio (3)<rdf:Property rdf:ID="students">

<rdfs:comment>List of Students of a course in alphabetical order</rdfs:comment><rdfs:domain rdf:resource="#Course"/><rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq"/>

</rdf:Property>

<rdf:Property rdf:ID="name"><rdfs:comment>Name of a Person or Course</rdfs:comment><rdfs:domain rdf:resource="#Person"/><rdfs:domain rdf:resource="#Course"/><rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Literal

</rdf:Property>

</rdf:RDF>

Istanze – classi – metaclassi

rdfs:Classrdfs:Resource

rdfs:subClassOf

rdf:type

rdf:type

terms:Person

terms:Students

terms:Course

rdf:type

rdfs:subClassOf

people:Ruffolo course:BDSIW

rdf:type

terms:teacher

Massimoterms:name

rdf:type

terms:Teacher

people:BianchiMarioterms:name

Page 25: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

25

Reasoning

rdfs:Classrdfs:Resource

rdfs:subClassOf

rdf:type

rdf:type

terms:Person

terms:Students

terms:Course

rdf:type

rdfs:subClassOf

people:Ruffolo course:BDSIW

rdf:type

terms:teacher

Massimoterms:name

rdf:type

terms:Teacher

people:BianchiMarioterms:name

rdfs:subClassOf

rdf:type

Modello generale

rdf:type

terms:…

terms:…

rdfs:subClassOfrdfs:Class

rdf:type

rdfs:Resource

rdfs:subClassOf

rdf:type

rdfs:Property

rdf:domain

terms:…

terms:…

rdfs:range

terms:…

Page 26: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

26

RDF Schema Esempio (4)<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns="http://www.unical.it/BDSIW/course_schema.rdf#"><Course rdf:ID="BDSIW">

<name>Basi di dati e sistemi informativi sul web</name><teacher>

<Teacher rdf:ID="mr"><name>Massimo Ruffolo</name>

</Teacher></teacher><students>

<rdf:Seq><rdf:li>

<Student rdf:ID="er"><name>Marco Rossi</name>

</Student></rdf:li><rdf:li>

<Student rdf:ID="gl"><name>Fabio Bianchi</name>

</Student></rdf:li><rdf:li>

<Student rdf:ID="js"><name>Giorgio Terruzzi</name>

</Student></rdf:li>

</rdf:Seq></students>

</Course></rdf:RDF>

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 risorsahttp://www.w3.org/2000/01/rdf-schema#Class

http://www.unical.it/terms#PhDS

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

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

Page 27: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

27

Classi (2)Esempio<rdf:RDF xmlns:terms="http://www.unical.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.unical.it/terms#PhDS">

<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class" />

</rdf:Description>

</rdf:RDF>

Forma abbreviata di RDF ed rdf:ID per riferirmi alla descrizione locale (occorre strutturare correttamente il ns)<rdf:RDF xml:base="http://www.unical.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>

Gerarchie di classiRDF(S) permette di organizzare le classi in gerarchieIl vocabolario RDF(S) mette a disposizione la relazione transitiva subClassOf

Esempio: PhD Student è una (is-a) Persona<rdfs:Class rdf:ID="Person" />

<rdfs:Class rdf:ID="PhDS">

<rdfs:subClassOf rdf:resource="#Person" />

</rdfs:Class>

http://www.unical.it/terms#PhDS

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

rdf:typehttp://www.unical.it/terms#Person

rdf:type

rdfs:subClassOf

Page 28: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

28

Sintassi alternativeDato 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>

Il meta-modello RDF(S)Le stesse risorse che usiamo per descrivere lo schema sono classirdfs: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

È 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.unical.it/terms#Person

rdf:type

rdfs:subClassOf

Page 29: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

29

Esempio di Reasoning

rdfs:Classrdfs:Resource

rdfs:subClassOf

rdf:type

rdf:type

terms:Person

terms:PhDS

terms:Book

rdf:type

rdfs:subClassOf

people:D02005 bib:book0001

rdf:type

terms:authorPippo

terms:name

rdf:typerdfs:subClassOf

rdfs:subClassOf

rdf:type

RDF: Resource Description Framework

Proprietà

Page 30: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

30

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

<rdf:Property rdf:ID="author" />

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

http://www.unical.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

Domain e Range (1)Legame tra classi e proprietà

RDF(S) fornisce anche un vocabolario per descrivere come ci si aspetta che proprietà e classi si combinino tra di loroProprietà predefinite rdfs:domain ed rdfs:range

http://www.unical.it/terms#Person

http://www.unical.it/terms#author

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

rdf:type

http://www.unical.it/terms#Book

rdfs:domain rdfs:range

Page 31: Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Slide BDSIW2007 - E2 - RDF - 018.pdf · immagini sul web Descrizione di ... 02 Gli Ostacoli

31

Modello generale

rdf:type

terms:…

terms:…

rdfs:subClassOfrdfs:Class

rdf:type

rdfs:Resource

rdfs:subClassOf

rdf:type

rdfs:Property

rdf:domain

terms:…

terms:…

rdfs:range

terms:…