• Non ci sono risultati.

Grafi di conoscenza e semantica

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

RDF: URIfied Graphs and Triples

5.2 Grafi di conoscenza e semantica

Il vero motivo per cui RDF si pone come linguaggio di riferimento per la rappresentazione semantica dei dati è però un altro. Per scoprirlo dobbiamo considerare un secondo livello di rappresentazione, e, in particolare quel livello che ci consente di definire in qualche modo lo schema dei dati, e di utilizzare questo schema per supportare un tipo particolare di elaborazione. E’ probabile che il lettore abbia una sufficiente conoscenza della lingua inglese per avere intuito il significato della descrizione riportata in Figura 1, aiutato da un lato da nomi locali in linguaggio naturale (dbo:instrument, dbo:Musical_Artist, etc.), dall’altro dalla sue conoscenze di sfondo in campo musicale. E’ probabile, infatti, che il lettore sappia che Elton John è un cantante, Eletric Piano è uno strumento, e che, quindi abbia intuito che dbo:instrument si usi per specificare lo strumento suonato dai musicisti.

Conoscenza linguistica e musicale pregresse permetteranno anche al lettore di intuire probabilmente che album e singoli sono entrambi prodotti musicali e che quindi possono avere un autore. Dobbiamo tenere presente però che tutte queste conoscenze di sfondo che possono fare parte del bagaglio culturale di molte persone, sono certamente inaccessibili alle macchine, o, se vogliamo, ad applicazioni che debbano interpretare questi dati. Il modello interpretativo fornito da RDF, se considerato da solo, supporta le tipiche operazioni di gestione dei dati (interrogazione, inserimento, etc.) ma è insufficiente per specificare il significato di nodi quali dbo:Musical_Artist o di predicati quali dbo:instrument. L’utilizzo degli URI ci viene in aiuto, perché usando degli identificativi globali come gli URI, possiamo associare agli elementi del grafo un’interpretazione univoca, e recuperarla quando desiderato. Se non capisco il significato di dbo:artist (un nome di predicato ambiguo per un essere umano, potendo questo riferirsi alla relazione che collega musicisti ai loro prodotti musicali, o viceversa), l’URI mi dice che questo predicato è definito come un termine in uno spazio semantico che è dato dalla prima parte dell’URI, ovvero http://dbpedia.org/ontology/. Usando URI basati sul protocollo HTTP, mi aspetto di

11 Il lettore può sperimentare i risultati ottenuti con una simile funzione di similarità ad esempio sul sito: http://bionlp-www.utu.fi/wv_demo/

191

poter localizzare la descrizione di questo predicato all’indirizzo http://dbpedia.org/ontology/artist. Una soluzione pragmatica potrebbe essere quella di puntare a descrizioni che chi pubblica dati è in grado di interpretare e possa seguire nella pubblicazione dei dati. Possiamo quindi indicare un insieme di termini consentiti, per esempio, tutti e soli i predicati che è lecito usare nelle descrizioni e dare di questi delle definizioni condivise in linguaggio naturale. Tuttavia, anche in questo caso, la semantica non sarebbe definita in maniera interpretabile da una macchina, ma solo da coloro che conoscono il linguaggio. Cosa significa specificare il significato dei termini utilizzati in un grafo RDF? Abbiamo visto, nella prima sezione, che si tratta di utilizzare modelli interpretativi che, ponendo dei vincoli sulle possibili interpretazioni, permettano diversi tipi di elaborazione. Ciò che rende RDF semantico in maniera radicalmente diversa da altri modelli per la rappresentazione dei dati, è il supporto a meccanismi inferenziali. La capacità di fare inferenze, ovvero di trarre conclusioni da un insieme di premesse note, è una delle caratteristiche fondamentali dell’intelligenza che permette agli esseri umani di interpretare ed elaborare informazioni [Frixione1994]. Modelli interpretativi in grado di supportare inferenze sono stati elaborati nell’ambito della logica matematica, la disciplina che tradizionalmente si occupa dello studio del ragionamento corretto. La logica fornisce le basi teoriche per la maggior parte di quei linguaggi, modelli e applicazioni che oggi permettono di rappresentate conoscenze e fare inferenze su di esse. In questo capitolo non ci addentreremo nella definizione formale di specifici linguaggi, ma cercheremo di fare capire, usando alcuni linguaggi proposti nel web semantico, come modelli interpretativi di tipo logico contribuiscono all’elaborazione semantica dei dati.

5.3 Grafi di conoscenza e ontologie

Nelle sezioni seguenti, utilizzeremo il termine generico di simbolo per indicare URI, blank node e letterali utilizzati in RDF. Per poter specificare ulteriormente la semantica dei simboli usati nelle descrizioni RDF abbiamo bisogno di due ingredienti:

 Fissare l’interpretazione di alcuni simboli di base, ad esempio per predicati come rdf:type, rdfs:subClassOf, etc..

 Introdurre un insieme più ricco di asserzioni, che chiameremo assiomi, che usino tra gli altri quei simboli per cui abbiamo fissato l’interpretazione, cosi da codificare quei vincoli che permettono di specializzare l’interpretazione. Questo insieme di assiomi viene comunemente definito ontologia. Partiamo da rdf:type (http://www.w3.org/1999/02/22-rdf-syntax-ns#type), un predicato speciale, il cui spazio semantico ci dice che è definito all’interno delle specifiche stesse di RDF. La definizione di questo predicato in RDF è la seguente:

rdf:type a rdf:Property ;

rdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ; rdfs:label "type" ;

rdfs:comment "The subject is an instance of a class." ; rdfs:range rdfs:Class ;

192

In questa definizione c’è un commento in linguaggio naturale che dice "The subject is an instance of a class.", e un insieme di altre asserzioni che richiamano un altro spazio semantico: RDFS. RDFS12 è l’acronimo di RDF Schema, ed è un linguaggio che permette di definire schemi per dati in RDF.

Intuitivamente, la definizione ci dice che rdf:type è una rdf:Property e che il suo dominio, ovvero l’insieme di tutti i soggetti di triple che usano questo predicato, è costituito da generiche risorse (risorsa è il termine più generale usato in RDF per riferirsi a qualunque cosa possa avere un nome), e che il suo codominio (range, in Inglese), ovvero tutti gli oggetti di triple che usano questo predicato, è costituito da classi. Intuitivamente, stiamo dicendo che ogni volta che uso rdf:type sto specificando che l’oggetto della tripla è una classe e che il soggetto è un’istanza di questa classe.

Con RDFS abbiamo introdotto una fondamentale primitiva semantica, ovvero la distinzione tra simboli che denotano classi, ovvero insiemi di entità, e simboli che denotano istanze, ovvero entità individuali [Hitzler&al.2009]. Possiamo applicare questa distinzione ai letterali, dove le classi sono chiamate tipi di dato, in quanto denotano strutture per dati noti quali gli interi (xsd:integer), le stringhe (xsd:String), le date (xsd:DateTime) e così via. Per riferirsi genericamente a una classe o a un tipo di dato, possiamo usare anche il termine tipo. Con riferimento all’esempio in Figura 2, i nodi (simboli) dbo:Musical_Artist, dbo:Album e dbo:Single sono perciò nodi speciali, che individuano l’insieme degli artisti musicali, degli album e dei singoli (delle canzoni). E tuttavia, questa distinzione non aiuta ancora molto dal punto di vista della capacità che abbiamo di elaborare le informazioni in figura.

Di fatto, ciascuna asserzione è un assioma, ovvero una premessa che si ritiene essere vera. Tuttavia, gli assiomi rappresentati in Figura 2 ci permettono solo di rappresentare relazioni tra entità, descriverne alcune caratteristiche e definire la classe di cui le entità sono istanze. In altri termini, non abbiamo ancora aggiunto alcun assioma che ci permetta di interpretare meglio il significato di dbo:Musical_Artist, dbo:Album e dbo:Single e di definire dei rapporti generali tra tutte le entità che sono istanza di queste classi. Per farlo, possiamo estendere la rappresentazione in Figura 1, aggiungendo esplicitamente la distinzione tra istanze e classi.

Vediamo gli assiomi che abbiamo aggiunto. Abbiamo usato il predicato rdfs:subClassOf, definito nello spazio semantico RDFS. Questo predicato ci permette di dire che una classe è sottoclasse di un’altra classe. Ad esempio che dbo:Album e dbo:Single sono entrambi sottoclasse di dbo:Musical_Work. Abbiamo poi anche detto che dbo:Musical_Artist è sottoclasse di dbo:Artist, che, a sua volta, è sottoclasse di dbo:Person. Abbiamo, in pratica, introdotto una gerarchia tra le classi, con termini che ci permettono di riferirci a classi più generali, quali la classe dbo:Musical_Work per riferirsi sia ai brani (dbo:Single) sia agli album (dbo:Album).

12 https://www.w3.org/TR/rdf-schema/

193

Figura 2 - Estensione del grafo RDF con assiomi per specificare il significato delle classi

Ovviamente possiamo usare assiomi più sofisticati. Ad esempio, dato un predicato come dbo:artist, come possiamo sapere utilizzarlo nelle triple? Di quali soggetti possiamo predicare dbo:artist e che tipo di oggetti compariranno nelle triple? Si noti bene che una possibile risposta è: qualsiasi cosa. Ma se diamo questa risposta, che differenza c’è tra dbo:artist e dbo:instrument? Se possiamo usare qualsiasi tipo di entità come soggetto e oggetto delle triple in cui compare un predicato, allora non stiamo specificando niente della sua semantica, ovvero del suo significato. Abbiamo detto che il significato è il risultato di un’operazione di interpretazione; come possiamo specificare in cosa diverge l’interpretazione di dbo:artist e dbo:instrument? Una possibile risposta consiste nello specificare appunto le classi a cui appartengono i soggetti e gli oggetti delle triple che contendono il predicato, ovvero specificare dei vincoli sul dominio e sul codominio dei predicati. Per esempio, possiamo introdurre i seguenti assiomi:

 <dbo:artist, rdfs:domain, dbo:Album>, che dice che tutti i soggetti delle triple in cui compare il predicato dbo:artist, appartengono alla classe dbo:Album;

 <dbo:artist, rdfs:range, dbo:Musical_Artist>, che dice che tutti gli oggetti delle triple in cui compare il predicato dbo:artist, appartengono alla classe dbo:Album;

 <dbo:instrument, rdfs:domain, dbo:Musical_Artist >, che dice che tutti gli oggetti delle triple in cui compare il predicato dbo:instrument, appartengono alla classe dbo:Musical_Artist

Si noti che ora abbiamo introdotto una distinzione tra dbo:artist e dbo:instrument: entità di tipo dbo:Musical_Artist e dbo:Album ricopriranno rispettivamente il ruolo di oggetti e soggetti nelle triple in cui appare dbo:artist. Possiamo fare di più, e usare un secondo predicato simile a dbo:artist, che chiameremo dbo: musicalArtist. A differenza del primo, il secondo lo usiamo per associare i brani

O N T O L O G IE E T E C N O L O G IE S E M A N T IC H E

RDF: URIfied Graphs and Triples

dbo:musicalArtist dbo:album dbo:artist dbo:instrument rdfs:label rdfs:label <dbr:Electric_Piano, rdfs:label, “ <dbr:Electric_Piano, rdfs:label, “

<dbr:Elton_John, dbo:instrument, dbr:Electric Piano

<dbr:Empty_Sky, dbo:artist, dbr:Elton_John>

<dbr:Sails, dbo:musicalArtist, dbr:Elton_John>

<dbr:Sails, dbo:album, dbr:Empty_Sky>

<dbr:Elton_John, dbo:instrument, dbr:Electric_Piano

<dbr:Elton_John, rdf:type, dbr:Musical_Artist

<dbr:Sails, rdf:type, dbo:Single

<dbr:Empty_Sky, rdf:type, dbo:Album

<dbo:Musical_Artist, rdfs:subClassOf, dbo:Artist

<dbo:Artist, rdfs:subClassOf, dbo:Person

<dbo:Album, rdfs:subClassOf, dbo:Musical_Work

194

(dbo:Single) agli artisti musicali. Ma possiamo anche introdurre un predicato più generico di entrambi, ad esempio, il predicato dbo:relatedArtist. In questo modo avremmo introdotto una gerarchia tra i predicati.

Quello che stiamo facendo è costruire una semplice ontologia. Stiamo cioè specificando, attraverso degli assiomi, come usare i predicati (ad esempio dbo:artist) e le classi. Lo stiamo però facendo non attraverso linee guida, ma attraverso strumenti che ci consentono di elaborare i dati avendo fissato l’interpretazione di alcuni predicati (rdfs:subClassOf, rdfs:subPropertyOf, rdfs:domain, rdfs:range). Diciamo che nell’ontologia il significato è specificato in maniera formale e che è quindi elaborabile da una macchina. Cosa intendiamo esattamente con questa affermazione? Per spiegarlo, dobbiamo rispondere a due domande le cui risposte sono strettamente collegate:

1. Come funziona l’attribuzione di significato attraverso assiomi? 2. Cosa ci guadagniamo in termini di elaborazione delle informazioni?

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