UNIVERSITÀ DEGLI STUDI DI PALERMO
Facoltà di Scienze MM. FF. NN.
Corso di Laurea in Informatica
Linked Open Data: un caso di studio sui dati del CISI
Tesi di laurea di
Relatore
Giovanni Panascì
Dott. Biagio Lenzitti
Matricola 0524459
Correlatore
Ing. Davide Taibi
Anno Accademico 2010/2011
Sommario
Indice figure ......................................................................................................... 4
Prefazione ............................................................................................................ 5
Capitolo I ............................................................................................................. 7
Il Web Semantico ............................................................................................. 7
Rappresentazione della conoscenza ............................................................... 10
RDF ................................................................................................................ 11
Sintassi per il linguaggio RDF ................................................................... 12
Il modello dei dati in RDF .......................................................................... 13
RDFS .............................................................................................................. 14
Ontologie ........................................................................................................ 15
OWL ............................................................................................................... 18
FOAF .......................................................................................................... 19
SIOC ........................................................................................................... 19
SKOS .......................................................................................................... 19
Capitolo II .......................................................................................................... 21
Linked Open Data .......................................................................................... 21
Accesso ai dati nel Linked Open Data........................................................... 24
Applicazioni nel Linked Open Data ............................................................. 29
I principi del Linked Open Data .................................................................... 30
Creare collegamenti tra i dati ......................................................................... 33
Linked Open Data in Italia............................................................................. 35
2
Capitolo III ........................................................................................................ 38
Il progetto DBpedia........................................................................................ 38
Estrazione dei dati da Wikipedia ................................................................... 40
Estrazione dump-based ............................................................................... 41
Estrazione live ............................................................................................ 41
Estrazione delle informazioni dagli infobox .............................................. 41
Creazione della base di conoscenza ............................................................... 42
Classificazione delle entità ......................................................................... 43
Descrizione delle entità .............................................................................. 44
Accesso alla base della conoscenza ............................................................... 45
Interconnessione dei contenuti ...................................................................... 46
Il ruolo di DBpedia nel Web of Data ............................................................. 47
Le tecnologie adottate nel progetto DBpedia ................................................ 48
Capitolo IV ........................................................................................................ 50
Il Linked Open Data nelle università ............................................................. 50
Il prototipo realizzato ..................................................................................... 52
Estrazione dei dati dal Database .................................................................... 55
Creazione della base di conoscenza ............................................................... 58
Interfaccia di accesso alla base di conoscenza .............................................. 63
Valutazione del prototipo ............................................................................... 64
Conclusioni ........................................................................................................ 67
Bibliografia ........................................................................................................ 69
3
Indice figure
Figura 1 : Architettura del Semantic Web .......................................................... 9
Figura 2 : Esempio di grafo RDF ...................................................................... 11
Figura 3 : Cloud del Linked Open Data ............................................................ 22
Figura 4 : Architettura di Sesame ..................................................................... 27
Figura 5: Architettura di D2R ........................................................................... 27
Figura 6 : Architettura di Triplify ..................................................................... 28
Figura 7 : Il processo di estrazione dei dati da Wikipedia ............................... 40
Figura 8: Tabella proprietà di DBpedia ............................................................ 43
Figura 9 : Architettura del prototipo realizzato ................................................ 54
Figura 10 : Struttura del database utilizzato ..................................................... 56
Figura 11 : Interfaccia di Sesame ...................................................................... 59
Figura 12: Statistica delle triple presenti nel triple store realizzato ................. 61
Figura 13 : Grafo dell'ontologia realizzato con Protegé ................................... 63
Figura 14 : Interfaccia di accesso alla base di conoscenza ............................... 64
4
Prefazione
Questo lavoro di tesi si pone come obiettivo il collegamento dei dati dei Corsi
di Laurea (CdL) del Consiglio Interclasse delle Scienze Informatiche (CISI)
della facoltà di Scienze MM. FF. NN. dell‟Università degli studi di Palermo al
Linked Open Data, una delle applicazioni più recenti e più promettenti delle
tecnologie del Semantic Web. Il Linked Open Data rende i dati disponibili sul
web in formati standard e accessibili fornendo una descrizione semantica in
accordo con gli obiettivi del Semantic Web.
Questo lavoro di tesi pone le sue fondamenta sullo studio degli elementi
chiave del Semantic Web, quali i formati ed i linguaggi utilizzati per fornire
una semantica ai dati. Percorrendo le tappe dell‟evoluzione del Semantic Web
e delle sue applicazioni, particolare attenzione è stata posta nei riguardi del
Linked Open Data e delle tecniche utilizzate per generare Linked Data, cioè
dati aperti e collegati fra loro. Gli studi effettuati hanno permesso di
sottolineare come di recente è sempre più diffusa, da parte delle università, la
tendenza a pubblicare i propri dati sul web seguendo le regole del Linked
Open Data. Prendendo in considerazione l‟esperienza di DBpedia, nodo
principale del Linked Open Data, che ha come obiettivo l‟inserimento nel
Linked Open Data dei dati presenti su Wikipedia, si è sviluppata
un‟applicazione che, basandosi sulle tecniche analizzate, avesse l‟obiettivo di
generare Linked Data a partire dai dati presenti sul Web relativi ai CdL del
CISI.
5
Il capitolo I di questo lavoro descrive il Semantic Web, definendone gli
elementi fondamentali su cui si basa la sua struttura e descrivendo i formati
utilizzati per rappresentare le entità e generare le ontologie. Nel capitolo II è
stato descritto il Linked Open Data, evoluzione più recente ed interessante del
Semantic Web, e il Web Of Data, cioè il web generato attraverso la creazione
di dati che siano aperti e collegati fra loro, analizzando le regole basilari per
creare Linked Data e sottolineando l‟importanza di avere a disposizione dati
aperti. Nel capitolo III è stato analizzato l‟esempio di DBpedia, fornendo una
descrizione dettagliata degli algoritmi che hanno permesso e permettono, in un
sistema in continua evoluzione, di convertire tutte le informazioni presenti in
Wikipedia in dati legati ad una ontologia e con una semantica associata. Nel
capitolo IV, infine, viene descritto il prototipo realizzato basato sulle
applicazioni e sulle tecnologie analizzate. Viene inoltre fornita una descrizione
dettagliata delle operazioni effettuate per rendere i dati presenti nei database
dei Corsi di Laurea del CISI, semanticamente collegati al Linked Open Data.
Possibili sviluppi futuri dell‟applicazione sono riportati nelle conclusioni.
6
Capitolo I
Il Web Semantico
Internet e il Web sono stati concepiti in modo tale che il loro contenuto fosse
comprensibile, semanticamente, cioè dal punto di vista del significato, per
l‟uomo e non per i computer. Se su un qualsiasi motore di ricerca sul web
viene ricercata la parola “albero”, si otterranno nei risultati collegamenti a
pagine relative a svariati argomenti quali l‟informatica, la botanica, la nautica,
e viene lasciato all‟utente il compito di riconoscere i collegamenti che gli sono
utili e scartare gli altri. Tutto questo è indice del fatto che i collegamenti sul
web fra i vari dati non si basano sulla semantica ma esclusivamente sulla
sintassi. Questo è l‟ostacolo che, nel suo concepimento, il Semantic Web si
pose di superare. In generale, i computer non possiedono un metodo per
processare la semantica dei dati presenti nelle pagine web. L‟idea del
Semantic Web è quella di un Web non separato da quello classico ma che sia
una sua estensione nella quale le informazioni abbiano un ben definito
significato, ed in cui le macchine possano “comprendere” i dati in esso
contenuti. Nel Web la potenza del link ipertestuale è di poter collegare tutto
con tutto e le informazioni sono di natura diversa ma per la maggior parte esse
non sono processabili automaticamente dalle macchine. Lo schema del
Semantic Web nasce quindi con l‟idea di creare link che descrivano il
significato del contenuto dei link stessi. Perché esso funzioni, i computer
7
devono avere accesso a collezioni di informazioni ed insiemi di regole che
possano condurre all‟elaborazione automatica dei dati, ma devono anche
essere definite le relazioni e i vincoli che intercorrono fra i dati stessi.
Parlò di Semantic Web per la prima volta Tim Berners-Lee che, insieme ai
ricercatori del W3C, nel 2001 definì la pila del Semantic Web, un‟architettura
che definisce il Semantic Web attraverso i seguenti livelli, dal basso verso
l‟alto [1]:
 URI (Uniform Resource Identifiers), che permettono di identificare i
concetti ed i termini fondamentali per la codifica delle informazioni,
collegando ogni concetto alla sua definizione, rinvenibile sul Web
attraverso gli URI stessi.
 XML (eXtensible Markup Language), un linguaggio di marcatura
che permette di creare dei propri tag per la strutturazione delle
informazioni.
 RDF (Resource Description Framework), insieme a RDF Schema,
permette di effettuare interscambio di dati sul Web. L‟informazione è
codificata in triple che consentono di descrivere le risorse e i tipi di
dato.

Livello Ontologico, dove si trovano le Ontologie, ovvero quei
documenti che definiscono formalmente la relazione fra i termini, le
Regole, e SPARQL, linguaggio di interrogazione che permette di
effettuare le richieste nell‟ambiente web.
8
 Livello Logico, al di sopra di quello ontologico, in cui vengono
utilizzate le asserzioni definite nei livelli sottostanti per derivare nuova
conoscenza.
 Trust e Proof, ultimi due livelli della pila, ancora in fase di studio da
parte del W3C.
Figura 1 : Architettura del Semantic Web
Parlando di URI e URL si fa spesso confusione. Durante gli anni 90 fu definita
una suddivisione fra gli URL, identificatori che specificavano la
localizzazione di una risorsa e gli URN, nomi delle risorse che erano
indipendenti dalla localizzazione delle risorse stesse. Secondo questa visione
definita “classica” dunque un URI era sia un URL che un URN. Nella visione
9
contemporanea questa differenza si è un po‟ persa e gli identificatori Web
sono in generale definiti come URI che definiscono dei sottospazi, cioè i
namespace. Secondo questa visione, dunque, gli URL sono un tipo di URI che
identifica una risorsa attraverso un meccanismo di accesso primario come, ad
esempio, la sua localizzazione [2]. „http‟ è dunque un URI e un URI http è un
URL. Gli URI abbracciano quindi un campo più ampio di applicazione e
possono riferirsi a risorse di diversi tipi che siano identificate in maniera
univoca [3].
Rappresentazione della conoscenza
Berners-Lee, inventore del Semantic Web, afferma che la rappresentazione
della conoscenza è un insieme di collezioni strutturate di informazioni e regole
di inferenza che possano permettere ai computer di effettuare dei ragionamenti
automatici. Con questa definizione ci si è voluto staccare dai tradizionali
sistemi di rappresentazione della conoscenza, centralizzati, che richiedevano
che ognuno condividesse esattamente le stesse definizioni di concetti comuni,
con conseguenti limiti alle possibili interrogazioni che potevano essere
effettuate. La sfida quindi, come già detto, era quella di sviluppare un
linguaggio che permettesse di esprimere insieme le regole e i dati. RDF è stato
tra i primi linguaggi sviluppati per il Semantic Web e utilizzato per questo
scopo.
10
RDF
Il linguaggio RDF, acronimo di Resource Description Framework, permette la
rappresentazione di dati e metadati sul Web. Così come avviene per le pagine
Web, RDF permette l‟identificazione univoca di ogni risorsa e prevede che ad
ogni risorsa possano essere collegati dei metadati che ne descrivano il
contenuto. Alla base del linguaggio c‟è la definizione di enunciato, ossia la
struttura base della descrizione di una risorsa, formato da un soggetto che
identifica la risorsa, sia essa una pagina Web o un insieme di pagine, un
predicato, che indica la proprietà o l‟attributo che si vuole descrivere e un
oggetto; questi elementi danno luogo ad una tripla [4]. La rappresentazione di
RDF può essere vista allora come un grafo etichettato in cui i nodi
rappresentano le risorse e gli archi orientati che li collegano le proprietà,
mentre i rettangoli indicano i valori assunti dalle risorse.
Figura 2 : Esempio di grafo RDF
11
Nel modello RDF la tripla viene identificata attraverso le Uniform Resource
Identifier (URI) e può essere espressa secondo differenti sintassi come, ad
esempio, la sintassi N3 o la sintassi XML.
Sintassi per il linguaggio RDF
I concetti utilizzati dal linguaggio RDF possono essere espressi mediante
diverse sintassi. La sintassi più comunemente utilizzata è la sintassi che fa uso
di XML per esprimere le triple soggetto, predicato e oggetto. Questo però non
è l‟unico modo per esprimere le relazioni RDF. Un‟altra sintassi molto diffusa
è la sintassi Notation 3 (N3) [5].
Un esempio di sintassi RDF/XML è
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">
<ex:editor>
<rdf:Description>
<ex:homePage>
<rdf:Description rdf:about="http://purl.org/net/dajobe/">
</rdf:Description>
</ex:homePage>
</rdf:Description>
</ex:editor>
</rdf:Description>
Un esempio di sintassi in Notation 3 (N3) è il seguente
12
<#giovanni> <#conosce> <#andrea>
e tale sintassi è nata per rendere le triple più comprensibili all‟essere umano.
Ogni membro è identificato da un URI:
<http://www.default.it/giovannipanasci>
Oppure
< http://www.default.it/giovannipanasci#giovanni>
Il modello dei dati in RDF
Il modello di base creato dall‟utilizzo di RDF è un insieme di dati che è
possibile esplorare andando da un link all‟altro in un grafo composto da nodi
tra di essi connessi. Ogni volta che si cerca un URI in un nodo del grafo RDF,
si otterranno informazioni sugli archi che entrano nel nodo e su quelli che
escono da esso. In altre parole restituisce ogni tripla RDF nella quale il
termine appaia come soggetto oppure come oggetto. Questo grafo viene detto
“browsable” se, per l‟URI di ogni nodo, otterremo informazioni che
descrivono il nodo, cioè che restituiscono tutte le istruzioni in cui il nodo è
soggetto oppure oggetto e descrivono tutti i blank nodes collegati al nodo con
un arco. I blank nodes sono nodi che nel grafo RDF rappresentano una risorsa
per la quale non è presente l‟URI e solitamente possono essere utilizzati solo
come soggetto o oggetto in una tripla, anche se nella sintassi N3 possono
fungere anche da predicato [6]. Quando un dato è dunque memorizzato in due
documenti, questo sta ad indicare che ogni istruzione RDF che lega due
13
elementi nei due file deve essere ripetuta in ognuno di essi. Questo però
genera un primo problema di possibile inconsistenza del dato, visto che esso
viene memorizzato in due locazioni differenti, ma un insieme di dati
totalmente navigabili con link in entrambe le direzioni deve essere
completamente consistente e questo può avvenire tuttavia quando essi sono
generati automaticamente. Un altro problema può essere quello di un numero
di archi eccessivamente elevato. Una soluzione può essere quella di contenere
link relativi a proprietà diverse in documenti diversi.
RDFS
RDF permette di rappresentare le risorse del web attraverso i suoi enunciati.
Per definire i tipi di risorse oppure per descrivere le relazioni tra le risorse
stesse si avrà la necessità di utilizzare dei linguaggi ontologici. Il primo passo
in questa direzione è stato fatto attraverso RDF Schema o RDFS,
un‟estensione di RDF che comprende meccanismi per la definizione delle
risorse e dei collegamenti fra loro. Il riferimento chiaro è quello ai linguaggi
Object-Oriented, ma in più si ha la possibilità di descrivere in maniera molto
dettagliata le proprietà che legano le risorse. Come nei linguaggi ObjectOriented, la tipizzazione si chiama classe ed è indicata dalla risorsa rdfs:Class
e le risorse che hanno come tipo una specifica classe si chiamano istanze della
classe. Possono inoltre essere descritte le relazioni fra le classi con
l‟ereditarietà, definita dalla proprietà rdfs:subClassOf che lega una classe ad
14
un‟altra che ne rappresenta un sottoinsieme. In RDF è possibile definire
predicati che possono essere utilizzati nelle triple per collegare le risorse tra
loro; tramite RDFS è possibile anche indicare che una determinata proprietà
possa, per esempio, assumere solo alcuni valori, utilizzando il dominio e il
codominio della proprietà RDF. Tramite l‟enunciato rdfs:domain, per
esempio, viene definito un dominio, mentre tramite rdfs:range di che tipo
devono essere i valori assunti da una determinata proprietà. Per descrivere in
maniera specifica le proprietà RDF, viene utilizzato il tipo rdf:Property, e si ha
la possibilità di utilizzare rdfs:subPropertyOf, per indicare l‟ereditarietà fra le
proprietà. Ci sono infine delle proprietà di RDFS che possono essere usate
nella definizione di vocabolari come rdfs:label che lega una risorsa alla sua
etichetta, oppure rdfs:seeAlso, per indicare una risorsa da consultare per avere
ulteriori informazioni, oppure ancora rdfs:isDefinedBy che lega la risorsa alla
fonte che la definisce [7].
Ontologie
L‟idea che sta alla base di RDF, come visto, è quella di strutturare i dati
presenti sul Web per automatizzare l‟accesso ad essi e l‟approccio seguito è
quello di costruire dei metadati. I metadati sono letteralmente “dati sui dati”.
Un esempio di possibile utilizzo di metadati è l‟organizzazione di un database
universitario, in cui la catalogazione prevede che ogni materia sia
rappresentata tramite coppie chiave-valore:
15
-
Materia: Linguaggi per il Web
-
Anno accademico: 2010-2011
-
Corso Di Laurea: Informatica
-
Facoltà: Scienze MM. FF. NN.
Questo approccio permette di velocizzare la ricerca. Agli albori del progetto
del Semantic Web si vedeva questa rappresentazione della conoscenza così
come poteva essere visto il link ipertestuale prima della nascita del web, cioè
una buona idea, che però per essere realizzata doveva essere calata in un
sistema globale. Il problema consisteva nel rendere i dati e le regole ad essi
associate “versatili”, cosicché il loro trasferimento da un sistema ad un altro
fosse possibile. Per permettere tutto ciò l‟idea era di sviluppare un linguaggio
che permettesse di esprimere insieme sia i dati che le regole, in modo da poter
combinare informazioni semanticamente affini presenti su due o più database
differenti. Il problema che sorgeva era però il fatto che dati uguali potevano
essere identificati in maniera diversa in due database differenti attraverso
connessioni logiche tra i dati stessi. La soluzione proposta fu quella di
utilizzare le ontologie, collezioni d‟informazioni, che definissero formalmente
le relazioni fra i vari termini ad esempio con l‟utilizzo di una tassonomia, cioè
una classificazione, ed un insieme di regole. L‟idea di utilizzare le ontologie
per migliorare il funzionamento dei motori di ricerca o addirittura per mettere
in relazione le informazioni su una pagina alle regole ad essa associate si
16
ridimensionò col passare degli anni e nel 2006 lo stesso Tim Berners-Lee
presentò
una
rivisitazione
del
suo
ambizioso
progetto.
L‟idea
dell‟interoperabilità fra i sistemi, basata sulle connessioni logiche fra i termini,
era rimasta largamente inutilizzata. L‟autore sosteneva che però ci fossero stati
dei passi in avanti che stavano a indicare un futuro successo, giustificando le
sue affermazioni con il crescente bisogno di dati e informazioni condivisi sul
web. In effetti, si erano già viste le prime applicazioni del Semantic Web in
ambito scientifico e medico, con la creazione di nuove ontologie, che erano
state raggruppate, facendo da precursori ad altre possibili applicazioni.
L‟autore tendeva a sottolineare però come la rivoluzione con cui i dati
venissero resi disponibili su larga scala non fosse ancora avvenuta [8]. La
sfida principale si concentrava quindi sullo sviluppo e la gestione delle
ontologie che permettessero al Semantic Web di svilupparsi. Creare le
ontologie non voleva dire quindi solamente definire i concetti, ma anche quali
di essi dovessero essere persistenti e quali meno, quali strutture potessero
durare per lunghi periodi e quali fossero più “volatili”, quindi capire quali
concetti avessero bisogno di revisioni nel tempo. Da questo veniva fuori uno
dei punti deboli delle ontologie, ovvero il costo, in termini di tempo, del loro
sviluppo e mantenimento. L‟autore sosteneva però che in alcune aree, come
quella scientifica, il tempo potesse essere facilmente recuperato e che in altre,
come quella commerciale, il vantaggio dato dall‟utilizzo di una ben strutturata
ontologia ripagasse abbondantemente gli sforzi compiuti per il suo sviluppo.
17
Nell‟ambito del web questi costi potevano essere addirittura suddivisi fra gli
utenti della comunità che creavano i dati, diminuendo al crescere degli utenti
stessi.
Per le ontologie è stato dunque sviluppato un linguaggio che ne permettesse la
creazione.
OWL
Ontology Web Language (OWL) è il linguaggio per la definizione e
realizzazione di ontologie fruibili su Web. E‟ il risultato di un connubio tra
necessità di maggiore espressività rispetto a RDFS e trattabilità. OWL
permette di caratterizzare le proprietà in maniera più ricca.
Esistono tre versioni di OWL:
 OWL Lite: permette di esprimere gerarchie di concetti in maniera
semplice.
 OWL DL: letteralmente Description Logics, studia una particolare
porzione della logica decisionale di base.
 OWL Full: utilizza la logica del primo ordine espandendola con altri
predicati, comportando però una maggiore complessità di utilizzo data
la sua indecidibilità.
Nei paragrafi seguenti vengono descritte alcune delle ontologie più diffuse.
18
FOAF
L‟ontologia Friend of a Friend (FOAF) nasce nel 2000 da Libby Miller e Dan
Brickely, per rappresentare relazioni sociali. Contiene i concetti di base per
descrivere una persona e i suoi legami di parentela, di amicizia, lavorativi e
così via. L‟utente può registrarsi sull‟ontologia inserendo il proprio file FOAF
in formato RDF in cui specifica tutti i propri dati, creando link verso altri file
FOAF con la proprietà foaf:knows. La crescita del numero di profili FOAF è
tale che si stimano sul Web svariati milioni di file [9].
SIOC
Semantically-Interlinked Online Communities (SIOC), nasce dal desiderio di
descrivere risorse come blog, comunità, gruppi sul Web, e in generale dalle
applicazioni di social networking. E‟ legato a FOAF nella descrizione delle
relazioni fra persone. Il suo uso si sta diffondendo grazie anche all‟utilizzo di
tecnologie di analisi delle reti sociali che permettono l‟estrazione delle
informazioni dalle pagine Web traducendole in RDF proprio tramite
l‟ontologia SIOC.
SKOS
Simple Knowledge Organization System (SKOS) è una famiglia di linguaggi
che permette di descrivere semplici strutture di conoscenza sul Web come
glossari, classificazioni, tassonomie e qualsiasi altro tipo di dati strutturati.
SKOS è utilizzato per definire vocabolari comuni di metadati da condividere,
19
utilizzando però semplici schemi concettuali. La parte centrale di SKOS
(SKOS Core Vocabulary) è stata progettata per essere facilmente estendibile
ed il suo scopo principale è quello di connettere archivi come i thesauri con
strutture nuove, pensate quindi per il Web, come le open-directory.
I fattori che avevano quindi portato al successo del Web, ovvero quelli sociali,
potevano essere importanti anche per il successo della sua evoluzione
semantica e diventarono quindi la strada da seguire. Le recenti evoluzioni del
web l‟hanno portato da uno spazio globale di documenti ad uno spazio in cui
ai documenti sono collegati anche i dati. Questo aspetto verrà approfondito nel
prossimo capitolo attraverso la descrizione del Linked Open Data.
20
Capitolo II
Linked Open Data
Il Linked Data è la creazione di link tra dati che possono provenire da
differenti database distanti geograficamente o semplicemente da sistemi
eterogenei all‟interno di una stessa organizzazione, e riguarda dati
comprensibili alle macchine il cui significato è esplicitamente definito. Tim
Berners-Lee, intervenendo alla conferenza Ted del Febbraio 2009, descrisse
l‟idea che stava dietro al Linked Open Data in questo modo <<Voglio pensare
a un mondo in cui tutti abbiano caricato dati sul web e praticamente
qualunque cosa possiate Immaginare sia sul web. E chiamarlo Linked
Data>>.
L‟impiego di URI HTTP per identificare le risorse, del protocollo HTTP come
meccanismo di ricerca e di RDF come modello di rappresentazione delle
risorse, permette di generare direttamente la struttura generale del Web of
Data, che può quindi essere visto come uno strato aggiuntivo e che possiede
proprietà quali la possibilità di contenere ogni tipo di dato.
Il progetto del Linked Open Data si basa su una community fondata nel 2007 e
supportata dal W3C, ed il suo scopo è quello di realizzare il Web Of Data
identificando dati esistenti che sono disponibili sotto licenze di tipo open,
convertendoli in RDF in accordo con i principi del Linked Data e
pubblicandoli sul Web [10].
21
Figura 3 : Cloud del Linked Open Data
22
I primi partecipanti al progetto furono ricercatori e sviluppatori di laboratori di
ricerca universitari e piccole compagnie. Oggi il progetto è cresciuto
considerevolmente, avendo coinvolto grandi organizzazioni come la BBC,
Thomson Reuters e la Library of Congress. Questa crescita è stata possibile
grazie alla natura “open” del progetto, in cui chiunque può partecipare
semplicemente pubblicando una serie di dati in accordo ai principi descritti. La
Figura 3 descrive la dimensione del Web of Data originatosi dal progetto del
Linked Open Data: in essa ogni nodo rappresenta un set distinto di dati
pubblicati. Ad esempio col colore verde vengono identificate le pubblicazioni,
col blu i dataset multimediali, col giallo quelli geografici, con l‟azzurro quelli
che si collocano a cavallo fra due o più categorie e così via. Tra i nodi
principali rivestono un‟importanza maggiore DBpedia, progetto che ha reso
disponibili sotto forma di open data le informazioni contenute in Wikipedia,
Linked GeoData che contiene dati geografici, Legislation data.gov.uk che
contiene dati governativi del regno unito, ma anche last.FM che contiene dati
musicali e Bioportal che contiene informazioni relative alle ontologie
realizzate nel campo biomedico. I nodi, com‟è evidenziato dalla Figura 3,
hanno dimensioni differenti tra loro in base al numero di triple che contengono
e sono collegati da frecce più o meno evidenziate in base al numero di link ad
altri nodi. Si va dai nodi molto piccoli con meno di 10,000 triple, ai nodi medi
contenenti tra le 500,000 e un milione di triple, fino ai nodi grandi contenenti
tra 10 milioni ed un miliardo di triple ed i nodi molto grandi con più di un
23
miliardo di triple. Per quanto riguarda le frecce, esse indicano l‟esistenza di
almeno 50 link tra i due dataset collegati. Perché un dataset possa essere
pubblicato in questa “nuvola”, è necessario innanzitutto che rispetti i principi
del Linked Data, che vedremo nel dettaglio più avanti in questo capitolo, e che
contenga almeno 1,000 triple RDF esclusi i file FOAF, e sia collegato con
almeno 50 link ad altri dataset già presenti nello schema permettendo
l‟accesso ai dati, ad esempio, tramite Endpoint SPARQL [11].
Accesso ai dati nel Linked Open Data
Nel Linked Open Data le informazioni sono contenute all‟interno di silos di
dati [12]. L‟interrogazione e le ricerche sui cosiddetti Triple Store, cioè i silos
in cui sono memorizzate le triple, è resa possibile tramite alcuni linguaggi di
query. A oggi i più utilizzati sono SPARQL e SERQL. SPARQL (Simple
Protocol and RDF Query Language) è lo strumento proposto dal W3C, per
permettere il recupero dei dati espressi in RDF dal Web, che nel Gennaio del
2008 ha raggiunto lo status di Recommendation del W3C. SPARQL rispetta la
natura decentralizzata dei Linked Data, che possono essere memorizzati in
diverse sorgenti e descritti attraverso schemi differenti e quindi oltre ad essere
un linguaggio di query per RDF funge anche da protocollo di comunicazione
fra chi esegue la query e i cosiddetti Endpoint SPARQL, cioè dei punti di
accesso dove inviare le query. L‟Endpoint SPARQL separa le richieste
provenienti dall‟esterno dai dati interni dell‟applicazione ed è quindi possibile
24
costruire un software dotato d‟interfaccia SPARQL, ma che gestisca i dati con
la tecnologia più adatta alle esigenze [13]. Il linguaggio SPARQL ha una
sintassi pressoché simile a quella di SQL. Se per esempio si ha la seguente
tripla
<http://example.org/book/book1>
<http://purl.org/dc/elements/1.1/title>
"SPARQL Tutorial"
e si vuole ottenere il titolo del libro identificato da book1, la sintassi della
query si compone di due parti, la prima caratterizzata dalla clausola SELECT
che identifica le variabili che dovranno apparire nel risultato e la seconda dalla
clausola WHERE che permetterà di effettuare il match. La query dunque sarà
SELECT ?title WHERE
{ <http://example.org/book/book1>
<http://puri.org/dc/elements/1.1/title>
?title. }
col seguente risultato
Title
"SPARQL Tutorial"
25
SeRQL (Sesame RDF Query Language) è invece un linguaggio basato su RDF
che combina caratteristiche di altri linguaggi di query quali RQL, RDQL, Ntriples.
Nel corso degli anni sono state sviluppate delle applicazioni in grado di
memorizzare triple RDF che supportassero i linguaggi appena descritti per
l‟estrazione della conoscenza dai dati. Un esempio di tale tipologia di
strumenti è Sesame. Sesame è un framework open-source utilizzato per
processare i dati RDF, cioè per effettuare parsing, storing e query sui dati, ed
offre una serie di strumenti per poter sfruttare appieno le potenzialità di RDF,
supportando SPARQL per effettuare le query e permettendo un accesso
trasparente alle triple tramite API. Sesame può utilizzare nativamente un
reasoner per RDFS integrato secondo l‟approccio del forward chaining: nuove
triple vengono inferite e inserite ogniqualvolta si inseriscano dei dati. Inoltre,
Sesame permette allo sviluppatore di controllare e di configurare le regole
d‟inferenza adottate. Inoltre, come mostrato in Figura 4, è presente uno strato,
SAIL API, che è delegato al supporto al ragionamento ed è indipendente dal
formato di database utilizzato permettendo di gestire e modificare gli elementi
del triple store. Sesame consente di memorizzare in modo nativo le triple RDF
e per questo sono stati sviluppati degli strumenti in grado di trasformare in
RDF le informazioni contenute in database relazionali.
26
Figura 4 : Architettura di Sesame
Strumenti come D2R e Triplify effettuano la traduzione in triple RDF delle
informazioni contenute in un database relazionale.
Figura 5: Architettura di D2R
D2R Server è uno strumento che permette la pubblicazione di un database
relazionale sullo spazio globale del Linked Data tramite una mappatura con
D2RQ, cioè un linguaggio dichiarativo che permette di descrivere le relazioni
27
fra un database relazionale e vocabolari RDFS o ontologie OWL mappandoli
in un documento RDF rendendo possibili la navigazione e le ricerche sui dati
[14].
Triplify è un plugin per le applicazioni Web che espone le informazioni
contenute in un database relazionale in RDF.
Figura 6 : Architettura di Triplify
Esso ha il pregio di essere leggero (solo 500 righe di codice).
Sia l‟interfaccia D2R che quella Triplify creano descrizioni RDF di risorse
disponibili su database relazionali mentre una SPARQL permette alle
applicazioni di eseguire query sul silos di dati generati utilizzando il
linguaggio SPARQL. A queste di solito si affianca un‟interfaccia HTML più
“user friendly”. D2R, a differenza di Triplify, riscrive le richieste provenienti
dal Web in query SQL tramite una mappatura che permette di pubblicare RDF
da grandi database ed elimina il bisogno di replicare i dati in un triple store
RDF dedicato.
28
Applicazioni nel Linked Open Data
Le applicazioni realizzate per il Linked Open Data si dividono sostanzialmente
in tre categorie:
 Linked Data Browsers: consentono agli utenti di navigare tra le sorgenti
di dati tramite link espressi come triple RDF,
 Linked Data Search Engines: consentono di ricercare sul web i link
RDF e di poter eseguire delle query
 Domain-specific Applications: sono le vere e proprie applicazioni e che
costituiscono
la
categoria
sicuramente
più
interessante
delle
realizzazioni effettuate. Tra le più importanti c‟è sicuramente DBpedia.
DBpedia è un progetto basato su una community il cui obiettivo è quello di
estrarre le informazioni contenute in Wikipedia, rendendole disponibili sul
Web all‟indirizzo http://dbpedia.org. In DBpedia vi è la possibilità di eseguire
delle
query articolate
su
Wikipedia
e
di
collegare
il
contenuto
dell‟enciclopedia ad altri dataset presenti sul web. Il fine ultimo di questo
progetto è quello di permettere all‟incredibile mole di informazioni presenti in
Wikipedia di essere utilizzata in nuovi modi e di ispirare meccanismi di
navigazione, collegamento e miglioramento dell‟enciclopedia stessa. Allo
stato attuale il dataset di DBpedia consta di 1 miliardo di triple RDF delle
quali 385 milioni sono state estratte dalla versione inglese di Wikipedia, le
restanti dalle altre versioni e da dataset esterni [15]. Esiste anche una versione
mobile di DBpedia, un Linked Data Browser progettato per iPhone o altri
29
dispositivi mobili e che è orientato maggiormente ad un utilizzo in ambito
turistico. Esso si basa sulla posizione GPS corrente dell‟utente e permette
tramite DBpedia di ricercare i punti di interesse che si trovano nei pressi
dell‟utente [16]. Di fianco a DBpedia si trova Geonames, un database
geografico che contiene 10.000.000 di voci tra luoghi di interesse, edifici,
monumenti, localizzati su tutto il territorio mondiale. Ogni entità di Geonames
è identificata da un URI che permette l‟accesso ad una pagina “wiki” oppure
ad una descrizione in RDF dell‟entità sfruttando gli elementi presenti
nell‟ontologia di Geonames. Attraverso Wikipedia le informazioni contenute
in Geonames sono collegate a DBpedia e ad altri Linked Data in RDF.
La diffusione di dati pubblici, i cosiddetti “Open Data” sul Web e al contempo
la necessità di collegare dati tra loro, “Linked Data”, è coincisa con la più
recente e forse più importante evoluzione del Semantic Web e delle sue
applicazioni conducendo, allo stato attuale, allo sviluppo del Linked Open
Data in cui i dati sono espressi in formato RDF ed il cui risultato, il “Web of
Data”, è una rete di elementi nel mondo descritti dai dati sul Web.
I principi del Linked Open Data
Tim Berners-Lee nel 2006 ha descritto un insieme di regole per pubblicare i
dati sul Web in modo che essi diventino parte dello spazio globale del Linked
Open Data:
1. Utilizzare gli URI per identificare gli oggetti.
30
2. Utilizzare gli URI HTTP cosicché utenti e agenti software possano
ricercare questi oggetti.
3. Quando viene effettuata la ricerca di un URI, fornire informazioni utili
utilizzando gli standard (es: RDF, SPARQL).
4. Includere link ad altri URI cosicché gli utenti possano rinvenire altri
dati ad essi collegati.
Questi sono conosciuti come “I principi del Linked Data” [17]. Più che delle
regole vere e proprie Tim Berners-Lee le definisce come “aspettative di
comportamento”, quindi quasi dei “suggerimenti” da seguire perché i dati
pubblicati risultino corretti e consistenti, quindi utili alla realizzazione del
Web Of Data ed in maniera tale che essi non vengano riutilizzati in maniera
inaspettata. L‟utilizzo degli URI (prima regola) è insito nella natura stessa del
Semantic Web, dato che stanno alla base della pila. L‟uso di URI HTTP
(seconda regola) permette di poter referenziare l‟URI attraverso il protocollo
HTTP, permettendo così di recuperare le risorse o le descrizioni delle entità.
La pubblicazione di informazioni sul Web in funzione dell‟utilizzo di URI
(terza regola) è stata seguita in molte ontologie create ma, per qualche ragione,
nelle prime applicazioni del Linked Open Data, alcuni dei maggiori dataset
erano inaccessibili dal Web of Data. Non veniva, infatti, esaudita una richiesta
esplicita: fornire i dati in maniera più aperta possibile. Non erano pochi,
infatti, i progetti di ricerca compiuti che avessero prodotto ontologie e reso
disponibili dati che però erano sepolti in archivi zip piuttosto che accessibili
31
dal Web of Data. Occorre anche sottolineare la crescita di URI relativi a dati
non presenti nelle ontologie che possono essere ricercati: esempi sono i
Semantic Wikis, cioè dei wiki che memorizzano porzioni dei propri dati in
modo che possano essere rinvenuti tramite interrogazioni, per esempio in
SPARQL. Se invece i dati sono resi realmente aperti, è possibile, in generale,
cercare proprietà e classi nei dati ed ottenere informazioni da RDF, RDFS e
dalle ontologie OWL che includono relazioni fra i vari termini delle singole
ontologie. Il formato base è RDF/XML, ma è possibile anche utilizzare la
sintassi N3. Molti dataset forniscono un servizio di query SPARQL (gli
esempi mostrati nei capitoli III e IV seguono per l‟appunto questa linea guida).
In ultima istanza, generare link ad altri dati (quarta regola) è necessario per
connettere i dati che ci sono nel web, in maniera tale che chiunque possa
trovare qualsiasi tipo di dato e riutilizzare concetti già esplicitati in altri silos
di dati presenti. Così come nel web ipertestuale, anche nel Semantic Web è
considerata una cattiva pratica quella di non creare nessun link ad
informazioni esterne, dato che il valore dell‟informazione è funzione di ciò a
cui essa è collegata oltre che dell‟informazione stessa all‟interno della pagina.
Nel 2010 Berners-Lee ha inoltre sviluppato un sistema di rating dei dati
inseriti sul Web of Data, che consiste in una valutazione da 1 a 5 stelle delle
informazioni, in maniera tale indirizzare sviluppatori ma soprattutto
proprietari di dati sulla buona strada nella creazione di Linked Data.
Ecco in cosa consiste questo sistema:
32
★ I dati sono disponibili sul web, in qualsiasi formato, a patto che abbiano
una licenza “open”.
★★ I dati sono disponibili in strutture leggibili dalle macchine (Esempio:
formato Excel).
★★★Viene aggiunto un formato non proprietario (come CSV al posto di
Excel).
★★★★Viene introdotto l‟uso di standard open del W3C, come RDF e
SPARQL, per identificare le informazioni cosicché chiunque possa puntare ad
esse
★★★★★ Ai precedenti punti si aggiunge il collegamento dei dati fra loro
fornendo così un contesto per i dati stessi.
Creare collegamenti tra i dati
Il Linked Open Data pone le sue fondamenta sulla capacità di creare
collegamenti tra i dati. Esistono vari modi per collegare i dati tra loro, quindi
per creare dei link. Il più semplice è sicuramente quello di utilizzare in un solo
file un URI che punti ad un altro file. Si consideri, ad esempio, la materia
Fisica ed i due suoi moduli Fisica I e Fisica II. Quando si scrive un file RDF,
si possono utilizzare indirizzi del tipo <http://csunipa.it/materie>, ma è anche
possibile utilizzare identificatori locali all‟interno del file, quali ad esempio
#fisica, #fisicaI e #fisicaII.
In notazione N3 si può scrivere
33
<#fisica> csunipa:hasPart <#fisicaI>, <#fisicaII>
invece in RDF/XML si può scrivere
<rdf:Description about = “#fisica”>
<csunipa:hasPart rdf:Resource=”#fisicaI”>
<csunipa:hasPart rdf:Resource=”#fisicaII”>
</rdf:Description>
All‟interno del file ci sarà la <rdf:Description> delle entità #fisicaI e #fisicaII
a cui si fa riferimento. L‟architettura del World Wide Web permette l‟utilizzo
di un identificatore globale come “http://csunipa.it/materie#fisicaII” per
indicare il modulo Fisica II, in maniera tale da potersi riferire all‟identificatore
relativo alla materia ed avere più informazioni. Se per esempio le informazioni
relative
all‟entità
#fisicaII
fossero
contenute
nel
documento
<http://csunipa.it/moduli> in notazione RDF/XML si avrebbe
<rdf:Description about = “#fisica”>
<csunipa:hasPart rdf:Resource=”#fisicaI”>
<csunipa:hasPart rdf:Resource=”http://csunipa.it/moduli#fisicaII”>
</rdf:Description>
e si può, tramite l‟URI “http://csunipa.it/moduli#fisicaII”, effettuare la
cosiddetta
dereferenziazione
dell‟URI,
cioè
accedere
alla
pagina
http://csunipa.it/moduli e recuperare le informazioni sull‟oggetto #fisicaII.
Un'altra modalità di collegamento dei dati è attraverso l‟utilizzo della proprietà
rdfs:seeAlso. L‟esempio seguente ne mostra il suo utilizzo all‟interno
34
dell‟ontologia FOAF. Per fare riferimento a una persona in un file FOAF per
convenzione vengono assegnate due proprietà, una che punta al documento in
cui la persona è descritta e l‟altra che l‟identifica all‟interno del documento
stesso. Per esempio
<#i> foaf:knows [
foaf: mbox _sha1sum “2738167846123764823647”;
rdfs:seeAlso <http://example.com/foaf/joe> ].
indica che l‟utente conosce una persona di cui vi sono informazioni
all‟indirizzo <http://example.com/foaf/joe>. Questo sistema di linking
permette, tramite il metodo rdfs:seeAlso, di recuperare l‟indirizzo email
dell‟utente FOAF facendo riferimento alla pagina http://example.com/foaf/joe,
effettuando così la dereferenziazione dell‟URI [17]. Nell‟esempio compare
una versione crittografata dell‟indirizzo email con l‟algoritmo hash SHA-1,
utilizzato per questioni di privacy.
Linked Open Data in Italia
Anche in Italia sono stati portati avanti molti progetti relativi al Linked Open
Data
ed
una
community,
raggiungibile
all‟indirizzo
http://www.linkedopendata.it, li raccoglie tutti ed invita gli utenti a rendere
disponibili eventuali dataset a loro disposizione. Tra i vari progetti sono
segnalati di seguito i più interessanti:
35
 LOIUS, acronimo di Linking Italian Univesity Statistics Project
(http://sw.unime.it/loius/info.html), realizzato sfruttando i dati forniti
dall‟ufficio statistico del MIUR (Ministero dell‟Istruzione, Università e
Ricerca), che consiste nella pubblicazione in ogni anno accademico di
un‟analisi completa riguardante le attività universitarie. L‟obiettivo del
progetto è di dare significato ai dati statistici provenienti dalle
università italiane usando tecnologie semantiche, collegando fra loro i
dati con altri dataset statistici come Statistics data.gov.uk, e
pubblicando i risultati seguendo i principi del Linked Data.
 ISTAT Immigration (http://dati.istat.it), un dataset che contiene i dati
statistici
ufficiali
riguardanti
l‟immigrazione
in
Italia,
forniti
dall‟ISTAT. Sono raggruppati differenti dataset catturando differenti
fenomeni relativi al problema tra il 1999 e il 2008
 Scuole Italiane, progetto ancora in fase alfa all‟interno del quale si sta
creando un dataset contenenti indirizzi, corsi e svariate informazioni sui
56000 istituti di istruzione italiani. Il dataset è collegato a geonames e a
DBpedia.
 LinkedOpenCamera, progetto che prevede la pubblicazione di dati
riguardanti le spese della Camera dei Deputati (progetto LOC2) e del
Senato della Repubblica (progetto LOS) per l‟anno 2010, che rientrano
inoltre nel progetto OpenBilancio che vorrebbe rendere disponibili
36
anche sotto forma di triple RDF le informazioni relative agli ultimi 10
anni di bilanci degli oltre 8000 comuni italiani.
 CNR-IT, iniziativa del Consiglio Nazionale delle Ricerche che offre
accesso pubblico ai dati relativi alla propria organizzazione interna,
basandosi su RDF e sul paradigma del Linked Data
In tutti questi casi sono disponibili degli Endpoint SPARQL per l‟accesso ai
dati all‟interno dei dataset. In generale questi tipi di applicazioni afferenti al
paradigma del Linked Data sono raggiungibili sul web anteponendo al
dominio la parola chiave “data”, ad esempio data.cnr.it per quanto riguarda il
CNR.
Dopo aver introdotto il Linked Open Data, descritto le caratteristiche e visto
gli esempi più conosciuti, nel prossimo capitolo saranno descritte in generale
le tecnologie utilizzate per sviluppare applicazioni nel campo del Linked Open
Data e in particolare verrà descritto dettagliatamente il funzionamento di
DBpedia.
37
Capitolo III
Il progetto DBpedia
La nascita e la successiva diffusione del Linked Open Data sono state rese
possibili oltre che dai principi enunciati per produrre questa tipologia di dati,
anche da svariate tecnologie a supporto del progetto che hanno permesso a
tutti di poter sviluppare autonomamente le proprie applicazioni. Dalla
creazione delle ontologie, alla generazione delle triple RDF, fino ad arrivare
alla costruzione di veri e propri triple store, sono disponibili strumenti che
facilitano l‟apertura e la diffusione dei dati stessi. Rispetto a quando è stata
lanciata la sfida del Linked Open Data, quindi, sono stati fatti dei grandi passi
in avanti. Gli ideatori e sviluppatori delle prime applicazioni, infatti, dovendo
fare da precursori e non avendo a disposizione nessuna esperienza precedente,
dovettero sviluppare da sé i propri algoritmi che permettessero l‟estrazione dei
dati o la creazione delle ontologie. Chi si affaccia oggi al mondo del Linked
Open Data, invece, si trova davanti numerosi esempi di applicazioni
sviluppate con successo. In questo lavoro di tesi si è studiato come caso di
esempio la versione semantica dell‟enciclopedia Wikipedia: DBPedia.
Osservando l‟immagine della nuvola del Linked Open Data è evidente che il
fulcro, il punto di partenza del Web of Data è DBpedia. Ovviamente il
processo che ha condotto dall‟idea base di estrarre i dati da Wikipedia fino alla
realizzazione e alla pubblicazione di DBpedia è composto da una serie di
38
passaggi che vale la pena analizzare in quanto forniscono preziose indicazioni
per la realizzazione di un‟applicazione che possa entrare a far parte del mondo
del Linked Data. A partire da DBpedia sono stati generati talmente tanti
dataset da renderla uno dei punti di interconnessione centrali del web of data,
dato che la rete attorno a DBpedia contiene circa 4,7 miliardi di triple RDF,
coprendo svariati campi quali la medicina, la geografia, il cinema, la musica e
la pubblicazione scientifica. Il motivo per cui DBpedia, oltre ad essere il nodo
centrale, è anche uno dei nodi più grandi, dipende dalla quantità di
informazioni presenti in essa. Queste informazioni aumentano di giorno in
giorno, ma questo è possibile solo grazie a delle tecnologie, appositamente
sviluppate, che facilitano il procedimento di conversione di Wikipedia [18]. Il
processo di trasformazione realizzato consta fondamentalmente di tre
elementi:
 Estrazione dati da Wikipedia: è stato sviluppato un sistema per
l‟estrazione dei dati di Wikipedia che convertisse il suo contenuto in
una base di conoscenza multi-dominio.
 Creazione della base di conoscenza: sono state elaborate le
informazioni ottenute nella fase di estrazione, fornendo loro una
semantica e definendo un‟ontologia in cui sono mappate le
informazioni come, ad esempio, quelle estratte dai box informativi di
Wikipedia.
39
 Creazione di punti di accesso alla base di conoscenza: sono stati resi
disponibili diversi mezzi per poter accedere ai dati di DBpedia come ad
esempio i link RDF che puntano da DBpedia ad altri dataset.
Estrazione dei dati da Wikipedia
Il sistema di estrazione dei dati è formato da più componenti tra cui quelli che
si occupano di recuperare gli articoli (PageCollections), quelli che
memorizzano e serializzano le triple RDF (Destinations), quelli che
stabiliscono come marcare le triple (Extractors), solo per citarne alcuni.
Figura 7 : Il processo di estrazione dei dati da Wikipedia
Il nucleo centrale è costituito però dall‟Extraction Manager che gestisce il
processo di passaggio degli articoli di Wikipedia agli estrattori e li consegna a
destinazione. Gli estrattori sono 11 tra cui Labels che identifica ogni articolo
indicandone la risorsa con rdfs:label oppure Interlanguage links che estrae i
40
link che collegano fra loro articoli in lingue diverse che però trattano lo stesso
argomento per assegnare risorse diverse per ogni lingua. Il sistema è
configurato per eseguire due diversi tipi di estrazione, una chiamata dumpbased, l‟altra chiamata live.
Estrazione dump-based
La Wikimedia Foundation, che detiene la proprietà di Wikipedia, pubblica
ogni mese i dump SQL di tutte le versioni di Wikipedia ed in seguito la base
della conoscenza di DBpedia viene aggiornata tramite questi dump.
Estrazione live
La stessa Wikimedia Foundation ha fornito a DBpedia la possibilità di
accedere ai feed di Wikipedia che in tempo reale riportano tutti i cambiamenti
avvenuti. Un sistema di estrazione live quindi permette di aggiornare ed
estrarre nuove triple RDF non appena un articolo viene modificato. Una
procedura di UPDATE SPARQL permette di eliminare la voce già esistente
sostituendola con la nuova, che viene inserita in un triple store separato.
Estrazione delle informazioni dagli infobox
Gli elementi fondamentali per l‟estrazione dei dati da Wikipedia sono gli
infobox che sono presenti in alto a destra nella maggior parte della pagine.
Essi contengono le informazioni più importanti di un articolo sotto forma di
tabelle con coppie attributo-valore. Purtroppo non tutti gli editori di Wikipedia
41
seguono le raccomandazioni nella stesura delle pagine e spesso gli attributi
vengono espressi utilizzando diversi formati ed unità di misura. Per questo
motivo nel progetto di DBpedia si è deciso di seguire due approcci paralleli
per risolvere il problema: un‟estrazione generica ed una basata su una
mappatura delle informazioni degli infobox. L‟algoritmo di estrazione
generica processa gli infobox all‟interno di un articolo e crea delle triple da
questi creando un URI che ponga in corrispondenza l‟articolo di Wikipedia
con la corrispondente voce in DBpedia, concatenando il namespace
http://dbpedia.org/property al nome dell‟attributo dell‟infobox, e gli oggetti
vengono creati proprio a partire dal valore dell‟attributo. Il vantaggio consiste
nella copertura totale di tutti gli attributi degli infobox, lo svantaggio
nell‟impossibilità di processare attributi che sono fra loro simili, per la
mancanza di tipizzazioni esplicitamente definite all‟interno di Wikipedia.
Creazione della base di conoscenza
In seguito all‟estrazione delle informazioni è stato necessario rielaborarle per
fornire loro una semantica. È stata dunque generata una base di conoscenza
che ha permesso di memorizzare e classificare le differenti entità presenti in
Wikipedia. La base di conoscenza di DBpedia è composta da circa 1 miliardo
di triple RDF estratte dalle edizioni di Wikipedia in ben 35 lingue diverse. Per
creare gli identificatori di DBpedia vengono utilizzati i nomi inglesi degli
articoli, mentre le informazioni dalle versioni in altre lingue di Wikipedia
42
vengono mappate con questi identificatori tramite una valutazione
bidirezionale dei link fra le varie versioni dello stesso articolo. L‟URI delle
risorse viene generato secondo la sintassi http://dbpedia.org/resource/Name
dove Name è ottenuto dall‟URL dell‟articolo che ha la sintassi
http://en.wikipedia.org/wiki/Name. In questo modo gli URI di DBpedia
comprenderanno un ampio spettro di argomenti e saranno definiti col consenso
della comunità. In Figura 8 sono descritte alcune entità di esempio presenti in
DBpedia con le proprietà relative ad ognuna di esse ed il numero di istanze
presenti.
Classe Ontologia
Istanze
Esempi di Proprietà
Persona
198,065 nome, data di nascita, luogo di nascita
Artista
54,262
anni di attività, premi, occupazione
Attore
26,009
academy, goldenglobe, anni di attività
Artista Musicale
19,535
genere, strumento, etichetta, tipo di voce
Atleta
74,832
squadra attuale, ruolo, numero di maglia
Politico
12,874
predecessore, successore, partito
Luogo
274,507
latitudine, longitudine
Edificio
23,304
architetto, localizzazione, stile, apertura
Aeroporto
7,971
localizzazione, proprietario, IATA, lat, long
Ponte
1,402
incroci, campata principale, lunghezza
Grattacielo
2,028
costruttore, ingegnere, altezza, architetto
Luoghi abitati
181,847
fondazione, lingua, area, popolazione
Fiume
10,797
monte di origine, lunghezza, profondità max
Figura 8: Tabella proprietà di DBpedia
Classificazione delle entità
La classificazione avviene all‟interno di tre categorie per soddisfare differenti
richieste:
43
 Categorie di Wikipedia, che sfrutta una rappresentazione SKOS del
sistema delle categorie di Wikipedia contenuta in DBpedia. Il vantaggio
dell‟uso di questo sistema è che esso viene aggiornato dagli editori
stessi, lo svantaggio è che le categorie non formano una gearchia di
argomenti.
 YAGO, creato per mappare le categorie singole di Wikipedia che non
contengono sottocategorie. La sua caratteristica è quella di permettere
la codifica di molte informazioni in una sola classe.
 Ontologia
di
DBpedia,
realizzata
mappando
manualmente
le
informazioni degli infobox.
Descrizione delle entità
Ogni entità viene descritta da un insieme di proprietà generali e da un insieme
di proprietà specifiche degli infobox, se essi sono presenti. Le proprietà
generali includono un‟etichetta, due abstract dell‟articolo in inglese uno più
breve e uno più lungo, un link all‟articolo di Wikipedia corrispondente, le
coordinate geografiche qualora siano disponibili, i link alle corrispondenti
entità in DBpedia e, qualora esistessero, i due abstract per ognuna delle
versioni in altre lingue della pagina. Le proprietà specifiche degli infobox
invece risultanti dall‟estrazione generica sono definite, come detto, dal
namespace
http://dbpedia.org/property/,
44
mentre
quelle
risultanti
dall‟estrazione
con
mappatura
sono
definite
dal
namespace
http://dbpedia.org/ontology/.
Accesso alla base della conoscenza
Per soddisfare le richieste di diversi client l‟accesso alla base della conoscenza
di DBpedia avviene attraverso quattro differenti meccanismi:
 Linked Data, metodo per pubblicare gli RDF sul Web che si basa su
URI HTTP come identificatori e sul protocollo HTTP per recuperare le
descrizioni delle risorse. Gli identificatori di DBpedia sono configurati
per restituire descrizioni RDF quando ad accedervi sono degli agenti
semantici e versioni HTML quando invece vi accedono i browser
tradizionali.
 SPARQL Endpoint, che permette di interrogare la base di conoscenza
attraverso
delle
query
in
SPARQL
tramite
l‟endpoint
http://dbpedia.org/sparql. L‟Endpoint è stato pubblicato utilizzando
Virtuoso Universal Server.
 RDF Dumps, che si basa sulla stratificazione della base di conoscenza,
offrendo una serializzazione N-Triple di questi strati di cui è possibile
effettuare il download direttamente dal sito web di DBpedia. Questo in
aggiunta ai metodi visti prima fornisce anche i dataset degli infobox
estratti da 29 versioni di Wikipedia oltre a quella localizzata in inglese
45
e che possono essere utilizzati per costruire applicazioni che si basano
su una determinata localizzazione di Wikipedia.
 Lookup Index, che rende più semplice il rinvenimento degli URI di
DBpedia a cui collegarsi, sfruttando un servizio lookup che restituisce
gli URI in base ad una data etichetta effettuando una ricerca basata su
similarità fra stringhe e rilevanza della pagina ricercata.
Interconnessione dei contenuti
Per consentire agli utenti e agli agenti software di rinvenire le informazioni
contenute in DBpedia, la base della conoscenza è collegata a molti altri dataset
sul Web seguendo i principi del Linked Data. La base della conoscenza di
DBpedia attualmente contiene 4,9 milioni di link RDF in uscita, che puntano
ad informazioni complementari rispetto a quelle contenute in DBpedia. Negli
ultimi anni un sempre crescente numero di data publishers ha cominciato a
creare link RDF che puntano alle entità di DBpedia. Questi link in ingresso
insieme a quelli in uscita rendono DBpedia, come detto, uno degli snodi
centrali, se non il principale, di interconnessione del Web of Data. Questi link
RDF aprono la strada ad alcune possibilità:
 I fruitori delle informazioni possono navigare da fonti di dati verso altre
utilizzando Linked Data browsers. Inoltre è possibile seguire i dati
utilizzando dei crawler, cioè dei software automatizzati che sfruttano
motori di ricerca, effettuando ricerche e query sui dati.
46
 Poiché i link RDF collegano i dati riguardo un‟entità al cui interno vi
sono differenti sorgenti, essi possono essere utilizzati come base per
fondere i dati a partire da queste sorgenti per generare delle viste su più
sorgenti.
 Le entità di DBpedia vengono anche utilizzate per evidenziare il
contenuto di pagine Web come i blog o le news riguardo argomenti
comuni oppure riferimenti a posti o persone. Dato che il numero di siti
che utilizzano gli URI di DBpedia come riferimento cresce
costantemente, la base della conoscenza di DBpedia può essere
migliorata per rinvenire contenuto del Web classico che può essere
legato ad una o più entità specifiche.
Il ruolo di DBpedia nel Web of Data
Il Web of Data, come detto, conta circa 4,7 miliardi di triple RDF che possono
essere suddivise in blocchi: 2 miliardi circa sono le triple contenute in dataset
che partecipano al progetto W3C Linking Open Data, che punta a creare
dataset open source che possano interoperare sul Web of Data convertendoli in
triple RDF e collegandoli fra loro, e DBpedia si collega praticamente a tutti
questi dataset giocando il ruolo di fondamentale punto di snodo; un secondo
progetto è il Bio2RDF project che pubblica dataset bio-informatici sotto forma
di Linked Data e che conta circa 2,5 miliardi di triple; collegato a quest‟ultimo
c‟è il gruppo W3C Healt Care and Life Sciences che pubblica dati riguardo
47
farmaci e test clinici e che collega i dati pubblicati con i dataset di Bio2RDF e
di DBpedia [18]. Sfruttando questi collegamenti è possibile partire dalle
pubblicazioni di DBpedia riguardanti, ad esempio, una band musicale o un
cantante, e rinvenire una lista dei loro brani sul dataset musicale MusicBrainz,
oppure partire da una voce relativa ad una città e rinvenire tutte le
informazioni ad essa relative pubblicate su GeoNames.
Le tecnologie adottate nel progetto DBpedia
Le tecnologie appena descritte dimostrano come sia in atto una trasformazione
del modo di concepire i dati sul Web e la loro diffusione e di come la
trasformazione di dati già presenti sulla rete in dati fruibili da chiunque, sia
esso un utente umano o un agente software, possa aprire nuove strade fino a
qualche tempo fa impercorribili. Il progetto DBpedia come già evidenziato si
basa su tre step specifici in grado di rendere i dati realmente aperti e collegati.
Gli sviluppatori di DBpedia si sono avvalsi di tecnologie in parte già presenti
ed in parte sviluppate appositamente per il loro progetto.
Ripercorrendo quindi i passaggi è doveroso sottolineare come i dati di
Wikipedia siano stati estratti con un algoritmo elaborato specificatamente
dagli sviluppatori di DBpedia che permettesse di estrarre i dati dagli infobox
che hanno permesso di accelerare il lavoro di estrazione. L‟algoritmo, come
visto, dovendo far fronte a inevitabili incongruenze fra parole chiave differenti
utilizzate per indicare gli stessi concetti, segue un approccio basato su una
48
mappatura e fa ricorso ad un‟ontologia creata manualmente partendo dagli
infobox. Nel caso specifico di DBpedia la quantità ed al contempo
l‟eterogeneità di dati da estrarre e la presenza degli ostacoli appena visti ha
fatto propendere per una creazione manuale dell‟ontologia. Anche nel caso
della generazione della base della conoscenza in DBpedia si utilizzano delle
procedure appositamente costruite che tengono conto dei nomi delle pagine di
Wikipedia ed a partire da questi costruiscono le triple RDF. Leggermente
differente è l‟approccio utilizzato, infine, per generare il triple store e
permetterne l‟interrogazione, dato che, al fianco di alcuni algoritmi di ricerca
costruiti appositamente, si trova un server Virtuoso, triple store che fornisce
anche un Endpoint SPARQL per eseguire le query.
L‟esperienza di DBPedia si pone come esempio per la realizzazione di nuovi
progetti nel Linked Open Data. Anche il progetto realizzato in questo lavoro di
tesi, pur utilizzando tecnologie differenti, ha seguito la struttura già adottata
con successo in DBpedia. Le principali componenti infatti sono relative al
recupero dei dati, alla creazione dell‟ontologia ed alla possibilità di accedere ai
dati stessi dall‟esterno. Maggiori dettagli sull‟applicazione realizzata sono
forniti nel prossimo capitolo.
49
Capitolo IV
Il Linked Open Data nelle università
Gli istituti di ricerca e le università producono ogni anno un‟elevata quantità di
dati, tuttavia quando vengono effettuate ricerche su questi dati generalmente o
essi non vengono rinvenuti così come li si è ricercati oppure si è costretti a
spendere molto tempo per poter soddisfare la propria ricerca. Integrare dunque
la grande quantità di materiale prodotto dai vari istituti è fondamentale per la
condivisione dei dati e per le ricerche su di essi. Il primo scoglio da superare è
sicuramente il fatto che questi dati sono pubblicati utilizzando formati,
categorie e strutture differenti fra loro, rendendo il processo d‟integrazione un
arduo compito ma al contempo la sfida principale da sostenere per raggiungere
l‟obiettivo di aprirsi al mondo del Linked Data, permettendo di immettere
sulla rete materiale eterogeneo che venga poi collegato al resto delle
informazioni già presenti, cosicchè possa essere acceduto e riutilizzato
soprattutto grazie all‟utilizzo di RDF ed OWL. L‟utilizzo di tecnologie
Semantiche comporta i vantaggi di disaccoppiamento della conoscenza dai
sistemi implementati e di rappresentazione delle entità di un‟organizzazione o
di un‟università. L'importanza di questo tipo di lavoro è sottolineata
soprattutto dal fatto che in particolare molte università nel mondo stanno
aprendosi e contribuendo al Linked Data. Nell‟ambito universitario e in quello
della ricerca sono molti gli esempi di Linked Data che sono stati realizzati di
50
recente negli ultimi anni, e dai quali trae spunto questo lavoro di tesi.
L‟obiettivo di realizzare un‟applicazione basata su RDF, supportata da
un‟Ontologia e con la possibilità di effettuare ricerche tramite uno SPARQL
Endpoint relativo ai dati dei CdL del CISI parte da alcune precedenti
realizzazioni di successo. Davanti a tutte c'è l‟Open University che è quella
più attiva con il suo progetto denominato “Lucero” in relazione al quale ad
Ottobre 2011 sono presenti molti dataset relativi a pubblicazioni, podcast e
descrizioni dei corsi resi accessibili attraverso il portale http://data.open.ac.uk
ai quali si aggiungono alcune applicazioni sviluppate per mostrare i
significativi vantaggi dell‟esposizione pubblica dei dati nel contesto
universitario. Altri esempi di produzione di Linked Data giungono da molte
altre importanti università quali la University of Sheffield, in particolare dal
Dipartimento di Computer Science della stessa, che ha realizzato un servizio
che descrive i gruppi di ricerca, lo staff e le pubblicazioni, tutte collegate
semanticamente. Tra le altre troviamo anche la University of Southampton con
i suoi 26 dataset riguardanti le strutture universitarie, i video ed anche le rotte
del bus universitario, la Stanford University, la University of Manchester, la
University of Edinburgh e la University of Munster che recentemente ha
annunciato il progetto LODUM, con lo scopo di pubblicare le informazioni
sulle ricerche universitarie sotto forma di Linked Data, con annesse
informazioni su persone, progetti e pubblicazioni. Come già visto nel capitolo
II, anche nel campo della ricerca esistono esempi fortunati di applicazioni,
51
come ad esempio quella del CNR. Sia nel caso della Open University che in
quello del CNR sono disponibili (data la loro natura di Linked Open Data) le
ontologie in formato OWL. In tutti i casi è possibile comunque accedere ai
dati tramite uno SPARQL Endpoint in cui sono comunque effettuabili ricerche
tramite query SPARQL. Così come descritto sul portale del CNR,
http://data.cnr.it, l‟obiettivo è ovviamente quello di fornire l‟accesso pubblico
alle risorse seguendo tre concetti chiave: trasparenza, interoperabilità, dati
aperti [19].
L‟esempio che più si avvicina al prototipo che si è voluto realizzare in questo
lavoro di tesi è quello della Open University. Infatti, la Open University,
fornisce dataset ottenuti da dati pubblici dell‟università e applicazioni che
fanno uso di questi dati. I dataset contengono le pubblicazioni, i corsi ed il
materiale Audio/Video prodotto alla Open University, così come le persone
che lavorano in questa università. Tutti i dati sono ovviamente disponibili
attraverso i formati standard del W3C (RDF e SPARQL) ed in molti casi con
licenza “open”.
Il prototipo realizzato
Questo lavoro di tesi si pone quindi l‟obiettivo di inserire all‟interno del
mondo del Linked Data le informazioni relative ai Corsi di Laurea del CISI
della Facoltà di Scienze MM. FF. NN. dell‟Università degli studi di Palermo,
seguendo ciò che molte università ed enti di ricerca, come visto, hanno già
52
realizzato o stanno realizzando. L‟obiettivo è quindi di creare un silos di dati
in cui siano contenuti tutti i dati accademici relativi al dipartimento, alle
materie, ai docenti, alle aule. I dati in questione sono ovviamente già presenti e
disponibili pubblicamente sul Web, ma renderli tali anche in formato RDF
permetterebbe di fornire una semantica a questi dati e di collegarli ad altri
silos del Linked Open Data. La natura eterogena di questi dati, inevitabilmente
disconnessi fra loro per come essi sono attualmente presenti nei database dei
CdL, sottolinea l‟importanza di poter realizzare quanto proposto. Il vantaggio
rispetto a ciò di cui attualmente si dispone sarebbe quello di rendere collegati a
livello globale questi dati ad altri della stessa natura con cui però potrebbe
esserci una relazione e di permettere oltre che all‟utente umano anche ad
agenti software di potervi accedere facilmente. Sono chiare dunque tanto le
potenzialità quanto l‟attualità e la possibilità di futuri sviluppi di ciò che si è
voluto realizzare. A ribadire ulteriormente quest‟ultimo aspetto si consideri
che proprio durante l‟ultimo ISWC (International Semantic Web Conference),
svoltosi dal 23 al 27 Ottobre 2011 a Bonn, è stato presentato un articolo che ha
ampiamente sottolineato la necessità di integrare i dati provenienti da diverse
università utilizzando i principi e le tecnologie proprie del Linked Data [20].
Il prototipo realizzato si basa sugli stessi punti chiave seguiti nello sviluppo di
DBpedia. Si ritrovano, anche in questo caso, le tre fasi viste nel capitolo
precedente:
53
 Estrazione dati dal Database: sono state estratte le informazioni sulle
materie, i moduli e i docenti dei CdL tramite l‟utilizzo di Triplify che
ha permesso di generare un file RDF contente le informazioni presenti
nel database SQL.
 Creazione della base di conoscenza: è stato elaborato il file RDF
contenente le triple, costruendo un triple store tramite un server
Sesame. È stata inoltre definita un‟ontologia in cui sono mappate le
informazioni estratte dal database.
 Creazione di un’interfaccia di accesso alla base di conoscenza: è
stata creata un‟interfaccia REST al triple store contenente un Endpoint
SPARQL che permette di accedere ai dati presenti nel triple store.
Lo schema in Figura 9 descrive l‟approccio seguito per il progetto, che
riprende lo schema visto nella creazione di DBpedia.
Figura 9 : Architettura del prototipo realizzato
54
Estrazione dei dati dal Database
Come detto, la prima fase consiste nell‟estrazione dei dati dal database SQL. Il
database utilizzato contiene tre tabelle: utenti, modulo e materia. Nella tabella
utenti sono presenti informazioni sui docenti come il nome, cognome, ruolo,
numero di telefono, sito internet e ubicazione della stanza all‟interno del
dipartimento. Allo stato attuale la tabella contiene 46 utenti di cui 44 sono
docenti e tra questi 3 sono anche amministratori. Dei 44 docenti solo 25 sono
attivi. Nella tabella materia si trovano i nomi delle materie con codice materia,
cfu, numero di moduli ed un‟indicazione se il corso sia o meno attivo. Sono
presenti 70 corsi di cui solo 31 sono attivi. Dei corsi attivi 21 hanno un solo
modulo, mentre i restanti 10 hanno più moduli. Nella tabella modulo, infine, è
possibile rinvenire i nomi e i codici dei moduli che sono legati alle materie,
con il relativo sito. In questa tabella sono presenti 70 moduli, l‟id univoco
permette di associarli alle materie e la chiave ID_utenti permette invece di
associare ogni modulo al docente che lo insegna. In Figura 10 è presente uno
schema dettagliato del database utilizzato in cui sono definite la struttura delle
tabelle e le relazioni presenti.
Per estrarre i dati dal database dei CdL sono stati prima analizzati due
strumenti che permettono, partendo dal database SQL di poter generare le
triple da inserire nel triple store.
55
Figura 10 : Struttura del database utilizzato
I due strumenti in questione sono D2R e Triplify. Triplify permette di poter
già eseguire le operazioni richieste semplicemente estraendo lo script nella
cartella della web application e modificando successivamente il solo file di
configurazione in cui sono contenute le query da effettuare e questa sua
semplicità di utilizzo accompagnata dalla riusabilità delle configurazioni ha
avuto un ruolo chiave perché venisse scelto come strumento da utilizzare.
In ambiente Windows si è proceduto all‟installazione e alla configurazione del
Web Server Wamp, del database dei CdL tramite il gestore di database
MySQL phpMyAdmin e dell‟applicazione Triplify in versione 0.8 sul Web
Server. Triplify, come detto, per poter essere utilizzato ha richiesto la modifica
del file di configurazione in cui vanno indicate, oltre alla connessione al
56
database, le query da eseguire [21]. Le query hanno permesso dunque di
estrarre i dati desiderati dal database per poter generare il file RDF contenente
le triple N3. È stata effettuata un‟estrazione di tipo dump based, come già
visto nel caso di DBpedia. Nel precedente capitolo, infatti, è stato descritto
come i dump SQL delle varie versioni di Wikipedia vengano pubblicati dalla
Wikimedia Foundation e di come gli sviluppatori di DBpedia si servano di
questi dump. Allo stesso modo è stato eseguito un dump del database dei CdL
che è stato utilizzato per l‟estrazione dei dati. Ad esempio sono state
selezionate le colonne nome e cognome concatenate sotto l‟alias „foaf:name‟,
e la colonna mail, sia criptata che non, dalla tabella utenti. Con una JOIN SQL
queste informazioni sono state collegate alla tabella modulo selezionando con
l‟alias ‟csunipa:insegna‟, proprietà definita in fase di generazione delle triple,
la colonna relativa ad uno o più moduli insegnati dal docente selezionato. La
query utilizzata viene riportata nel seguente riquadro:
SELECT
d.id,
CONCAT(d.nome, ' ', d.cognome) as 'foaf:name',
d.email as 'foaf:mbox',
SHA(CONCAT('mailto:',d.email)) as 'foaf:mbox_sha1sum',
m.id as 'csunipa:insegna'
FROM
modulo m, utenti d
WHERE
docente>0
and m.ID_utenti=d.id
57
Nel file di configurazione sono state specificate le classi utilizzate, cioè
„csunipa:Materia‟,
„csunipa:Modulo‟
e
„csunipa:Docente‟,
che
fanno
riferimento alle tre tabelle del database; inoltre sono state definite le proprietà,
in questo caso „csunipa:insegna=>modulo‟, che definisce la proprietà
“insegna” che mette in relazione la classe Docente con la classe Modulo. Le
classi e le proprietà suddette sono state definite nell‟ontologia appositamente
progettata per l‟applicazione e descritta in dettaglio nel prossimo paragrafo.
Creazione della base di conoscenza
Dopo aver generato le triple è stato necessario un triple store che permettesse
di poter memorizzare i dati. Per prima cosa è stato installato e configurato
Tomcat in versione 7.0, piattaforma per l‟esecuzione di applicazioni web
basate su Java. Sono state valutate varie applicazioni per la gestione del triple
store tra le quali Virtuoso e Sesame e la scelta è caduta su quest‟ultimo per la
semplicità d‟utilizzo e l‟efficienza che lo caratterizzano. La versione utilizzata
è la 2.5.1. Sesame è correlato da un‟interfaccia grafica accessibile tramite
Tomcat che permette di configurare il database che Sesame utilizzerà per la
memorizzazione dei dati. Al momento della creazione del repository è
richiesto oltre ad un nome ed un identificativo anche il tipo di triple store che
si vuole creare. Sono presenti vari tipi di configurazioni:

“In Memory Store”, che costruisce un RDF store che memorizza i suoi
dati nella memoria principale.
58
 “Native Store”, che invece recupera i dati direttamente dal disco con il
vantaggio di non essere legato alla dimensione della memoria pur
essendo però più lenta.
 “RDBMS store”, RDF triple store che memorizza i dati in un database
relazionale e che attualmente supporta sia PostgreSQL che MySQL.
La scelta è caduta su una configurazione di tipo RDBMS store, in particolare
su quella che utilizza MySQL, che richiede, così come PostgreSQL, alcuni
settaggi come l‟host da utilizzare, la porta, il nome del database relazionale da
utilizzare, username e password.
Figura 11 : Interfaccia di Sesame
Prima di caricare il file RDF si è proceduto a generare nel triple store i
namespaces
necessari
come
ad
59
esempio
quello
di
RDF
(http://www.w3.org/1999/02/22-rdf-syntax-ns#)
quello
di
FOAF
(http://xmlns.com/foaf/0.1/), ma soprattutto quello creato per il prototipo,
ovvero csunipa (http://www.cs.unipa.it/ontologies/csunipa#).
II triple store è stato dunque riempito tramite il comando Add presente
nell‟interfaccia di Sesame, caricando il file RDF contenente le triple ricavate
tramite l‟utilizzo di Triplify e selezionando la sintassi N3 per permettere la
creazione del silos. Sesame permette, inoltre, di navigare le triple tramite
pochi click: partendo ad esempio dalla sezione Types è possibile esplorare le
classi e per ognuna visualizzare tutte le informazioni presenti in relazione ad
ognuna di esse. Inoltre è anche presente un Endpoint accessibile dal comando
Query che permette di interrogare il triple store tramite query sia in SPARQL
che in SeRQL e visualizzare i risultati che sono a loro volta navigabili. In
Figura 11 è riportato uno screenshot dell‟interfaccia di Sesame.
All‟interno del triple store sono presenti attualmente 1085 triple RDF delle
quali 62 sono relazioni del tipo csunipa:insegna, cioè definiscono
l‟insegnamento di un modulo da parte di un docente, 86 sono di tipo
csunipa:haspart cioè definiscono le materie ed i moduli che le compongono. In
Figura 12 viene mostrato un grafico che evidenzia gli elementi più importanti
che sono presenti all‟interno del triple store.
60
Materie attive
11%
Moduli
29%
24%
Profili FOAF
Relazioni
csunipa:insegna
12%
Relazioni
csunipa:haspart
24%
Figura 12: Statistica delle triple presenti nel triple store realizzato
A differenza di DBpedia, che utilizza una classificazione delle entità formata
da tre categorie distinte, nel caso del prototipo realizzato le entità sono
mappate tutte all‟interno di un‟unica ontologia. Per realizzare l‟ontologia si è
proceduto per gradi. Innanzitutto di pari passo sono state analizzate le
ontologie già presenti sul Web e in particolare quelle della Stanford
University, della Open University e del progetto LOIUS nell‟ambito
universitario, e quella del CNR nell‟ambito della ricerca e si è proceduto alla
definizione di uno schema Entità-Relazione per comprendere realmente quali
dati fossero necessari per realizzare l‟ontologia e per ipotizzare le relazioni
necessarie per strutturare i dati del database. Lo stampo molto più relativo ad
un college americano che ad un‟università italiana presente nell‟ontologia
della Stanford University, quello relativo ad un ente di ricerca piuttosto che ad
un‟università quale è il CNR e la complessità dell‟ontologia della Open
61
University, che abbraccia un campo di applicazione molto più ampio di quanto
al momento si vuole realizzare per i CdL del CISI, hanno spinto alla
realizzazione “ex novo” di un‟ontologia specifica. Si è tenuto conto
dell‟organizzazione del Dipartimento dal punto di vista fisico, quindi della
disposizione delle aule e dei laboratori, e ovviamente dal punto di vista
strettamente accademico, considerando i docenti e le materie. Per la
realizzazione dell‟ontologia si è utilizzato l‟applicativo Protegè in versione
4.1.0, strumento che permette di creare un‟ontologia definendone le classi che
nel caso specifico sono Dipartimento, Facoltà, Docente, Materia, Modulo,
Corso di laurea e Aula. Protegè rende possibile anche definire le proprietà dei
dati che afferiscono alle classi e quelle degli oggetti, cioè le relazioni fra le
varie classi. Sono state, ad esempio, realizzate le relazioni hasPart, isPartOf,
insegna e insegnatoDa. Le relazioni hasPart ed isPartOf , ad esempio,
permettono di definire il rapporto fra la classe Dipartimento e quella Docente
in cui si ha che un Dipartimento è formato da elementi della classe Docente ed
al contempo ogni elemento di Docente fa parte di un Dipartimento. Le due
relazioni sono state utilizzate anche per altre classi dell‟ontologia. Per quanto
riguarda invece le proprietà si avranno ad esempio le proprietà qualifica o
ruolo che sono specifiche di un docente o la proprietà sede che definisce la
sede del dipartimento, oppure ancora la proprietà sito che indica la pagina
internet di una materia. L‟ontologia utilizzata in questo lavoro è stata creata in
formato OWL.
62
Nella Figura 13 viene riportato il grafo dell‟ontologia creata, in cui ogni
freccia di diverso colore indica una proprietà differente dell‟ontologia.
Figura 13 : Grafo dell'ontologia realizzato con Protegé
Interfaccia di
conoscenza
accesso
alla
base
di
Per accedere ai dati presenti nel triple store è stata implementata un‟interfaccia
grafica in php corredata da un endpoint SPARQL. L‟accesso è stato realizzato
tramite un‟interfaccia REST (Representational State Transfer) verso il server
Sesame. REST è un paradigma che permette di identificare le risorse Web,
viene utilizzato per la realizzazione di applicazioni Web e permette la
manipolazione delle risorse tramite i metodi GET, POST, PUT e DELETE del
protocollo HTTP, su cui il paradigma si basa, restringendo il proprio raggio
d‟azione alle applicazioni che utilizzano HTTP per comunicare con altri
sistemi. Avvenuta la richiesta, la query viene memorizzata in una variabile e
63
tramite il comando GET inviata al database che la elabora e restituisce il
risultato in formato RDF. L‟utente può quindi inserire la propria query
SPARQL e visualizzarne il risultato, sistema che, insieme a quelli visti nel
capitolo precedente, viene utilizzato anche da DBpedia per interrogare la base
della conoscenza. Nella Figura 14 è riportato uno screenshot dell‟interfaccia
creata per accedere alla base della conoscenza.
Figura 14 : Interfaccia di accesso alla base di conoscenza
Valutazione del prototipo
La realizzazione del prototipo, come visto, ha seguito l‟approccio utilizzato
anche in applicazioni molto più importanti e complesse come DBpedia. Come
descritto nel capitolo II sono stati definiti quattro principi da seguire perché i
dati pubblicati diventino parte del grande spazio globale che è oggi diventato il
64
Web Of Data. Di seguito viene analizzato in che misura il prototipo realizzato
ha seguito i suggerimenti espressi dai 4 principi.
Sono stati generati, in particolare, identificatori univoci per ognuno degli
oggetti considerati per rispettare il primo principio, mentre la pubblicazione
del prototipo sul sito web dei CdL permetterebbe di poter generare un URI
HTTP per ogni risorsa presente nel triple store in modo da rispettare il
secondo principio. Inoltre sono stati sviluppati strumenti, come l‟Endpoint
SPARQL, che permettono di accedere e visualizzare i dettagli riguardanti le
triple RDF presenti e i collegamenti fra loro in modo da rispettare il terzo
principio. L‟ultimo traguardo da raggiungere per rispettare anche il quarto
principio è quello di collegare il triple store ad altri dataset, immaginandone
anche un futuro inserimento all‟interno della nuvola del Linked Open Data.
Come si è già visto è stato anche definito un sistema di rating con valutazione
da una a cinque stelle che permette di valutare se i dati pubblicati possano
entrare a far parte del Linked Open Data. Innanzitutto i dati da cui si è partiti
non erano disponibili sul Web né in un formato non proprietario né in un
formato proprietario ma solamente sotto forma di informazioni pubblicate sul
sito web del CISI, ed erano quindi informazioni che nel sistema di rating si
sarebbero fermate ad una valutazione di una sola stella su cinque. Il lavoro
compiuto trasformando i dati già presenti e rendendoli disponibili in formato
RDF e accessibili tramite Endpoint SPARQL, ha valorizzato questi dati
permettendo loro di raggiungere una valutazione a quattro stelle su cinque nel
65
sistema di rating. Queste informazioni sono state inoltre predisposte per un
collegamento in un futuro prossimo con altre informazioni, operazione che
permetterebbe ai dati di raggiungere il punteggio massimo di cinque stelle e
una pubblicazione nel cloud del Linked Open Data.
66
Conclusioni
Lo scopo di questa tesi, come ampiamente discusso, è stato quello di creare
una base della conoscenza in cui fossero presenti le informazioni sui CdL del
CISI, in cui i dati fossero sotto forma di triple RDF e alle quali chiunque,
utente o agente software, potesse accedere in maniera libera ma soprattutto
rapida. Come già evidenziato in questo lavoro è necessario sottolineare
l‟importanza di quanto svolto, soprattutto in chiave futura: è evidente come in
molti enti ed università in tutte le parti del mondo ci si sia mossi nella
direzione che è stata intrapresa con questo lavoro. I dati, che prima erano in un
certo senso “chiusi”, cioè disponibili ma eterogenei dal punto di vista dei
formati e non immediatamente accessibili, trasformati in triple si “aprono” al
Web Of Data dove possono essere messi in relazione con dati dello stesso tipo
provenienti da dataset sparsi per il mondo ma che, grazie ad un‟omogeneità
strutturale, diventano interconnessi ed accessibili.
Il prototipo realizzato è quindi stato pensato per essere inserito nella nuvola
del Linked Open Data e quindi collegato ad altri dataset. Per permettere tutto
questo è necessario innanzitutto incrementare il numero di triple e raggiungere
il minimo numero richiesto che è di 1000 triple circa, escluse quelle relative ai
profili FOAF, numero che è stato quasi raggiunto ma che sarebbe semplice
superare qualora venissero coinvolte in questo progetto l‟intera facoltà o
addirittura l‟università tutta. Se invece si volesse rimanere esclusivamente
nell‟ambito dei CdL del CISI si potrebbe pensare di inserire nel triple store
67
informazioni riguardanti gli argomenti di ricerca, le sfere di interesse e le
pubblicazioni dei docenti, o gli argomenti trattati nelle materie, per quanto
riguarda l‟aspetto didattico, oppure inserire informazioni sull‟ubicazione delle
aule, dei laboratori, sul numero di posti oppure in maniera più generale sulla
struttura del dipartimento. Per quanto riguarda invece il numero di link è
necessario, come visto nel capitolo II, che ce ne siano almeno 50, entranti o
uscenti, che colleghino il dataset creato ad altri già presenti nella nuvola del
Linked Open Data. L‟operazione potrebbe essere realizzata collegando ad
esempio i corsi che si svolgono nei CdL ad altri corsi di altre università che
sono già presenti nel cloud e che trattano gli stessi argomenti, oppure collegare
i docenti a dataset che contengono le loro pubblicazioni scientifiche o,
eventualmente, creare un riferimento riguardante le informazioni geografiche
sul dipartimento quali, ad esempio, latitudine e longitudine, collegando il
dataset con Geonames. E‟ chiaro dunque come, con pochi passaggi, sarebbe
possibile pubblicare nella nuvola del Web Of Data il nodo relativo al CISI,
rendendo i dati creati dei veri e propri Linked Open Data.
68
Bibliografia
[1] T. Berners-Lee, J. Henler e O. Lassila, «The Semantic Web, A new form
of Web content that is meaningful to computers will unleash a revolution
of new possibilities».
[2] W. URI Planning Interest Group, «URIs, URLs, and URNs: Clarifications
and
Recommendations
1.0,»
2001.
[Online].
Available:
http://www.w3.org/TR/uri-clarification/.
[3] T. Berners-Lee, R. Fielding e L. Masinter, «Uniform Resource Identifier
(URI): Generic Syntax,» 2005.
[4] D. Beckett, «RDF/XML Syntax Specification (Revised) - W3C
Recommendation,» 2004.
[5] A. Grigoris e F. van Harmelen, A Semantic Web Primer, 2004.
[6] T. Berners-Lee, «Notation3 (N3) A readable Rdf syntax,» 1998.
[7] D. Brickley e G. R.V., «RDF Vocabulary Description Language 1.0: RDF
Schema,» 2004.
[8] T. Berners-Lee, N. Shadbolt e W. Hall, «The Semantic Web Revisited,»
2006.
[9] L. Miller e D. Brickely, «FOAF Vocabulary Specification,» 2002-2010.
[10] C. Bizer, T. Heath e T. Berners_Lee, «Linked Data - The Story So Far,»
69
2009.
[11] R. Cyganiak e A. Jentzsch, «The Linking Open Data cloud diagram,»
[Online]. Available: http://richard.cyganiak.de/2007/10/lod/.
[12] C. Bizer, T. Berners-Lee e T. Heath, «Linked Data: Principles and State
of the Art,» 2008.
[13] E. Della Valle, I. Celino e D. Cerizza, Semantic Web - Modellare e
condividere per innovare, Addison Wesley.
[14] C. Bizer e R. Cyganiak, «D2R Server - Publishing Relational Databases
on the Semantic Web,» 2006.
[15] C. Bizer, «DBpedia 3.7 released, including 15 localized Editions,»
Settembre
2011.
[Online].
Available:
http://blog.dbpedia.org/2011/09/11/dbpedia-37-released-including-15localized-editions/.
[16] C. Becker e C. Bizer, «DBpedia Mobile - A location-Aware Semantic
Web Client,» 2008.
[17] T. Berners-Lee, «Linked Data - Design Issues,» 2006-2010. [Online].
Available: http://www.w3.org/DesignIssues/LinkedData.html.
[18] C. Bizer, J. Lehmann, G. Kobilarov, S. Auer, C. Becker, R. Cyganiak e S.
Hellman, «DBpedia - A Crtystallization Point for the Web of Data,»
2009.
70
[19] C. Baldassarre, E. Daga, A. Gangemi, A. Gliozzo, A. Salvati e G. Troiani,
«Semantic Scout: Making Sense of Organizational,» 2010.
[20] M. Fernandez, M. D'Aquin e E. Motta, «Linking Data Across
Universities: An Integrated Video Lectures Dataset».
[21] S. e. a. Auer, «Triplify - Light-Weight Linked Data Publication from
Relational Databases,» 2009.
71