Introduzione
2
• Fase implementativa: in questa ultima fase, abbiamo implementato le
ontologie e l’agente semantico utilizzato per esplorarle. Si sono fatti
esempi d’uso per chiarire il più semplicemente possibile le
funzionalità del progetto.
Il progetto complessivo è organizzato in due distinte tesi di laurea. La presente
focalizza gli aspetti relativi allo sviluppo delle ontologie mentre la seconda si occupa
delle problematiche relative all’implementazione dell’applicazione.
L’organizzazione della stesura di questo lavoro di rispecchia la struttura seguente:
• nel primo capitolo si spiega il concetto di ontologia e la sua definizione in
contesto informatico. Viene, inoltre, affrontato il suo ruolo all’interno del
Semantic Web e ne viene spiegata la costruzione e la struttura.
Relativamente al web semantico, oltre ad una breve introduzione, si
parlerà anche del problema dell’integrazione mostrando alcuni esempi
presenti on-line;
• nel secondo capitolo sono stati descritti, e classificati in base al loro
contesto d’uso, i vari tool e applicativi che lavorano con le ontologie. In
particolar modo si è introdotto il linguaggio OWL (Ontology Web
Language), attualmente W3C Reccomandation per la realizzazione di
ontologie per il Semantic Web, e il funzionamento dell’editor di ontologie
Protégé;
• nel terzo capitolo viene presentato il progetto svolto. Sono trattate le
motivazioni e le problematiche che intende risolvere. Viene descritta
l’architettura dell’applicativo e l’implementazione delle varie parti. In
particolare sono gli aspetti ontologici quelli maggiormente approfonditi
all’interno di questa tesi. Infine vengono esposte le funzionalità principali
che sono trattate dettagliatamente tramite spiegazioni, schermate video ed
esempi.
Dal World Wide Web al Semantic Web, uso delle ontologie
3
1 Dal World Wide Web al Semantic Web, uso
delle ontologie
1.1 Semantic Web
“The Semantic Web is an extension of the current web in which information is given
well-defined meaning, better enabling computers and people to work in cooperation”
[LEE01]. Quella appena proposta è la definizione data da Tim Berners-Lee del web
semantico, ovvero “...è un’estensione del web attuale in cui le informazioni sono
strutturate con un senso compiuto, migliorando il lavoro tra le persone e i computer”.
Nella pratica il web semantico è un progetto del W3C [W3C07] a cui
contribuisce una vasta comunità scientifica. L’obbiettivo è la produzione di documenti,
soluzioni ed esperienze per consentire al prossima generazione del web di acquisire un
senso meglio definito, fornendo agli utenti uno strumento più completo, efficace ed
utile. In realtà gli studi e le ricerche che la comunità scientifica sta portando avanti in
questi anni potrà portare un serio e concreto beneficio a tutti i livelli informatici, non
solo quelli basati su web; l’utilizzo e l’applicazione concreta delle ontologie e della
semantica può creare ed offrire un’ampia ed interessante realtà di lavoro.
Il Semantic Web, nella visione di Berners-Lee, ha un’architettura a livelli; il
termine semantico assume la valenza di “elaborabile dalla macchina” e non intende fare
riferimento alla semantica del linguaggio naturale e alle tecniche di intelligenza
artificiale. Il Semantic Web è un ambiente dichiarativo, in cui si specifica il significato
dei dati e non il modo in cui si intende utilizzarli. In questo contesto la semantica
consiste nel fornire informazioni utili cosicché la macchina possa utilizzarli nel modo
corretto. Come chiaramente descritto da Tim Berners-Lee, il Semantic Web potrà
funzionare solo se le macchine potranno accedere ad un insieme strutturato di
informazioni e ad un insieme di regole di inferenza da utilizzare per il ragionamento
automatico [LEE01]. La sfida del semantic web, quindi, è fornire un insieme di
linguaggi per esprimere i dati e le regole per ragionare su di essi, il tutto fruibile
all’interno di una struttura fruibile via web tramite gli strumenti preposti a tale obiettivo.
Dal World Wide Web al Semantic Web, uso delle ontologie
4
Oggi il Web è essenzialmente un insieme di standard come l’HTTP (HyperText
Transfer Protocol) e l’HTML (HyperText Markup Language), usati per trasmettere e
ricevere documenti ipertestuali e multimediali adatti ad un utilizzo umano. Secondo la
visione dello stesso inventore del Web, questo aspetto limita di molto le sue
potenzialità. Con il web semantico, invece, si favorirà lo sviluppo di agenti software
altamente specializzati [LEE01]. Questi dovrebbero perciò riuscire ad interpretare tutti
quei documenti che sono scritti o indicizzati attraverso i formalismi di rappresentazione
che permettono di definire una concettualizzazione del reale. In una parola:
un’ontologia.
“An ontology is an explicit specification of a conceptualization. The term is
borrowed from philosophy, where an Ontology is a systematic account of Existence.
For AI systems, what "exists" is that which can be represented. When the knowledge of
a domain is represented in a declarative formalism, the set of objects that can be
represented is called the universe of discourse. This set of objects, and the describable
relationships among them, are reflected in the representational vocabulary with which
a knowledge-based program represents knowledge. Thus, in the context of AI, we can
describe the ontology of a program by defining a set of representational terms. In such
an ontology, definitions associate the names of entities in the universe of discourse (e.g.,
classes, relations, functions, or other objects) with human-readable text describing what
the names mean, and formal axioms that constrain the interpretation and well-formed
use of these terms. Formally, an ontology is the statement of a logical theory.”
[GRU93]
Un’ontologia nell’ambito dell’informatica è definita da Gruber come una
specifica di una concettualizzazione: una rappresentazione precisa in un linguaggio
formale dei concetti di un dominio e delle primitive usate per definire tali concetti.
Un’ontologia contiene un insieme di concetti rilevanti (processi, entità, attributi) che
caratterizzano un dato dominio applicativo, le loro definizioni e le loro relazioni.
Tradizionalmente questi formalismi sono stati sviluppati nell’area
dell’Intelligenza artificiale e focalizzano la loro base formale sui paradigmi del calcolo
dei predicati del primo e secondo ordine, la logica descrittiva o anche i paradigmi object
oriented. Sono le diverse proprietà espressive e computazionali che differenziano poi
questi linguaggi.
Dal World Wide Web al Semantic Web, uso delle ontologie
5
Il linguaggio XML [XML06], la cui ultima versione (XML 1.1) è dell’agosto
2006, consente a chiunque di progettare il proprio formato dei documenti. È un
linguaggio di Markup pensato per scambiare in modo semplice documenti di qualsiasi
tipo. Le componenti di XML sono: il contenuto, le specifiche che riguardano gli
elementi ossia la struttura (DTD, Document Type Definition o XMLSchema) e le
specifiche che riguardano la visualizzazione ossia lo stile (XSL eXtensible Style
Language). L’XML permette la creazione di “marcatori’ (tag) all’interno delle pagine
Web in grado di definire una struttura coerente e non ambigua e che rifletta lo specifico
dominio semantico del documento. Marcare in una pagina web le parole “Giacomo
Puccini” con il tag <compositore> permetterebbe già di fare un grosso passo in avanti
ai motori di ricerca, che riuscirebbero a fornire documenti pertinenti, escludendo quelli
in cui non si parla del famoso musicista ma di uno sconosciuto omonimo. I marcatori
vengono definiti da appositi Data Type Definitions (DTDs) o da più specifici XML-
Schema. In primo luogo, XML viene utilizzato spesso nella rappresentazione di
documenti testuali, anche di carattere letterario o genericamente umanistico,
diffondendosi quindi in un settore nel quale la rappresentazione digitale delle
informazioni costituisce in larga misura un elemento di novità. In secondo luogo, la
versatilità di XML, nel generare definizioni di diverse tipologie di documento, produce
la convinzione diffusa che tale linguaggio possa costituire una sorta di strumento
“neutro” con il quale rappresentare la conoscenza contenuta nelle diverse fonti
informative, dagli ordini di spedizione commerciali ai manoscritti latini tardo medievali.
XML permette dunque una prima strutturazione del documento. Tale struttura non
è comunque sufficiente per soddisfare le richieste del web semantico, ai tag
personalizzati è necessario poter associare anche la semantica. Il linguaggio che
consente di associare la semantica degli oggetti è RDF [RDF04]. RDF fornisce
l’infrastruttura per permettere la codifica, il riuso e lo scambio di metadati strutturati. In
questo modo, l’RDF è il modello più promettente per associare informazioni al
contenuto delle risorse Web. La semantica che verrà associata al documento verrà poi
modellata all’interno dell’ontologia. Esempi distribuiti che permettono la modellazione
di ontologie sono il Simple HTML Ontology Extensions (SHOE), l’Ontology Exchange
Language (OML) e il Resource Description Framework Schema (RDFS). Essi ereditano
le caratteristiche dell’XML e incorporano nuove caratteristiche che migliorano
Dal World Wide Web al Semantic Web, uso delle ontologie
6
l’espressività del modello dati iniziale. Ulteriori proposte di linguaggi sono quelli che
estendono RDF e RDFS [BRI04] come: Ontology Interchange Language (OIL) e il suo
successore (DAML+OIL). Visto che l’XML impone la necessità di restrizioni strutturali
(una base comune), nell’idea di fornire metodi esenti da errore per le espressioni
semantiche. Un’analisi delle caratteristiche maggiormente auspicate, riguardanti
l’espressività e la potenza dei meccanismi di ragionamento, ci fornirà il profilo per un
efficiente linguaggio per il Semantic Web. Viene fatta una chiara distinzione tra i
termini: rappresentazione della conoscenza e il ragionamento. La formalizzazione della
conoscenza è portata avanti, in molti casi, attraverso l’uso di concetti, relazioni n-arie,
funzioni, procedure, istanze, assiomi, regole di produzione ed attraverso la semantica
formale. Questi fattori determinano l’espressività del linguaggio.
Con questi propositi è nato il linguaggio OWL (Ontology Web Language)
adottato come standard dal W3C [OWL04], progettato per rispondere a pieno alle
necessità di un Linguaggio ontologico del Web.
Si può introdurre così il concetto di Ontologia Web, che si caratterizza tramite le
seguenti proprietà:
• La possibilità di essere distribuita attraverso molti sistemi, favorendo tra questi
l’interoperabilità;
• Scalabile alle necessità del Word Wide Web;
• Compatibile con gli standard del Web per l'accessibilità e
l’internazionalizzazione;
• Aperta ed estensibile.
1.2 Ontologia
Un’ontologia [GUA95] è un’esplicitazione formale di un determinato campo del sapere
umano. Nella comunità dei ricercatori che si occupano del Semantic Web è intesa come
base di conoscenza progettata con l’obiettivo di essere condivisa e riutilizzabile
concretamente nel mondo reale. È prevedibile che in una prima fase, le ontologie
Dal World Wide Web al Semantic Web, uso delle ontologie
7
divengano sempre più importanti in ambiti generici per esempio come le sofisticate
interfacce dei motori di ricerca o nei sistemi di e-learning, per poi essere utilizzate nei
sistemi di gestione aziendali.
L’RDF (Resource Description Framework, ovvero “Struttura finalizzata alla
Descrizione di Risorse”) [RDF04] pur essendo un linguaggio potente per la
rappresentazione della conoscenza, non ha modo di fornire strumenti per inferenze o
deduzioni ragionate. Per questo occorre un livello ulteriore del web semantico che
permetta di associare dei concetti a regole logiche di uso, nasce così l’ontologia.
Le ontologie sono considerate l’ultimo scalino verso il web semantico; possono
svolgere un ruolo fondamentale nel migliorare il funzionamento del Web (ricerca di
concetti, collegamento delle informazioni contenute in una pagina alle strutture di
conoscenza associate, etc.).
Esistono differenti tipi di ontologie a seconda dell’approccio adottato per l’analisi
della realtà in esame. Si distingue spesso tra ontologie lightweight (che sono
sostanzialmente delle tassonomie) e le ontologie heavyweight (che forniscono un
modello del dominio più accurato ed includono delle restrizioni sulla semantica del
dominio). Le prime includono i concetti e le tassonomie di concetti, le relazioni tra
concetti, e le proprietà che descrivono i concetti. Le ontologie heavyweight aggiungono
a questo assiomi e vincoli, che chiariscono il senso inteso (intended meaning) dei
termini presenti nell’ontologia. Di particolare interesse sono le ontologie di dominio di
tipo heavyweight che permettono un approccio pragmatico alla modellazione della
conoscenza. Le ontologie di dominio restringono l’analisi a un campo applicativo della
conoscenza. Esse garantiscono un vocabolario di concetti e di relazioni fra concetti di
una specifica realtà. Questa proprietà le rende valide per la progettazione di tipo web
come ad esempio portali complessi. Un sito di grandi dimensioni è espressione di uno
specifico dominio della conoscenza, in cui concetti primari e secondari si intrecciano
per creare un fitto insieme di relazioni, spesso di difficile rappresentazione. L’ontologia
offre un metodo per sviluppare la mappa concettuale del sito e rappresenta una base, in
forma rigorosa, da cui partire per creare un sito logicamente ben strutturato.
Un’ontologia di dominio può essere anche alla base dei motori inferenziali che
permettono di determinare nuova conoscenza, analizzando logicamente un’ontologia.
Affiancando un tradizionale motore di ricerca ad uno inferenziale si migliorano le
Dal World Wide Web al Semantic Web, uso delle ontologie
8
risposte alle richieste degli utenti di un portale. Il linguaggio definito dal W3C per
definire ontologie strutturate, in architettura web, per consentire una migliore
integrazione dei dati tra applicazioni in settori diversi è OWL (Ontology Web
Language).
Nell'ambito informatico, un’ontologia è il tentativo di formulare uno schema
concettuale esaustivo e rigoroso nell'ambito di un dato dominio; si tratta generalmente
di una struttura dati gerarchica che contiene tutte le entità rilevanti, le relazioni esistenti
fra di esse, le regole, gli assiomi, ed i vincoli specifici del dominio. Un’ontologia è
composta di due elementi: una cosiddetta T-Box e una A-Box. La T-Box (Scatola dei
termini) è la parte tassonomica dell’ontologia, dove sono definiti i concetti, la gerarchia
che sussiste tra essi e le proprietà che possono porre in relazione tra loro i concetti. In
breve, è la struttura dell'ontologia. La A-Box (Scatola delle asserzioni) è la parte
dell’ontologia che contiene i fatti, dove cioè le singole istanze sono classificate come
appartenenti ad una precisa classe e dove sono valorizzate eventuali proprietà definite
per la classe di appartenenza di ciascuna istanza; in parole povere è la “sostanza“
dell’ontologia.
La costruzione di un’ontologia non è altro che la definizione dei caratteri
fondamentali di quanto può venire accettato in un determinato mondo possibile,
sottoinsieme, nel nostro caso, dei possibili mondi di significato del web semantico.
L’utilizzo dell’ontologia nel campo dell’informatica ha portato all’esigenza di
applicativi che permettano di lavorare con questo potente strumento. In questo modo
sono nati una moltitudine di tool, progetti e applicativi che facilitano l’utilizzo di
un’ontologia a molti tipi di utenti da quelli web ai progettisti. Questi applicativi possono
essere classificati in base alle loro funzionalità in:
• Editor: consentono la creazione e supportano la progettazione di
ontologie;
• Parser/Validator: effettuano il parsing e verificano la validità
dell’ontologia;
• Reasoner: permettono di effettuare inferenza sugli assiomi dell’ontologia,
il loro utilizzo può essere a supporto della creazione dell’ontologia
diventando un utile strumento per trovare inconsistenze logiche;
Dal World Wide Web al Semantic Web, uso delle ontologie
9
• Tool di annotazione: mirano alla creazione di metadati che andranno ad
annotare una risorsa, tipicamente una pagina web.
1.2.1 Struttura di un’ontologia
Un’ontologia ha una struttura dati gerarchica che contiene tutte le entità rilevanti, le
relazioni esistenti fra esse, le regole, gli assiomi, ed i vincoli specifici del dominio; è
composta essenzialmente da questi elementi:
1.2.1.1 Classi
Generalmente organizzati in tassonomie. La “classe” viene utilizzata in senso lato per
descrivere i concetti (le classi di individui) che si vuole rappresentare (es. PERSONA,
GENITORE, MADRE…).
Figura 1.1: Classi
1.2.1.2 Proprietà e attributi
Rappresentano le relazioni esistenti tra le classi del dominio (es. “le MADRI sono
GENITORI”, “i GENITORI hanno figli che sono PERSONE”…).
Dal World Wide Web al Semantic Web, uso delle ontologie
10
Figura 1.2: Proprietà e attributi
Il legame tra MADRE e GENITORE (is_a) indica che “le MADRI sono GENITORI” e
definisce una gerarchia tra concetti, provvedendo una base per l’eredità di proprietà: un
concetto specifico eredita le proprietà del concetto più generale che lo sussume. E’
possibile rappresentare anche proprietà più complesse della relazione is_a. Ad esempio,
è possibile definire la proprietà ha_figli, che connette le due classi GENITORE e
PERSONA, specificando degli attributi che ne vincolano l’applicazione: v/r denota una
restrizione sulle classi che possono soddisfare la proprietà, mentre (1,n) rappresenta una
restrizione di cardinalità. L’esempio può essere letto come “un GENITORE è una
PERSONA che ha almeno 1 figlio e tutti i figli che ha sono PERSONE”.
1.2.1.3 Assiomi
Vengono utilizzati per modellare in maniera esplicita espressioni in ogni caso vere.
Possono essere utilizzati per diversi scopi: definire il significato dei vari componenti
dell’ontologia, definire relazioni complesse, verificare la correttezza dell’informazione
specificata o dedurre nuova informazione. (es. disjoint (MADRE, PADRE) esprime il
fatto che un elemento della classe PADRE non può mai essere anche un elemento della
classe MADRE).
Figura 1.3: Assiomi