L’inventario (informatico) di ciò che (forse) esiste.
Uno sguardo all’ontologia applicata
Emilio M.Sanfilippo
Scuola di Dottorato in ICT, Università di Trento,
Laboratorio di Ontologia Applicata (LOA-ISTC),
Consiglio Nazionale delle Ricerche (CNR)
Abstract
Particelle, baci, schiaffi, piante, passeggiate, buchi, ombre, libri, statue, appuntamenti, soldi,
persone, criminali, filosofi, Ulisse, banche e squadre di calcio: da quante e quali cose è abitata
la realtà? Esiste una statua, o si tratta semplicemente di una massa di creta con una certa
forma? “Che cosa esiste?” è la domanda fondamentale dell’Ontologia, una delle più remote
discipline filosofiche, la scienza dell’essere le cui origini risalgono ai primi filosofi antichi. Al
giorno d’oggi, una disciplina vecchia duemila e passa anni ha contribuito a dar vita a una delle
linee di ricerca più feconde, dall’intelligenza artificiale, all’ingegneria dei sistemi informativi, alla
rappresentazione della conoscenza, al conceptual modeling, alla bioinformatica, tanto per fare
alcuni esempi. In queste discipline, un’ontologia è una teoria che rende esplicite le assunzioni
esistenziali di una comunità su un certo dominio della realtà; detta altrimenti, un’ontologia è
un modello formale la cui semantica è resa esplicita rispetto a una certa concettualizzazione
della realtà. Esiste un rapporto tra la scienza dell’essere e la cosiddetta ingegneria ontologica,
o ontologia applicata? Cosa ha a che fare la filosofia con l’informatica?
Pino cammina sulla via principale di una città sconosciuta. Arriva ad un largo piazzale dove la
gente sembra attendere; si affianca a una persona e chiede: “È già passato il 5?” “No, lo aspetto
da 10 minuti”. “Che fortuna!”, esclama Pino; “Non direi” – ribatte l’altro – “Sono in ritardo per
un appuntamento”.
Una conversazione abituale tra due persone, come quella sopra, rileva una certa complessità di
fondo, se analizzata attentamente. Di certo, quando Pino chiede se il 5 è già passato, capiamo che
l’oggetto della conversazione non è il numero 5, dato che non siamo abituati a vedere cose come
i numeri andare in giro per le strade e i matematici (o i filosofi della matematica) ci dicono che i
numeri non sono cose che hanno ritardi. Pino è interessato a sapere qualcosa di ben più concreto
rispetto ai numeri, in questo caso se il bus numero 5 è già passato da una certa fermata.
Affinché una conversazione possa svolgersi in modo efficace, è necessario che gli interlocutori
condividano non soltanto lo stesso linguaggio, ma anche e soprattutto una serie di presupposizioni
sul mondo. Per esempio, sia Pino sia il suo interlocutore sanno di riferirsi ad un autobus e non
ad un numero naturale, parlando del ‘5’. Sanno, tra le altre cose, che gli autobus sono dei mezzi
di trasporto pubblico, che seguono percorsi specifici e rispettano degli orari, ma purtroppo (o
per fortuna) possono anche ritardare. Sanno che è possibile salire e scendere da un autobus solo
presso una fermata; che bisogna avere il biglietto per salire; che è possibile pagare la quota del
1
biglietto direttamente all’autista, o è necessario comprare il biglietto presso un centro autorizzato.
Chiaramente queste presupposizioni non si limitano ad entità fisiche e materiali come i biglietti e gli
autobus, ma spaziano su un universo più vasto, da entità sociali tipo il costo del biglietto, o il ruolo
di chi guida l’autobus, a entità intangibili, per esempio il ritardo, gli appuntamenti, le fermate, gli
eventi del salire e scendere dagli autobus e via dicendo.
La comunicazione non è più soltanto una prerogativa tra umani ma anche tra umani e dispositivi
informatici, o perfino tra dispositivi stessi. Con strumenti tipo gli assistenti vocali, per esempio, è
possibile comunicare con una macchina in un modo molto simile alla maniera in cui comunichiamo
con un’altra persona. Basta tirare fuori lo smartphone e informarsi con l’assistente sugli orari del
prossimo treno per la meta desiderata, o il menù del ristorante vegetariano a noi più vicino. Cosı̀
come nella comunicazione tra persone, anche in questo caso è necessario che il dispositivo capisca le
domande poste e sia capace di rispondere in modo appropriato. Diventa necessario, quindi, che il
dispositivo disponga di una serie di presupposizioni sul mondo simili alle nostre, che gli permettano,
se non di “ragionare”, di interagire appropriatamente con gli umani.
Dagli anni ‘90 del secolo scorso è cominciata a diventare sempre più chiara ed urgente in ambito
informatico la necessità di sviluppare un certo tipo di modelli (tipicamente formali o addirittura
computazionali), chiamati ontologie, capaci di rendere esplicite le presupposizioni sulla realtà condivise da comunità di agenti. Ogni giorno migliaia di persone non soltanto hanno l’esigenza di
scambiare e condividere informazioni attraverso l’utilizzo di strumenti informatici di vario tipo –
basi di dati, sistemi di geolocalizzazione, sistemi medicali – ma producono enormi quantità di dati.
Non è un caso che alcuni esperti abbiano ribattezzato il nostro tempo come Information Era, l’era
in cui la quantità di informazioni giornalmente prodotte è talmente grande che diventa necessario
disporre di metodologie rigorose, oltre che di tecnologie efficaci, per la loro condivisione, accessibilità e mantenimento. In particolare, è necessario non solo che i dati siano prodotti, archiviati e
condivisi attraverso macchine e sistemi particolarmente efficienti, ma soprattutto che il contenuto
dei dati – quello che i dati significano – sia chiaro ed esplicito, sia per gli umani, sia per i sistemi
che li processano.
Le ontologie, nel senso di modelli computazionali definiti in linguaggi logici, facilitano i processi
di ragionamento automatico e la comunicazione tra diverse comunità; come strutture o basi concettuali per la rappresentazione della conoscenza, rendono esplicite le presupposizioni sul mondo di
chi produce e/o comunica dati, in modo tale che tali conoscenze possano essere facilmente comprese
e condivise. Alcuni problemi degli ontologi sono molto simili (se non identici) a quelli che i filosofi
si sono posti durante il corso dei secoli, dato che sviluppare un’ontologia (in senso informatico) significa disporre di un sistema di categorie attraverso le quali rendere esplicite le assunzioni esistenziali
sul dominio investigato. In questo senso, un’ontologia computazionale, cosı̀ come alcune ontologie
filosofiche, è un inventario delle entità che esistono per una certa comunità. Se vogliamo, il compito
dell’ontologo è sempre lo stesso, solo che nel caso dell’informatica bisogna talvolta rinunciare alle
posizioni puriste assunte da alcuni filosofi e tenere a mente i requisiti applicativi del proprio lavoro.
Fare ontologia applicata non significa per i filosofi andare a mettere il naso in questioni che non li
riguardano, né tanto meno “fare le pulci” al lavoro già complesso degli informatici. Piuttosto, la
filosofia mette a disposizione della comunità scientifica un patrimonio concettuale ricco di duemila
anni di investigazione ontologica, un patrimonio rigoroso cosı̀ come solo la filosofia sa essere e che
si dimostra utile a chi si occupa di ontologia applicata.
Riferimenti bibliografici:
Nicola Guarino e altri, “What is an ontology?” in Handbook on Ontologies, pp.1-17, 2009
Barry Smith, “Basic concepts of formal ontology”, in Proceedings of FOIS 1998, pp.19-28, 1998
Achille Varzi, “Ontologia: dove comincia e dove finisce”, Sistemi intelligenti, 15(3), pp. 493-506, 2003
2