Introduzione
2
proposto da Tim Berners-Lee (fondatore del W3C - http://www.w3.org/ ) il
Semantic Web (Semantic Web - http://www.w3.org/2001/sw/).
Il Web semantico è un'estensione del Web di oggi, in cui non solo le persone, ma
anche i computer sono in grado di interagire e manipolare le informazioni
memorizzate. È possibile ottenere questo risultato perché preventivamente, all'atto
della creazione del contenuto, queste informazioni sono state definite e inserite
secondo specifiche regole semantiche (dalle quali nasce il termine Web semantico).
Per capire com'è strutturata la visione del Web semantico è utile fare riferimento a
un diagramma piramidale presentato da Tim Berners-Lee durante un conferenza
sull'argomento. La figura 1 mostra la cosiddetta Torre del web semantico, costituita
da una serie di linguaggi descrittivi strutturati a livelli. I livelli più bassi di questa
torre sono costituiti da linguaggi noti come XML [14] e RDF [16], mentre i livelli
più alti sono quelli più innovativi ed interessanti. Particolare importanza tra questi
livelli rivestono le ontologie che permettono di classificare gli oggetti di un dominio
attraverso la definizione di classi e proprietà che ne descrivono le caratteristiche. I
livelli più alti della torre invece rappresentano una serie di linguaggi atti a fornire
meccanismi di interrogazione ed a validare le informazioni presenti sul web; per una
loro trattazione più approfondita si rimanda al paragrafo 1.5.2 del presente lavoro di
tesi.
Figura1 – Schema a livelli del Semantic Web
Introduzione
3
Il Web semantico si basa sullo standard Uri (Uniform Resource Identifiers, il padre
degli Url o Uniform Resource Locator) per la definizione univoca di indirizzi
Internet, su Xml (Extensible Markup Language) e Rdf (Resource Description
Framework) nonché sull'uso delle ontologie.
Con Xml è possibile modellare secondo le proprie esigenze, e senza troppi vincoli,
la realtà che si considera: per questo è un linguaggio che porta con sé alcune
informazioni sulla semantica degli oggetti. Questa libertà lo rende poco adatto, però,
a definire completamente la struttura e l'interscambio di informazioni tra diverse
realtà, tanto che è stata favorita la creazione di un nuovo linguaggio, derivato da
Xml: Rdf (Resource Description Framework).
Rdf è uno standard adatto a descrivere la struttura di una parte della realtà. Per realtà
intendiamo qualsiasi risorsa sia possibile identificare sulla rete con un indirizzo
univoco, mentre per descrizione indichiamo l'insieme delle proprietà, degli attributi
e delle relazioni con altre realtà. Ciascun oggetto è descritto da una tripla: una
risorsa, una proprietà e un valore. Rdf limita e focalizza alcune caratteristiche di
Xml per renderlo un linguaggio rivolto alla descrizione di un oggetto, delle sue
proprietà, e delle relazioni con gli altri oggetti.
Un documento Rdf si preoccupa di descrivere le proprietà di un oggetto, senza però
definire alcun livello di gerarchia o di relazione tra le classi. Questo è il compito
degli Rdf Schema, una struttura Xml basata su Rdf che facilita la creazione di nessi
tra oggetti. Gli Rdf Schema hanno però alcune limitazioni. Non è ad esempio
possibile definire due classi come equivalenti, magari perché realizzate da autori
diversi. Non è neppure possibile limitare puntualmente il numero di proprietà da
usare.
Per colmare queste lacune sono allora state introdotte le ontologie. Tra i linguaggi
più diffusi per la definizione di un’ontologia citiamo DAML+OIL [18], mentre
attualmente lo standard di riferimento dato dal W3C è diventato OWL [19]. Tali
linguaggi sono basati su un vocabolario Xml che consente di definire, come gli Rdf
Schema, classi, proprietà e relazioni. A differenza degli Rdf Schema, però, tali
linguaggi consentono di inferire conoscenza a partire dai dati ontologici, cioè di
Introduzione
4
generare nuova conoscenza elaborando le informazioni esplicitamente dichiarate in
un’ontologia.
Le attività preliminari svolte per questo lavoro di tesi sono state lo studio delle
ontologie e delle metodologie per la loro realizzazione, e l’analisi approfondita dei
linguaggi e degli strumenti per lo sviluppo delle ontologie.
Obiettivo principale del presente lavoro di tesi è la realizzazione di un’ontologia
(DAMON) su un particolare dominio, il DataMining;. Ulteriore obiettivo è di
implementare in linguaggio JAVA una semplice applicazione (OnBrowser) per il
browsing di ontologie in linguaggio DAML+OIL.
La tesi è organizzata in cinque capitoli, il cui contenuto è riassunto di seguito, al
fine di offrire una panoramica della trattazione:
Nel capitolo 1 è fornita una breve e generale trattazione delle ontologie; sono
mostrate le definizioni, elencate le diverse tipologie e discussi i principali
componenti; inoltre saranno mostrati i principali campi d’applicazione delle
ontologie e le principali tipologie di strumenti legati al loro ciclo di vita.
Nel capitolo 2 è esemplificato un linguaggio per la descrizione delle ontologie ed
alcuni strumenti per la loro manipolazione; in particolare si farà riferimento al
linguaggio DAML+OIL, all’editor (OILED) che sarà usato per il completamento
dell’ontologia DAMON e le API del progetto JENA che saranno usate all’interno di
OnBrowser per la manipolazione delle ontologie.
Nel capitolo 3 è presentata l’ontologia di esempio (DAMON) e la sua
implementazione in DAML+OIL. Nello stesso capitolo sono inoltre riportati alcuni
brevi cenni sul Data Mining e sul Knowledge Discovery in Data Bases (KDD).
Nel capitolo 4 infine è discussa la progettazione e l’implementazione di OnBrowser,
con particolare riferimento ai principi seguiti nella progettazione dell’interfaccia
utente di tipo visuale, all’architettura del sistema, alle modalità di interazione tra i
moduli software e alle caratteristiche implementative. Sarà anche dato un breve
cenno alle API JGraph con cui è stato implementato graficamente il grafo
corrispondente al modello ontologico da visualizzare. A conclusione del capitolo è
inoltre presentato, un esempio d’uso del browser.
Introduzione
5
Infine è presente un capitolo contenente le valutazioni conclusive sul lavoro svolto
ed alcune considerazioni per eventuali sviluppi futuri.
Il presente lavoro di tesi è concluso da un’appendice in cui è mostrato il diagramma
UML delle classi Java dello strumento OnBrowser.
Capitolo 1
Le Ontologie
L’ontologia – «lo studio dell’essere in quanto essere», diceva Aristotele – era una
disciplina strettamente filosofica, lontana dal mondo della tecnologia. Eppure, negli
ultimi anni l’esplosione delle comunicazioni in rete ha favorito un fenomeno che
sarebbe stato difficile immaginare: gli aspetti ontologici dell’informazione
acquistano un valore strategico. Tali aspetti sono intrinsecamente indipendenti dalle
forme di codifica dell’informazione stessa, che può essere quindi isolata, recuperata,
organizzata, integrata in base a ciò che più conta: il suo contenuto. La
standardizzazione di tali contenuti risulta oggi cruciale nella prospettiva delle
aziende integrate e del commercio elettronico ed è indispensabile per semplificare i
processi di comunicazione.
Inizialmente le ontologie sono state sviluppate nel settore dell’intelligenza
artificiale per facilitare la condivisione e il riuso della conoscenza; esse
costituiscono un tema di interesse in diverse comunità di ricerca: ingegneria della
conoscenza, elaborazione del linguaggio naturale, sistemi informativi cooperativi,
gestione delle conoscenze (Knowledge management).
Un’ontologia in termini informatici è un insieme gerarchicamente strutturato di
termini che descrive un dominio e che può essere utilizzato come schema per una
base di conoscenza. Attraverso l’utilizzo delle ontologie i concetti di un particolare
Capitolo 1 Le Ontologie
7
dominio possono essere condivisi in più ambiti applicativi arricchendo di semantica
la conoscenza da modellare.
Con l’affermarsi delle possibilità di comunicazione in rete e col crescere dei costi
dell’acquisizione della conoscenza, le problematiche relative all’accesso integrato ad
informazioni eterogenee e alla condivisione e riutilizzazione di conoscenze hanno
assunto un’importanza sempre maggiore. In questa prospettiva, il valore aggiunto di
una base di conoscenza non è più solo legato alla particolare applicazione per cui
tale base di conoscenza è stata costruita, ma cresce in funzione della sua
riutilizzabilità e delle possibilità di essere integrata con altre fonti di conoscenza. Da
notare che non è detto che questo processo di integrazione debba funzionare in
modo completamente automatico, mediante riuso del codice e/o scambi di messaggi;
ciò che conta soprattutto è la trasparenza semantica di una base di conoscenza, che
rende possibile al progettista una decisione ragionata circa l’opportunità
dell’integrazione. Lì dove invece il processo di integrazione avviene in modo
automatico, è necessario postulare una comune interpretazione delle primitive
utilizzate. In entrambi i casi, gli aspetti di natura ontologica giocano un ruolo
fondamentale. Si tratta di tenere conto, nell’attività di modellazione concettuale e
nella specifica formale della semantica di una base di conoscenza, della necessità di
definire quelli che sono i modelli intesi di un certo linguaggio, precisando le
assunzioni ontologiche implicite nel vocabolario utilizzato per denotare concetti,
relazioni, attributi. Tali modelli intesi, a loro volta, andrebbero caratterizzati
utilizzando primitive assolutamente generali, svincolate per quanto possibile da
assunzioni relative al particolare dominio o problema in esame.
Lo studio di queste primitive è esattamente il compito di quella che viene chiamata
ontologia formale, che può essere definita come la teoria delle distinzioni a priori
tra :
ξ entità del mondo reale (oggetti fisici, eventi, regioni, quantità di materia...).
ξ categorie di meta-livello utilizzate per modellare il mondo reale (concetti,
proprietà, qualità, stati, ruoli, parti...).
Capitolo 1 Le Ontologie
8
1.1 Cos’è un’ontologia
Anche se in generale un’ontologia può essere vista come un vocabolario comune di
termini per chi ha la necessità di condividere informazioni in un dominio, a causa
delle diversità sui modi in cui possono essere costruite ed usate e dei diversi ruoli
loro attribuiti, negli anni in letteratura sono state date diverse definizioni di cosa si
intende con il termine ontologia:
ξ “ L’insieme dei termini basilari e delle relazioni, che costituiscono il
vocabolario di un’area specifica, e delle regole per combinare termini e
relazioni per determinare estensioni del vocabolario ” (Neches 1991) [1].
ξ “ Specifica formale ed esplicita dei termini di un dominio e delle relazioni
che intercorrono tra loro ” (Gruber 1993) [2].
ξ “ Un’ontologia è una specificazione esplicita di una concettualizzazione “
(Gruber 1995) [3].
ξ “ Un’ontologia è un insieme di termini strutturato gerarchicamente per la
descrizione di un dominio che può essere usata come scheletro per una base
di conoscenza ” (Swartout et al. 1997) [4].
ξ “ Un’ontologia è una specificazione formale ed esplicita di una
concettualizzazione condivisa ” (Borst 1997) [5].
“ Le ontologie mirano a catturare conoscenza di dominio e forniscono una
sua visione comune che può essere riutilizzata e condivisa da gruppi e
applicazioni ” (Chandra-richard 1999) [6].
Ognuna di queste definizioni informali può comunque essere associata ad un’unica
definizione formale che prevede un insieme di elementi legati tra loro da regole e
formalismi. I componenti fondamentali di un’ontologia sono rappresentati da:
Capitolo 1 Le Ontologie
9
ξ Un dominio di interesse D.
ξ Un linguaggio comune L che tutti gli attori dell’ontologia useranno per
parlare di oggetti all’interno di D.
ξ Un insieme di concetti C descritti all’interno dell’ontologia ( Classi o
Concetti ).
ξ Una tassonomia T che esprima le relazioni di ereditarietà tra i vari concetti.
ξ Un insieme di relazioni R non tassonomiche descritte dal dominio e dalle
restrizioni.
ξ Un insieme di assiomi A che descrive ulteriori restrizioni nell’ontologia
rendendo espliciti elementi impliciti.
Una definizione in termini matematici, data da Maedche [7], indica l’ontologia come
una quintupla:
O: (C, R,
C
H , rel,
O
A )
costituita da :
ξ due insiemi C e R , i cui elementi identificano rispettivamente dei concetti e
delle relazioni.
ξ una gerarchia di concetti
C
H , con
C
H C x C, che costituisce una relazione
diretta e transitiva, detta tassonomia.
ξ una funzione rel : R ο C x C che mette in relazione i concetti in modo non
tassonomico.
ξ un insieme di assiomi
O
A , espressi in un opportuno linguaggio logico.
Un linguaggio per la struttura di un’ontologia O può invece essere definito
formalmente come una quadrupla L
L: (
C
L ,
R
L , F, G )
Capitolo 1 Le Ontologie
10
costituita da :
ξ due insiemi
C
L e
R
L , i cui elementi rappresentano, rispettivamente, dei
simboli (valori lessicali) per i concetti e per le relazioni.
ξ due funzioni F
C
L x C e G
R
L x R che costituiscono, rispettivamente,
dei riferimenti per i concetti e per le relazioni.
F(L) = { C Є C | (L,C) Є F } G( L) = { R Є R | (L,R) Є G }
In generale, un valore del linguaggio può riferirsi a diversi concetti o relazioni ed un
concetto o una relazione possono essere riferite da diversi valori del linguaggio.
1
F e
1
G , funzioni inverse, sono così definite:
1
F (C)= {L Є
C
L | (L,C) Є F }
1
G (R)= {L Є
R
L | (L,C) Є G}
1.2 Componenti di un’ontologia
Saranno ora analizzati gli aspetti fondamentali delle componenti di un’ontologia.
Come è stato già affermato in precedenza un’ontologia si compone sostanzialmente
di concetti (classi), tassonomie ed assiomi.
Per ogni Concetto [8] dell’ontologia devono essere definite proprietà che ne
descrivono caratteristiche e attributi, ed eventuali restrizioni atte a limitare le
relazioni di ereditarietà indicate dalle proprietà stesse. Le classi all’interno di
un’ontologia possono essere primitive, se sia gerarchicamente che logicamente non
presentano nella loro struttura classi da cui sono state derivate, oppure definite se
invece possono essere viste come specializzazione di altre classi presenti
nell’ontologia.
Attraverso le Tassonomie [9] sono espresse le relazioni di ereditarietà tra le varie
classi; in particolare questo tipo di relazioni possono essere ulteriormente suddivise
in relazioni di:
Capitolo 1 Le Ontologie
11
ξ Specializzazione/Generalizzazione (is-a): specializzano/generalizzano classi
in altre più Generali/Specifiche. Una classe A è sottoclasse di una classe B se
ogni istanza di A è anche un’istanza di B.
ξ Scomposizione disgiunta: Definiscono una partizione come sottoclasse di
una classe.
ξ Non sottoclasse di: Affermano che una classe non è specializzazione di
nessun’altra classe all’interno dell’ontologia.
Gli Assiomi [9] sono usati in aggiunta alle relazioni is-a per definire meglio i
concetti dell’ontologia. In particolare rappresentano sentenze sempre vere che
esplicitano restrizioni sulla struttura dell’ontologia e sulle relazioni tra le diverse
classi (es: restrizioni comuni sui valori delle proprietà di un singolo oggetto – “ la
lunghezza di un mattone è sempre maggiore della sua altezza ”); di solito sono
dichiarati all’interno dell’ontologia attraverso una definizione che include il nome,
la descrizione in linguaggio naturale, il concetto al quale si riferiscono, e gli attributi
usati. Oltre che essere dichiarati formalmente, gli assiomi sono anche recuperabili
attraverso un’analisi successiva delle relazioni che intercorrono tra le classi di
un’ontologia attraverso tecniche di inferenza. Attraverso la loro dichiarazione è
possibile definire in maniera particolareggiata la semantica dei concetti di
un’ontologia esplicitando così aspetti che altrimenti non sarebbero esprimibili dal
semplice uso delle tassonomie.
Altri elementi che sono utilizzati nella dichiarazione di un’ontologia sono le
istanze [9] che rappresentano le occorrenze degli elementi appartenenti ad una data
classe, gli individui [10] che rappresentano gli elementi del dominio dell’ontologia
che non sono classificabili come classi, i nominal che rappresentano classi che non
hanno istanze.
Oltre alle relazioni tassonomiche abbiamo poi degli altri tipi di relazioni
all’interno di un’ontologia che esprimono il tipo di interazione fra i concetti del
dominio; esse possono essere definite formalmente come una n-pla R
R:
n
xCxxCxCC ......
321
Capitolo 1 Le Ontologie
12
Un tipo particolare di tali relazioni sono le funzioni [9], in esse l’ennesimo elemento
della relazione è unico per gli n-1 elementi precedenti e possono essere espresse
formalmente come :
F: C
1
xC
2
x…….xC
n-1
ο C
n
Un’ontologia che contemporaneamente contiene un set di istanze individuali di
classi costituisce una base di conoscenza.
1.3 Metodi per costruire Ontologie
Esiste una varietà di metodologie da seguire per la definizione di una ontologia, le
tabelle seguenti ne riassumono alcune. La tabella 1 elenca alcune metodologie
utilizzabili per lo sviluppo cosiddetto “from the scratch”, la tabella 2 invece elenca
le metodologie impiegate per lo sviluppo “cooperativo“ di ontologie, per estrarre
uno “schema concettuale” dall’analisi di un insieme di risorse documentali, per
costruire una nuova ontologia integrando delle ontologie esistenti per valutare la
“qualità” di una ontologia.
Metodologie per la costruizone di ontologie “from the scratch”
TOVE Methodology
Enterprise Methodology
Sensus methodology
Bernaras, Laresgoiti, Corera Methodology
Methontology
CyC methodology (www.cyc.com)
Uschold and King
Gruninger and Fox
Kactus methodology
Onto-To-Knowledge Methodology (http://www.ontoknowledge.org/)
Tabella 1 – Metodologie per la costruzione di ontologie “from the scatch”
Capitolo 1 Le Ontologie
13
Metodologie per lo sviluppo cooperative di ontologie
CO4 methodology
(KA)2 methodology
Metodologie per l’analisi di ontologie
Aussenac-Gille's and colleagues
Maedche and colleagues' methodology
Metodologie per la fusione di ontologie
FCA-merge
PROMPT
Metodi di valutazione di Ontologie
Guarino's group methodology
Gómez Pérez's evaluation methodology
Tabella 2 – Altre metodologie per lo sviluppo di ontologie
Di seguito verrà presentata una breve trattazione di alcune delle metodologie
riassunte nelle tabelle.
1.3.1 “Methontology”
Le attività legate a Methontology [11] possono essere suddivise nei seguenti
gruppi:
o attività di gestione del progetto come scheduling e controllo di qualità.
o attività orientate alla costruzione dell’ontologia.
o attività di supporto per quelle al punto precedente.
In particolare per quanto riguarda il secondo gruppo possiamo identificare le
seguenti attività: specificazione, concettualizzazione, formalizzazione,
implementazione e manutenzione.
Attraverso la specificazione viene prodotto un documento nel quale si
specificano i requisititi dell’ontologia (obiettivi, livello di formalità, campo
Capitolo 1 Le Ontologie
14
d’azione, etc.); nella concettualizzazione invece si organizza la conoscenza di un
dominio in un modello concettuale attraverso delle rappresentazioni intermedie
indipendenti dal linguaggio utilizzato per l’implementazione dell’ontologia
partendo dai documenti ottenuti dalla fase di specificazione; attraverso la
formalizzazione il modello concettuale precedentemente ottenuto è trasformato
in un modello formale; nella fase di implementazione attraverso un ambiente che
supporti i meta-dati creati nelle precedenti fasi, si ottiene un’ontologia codificata
in un linguaggio formale; infine nella fase di manutenzione si mettono in atto
azioni per modificare e/o correggere eventuali errori che emergono
nell’implementazione dell’ontologia.
Tra le attività di supporto a quelle di costruzione possiamo citare:
l’acquisizione di conoscenza, la documentazione, la valutazione, la gestione
della configurazione e l’integrazione. L’acquisizione di conoscenza è un’attività
indipendente concentrata soprattutto durante la fase di specificazione. Le fonti di
acquisizione delle informazioni possono essere diverse: libri, manuali, esperti ed
ontologie gia esistenti. Una volta acquisite, le informazioni sono analizzate
attraverso tecniche atte ad estrapolarne la conoscenza. Nella documentazione
sono riportate in maniera dettagliata tutte le informazioni sui passi eseguiti
durante lo sviluppo dell’ontologia al fine di facilitare la condivisione e il riuso
dei risultati ottenuti. Attraverso la valutazione si fornisce un giudizio tecnico
sull’ontologia, sugli ambienti software utilizzati e sulla documentazione fornita a
corredo. Ciò è fatto attraverso due sotto fasi chiamate verifica che analizza il
processo tecnico che deve garantire la correttezza dell’ontologia e validazione
che invece garantisce che l’ontologia corrisponda effettivamente al sistema che
si voleva rappresentare. La gestione della configurazione si occupa di registrare
le varie versioni del codice e della documentazione al fine di tracciare i
cambiamenti. Infine l’integrazione si occupa di come potrebbe essere accelerato
il processo di sviluppo ad esempio ricorrendo ad ontologie già esistenti
garantendo che definizioni nuove e riusate si basino sullo stesso insieme di
termini base. Alla fine di questa fase si otterrà un documento contenente la meta-
ontologia che sarà utilizzato nel processo di sviluppo dell’ontologia.