Ontologia (informatica)

Da Wikipedia, l'enciclopedia libera.

In informatica, un'ontologia è una rappresentazione formale, condivisa ed esplicita di una concettualizzazione di un dominio di interesse. Più nel dettaglio, si tratta di una teoria assiomatica del primo ordine esprimibile in una logica descrittiva.

Il termine ontologia formale è entrato in uso nel campo dell'intelligenza artificiale e della rappresentazione della conoscenza, per descrivere il modo in cui diversi schemi vengono combinati in una struttura dati contenente tutte le entità rilevanti e le loro relazioni in un dominio. I programmi informatici possono poi usare l'ontologia per una varietà di scopi, tra cui il ragionamento induttivo, la classificazione, e svariate tecniche per la risoluzione di problemi.

Premesse[modifica | modifica wikitesto]

Nonostante la sua tradizione sia eminentemente teorica, l'ontologia si sta dimostrando in tempi recenti particolarmente feconda nei suoi risvolti pratici. Ad esempio lo studio dell'ontologia è sempre più importante a causa delle problematiche relative al sovraccarico informativo e ad altre problematiche legate alle moderne tecnologie informatiche (guerra dell'informazione, dipendenza da Internet, guerra asimmetrica, terrorismo e biosicurezza).

Tipicamente, le ontologie informatiche sono strettamente legate a vocabolari controllati – repertori di concetti classificati in un'ontologia fondamentale – in base ai quali tutto il resto deve essere descritto (entro il modello utilizzato). Nel caso peggiore, tale scopo viene assolto dal set di istruzioni del processore o dalla libreria standard del linguaggio di programmazione. Poiché queste sono cattive rappresentazioni di qualsiasi dominio di un problema, l'esigenza è quella di creare schemi più generali e definiti per rendere i set di dati utili a dare una descrizione (e un buon funzionamento del programma) coerente del dominio in oggetto.

Tali ontologie hanno spesso un valore commerciale: ciò crea concorrenza nella loro definizione – quella che Peter Murray-Rust ha definito "guerra semantica ed ontologica" – derivata dai differenti "standard" adottati, e la mancanza di un repertorio concettuale comune entro il quale far convergere tutte le ontologie speciali.

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. Utilizzato inizialmente in ambito dell'intelligenza artificiale e della rappresentazione della conoscenza, dal 2001 il termine è stato reso piuttosto popolare grazie all'intensa attività e alla forte crescita della comunità di ricercatori impegnati sul tema del Web semantico. Per estensione si è iniziato ad usare il termine per definire generici modelli di dati. Comunque nonostante la varietà con cui il termine viene utilizzato, nella letteratura specialistica sembra consolidata l'idea che in informatica il termine ontologia debba riferirsi specificamente ad un tentativo di formulare una concettualizzazione esaustiva e rigorosa 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. Tale struttura viene normalmente formalizzata per mezzo di linguaggi semantici che devono rispondere alle leggi della logica formale (per questo si parla anche di ontologia formale).

Uso come glossario di base[modifica | modifica wikitesto]

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 (cfr. Tullio De Mauro) con gli stessi scopi e gli stessi metodi.

È 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 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 - o '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.

Applicazioni nell'informatica[modifica | modifica wikitesto]

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.

Ontologie disponibili[modifica | modifica wikitesto]

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.

Una ontologia o molte ontologie[modifica | modifica wikitesto]

La distinzione principale fra l'ontologia in senso filosofico e quella in senso informatico è data dall'ambizione (interpretabile come pretesa, in termini di logica formale), da parte dell'ontologia filosofica, di spiegare 'ciò che è' in assoluto, ovvero tutto l'essere, mentre nell'ambito dell'informatica, nel primo decennio del XXI secolo, la creazione di un'ontologia fondante e totale risulta un'impresa titanica. Impresa che tuttavia non può essere a priori esclusa, in termini tecnologici, anche se è sempre più evidente che essa richiede una enorme attività di "negoziazione tra pari" per la conciliazione di moltissime esigenze e punti di vista diversi: primi fra tutti quelli rappresentati dai diversi sistemi semantici associati alle diversità linguistiche.

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 (vedi: Top-down Object-based Goal-oriented Approach, , TOGA meta-theory, Adam Maria Gadomski, 1993).

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.

Linguaggi per ontologie[modifica | modifica wikitesto]

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 standard, per la definizione di ontologie:

Esempi di ontologie pubblicate[modifica | modifica wikitesto]

La Linking Open Data Community Project di W3C

Progetti correlati[modifica | modifica wikitesto]

  • Il progetto GIONA si propone di realizzare uno strumento completamente open source per la gestione di un'ontologia basata sullo standard CIMOSA.

Note[modifica | modifica wikitesto]

  1. ^ SADL in Sourceforge. URL consultato il 10 febbraio 2011.
  2. ^ Basic Formal Ontology (BFO), Institute for Formal Ontology and Medical Information Science (IFOMIS).
  3. ^ BioPAX. URL consultato il 10 febbraio 2011.
  4. ^ Alexander Osterwalder e Yves Pigneur, An e-Business Model Ontology for Modeling e-Business, 15th Bled eConference, Slovenia, 17–19 giugno 2002.
  5. ^ About CCO and GexKB, Semantic Systems Biology.
  6. ^ CContology. URL consultato il 10 febbraio 2011.
  7. ^ The CIDOC Conceptual Reference Model (CRM). URL consultato il 10 febbraio 2011.
  8. ^ COSMO, MICRA Inc.. URL consultato il 10 febbraio 2011.
  9. ^ Disease Ontology in Sourceforge. URL consultato il 10 febbraio 2011.
  10. ^ Laboratory for Applied Ontology - DOLCE, Laboratory for Applied Ontology (LOA). URL consultato il 10 febbraio 2011.
  11. ^ OWL version of DOLCE+DnS, Semantic Technology Lab. URL consultato il 21 febbraio 2013.
  12. ^ Foundational, Core and Linguistic Ontologies. URL consultato il 10 febbraio 2011.
  13. ^ Foundational Model of Anatomy. URL consultato il 10 febbraio 2011.
  14. ^ GOLD. URL consultato il 10 febbraio 2011.
  15. ^ Generalized Upper Model. URL consultato il 10 febbraio 2011.
  16. ^ The IDEAS Group Website. URL consultato il 10 febbraio 2011.
  17. ^ Linkbase. URL consultato il 10 febbraio 2011.
  18. ^ Bioportal, National Center for Biological Ontology (NCBO).
  19. ^ Ontology browser for most of the Open Biological and Biomedical Ontologies, Berkeley Bioinformatics Open Source Project (BBOP).
  20. ^ The Open Biological and Biomedical Ontologies, Berkeley Bioinformatics Open Source Project (BBOP).
  21. ^ OMNIBUS Ontology. URL consultato il 10 febbraio 2011.
  22. ^ Plant Ontology. URL consultato il 10 febbraio 2011.
  23. ^ PRO. URL consultato il 10 febbraio 2011.
  24. ^ Protein Ontology. URL consultato il 10 febbraio 2011.
  25. ^ SWEET. URL consultato il 10 febbraio 2011.
  26. ^ UBERON. URL consultato il 10 luglio 2012.
  27. ^ YAMATO. URL consultato il 10 febbraio 2011.

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Web Portale Web: accedi alle voci di Wikipedia che trattano di Web