Indica un intervallo di date:
  • Dal Al

MITI e REALTÀ: l’ontologia

Da circa un anno, sto osservando sul mercato americano un fenomeno piuttosto pericoloso e cioè la diffusione del mito dell'ontologia: visto che tutto quello che succede in USA arriva poi in Europa uno o due anni dopo, temo che la stessa cosa succederà presto anche in questo caso (fra l'altro, le cose negative, non so perché, ci mettono ancora meno tempo ad arrivare da noi :-).

Le ontologie sono un elemento importante per la comprensione del testo attraverso l'analisi semantica ma non sono certamente sufficienti (e, molte volte, nemmeno necessarie) a risolvere un problema legato al trattamento di conoscenza non strutturata: ciononostante, il mito che si sta diffondendo è proprio che, definita un'ontologia sufficientemente completa, non serva fare altro perché la "semantica" dovrebbe poi fare tutto (categorizzare, estrarre conoscenza e relazioni) in automatico!

Questa assunzione è destituita di ogni fondamento e, anche se capisco i motivi per cui si sta diffondendo (in fondo tutti siamo sempre alla ricerca di soluzioni veloci e automatiche), è molto importante spiegare il perché e cercare di comprendere la realtà oggettiva (che è ben diversa dall'utopia instillata nella mente dei non addetti ai lavori dai cattivi maestri del Semantic Web&C).

Un'ontologia è una rappresentazione strutturata e formale di una conoscenza relativa a un certo dominio, contesto o microuniverso (ad esempio, pensiamo a un'ontologia sui computer): cercando di semplificare al massimo anche a costo di essere imprecisi, in un'ontologia abbiamo
– classi di concetti (ad esempio, computer e produttori)
– sottoclassi (netbook, notebook, desktop, server, tablet)
– individui (Eee 120, Air, Vostro 500, Xps 170, Libretto W100)
– attributi associati a questi concetti
– relazioni che legano tra loro i concetti (ad esempio, ogni computer ha un unico produttore).

Anche se sembra il contrario, un'ontologia è sempre soggettiva perché non possono esistere regole che stabiliscano come deve essere fatta un'ontologia (al massimo, esistono delle pratiche sensate figlie dell'esperienza): è il contenuto che si vuole rappresentare a dettare l'impostazione di massima ma poi ci sono tanti modi di realizzarla.

All'interno di un progetto che ha l'obiettivo di categorizzare dei contenuti o di estrarre conoscenza (come tag, entità, concetti, relazioni, triple o simili), un'ontologia può essere molto utile perché, se ben realizzata, può catturare la conoscenza di dominio che è nella "testa" degli esperti e che è indispensabile per la messa a punto delle logiche personalizzate di analisi (rete semantica e regole) in modo da raggiungere i risultati auspicati. Ad esempio, nel caso dell'ipotetica ontologia sui computer di cui sopra, avere già le liste degli individui consente un'importazione automatica delle stesse nella rete semantica e l'esplicitazione delle relazioni caratteristiche velocizza la scrittura delle regole di estrazione. Un'ontologia ben fatta fa risparmiare tempo nella fase di implementazione e consente di ottenere risultati migliori, un'ontologia mal fatta fa perdere un sacco di tempo ed è meglio non avere nulla che una cattiva ontologia.

Anche una buona ontologia, perciò, non può che essere un utile aiuto nella fase iniziale del progetto ma non sostituisce il lavoro di messa a punto delle logiche di analisi né evita che il cliente debba indicare in modo preciso che conoscenza vuole estrarre dai documenti da analizzare: in qualche caso, è sufficiente rappresentare in altro modo la conoscenza contenuta nell'ontologia (anche automaticamente) senza fare altro, negli altri serve un lavoro aggiuntivo più o meno ampio (e soprattutto specifico per il progetto e non generico).

Chiarito questo, rimane da aggiungere che creare una valida ontologia (utilizzabile in progetti reali) non è per nulla semplice: occorrono esperienza, visione d'insieme, capacità di sintesi e di compromesso (senza queste ultime, può diventare un lavoro sostanzialmente infinito). Purtroppo, quasi tutte le ontologie che vediamo nel nostro lavoro e che sono state realizzate in autonomia non sono di buona qualità perché raffazzonate, sbilanciate, troppo teoriche o, al contrario, troppo specifiche: si vede ed è apprezzabile l'impegno messo nel cercare di realizzare qualcosa di utile e utilizzabile ma i risultati spesso sono tali da rendere preferibile ripartire da zero o non tenerne proprio conto. In qualche caso, inoltre, le ontologie sono ben fatte ma sostanzialmente inutili perché descrivono concetti e relazioni che non hanno nulla a che fare con il problema da risolvere: un bel lavoro per quanto riguarda la qualità ma uno spreco di risorse se si guarda l'utilità.

Riassumendo:
– un'ontologia ben realizzata è quasi sempre utile per lavorare in modo più efficace e veloce e con risultati finali migliori;
– un'ontologia mal realizzata è dannosa e non solo inutile: si spreca tempo prima nel farla e poi anche nel cercare di usarla (perciò, costi elevati e risultati peggiori);
– un'ontologia non è necessaria (dipende dal progetto specifico) e sicuramente non è mai sufficiente (tranne in progetti veramente banali. Ma se sono banali, allora si può fare tutto con molto meno lavoro di quello necessario a creare l'ontologia);
– creare una buona ontologia è difficile e ha un costo non trascurabile (diffidate da chi sostiene che in due giorni si fa tutto).

Spero che questo post aiuti a capire un po' meglio i pro e i contro di un'ontologia. C'è già un sacco di confusione e molta esagerazione nei confronti della tecnologia semantica: non si sente proprio il bisogno di ulteriore cattiva informazione. Visto che il tema è caldo, c'è sicuramente molto altro da dire di interessante sulle ontologie e cercherò di farlo nei prossimi post.