Presentazione corso - Computer Science Corso di laurea in

Download Report

Transcript Presentazione corso - Computer Science Corso di laurea in

Modulo3
Linguaggi: RDF
UNIVERSITA’ DI CAMERINO
Corso di laurea in Informatica (classe 23/S)
Barbara Re
[email protected]
Anno Accademico 2007-08
Agenda
 RDF – overview
 RDF – costrutti del linguaggio
2
I linguaggi per la rappresentazione della
conoscenza
 Si utilizzano logiche descrittive intese come una
famiglia di formalismi utilizzati per rappresentare la
conoscenza in un dominio di applicazione detto
mondo
 Più recentemente le logiche descrittive sono state
utilizzate come formalismo di base per lo sviluppo
degli standard promossi dalla Semantic Web
initiative group del W3C
3
Linguaggi di rappresentazione
4
Linguaggi
 I linguaggi forniscono meccanismi base che possono
essere usati per rappresentare la semantica delle
informazioni necessarie per il Semantic Web
RDF(S)
RDF
XML
INFERENZA
OWL
INTEGRAZIONE
XML
RDF
RDF(S)
OWL
…
ANNOTAZIONE





5
Formal Languages
 Il grado di formalità dei linguaggi ontologici cambia
sostanzialmente
 Tanto più si è formali tanto più il linguaggio è
suscettibile di “processamento” automatico
 La semantica formale fornisce una interpretazione
non ambigua delle descrizioni
6
RDF
 RDF sta per Resource Description Framework
 E’ una raccomandazione W3C
http://www.w3.org/RDF
 RDF è un formalismo grafico
(+ sintassi xml + semantica)
Per rappresentare metadati
Per rappresentare la semantica delle informazioni in
modalità accessibili dalla macchina
 Fornisce un semplice data model basato su triple
7
RDF: come possibile approccio
all’interoperabilità strutturale

RDF si propone come un’hub da usare per gestire i
costrutti strutturali al posto di numerose integrazioni ad
hoc
Source:
Tim Berners Lee http://www.w3.org/2002/Talks/09-lcs-swebtbl/Overview.html
8
RDF – modello di dati
 RDF mette a disposizione un modello di dati
semplice <soggetto, predicato, oggetto>
<Barbara, ha collega, Francesco>
 Può essere rappresentato come grafo
… e molto flessibile si possono codificare
9
Che cos’è RDF
 RDF
Come HTML, permette di creare dei link tra risorse
pubblicati sul Web
Al contrario dei comuni ipertesti i link di RDF
Possono essere etichettati, al fine di indicare
esplicitamente la relazione che intercorre tra gli oggetti
Si riferiscono a oggetti tipizzati, nel senso che RDF
standardizza la modalità con cui si assegna un
significato alla risorsa
10
RDF: un esempio guida
 Il modello RDF rende disponibile un
meccanismo per descrivere in modo
machine- processable risorse Web, ad
esempio, pagine Web
Esempio
 Immaginiamo di voler tener traccia del fatto
che qualcuno di nome Mario Rossi ha creato una
certa pagina Web (http://www.example.org/index.html)

Se dovessimo descrivere questo fatto in linguaggio
naturale potremmo utilizzare una semplice frase:
11
La terminologia
 In RDF per identificare
La frase si usa il termine stantment
La parte che identifica ciò di cui la frase parla si usa
soggetto
La parte che identifica la proprietà del soggetto che la
frase specifica si usa predicato
La parte che identifica il valore assegnato dalla frase
alla proprietà si usa oggetto
12
Machine processability (1)
 Delle frasi in linguaggio naturale possono servire
uomini per comunicare, ma lo scopo di RDF è
rendere queste frasi “machine-processable”
 Per rendere frasi simili a quelle precedenti machine
processable occorre
degli identificativi “machine-processable” che
permettano di identificare il soggetto, l’oggetto e il
predicato in una frase senza nessuna possibilità di
confusione con un altro identificativo simile usato da
qualcun altro sul Web
un formato “machine-processable” per
rappresentare e scambiare le frasi tra macchine
13
Machine processability (2)

Il web di oggi dispone di entrambi i meccanismi
gli Uniform Resource Identifier (URI) rendono
disponibile un modo per identificare qualunque
cosa di cui si voglia parlare in uno statement RDF
Extensible Markup Language (XML) è il formato
ideale per rappresentare e scambiare degli
statement RDF
14
Machine processability

Il web di oggi dispone di entrambi i meccanismi
gli Uniform Resource Identifier (URI) rendono
disponibile un modo per identificare qualunque
cosa di cui si voglia parlare in uno statement RDF
Extensible Markup Language (XML) è il formato
ideale per rappresentare e scambiare degli
statement RDF
15
Tutto deve avere un URI
 Per scrivere
 Occorre assegnare un URI a tutte (o quasi) le parti
sottolineate della frase
 Nello stantment RDF di esempio:
Il soggetto è già un URI
Il valore (l’oggetto) “Mario Rossi” potrebbe essere
identificato dall’URI URN:org:example:staffid:85740
Per il predicato “autore” si può utilizzre l’URI
http://purl.org/dc/element/1.1/creator
16
Tutto deve avere un URI
 Risultato
17
Uso dei namespace
 E’ possibile abbreviare le URI facendo uso dei
prefissi dei namespace di XML
 Esempio
Lo stantment
Introducendo i seguenti prefissi per i tre namespace
diventa
19
Oggetti come URI (1)
 Ci sono molti vantaggi nell’utilizzare gli URI come
semplice modalità di identificazione
 Invece di
Identificare l’autore come la stringa “Mario Rossi”
Si può usare l’URI sid:85740
 In questo caso
1. Possiamo essere più precisi nella nostra idenficazione
dell’autore della pagina
Non è una stringa “Mario Rossi” o qualcuna delle
migliaia di persone che si chiamano “Mario Rossi”
Ma in particolare “Mario Rossi” è associato all’URI
20
Oggetti come URI (2)
2. Dal momento che l’autore della pagina ha un URI, è a
tutti gli effetti una risorsa, e possiamo descriverla
ulteriormente assegnandogli, ad esempio, il nome,
l’eta, …
21
Quasi tutto deve avere un URI
 Il soggetto e il predicato di ogni stantment devono
essere delle risorse, quindi devono avere un URI
 L’oggetto può anche essere un valore
La terminologia di RDF utilizza il termine Letterale
(litteral)
22
Tipizzare le risorse
 Per tipizzare una risorsa si usa la proprietà rdf:type
23
Machine processability

Il web di oggi dispone di entrambi i meccanismi
gli Uniform Resource Identifier (URI) rendono
disponibile un modo per identificare qualunque
cosa di cui si voglia parlare in uno statement RDF
Extensible Markup Language (XML) è il formato
ideale per rappresentare e scambiare degli
statement RDF
24
Sintassi XML di RDF
 L’idea di base prevede un elemento XML per ogni
nodo (soggetto e oggetto) e arco (predicato)
25
Sintassi XML di RDF
 Una possibile abbreviazione prevede l’uso
dell’attributo rdf:resource nei poperty element
26
Sintassi XML di RDF
 Altri stantment
 Si possono serializzare
Sempre di seguito
Nel caso in cui si descriva l’oggetto del primo anche
innestandoli
27
Sintassi XML di RDF
 Risorse tipizzate
28
Sintassi XML di RDF
29
RDF <rdf:Description rdf:about=“ex:index.html”>
<dc:creator rdf:resource=“sid:85740”/>
<rdf:type rdf:resource=“ex:pagina_web”/>
</rdf:Description>
<rdf:Description rdf:about=“sid:85740”>
<foaf:email rdf:resource=“mailto:[email protected]”>
<rdf:type rdf:resource=“ex:impiegato”>
</rdf:Description>
---------------------------------------------------------------------------------------------------------------------------------------------------------<rdf:Description rdf:about=“ex:index.html”>
<dc:creator>
<rdf:Description rdf:about=“sid:85740”>
<foaf:email rdf:resource=“mailto:[email protected]”>
<rdf:type rdf:resource=“ex:impiegato”>
</rdf:Description>
</dc:creator>
<rdf:type rdf:resource=“ex:pagina_web”>
</rdf:Description>
30
Attenzione i letterali
<rdf:Description rdf:about=“ex:index.html”>
<dc:creator> Mario Rossi
</dc:creator>
</rdf:Description>
31
Documento RDF completo
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://description.org/schema/">
<rdf:Description about="http://www.w3.org/Home/Lassila">
<s:Creator>Ora Lassila</s:Creator>
</rdf:Description>
</rdf:RDF>
32
Sintassi N-Triple di RDF
 La sintassi XML di RDF
È utile per far leva sui numerosi tool già sviluppati per
XML
Ma non è semplice distinguere i vari stantment e in
particolare isolare soggetto, predicato e oggetto
 Per scopi didattici, o in generale quando occorre
leggere RDF, si può utilizzare la sintassi N-Triple
Ogni statment si scrive come una tripla
33
Sintassi N-Triple di RDF: esempio
 Es. l’esempio guida in N-triple
 Fissando i prefissi
 La tripla diventa
34
Alcuni vocabolari
35
RDF come Hub

RDF può essere utilizzato come “Hub”
Abilita un buon grado di 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
È molto semplice fondere (merge) modelli
RDF
Ovvero non ci sono ostacoli nel combinare
informazione preveniente da sistemi
differenti (quindi anche in formati diversi),
purchè questi condividano lo stesso modello
RDF
36
Esempio di interoperabilità strutturale otttenuta
via RDF
37
Esempio di interoperabilità strutturale otttenuta
via RDF
38
Esempio di interoperabilità strutturale otttenuta
via RDF
39
Esempio di fusione (merge)
40
Esempio di fusione (merge)
41
Esempio di fusione (merge)
42
Protegè
 http://protege.stanford.edu/
43
Ci sono domande?
44
Qualche dettaglio in più!
45
RDF:
Sintassi di serializzazione di base
[1] RDF ::= ['<rdf:RDF>'] description* ['</rdf:RDF>']
[2] description ::= '<rdf:Description' idAboutAttr? '>' propertyElt* '</rdf:Description>'
[3] idAboutAttr ::= idAttr | aboutAttr
[4] aboutAttr ::= 'about="' URI-reference '"'
[5] idAttr ::= 'ID="' IDsymbol '"'
[6] propertyElt ::='<' propName '>' value '</' propName '>' | '<' propName resourceAttr '/>'
[7] propName ::= Qname
[8] value ::= description | string
[9] resourceAttr ::= 'resource="' URI-reference '"'
[10] Qname ::= [ NSprefix ':' ] name
[11] URI-reference ::= string, interpreted per [URI]
[12] IDsymbol ::= (any legal XML name symbol)
[13] name ::= (any legal XML name symbol)
[14] NSprefix ::= (any legal XML namespace prefix)
[15] string ::= (any XML text, with "<", ">", and "&" escaped)
46
Elemento RDF
 L'elemento RDF è un semplice involucro che
delimita i confini in un documento XML entro cui il
contenuto è esplicitamente da intendere mappabile
in una istanza di modello di dati RDF
 L'elemento RDF è opzionale se il contenuto può
essere riconosciuto come RDF dal contesto
dell'applicazione
47
Elemento Description
 Raramente una singola asserzione RDF compare
isolata; più comunemente diverse proprietà di una
risorsa saranno date insieme
 La sintassi XML di RDF è stata progettata per
compiere questo facilmente raggruppando le
molteplici asserzioni riguardanti la stessa risorsa
all'interno di un elemento Description
 L'elemento Description indica, tramite l'attributo
about, la risorsa alla quale si applicano tutte le
asserzioni
 Se la risorsa non esiste ancora (ovvero, non ha
ancora un identificatore), allora l'elemento
Description può fornire l'identificatore della risorsa
usando un attributo ID
48
Description e propertyElt

L'attributo ID indica la creazione di una nuova risorsa e
l'attributo about si riferisce ad una risorsa esistente

In Description è possibile specificare o ID o about, ma
non entrambi contemporaneamente nello stesso
elemento

I valori per ogni attributo ID non devono apparire in più
di un attributo ID all'interno del singolo documento

Un elemento Description può contenere più di un
elemento propertyElt con lo stesso nome di proprietà
Ciascuno di questi propertyElt aggiunge un arco al grafo
L'interpretazione di questo grafo è definita da chi progetta
lo schema
49
propertyElt

All'interno di un propertyElt, l'attributo resource
specifica che un'altra risorsa è il valore di questa
proprietà
l'oggetto della asserzione, piuttosto che un letterale è
un'altra risorsa identificata da un URI

L'identificatore di risorsa dell'oggetto è ottenuto
risolvendo il riferimento-URI dell'attributo resource in
modo analogo a quanto indicato sopra per l'attributo
about
50
Contenitori
 Spesso è necessario riferirsi ad una collezione di
risorse
 Per esempio per dire che un'opera è stata creata da
più di una persona, o per elencare gli studenti di un
corso, o i moduli di un pacchetto software
 Si usano i contenitori RDF
Bag
Sequence
Alternative
51
Bag
 Lista non ordinata di risorse o letterali
 Si usano per dichiarare che una proprietà ha valori
multipli e che l'ordine con cui questi valori sono
inseriti non ha alcun significato
 Il contenitore bag potrebbe essere usato per fornire
una lista di numeri di sezioni dove l'ordine di
elaborazione di queste sezioni non è importante
 Sono ammessi valori duplicati
52
Sequence
 Lista ordinata di risorse o letterali
 Il contenitore Sequence si usa per dichiarare che
una proprietà ha valori multipli e che l'ordine dei
valori è significativo
 Il contenitore Sequence potrebbe essere usato,
per esempio, per conservare un ordine alfabetico
dei valori
 Sono ammessi valori duplicati
53
Alternative
 Una lista di risorse o letterali che rappresentano
delle alternative al valore (singolo) di una proprietà
 Il contenitore Alternative potrebbe essere
impiegato
per indicare traduzioni in altre lingue del titolo di
un'opera
per fornire una lista di siti Internet mirror nei quali è
reperibile la risorsa
 Un'applicazione che usa una proprietà il cui valore è
un raccolta di tipo Alternative sa di poter
selezionare uno fra gli oggetti presenti nella lista
54
Collezione di risorse






Per rappresentare una collezione di risorse, RDF adopera
una risorsa aggiuntiva che identifica la collezione
specifica
Questa risorsa deve essere dichiarata
Per formulare questa dichiarazione si utilizza la proprietà
type
La relazione di appartenenza fra questa risorsacontenitore e le risorse che fanno parte della collezione è
definita attraverso un insieme di proprietà
espressamente definite per questo scopo
Queste proprietà di appartenenza sono indicate
semplicemente con "_1", "_2", "_3", etc.
Le risorse contenitore possono anche avere altre
proprietà, oltre alla proprietà di appartenenza e alla
proprietà tipo
55
Esempio: Bag
 Gli studenti del corso 6.001 sono Amy, Tim, John,
Mary, e Sue
56
Esempio: alternative
 Il codice sorgente per X11 può essere trovato a
ftp.x.org, ftp.cs.purdue.edu, o ftp.eu.net
57
… esempi
Gli studenti del corso 6.001 sono Amy, Tim, John, Mary, e Sue.
<rdf:RDF>
<rdf:Description about="http://mycollege.edu/courses/6.001">
<s:students>
<rdf:Bag>
<rdf:li resource="http://mycollege.edu/students/Amy"/>
<rdf:li resource="http://mycollege.edu/students/Tim"/>
<rdf:li resource="http://mycollege.edu/students/John"/>
<rdf:li resource="http://mycollege.edu/students/Mary"/>
<rdf:li resource="http://mycollege.edu/students/Sue"/>
</rdf:Bag>
</s:students>
</rdf:Description>
Nota che RDF/XML usa l'elemento li per evitare di dover numerare
</rdf:RDF>
esplicitamente ciascun componente
L'elemento li assegna - se necessario - le proprietà _1, _2, etc
Il nome dell'elemento li è stato scelto per richiamare il termine "list
item" di HTML
58
… esempi

Il codice sorgente per X11 può essere trovato a
ftp.x.org, ftp.cs.purdue.edu, o ftp.eu.net
<rdf:RDF>
<rdf:Description about="http://x.org/packages/X11">
<s:DistributionSite>
<rdf:Alt>
<rdf:li resource="ftp://ftp.x.org"/>
<rdf:li resource="ftp://ftp.cs.purdue.edu"/>
<rdf:li resource="ftp://ftp.eu.net"/>
</rdf:Alt>
</s:DistributionSite>
</rdf:Description>
</rdf:RDF>
59
Contenitori versus proprietà ripetute
 Una risorsa può avere asserzioni multiple con lo
stesso predicato
 Ciò non equivale ad avere una singola asserzione il
cui oggetto sia un contenitore con molti componenti
 La scelta sul sistema da adottare in ogni circostanza
particolare è in parte fatta dalle persone che
progettano lo schema e in parte dalle persone che
scrivono le specifiche asserzioni RDF
60
Esempio: proprietà ripetute
 Consideriamo, ad esempio, la relazione fra una
scrittrice e le sue pubblicazioni
 Sue ha scritto "Anthology of Time", "Zoological
Reasoning", "Gravitational Reflections"
Non viene dichiarata
nessuna relazione tra le
pubblicazioni, se non
quella che sono tutte
state scritte dalla stessa
persona
61
Esempio: meglio Bug





Il comitato composto da Fred, Wilma, e Dino ha
approvato la risoluzione
Afferma che i tre membri del comitato, considerati come
un unico insieme, hanno votato in una certa maniera
Non si afferma, ovvero, necessariamente che ciascun
membro del comitato ha votato a favore della risoluzione
Sarebbe scorretto modellare questa proposizione con tre
separate asserzioni "approvedBy", una per ciascuno dei
membri del comitato, quindi come tre voti individuali di
approvazione
Piuttosto, è meglio modellare come una singola
asserzione di "approvedBy" il cui oggetto è un
contenitore Bag che ha come componenti le tre identità
dei membri del comitato
62
Graficamente
La scelta su quale rappresentazione adoperare, Bag o ripetizione
di proprietà, è fatta da colui che crea i metadati
dopo aver considerato lo schema
63
Asserzioni su asserzioni
 Oltre che per creare asserzioni su risorse Web, RDF
può essere usato per fare asserzioni su altre
asserzioni RDF
 Ci riferiremo a queste come asserzioni di ordine
maggiore
 Per fare un asserzione su un'altra asserzione, in
effetti abbiamo la necessità di costruire un modello
dell'asserzione originale
questo modello è una nuova risorsa alla quale
possiamo aggiungere altre proprietà
64
Costruzione di un modello di asserzioni
 Le asserzioni sono fatte su risorse
 Un modello di un'asserzione è la risorsa di cui
abbiamo bisogno per poter fare nuove asserzioni
(asserzioni di ordine maggiore) sull'asserzione
modellata
65
Modello di asserzioni: esempi









Per esempio, consideriamo la frase
Ora Lassila è il creatore della risorsa
http://www.w3.org/Home/Lassila.
RDF considererebbe questa frase come un fatto
Se, invece, scriviamo la frase
Ralph Swick dice che Ora Lassila è il creatore della
risorsa http://www.w3.org/Home/Lassila.
Non abbiamo detto nulla della risorsa
http://www.w3.org/Home/Lassila, ma abbiamo espresso
un fatto circa un'asserzione fatta da Ralph
Per esprimere questo fatto a RDF, dobbiamo modellare
l'asserzione originale come una risorsa con quattro
proprietà
Questo processo è formalmente chiamato reificazione
nella comunità della Rappresentazione della Conoscenza
Un modello di un'asserzione è detto asserzione reificata
66
Proprietà per asserzioni
 Per modellare asserzioni RDF definisce le seguenti
proprietà
Soggetto
Predicato
Oggetto
Tipo
67
Soggetto e predicato
 La proprietà soggetto identifica la risorsa che viene
descritta dall'asserzione modellata
il valore della proprietà soggetto è la risorsa su cui è
stata fatta l'asserzione originale (nel nostro esempio,
http://www.w3.org/Home/Lassila)
 La proprietà predicato identifica il valore della
proprietà nella asserzione modellata
il valore della proprietà predicato è una risorsa che
rappresenta la specifica proprietà nell'asserzione
originale (nel nostro esempio, creatore)
68
Oggetto e tipo
 La proprietà oggetto identifica il valore della
proprietà nell'asserzione modellata
Il valore della proprietà oggetto è l'oggetto
nell'asserzione originale (nel nostro esempio, "Ora
Lassila")
 Il valore della proprietà tipo descrive il tipo della
nuova risorsa
Tutte le asserzioni reificate sono istanze di
RDF:Statement; ovvero, hanno una proprietà tipo il
cui oggetto è RDF:Statement
La proprietà tipo è usata anche più generalmente per
dichiarare il tipo di una qualsiasi risorsa
69
Asserzioni RDF

Una nuova risorsa con queste quattro proprietà
rappresenta l'asserzione originale e può essere usata
come oggetto di altre asserzioni
può avere asserzioni addizionali fatte su essa



La risorsa con queste quattro proprietà non è una
sostituzione dell'asserzione originale, è un modello
dell'asserzione
Un'asserzione e la sua corrispondente asserzione
reificata esistono indipendentemente in un grafo RDF ed
entrambi possono essere presenti senza l'altra
Si dice che il grafo RDF contiene il fatto dato
nell'asserzione se e solo se l'asserzione è presente nel
grafo, senza preoccuparsi della presenza della
corrispondente asserzione reificata
70
Esempio…
Ralph Swick dice che Ora
Lassila è il creatore della
Risorsa
http://www.w3.org/Home/Lassila
71
Ci sono domande?
72