Title: Metamodellazione in RDF
1Metamodellazione in RDF
- Tesina del corso di Seminari di Ingegneria del
Software - Alberto Cerullo
2Overview
- RDF/RDFS
- Metamodellazione in RDF
- Esempi di metamodellazione
3RDF
- Il Resosurce Description Framework (RDF) è un
linguaggio per la rappresentazione di
informazioni di risorse del web - Utile per la rappresentazione dei metadati
- E costituito da
- RDF Model and Syntax che definisce il data
model di RDF e la sua codifica XML - RDF Schema che permette la definizione di
vocabolari per i metadati. - Il data model è un insieme di triple o statement
4Statement RDF
Soggetto Il soggetto identifica la risorsa che deve essere descritta nello statement. Appartiene a Resource
Predicato Il predicato identifica la proprietà della risorsa che si sta descrivendo, infatti viene anche chiamata proprietà. Appartiene a Property. Serve per rappresentare attributi,caratteristiche o relazioni di una risorsa.
Oggetto L oggetto identifica il valore della proprietà. Appartiene a Resource o Literal.
5Un semplice esempio
- Lautore di http//www.website.it è Alberto
Cerullo - lt?xml version"1.0"?gt
- ltrdfRDF
- xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" - xmlnsc"http//somewhere"gt
- ltrdfDescription rdfabout"http//www.website.it"
gt - ltcautoregtAlberto Cerullolt/cautoregt
- lt/rdfRDFgt
6RDFS
- RDF Schema è una sorta di vocabolario per RDF
- Permette di definire classi e proprietà
- Classi simili ai linguaggi di programmazione come
Java
7RDFS
rdftype Serve per esprimere una relazione del tipo is-member-of. Indica lappartenenza di una risorsa ad una determinata classe. Una risorsa può essere istanza di una o più classi.
rdfsClass Le classi RDF rappresentano un concetto simile a quello di classe previsto nei linguaggi object-oriented come ad esempio Java. Quando viene definita una classe, la risorsa che la rappresenta deve presentare la proprietà rdftype impostata a rdfsClass
rdfssubClassOf Rappresenta una relazione is-a e specifica la relazione di ereditarietà fra classi. Permette di definire una classe come sottoclasse di unaltra o di più classi (ereditarietà multipla).
8RDFS
rdfsdomain E un istanza di rdfProperty ed è usata per indicare che una particolare proprietà si applica ad una designata classe. La tripla S rdfsdomain C dichiara che S è istanza della classe rdf Property, che C è unistanza della classe rdfsClass e che la risorsa che presenta come predicato S è istanza della classe C. Una proprietà può avere zero, uno o più domini.
rdfsrange E unistanza di rdfProperty e viene usata per dichiarare che il valore di una proprietà è istanza di una classe. La tripla S rdfrange C asserisce che S è unistanza della classe rdfProperty, che C è unistanza della classe rdfClass e che le risorse presenti nelle terni con oggetto S sono delle istanze di C.
9Metamodellazione (1/2)
- La metamodellazione è la costruzione o
modellazione di un insieme di concetti relativi
ad un certo dominio. - Un modello è lastrazione di elementi del mondo
reale un metamodello è unulteriore astrazione
relativa a proprietà superiori del modello
stesso. - Il metamodello, quindi, rappresenta concetti di
un livello più alto rispetto a quelli del
semplice modello.
10Metamodellazione (2/2)
11Metamodellazione in RDF
- 2 possibili strategie
- definizione di diversi livelli di risorse (uso
di rdftype per creare istanze di rdfsClass) - reificazione
12Prima strategia
- i rdftype C ? i appartiene al livello
estensionale - C rdftype rdfsClass ?C appartiene al livello
intensionale - M rdftype rdfsClass
- C rdftype M ?M appartiene al metalivello
13Seconda strategia reificazione
- La reificazione (riduzione ad oggetto) è lo
strumento attraverso il quale si possono definire
statement RDF tramite altri statement RDF. - i rdftype C ? i appartiene al livello
estensionale - C rdftype rdfsClass ?C appartiene al livello
intensionale - C rdftype M
- x rdftype rdfStatement
- x rdfsubject M
- x rdfpredicate rdftype
- x rdfobject rdfsClass ?M appartiene al
metalivello
14Esempi di metamodellazione
- Gli esempi sono stati realizzati in Jena un
framework Java che fornisce API per la creazione
di grafi RDF - Per ogni grafo va costruito il relativo model
attraverso metodi ad hoc come createDefaultModel()
- Per poter inferire proprietà sullo schema (ad es.
rdfssubClassOf ) va usato createRDFSModel () - Le query sui grafi sono scritte in SPARQL
- Jena permette anche la definizione di regole di
inferenza come ad esempio - (?a exp ?b) (?b exp?c) -gt (?a exp?c)
15Animali - Cibo
16grafo RDF
ltrdfDescription rdfabout"http//somewhereCarol
ina"gt ltrdftype rdfresource"http//somewhere
Mucca"/gt lturinomegtCarolinalt/urinomegt
lt/rdfDescriptiongt ltrdfDescription
rdfabout"http//somewhereVarenne"gt
lturinomegtVarennelt/urinomegt ltrdftype
rdfresource"http//somewhereCavallo"/gt
lt/rdfDescriptiongt ltrdfDescription
rdfabout"http//somewherePersona"gt
ltrdftype rdfresource"http//www.w3.org/2000/01/
rdf-schemaClass"/gt lt/rdfDescriptiongt
ltrdfDescription rdfabout"http//somewhereJohnS
mith"gt lturipasto rdfresource"http//somewhe
reCarne"/gt lturipossiede rdfresource"http/
/somewhereVarenne"/gt ltvcardFNgtJohn
Smithlt/vcardFNgt ltrdftype rdfresource"http
//somewherePersona"/gt lt/rdfDescriptiongt ltrdfD
escription rdfabout"http//somewhereUncleTom"gt
lturipasto rdfresource"http//somewhereVerd
ura"/gt lturipossiede rdfresource"http//some
whereCarolina"/gt ltvcardFNgtUncle
Tomlt/vcardFNgt ltrdftype rdfresource"http//
somewherePersona"/gt lt/rdfDescriptiongt
ltrdfDescription rdfabout"http//somewherepossi
ede"gt ltrdfsdomain rdfresource"http//somewh
erePersona"/gt ltrdfsrange rdfresource"http
//somewhereAnimale"/gt lt/rdfDescriptiongt
ltrdfDescription rdfabout"http//somewherepasto
"gt ltrdfsrange rdfresource"http//somewhere
Cibo"/gt ltrdfsdomain rdfresource"http//some
wherePersona"/gt lt/rdfDescriptiongt
- ltrdfRDF
- xmlnsuri"http//somewhere"
- xmlnsrdf"http//www.w3.org/1999/02/22-rdf-sy
ntax-ns" - xmlnsrdfs"http//www.w3.org/2000/01/rdf-sche
ma" - xmlnsvcard"http//www.w3.org/2001/vcard-rdf/
3.0" gt - ltrdfDescription rdfabout"http//somewhereCibo"
gt - ltrdftype rdfresource"http//www.w3.org/2000
/01/rdf-schemaClass"/gt - lt/rdfDescriptiongt
- ltrdfDescription rdfabout"http//somewhereCarne
"gt - ltrdfssubClassOf rdfresource"http//somewher
eCibo"/gt - ltrdftype rdfresource"http//www.w3.org/2000
/01/rdf-schemaClass"/gt - lt/rdfDescriptiongt
- ltrdfDescription rdfabout"http//somewhereVer
dura"gt - ltrdfssubClassOf rdfresource"http//somewher
eCibo"/gt - ltrdftype rdfresource"http//www.w3.org/2000
/01/rdf-schemaClass"/gt - lt/rdfDescriptiongt
- ltrdfDescription rdfabout"http//somewhereErba"
gt - ltrdftype rdfresource"http//somewhereVerdu
ra"/gt - ltrdftype rdfresource"http//www.w3.org/2000
/01/rdf-schemaClass"/gt
17Query sul metamodello
- Chi mangia?
- 1 PREFIX uriRDF lthttp//www.w3.org/1999/02/22-
rdf-syntax-nsgt - 2 PREFIX uri lthttp//somewheregt
- 3 PREFIX uriFN lthttp//www.w3.org/2001/vcard-r
df/3.0gt - 4
- 5 SELECT ?nome ?cibo
- 6 WHERE
- 7 ?x uriFNFN ?nome
- 8 uripasto ?cibo .
- 9
- 10 UNION
- 11 ?x urinome ?nome
- 12 uriRDFtype ?type .
- 13 ?type urimangia ?cibo .
- 14
- 15
Risultato Uncle Tom http//somewhereVerd
ura John Smith http//somewhereCarne
Carolina http//somewhereErba Varenne
http//somewhereErba
18Query sul metamodello
- Proprietari ed animali che mangiano lo stesso
tipo di cibo - 1 PREFIX uriRDF lthttp//www.w3.org/1999/02/22-
rdf-syntax-nsgt - 2 PREFIX uri lthttp//somewheregt
- 3 PREFIX uriRDFS lthttp//www.w3.org/2000/01/rd
f-schemagt - 4 PREFIX uriFN lthttp//www.w3.org/2001/vcard-r
df/3.0gt - 5
- 6 SELECT ?nome ?nomeAnimale ?cibo
- 7 WHERE
- 8 ?x uripossiede ?animale
- 9 uriFNFN ?nome
- 10 uripasto ?cibo .
- 11 ?animale urinome ?nomeAnimale
- 12 uriRDFtype ?tipoAnimale .
- 13 ?tipoAnimale urimangia ?ciboAnimale .
- 14 ?ciboAnimale uriRDFtype ?cibo .
- 15
Risultato Uncle Tom Carolina
http//somewhereVerdura
19Query sul metamodello
- Una persona può mangiare il proprio animale?
- 1 PREFIX uriRDF lthttp//www.w3.org/1999/02/22-r
df-syntax-nsgt - 2 PREFIX uri lthttp//somewheregt
- 3 PREFIX uriRDFS lthttp//www.w3.org/2000/01/rd
f-schemagt - 4 PREFIX uriFN lthttp//www.w3.org/2001/vcard-r
df/3.0gt - 5
- 6 SELECT ?nome ?nomeAnimale
- 7 WHERE
- 8 ?x uripossiede ?animale
- 9 uriFNFN ?nome
- 10 uripasto ?cibo .
- 11 ?animale uriRDFtype ?type
- 12 urinome ?nomeAnimale .
- 13 ?type uriRDFtype ?cibo .
- 14
Risultato John Smith Varenne
20Animali Cibo reificato
-
- ltrdfRDF
- xmlnsuri"http//somewhere"
- xmlnsrdf"http//www.w3.org/1999/02/22-rdf-sy
ntax-ns" - xmlnsrdfs"http//www.w3.org/2000/01/rdf-sche
ma" - xmlnsvcard"http//www.w3.org/2001/vcard-rdf/
3.0" gt - ltrdfDescription rdfnodeID"A0"gt
- ltrdfsubject rdfresource"http//somewhereCi
bo"/gt - ltrdfpredicate rdfresource"http//www.w3.org
/1999/02/22-rdf-syntax-nstype"/gt - ltrdfobject rdfresource"http//www.w3.org/20
00/01/rdf-schemaClass"/gt - ltrdftype rdfresource"http//www.w3.org/1999
/02/22-rdf-syntax-nsStatement"/gt - lt/rdfDescriptiongt
- ltrdfDescription rdfnodeID"A1"gt
- ltrdfsubject rdfresource"http//somewhereVe
rdura"/gt - ltrdfpredicate rdfresource"http//www.w3.org
/1999/02/22-rdf-syntax-nstype"/gt - ltrdfobject rdfresource"http//www.w3.org/20
00/01/rdf-schemaClass"/gt - ltrdftype rdfresource"http//www.w3.org/1999
/02/22-rdf-syntax-nsStatement"/gt - lt/rdfDescriptiongt
- ltrdfDescription rdfnodeID"A2"gt
21Query sul metamodello reificato
- Una persona può mangiare il proprio animale?
- 1 PREFIX uriRDF lthttp//www.w3.org/1999/02/22-r
df-syntax-nsgt - 2 PREFIX uri lthttp//somewheregt
- 3 PREFIX uriRDFS lthttp//www.w3.org/2000/01/rd
f-schemagt - 4 PREFIX uriFN lthttp//www.w3.org/2001/vcard-r
df/3.0gt - 5
- 6 SELECT ?nome ?nomeAnimale
- 7 WHERE
- 8 ?x uripossiede ?animale
- 9 uriFNFN ?nome
- 10 uripasto ?cibo .
- 11 ?animale uriRDFtype ?type
- 12 urinome ?nomeAnimale .
- 13 ?type uriRDFtype ?cibo .
- 14
Risultato John Smith Varenne
22Pattern Tipi di Entità
- Scopo serve ad identificare e categorizzare i
tipi più generali degli oggetti che fanno parte
del dominio di un discorso. - Requisiti che tipo di entità è questa? E un
evento o un oggetto? E un valore astratto o la
qualità di unentità? - Elementi i tipi di entità consistono dei
seguenti elementi - Abstract, unentità che non può essere
localizzata nel tempo o nello spazio. Ad esempio
entità matematiche, elementi formali della
semantica,etc. - Event, qualsiasi processo, evento o
stato fisico, sociale o mentale. Gli eventi
possono essere classificati in diversi modi, ad
esempio basandosi sulla tipologia o su coloro che
vi partecipano (ad esempio persone, elementi
astratti,etc.) -
- Object, qualsiasi elemento o sostanza
fisica. -
- Qualità, un qualsiasi aspetto di
unentità (ma non una parte di esso) che non può
esistere senza tale entità. Ad esempio la
superficie di uno specifico oggetto fisico è una
entità.
23Entity -Libro
24Query sul metamodello
- Quali sono gli elementi ed i relativi
metaconcetti di riferimento - 1 PREFIX uriRDF lthttp//www.w3.org/1999/02/22-
rdf-syntax-nsgt - 2 PREFIX uri lthttp//somewheregt
- 3 PREFIX uriRDFS lthttp//www.w3.org/2000/01/rd
f-schemagt - 4 PREFIX uriFN lthttp//www.w3.org/2001/vcard-r
df/3.0gt - 5
- 6 SELECT DISTINCT ?x ?type
- 7 WHERE
- 8 ?x uriRDFtype ?type .
- 9 ?type uriRDFSsubClassOf uriEntity .
- 10
Risultato http//somewherePDick
http//somewhereObject http//somewhereUbik
http//somewhereObject http//somewherele
ttura Ubik http//somewhereEvent
http//somewherePaycheck http//somewhereObje
ct http//somewhereLibro
http//somewhereObject http//somewheretitol
o http//somewhereAbstract
http//somewhereAutore http//somewhereObject
http//somewheregenere
http//somewhereAbstract http//somewhereLet
turaPubblica http//somewhereEvent
25Description
- Scopo serve per rappresentare formalmente un
concetto o un contesto descrittivo. - Requisiti Quale sono le assunzioni, per le quali
un determinato elemento viene descritto? Quali
sono i concetti coinvolti nella descrizione di un
certo elemento? Quale è linterpretazione di
questa osservazione? - Elementi
-
- Description, una descrizione
rappresenta una concettualizzazione . Può essere
pensata anche come un contesto descrittivo che
definisce alcuni concetti. Ad esempio un Piano è
la descrizione di alcune azioni che devono essere
eseguite da agenti in una determinata maniera,
con certi parametri,etc. -
- Concept, può essere un idea,una
nozione ed èd definita nella descrizione. Una
volta definito, un concetto può essere usato in
altre descrizioni. -
- IsDefinedIn, rappresenta una relazione
tra una descrizione ed un concetto
26Description Articoli scientifici
27Query sul metamodello
- Quali Concept sono in relazione con Description
- 1 PREFIX uriRDF lthttp//www.w3.org/1999/02/22-r
df-syntax-nsgt - 2 PREFIX uri lthttp//somewheregt
- 3
- 4 SELECT DISTINCT ?x
- 5 WHERE
- 6 ?x uriRDFtype uriConcept .
- 7 ?y uriRDFtype uriDescription
- 8 ?p ?x .
- 9
Risultato http//somewhereChristofides
algorithm http//somewheredefinisceAlgoritmo
http//somewhereminimum spanning tree
http//somewhereusa http//somewhereEuleria
n path http//somewhereusa
28Conclusioni
- La metamodellazione che può essere realizzata in
RDF è piuttosto semplice a causa dei limiti di
RDF stesso. - RDF, insieme ad RDFS, è un linguaggio troppo
debole per realizzare metamodelli molto
articolati. - Non si possono ad esempio rappresentare vincoli
di cardinalità o sul range ed il dominio di
proprietà.