Metamodellazione in RDF - PowerPoint PPT Presentation

About This Presentation
Title:

Metamodellazione in RDF

Description:

Metamodellazione in RDF Tesina del corso di Seminari di Ingegneria del Software Alberto Cerullo Overview RDF/RDFS Metamodellazione in RDF Esempi di metamodellazione ... – PowerPoint PPT presentation

Number of Views:95
Avg rating:3.0/5.0
Slides: 29
Provided by: zal50
Category:

less

Transcript and Presenter's Notes

Title: Metamodellazione in RDF


1
Metamodellazione in RDF
  • Tesina del corso di Seminari di Ingegneria del
    Software
  • Alberto Cerullo

2
Overview
  • RDF/RDFS
  • Metamodellazione in RDF
  • Esempi di metamodellazione

3
RDF
  • 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

4
Statement 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.
5
Un 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

6
RDFS
  • RDF Schema è una sorta di vocabolario per RDF
  • Permette di definire classi e proprietà
  • Classi simili ai linguaggi di programmazione come
    Java

7
RDFS
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).
8
RDFS
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.
9
Metamodellazione (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.

10
Metamodellazione (2/2)
11
Metamodellazione in RDF
  • 2 possibili strategie
  • definizione di diversi livelli di risorse (uso
    di rdftype per creare istanze di rdfsClass)
  • reificazione

12
Prima 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

13
Seconda 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

14
Esempi 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)

15
Animali - Cibo
16
grafo 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

17
Query 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
18
Query 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
19
Query 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
20
Animali 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

21
Query 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
22
Pattern 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à.

23
Entity -Libro
24
Query 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
25
Description
  • 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

26
Description Articoli scientifici
27
Query 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
28
Conclusioni
  • 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à.
Write a Comment
User Comments (0)
About PowerShow.com