• Non ci sono risultati.

Cosa significa definire la semantica dei termini di un ontologia?

Nel documento La Scienza dei Dati (pagine 194-198)

RDF: URIfied Graphs and Triples

5.4 Cosa significa definire la semantica dei termini di un ontologia?

La risposta alla prima domanda può essere data seguendo due approcci. Il primo approccio è quello ispirato alla teoria dei modelli e, in generale, alla tradizione della logica matematica. Cercheremo qui di dare solo qualche spunto utilizzando alcuni assiomi. Prendiamo le classi dbo:Musical_Artist e dbo:Artist e l’assioma che dice che la prima è sottoclasse della seconda. Ora, chiediamoci, come interpretiamo dbo:Musical_Artist? Intuitivamente lo interpretiamo come un insieme di individui in un dominio predefinito. A noi viene spontaneo, sulla base della conoscenza della lingua inglese, interpretarlo come l’insieme di tutti gli artisti musicali. Eppure, se non conosciamo la lingua, non abbiamo alcuno strumento per determinare che il simbolo dbo:Musical_Artist abbia proprio questa interpretazione. In altri termini, una macchina non avrà alcun modo di interpretare in questo modo il simbolo dbo:Musical_Artist e non quello, ad esempio, dbo:Artist.

Se consideriamo un simbolo in isolamento, è possibile attribuirgli significato mediante infinite interpretazioni che assegnano, al simbolo, un insieme di oggetti ciascuna. Allora possiamo fissare il significato del predicato di sottoclasse in maniera tale che l’espressione A è sottoclasse di B rappresenti un vincolo sulle possibili interpretazioni di A e di B. Tale vincolo stabilisce che tutti gli elementi che appartengono alla prima classe appartengono anche alla seconda, ovvero, che quale che sia l’insieme con cui interpretiamo A e quale che sia l’insieme con cui interpretiamo B, il primo insieme deve essere sottoinsieme del secondo. L’assioma <dbo:Musical_Artist, rdfs:subClassOf, dbo:Artist>, nel momento in cui lo prendiamo per vero, sta introducendo un vincolo sulle interpretazioni di dbo:Musical_Artist e di dbo:Artist, ovvero sta dicendo che quale che siano gli insiemi con cui interpretiamo dbo:Musical_Artist e di dbo:Artist, il primo insieme dovrà essere incluso nel secondo.

Secondo questo ragionamento, interpreteremo i simboli con cui identifichiamo specifiche entità (spesso chiamati costanti in logica) con degli elementi nell’insieme. Anche in questo caso, se prendiamo il simbolo dbr:Elton_John, possiamo interpretarlo con un infinito numero di elementi possibili presi da insiemi arbitrari. Però, nel momento in cui assumiamo per vero <dbr:Elton_John, rdf:type, dbr:Musical_Artist> stiamo introducendo un vincolo su tutte le possibili interpretazioni di

195

dbr:Elton_John e di dbr:Musical_Artist: stiamo dicendo che quale che sia l’individuo con cui interpretiamo dbr:Elton_John e quale che sia l’insieme con cui interpretiamo dbr:Musical_Artist, assumiamo che esista un vincolo che ci dice che l’individuo con cui interpretiamo dbr:Elton_John deve essere un elemento dell’insieme con cui interpretiamo dbr:Musical_Artist.

Possiamo ripetere questo ragionamento con assiomi in cui stabiliamo una relazione tra due entità. Innanzitutto assumiamo di interpretare un predicato, ad esempio, dbo:artist, come una relazione, ovvero, un insieme di coppie. <dbr:Empty_Sky, dbo:artist, dbr:Elton_John> ci dice che, quali che siano gli individui con cui interpretiamo dbr:Empty_Sky e dbr:Elton_John, e quale che sia la relazione con cui interpretiamo dbo:artist, la relazione con cui interpretiamo dbo:artist deve contenere una coppia costituita dai due individui con cui interpretiamo dbr:Empty_Sky e di dbr:Elton_John. Allo stesso modo, l’assunzione <dbo:artist, rdfs:subPropertyOf, dbo:relatedArtist> implica il vincolo per cui, quale che sia la relazione con cui interpretiamo dbo:artist, questa deve essere sottoinsieme di quella con cui interpretiamo dbo:relatedArtist.

L’insieme di tutti questi vincoli ontologici, nel complesso, determina il significato dei termini che definiamo nell’ontologia. In realtà, un insieme di simboli e un insieme di assiomi possono essere interpretati sempre in una molteplicità (tipicamente infinita) di modi; i vincoli che abbiamo introdotto hanno però eliminato una grande quantità di interpretazioni possibili, tenendo come buone solo quelle che soddisfano tutti i vincoli.

Ovviamente, può capitare che un insieme di assiomi comporti vincoli che non possono essere soddisfatti, nel loro complesso, da nessuna interpretazione. In questo caso, diciamo che l’ontologia è incoerente [Hitzler&al.2009]. I vincoli introdotti dagli assiomi, quando sono soddisfacibili, limitano le interpretazioni possibili dell’insieme di simboli in maniera sufficiente da consentirci di dedurre nuova conoscenza. Facciamo anche qui un esempio banale con i seguenti due assiomi: <dbr:Elton_John, rdf:type, dbr:Musical_Artist>, <dbo:Musical_Artist, rdfs:subClassOf, dbo:Artist>. Quale che sia l’interpretazione di dbr:Elton_John, di dbr:Musical_Artist e di dbo:Artist, sulla base dell’interpretazione che abbiamo dato a rdf:type e a rdfs:subClassOf, possiamo inferire con certezza che l’individuo con cui interpretiamo dbr:Elton_John sarà elemento anche dell’insieme con cui interpretiamo dbo:Artist, ovvero, se assumiamo come veri i due assiomi, saremo in grado di inferire l’asserzione <dbr:Elton_John, rdf:type, dbr:Artist>. In altri termini, potremo associare a dbr:Elton tutte le superclassi della classe che gli abbiamo attribuito negli assiomi. La semantica che abbiamo definito per i termini noti del linguaggio RDFS ci aiuta quindi a dedurre nuova conoscenza.

Il secondo approccio per attribuire la semantica è basato in effetti sulla definizione di un insieme di regole che specificano quali sono le conseguenze che possiamo trarre da un insieme di assiomi specificati nell’ontologia [Hitzler&al.2009]. Per il linguaggio RDFS, possiamo definire 13 regole, le cui più salienti, sono riportate in Figura 3.

If then

<x, rdfs:subClassOf, y> <a, rdf:type, x>

196 <x, rdfs:subClassOf, y> <y, rdfs:subClassOf, z> <x, rdfs:subClassOf, z> <x, p, y> <p, rdfs:subPropertyOf, q> <x, q, y> <p, rdfs:subPropertyOf, q> <q, rdfs:subPropertyOf, r> <p, rdfs:subPropertyOf, q> <a, p, b> <p, rdfs:domain, x> <a, rdf:type, x> <a, p, b> <p, rdfs:range, x> <b, rdf:type, z>

Figura 3 - Principali regole in RDFS

Se abbiamo discusso la semantica di diversi predicati utilizzando la semantica basata sulla teoria dei modelli, possiamo usare queste regole per analizzare più in dettaglio le restrizioni di dominio e codominio, ovvero quelle definite mediante i predicati rdfs:domain, rdfs:range. Come possiamo vedere, questi predicati inducono dei vincoli tali da farci inferire la classe a cui appartengono soggetti e oggetti delle triple. In altri termini, sebbene queste siano restrizioni, le usiamo per inferire nuove informazioni. Ipotizziamo, per esempio di avere una tripla <dbr:Empty_Sky, dbo:artist, dbr:Elton_John>, avendo definito <dbo:artist, rdfs:range dbo:Musical_Artist>. Ipotizziamo ora di aggiungere <dbr:help!, dbo:artist, dbr:The_Beatles>. Possiamo inferire che dbr:The_Beatles appartiene alla classe dbo:Musical_Artist. Eppure, se navighiamo lungo la gerarchia delle classi specificata in

Figura 2 inferiremo anche che dbr:The_Beatles appartiene alla classe dbo:Person.

Quello che abbiamo fatto è avere ottenuto un’inferenza controintuitiva. Eppure non abbiamo ottenuto una contraddizione. Perché? Perché RDFS è un linguaggio molto semplice e non ha sufficienti primitive per consentirci di ottenere una contraddizione. Ci sono altri linguaggi come OWL 213 che estendono l’espressività di RDFS per permettere l’introduzione di vincoli più sofisticati [Hitzler&al.2009]. Ad esempio, OWL 2 introduce il predicato owl:disjointWith; se oltre agli assiomi precedenti, aggiungessimo <dbr:The_Beatles, rdf:type, dbo:Band>, allora inferiremmo che dbr:The_Beatles appartiene sia a dbo:Person sia a dbo:Band. Se infine nell’ontologia avessimo un assioma <dbo:Person, owl:disjointWith, dbo:Band>, ovvero un assioma che ci dice che le interpretazioni delle due classi non possono avere elementi in comune, otterremmo una vera e propria contraddizione. In OWL 2, infatti, possiamo avere ontologie contraddittorie e possiamo scoprire quando lo sono.

Possiamo ora caratterizzare l’approccio che abbiamo usato per definire la semantica dei dati, ovvero l’approccio deduttivo, impiegato nel Web semantico e a cui ci riferiamo quando parliamo di tecnologie semantiche. Tale approccio cerca di riprodurre alcune competenze cognitive proprie degli esseri umani, i quali sono in grado di trarre nuove conclusioni a partire da un insieme di premesse. Questo approccio è molto diverso dall’approccio tipico di molti sistemi di gestione dei dati in cui lo schema dei dati impone dei vincoli rigidi per assicurarsi che i dati rispettino lo schema [Batini&al.2014]. Quando definiamo un’ontologia, questa ontologia ci permette di dedurre nuove conoscenze mediante dei meccanismi

13 https://www.w3.org/TR/owl2-overview/

197

inferenziali, che possono essere riprodotti meccanicamente da sistemi per il ragionamento automatico. In alcuni casi, il risultato è la scoperta di una contraddizione; in molti altri casi possiamo inferire asserzioni che non erano presenti nell’insieme delle conoscenze di partenza, ovvero nell’insieme degli assiomi che caratterizzano l’ontologia.

Si tenga presente che a titolo esemplificativo abbiamo considerato assiomi estremamente semplici. Linguaggi di rappresentazione della conoscenza come OWL 2 permettono di definire quali predicati sono transitivi, quali sono da interpretarsi l’uno come l’inverso dell’altro, quali si comportano come funzioni, etc. Altri linguaggi trattano problemi ancora più complessi, ovvero come effettuare inferenza sulla base di informazioni mancanti, o come trattare in maniera nativa l’incertezza associata ad alcune affermazioni.

5.5 A cosa serve definire formalmente la semantica dei termini usati in un grafo di conoscenza?

Piuttosto che approfondire i precedenti temi, ci preme rispondere ora alla seconda domanda: cosa ci guadagniamo in termini di elaborazione delle informazioni? In cosa può essere utile l’approccio deduttivo?

Una prima risposta discende intuitivamente dal ragionamento precedente: possiamo estendere l’insieme di asserzioni o, secondo la prospettiva del grafo, l’insieme di archi che connettono i nodi. Ma ci sono diverse ragioni per cui questo risulta particolarmente utile.

Pensiamo a una semplice domanda sul grafo in Figura 3. Ipotizziamo di volere cercare, nel nostro grafo, tutte le persone che suonano il piano. In SPARQL possiamo chiedere che i risultati siano di una certa classe, in questo caso dbo:Person, e possiamo usare il predicato dbo:instrument come filtro. Se non facciamo inferenza, non troveremo tra le risposte dbr:Elton_John, il quale non ha come classe dbo:Person ma una sua sottoclasse.

Aggiungendo al grafo le inferenze discusse nei precedenti paragrafi, siamo invece in grado di inferire che dbr:Elton_John è anche di tipo dbo:Person. Ma perché ciò dovrebbe esserci utile? Perché è vero che la classe principale di cui predichiamo dbo:instrument è quella dei Musical_Artist, però questo predicato è usato anche con altre classi, come, ad esempio, dbo:Music_Genre, dbo:Band, dbo:Classical_Music_Artist, dbo:Guitarist. Questo perché l’attribuzione della classe in grafi di conoscenza complessi avviene sulla base dell’individuazione di una classe principale. Ci sono chitarristi che suonano il piano e persino generi musicali il cui strumento principale è il piano: ma a noi interessano solo le persone, ovvero tutti quegli individui che appartengono a una sottoclasse di dbo:Person. Usare l’inferenza ci permette perciò di essere molto flessibili nell’organizzazione dei dati, una caratteristica che diventa fondamentale quando si gestiscono un gran numero di entità appartenenti a domini diversi. Il risultato di quanto si è cercato di spiegare fin qui, è che le ontologie usate nel web semantico e in RDF hanno alcune differenze salienti rispetto all’uso degli schemi dei dati:

 Mentre nella maggior parte delle basi di dati, ad esempio quelle relazionali, si usa un approccio prescrittivo (i vincoli sono tutelati da regole che governano l’inserimento dei dati), l’approccio alla

198

definizione della semantica ispirato dalla logica è deduttivo: si estrapolano nuove conoscenze a partire dalla definizioni che costituiscono lo schema;

 L’uso delle ontologie permette un’organizzazione dei dati flessibile: l’ontologia non deve necessariamente pre-esistere ai dati (non è un caso se abbiamo potuto introdurre RDF prima di introdurre RDFS e OWL) e questi possono discostarsi dallo schema; ovviamente possono emergere contraddizioni e inconsistenze, che possono essere rilevate da un sistema per il ragionamento automatico.

Abbiamo cercato di approfondire la semantica legata all’uso di inferenze, in quando fondamentale tratto d’unione tra le nostre esperienze cognitive e le procedure di elaborazione delle informazioni dotate di utilità pratica. Abbiamo visto uno strumento per cercare di esplicitare la semantica dei simboli utilizzati attraverso assiomi che ci permettono di derivare nuove conoscenze. Oggi esiste una varietà di sistemi in grado di calcolare inferenze14 a partire da assiomi definiti usando RDFS, OWL e altri linguaggi ancora (ad esempio RDFS++15 e SWRL16).

Nel documento La Scienza dei Dati (pagine 194-198)