Ontologia (informatica)
Da Wikipedia, l'enciclopedia libera.
Nell' informatica, una 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.
L'uso del termine "ontologia" nell'informatica deriva dal precedente uso dello stesso termine in filosofia, dove ha il significato dello studio dell'essere o dell'esistere, così come dalla filosofia sono tratti i concetti fondamentali di categoria e di relazione.
Indice |
[modifica] Uso come glossario di base
Una ontologia fondazionale è in qualche misura assimilabile ad un glossario di base, anche se al contrario di questo, usualmente la prima è gerarchizzata in due o piú livelli, nei cui termini tutto il resto deve essere descritto.
Una analogia può essere vista con il Basic English, il dizionario delle 2000 parole della lingua inglese necessarie al dizionario Longman per descrivere le 4000 frasi più comuni nella lingua inglese. Una ontologia fondazionale ha la funzione di un'ontologia di base sia per gli utenti che per i programmi, influenzando la loro prospettiva dei dati e degli eventi. Anche in Italia ci si è occupati di definire un Italiano di base Tullio De Mauro con gli stessi scopi e gli stessi metodi.
E' possibile anche un'analogia con i linguaggi artificiali. Tutti i programmi per computer si basano su ontologie fondazionali, costituite dall'insieme di istruzioni del processore, dalle librerie di un linguaggio, dai file presenti in un file system, o da qualche altra lista di 'ciò che esiste'. Costruire la rappresentazione di un dominio di conoscenza partendo da delle basi insufficienti può portare a risultati poco corretti, da qui la necessità di disporre di ontologie di base standardizzate (come la Dublin Core per l'SGML) e consolidarle come fondamenta del proprio lavoro.
T. R. Gruber ha definito l'ontologia come "una specificazione di una concettualizzazione" [1].
Malgrado il termine 'ontologia' sia stato utilizzato in modo estremamente generico per contraddistinguere un qualunque schema concettuale di classificazione, secondo gli esperti di ontologia computazionale una vera ontologia non deve limitarsi ad una gerarchia di concetti organizzati con la relazione di sussunzione (spesso chiamata 'isa' ('is-a' in lingua inglese, cioè è un), 'sottoclasse', o 'sottotipo'), ma deve includere anche altre relazioni semantiche che descrivono in che modo i concetti sono interrelati. Una delle relazioni più comuni, oltre a quella di sussunzione, è la relazione 'parte-di'.
Questo approccio è differente, anche se correlato, col significato filosofico del termine ontologia, lo studio di ciò che è. Lo scopo di un'ontologia computazionale non è quello di specificare cosa 'esiste' e cosa 'non esiste', ma di creare una base di dati, che è un artefatto dell'uomo, contenente concetti riferiti al dominio di indagine dell'ontologo, e che verrà impiegata per eseguire certi tipi di computazione. Per questo motivo, i ragionamenti astrusi seguiti dagli ontologi in filosofia possono essere utili per individuare ed evitare delle possibili ambiguità logiche, ma quando diverse rappresentazioni ontologiche alternative possono servire ugualmente bene per gli obiettivi dell'ontologo computazionale, i vincoli di tempo impongono normalmente che venga scelta un'alternativa e le altre siano ignorate. Per certi scopi, è meglio non prendere in considerazione diversi dettagli degli oggetti di interesse. Ne consegue che diverse ontologie computazionali, sviluppate indipendentemente per scopi diversi, per lo stesso dominio di applicazione, possono risultare sensibilmente diverse fra di loro.
Nell’ontologia filosofica, e così anche nel suo corrispettivo estendibile all’ambito informatico, si può distinguere fra ontologie Top-Level, ossia di massimo livello, e ontologie di dominio. Le prime riguardano gli aspetti più generici e astratti ravvisabili nella realtà intesa nella sua completezza, le seconde, che è possibile ricondurre a quelle massimali, per l’appunto si occupano dell’analisi categoriale e relazionale che si specifica in una peculiare porzione di realtà. Naturalmente, se riferite al World Wide Web, le massimali operano su di esso nell'interezza della sua complessità, mentre quelle di dominio si curano di analizzarne un settore circoscritto: è necessario però chiarire che il riconoscimento delle ontologie di dominio non implica che ad esse si sottenda obbligatoriamente l’esistenza di ontologie di massimo livello.
[modifica] Applicazioni nell'informatica
Le ontologie sono applicate comunemente nel campo dell'intelligenza artificiale e nella rappresentazione e nella condivisione della conoscenza. I programmi nei computer possono utilizzare un'ontologia per una varietà di scopi, fra cui il ragionamento deduttivo, la classificazione, diverse tecniche di problem solving, oltre che per facilitare la comunicazione e lo scambio di informazioni fra diversi sistemi.
Un'ontologia che non sia legata ad un particolare dominio di applicazione, ma cerchi di descrivere entità più generali, si definisce ontologia costitutiva, oppure ontologia superiore. In genere è necessario creare degli schemi maggiormente specializzati per rendere i dati utilizzabili in contesti applicativi reali.
Le ontologie costitutive sono importanti per sviluppare, sulla base dei concetti fondanti e delle assiomatizzazioni che contengono, ontologie specializzate che mantengano un disegno integro e coerente.
Sono in corso di studio metodologie specifiche, come OntoClean, per aiutare gli architetti della conoscenza in questo compito.
Ontologie costitutive possono avere un valore commerciale, creando una competizione per definirle. Peter Murray-Rust sostiene che questa situazione può portare ad "una guerra nel campo semantico ed ontologico dovuta a diversi standard in concorrenza", e come conseguenza ogni ontologia costitutiva standard verrà verosimilmente contestata da diverse parti – politiche o commerciali, ognuna con la propria idea di 'cosa esiste' (in senso filosofico). Nessuna ontologia superiore è stata finora generalmente riconosciuta come uno standard de facto. Diverse organizzazioni stanno lavorando alla definizione di ontologie standard per domini di applicazione specifici. Il 'Process Specification Language' (PSL) creato dal National Institute for Standards and Technology (NIST) è uno di questi esempi.
[modifica] Ontologie disponibili
Un'ontologia popolare ed abbastanza esaustiva disponibile è Cyc, un sistema proprietario sviluppato già a partire dal 1985, che consiste in un'ontologia costitutiva e diverse ontologie specializzate per dominio (chiamate "microteorie" - "microtheories" in inglese). Un sottoinsieme di questa ontologia è stato rilasciato per uso libero col nome di OpenCyc (vedere http://opencyc.org/ ).
Wordnet, un database liberamente disponibile, progettato come un rete semantica basata sui principi della psicolinguistica, è stato successivamente espanso con l'aggiunta di definizioni ed è attualmente visto anche come un dizionario. Si qualifica come un'ontologia costitutiva perché include sia concetti di tipo generale, sia concetti con un maggior grado di specializzazione, collegati non solo da relazioni di sussunzione, ma anche con relazioni semantiche come quella di parte-insieme e causa. Tuttavia, a differenza di Cyc, esso non è stato completamente assiomatizzato, in modo da rendere le relazioni logiche fra concetti precise. Viene ampiamente usato nella ricerca sull'elaborazione del linguaggio naturale.
La Suggested Upper Merged Ontology (SUMO) è un altro tentativo di definire un'ontologia superiore, avviato dal gruppo di lavoro IEEE P1600.1 (costituito in larga parte da un gruppo di persone della Teknowledge), disponibile per uso libero.
Questa iniziativa tende a riservare alcuni termini ed il loro significato per tutti i sistemi basati sullo standard 'P1600.1', nello stesso modo in cui un'ontologia generale (in senso filosofico) definisce 'cosa esiste'. Lo stesso uso dell'aggettivo 'superiore', implica una gerarchia che deve essere accettata piuttosto che una base che può essere scelta, e sembra implicare un impatto di tipo culturale.
Da segnalare, inoltre, il sito schemaweb.info che si propone come un catalogo per ontologie scritte con RDF, OWL e DAML+OIL.
[modifica] Una Ontologia o molte ontologie
La distinzione principale fra l'ontologia in senso filosofico e quella in senso informatico è data dalla pretesa, da parte dell'ontologia filosofica, di spiegare 'ciò che è' in assoluto, ovvero tutto l'essere, mentre in informatica la creazione di un'ontologia fondante e totale risulta un'impresa titanica, che richiederà la conciliazione di moltissime esigenze e punti di vista diversi.
Una cosa, invece, già possibile e praticata è la creazione di molte ontologie, ciascuna limitata a un dominio ben preciso e persino ad un ben preciso punto di vista, o scopo, di quel dominio, allora abbiamo qualcosa che può già essere realizzato e può essere utilizzato per molti scopi, come gestire un servizio web o integrare sistemi diversi.
Le ontologie così create potrebbero poi, in caso di necessità, venire mappate le une sulle altre, sfruttando il meccanismo di importazione delle ontologie, in modo da farle interagire senza perdere la complessità e particolarità di ciascuna.
[modifica] Linguaggi per ontologie
Per essere utili, le ontologie devono essere espresse in una notazione concreta. Un 'linguaggio per ontologie' è un linguaggio formale con cui viene costruita un'ontologia. Esistono diversi linguaggi, proprietari o basati su standards, per la definizione di ontologie:
- Il progetto Cyc ha il suo linguaggio, basato sulla logica del primo ordine, chiamato CycL.
- KIF era, fra gli altri usi, anche un linguaggio per ontologie.
- OWL OWL è un linguaggio per esprimere affermazioni in un'ontologia, sviluppato come passo successivo del RDF e RDFS, così come precedenti progetti di linguaggi per ontologie, fra cui Ontology Inference Layer (OIL) e DAML.
[modifica] Progetti correlati
- il progetto GIONA si propone di realizzare uno strumento completamente open source per la gestione di un'Ontologia basata sullo standard CIMOSA
[modifica] Voci correlate
- Web semantico
- Core ontology
- Ontologia (in senso filosofico)
- Frame language
- Frame problem
- Application Programming Interface
- Sistema esperto
- Base di conoscenza
- Estrazione di terminologia
[modifica] Collegamenti esterni
- (EN) Big Picture esperimento del sito C/Net
- (EN) W3C Web Ontology Language (OWL)
- (EN) The AIM@SHAPE network of excellence - Integrating Knowledge Management Techniques with Shape Modeling
- (EN) TermExtractor - a FREE tool for Terminology extraction - a very useful starting point for Domain Ontology construction
- (IT) Esempio di un'ontologia OWL

