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 è derivato dal precedente uso dello stesso termine in filosofia, dove ha il significato dello studio dell'essere o dell'esistere, così come le fondamentali categorie e delle relazioni tra esse. Vedere ontologia.
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 2 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.
Una analogia è possibile anche con i linguaggi artificiali. Tutti i programmi per computer si basano su ontologie fondazionali, costituite dal set 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".
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' (è un in inglese), '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, gli astrusi ragionamenti 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 una alternativa venga scelta, e le altre 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.
[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 induttivo, 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 competizione", 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 specifici domini di applicazione. 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 è stata rilasciata per uso libero col nome di OpenCyc (vedere http://opencyc.org/ ).
WordNet, un database liberamente disponibile, progettato come un semantic network basato 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 una 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] Gli standard implicano la convergenza con l'uso filosofico del termine 'ontologia'
A mano che gli utenti o i creatori di sistemi informatici modificano la loro visione dei dati o le loro convinzioni come risultato dell'applicazione di una 'ontologia superiore standard', questa diviene un artefatto culturale, come il glossario di base o il dizionario di un linguaggio umano, e diventa più difficile distinguere fra il termine ontologia nell'informatica ed il termine ontologia in filosofia. Teoricamente, qualcuno la cui conoscenza della realtà venga solo da sistemi basati sullo standard P1600.1 (ad esempio un disabile, un'intelligenza artificiale, o un hacker alieno che esplora la Terra con il suo computer), non si troveranno mai a fare un tale tipo di distinzione.
[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 un'ontologia viene costruita. 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 è 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 OIL e DAML.
[modifica] Voci correlate
- Web semantico
- Core ontology
- Ontologia (in senso filosofico)
- Frame language
- Frame problem
- Application Programming Interface
- Sistema esperto
- Base di conoscenza