Il termine ontologia rimanda la mia memoria agli studi liceali di filosofia, quando il pensiero di Parmenide e Platone apriva una porta sul mondo degli antichi greci e sulle radici della nostra civiltà e della nostra concezione del mondo.

Ontologia deriva dal greco e significa letteralmente “discorso sull’essere”, quindi un discorso su ciò che esiste inteso “come insieme degli enti, limitatamente a ciò che sembra esistere in concreto o risultare anche solo pensabile […]”.

In realtà le ontologie di cui vogliamo parlare hanno degli obiettivi più limitati e nascono nell’ambito delle discipline dell’intelligenza artificiale che si occupano di modellare la conoscenza. Derivano quindi dalla prima fase dell’intelligenza artificiale che si proponeva di creare sistemi in grado di capire la realtà in termini logici e formali. 

In particolare alla base di tali sistemi vennero poste le cosiddette logiche descrittive – in inglese Description Logics (DLs) – utilizzate per rappresentare la conoscenza in un dominio di applicazione. Per tale dominio sono definiti i concetti rilevanti che vengono poi utilizzati per specificare le proprietà degli oggetti e degli individui appartenenti al dominio.

Per semplificare possiamo dire che per noi un’ontologia è una rappresentazione di un certo dominio di conoscenza, basata sull’individuazione e definizione formale dei concetti e delle entità che ne fanno parte, mediante la loro organizzazione in categorie, la definizione delle loro proprietà e relazioni. 

Va sottolineato che tale rappresentazione si fonda sulla logica formale e quindi diventa essa stessa uno strumento di conoscenza del dominio da noi modellato grazie alla possibilità di applicare il ragionamento automatico (reasoning).

Il ruolo delle ontologie ha trovato nuove applicazioni nell’ambito del Semantic Web, un’estensione del World Wide Web che ha come obiettivo quello di rendere il web interpretabile dalle macchine (machine-readable). 

A guidare questa rivoluzione, tuttora in atto, è il World Wide Web Consortium (W3C) che ha introdotto una serie di standard e tecnologie come Il Resource Description Framework (RDF) e il Web Ontology Language (OWL).

———-

1. https://it.wikipedia.org/wiki/Ontologia

Fig.1 Il Semantic Web Stack – che illustra come è articolato il framework di tecnologie

Il linguaggio OWL (oggi alle seconda versione) è lo standard per la definizione di ontologie utilizzabili per il Semantic Web. Questo processo di standardizzazione garantisce la riusabilità completa delle ontologie prodotte in diversi contesti e la loro piena fruibilità direttamente on-line se queste vengono pubblicate come risorse web.

Oltre alle ontologie (che rappresentano lo schema e il modello della conoscenza) interi dataset (che rappresentano i fatti di cui abbiamo conoscenza) possono essere pubblicati sul web, usando le tecnologie semantiche. Esistono già moltissimi dataset open data che sono pubblicati in tal modo e che nel loro complesso costituiscono il Linked Open Data.

Questo è uno dei grandi vantaggi nell’adottare le tecnologie semantiche perché è possibile per un’azienda fare largo uso di ontologie già esistenti per adattarle ai propri scopi.

Per capire in modo più concreto cosa sia un’ontologia e come possa essere utile per l’analisi dati possiamo partire da un concetto ad essa collegato: la tassonomia.

Possiamo pensare a una tassonomia come a un albero rovesciato dove i concetti sono tra loro collegati secondo una gerarchia nella quale i concetti più generali stanno in alto e quelli più specifici via via più in basso. 

———-

2. In particolare secondo i principi del Linked Data https://it.wikipedia.org/wiki/Linked_data

Ad esempio potremmo costruire una tassonomia sul cibo come quella in Figura 2. 

Figura 2. Una tassonomia sul cibo.

In questo esempio abbiamo un concetto di  “Alimento” che è padre di concetti più specifici (concetti figli) quali: alimenti vegetali, animali, minerali e alimenti naturali trasformati (cioè cibi o bevande che derivano dalla manipolazione e trasformazione delle materie prime alimentari).

Come si vede nel diagramma abbiamo concetti ancora più specifici come il pane o i latticini.

Possiamo dire quindi che il pane è un alimento vegetale, mentre un latticino è un alimento animale. Dalla struttura della tassonomia possiamo dedurre che entrambi sono altresì alimenti generici. Come si evince dal diagramma nella nostra tassonomia sia il pane che i latticini sono anche alimenti naturali trasformati.

La tassonomia che abbiamo descritto è poli-gerarchica perché un concetto può avere più padri.

Le tassonomie sono utilizzate per classificare e ritrovare le entità che fanno parte del nostro dominio di interesse (documenti, alimenti, persone, etc) e ci aiutano a classificarli.

Grazie alle tecnologie semantiche è possibile rappresentare le tassonomie in modo standard ad esempio utilizzando SKOS (Simple Knowledge Organization System), un modello dati creato usando RDF che serve proprio per modellare le tassonomie.

Senza entrare nei dettagli tecnici grazie a SKOS possiamo definire e mettere in relazione i nostri concetti ad esempio definendo Alimento e Alimento vegetale come due skos:concept possiamo dire che Alimento è un concetto più generale di Alimento vegetale (skos:broader) o che il concetto Pane è collegato non gerarchicamente con quello di Latticino (skos:related).

Grazie alle tassonomie è possibile coprire un’ampia gamma di scenari di modellazione del nostro dominio di conoscenza.

———-

3. Si veda https://www.w3.org/2004/02/skos/ e per un introduzione https://www.w3.org/TR/2009/NOTE-skos-primer-20090818/

Se dovessimo ad esempio elaborare dei dati legati all’alimentazione, la costruzione di una tassonomia degli alimenti, dei loro valori nutrizionali e delle loro proprietà ci consentirebbe di organizzare ed etichettare i nostri dati per evitare ambiguità di interpretazione, usare terminologie omogenee in tutte le nostre analisi e semplificare lo scambio di dati all’interno dell’azienda.

Ci sono però dei casi in cui l’utilizzo di una tassonomia non è sufficiente ed è necessario utilizzare le ontologie per modellare il dominio di interesse. Possiamo gestire la cosa in modo graduale infatti, grazie all’utilizzo delle tecnologie semantiche, è possibile partire da una tassonomia implementata utilizzando SKOS per farla evolvere in un’ontologia completa utilizzando OWL.

Ma quali sono i limiti di una tassonomia?

Anzitutto SKOS modella ogni cosa come un concetto. Da un lato questa semplificazione è utile perché ci consente di mettere facilmente in relazione ogni entità all’interno del nostro dominio di interesse, usando relazioni gerarchiche e non gerarchiche.

Dall’altro non possiamo identificare automaticamente relazioni illogiche stabilite tra le entità.

Ad esempio potremmo voler collegare una serie di alimenti ai negozi in cui sono venduti, ma come possiamo verificare se abbiamo erroneamente specificato che dal verduraio si vende la carne?

Le ontologie consentono invece di classificare le entità di interesse, definire i loro attributi e le loro relazioni in modo più specifico. In questo modo un’entità può essere definita come appartenente a una o più classi e possiamo definire delle restrizioni da applicare a certe classi.

Per esempio potremmo definire la classe “Ricette vegane” e specificare che ogni istanza di tale classe debba contenere solo ingredienti di tipo vegetale, oppure che le istanze di “Ricette a base di carne” non possano essere anche membri della classe “Ricette vegane”.

Questo potere espressivo si accompagna con la possibilità di utilizzare meccanismi automatici di inferenza che consentono ad un programma di ricavare nuova conoscenza a partire da quanto già noto basandosi su regole.

Un esempio: potremmo definire nella nostra ontologia che la relazione skos:broader ha una relazione inversa che chiamiamo skos:narrower. Quindi, nel caso di una relazione che afferma che il concetto di Alimento è più generale (skos:broader) del concetto di Alimento vegetale, un sistema automatico potrebbe inferire la relazione opposta: Alimento vegetale è un concetto più specifico (skos:narrower) di Alimento.

Grazie alle ontologie è dunque possibile modellare il nostro dominio di interesse in modo preciso e potente. Questo ci consente di aggiungere uno strato semantico ai nostri dati e di introdurre nuovi strumenti e tecniche di analisi.

Le piene potenzialità delle ontologie si ottengono quando anche i dati e i metadati sono strutturati in modo ottimale applicando le tecnologie semantiche per realizzare un Knowledge Graph, come vedremo in un successivo articolo.