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