Linked Data ICONVIS Progetto e sviluppo di un visualizzatore di dati
Transcript
Linked Data ICONVIS Progetto e sviluppo di un visualizzatore di dati
POLITECNICO DI TORINO III Facoltà di Ingegneria Corso di Laurea in Ingegneria del Cinema e dei Mezzi di Comunicazione Tesi di Laurea Magistrale Linked Data ICONVIS Progetto e sviluppo di un visualizzatore di dati relazionali basato su ontologie Relatore: prof. Juan Carlos De Martin Candidato: Giuseppe Futia Anno accademico 2010-2011 II Ringraziamenti Si dice che gli occhi di una persona, nel corso di una vita, non cambino mai. Ringrazio mio padre, mia madre e mio fratello perché il loro sguardo nei miei confronti, malgrado quello che combinassi, non è mai cambiato e mai cambierà. Ringrazio Giuseppe per i preziosi consigli e perché durante il mio percorso di tesi mi è stato davvero vicino. Ringrazio Federico, che ha contribuito a una vastissima parte di questo lavoro da un punto di vista tecnico, umanistico e umano. Lo ringrazio assieme a Enrico ed Ernesto, perché tutti insieme mi hanno regalato le cose più preziose che ho imparato all’Università e che porterò sempre con me. Ringrazio Gabbo, Robbè, Mimmo, Carlo, Lucia, perché sono stati una bellissima scoperta. Ringrazio Puglia, che malgrado gliene dicessi, oggi è alla conquista della gloriosa America, la terra delle opportunità. Ringrazio Lele, perché in questi anni, nei momenti di più grande difficoltà, mi è stato sempre vicino. Ringrazio Ale, Umbi, Cleme, Guido, Bubbo e Fabio, perché il bar di Giò resta il luogo in cui, ancora oggi, riesco a ritrovare me stesso e perché sono e resteranno per sempre gli amici della porta accanto. Ringrazio Francesca, Lara, Glenn, Toppy e Nebbio, perché dopo averli conosciuti sono uscito fuori dal torpore in cui mi trovavo. Ringrazio Antonella e Mirko, perché col ballo mi hanno insegnato tanto. Ringrazio Anna, perché professionalmente è stata la prima persona a darmi fiducia. Ringrazio Simona e tutte le persone del mio passato. Ringrazio Elena, che mi ha saputo aspettare, e tutte le persone del mio presente. III Indice Ringraziamenti I III Prima Parte 1 1 Introduzione 3 2 Semantic Web 2.1 I layers del Semantic Web . . . . . . . . . 2.2 RDF e rappresentazione dei dati . . . . . . 2.2.1 Mapping di RDB su RDF . . . . . 2.3 OWL e rappresentazione della conoscenza 2.3.1 RDF Schema . . . . . . . . . . . . 2.3.2 Web Ontology Language . . . . . . 2.3.3 Perché usare OWL . . . . . . . . . 2.3.4 I sottolinguaggi di OWL . . . . . . 2.3.5 Costrutti fondamentali . . . . . . . 2.4 Ontologie . . . . . . . . . . . . . . . . . . 2.5 Ricchezza semantica dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Linked Data 3.1 Che cosa sono i Linked Data? . . . . . . . . . 3.1.1 Linee guida . . . . . . . . . . . . . . . 3.2 Tecnologie del Linked Data . . . . . . . . . . 3.3 Pubblicare Linked Data sul Web . . . . . . . . 3.3.1 URI e vocabolari RDF . . . . . . . . . 3.3.2 Generazione dei link . . . . . . . . . . 3.4 Il Linking Open Data Project . . . . . . . . . 3.5 DBpedia . . . . . . . . . . . . . . . . . . . . . 3.5.1 Struttura della conoscenza in DBpedia 3.6 Linked Data e Semantic Web . . . . . . . . . IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 9 10 13 13 15 16 16 17 19 21 . . . . . . . . . . 23 23 24 25 27 27 27 29 31 33 36 II Seconda Parte 37 4 Stato dell’arte 4.1 Visualizzazione delle ontologie . . 4.1.1 Tecniche di visualizzazione 4.1.2 Multidimensionalità . . . . 4.2 Linked Data browsers . . . . . . . 4.2.1 Disco . . . . . . . . . . . . 4.2.2 Tabulator . . . . . . . . . 4.2.3 Sig.ma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Linked Data ICONVIS 5.1 Il back end dell’applicazione . . . . . . 5.2 Tecnologie del front end . . . . . . . . 5.2.1 ActionScript 3.0 . . . . . . . . . 5.2.2 DBpedia Lookup Service . . . . 5.3 Visualizzazione . . . . . . . . . . . . . 5.3.1 Elementi dell’ontologia . . . . . 5.3.2 Visualizzazione dei dati . . . . . 5.3.3 Visualizzazione dei Linked Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 39 40 51 53 53 55 58 . . . . . . . . 61 61 62 62 63 65 65 75 77 6 Campi di applicazione e conclusioni 83 6.1 Visualizzazione dei dati nella Pubblica Amministrazione . . . . . . . 83 6.2 Il giornalismo nell’era dei dati . . . . . . . . . . . . . . . . . . . . . . 85 6.3 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Bibliografia 89 V Elenco delle tabelle 3.1 3.2 5.1 6.1 DBpedia: classi dell’ontologia, numero delle istanze, esempi di properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparazione tra le differenti tipologie di estrazione dei dati da DBpedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabella di confronto tra differenti visualizzatori di ontologie e Linked Data ICONVIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entità estratte dall’archivio del New York Times . . . . . . . . . . . VI . 32 . 35 . 74 . 86 Elenco delle figure 2.1 2.2 3.1 3.2 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 Lo stack del Semantic Web . . . . . . . . . . . . . . . . . . . . . . . . RDF: grafo orientato, sintassi RDF/XML e N3 . . . . . . . . . . . . . owl:sameAs - Il concetto di Berlino espresso tramite due risorse appartenenti a datasource differenti . . . . . . . . . . . . . . . . . . . . Sezione del Linking Open Data Project Cloud Diagram. Per visualizzare l’intera cloud, visita: http://richard.cyganiak.de/2007/10/lod/ Visualizzazione dei concetti dell’ontologia della Pizza, comunemente proposta per spiegare gli elementi principali di un’ontologia, in Protégé Visualizzazione di un’ontologia in Isaviz . . . . . . . . . . . . . . . . . Visualizzazione dei risultati di ricerca in Grokker . . . . . . . . . . . Visualizzazione di tipo tree map . . . . . . . . . . . . . . . . . . . . . Visualizzazione basata sulle information slices circolari . . . . . . . . Visualizzazione di una porzione dell’ontologia adottata dal Brazilian Agricultural Research Society . . . . . . . . . . . . . . . . . . . . . . Visualizzazione di concetti in BiFocal Tree . . . . . . . . . . . . . . . Visualizzazione dei concetti di un’ontologia in Ontosphere . . . . . . Screenshot dell’interfaccia di Disco . . . . . . . . . . . . . . . . . . . Screenshot di Tabulator in modalità ‘esplorazione’ . . . . . . . . . . . Visualizzazione di una mappa in Tabulator in modalità ‘analisi’ . . . Visualizzazione di un calendario in Tabulator in modalità ‘analisi’ . . Visualizzazione dei risultati in Sig.ma . . . . . . . . . . . . . . . . . . Visualizzazione dell’area contenente i riferimenti alle sorgenti dei dati in Sig.ma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classi dell’ontologia con indicatore delle sottoclassi . . . . . . . . . . Classi dell’ontologia con indicatore delle istanze . . . . . . . . . . . . Classi dell’ontologia con indicatore di classi e istanze . . . . . . . . . Visualizzazione delle istanze dell’ontologia . . . . . . . . . . . . . . . Visualizzazione delle istanze con anteprima del grafo delle classi . . . Visualizzazione di una porzione della tassonomia . . . . . . . . . . . . Movimento del grafo . . . . . . . . . . . . . . . . . . . . . . . . . . . Relazioni dell’ontologia . . . . . . . . . . . . . . . . . . . . . . . . . . VII 7 11 28 30 41 43 45 47 48 49 50 52 54 55 56 57 59 60 66 67 68 68 69 70 71 72 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 Relazioni dell’ontologia con anteprime della tassonomia e delle istanze appartenenti a una classe . . . . . . . . . . . . . . . . . . . . . . . . . Visualizzazione dei dati delle istanze della classe ‘palazzo’ . . . . . . . Visualizzazione dei dati dell’istanza ‘Palazzina di Caccia di Stupinigi’ Visualizzazione del grafo relativo all’istanza Cesare Pavese ed alle tipologie di dati recuperati da DBpedia . . . . . . . . . . . . . . . . . Visualizzazione dei dati relativi al comune di Chivasso prelevati da DBpedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informazioni su Cesare Pavese prelevate da DBpedia . . . . . . . . . Informazioni su Antonio Ascari prelevate da DBpedia . . . . . . . . . Finestra del browser durante la visualizzazione dei Linked Data . . . VIII 73 76 76 78 79 80 81 81 Parte I Prima Parte Capitolo 1 Introduzione Le conseguenze legate al processo di digitalizzazione hanno determinato il proliferare di una mole d’informazione sempre più complessa da gestire e valorizzare. Sorge dunque una serie di difficoltà legata al reperimento di informazioni che effettivamente soddisfino gli obiettivi di ricerca dell’utente. Per trovare una soluzione a queste problematiche occorre adoperare strumenti che sfruttino il contesto semantico in cui i documenti, o più in generale qualunque altro tipo di dato, sono collocati. In quest’ambito, le ontologie rappresentano il mezzo più comune attraverso cui raggiungere questo tipo di obiettivo: esse infatti descrivono una collezione di concetti legati tra loro all’interno di uno specifico dominio di conoscenza. Ecco perché, oltre a fornire un supporto prezioso agli algoritmi di ricerca semantica, le ontologie in molti casi vengono rappresentate visivamente. Tuttavia, ciò che più interessa l’utente non riguarda tanto la comprensione del dominio entro cui sono collocati i dati, quanto piuttosto il recupero degli stessi. A tal proposito, l’ontologia diviene lo strumento visivo (estremamente più semplice da usare rispetto alla composizione di una query sul database) con il quale l’utente è in grado di individuare con esattezza le informazioni che gli interessano, attraverso una navigazione dei concetti legati tra loro da relazioni di diversa natura. Inoltre, è possibile arricchire tali relazioni e di conseguenza l’insieme dei dati che si possono esplorare, sfruttando dataset presenti sul Web, pubblicati secondo regole ben precise (le best practices che riguardano i cosiddetti Linked Data). Linked Data ICONVIS (Interactive and Customizable Ontology-based Visualization System) è un’applicazione RIA (Rich Internet Application) caratterizzata da una serie di strumenti che consentono di visualizzare i dati inseriti in un database (DB) a partire dall’ontologia costruita su di essi. A differenza di un tradizionale motore di ricerca, Linked Data ICONVIS (LDI) è in grado di fornire un insieme di informazioni utili alla comprensione del dominio complessivo a cui appartengono i dati. Oltre a ciò, l’applicazione è in grado di agganciarsi a sorgenti di dati aperti presenti sul Web per incrementare la conoscenza con la quale l’utente si confronta. Se 3 1 – Introduzione consideriamo ad esempio un’ontologia costruita a partire dai dati riguardanti i beni culturali situati in Piemonte, sarà presente l’entità ‘Palazzo Carignano’, ammettendo che vi siano dati che la riguardano. A questo punto, attraverso una serie di meccanismi inseriti nell’applicazione, è possibile andare alla ricerca dell’entità ‘Palazzo Carignano’ presente su DBpedia, ricevendo i dati che questa mette a disposizione, arricchendo ulteriormente i dati presenti sul database di partenza. L’applicazione è adatta in particolare ai content publisher che desiderano offrire ai propri utenti un’esperienza di fruizione dei loro grandi archivi didattica, alternativa e coinvolgente. Grazie all’alto grado di configurabilità di cui è caratterizzato, il software si può adattare a ogni diverso dominio (come e-commerce, beni culturali, editoria online, pubblica amministrazione, ecc.) a partire dalle impostazioni specifiche per la gestione del database e dell’ontologia. Nella prima parte di questo lavoro (capitoli 2 e 3) vengono argomentati gli elementi teorici essenziali riguardanti il Semantic Web e i Linked Data, che forniscono una premessa fondamentale per comprendere il contesto entro il quale si colloca l’applicazione. Il capitolo 4 descrive lo stato dell’arte della visualizzazione, con un’analisi approfondita dei principali visualizzatori di ontologie e una panoramica dei più importanti Linked Data browsers che sono oggi a disposizione degli utenti. Il capitolo 5 descrive tutti gli aspetti che riguardano l’applicazione LDI, dalle tecnologie che utilizza alle tecniche di visualizzazione che implementa. Infine, nel capitolo 6 vengono discussi alcuni dei possibili campi di applicazione del software, quali ad esempio la Pubblica Amministrazione e il Data Journalism. 4 Capitolo 2 Semantic Web Il Semantic Web (SW) rappresenta un’estensione del Web attuale nel quale l’informazione viene strutturata per veicolare maggiore significato e consentire molteplici occasioni di cooperazione tra macchine ed esseri umani. Questa definizione, apparsa su un articolo del 2001 scritto da Tim Berners Lee, James Hendler e Ora Lassila per la rivista Scientific American 1 fornisce un primo quadro di quali siano gli intenti e gli obiettivi del SW. All’interno del lavoro intitolato A framework for Web Science [4], si specifica inoltre come tale estensione consista in un rafforzamento del paradigma secondo il quale il Web induce un vero e proprio cambiamento del modo di agire delle persone. Ai suoi albori, la tecnologia ha permesso infatti di condividere con facilità e a buon mercato i documenti sulla rete: il SW ha il compito di favorire la propagazione di questa condotta anche all’universo dei dati, fornendo i presupposti che ne permettano una realizzazione da un punto di vista tecnologico. La necessità di collegare tra loro collezioni strutturate di informazioni appartenenti a soggetti diversi, in modo tale da rendere possibili operazioni di ragionamento automatico attraverso un insieme di regole di inferenza, obbliga a tener conto di compromessi (trade-off ) di diversa natura. In primo luogo, poiché occorre far coesistere diversi sistemi di rappresentazione della conoscenza, è necessario utilizzare un linguaggio che abbia una potenza espressiva tale da poter descrivere proprietà e relazioni complesse, ma che allo stesso tempo sia abbastanza “elastico” di modo che gli agenti software non incorrano in paradossi o inconsistenze. Il trade-off che dunque coinvolge più da vicino gli intenti del SW riguarda un’interoperabilità semantica: il prevalere dell’idea secondo cui è fondamentale creare le premesse perché sorgenti di dati differenti possano essere collegate tra di loro, provocherebbe un appiattimento delle strutture di dati a discapito della loro stessa capacità espressiva. D’altro canto, maggiore espressività comporta inevitabilmente tutta una serie di difficoltà nel relazionare i dati tra loro. 1 http://www.scientificamerican.com/article.cfm?id=the-semantic-web 5 2 – Semantic Web 2.1 I layers del Semantic Web Lo sviluppo di applicazioni che rispettino i principi del SW implica la necessità di definire una pila di protocolli che stabilisca un insieme di linguaggi e tecnologie con l’obiettivo di “modularizzare” il problema, in maniera tale che ad ogni livello venga associato uno standard specifico. Nello stack proposto dal W3C (vedi Figura 2.1) il livello più alto prettamente riconducibile alle tecnologie del SW è rappresentato dal Trust. Poiché i dati sono collocati in una dimensione globale e provengono da sorgenti differenti, è necessario che l’utente sia in grado di distinguere le fonti affidabili da quelle che invece non lo sono. A tal proposito, il livello di “fiducia” sui dati è accertabile da un lato in maniera esplicita, nel momento in cui si considera attendibile l’origine dell’informazione, oppure può essere derivato in modo automatico a partire da agenti intelligenti in grado di effettuare operazioni di deduzione o inferenza. Nel caso di una deduzione automatica, è necessario quantificare in che modo sia stato calcolato il livello di Trust. Occorre dunque una componente Proof che fornisca indicazioni in merito alla logica sottesa al ragionamento. La “prova” consiste dunque di un insieme di informazioni inferite, ognuna delle quali viene sfruttata dal motore inferenziale per derivare un determinato risultato, in relazione ai valori di Trust che hanno permesso di controllare la veridicità di ciascuna deduzione. Naturalmente, la solidità del livello Proof si fonda sulla base della cosiddetta Unifying Logic: la logica matematica rappresenta infatti il mezzo più adeguato per consentire a una macchina di processare una determinata informazione e svolgere un insieme di operazioni di reasoning per riuscire a derivarne di nuove. La logica dev’essere perciò in grado di rispondere a due esigenze specifiche: da un lato rendere efficace la prova e dall’altro descrivere l’informazione stessa. Come già anticipato nel paragrafo introduttivo al SW, è necessario garantire un determinato grado di espressività per definire modelli concettuali e regole d’inferenza, senza tuttavia indurre in paradossi o inconsistenze gli agenti che ragionano sull’informazione. La parte superiore della pila costituisce dunque l’insieme di tutti gli elementi necessari per poter abilitare sui dati operazioni di ragionamento. La parte inferiore, invece, ingloba un insieme di tecnologie e linguaggi atti a formalizzare la conoscenza in maniera da rendere attuabili tali operazioni. Innanzitutto, occorre un meccanismo per identificare ed accedere alle risorse. Per questi motivi, uno dei blocchi fondamentali è quello dei cosiddetti URI2 (Uniform Resource Identifier ), ovvero stringhe che identificano univocamente risorse generiche. Quest’ultimi assumono inoltre un’estrema rilevanza nell’ambito della rappresentazione della conoscenza, 2 http://en.wikipedia.org/wiki/Uniform Resource Identifier 6 2.1 – I layers del Semantic Web Figura 2.1. Lo stack del Semantic Web 7 2 – Semantic Web poiché divengono i mattoncini fondamentali per i linguaggi ontologici3 , che li adottano per l’identificazione dei concetti rilevanti per codificare l’informazione. Il termine conoscenza (o più propriamente l’espressione dominio di conoscenza) definisce un’astrazione attraverso il quale ci si riferisce ad una specifica area dello sforzo umano4 . La rappresentazione della conoscenza sfrutta in questo senso un insieme di simboli per rappresentare tale dominio, creando le condizioni affinché sia applicabile una serie di metodi per inferire nuova conoscenza, grazie ad un ragionamento formalizzato. Il livello immediatamente sovrastante a URI è XML. In breve, l’eXtensible Markup Language indica un linguaggio di marcatura che consente di costruire ed utilizzare i propri tag, al fine di garantire l’interoperabilità sintattica, che permette a sistemi differenti di interpretare la sintassi e la struttura dei documenti scambiati. Oltre a ciò, XML consente un certo grado di interoperabilità strutturale che riguarda invece l’interpretazione delle strutture dei documenti riconducibili a diversi schemi logici, qualora si conoscano le regole di traduzione. Tuttavia, per poter raggiungere anche la cosiddetta interoperabilità semantica, ossia la capacità di interscambio di dati sulla base del significato che essa è in grado di veicolare, piuttosto che sul suo formato, occorre risalire al livello successivo della pila: RDF5 (Resource Description Framework ). Esso è lo strumento base proposto dal W3C per la codifica, lo scambio e il riutilizzo di metadati strutturati per l’interscambio di informazioni sul Web. Il data model RDF permette di esprimere asserzioni elementari costituite da tre elementi: il soggetto che identifica l’entità, il predicato che specifica determinate proprietà e l’oggetto che fornisce un valore per tali proprietà6 . Occorre specificare che all’interno di un’asserzione l’oggetto può essere a sua volta un’entità (identificata da un URI) od assumere un valore letterale. Pur consentendo un primo grado di interpretabilità semantica, RDF non contiene un’espressività tale da poter gestire alcune situazioni in cui, ad esempio, due sistemi differenti sfruttino URI diversi per poter identificare la medesima risorsa. In tal caso infatti non sarebbe possibile confrontare ed integrare le asserzioni presenti in un sistema con quelle collocate nell’altro. Pertanto, serve un linguaggio per poter affermare che in questo caso i due identificatori hanno lo stesso significato. Per rispondere a tale esigenza, si utilizzano le cosiddette ontologie, ovvero rappresentazioni della conoscenza di un insieme di concetti appartenenti a un dominio, che specificano inoltre la natura delle relazioni che intercorrono tra questi stessi concetti. I linguaggi ontologici prevalentemente adottati da parte della comunità del SW sono 3 Per approfondire, vedi il paragrafo Ontologie http://en.wikipedia.org/wiki/Domain knowledge 5 http://www.w3.org/RDF/ 6 Per approfondire vedi il paragrafo RDF e rappresentazione dei dati 4 8 2.2 – RDF e rappresentazione dei dati RDF Schema7 e OWL8 (Web Ontology Language). Esistono inoltre dei meccanismi che permettono di potenziare le capacità delle macchine di elaborare conoscenza, ossia i sistemi a regole (Rules). Poiché sono già largamente diffusi ed utilizzati all’interno della comunità scientifica, la proposta da parte del W3C è stata quella di standardizzare RIF9 , un metodo che consente ai sistemi a regole esistenti di interagire tra di loro. Al fine di interrogare datasource che esprimono i propri dati in RDF, è necessario trovare uno strumento che da un lato permetta di realizzare delle query sui dati e dall’altro definisca un protocollo che consenta di effettuare tali query sul Web. Entrambi i requisiti vengono soddisfatti da SPARQL10 attraverso cui è possibile estrarre informazioni dalle basi di conoscenza distribuite sulla rete. Infine, una componente importante è rappresentata da Crypto (che indica crittografia e firma digitale) che pur non essendo direttamente legata alle tecnologie del SW, costituisce un elemento fondamentale per raggiungere il cosiddetto Trust e determinare dunque l’affidabilità dei dati. I paragrafi successivi tratteranno in particolar modo i linguaggi per la rappresentazione della conoscenza, che costituiscono il presupposto essenziale per quello che il SW si propone di realizzare. 2.2 RDF e rappresentazione dei dati Una delle questioni più importanti concernenti il SW riguarda la creazione di connessioni tra dati appartenenti a fonti diverse. Per questi motivi, è necessario un framework comune che consenta una vera e propria “liberazione11 ” dei dati e che allo stesso tempo garantisca condizioni di interoperabilità. RDF è in grado di rispondere ad entrambe le esigenze, specie nel momento in cui venga scelto XML come sintassi d’interscambio dei dati12 . XML permette di abilitare un meccanismo di interoperabilità per coloro che vogliono esprimere i dati in RDF ed allo stesso tempo consente di sfruttare un insieme di strumenti e parser ampiamente diffusi per l’elaborazione dei dati13 . In questo modo, i dati possono essere aggregati e relazionati tra 7 http://www.w3.org/TR/rdf-schema/ http://www.w3.org/TR/owl-features/ 9 http://www.w3.org/2005/rules/wiki/RIF Working Group 10 http://www.w3.org/TR/rdf-sparql-query/ 11 [4] p.19 12 Occorre ricordare che RDF non definisce un formato in cui pubblicare i dati, ma piuttosto un modello di rappresentazione. Oltre ad XML, infatti, è possibile rappresentare formalismi RDF anche attraverso la sintassi NTriple (http://www.w3.org/2001/sw/RDFCore/ntriples/) o la relativa sintassi semplificata N3 (http://www.w3.org/DesignIssues/Notation3) 13 La sintassi RDF/XML è l’unica ad avere una specifica Recommendation del W3C 8 9 2 – Semantic Web di loro per poi, in una fase successiva, essere ricondotti ad entità del mondo reale14 , favorendo interpretazioni consistenti tra datasource eterogenei. RDF ha dunque l’obiettivo di definire un sistema per rappresentare e modellare le risorse, in cui ciascuna di esse viene identificata univocamente (attraverso gli URI) e, cosı̀ come nel caso dei sistemi di classificazione, prevede la possibilità di associare ad ogni risorsa dei metadati descrittivi. I metadati vengono genericamente definiti come dati su dati. Utilizzati alle origini per classificare i volumi all’interno dei cataloghi delle biblioteche, in ambito digitale sono sfruttati di descrivere il contenuto e il contesto entro il quale sono collocati i file. Una pagina Web, ad esempio, potrebbe includere metadati che indichino la lingua in cui è scritta, gli strumenti utilizzati per crearla, gli argomenti che affronta15 . L’enunciato (statement) rappresenta la struttura base di RDF ed è formato da tre componenti: il soggetto, che identifica la risorsa, il predicato, che definisce un attributo o una proprietà del soggetto che s’intende descrivere e l’oggetto, ossia il valore che il predicato assume in relazione al soggetto considerato. Per questi motivi, l’enunciato viene anche chiamato “tripla” ed è rappresentato secondo un modello a grafo etichettato, in cui soggetto e oggetto sono i nodi e il predicato è l’arco orientato (Figura 2.2). 2.2.1 Mapping di RDB su RDF L’obiettivo del SW è quello di creare un enorme database globale che trascenda le singole componenti. Una visione di questo tipo è diretta conseguenza di uno dei principali intenti del SW, ovvero la creazione di collegamenti tra datasource diversi. In questo modo, infatti, la qualità dei dati non è legata soltanto a un valore intrinseco, ma cresce in base alle modalità con cui i dati sono relazionati tra loro, grazie alle quali è possibile sviluppare applicazioni in grado di compiere operazioni differenti su sorgenti eterogenee. Il primo passo a livello realizzativo consiste nel mapping di Relational Databases (RDB) su RDF. Uno degli elementi di maggiore criticità nell’evoluzione del Web, e in particolare nel passaggio dal cosiddetto Web of Documents al Web of Data, consiste proprio nell’inclusione e nella condivisione dell’enorme quantità di dati presente all’interno dei database relazionali. Il mapping di questi dati su RDF coinvolge attualmente diversi ambiti di ricerca e conduce allo sviluppo e all’implementazione di tecniche sempre più efficienti all’interno di diversi domini applicativi. Per questi motivi, RDF non rappresenta soltanto un data model, ma svolge il ruolo di vera e propria piattaforma d’integrazione per dati che provengono da fonti diverse. Ciascun DB, in relazione al dominio cui fa riferimento, possiede specifiche caratteristiche in termini di scalabilità, efficienza di storage, esecuzione ottimizzata delle 14 Per approfondire vedi il paragrafo dedicato alle Ontologie Tra le collezioni di metadati più usate vi è Dublin Core, che prevede la definizione di un insieme di elementi che rappresentano i metadati necessari per descrivere opportunamente risorse in rete 15 10 2.2 – RDF e rappresentazione dei dati Figura 2.2. RDF: grafo orientato, sintassi RDF/XML e N3 11 2 – Semantic Web query e affidabilità. A differenza del data model relazionale, i dati espressi in RDF possono essere interpretati, processati e in generale sono in grado di veicolare maggiore espressività. In uno studio dal titolo Relational Databases on the Semantic Web [2] Tim Berners Lee discute i tratti comuni e quelli distintivi che caratterizzano il modello RDF e quello Entità-Relazione (ER). In particolare, ci si sofferma sul concetto di relazione o predicato che RDF è in grado di esprimere e sull’uso degli URI attraverso i quali è possibile stabilire dei link tra le varie entità, sfruttando il valore del predicato per integrare informazioni che hanno origini diverse. Ciò che dunque occorre sottolineare riguarda l’effettivo information gain ottenuto mappando RDB su RDF, che permette di aggiungere alle relazioni esplicite presenti nel primo le relazioni implicite, collocate all’interno di uno specifico dominio semantico, che caratterizzano il secondo. Alcune applicazioni sono in grado di effettuare un mapping automatico, sfruttando tre assunti principali: • un record RDB è un nodo-soggetto RDF; • il nome della colonna di una tabella RDB definisce il predicato; • la cella di una tabella RDB definisce il valore-oggetto all’interno della tripla RDF. Un esempio di questo approccio è quello reso possibile da Virtuoso RDF View 16 che utilizza l’identificatore di un record (la chiave primaria) come soggetto, la colonna della tabella come predicato ed il valore presente all’interno della cella come elemento oggetto della tripla RDF. Tuttavia, come osservato all’interno del lavoro dal titolo A Survey of Current Approaches for Mapping of Relational Databases to RDF [17], il mapping generato in maniera automatica non è in grado di catturare il dominio semantico complessivo necessario a gran parte delle SW applications. Un secondo approccio riguarda perciò l’utilizzo di espliciti contesti semantici, modellati attraverso un’ontologia, incorporando ciò che gli RDB schema non esprimono o non sono in grado di catturare. Inoltre, questo genere di mapping è in grado di ridurre la creazione delle triple irrilevanti o ridondanti all’interno del dominio di conoscenza specifico. Il dominio ontologico può essere preesistente e prelevato, ad esempio, da un repository pubblico: in ambito biomedico, una risorsa fondamentale è rappresentata dal National Center for Biomedical Ontologies17 (NCBO). Oppure, è possibile sfruttare ontologie locali create attraverso tools di mapping automatico. 16 17 http://virtuoso.openlinksw.com/whitepapers/relational%20rdf%20views%20mapping.htm http://bioportal.bioonyology.org 12 2.3 – OWL e rappresentazione della conoscenza 2.3 OWL e rappresentazione della conoscenza Oltre alla necessità di un framework per poter descrivere e interconnettere tra loro le risorse, è necessario definire dei meccanismi che consentano ai dati di veicolare una certa semantica. RDF fornisce soltanto un modello per la rappresentazione delle risorse: occorrono dunque degli strumenti (linguaggi) che provvedano in primo luogo a definire schemi specifici per i metadati e vocabolari per identificare le tipologie delle risorse, ed in secondo luogo introducano elementi di logica che favoriscano operazioni di ragionamento automatico. 2.3.1 RDF Schema Il primo passo per la definizione di un linguaggio ontologico in grado di veicolare informazioni relative alle caratteristiche degli elementi (soggetto, predicato, oggetto) di un enunciato è rappresentato da RDF Schema (RDFS). Esso fornisce i costrutti per descrivere vocabolari in grado di categorizzare i tipi di risorse, collocandoli all’interno di specifici raggruppamenti. In accordo con quanto accade nell’universo Object Oriented Programming (OOP), la tipizzazione viene definita classe e in RDFS è rappresentata dalla risorsa rdfs:Class. Le risorse che hanno per tipo una specifica classe si dicono istanze di quella classe. Facendo riferimento ancora una volta al modello OOP, le classi definiscono determinati attributi che nelle istanze assumono specifici valori, i quali definiscono lo stato dell’istanza stessa. Nello specifico, l’istanza delinea l’entità che, all’interno del dominio di conoscenza, rappresenta il riferimento concettuale direttamente collegato al dato esistente. Nel caso in cui, ad esempio, all’interno di un’ontologia che rappresenta i beni culturali della Regione Piemonte vi sia un’istanza di tipo ‘Palazzo Carignano’, essa costituisce il riferimento diretto al dato presente sul DB. Tuttavia, lo sviluppo di una corretta concettualizzazione è affidata all’ontology designer, che con l’ausilio di strumenti automatici18 ha il compito di mettere a punto un’ontologia adeguata. Utilizzando la sintassi N319 , che rappresenta un’alternativa compatta e leggibile a RDF/XML per esprimere gli enunciati RDF, è possibile dichiarare che ad esempio Madame Bovary è un’istanza della classe libro: 18 19 ex:Book rdf:type rdfs:Class ex:MadameBovary rdf:type ex:Book Vedi paragrafo Mapping di RDB su RDF http://www.w3.org/DesignIssues/Notation3 13 2 – Semantic Web La definizione di classi RDFS consente inoltre di esprime relazioni di ereditarietà tra le classi. Il linguaggio offre infatti anche la proprietà rdfs:subClassOf, che lega una classe ad un’altra che ne rappresenta un sottoinsieme. Tornando al caso dei libri, posso definire che la classe romanzo è una sottoclasse della classe libro: ex:Novel rdfs:subClassOf ex:Book Strutture di questo genere suggeriscono dunque che RDFS non delinea soltanto una convenzione sull’uso di un certo numero di costrutti, ma veicola anche una parte della semantica riguardante tali espressioni, che può essere sfruttata per inferire nuova conoscenza. Nel caso degli esempi precedenti, è possibile dedurre che qualunque istanza della classe romanzo, in virtù della transitività di rdfs:subClassOf, è anche istanza della classe libro: ex:Novel rdfs:subClassOf ex:Book ex:HeartOfDarkness rdfs:type ex:Novel A partire da questi due costrutti, un motore in grado di compiere delle deduzioni a partire da RDFS, può inferire in automatico che: ex:HeartOfDarkness rdfs:type ex:Book RDFS fornisce inoltre anche dei meccanismi per poter specificare che una determinata proprietà può essere applicata soltanto a un certo tipo di risorsa, oppure può assumere unicamente valori predeterminati: rdfs:domain specifica che una data proprietà contempla soltanto uno specifico soggetto, mentre invece rdfs:range definisce l’insieme di valori che a quella stessa proprietà possono essere associati: ex:hasWriter rdfs:domain ex:Book ex:hasWriter rdfs:range ex:Writer Oltre a questi aspetti, RDFS è in grado di arricchire anche le proprietà RDF, 14 2.3 – OWL e rappresentazione della conoscenza offrendo il costrutto subPropertyOf : ex:hasWriter rdfs:subPropertyOf dc:Creator ex:hasComposer rdfs:subPropertyOf dc:Creator In tal caso, per quanto scrittori e musicisti si occupino di realizzare opere completamente diverse, il loro ruolo può essere ricondotto alla proprietà dc:Creator del Dublin Core. 2.3.2 Web Ontology Language Sebbene RDF Schema possieda strumenti efficaci per poter definire schemi e vocabolari basati su RDF, è anche vero che estraendo elementi provenienti dalla logica nel suo complesso, o anche soltanto dalla First Order Logic (FOL), esistono notevoli opportunità per arricchire un linguaggio ontologico e supportarlo con regole che realizzino le condizioni perché siano applicabili operazioni di ragionamento automatico. Nella logica matematica il linguaggio del primo ordine è un linguaggio formale che serve per gestire meccanicamente enunciati e ragionamenti che coinvolgono i connettivi logici, le relazioni e i quantificatori. La locuzione “del primo ordine” indica che esiste un insieme di riferimento ed i quantificatori possono riguardare soltanto gli elementi di tale insieme e non i suoi sottoinsiemi. Per questi motivi, se attraverso la logica del primo ordine si può affermare che per tutti gli x elementi dell’insieme vale P(x), non si può affermare altrettanto che per tutti i sottoinsiemi A valga P(A). In base a queste sue caratteristiche, per quanto FOL sia un ottimo strumento per la rappresentazione della conoscenza, è caratterizzato da elementi di intrattabilità e semi-decidibilità che non lo rendono adeguato come linguaggio ontologico puro. Per questa ragione, la scelta è stata quella di introdurre in RDFS alcune parti di FOL necessarie per poter ampliare le caratteristiche di espressività del linguaggio, senza tuttavia venir meno agli elementi di decidibilità e trattabilità: il risultato di questa combinazione è confluito in OWL, il Web Ontology Language. OWL è in grado di fornire dei costrutti che possono essere utilizzati per descrivere le classi e le istanze (o individui) inerenti ai documenti e alle applicazioni presenti sul Web. Nello specifico, attraverso l’uso di OWL è possibile formalizzare uno specifico dominio di conoscenza attraverso cui definire le classi e le proprietà appartenenti a tali classi, descrivere gli individui ed asserire le relazioni che intercorrono tra di essi, e ragionare infine su tali classi ed individui nella misura consentita dalla semantica formale del linguaggio OWL. 15 2 – Semantic Web 2.3.3 Perché usare OWL Visti i diversi formalismi esistenti per rappresentare la conoscenza, è necessario soffermarsi sui punti di forza di OWL per la realizzazione di applicazioni per il SW. Innanzitutto, per poter dare un significato esplicito alle informazioni ed integrare i dati presenti sul Web, risulterà necessario ricorrere ad XML per definire schemi di tagging personalizzabili e all’approccio flessibile di RDF per la rappresentazione dei dati. Al di sopra di XML ed RDF occorre un linguaggio ontologico che possa descrivere formalmente il significato della terminologia utilizzata nei documenti collocati sul Web. Se le macchine sono chiamate a svolgere compiti di ragionamento utili e complessi su tali documenti, il linguaggio utilizzato deve andare oltre la semantica di base di RDFS. OWL è stato dunque progettato per rispondere a questa esigenza. Al fine di chiarire il grado di espressività che esso introduce, può essere utile risalire lungo lo stack del Semantic Web (Figura 2.1), ed analizzare che cosa stabilisce concretamente ciascun linguaggio o formalismo: • XML fornisce una sintassi di superficie per documenti strutturati, ma non impone vincoli semantici sul significato di questi documenti; • XML Schema è un linguaggio utilizzato per limitare la struttura dei documenti XML ed estendere il formalismo attraverso i datatype; • RDF è un data model per descrivere gli oggetti (o risorse) e le relazioni che li legano, introducendo un primo livello di semantica; • RDF Schema è un vocabolario per descrivere le proprietà e le classi delle risorse RDF, con una semantica in grado di compiere una generalizzazione delle gerarchie di cui fanno parte tali proprietà e classi; • OWL aggiunge un ulteriore vocabolario per descrivere con maggiore raffinatezza proprietà e classi. In particolare, consente di specificare le relazioni tra classi (ad esempio la disgiunzione), la cardinalità (ad esempio uno ed esattamente uno), l’uguaglianza, una tipizzazione più ricca delle proprietà, classi enumerate ed aggiunge caratteristiche alle proprietà quali ad esempio la simmetria. 2.3.4 I sottolinguaggi di OWL OWL fornisce tre sottolinguaggi che si differenziano per la propria capacità espressiva, progettati per essere utilizzati da comunità di utenti e sviluppatori con esigenze differenti: • OWL Lite supporta tutti coloro che necessitano di una gerarchia di classificazione e di vincoli “semplici”: nel caso del vincolo di cardinalità, ad esempio, 16 2.3 – OWL e rappresentazione della conoscenza i valori ammessi sono soltanto 0 e 1. Il basso grado di espressività consente inoltre una migrazione piuttosto semplice di tassonomie e tesauri verso OWL Lite; • OWL DL (Description Logic) supporta quegli utenti che vogliono ottenere un alto livello di espressività, mantenendo completezza computazionale (le conclusioni sono studiate in maniera tale da poter essere sempre computabili) e decidibilità (tutte le computazioni terminano in un tempo finito). OWL DL comprende tutti i costrutti previsti dal Web Ontology Language, che tuttavia sono vincolati da alcune restrizioni (ad esempio, mentre una classe può essere una sottoclasse di più classi, non può essere istanza di alcuna classe). La Description Logic che inizia a subentrare a partire da questa versione di OWL costituisce il campo di ricerca nel quale sono state affrontate le logiche che caratterizzano il fondamento formale del linguaggio; • OWL Full è destinato a tutti gli utenti che desiderano la massima libertà espressiva, in aggiunta alla libertà sintattica di RDF, senza alcuna garanzia computazionale. In OWL Full una classe può essere trattata allo stesso tempo come una collezione di individui, oppure come un individuo a se stante. Attraverso queste elementi, l’ontologia costruita in OWL Full è in grado di aumentare il significato predefinito da RDF ed OWL. Ad oggi, non esiste un applicativo in grado di sostenere un ragionamento completo per ogni caratteristica di OWL Full. Ognuno di questi dialetti accresce l’espressività del suo predecessore, sia per ciò che può essere validamente espresso, sia per quello che può essere validamente concluso. OWL Full può essere visto come un’estensione di RDF, mentre OWL Lite e OWL DL possono essere considerati come un’estensione di una visione limitata di RDF. Per questi motivi, nel compiere una migrazione da RDF ad OWL Lite o OWL DL, occorre tener conto di alcune precauzioni che garantiscano che il documento originale sia conforme ai vincoli che vengono imposti dalle versioni meno espressive di OWL. Alcuni di questi vincoli riguardano, ad esempio, il fatto che gli URI utilizzati come nome di una classe devono essere esplicitati come owl:Class (e in maniera analoga anche le proprietà); ogni individuo (o istanza) deve appartenere ad almeno una classe; gli URI utilizzati per le classi, le proprietà e gli individui devono essere reciprocamente disgiunti. 2.3.5 Costrutti fondamentali Osservando le caratteristiche peculiari di OWL, è possibile comprendere in che modo l’espressività sia cresciuta rispetto ad RDF Schema. Come già anticipato nei paragrafi precedenti, in OWL è possibile caratterizzare in maniera molto più ricca 17 2 – Semantic Web le proprietà. Infatti, è possibile definire una proprietà come transitiva o simmetrica, oppure stabilire la proprietà inversa di una data proprietà: • transitiva: nel momento in cui una prima risorsa è collegata ad una seconda attraverso una specifica relazione e se la seconda risorsa è legata ad una terza dalla medesima relazione, si può affermare che anche la prima risorsa è collegata con la terza da quella relazione. La proprietà “essere precedente a” è un esempio di proprietà transitiva: ex:comesBefore rdf:type owl:TransitiveProperty • simmetrica: tale condizione si verifica quando la relazione sussiste in entrambi i versi. Il legame di parentela, ad esempio, è considerato una proprietà simmetrica: ex:isRelativeOf rdf:type owl:SymmetricProperty • inversa: qualora una proprietà non fosse simmetrica, è possibile comunque definirne la proprietà inversa. In questo modo, dato un enunciato che lega due risorse attraverso una determinata proprietà, è possibile inferire un altro enunciato ottenibile scambiando reciprocamente il soggetto con l’oggetto, utilizzando come predicato la proprietà inversa. Ad esempio, “è autore di” è la proprietà inversa di “ha per autore”: ex:isAuthorOf owl:inverseOf ex:hasAuthor Come detto nel paragrafo precedente, RDFS attraverso meccanismi come domain e range introduce delle limitazioni sull’uso delle proprietà. L’impiego di tali costrutti è molto semplice e tuttavia impone un utilizzo delle proprietà molto limitato. Consideriamo ad esempio la formulazione “è autore di” e poniamo il caso che possa essere utilizzata sia nel caso di scrittori che di pittori. Stabiliamo inoltre che se il soggetto della proprietà che abbiamo definito è uno scrittore, allora l’oggetto dell’enunciato potrà essere soltanto un libro; nel caso in cui invece il soggetto sia un pittore, l’oggetto dovrà essere un dipinto. Attraverso gli strumenti forniti da RDFS, saremmo costretti a definire per ogni caso una diversa proprietà. Per ovviare a questo problema, OWL introduce le cosiddette restrizioni. Una owl:Restriction è la definizione di una particolare classe di cui si definisce il comportamento in relazione a una o più proprietà (owl:Property): con questo stratagemma è possibile stabilire limitazioni sulla cardinalità (in tal caso i costrutti a cui si fa riferimento sono owl:minCardinality, owl:maxCardinality, owl:cardinality), oppure sui valori 18 2.4 – Ontologie che può assumere (owl:allValuesFrom e owl:someValuesFrom). A partire da questi presupposti, possiamo scrivere: ex:Writer rdfs:subClassOf ex:WriterAuthorRestriction. ex:WriterAuthorRestriction rdf:type owl:Restriction; owl:onProperty ex:isAuthorOf; owl:allValuesFrom ex:Book. ex:painter rdfs:subClassOf ex:painterAuthorRestriction. ex:painterAuthorRestriction rdf:type owl:Restriction; owl:onProperty ex:isAuthorOf; owl:allValuesFrom ex:picture. In questo caso abbiamo dunque utilizzato la medesima proprietà ex:isAuthorOf applicata in maniera corretta ad ambiti differenti. 2.4 Ontologie Nella concezione tradizionale, le ontologie contengono le specifiche dei concetti che sono necessari per comprendere un determinato dominio di conoscenza. Entrando nel dettaglio, esse introducono il vocabolario indispensabile alla descrizione di tale dominio: definiscono le relazioni che intercorrono tra i concetti espressi e tale vocabolario, stabilendo inoltre il modo in cui devono essere definite le proprietà che contraddistinguono classi ed individui, in relazione al medesimo vocabolario. Un’ontologia può essere formale, oppure informale. Un uso formale del linguaggio consente alla macchina di intraprendere un ragionamento più profondo sulle risorse Web, tuttavia lo svantaggio principale riguarda il fatto che tali formalismi sono percepiti in molti casi come difficili da rispettare. I dati possono essere mappati su un’ontologia. Il loro uso è dunque destinato a mettere ordine tra le informazioni espresse secondo formati eterogenei (proprio perché l’ontologia stessa non tiene conto del formato, ma definisce soltanto il dominio entro il quale sono collocate tali informazioni) e, per questi motivi, contribuisce in modo determinante all’ideale del Web come fonte di sapere unica. In un certo senso, 19 2 – Semantic Web un’ontologia è riconducibile a un database schema 20 , con le differenze sostanziali che un’ontologia è scritta con un linguaggio relativamente ricco ed espressivo, è caratterizzata da un’informazione meno strutturata e fornisce una teoria di dominio. Alcuni studi, tuttavia, paventano il rischio che un focus troppo ristretto sulle ontologie potrebbe indurre a postulare, per il Web del futuro, dei formalismi che rischiano di privilegiare soltanto un certo tipo di classificazione nell’ambito della comprensione del linguaggio umano [12]. Esistono a tal proposito due problemi distinti e opposti. In primo luogo, il tipo di ontologie che viene sfruttato a livello industriale consiste di semplici tassonomie il cui compito principale è quello di fornire un sistema di classificazione per documenti e pagine web che non debbono essere elaborati e non necessitano di formalismi altamente espressivi. Al contrario, qualora sia necessario catturare tutta la conoscenza spesso arbitraria di uno specifico dominio, risulta difficile definire un unico formalismo adeguato. Oltre alla Description Logic su cui si fonda OWL, infatti, si possono sfruttare altri tipi di logica come ad esempio quella causale, temporale e probabilistica. Malgrado le numerose possibilità che si manifestano in questo ambito, per poter comprendere a fondo l’insostituibilità, almeno per ora, delle ontologie all’interno del SW è necessario sottolineare un aspetto fondamentale. Il Web viene spesso concepito con un ambiente statico, mentre invece risulta essere in continuo cambiamento ed è caratterizzato da una semantica dinamica che rispecchia le attività che si svolgono quotidianamente in rete. All’interno di alcuni studi [11] si argomenta tuttavia che la visione del SW deve sottendere da un lato una semantica “dichiarativa”, sulla base della quale avremmo a che fare soprattutto con dati passivi recuperati dal server, e dall’altro un insieme di cambiamenti molto lenti, in cui la pubblicazione di contenuti risulta molto meno frequente rispetto ad azioni legate alla navigazione sul Web. D’altro canto, anche il contesto nel quale vengono recuperate le informazioni, come ad esempio il profilo dell’utente, la collocazione all’interno di uno specifico pattern di navigazione e i consueti processi di editing che avvengono sul Web possono determinare la creazione di differenti edizioni di una pagina. Perciò, occorre evitare di focalizzarsi sull’idea secondo la quale il SW deve essere inteso come un singolo sistema globale, caratterizzato da uno specifico modo di interagire e da un insieme definito di requisiti che forzino la conoscenza in un’unica forma. Come già osservato nel paragrafo dedicato a RDF, i dati che devono essere valorizzati sono soprattutto quelli relazionali. L’obiettivo, all’interno di questo contesto, riguarda perciò la generazione di valore a partire da questi dati in aggiunta a quello che già posseggono, permettendo operazioni di inferenza e consentendo, secondo quanto descritto da un’ontologia, di collegare i dati tra loro. Per questi motivi, il paradigma del SW non si fonda sul fatto che tutti i dati o l’intera conoscenza debbano essere rappresentabili attraverso un ristretto insieme di formalismi, ma si 20 http://en.wikipedia.org/wiki/Database schema 20 2.5 – Ricchezza semantica dei dati focalizza sulle potenzialità che possono essere espresse grazie all’interrelazione e alla combinazione di questi dati. Poiché dunque questo è ciò che si propone di realizzare il SW, l’ontologia risulta ad oggi essere lo strumento più adeguato per consentire una comprensione dei dati che provengono da sorgenti differenti, a patto che siano pertinenti ed appropriati per lo scopo che s’intende conseguire. 2.5 Ricchezza semantica dei dati Uno dei problemi fondamentali che contraddistingue un ambiente complesso come il Web consiste nella capacità di estrarre dati in maniera automatica da contenuti ricchi di informazioni. Nel caso delle risorse multimediali, ad esempio, i motori di ricerca attuali basano le proprie ricerche sui riferimenti testuali, spesso parziali e non sempre affidabili, che nella maggior parte dei casi accompagnano video, musiche ed immagini. Il cosiddetto gap semantico21 tra i metadati estratti e il contenuto non testuale della risorsa resta dunque, nell’ambito dell’information retrieving, una delle lacune più difficili da colmare. Benché contenuti testuali e multimediali presentino problemi analoghi quando si tratta di questioni riguardanti la navigazione attraverso repository diversi , una ricerca keyword-based non è in grado di restituire in maniera accurata e precisa elementi che fanno parte di un contesto multimediale. L’approccio utilizzato da Google Images, che si fonda sulle informazioni testuali collegate direttamente alla risorsa, permette una ricerca molto veloce, grazie a cui l’utente riesce a trovare con buona approssimazione ciò che desidera. D’altra parte, è necessario ricordare che i risultati restituiti sono quelli che il motore ritiene più plausibili e non quelli di cui l’utente è effettivamente alla ricerca. Per questi motivi, l’intervento umano22 all’interno del processo di collegamento tra il linguaggio visivo e quello basato sul testo per il reperimento delle informazioni rimane essenziale [14], benché siano in fase di sviluppo tecniche automatiche per l’associazione di strutture di natura testuale a collezioni di immagini all’interno di specifici domini di conoscenza [1]. Nel momento in cui il fattore discriminante è rappresentato dalla correttezza delle informazioni trovate piuttosto che dall’abbondanza dei risultati ottenuti, un approccio interessante consiste nell’utilizzo di un’ontologia costruita su uno specifico campo del sapere che permetta di accedere con precisione alle informazioni di cui 21 Con l’espressione semantic gap s’intende la differenza che esiste tra due descrizioni di un medesimo oggetto, espresse in due linguaggi distinti. In informatica, il problema si manifesta quando ordinarie attività del mondo reale devono essere tradotte in una rappresentazione computazionale. Per approfondire: http://en.wikipedia.org/wiki/Semantic gap 22 In specifici contesti, alcuni prototipi come VLEMA (Vision-Language intEgration MechAnism) sono in grado di supportare il “lavoro umano”, generando descrizioni in linguaggio umano a partire da scene visive che raffigurano gli interni di un edificio. Per approfondire vedi nota [14] p.4 in bibliografia. 21 2 – Semantic Web l’utente è alla ricerca. L’approccio utilizzato da LDI consente all’utente di raggiungere i dati che maggiormente gli interessano sfruttando tale principio e fornendo una struttura concettuale navigabile che conduce alla risorsa desiderata. Sull’ontologia di partenza, che descrive il dominio di conoscenza a cui gli elementi del datasource sono riconducibili, potrebbe essere mappata un’ontologia contenente concetti di basso livello (colore dominante, intensità della luce, ecc.) [15] come i descrittori visuali presenti nello standard di codifica MPEG-7 espressi in formato RDF. A questi dovrebbero aggiungersi ontologie, anch’esse costruite a partire da MPEG-7, che forniscano una descrizione (scheme) del contenuto multimediale; infine occorrerebbe una core ontology 23 che possa fungere da ponte tra le descrizioni di basso e quelle di alto livello. 23 La cosiddetta core ontology modella delle primitive concettuali che possono essere sfruttate dalle varie ontologie che fanno parte dell’architettura. Per approfondire, vedi [18] p.2 22 Capitolo 3 Linked Data Il World Wide Web ha modificato radicalmente il nostro modo di condividere la conoscenza, contribuendo alla creazione delle condizioni necessarie per la pubblicazione e l’accesso a documenti collocati in uno spazio d’informazione globale. Se da un lato i collegamenti ipertestuali consentono di percorrere questo enorme spazio, d’altro canto i motori di ricerca sono in grado di indicizzare i documenti e analizzare i collegamenti esistenti tra di essi, provando a inferire i risultati di maggiore rilevanza per le query di ricerca degli utenti. Indubbiamente, la natura generica, aperta ed estensibile del Web ha costituito la base per una crescita incondizionata del sistema e per lo sviluppo di strumenti in continua evoluzione atti ad esplorarlo. 3.1 Che cosa sono i Linked Data? Il principio di condivisione che ha contraddistinto la pubblicazione dei documenti sul Web, malgrado i benefici citati poc’anzi, non ha ancora trovato una compiuta applicazione nel contesto dei dati. Tradizionalmente, essi vengono diffusi in maniera disordinata e caotica, con scarse possibilità d’integrazione. I formati di maggiore utilizzo vanno dal CSV (Comma-Separated Value) all’XML (eXtensible Markup Language), passando per la marcatura attraverso tabelle HTML, che sacrificano gran parte della struttura e della semantica dei dati. In un ambiente di questo tipo, l’ipertesto convenzionale definisce soltanto un legame implicito, la cui natura non è sufficientemente espressiva da consentire una relazione tra le varie entità presenti in un documento con le altre entità, presenti in documenti diversi, che alle prime sono correlate. Tuttavia, negli ultimi anni il Web si è evoluto da spazio di informazione globale costituito da documenti collegati, verso un sistema nel quale sia i dati che gli stessi documenti risultano interconnessi tra di loro. Alla base di questa evoluzione vi è un insieme di best practices per la pubblicazione e la connessione di dati strutturati 23 3 – Linked Data sul Web noto come Linked Data1 . L’adozione di queste pratiche ha determinato la creazione di uno spazio globale parallelo a quello che raccoglie i documenti, nel quale dati provenienti da domini di conoscenza diversi sono collegati tra di loro, il cosiddetto Web of Data. Quest’ultimo consente nuovi tipi di applicazione: esistono i Linked Data browsers che permettono la navigazione all’interno di datasource differenti, oppure motori di ricerca che sono in grado di scansionare il Web of Data ed offrire la possibilità di strutturare delle query del tutto simili a quelle per esplorare database locali. Si aprono inoltre nuove possibilità all’interno di uno specifico dominio. A differenza delle cosiddette Mash-up che sfruttano un insieme fisso e statico di sorgenti di dati, le applicazioni Linked Data operano sull’interno spazio di dati e sono in grado di rispondere alle esigenze dell’utente in maniera sempre più completa ed efficiente a mano mano che nuove fonti di dati compaiono sulla rete. 3.1.1 Linee guida Affinché i dati possano essere pubblicati2 e riutilizzabili, occorre che venga definito un insieme di regole che ne favorisca l’interoperabilità. Nel 2006 Tim Berners-Lee [3] propose alcune linee guida per fare in modo che i dati entrassero a far parte di uno spazio globale complesso: • l’utilizzo di URI per l’identificazione delle risorse; • l’utilizzo del protocollo HTTP per permettere di attraversare e consultare queste risorse; • la necessità di sfruttare standard come RDF e SPARQL per esplorare un URI e reperire informazioni utili; • la creazione di collegamenti tra i vari URI al fine di scoprire nuove risorse. Tuttavia, in una presentazione tenuta nel 2009 all’interno del ciclo di conferenze TED3 lo stesso Berners-Lee rivisita e sintetizza i principi del Linked Data all’interno di tre regole di base4 : • ogni risorsa riconducibile a un oggetto del mondo reale è contraddistinto da un identificativo che comincia con HTTP; 1 Il paper intitolato Linked Data - The Story So Far [6] evidenzia lo stato dell’arte dei Linked Data ed ha fornito gli spunti principali per lo sviluppo di questo capitolo 2 Vedi paragrafo ‘Pubblicare Linked Data sul Web’ 3 http://www.ted.com/talks/tim berners lee on the next web.html 4 http://en.wikipedia.org/wiki/Linked Data 24 3.2 – Tecnologie del Linked Data • lo scopo principale per il quale vengono utilizzati i Linked Data è quello di ottenere informazioni. Per questi motivi, i dati devono essere espressi in formato standard, affinché possano essere utili e riutilizzabili dagli utenti; • l’informazione da ottenere non è legata, ad esempio al peso, all’altezza o alla data di nascita di una persona, ma riguarda l’insieme di relazioni che essa ha instaurato con tutti gli altri elementi del mondo reale. Inoltre, nel momento in cui tali relazioni vengono definite e dichiarate in maniera esplicita, alle risorse (o oggetti) collocate tra queste relazioni va attribuito un identificativo che comincia con HTTP. Anche all’interno delle nuove linee guida è menzionata la necessità di formati standard, pur senza esplicitare formati specifici quali RDF/XML, segno che gli elementi di apertura e condivisione dei Linked Data si ripercuotono anche in ambito tecnologico. 3.2 Tecnologie del Linked Data Il principio del Linked Data si basa su due tecnologie che sono fondamentali per il Web: lo Uniform Resources Identifier (URI) e l’HyperText Trasfer Protocol (HTTP). Mentre i cosiddetti Uniform Resource Locator (URL) sono molto familiari agli utenti, poiché rappresentano gli indirizzi ai quali è possibile reperire documenti ed entità di altro genere situati sul Web, gli URI forniscono un mezzo più generico per poter identificare qualsiasi entità riconducibile ad oggetti presenti nel mondo reale. Qualora inoltre le risorse identificate da URI utilizzino uno scheme http:// 5 , è possibile accedervi dereferenziando l’URI tramite il protocollo HTTP. In questo modo, si sfrutta un meccanismo semplice ma universale per il recupero delle risorse serializzato come un flusso di byte (l’immagine di un gatto), oppure della descrizione di entità che di per sé non potrebbe essere veicolata attraverso la rete (il gatto stesso). Ad URI e HTTP si aggiunge una tecnologia fondamentale per la realizzazione del Web of Data, ovvero RDF. Mentre HTML fornisce un insieme di strumenti per poter organizzare la struttura di un documento e consente la creazione di link, RDF è costituito da un generico modello di dati basato su grafi, le cui strutture di collegamento sono in grado di descrivere relazioni riconducibili a quelle esistenti nel mondo reale. L’RDF Vocabulary Definition Language e il Web Ontology Language definiscono inoltre una base di partenza per la creazione di vocabolari che possono essere usati per descrivere le entità del mondo reale cosı̀ come sono correlate. I vocabolari sono collezioni di classi e proprietà, anch’essi pubblicati in RDF, che mutuano termini da 5 http://en.wikipedia.org/wiki/URI scheme 25 3 – Linked Data RDFS e OWL, prevedendo diversi gradi di espressività nella modellazione di domini di interesse. Secondo il principio del Linked Data, chiunque è libero di pubblicare vocabolari all’interno del Web of Data: attraverso le triple RDF è possibile collegare le classi e le proprietà presenti in uno specifico vocabolario a quelle di un altro, definendo una sorta di mapping tra vocabolari che possiedono elementi in comune. In sostanza, con l’ausilio di URI per l’identificazione delle risorse, del protocollo HTTP come meccanismo di recupero e di RDF per rappresentare le descrizioni delle risorse, il Linked Data si basa direttamente sull’architettura generale del Web. Il Web of Data dunque può essere visto come un livello strettamente intrecciato al Web classico, che possiede molte delle sue proprietà: • il Web of Data è generico e può contenere qualunque tipo di dato; • chiunque può pubblicare sul Web of Data; • i data publishers non sono vincolati nella scelta dei vocabolari con cui intendono diffondere i dati; • le varie entità sono collegate tra loro da link RDF e danno vita ad un grafo di dati globale in continua espansione, che favorisce la scoperta di nuove sorgenti di informazioni. Nel caso in cui si vogliano sviluppare applicazioni che fanno uso di questi dati, occorre tener conto di alcune specifiche: • i dati sono rigidamente separati da aspetti di formattazione e presentazione; • i dati sono autodescrittivi: se un’applicazione in grado di “consumare” Linked Data incontra una serie di dati descritti secondo un vocabolario sconosciuto, l’applicazione può dereferenziare gli URI che identificano i termini del vocabolario per andare alla ricerca della loro definizione; • l’uso di HTTP come meccanismo di comunicazione e di RDF come standard di modellazione semplifica notevolmente l’accesso ai dati rispetto all’uso di Web API6 che tendono ad affidarsi a data model e interfacce eterogenei; • il Web of Data è aperto, il che significa che le applicazioni non devono essere implementate per sorgenti di dati fisse e specifiche, ma devono essere in grado di scoprire nuove fonti di dati seguendo i link RDF; 6 http://en.wikipedia.org/wiki/Web API 26 3.3 – Pubblicare Linked Data sul Web 3.3 Pubblicare Linked Data sul Web La pubblicazione di dati sul Web secondo il principio del Linked Data è costituita da una serie di pratiche che favoriscono la scoperta e l’utilizzo di questi stessi dati da parte delle applicazioni. Per raggiungere questo obiettivo, esistono alcuni passaggi fondamentali di cui occorre tener conto: assegnare una serie di URI alle entità descritte dal dataset, diffondere tali URI tramite il protocollo HTTP secondo un modello di rappresentazione RDF e definire collegamenti RDF verso altre fonti di dati presenti sul Web, facendo in modo che i clients possano navigare all’interno del Web of Data nel suo complesso. Di seguito, una panoramica generale su ciascuna di queste attività. 3.3.1 URI e vocabolari RDF I data providers possono scegliere tra due modelli di tipo HTTP URI per poter identificare le entità: 303 URIs7 e hash URI8 . Entrambi i pattern assicurano agli utenti la possibilità di distinguere tra URI che identificano le entità presenti nel mondo reale e quelli che invece identificano i documenti che descrivono queste entità. In un ambiente aperto come il Web, fornitori di contenuti differenti pubblicano dati circa una medesima entità del mondo reale, come ad esempio una specifica posizione geografica, oppure una celebrità: poiché è plausibile che un provider non conosca l’altro, ciascuno di essi potrebbe introdurre URI differenti per identificare la stessa risorsa. Nel caso della città di Berlino, ad esempio, DBpedia utilizza l’URI http://dbpedia.org/resource/Berlin, mentre Geonames http://www.geonames.org/2950159 : entrambi delineano il medesimo concetto e per tali motivi vengono definiti alias URI. A questo proposito, non è realistico prevedere che tutti i provider siano d’accordo sul medesimo URI per l’individuazione di un soggetto, tuttavia a questa condizione si accompagna un vera e propria funzione sociale, in quanto vi è la possibilità di esprimere opinioni diverse sul medesimo argomento. E’ prassi comune che i fornitori di informazioni diverse, parlando della medesima entità, definiscano il tag owl:sameAs per collegare tra loro alias URI di cui sono a conoscenza. 3.3.2 Generazione dei link I link RDF consentono alle applicazioni client di navigare tra le fonti di dati per scoprirne di ulteriori. Per poter essere parte del Web of Data, le sorgenti di informazioni collocate sulla rete dovrebbero impostare collegamenti RDF verso altri dataset. Poiché la quantità di dati da dover trattare è molto ampia, è una pratica 7 8 http://en.wikipedia.org/wiki/HTTP 303 http://en.wikipedia.org/wiki/Dereferenceable Uniform Resource Identifier 27 3 – Linked Data Figura 3.1. owl:sameAs - Il concetto di Berlino espresso tramite due risorse appartenenti a datasource differenti 28 3.4 – Il Linking Open Data Project oramai assodata utilizzare strategie automatiche o semi-automatiche per generare link RDF. In specifici settori vengono generalmente accettati gli schemi di denominazione. Ad esempio, nel campo della pubblicazione editoriale, esistono i codici ISBN e ISSN9 , in ambito finanziario vi sono identificatori quali ISIN10 , mentre EAN11 è ampiamente utilizzato per la catalogazione di prodotti. Se il dataset di origine e quello di destinazione supportano entrambi questo schema di identificazione, la relazione implicita esistente può essere resa esplicita attraverso RDF: un approccio di questo tipo è stato utilizzato per poter generare legami tra le varie fonti di dati presenti nella Linking Open Data (LOD) Cloud 3.2, che raccoglie i dataset pubblicati secondo i principi del Linked Data da parte di coloro che partecipano al progetto LOD. Qualora non vi sia alcuno schema di denominazione condiviso, è possibile creare collegamenti RDF sulla base della somiglianza tra due o più set di dati. I costi di natura computazionale richiesti dalla valutazione della similarità possono essere molto onerosi, a causa della vasta mole di contenuti da analizzare, in relazione ad aspetti come il record linkage 12 e il rilevamento dei duplicati nell’ambito di database community, cosı̀ come anche nel caso dell’ontology matching [9] nel contesto delle knowledge representation community. Un esempio di algoritmo di interconnessione automatico è rappresentato da quello descritto nello studio intitolato Automatic Interlinking of Music Datasets on the Semantic Web: al fine di impostare collegamenti RDF tra gli artisti presenti in Jamendo13 e MusicBrainz14 , viene utilizzata una combinazione di somiglianze metriche15 che tiene conto del nome degli artisti, nonché dei titoli dei loro album e canzoni16 . Altri framework per la generazione di link RDF forniscono un insieme di linguaggi dichiarativi per specificare quali tipi di collegamenti RDF devono essere creati e quale combinazione di somiglianze metriche devono essere sfruttate per confrontare le varie entità, conferendo una serie di punteggi che una volta aggregati forniscono un quadro complessivo dell’effettiva somiglianza tra dataset diversi. 3.4 Il Linking Open Data Project L’esempio più importante di adozione ed applicazione dei principi del Linked Data è costituito dal progetto Linking Open Data17 , comunità nata nel gennaio 2007 e 9 http://www.issn.org/ http://en.wikipedia.org/wiki/International Securities Identification Number 11 http://en.wikipedia.org/wiki/European Article Number 12 http://en.wikipedia.org/wiki/Record linkage 13 http://www.jamendo.com/it/ 14 http://musicbrainz.org/ 15 http://en.wikipedia.org/wiki/String metric 16 Per approfondire in dettaglio il funzionamento dell’algoritmo vedi bibliografia [16] p.4 17 http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData 10 29 3 – Linked Data sostenuta dal W3C Semantic Web Education and Outreach Group 18 . Lo scopo del progetto è quello di fungere da catalizzatore del Web of Data, identificando set di dati disponibili sotto licenze aperte, pubblicati in formato RDF rispettando i fondamenti del Linked Data e, ovviamente, diffusi attraverso il Web. Alle prime fasi del progetto hanno partecipato soprattutto ricercatori e sviluppatori appartenenti a laboratori di ricerca universitari ed aziende di piccole dimensioni. Da quel momento in poi il progetto è cresciuto notevolmente, coinvolgendo organizzazioni di grandi dimensioni come BBC, Thompson Reuters e non ultima la Biblioteca del Congresso. Un tale sviluppo è stato permesso dalla natura aperta del Linking Open Data, a cui qualsiasi soggetto può contribuire semplicemente pubblicando un insieme di dati secondo le specifiche citate in precedenza: un’indicazione dello stato attuale del progetto è fornita in figura 3.2. Ogni nodo del diagramma rappresenta un diverso set di dati pubblicato come Linked Data. Figura 3.2. Sezione del Linking Open Data Project Cloud Diagram. Per visualizzare l’intera cloud, visita: http://richard.cyganiak.de/2007/10/lod/ Gli archi indicano invece i collegamenti esistenti tra gli elementi nei due set di dati 18 http://www.w3.org/2001/sw/sweo/ 30 3.5 – DBpedia collegati. Archi più pesanti corrispondono inoltre a un maggior numero di relazioni tra due insiemi, mentre archi bidirezionali indicano una connessione reciproca tra due dataset. Il contenuto della “nube” può essere di natura diversa e comprende dati relativi a località geografiche, pubblicazioni scientifiche, film, musica, dati statistici ed altro ancora. Valutare l’esatta dimensione del Web of Data rappresenta un compito molto arduo e impegnativo a causa del fatto che i dati vengono appositamente generati da wrapper 19 per le basi dati relazionali o le API, che devono pertanto essere sottoposti a scansione prima di poter essere analizzati. In alternativa, è possibile compiere una stima a partire dalle statistiche raccolte dalla comunità LOD all’interno del wiki ESW: il Web of Data sarebbe attualmente composto da 4,7 miliardi di triple RDF interconnesse tra di loro da circa 142 milioni di collegamenti RDF20 . Osservando la figura 3.2 si nota come alcuni set di dati fungano da collegamento tra i diversi hub. Ad esempio, DBpedia consiste di triple RDF estratte dalle informazioni presenti sugli articoli di Wikipedia, mentre Geonames21 e Linked Geo Data22 forniscono descrizioni RDF di milioni di aree geografiche in tutto il mondo. Poiché questi dataset raccolgono URI e descrizioni RDF molto comuni ad entità e concetti di diverso genere, vengono frequentemente referenziate da set di dati più specialistici, ed hanno quindi sviluppato il ruolo di hub a cui è collegato un numero sempre crescente di dati. 3.5 DBpedia Fino a una decina di anni fa, la creazione di conoscenza di base è stata appannaggio di gruppi di scienziati impegnati all’interno di settori specifici. A partire dal 2001, con la nascita di Wikipedia, al lavoro degli esperti si è affiancata una conoscenza creata e mantenuta da migliaia di collaboratori provenienti da tutto il mondo, che ha contribuito, grazie alle informazioni veicolate sotto forma di dati strutturati, a migliorare l’intelligenza del Web. Su queste basi, il progetto DBpedia23 sfrutta una gigantesca mole di conoscenza estraendo informazioni strutturate da Wikipedia: il risultato consta di 2,6 milioni di soggetti, entro cui sono compresi 198 mila persone, 328 mila luoghi, 101 mila opere 19 http://en.wikipedia.org/wiki/Wrapper %28data mining%29 Per approfondire vedi http://esw.w3.org/topic/TaskForces/CommunityProjects/LinkingOpenData /DataSets/Statistic 21 http://www.geonames.org/ontology/ 22 http://linkedgeodata.org/About 23 http://dbpedia.org/About 20 31 3 – Linked Data musicali, 34 mila film e 20 mila imprese24 . Rispetto ad altri repository DBpedia copre dunque una vasta gamma di domini di conoscenza e si evolve in maniera automatica in relazione ai cambiamenti che si verificano su Wikipedia. Nella Tabella 3.1 vengono riportate le classi più comuni di DBpedia, con il numero di istanze a cui esse fanno riferimento e alcuni esempi delle properties maggiormente utilizzate per quelle specifiche classi. Classi Instanze Esempi di properties Person 198.056 name, birthdate, birthplace, employer, spouse Artist 54.262 activeyears, awards, occupation, genre Actor 26.009 academyaward, goldenglobeaward, activeyears MusicalArtist 19.535 genre, instrument, label, voiceType Athlete 74.832 current Team, currentPosition, currentNumber Politician 12.874 predecessor, successor, party Place 247.507 lat, long Building 23.304 architect, location, openingdate, style Airport 7.971 location, owner, IATA, lat, long Bridge 1.420 crosses, mainspan, openingdate, length Skyscraper 2.028 developer, engineer, height, architect, cost PopulatedPlace 181.847 foundingdate, language, area, population River 10.797 sourceMountain, length, mouth, maxDepth Organisation 91.275 location, foundationdate, keyperson Band 14.952 currentMembers, foundation, homeTown, label Company 20.173 industry, products, netincome, revenue Educ.Institution 21.052 dean, director, graduates, staff, students Work 189.620 author, genre, language Book 15.677 isbn, publisher, pages, author, mediatype Film 34.680 director, producer, starring, budget, released MusicalWork 101.985 runtime, artist, label, producer Album 74.055 artist, label, genre, runtime, producer, cover Single 24.597 album, format, releaseDate, band, runtime Software 5.652 developer, language, platform, license TelevisionShow 10.169 network, producer, episodenumber, theme Tabella 3.1. DBpedia: classi dell’ontologia, numero delle istanze, esempi di properties Per ciascuna entità, secondo i principi del Linked Data, DBpedia definisce un identificatore univoco globale che può essere dereferenziato. Grazie alla pluralità 24 I dati provengono dal paper intitolato DBpedia - A crystallization point for the Web of Data [7]. Lo studio ha fornito inoltre le linee guida per lo sviluppo del paragrafo ‘Struttura della conoscenza in DBpedia’ 32 3.5 – DBpedia di informazioni di cui è caratterizzata e alle licenze open con cui i contenuti vengono distribuiti, DBpedia rappresenta uno dei nodi centrali di interconnessione del nascente Web of Data, a cui gran parte dei content publishers fanno riferimento. In sintesi, i contributi che il progetto DBpedia fornisce al Web of Data sono i seguenti: • un framework di estrazione che converte i contenuti di Wikipedia in una ricca conoscenza di base multi-dominio, costantemente aggiornata grazie alla presenza di live feed ; • un’ontologia costruita a partire dalla mappatura delle InfoBoxes di Wikipedia, in grado di incrementare il valore qualitativo dei dati; • un identificativo univoco che contraddistingue ciascuna entità, elemento essenziale per la creazione di legami con altre sorgenti presenti sul Web; • un insieme di link di puntamento che hanno permesso lo sviluppo di una parte importante del Web of Data attorno a DBpedia stessa. 3.5.1 Struttura della conoscenza in DBpedia La knowledge base di DBpedia è composta da circa 274 milioni di triple RDF. Ogni soggetto è costituito da una serie di etichette e di brevi abstract descritti in 30 lingue diverse, 609 mila collegamenti, più di 3 milioni di link a pagine web esterne, 415 mila categorie Wikipedia e 286 mila categorie Yago. Per gli identificatori (URI) delle singole entità vengono prelevati i nomi degli articoli di Wikipedia in lingua inglese. Le informazioni provenienti dalle altre lingue vengono mappate su questi stessi identificatori in maniera bidirezionale, sfruttando i link presenti all’interno delle pagine di Wikipedia relativi alle diverse lingue in cui il contenuto è disponibile. Alle risorse vengono dunque assegnati URI il cui pattern è caratterizzato dalla forma http://dbpedia.org/resource/Name, in cui “Name” corrisponde alla sezione della URL dell’articolo di Wikipedia, espressa nella forma http://en.wikipedia.org/wiki/Name. Una scelta di questo genere determina diversi risvolti positivi: • gli URI di DBpedia coprono una vasta gamma di argomenti enciclopedici; • gli URI vengono definiti sulla base del consenso della comunità che contribuisce a Wikipedia; • esistono politiche chiare, senza ambiguità, in merito alla loro gestione; • una descrizione chiara e in forma testuale è reperibile con facilità alla pagina relativa di Wikipedia. 33 3 – Linked Data Le entità presenti in DBpedia vengono collocate all’interno di quattro specifici schemi di classificazione al fine di soddisfare esigenze applicative differenti: • le categorie di Wikipedia, espresse in DBpedia secondo lo standard SKOS25 (Simple Knowledge Organization System), strumento che fornisce un insieme di primitive per descrivere semplici schemi concettuali. Entrando nel dettaglio, il suo contesto di applicazione è costituito da schemi di classificazione, tesauri, tassonomie ed in generale vocabolari di concetti utili per la gestione e la ricerca di informazione. Il vantaggio principale consiste nel fatto che un sistema di classificazione di questo genere viene esteso in modo collaborativo ed aggiornato da migliaia di editori. Il principale svantaggio riguarda invece l’obsolescenza della categorizzazione che in certi casi non rispecchia l’evoluzione dei contenuti su Wikipedia; • lo schema di classificazione YAGO26 , costituito da 286 mila classi che formano una gerarchia basata sul concetto di sussunzione. Lo schema si basa sul mapping delle cosiddette leaf categories di Wikipedia, che quindi non possiedono sottocategorie. Le principali caratteristiche di YAGO riguardano, da un lato, la profondità con la quale si estende la gerarchia di classi che lo caratterizza e in secondo luogo la codifica di un gran numero di informazioni all’interno di una singola classe. A partire da tale presupposto, benché YAGO possa raggiungere un’elevata precisione, si verificano in alcuni casi errori ed omissioni a causa della generazione automatica delle classi; • l’ontologia UMBEL27 (Upper Mapping and Binding Exchange Layer ) sviluppata per l’interconnessione di dati e contenuti Web. Essa deriva da OpenCyc28 e comprende 20 mila classi. UMBEL è progettata per agire da riferimento per il collegamento e la mappatura di contenuti esterni, costituendo un ponte tra dataset differenti. Poiché sia YAGO che UMBEL sfruttano le synset 29 di WordNet30 , è possibile creare un mapping delle classi OpenCyc su DBpedia, attraverso l’uso di UMBEL; • l’ontologia costruita a partire dalle InfoBoxes presenti all’interno dell’edizione 25 http://www.w3.org/2004/02/skos/ http://en.wikipedia.org/wiki/YAGO %28Ontology%29 27 http://www.umbel.org/ 28 http://www.cyc.com/cyc/opencyc 29 All’interno di Wordnet, database semantico-lessicale per la lingua inglese, l’organizzazione del lessico si avvale delle cosiddette ‘synset’ e del collegamento dei loro significati attraverso diversi tipi di relazioni chiaramente definite. All’interno dei synset le differenze di significato sono numerate e definite. 30 http://wordnet.princeton.edu/ 26 34 3.5 – DBpedia inglese di Wikipedia consiste di 170 classi che formano una gerarchia basata anch’essa sulla sussunzione e comprende 720 properties. Ogni entità di DBpedia è descritta da un insieme di properties generali e di properties relative alle specifiche InfoBoxes. Le prime inglobano una breve etichetta, un abstract in inglese, un link al corrispondente articolo di Wikipedia, le coordinate geografiche, un link ad un’immagine che raffigura il soggetto e un insieme di link a pagine web esterne. Qualora vi fossero più versioni linguistiche, vengono aggiunti alla descrizione l’etichetta e l’abstract della lingua specifica assieme ai collegamenti alle diverse versioni linguistiche di Wikipedia. Le informazioni ottenute attraverso una generica estrazione di dati a partire dalle InfoBoxes è definita alla pagina http://dbpedia.org/property/namespace. Le proprietà ricavate invece attraverso un’estrazione mapping-based sulla base dell’ontologia costruita sulle InfoBoxes sono disponibili alla pagina http://dbpedia.org/ontology/namespace. All’interno della Tabella 3.2 vengono mostrate le cifre relative ai dataset costruiti grazie all’estrazione di informazioni generiche provenienti dalle Infoboxes, a quelli derivanti dall’estrazione di tipo mapping-based e ai dataset strutturati a partire dai collegamenti tra le pagine di Wikipedia. Nel caso di estrazione generica, si ottengono 1 milione e 462 mila risorse, mentre attraverso le ontologie se ne ottengono 843 mila. Vi sono poi 2 milioni 853 mila 315 link tra le varie pagine di Wikipedia. Per quel che concerne il numero di properties, i dataset generici ne utilizzano 38 mila 659, mentre il mapping-based dataset ne contiene 720. Il dataset sviluppato sulla base dei link sfrutta una sola property per rappresentare link non tipizzati tra le varie pagine Wikipedia. Extraction methods Generic extraction Mapping-based extraction Pagelinks Tabella 3.2. Described entities Mio. triples Unique properties Triples/property Triples/entity 1.462.108 843.169 2.853.315 26,0 7,0 70,2 38.659 720 1 673,7 9722,2 70,2mio 17,81 8,34 24,61 Comparazione tra le differenti tipologie di estrazione dei dati da DBpedia I dati di DBpedia, tratti dai contenuti pubblicati sulle pagine di Wikipedia, forniscono un insieme di informazioni che descrivono gli aspetti peculiari di una specifica entità. Ipotizzando che DBpedia inglobi nel suo insieme tutta la conoscenza prodotta dall’uomo (o che ne sia potenzialmente in grado in relazione al crescere di Wikipedia), essa può diventare un punto di riferimento per poter accrescere il valore di uno specifico dominio descrittivo. Consideriamo, ad esempio, un’ontologia costruita sui beni culturali appartenenti alla Regione Piemonte: con ogni probabilità essa conterrà un’entità definita ‘Palazzo Madama’ caratterizzata da una serie di relazioni con altre entità presenti all’interno dell’ontologia. Identificare la medesima 35 3 – Linked Data risorsa ‘Palazzo Madama’ presente su DBpedia31 , permetterebbe di incrementare il numero di relazioni che caratterizzano l’istanza presente nell’ontologia di partenza, accrescendo di fatto la conoscenza che quest’ultima è in grado di esprimere. A questo proposito, nel caso in cui sia verosimile che l’entità ‘Palazzo Madama’, collocata all’interno dell’ontologia sui beni culturali, possegga una relazione che identifica il suo architetto Filippo Juvarra, non si può dire altrettanto delle sue coordinate geografiche. In tal caso, sarà possibile recuperare tali coordinate da DBpedia, che potranno essere sfruttate per mostrare la specifica collocazione geografica. 3.6 Linked Data e Semantic Web Come già visto nel capitolo precedente, il desiderio di estendere le capacità del Web per la pubblicazione di dati strutturati risale ad una delle prime proposal per il World Wide Web32 . Le tendenze auspicate in queste prime fasi riguardavano soprattutto l’evoluzione dei documenti contraddistinti da una notevole facilità di comprensione da parte degli esseri umani (human-readable), affinché potessero contenere un insieme di informazioni manipolabili e comprensibili dalle macchine (machinereadable). Tali tendenze potrebbero essere viste come i semi che avrebbero dato vita, in una fase successiva, a quello che divenne noto come Semantic Web. Il concetto di SW viene interpretato in modi molto diversi. Tuttavia, malgrado la presenza di visioni differenti, l’obiettivo iniziale di costruire un Web of Data globale interpretabile dalle macchine resta costante in tutta la letteratura originale di questa materia. Secondo Tim Berners-Lee il primo passo consiste nell’inserire dati sul Web secondo una forma che le macchine sono in grado di comprendere o riconvertire il tutto in quella forma: “Questo è ciò che intendo con SW, un insieme di dati che possano essere trattati direttamente o indirettamente dalle macchine”. Pertanto, mentre il SW definisce il risultato finale di questo processo, i Linked Data forniscono i mezzi necessari per poter raggiungere tale obiettivo. Grazie alla pubblicazione di dati secondo i precetti del Linked Data, numerosi individui e gruppi hanno contribuito alla costruzione di un Web of Data grazie al quale sono stati in grado di supportare il riutilizzo, l’integrazione e l’applicazione di dati originati da fonti distribuite ed eterogenee. Nel prossimo futuro, alcune delle proposte più sofisticate associate alla visione del SW, sfruttando come base il principio del Linked Data, potranno diventare senza alcun dubbio una realtà. 31 Una strategia potrebbe essere quella di definire nell’ontologia la relazione owl:sameAs, di cui si è accennato nel paragrafo URI e vocabolari RDF dichiarando in maniera esplicita l’URI presente su DBpedia, oppure quella di sviluppare ex novo o sfruttare servizi esistenti in grado di risolvere l’eventuale label con la quale descriviamo l’entità all’interno dell’ontologia 32 http://www.w3.org/History/1989/proposal.html 36 Parte II Seconda Parte Capitolo 4 Stato dell’arte All’interno di questo capitolo si è scelto di riportare lo stato dell’arte della visualizzazione, ponendo l’attenzione su due aspetti nettamente separati: da un lato la visualizzazione delle ontologie, considerando quell’insieme di tecniche e strategie che vengono adottate a livello visivo per mostrare le relazioni che collegano i dati tra loro, e dall’altro la visualizzazione stessa dei dati, in particolar modo quelli che provengono da sorgenti differenti (pubblicati secondo le best practices del Linked Data) e convergono all’interno di una medesima interfaccia. LDI racchiude entrambe le caratteristiche: in primo luogo consente di esplorare uno specifico dominio di conoscenza costruito a partire dai dati collocati in un database relazionale, e dall’altro permette la visualizzazione dei dati stessi. Oltre a ciò, a partire da una risorsa specifica è possibile arricchire i dati preesistenti sfruttando quelli provenienti da dataset esterni, costruendo una vista opportuna in grado di visualizzarli. 4.1 Visualizzazione delle ontologie L’uso delle ontologie, in un contesto nel quale vi sono costanti progressi nell’ambito delle tecnologie di rete e dei supporti di memorizzazione, sta assumendo un ruolo sempre più importante. La crescente disponibilità di contenuti a disposizione dell’utente genera infatti numerose difficoltà nel reperimento dei dati di cui è alla ricerca. Per questi motivi, la descrizione di un dominio di conoscenza entro il quale tali dati sono contenuti, può fornire una serie di strumenti utilizzabili dagli algoritmi di ricerca per poter individuare efficacemente, attraverso processi di inferenza, l’informazione che risponde alle sue esigenze. Tuttavia, per la ricchezza di dettagli che l’ontologia è in grado di veicolare e per le ragioni di natura progettuale che il suo sviluppo richiede, è sorta parallelamente alla descrizione della conoscenza anche la necessità di visualizzarla. La visualizzazione di un’ontologia è un compito tutt’altro che semplice per diverse ragioni: in primo luogo, essa non rappresenta 39 4 – Stato dell’arte soltanto una gerarchia di concetti, ma definisce la natura delle relazioni esistenti tra di essi e gli attributi associati ad ogni singolo concetto. Inoltre, ad ogni elemento di tipo classe potrebbero appartenere da una a migliaia di istanze. Pertanto, non è semplice generare una visualizzazione che sia in grado di mostrare in maniera efficace un gran numero di informazioni e che allo stesso tempo consenta all’utente di eseguire con facilità tutta una serie di operazioni (come ad esempio la navigazione tra concetti) sull’ontologia. Oltre ai sistemi studiati specificatamente per la visualizzazione delle ontologie, però, esiste un insieme di tecniche adottate in altri ambiti che possono essere riadattate e sfruttate per questo scopo specifico. Nel paragrafo successivo verranno dunque affrontate alcune di queste tecniche, cercando di individuare i paradigmi di visualizzazione che fino ad oggi sono stati utilizzati per rendere in forma grafica le ontologie. 4.1.1 Tecniche di visualizzazione I metodi di visualizzazione possono essere raggruppati in base alle caratteristiche di presentazione, alle tecniche di interazione e alle funzionalità supportate: • liste indentate: la maggior parte dei sistemi che oggi permettono di creare e sviluppare ontologie tra cui Protégé1 , OntoEdit2 , Kaon3 e Ontorama4 offrono tra le proprie funzionalità una finestra che consente di esplorare la tassonomia (gerarchia delle classi) dell’ontologia espressa in forma di alberatura. In Figura 4.1 è rappresentata la finestra di navigazione delle classi, cosı̀ come proposta da Protégé. Il vantaggio principale delle liste indentate riguarda da un lato la semplicità di implementazione e di rappresentazione degli elementi grafici e in secondo luogo la familiarità dell’utente con questo genere di visualizzazione. Inoltre, esso propone una visione chiara delle singole classi e della loro gerarchia in quanto le etichette presenti sui nodi non si sovrappongono le une con le altre, evitando cosı̀ spostamenti del mouse da un elemento all’altro per mettere in chiaro l’etichetta. Sono previsti inoltre meccanismi per l’espansione e il collasso dei nodi, con l’obiettivo di mettere a fuoco soltanto parti specifiche della gerarchia, in particolare per quelle di grandi dimensioni. La semplicità dell’interfaccia consente una navigazione veloce, ragion per cui tale paradigma viene adottato nella maggior parte dei casi come principale strumento per l’editing delle ontologie: altrettanto facile risulta infatti l’individuazione di classi specifiche e delle istanze appartenenti a una data classe. 1 http://protege.stanford.edu/ http://www.semtalk.com/semnet files/POntoEdit.htm 3 http://kaon.semanticweb.org/ 4 http://tinyurl.com/ontorama 2 40 4.1 – Visualizzazione delle ontologie Figura 4.1. Visualizzazione dei concetti dell’ontologia della Pizza, comunemente proposta per spiegare gli elementi principali di un’ontologia, in Protégé 41 4 – Stato dell’arte La scelta di una visualizzazione ad albero, tuttavia, determina una serie di limitazioni da un punto di vista della ricchezza di informazioni che si possono rappresentare. Le liste indentate mostrano infatti soltanto relazioni di tipo padre/figlio e non sono in grado di evidenziare in maniera efficace anche relazioni di tipo diverso. Inoltre, casi di ereditarietà multipla non sono molto chiari e dunque un utente che ha poca familiarità con le ontologie potrebbe rimanere disorientato dal fatto che una medesima classe possa apparire più volte, all’interno di sub-gerarchie differenti. Nel caso di ontologie di grandi dimensioni, inoltre, porzioni specifiche possono essere visualizzate soltanto una alla volta, determinando da un lato una gestione degli elementi grafici incapace di sfruttare tutto lo spazio a disposizione e dall’altro la necessità di scorrimento manuale durante la navigazione; • alberatura tramite nodi e link: in questa categoria sono inserite tecniche che rappresentano le ontologie come un insieme di nodi interconnessi, in cui la tassonomia è mostrata con un layout che si estende dall’alto verso il basso, oppure da sinistra a destra. L’utente è generalmente in grado di sviluppare e ritirare i nodi e le loro sotto-strutture, al fine di regolare il dettaglio delle informazioni riportate, evitando situazioni di confusione e ingombro di elementi sullo schermo. OntoViz5 , ad esempio, è un plug-in di visualizzazione sfruttato da Protégé che si basa su GraphViz6 , libreria che fornisce un insieme di primitive per la realizzazione di grafici 2D. In OntoViz le classi dell’ontologia vengono rappresentate con un’etichetta di identificazione, con le loro proprietà e con le proprie relazioni. Le istanze vengono identificate con un diverso colore, ed è possibile compiere operazioni per ingrandire o ridurre le dimensioni del grafo. IsaViz7 fornisce invece un ambiente visuale per la creazione e la navigazione di ontologie, strutturate secondo un grafo orientato (Figura 4.2). Gli elementi grafici principali sono ellissi e rettangoli, che rappresentano rispettivamente le classi ed i valori delle proprietà associate a tali classi, ed archi che definiscono invece la natura di tali proprietà. Altri strumenti come SpaceTree8 adottano alcuni accorgimenti come la creazione di un’icona di anteprima per i rami che non possono essere completamente aperti o la possibilità di modificare l’orientamento del grafo. TreePlus9 propone invece una metafora grazie alla quale è possibile esplorare la gerarchia a partire da un nodo specifico, sfruttando un layout ad albero che si estende da 5 http://protegewiki.stanford.edu/wiki/OntoViz http://www.graphviz.org/ 7 http://www.w3.org/2001/11/IsaViz/ 8 http://www.cs.umd.edu/hcil/spacetree/ 9 http://www.cs.umd.edu/hcil/treeplus/ 6 42 4.1 – Visualizzazione delle ontologie Figura 4.2. Visualizzazione di un’ontologia in Isaviz 43 4 – Stato dell’arte sinistra a destra, combinato con una serie di meccanismi per l’espansione e il collasso dei nodi. Una rappresentazione di tipo tree definisce una struttura molto comune ed intuitiva per le classificazioni di tipo gerarchico. Questo sistema offre una buona panoramica delle sotto-strutture, nelle quali è possibile distinguere con chiarezza l’estensione e la profondità della gerarchia. Malgrado ciò, i metodi con cui nodi appartenenti a livelli diversi vengono collegati tra loro causano, a meno di particolari accorgimenti come il lo sviluppo e il ritiro dei nodi, un sovraffollamento di una specifica zona dello schermo, mentre la parte opposta rischia di rimanere non adeguatamente utilizzata. Inoltre, qualora si abbia a che fare con un gran numero di nodi, potrebbero occorrere più schermi per la visualizzazione e degli strumenti (manuali o preferibilmente automatici) per lo scorrimento; • tecniche con ingrandimento: raccolgono tutti i metodi che presentano i nodi appartenenti ai livelli inferiori della gerarchia, annidati all’interno dei propri “genitori”, con dimensioni inferiori rispetto a quest’ultimi. Tali tecniche consentono all’utente di effettuare operazioni di zoom-in sui nodi figli per ingrandirli, modificando il livello principale di visualizzazione. Grokker10 , ad esempio, è un sistema per la visualizzazione di mappe concettuali. E’ stato studiato come mezzo per fornire una rappresentazione grafica di informazioni relative ai risultati provenienti da una motore di ricerca di documenti o più in generale di file: un meccanismo di clustering è in grado di presentare gli oggetti come una serie di diagrammi di Venn11 annidati gli uni negli altri (vedi Figura 4.3). Gli utenti possono navigare attraverso la gerarchia, cliccando all’interno dei cerchi che, una volta selezionati, vengono ingranditi con una serie di animazioni. L’intensità del colore permette inoltre di separare i livelli più bassi contraddistinti da un alto grado di opacità, da quelli più alti caratterizzati da elevati livelli di trasparenza. Un principio simile è quello adottato dai cosiddetti cropcircles 12 , nei quali la struttura gerarchica delle classi viene mostrata secondo un insieme di cerchi concentrici. I nodi figli vengono collocati all’interno del nodo padre e la presenza di un pannello nel quale viene presentata la lista delle classi consente operazioni di ‘esplosione’ dei nodi per poter esplorare livelli differenti della gerarchia, con un supporto per la cronologia di navigazione dell’utente. 10 http://library.stanford.edu/about sulair/special projects/stanford grokker.html http://en.wikipedia.org/wiki/Venn diagram 12 http://www.mindswap.org/2005/cropcircles/ 11 44 4.1 – Visualizzazione delle ontologie Figura 4.3. Visualizzazione dei risultati di ricerca in Grokker 45 4 – Stato dell’arte Le interfacce di tipo zoomable sono molto efficaci per individuare nodi specifici in quanto forniscono dimensioni diverse a seconda del livello di gerarchia di appartenenza. Tuttavia, potrebbero essere migliorate fornendo ulteriori spunti di navigazione che consentano all’utente di ricondurre il concetto di gerarchia a strutture con cui ha maggiore familiarità, come le liste indentate e gli alberi. A queste sarebbe utile aggiungere ulteriori informazioni sul livello di profondità della gerarchia che in quel momento si sta esplorando; • tecniche di riempimento dello spazio (o tree map): a questa categoria appartengono tutte quelle tecniche che utilizzano l’intero spazio dello schermo, associando ad ogni area disponibile uno specifico nodo e tutti i figli che ad esso fanno riferimento. La dimensione di ogni suddivisione corrisponde a una proprietà del nodo, e fornisce indicazioni sull’estensione del nodo stesso in relazione al numero di figli che possiede. Nell’ambito delle ontologie, questo genere di visualizzazione è stato impiegato dal Gene Ontology Consortium 13 : tale sistema sfrutta una serie di funzionalità tra le quali etichette, dimensioni differenti per identificare geni di natura diversa. Inoltre, l’utente può compiere operazioni di zoom sui dettagli con un doppio clic sull’area di interesse. Attraverso questo accorgimento, è possibile effettuare un’interrogazione dei dati che appartengono nello specifico alla zona che viene visualizzata in quel momento, piuttosto che un’interrogazione complessiva(Figura 4.4). Una variante della classica visualizzazione a riempimento di spazio è l’approccio proposto dalle cosiddette information slices: in questa tecnica vengono utilizzati uno o più dischi circolari per definire la gerarchia, proponendo una struttura più compatta. Ciascun disco rappresenta un livello della gerarchia, e le varie sub-divisioni sono in grado di adattarsi in relazione allo spazio disponibile e alla numerosità con cui sono presenti (vedi Figura 4.5); • tecniche di alterazione del grafo: questo gruppo di tecniche si basa sul presupposto di un’alterazione della vista del grafo, in grado di combinare elementi legati al contesto di visualizzazione e alla messa a fuoco. Di solito, un nodo specifico rappresenta l’obiettivo prioritario dell’analisi dell’utente. Il resto dei nodi gravita attorno ad esso in dimensioni progressivamente più ridotte e a distanze sempre più consistenti dal nodo centrale, fino a raggiungere un punto in cui i nodi non sono più visibili. Per poter ottenere questo obiettivo, di solito si utilizza una funzione iperbolica. Un albero costruito sfruttando tale funzione è quello utilizzato per presentare l’ontologia del Brazilian Agricultural Research Society. La radice dell’albero si colloca inizialmente al centro di 13 http://www.cs.umd.edu/hcil/bioinfovis/treemap.shtml 46 4.1 – Visualizzazione delle ontologie Figura 4.4. Visualizzazione di tipo tree map dell’ontologia del Gene Ontology Consortium 47 4 – Stato dell’arte Figura 4.5. Visualizzazione basata sulle information slices circolari 48 4.1 – Visualizzazione delle ontologie una zona circolare, con i nodi figli che si dispongono attorno ad esso, e i loro rispettivi figli a loro volta posizionati attorno ai propri nodi padre. La distanza esistente tra nodi appartenenti allo stesso livello diminuisce progressivamente al crescere del loro numero. A seguito della trasformazione iperbolica, tuttavia, l’albero continua a riadattarsi secondo una forma circolare: per questi motivi, la tecnica si basa su una serie di distorsioni con l’obiettivo di mantenere una visualizzazione collocata entro certi limiti (vedi Figura 4.6). Figura 4.6. Visualizzazione di una porzione dell’ontologia adottata dal Brazilian Agricultural Research Society BiFocal Tree propone invece una visualizzazione basata sulla focalizzazione di uno specifico contesto concettuale, ma a differenza di altri sistemi intende sfruttare due fuochi, anziché uno soltanto. Esso mostra una gerarchia disposta su due diagrammi interconnessi: una focus area che ingloba la porzione di grafo contenente il nodo di interesse e una context area che contiene il nodo padre e le restanti sotto-zone del grafo che in quel momento non vengono prese in considerazione (vedi figura 4.7). 49 4 – Stato dell’arte Figura 4.7. Visualizzazione di concetti in BiFocal Tree 50 4.1 – Visualizzazione delle ontologie Questo genere di tecniche, caratterizzato da un insieme di espedienti combinati fra loro, presenta diversi vantaggi. Innanzitutto, un nodo di interesse può essere collocato al centro della struttura, per poter visualizzare maggiori particolari, mantenendo integro l’insieme dei nodi ad esso collegato. D’altra parte, il fatto di non mantenere costante il posizionamento dei nodi, potrebbe disorientare l’utente. Per questi motivi, benché queste tecniche siano molto efficaci nel visualizzare un gran numero di nodi, consentendo inoltre una focalizzazione della vista su nodi specifici, non offrono una rappresentazione evidente della struttura gerarchica, poiché spesso si verifica un ingombro dei nodi e delle etichette ad essi associati. Quest’ultimo aspetto, unito al completo aggiornamento della vista ogniqualvolta si esplora il grafo, può provocare delle difficoltà all’utente nella generazione di un’astrazione mentale dell’ontologia. 4.1.2 Multidimensionalità Ad ognuno dei paradigmi di visualizzazione presentati nel paragrafo precedente è applicabile anche la terza dimensione. Tuttavia, la scelta di rappresentare gli elementi di un’ontologia su due o tre dimensioni è legata al device specifico che dovrà riprodurre in forma grafica la struttura. I metodi basati su una visualizzazione 2D sfruttano l’intero piano dello schermo, tralasciando il concetto di profondità. Gli strumenti che offrono una visualizzazione 3D14 (vedi Figura 4.8) tengono conto della terza dimensione per creare effetti grafici riconducibili a metafore del mondo reale o per migliorare la navigazione in termini di usabilità. Malgrado ciò, una “materializzazione” su tre dimensioni presenta alcune problematiche: 3D visualization in general requires increased system resources in order for navigation and viewing to be smooth and without delays and, as a result, is probably not suitable for web use. Furthermore, the 3D methods presented here employ more complex navigation methods and may be a little frustrating and disorienting for a novice user. [13] Un approccio efficace consiste perciò nel riuscire ad arricchire l’esperienza con cui l’utente si confronta in presenza delle sole due dimensioni, in modo tale che l’esplorazione del grafo possa avvenire secondo prospettive differenti (si potrebbe sfruttare un’ibridazione delle tecniche presentate in precedenza), evitando però manipolazioni nella terza dimensione: all’interno del lavoro intitolato Multi-View Ontology Visualization [8], ad esempio, viene presentato un sistema che permette la visualizzazione del grafo, sfruttando strutture geometriche differenti. 14 Uno degli esempi più importanti http://ontosphere3d.sourceforge.net/index.html 51 di visualizzatori 3D è Ontosphere: 4 – Stato dell’arte Figura 4.8. Visualizzazione dei concetti di un’ontologia in Ontosphere 52 4.2 – Linked Data browsers 4.2 Linked Data browsers Cosı̀ come i browser web tradizionali consentono agli utenti di navigare tra le pagine HTML seguendo i collegamenti ipertestuali, i Linked Data browser permettono loro di navigare tra le fonti di dati attraverso link espressi sotto forma di triple RDF. Nel caso in cui ad esempio volessi reperire alcune informazioni sull’architetto ‘Filippo Juvarra’, potrei andare alla ricerca su DBpedia dei palazzi di cui è stato architetto. Scorgendo tra questi ‘Palazzo Madama’, qualora desiderassi avere maggiori informazioni per conoscere, ad esempio, quali altri edifici storici si trovano nelle sue vicinanze, potrei collegarmi a Geonames ed accedere a questo tipo di dato. Il risultato dunque è che l’utente può cominciare ad esplorare una fonte di dati specifica e progressivamente attraversare il Web, basandosi sulle strutture RDF, piuttosto che sui link HTML. Esiste però un elemento fondamentale di cui occorre tener conto: da un lato occorre considerare quegli strumenti che consentono unicamente una navigazione tra le risorse provenienti da sorgenti diverse, come ad esempio Disco, d’altro canto bisogna tener conto di altre applicazioni, come Tabulator e in parte Sig.ma, che hanno sviluppato delle vere e proprie viste per questi stessi dati. LDI si colloca, per ora, tra quest’ultimi. Pur collegandosi a una sorgente esterna, l’obiettivo resta quello di estrarre il dato dalla risorsa, costruendo una vista adeguata in grado di valorizzarlo. Di seguito vengono riportati alcuni esempi di Linked Data browsers, descrivendo per ciascuno le caratteristiche di maggiore rilevanza. 4.2.1 Disco Disco15 è un semplice browser per navigare il Semantic Web come un insieme di fonti non legate tra loro. Inizialmente, viene eseguito un rendering di tutte le informazioni che l’applicativo è in grado di scovare su una risorsa specifica come una pagina HTML. Con ogni probabilità, essa conterrà un insieme di collegamenti ipertestuali che consentono di navigare tra le risorse: passando da una all’altra, il browser recupera dinamicamente le informazioni dereferenziando URI HTTP e seguendo collegamenti di tipo rdfs:seeAlso. L’applicazione risulta di semplice utilizzo per l’utente. L’esplorazione comincia con l’inserimento di un URI nella casella di navigazione. Dopo aver premuto il tasto ‘Go!’, il browser comincia a recuperare le informazioni su questa specifica risorsa dai dataset pubblicati secondo le best practices dei Linked Data. Tali informazioni vengono visualizzate come una tabella costituita da una prima colonna che identifica le proprietà, una seconda che raccoglie i valori ad esse relativi ed una terza che elenca le fonti dalle quali tali informazioni provengono. Per quest’ultime vengono utilizzate delle abbreviazioni (G1, G2, ecc.) che in una tabella successiva consentono 15 http://www4.wiwiss.fu-berlin.de/bizer/ng4j/disco/ 53 4 – Stato dell’arte Figura 4.9. Screenshot dell’interfaccia di Disco 54 4.2 – Linked Data browsers di consultare le fonti di origine. Cliccando sul collegamento ipertestuale che riguarda la descrizione delle risorsa, inoltre, il browser archivia tutti i grafi RDF recuperati in una cache di sessione. Attraverso il link ‘Display all RDF graphs’ è possibile visualizzare una lista di tali grafi, nonché un elenco degli URI che non sono stati dereferenziati con successo (vedi Figura 4.9). 4.2.2 Tabulator Tabulator [5] è uno strumento che consente l’esplorazione e l’analisi dei dati presenti sul Semantic Web. L’utente è in grado di esplorare l’abstract di una risorsa appartenente al Web of Data. In ogni momento, cliccando su una cella di dati, è possibile evidenziare le fonti di origine e il relativo stato. Con un un doppio click sulla sorgente è possibile visualizzare i metadati relativi a quella specifica fonte. Inoltre, qualora all’informazione si possa associare un URI dereferenziabile, viene visualizzato un piccolo bottone che assume il colore blu nel caso in cui i dati non fossero ancora accessibili, il verde nel caso di quelli recuperati, il giallo se sono in fase di recupero e infine il rosso nel caso in cui i dati non siano stati trovati (Figura 4.10). Figura 4.10. Screenshot di Tabulator in modalità ‘esplorazione’ In Tabulator, la progettazione dell’interfaccia utente tiene conto di due modalità di funzionamento: l’esplorazione e l’analisi. Se da un lato, infatti, lo spostamento da un nodo ad un altro ci obbliga a ridefinire la nostra prossima mossa ad ogni passo16 , occorre tener conto del fatto che la maggior parte delle data applications come quelle per la gestione di denaro o degli appuntamenti su un calendario, obbliga a trattare i dati in maniera ben definita e specifica per l’applicazione. Nella fase di 16 Nel caso del World Wide Web l’esplorazione di un link specifico nasce come sensazione istintiva che consentirà di rivalutare la sensazione dopo ogni link 55 4 – Stato dell’arte esplorazione, l’utente somministra un URI a Tabulator. A partire da esso, l’utente è in grado di esplorare un grafo RDF, mostrato secondo una lista indentata (Figura 4.10), espandendo i vari nodi per poter ottenere maggiori informazioni. Ogni volta che l’utente compie questa azione, Tabulator segue implicitamente una serie di link che potrebbero contenere nodi RDF, relazionati in qualche modo ai nodi che sono stati presi in considerazione. Per passare alla modalità di analisi, l’utente seleziona alcuni settori per definire un modello e chiede a Tabulator di trovare tutti gli esempi relativi a questo modello. Nella fase successiva, viene eseguita una query che tenta di ricondurre il modello stabilito in precedenza ai collegamenti che fanno parte del grafo RDF. I risultati ottenuti vengono visualizzati secondo un certo numero di punti di vista modulari: tabelle, proiezioni temporali su calendari (Figura 4.12), mappe geografiche (Figura 4.11). E’ possibile ritornare nuovamente alla modalità di esplorazione su una qualsiasi istanza presentata all’interno di tali viste. Figura 4.11. Visualizzazione di una mappa in Tabulator in modalità ‘analisi’ 56 4.2 – Linked Data browsers Figura 4.12. Visualizzazione di un calendario in Tabulator in modalità ‘analisi’ 57 4 – Stato dell’arte 4.2.3 Sig.ma Sig.ma17 è un’applicazione che consente di esplorare il Web of Data. Essa permette di sfruttare le informazioni provenienti da molteplici siti web non correlati tra loro, che incorporano informazioni in RDF, RDFa18 o secondo Microformats19 . Sig.ma può essere utilizzato in tre modi differenti: • browser web di dati: a partire da una qualsiasi entità è possibile esplorarne di nuove a partire dalla pagina risultante. E’ possibile navigare attraverso una vera e propria ‘rete di mash-up’ che tuttavia, a causa dell’eterogeneità delle sorgenti da cui vengono tratti i risultati, può generare del rumore. Il browser mostra da un lato le risorse che è possibile esplorare e dall’altro presenta una serie di viste (come nel caso delle immagini o di SlideShare nel caso si tratti di dati relativi a una presentazione); • widget embeddable: i risultati offerti da Sig.ma, una volta raffinati secondo le proprie esigenze, si possono incorporare all’interno di mail, twit o blog. Si tratta di dati che si modificano in base alle relazioni ed ai cambiamenti che si verificano nei dataset e che dunque risultano sempre aggiornati, ovunque vengano pubblicati; • API semantiche: con Sig.ma è possibile recuperare le descrizioni delle entità e delle proprietà ad esse associate in formato JSON o RDF. L’interfaccia dei risultati presenta due aree ben distinte. Una prima area, sulla sinistra, che offre tutti i risultati con i valori delle property associate all’entità presa in considerazione (Figura 4.13). Una seconda, posta sulla destra, permette di osservare invece quali sono le sorgenti da cui provengono i risultati, con la possibilità da parte dell’utente di classificare tali sorgenti come ‘Approved’ (e dunque affidabili), oppure ‘Rejected’ (o in altre parole inaffidabili o irrilevanti ai fini delle proprie ricerche) (Figura 4.14). 17 http://sig.ma/ http://en.wikipedia.org/wiki/RDFa 19 http://microformats.org/ 18 58 4.2 – Linked Data browsers Figura 4.13. Visualizzazione dei risultati in Sig.ma 59 4 – Stato dell’arte Figura 4.14. Visualizzazione dell’area contenente i riferimenti alle sorgenti dei dati in Sig.ma 60 Capitolo 5 Linked Data ICONVIS All’interno di questo capitolo viene proposta una panoramica delle tecnologie che sono state adottate per lo sviluppo dell’applicazione, ed un’analisi profondità sulle differenti modalità di visualizzazione che delineano i casi d’uso in cui è possibile sfruttare le caratteristiche di LDI. Dopo una breve panoramica del back end dell’applicazione e delle tecnologie principali adottate nel front end, l’analisi si concentra sulle tecniche sfruttate in primo luogo per la visualizzazione degli elementi che è possibile estrarre dall’ontologia, e in seconda istanza per la visualizzazione dei dati. 5.1 Il back end dell’applicazione La componente di back end si occupa da un lato di estrarre le informazioni presenti nell’ontologia e dall’altro di interfacciarsi con il database per poter accedere ai dati presenti al suo interno. Esso è stato sviluppato in Java EE, la versione enterprise della piattaforma Java, che fornisce una serie di strumenti per facilitare l’implementazione di architetture SOA1 solide e scalabili. La componente prende in input due file: l’ontologia descritta in formato OWL e un file di configurazione XML all’interno del quale l’amministratore di sistema definisce le specifiche query (per classi o istanze) che occorrono per poter interrogare il DB. Prima di effettuare il build dell’applicazione con Apache Ant2 , è necessario specificare all’interno di un file di properties il path in cui sono contenuti l’ontologia e il file XML. Per il deploy dell’applicazione viene utilizzato JBoss3 , application server open source che implementa l’intera suite di servizi Java EE. Il vantaggio nell’uso di JBoss riguarda il fatto di poter essere utilizzabile su qualsiasi sistema operativo che supporti Java. 1 http://en.wikipedia.org/wiki/Service-oriented architecture http://ant.apache.org/ 3 http://www.jboss.org/ 2 61 5 – Linked Data ICONVIS 5.2 Tecnologie del front end All’interno di questa sezione vengono affrontati da un lato gli aspetti relativi alle tecnologie sfruttate per la visualizzazione dei dati e dall’altro quelle relative al recupero dei dati presenti su DBpedia che, per rendere l’applicazione più rapida nel rispondere all’interazione con l’utente, sono state collocate nel front end. 5.2.1 ActionScript 3.0 Actionscript è un linguaggio di programmazione object-oriented di proprietà della Adobe Systems. Si tratta di un dialetto ECMAScript e dunque è caratterizzato dalla medesima sintassi e semantica di JavaScript. Esso viene utilizzato principalmente per lo sviluppo di siti Web ed applicazioni basati sulla piattaforma Adobe Flash Player. ActionScript è stato progettato inizialmente per il controllo di semplici animazioni vettoriali 2D realizzate in Adobe Flash. Nelle sue versioni successive sono state incrementate le capacità di scripting, con funzionalità che ne hanno permesso l’uso per lo sviluppo di giochi e applicazioni Web dinamiche in grado di contemplare l’uso di file multimediali. ActionScript 3.0 ha determinato una ristrutturazione fondamentale del linguaggio, tanto che utilizza una macchina virtuale completamente diversa rispetto a quella sfruttata per le versioni precedenti. Inoltre, esso ha aggiunto un supporto limitato per l’accelerazione hardware (DirectX, OpenGL). Oltre a ciò, ActionScript 3.0 fornisce un supporto per la dinamica 3D: rotazione lungo gli assi X Y e Z e texture mapping. Flare Prefuse Per poter visualizzare una gran mole di dati trattabili a livello grafico secondo esigenze specifiche, la scelta è stata quella di utilizzare un tool concepito per la visualizzazione di dati sul web, Flare Prefuse4 . Flare è una libreria sviluppata a partire da ActionScript 3.0 studiata per la creazione di elementi visuali. Il toolkit supporta la gestione dei dati, la codifica visiva, le animazioni e diverse tecniche di interazione. Esso fornisce inoltre un design modulare che aiuta gli sviluppatori nella creazione di tecniche di visualizzazione personalizzate. Rispetto ad altri strumenti quali ad esempio GraphViz5 , JGraph6 , Jung7 , JQuery Visualize8 , Flare fornisce il miglior 4 http://flare.prefuse.org/ http://www.graphviz.org/ 6 http://www.jgraph.com/ 7 http://jung.sourceforge.net/ 8 http://www.filamentgroup.com/lab/update to jquery visualize accessible charts with html5 from designing with/ 5 62 5.2 – Tecnologie del front end compromesso tra complessità di utilizzo, configurabilità e resa grafica. Gli strumenti offerti da Flare permettono di scegliere la forma del grafo con cui mostrare i dati in relazione alle proprie esigenze, consentendo inoltre il passaggio da una visualizzazione all’altra in modo molto semplice. In aggiunta, viene proposta una serie di interfacce che permettono di modificare gli elementi visivi di base (node, edge), utilizzando proprietà e metodi della classe ‘Graphics’ di ActionScript 3.0, per una notevole libertà di sviluppo. Esiste inoltre un insieme di strumenti molto potenti per la visualizzazione dei dati. Le informazioni infatti vengono conglobate all’interno delle istanze delle classi degli oggetti grafici, senza dover creare un ponte con le strutture dati fornite dal linguaggio di programmazione. Per poter visualizzare la label associata a un nodo, ad esempio , basta semplicemente specificare una stringa nella proprietà ‘data.label’ dell’istanza. L’oggetto di tipo ‘Labeler’, a cui si dovrà indicare quale property dell’elemento grafico contiene la stringa che dovrà essere visualizzata, provvederà ad associare a ciascuno di essi un oggetto grafico (istanza della classe Sprite) specifico di ActionScript 3, ed aggiungerlo come figlio (child ) o come livello (layer ) sovrapposto all’elemento. 5.2.2 DBpedia Lookup Service Il servizio DBpedia Lookup9 consente di andare alla ricerca degli URI presenti su DBpedia a partire da parole chiave correlate. Con il termine ‘correlate’ si può intendere da un lato l’etichetta (label ) associata ad un URI specifico, dall’altro invece un testo di ancoraggio utilizzato frequentemente in Wikipedia come riferimento a quel dato elemento. Ad esempio, la risorsa http://dbpedia.org/resource/United States può essere associata molto spesso alla stringa ‘USA’. I risultati forniti dal servizio vengono poi ordinati secondo il numero di link d’ingresso presenti sulle altre pagine di Wikipedia, che conducono alla pagina considerata. LookUp offre due diverse API: la ricerca di parole chiave e la ricerca a partire da un prefisso; l’URL definito per la richiesta delle risorse è caratterizzata dalla forma seguente: http://lookup.dbpedia.org/api/search.asmx/ -API-? -parametri-. Nel primo caso, la stringa utilizzata per scovare la risorsa su DBpedia può essere costituita da uno o più termini. Esaminando, ad esempio, tutti i luoghi collegati alla parola Berlino, è possibile comporre una richiesta di questo tipo: http://lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryClass=place &QueryString=berlin Nel secondo caso, è possibile impostare un tipo di analisi basato sull’autocompletamento. A partire da una stringa che definisce soltanto una parola chiave espressa 9 http://dbpedia.org/lookup 63 5 – Linked Data ICONVIS in modo parziale come ad esempio ‘Berl’, l’API è in grado di restituire una serie di risorse DBpedia tra cui anche http://dbpedia.org/resource/Berlin. Qualora si volesse effettuare una richiesta in cui vengono mostrate le cinque risorse più rilevanti a partire da un termine chiave che inizia con ‘Berl’ è possibile impostare la seguente URL: http://lookup.dbpedia.org/api/search.asmx/PrefixSearch?QueryClass=MaxHits=5 QueryString=berl All’interno della richiesta, vengono specificati tre parametri: • QueryString: una stringa grazie a cui è possibile recuperare un URI su DBpedia; • QueryClass: una classe DBpedia appartenente alla sua ontologia, a cui la risorsa dovrebbe appartenere (nel caso in cui la classe di appartenenza sia owl#Thing o per risorse non tipizzate, tale parametro deve restare vuoto). • MaxHits: il numero massimo di risultati restituiti. DBpedia LookUp ingloba attualmente i dati contenuti nella versione 3.6 di DBpedia. Da questo insieme sono esclusi tutti quei risultati che non rappresentano un’entità specifica, ma sono risorse di reindirizzamento. Il servizio è basto su un indice Lucene10 , costruito sulla base del dump della versione inglese di Wikipedia datata ottobre 2010. I risultati vengono rappresentati in formato XML e sono contraddistinti dai seguenti elementi: l’URI della risorsa, la label, una breve descrizione, le classi (URI ed etichetta), le categorie (URI ed etichetta), il numero di link in ingresso alla pagina di Wikipedia. All’interno della componente di front end le LookUp API sono state utilizzate per il matching con la risorsa presente all’interno di DBpedia. Per poter compiere tale operazione, è stata prelevata dall’ontologia l’etichetta del nodo considerato, sfruttandola per comporre la richiesta verso il servizio. Nel caso in cui la keyword search non vada a buon fine, l’applicazione prevede una prefix search, che come specificato in precedenza consente l’autocompletamento a partire da una stringa parziale. Un meccanismo di questo tipo implica la necessità che le etichette siano scritte in modo preciso e formalmente corretto. Allo stesso modo, entrano in gioco tutte le problematiche relative alla lingua di partenza che in molti casi può essere diversa dall’inglese. Ecco perché nello sviluppo e nell’uso di questo genere di applicazioni occorre tenere bene a mente tali aspetti, che tuttavia coinvolgono elementi che vanno al di là dello studio di metodi di visualizzazione adeguati. Infine, la scelta di collocare LookUp nel front end consente dei tempi di risposta molto più rapidi 10 http://lucene.apache.org/java/docs/index.html 64 5.3 – Visualizzazione rispetto a quelli necessari per un’ulteriore richiesta verso il back end Java da parte del client Flash. 5.3 Visualizzazione Gli aspetti relativi alla visualizzazione sono stati suddivisi a livello concettuale in tre parti differenti. La prima riguarda tutti gli elementi relativi alla visualizzazione dell’ontologia, in relazione alla grande quantità di informazioni che essa in grado di veicolare. In secondo luogo vengono affrontate le modalità con cui vengono visualizzati i dati presenti sul database su cui tale ontologia è stata sviluppata, e infine vengono spiegate le scelte effettuate per mostrare i dati provenienti da sorgenti esterne. 5.3.1 Elementi dell’ontologia Oltre alla struttura gerarchica con cui sono organizzate le rappresentazioni concettuali delle informazioni, un’ontologia racchiude al proprio interno le proprietà che caratterizzano i singoli concetti e le specifiche relazioni che intercorrono tra di essi. A tal proposito, occorre visualizzare opportunamente ciascun elemento dell’ontologia, affinché l’utente possa discernere senza troppi sforzi le informazioni che gli interessano: • Classi : è possibile visualizzare in una sola volta tutte le classi, oppure visualizzarne soltanto alcune in relazione alle esigenze dell’utente. Le classi vengono distinte l’una dall’altra associando a ciascuna di esse un identificativo espresso in forma intelligibile. Nel caso di LDI, la scelta è stata quella di visualizzare soltanto i concetti a cui l’utente è davvero interessato attraverso la ”esplosione” dei nodi durante la navigazione, incorporando all’interno dell’elemento grafico che rappresenta la classe una label prelevata direttamente dalla property rdfs:label dell’ontologia. Nel caso in cui tale property non sia presente, viene utilizzato direttamente il finale dell’URI che identifica il concetto. Poiché in alcuni casi il numero di nodi del medesimo livello (siblings) associato a una classe diviene tale da superare i limiti dello schermo, è stata introdotta una funzione che permette di visualizzare soltanto un certo numero di sottoclassi per volta: quando l’utente preme il bottone (Figura 5.1 - Elemento ‘Thing’), le sottoclassi visualizzate in quel momento si ‘ritirano’, dando spazio a quelle successive. In questa maniera si evita che l’utente rimanga confuso da una visualizzazione troppo pesante. Qualora una determinata classe possieda delle sottoclassi, sovrapponendo ad essa il cursore del mouse viene visualizzato un oggetto grafico di colore arancione, che una volta cliccato permette di visualizzare le relative sottoclassi (Figura 5.1 - Elemento ‘oggetto giuridico’). 65 5 – Linked Data ICONVIS Figura 5.1. Classi dell’ontologia con indicatore delle sottoclassi 66 5.3 – Visualizzazione • Istanze: non è opportuno visualizzarle come elementi inseriti direttamente all’interno del grafo che definisce la struttura gerarchica delle classi, poiché spesso sono molto numerose e potrebbero indurre l’utente a una confusione concettuale. Per questi motivi, una scelta opportuna risulta quella di introdurre una vista separata rispetto al grafo dell’ontologia, nella quale collocare gli individui della classe. LDI, a questo proposito, permette di visualizzare le istanze con molta facilità. In primo luogo, a partire dal grafo dell’ontologia, grazie a una piccola icona verde che compare nel caso in cui il cursore del mouse venga sovrapposto a una classe, è possibile capire innanzitutto se essa possiede delle istanze (Figura 5.2 - Elemento ‘vegetale’). Figura 5.2. Classi dell’ontologia con indicatore delle istanze Ovviamente, nel caso in cui una classe possieda sia sottoclassi che istanze, vengono visualizzati entrambi gli elementi grafici (Figura 5.3 - Elemento ‘materia prima’). Con un click sull’icona verde, è possibile accedere alle istanze. La nuova struttura visiva si presenta come una raggiera, al cui centro viene posta la classe presa in considerazione e agli estremi gli individui appartenenti a tale classe (Figura 5.4). La scelta dei colori aiuta l’utente finale a riconoscere con molta facilità la differenza tra classi e istanze. Per tornare alla vista del grafo principale, non si deve far altro che cliccare nella posizione in alto a sinistra dello schermo, laddove è posizionata l’anteprima del grafo (Figura 5.5). Anche in questo caso, qualora il numero degli individui fosse troppo elevato per una visualizzazione efficace sullo schermo, la medesima funzione adottata per le gestione delle classi consente ai nodi visualizzati in quel momento di essere ‘ritirati’, per far spazio alle nuove istanze da mostrare. 67 5 – Linked Data ICONVIS Figura 5.3. Classi dell’ontologia con indicatore di classi e istanze Figura 5.4. Visualizzazione delle istanze dell’ontologia 68 5.3 – Visualizzazione Figura 5.5. Visualizzazione delle istanze con anteprima del grafo delle classi 69 5 – Linked Data ICONVIS • Tassonomia (relazioni di tipo ISA11 ): la presentazione di questo elemento è essenziale per comprendere le relazioni di ereditarietà tra le classi. Il sistema deve fornire una visione olistica12 della tassonomia, all’interno di una rappresentazione gerarchica. Una visualizzazione parziale del grafo, che permette all’utente di concentrarsi su una porzione specifica della tassonomia, è inoltre una caratteristica desiderabile durante la navigazione (Figura 5.6). Figura 5.6. Visualizzazione di una porzione della tassonomia Per rispondere a questa esigenza, LDI implementa una serie algoritmi che consentono al grafo di scorrere in maniera automatica, a seconda di quale zona l’utente intenda esplorare. In particolare, nel momento in cui il nodo viene “esploso” con un clic del mouse, l’algoritmo controlla che i nodi figli siano in quell’istante visibili sullo schermo. Se cosı̀ non fosse, una funzione consente al grafo di scorrere quanto basta perché tutti i nodi figli possano essere visualizzati: il cerchio blu in Figura 5.7 mostra l’effettiva traslazione del grafo verso destra, affinché le sottoclassi di ‘artefatto’ possano essere visualizzate. Lo 11 Le relazioni ISA (termine che deriva dall’espressione “is a”) specificano che una classe deve considerarsi una sottocategoria o sottoclasse di un’altra detta superclasse 12 L’Olismo è una posizione filosofica basata sull’idea che le proprietà di un sistema non possano essere spiegate esclusivamente tramite le sue componenti. In questo caso specifico, con “visione olistica” intendo una visualizzazione complessiva del grafo in cui il dominio di conoscenza viene esplicitato mostrando non soltanto i singoli concetti, ma anche come essi si relazionano tra loro 70 5.3 – Visualizzazione scorrimento è implementato per tutte e quattro le direzioni e nel momento in cui un nodo ‘implode’, qualora fosse necessario per esigenze di visualizzazione, il grafo viene ‘riportato’ nella posizione di partenza. Figura 5.7. Movimento del grafo • Relazioni : hanno un ruolo cruciale all’interno delle ontologie. Come nel caso delle istanze, è consigliabile una visualizzazione separata dalla struttura gerarchica complessiva. L’alberatura infatti non permette di definire in maniera adeguata le relazioni, poiché oltre a indicare quali entità sono coinvolte, occorre specificare la natura di tali relazioni. Tramite un click su una delle istanze visualizzate (Figura 5.4), l’applicazione mostra le relazioni che intercorrono con le altre istanze definite nell’ontologia, che vanno a disporsi agli estremi di una raggiera (Figura 5.8). Cliccando sui nodi relativi alle altre istanze, è possibile reiterare la visualizzazione delle relazioni. Un’anteprima del grafo delle istanze appartenenti a una data classe viene mostrata nella zona in basso a destra dello schermo, al di sotto dell’anteprima 71 5 – Linked Data ICONVIS Figura 5.8. Relazioni dell’ontologia 72 5.3 – Visualizzazione riguardante la tassonomia delle classi. Tramite un click su una delle anteprime, l’utente può tornare ad esplorare il livello concettuale che gli interessa (Figura 5.9). Nella tabella seguente (5.1) viene riportata una sintesi delle strategie con le quali i principali visualizzatori di cui si è accennato nel capitolo precedente mostrano gli elementi principali dell’ontologia. Figura 5.9. Relazioni dell’ontologia con anteprime della tassonomia e delle istanze appartenenti a una classe Struttura ad albero Una visualizzazione di tipo tree, che si struttura secondo un diagramma nodo-link, è una delle vie più efficaci e intuitive per poter mostrare una rappresentazione gerarchica. È infatti possibile avere una panoramica della profondità e della larghezza che caratterizza una specifica porzione del grafo. Quest’ultimo inoltre può essere orientato dall’alto verso il basso (top-down) oppure da sinistra verso destra (left-right), a seconda delle esigenze del content provider e/o dell’utente. Alcuni dei principali punti deboli che vengono attribuiti a questo tipo di visualizzazione riguardano la necessità di scorrimento del grafo, o della presenza di più schermi nel momento in cui vi sia un numero molto elevato di classi o istanze da visualizzare [19]. D’altro canto, spesso lo scorrimento viene implementato tramite delle barre di navigazione: un’operazione sconsigliata perché costringe l’utente a spostare continuamente la propria attenzione dal grafo agli strumenti di spostamento e viceversa. 73 5 – Linked Data ICONVIS Metodi Classi e istanze Gerarchia classi delle Multiereditarietà Relazioni Protégé Le classi vengono presentate come nodi di una lista indentata che si possono ritrarre ed espandere. Le istanze vengono mostrate in una finestra separata I nodi figli vengono posizionati sotto il relativo padre, indentati verso destra I nodi figli vengono collocati in relazione a tutti i propri padri NO Isaviz Classi e istanze vengono rappresentate come liste etichettate I nodi sono linkati ai propri padri. La parentela è visibile attraverso una vista generale e una di dettaglio I nodi figli vengono collocati in relazione a tutti i propri padri Rappresentate tramite link etichettati Grokker Classi e istanze vengono rappresentate tramite cerchi colorati I nodi più profondi sono più piccoli rispetto ai propri padri e collocati all’interno di essi NO NO I nodi vengono rappresentati come dei riquadri colorati, con dimensioni differenti. Le etichette sono visibili soltanto fino a una certa profondità I nodi che si trovano a un livello gerarchico più basso vengono collocati all’interno dei propri padri NO NO BiFocal Tree I nodi sono rappresentati come rettangoli etichettati quando si trovano nella focus area e come cerchi all’interno della context area I nodi figli si dispongono attorno al proprio padre, lungo una circonferenza NO NO Ontosphere Classi e istanze sono rappresentate attraverso delle sfere Nella visualizzazione TreeFocus, i nodi figli vengono collocati più in profondità rispetto al proprio padre Nella visualizzazione TreeFocus, i nodi figli sono collegati a tutti i propri padri Nella visualizzazione ConceptFocus, vengono mostrati dei collegamenti etichettati Linked Data ICON- Le classi e le istanze vengono mostrate attraverso ellissi etichettate con colori diversi e visualizzati su grafi differenti I nodi figli vengono collocati sotto il rispettivo padre I nodi figli vengono mostrati sotto tutti i propri padri Le relazioni vengono mostrate in un grafo differente, attraverso collegamenti etichettati TreeMap Gene del Ontology Consortium VIS Tabella 5.1. Tabella di confronto tra differenti visualizzatori di ontologie e Linked Data ICONVIS Nel caso di LDI, qualora il numero di sottoclassi di un medesimo livello appartenenti a una specifica superclasse sia troppo elevato, si è scelto di visualizzare soltanto un certo numero di sottoclassi alla volta. Malgrado una visualizzazione di questo genere determini una perdita dell’informazione complessiva deducibile dall’ontologia, d’altra parte occorre ricordare che l’utente è interessato soprattutto alla 74 5.3 – Visualizzazione visualizzazione dei dati, piuttosto che del dominio di cui essi fanno parte. In secondo luogo, per poter evitare l’uso delle barre di scorrimento, nel caso di LDI sono stati sviluppati degli algoritmi di spostamento che permettono al grafo di scorrere in maniera automatica a seconda della zona che l’utente sta esplorando in quel momento. Secondo alcuni studi [10], uno degli approcci più efficaci per mostrare molti elementi attraverso una visualizzazione ad albero è quello utilizzato da SpaceTree che prevede tecniche di espansione e di ritorno dei singoli nodi (exapansion/retraction), con l’aggiunta di un espansione controllata dei cosiddetti subtrees, che appartengono al grafo complessivo. LDI attualmente prevede un meccanismo di espansione graduale dei nodi: la visualizzazione di partenza infatti mostra soltanto le sottoclassi di ‘Thing’, la classe a cui convenzionalmente si riferiscono tutti gli elementi di una qualunque ontologia. A quel punto, l’utente può esplorare il ramo del grafo che maggiormente gli interessa, guidato dagli algoritmi di scorrimento. Attualmente non è previsto un meccanismo di retraction che, nel caso in cui si rivelasse necessario, sarebbe molto semplice da implementare attraverso la libreria Flare Prefuse. 5.3.2 Visualizzazione dei dati LDI consente all’utente di visualizzare con estrema semplicità tutti i dati delle istanze di una specifica classe o di una singola istanza a partire dal grafo ontologico. Esplorando i concetti di un’ontologia sui beni culturali, ad esempio, è possibile raggiungere la classe ‘palazzo’. Nel caso in cui l’utente sia interessato ai dati del DB delle istanze della classe ‘palazzo’, può visualizzarle tramite un ‘interruttore’ contrassegnato da un’icona bianca, riconducibile alla forma di un DB. Il grafo tassonomico si riduce in alto a sinistra poco prima che i dati vengano visualizzati sullo schermo, in modo tale che l’informazione relativa all’esplorazione dei concetti da parte dell’utente non venga persa (Figura 5.10). Anziché visualizzare i dati di tutte le istanze di una classe, è possibile tuttavia ridurre il campo di ricerca a una singola istanza, in questo specifico caso ‘Palazzina di Caccia di Stupinigi’, visualizzando tutti i contenuti presenti nel DB. (Figura 5.11). Poiché ‘Palazzina di Caccia di Stupinigi’ è un’istanza della classe ‘palazzo’, vi si potrà accedere soltanto dopo aver esplorato le istanze di quest’ultima. In tal caso, anche il grafo che mostra le istanze si sposterà nella zona sinistra dello schermo per far posto alla visualizzazione dei dati. Come nei casi precedenti, è possibile tornare alla visualizzazione dei grafi relativi all’ontologia con molta semplicità, con un click nella zona in cui esse sono posizionate. 75 5 – Linked Data ICONVIS Figura 5.10. Figura 5.11. Visualizzazione dei dati delle istanze della classe ‘palazzo’ Visualizzazione dei dati dell’istanza ‘Palazzina di Caccia di Stupinigi’ 76 5.3 – Visualizzazione 5.3.3 Visualizzazione dei Linked Data Gli elementi che contribuiscono alla visualizzazione dei Linked Data costituiscono il terzo step dello sviluppo dell’applicazione. In questo caso i dati provengono da sorgenti esterne (DBpedia nello specifico), tuttavia si è deciso di mantenere una struttura coerente ed omogenea con le scelte adottate nel caso dell’ontologia e dei dati presenti sul DB. Se da un lato l’utente deve avere la possibilità di confrontarsi con un tipo di interazione a lui familiare, allo stesso modo l’applicazione deve indurlo a comprendere che sta visualizzando oggetti diversi dai precedenti. In primo luogo, dopo aver cliccato sull’icona che rappresenta la tripla RDF (vedi icona blu in Figura 5.8), viene mostrato un grafo orientato da sinistra a destra che gli consente di capire il genere di dati recuperati dai datasource esterni (Figura 5.12): l’elemento posizionato sulla sinistra rappresenta l’entità di cui vogliamo conoscere le informazioni, mentre sulla destra sono posizionati i nodi che riguardano una sintesi di tali informazioni. Per quest’ultimi, si è scelto di adottare il colore con cui vengono rappresentate le sorgenti di dati che fanno parte della Linked Data Cloud (Figura 3.2). Mentre il grafo mostra un’anteprima dei dati che l’applicazione è riuscita a recuperare, sulla zona destra dello schermo è stata creata una vista per poter visualizzare i dati in maniera completa e di facile comprensione per l’utente (Figura 5.14). La scelta di rappresentare un’informazione di sintesi è legata al fatto che, talvolta, per l’entità presa in considerazione DBpedia non contiene alcune voci. Nel caso di Antonio Ascari (Figura 5.15), ad esempio, non vi è la proprietà dbpediaowl:thumbnail, che di solito lega l’entità soggetto alla risorsa di una delle immagini contenute in Wikipedia. Le informazioni prelevate da DBpedia, ovvero il thumbnail, l’abstract di Wikipedia, i link esterni e gli URI per un’eventuale disambiguazione intendono mostrare una serie di contenuti che forniscono una sintesi dell’entità presa in considerazione e diverse indicazioni per consultare risorse ulteriori. Nel caso in cui inoltre si tratti di un’entità che si situa in uno specifico luogo, oltre ai dati descritti in precedenza viene visualizzata una mappa che indica la collocazione geografica, grazie alle coordinate prelevate da DBpedia (Figura: 5.13). Intuitivamente, la presenza di coordinate geografiche consente all’applicazione di capire se un’entità è effettivamente un luogo e di conseguenza richiedere al servizio Google Maps le primitive grafiche per la creazione della mappa. Le sezione legata agli URI alternativi non rappresenta soltanto un insieme di informazioni che s’intende semplicemente visualizzare. Nel caso di entità molto simili tra di loro, in cui la label adottata dall’ontologia non consenta al servizio LookUp13 di individuare l’entità corretta, gli URI forniti divengono preziosissimi. Essi costituiscono infatti una nuova finestra di navigazione attraverso cui l’utente, presa coscienza del fatto che le informazioni recuperate non si riferiscono all’entità rappresentata 13 Vedi Paragrafo DBpedia LookUp Service 77 5 – Linked Data ICONVIS Figura 5.12. Visualizzazione del grafo relativo all’istanza Cesare Pavese ed alle tipologie di dati recuperati da DBpedia 78 5.3 – Visualizzazione Figura 5.13. Visualizzazione dei dati relativi al comune di Chivasso prelevati da DBpedia 79 5 – Linked Data ICONVIS nell’ontologia di partenza, può “insegnare” all’applicazione quale sia la rispettiva risorsa presente su DBpedia. Questo elemento risulta di notevole importanza. L’applicazione, infatti, risolvendo le label presenti nell’ontologia, potrebbe andare alla ricerca in maniera automatica della stessa entità che su altri datasource, a livello concettuale, rappresenta la medesima di quella contenuta nell’ontologia di partenza. A quel punto, l’URI di tale risorsa potrebbe diventare il valore di una property come owl:sameAs all’interno dell’ontologia, andando ad incrementare il valore d’informazione che essa è in grado di esprimere. Laddove l’applicazione non sia in grado di riconoscere correttamente la risorsa, interviene ‘la mano dell’uomo’, dando vita, in una forma specifica, a quella cooperazione tra esseri umani e macchine ipotizzata da Tim Berners-Lee nel 2001 a proposito del Semantic Web. Infine, per passare dalla visualizzazione dei Linked Data all’esplorazione degli elementi dell’ontologia si sfruttano i meccanismi adottati in precedenza (Figura 5.16). Figura 5.14. Informazioni su Cesare Pavese prelevate da DBpedia 80 5.3 – Visualizzazione Figura 5.15. Figura 5.16. Informazioni su Antonio Ascari prelevate da DBpedia Finestra del browser durante la visualizzazione dei Linked Data 81 5 – Linked Data ICONVIS 82 Capitolo 6 Campi di applicazione e conclusioni Nei paragrafi successivi vengono analizzati due casi d’uso nei quali sarebbe possibile sfruttare le caratteristiche di LDI. Da un lato nell’ambito della Pubblica Amministrazione sia per gli operatori che si trovano a dover lavorare con una sterminata quantità di documenti, che per i cittadini che desiderano accedere ai dati che l’amministrazione è in grado di produrre. Dall’altro nel campo del Data Journalism, un fenomeno che, anche grazie all’apertura da parte delle stesse amministrazioni pubbliche, sta assumendo una rilevanza sempre maggiore per poter arricchire l’esperienza interattiva con cui l’utente si confronta. 6.1 Visualizzazione dei dati nella Pubblica Amministrazione Le informazioni e i contenuti prodotti dalla Pubblica Amministrazione (PA) rappresentano una risorsa strategica e un patrimonio di conoscenze che spesso risulta difficilmente accessibile da parte degli utenti in una forma chiara e intuitiva. Eppure, una diffusione accurata di questo genere di dati può rappresentare un elemento primario per favorire da un lato la partecipazione dei cittadini alla vita pubblica, e dall’altro la crescita economica e produttiva, la ricerca e l’innovazione. Il 26 luglio 2010 il Ministero per la pubblica amministrazione e per l’innovazione ha emanato un documento in cui vengono specificate le linee guida per la costruzione dei siti web per la PA1 . All’interno del documento si specifica come, nella maggior parte 1 Linee guida per i siti web della PA, art. 4 della Direttiva 8/09 del Ministro per la pubblica amministrazione e l’innovazione, 26 luglio 2010 83 6 – Campi di applicazione e conclusioni dei casi, la difficoltà nel reperire le informazioni disponibili sia dovuta alle differenti logiche organizzative dei portali delle singole amministrazioni locali. Per questi motivi, occorre definire con maggiore chiarezza le modalità di offerta dei contenuti, che vanno classificati secondo standard che ne favoriscano il riuso: I sistemi di classificazione utilizzati per le risorse dei siti web della pubblica amministrazione devono consentire l’interoperabilità semantica, ovvero la possibilità di individuare in modo omogeneo gli attributi che caratterizzano una risorsa (metadati) e i valori che gli attributi possono assumere (vocabolari) quando si descrivono i contenuti. E’ dunque necessario garantire un’interoperabilità che permetta a sistemi diversi di condividere dati, documentazione e servizi. Tra le diverse raccomandazioni che vengono specificate all’interno del documento, una in particolare si riferisce alle modalità di reperimento e visualizzazione delle informazioni: organizzare i contenuti secondo un’architettura dell’informazione che consenta la loro presentazione in ordine di rilevanza e pertinenza con i diversi argomenti trattati, la gestione di correlazioni tra i diversi contenuti e la loro lettura secondo più percorsi di navigazione. LDI, offrendo un percorso di navigazione che si snoda lungo la struttura dell’ontologia, è in grado di fornire un supporto efficace alla visualizzazione, valorizzando la correlazione esistente tra i diversi i contenuti (basti pensare alla struttura gerarchica della tassonomia, oppure alla “materializzazione” grafica delle relazioni esistenti tra le istanze appartenenti alle diverse classi) favorendo inoltre la scelta di percorsi alternativi. Ad esempio, per poter visualizzare i dati l’utente può focalizzarsi su una singola istanza: in tal caso verranno mostrati tutti i documenti, le immagini e video che ad essa fanno riferimento. Oppure, può scegliere un livello di profondità diverso, decidendo di visualizzare tutti dati della classe a cui quella data istanza appartiene. In questo caso, ai contenuti precedenti si aggiungeranno quelli relativi alle altre istanze che fanno riferimento a quella data classe. L’importanza di visualizzare i dati in maniera adeguata si accompagna al fenomeno del cosiddetto Open Data nell’ambito della pubblica amministrazione2 , che si manifesta attraverso un comportamento più aperto e trasparente degli enti pubblici che mette i cittadini nella condizioni di valutarne l’operato. A questo proposito, tra le iniziative più interessanti presenti in rete si distingue Data.gov3 , sito web creato nel 2009 dal CIO (Chief Information Officer ) dell’amministrazione Obama con lo scopo di raccogliere in un unico portale tutte le informazioni rese disponibili dagli enti 2 3 http://it.wikipedia.org/wiki/Dati apertiL.27Open data nella pubblica amministrazione http://www.data.gov/ 84 6.2 – Il giornalismo nell’era dei dati statunitensi in formato aperto. Il sito presenta anche una sezione legata al Semantic Web4 , al cui interno si specifica l’obiettivo primario di coinvolgere cittadini e sviluppatori per costruire applicazioni ibride che sfruttino i Linked Data, integrando le informazioni della PA con quelle presenti all’interno dei datasource aperti disponibili in rete ed espressi in RDF. LDI, fornendo gli strumenti per poter risolvere gli URI e agganciarsi a dataset esterni potrebbe fornire un supporto ulteriore a questa specifica esigenza. Un altro esempio concreto dell’uso degli strumenti del Semantic Web nell’ambito della PA è dato da Data.gov.uk5 , che possiede inoltre un end point per poter effettuare query SPARQL e interrogare il datasource. 6.2 Il giornalismo nell’era dei dati Il giornalismo si è sempre fondato sulla testimonianza di fatti e asserzioni. Ma oggi, per poter alimentare una storia, la visualizzazione dei dati diviene un elemento cruciale. A differenza dei fatti, il dato può essere calcolato, analizzato e gestito in maniera automatica. Una visualizzazione efficace consente a tal proposito di effettuare confronti o di analizzare in modo accurato l’evoluzione di un carattere specifico della società (aumento/diminuzione della disoccupazione, variazioni nel fenomeno dell’immigrazione ecc.). Concentrare l’attenzione su questo bacino di informazioni, focalizzandosi non soltanto sullo stato “istantaneo” dell’informazione quanto invece sul suo progressivo cambiamento, rappresenta l’essenza di ciò da cui deriva la notizia in quanto tale. I giornali più importanti del mondo si sono attrezzati con specifiche sezioni all’interno dei propri siti web, in cui vengono pubblicati i dati riguardanti la pubblica amministrazione, ma non solo. Uno degli esempi più famosi è il Data Store 6 del Guardian, dove vengono messi in evidenza i servizi giornalistici basati sulla raccolta e sull’analisi dei dati. Lo ‘Store’ è poi innervato da un Data Blog 7 in cui sono pubblicati non solo le notizie e i servizi del Guardian che si alimentano di dati, ma anche tutte le news riguardanti il movimento internazionale Open Data8 . Anche il New York Times ha sostenuto ingenti sforzi in questa direzione: se da un lato infatti il suo dipartimento grafico ha aperto uno specifico canale su Twitter nel quale vengono pubblicate notizie in cui i dati svolgono il supporto fondamentale, dall’altro nel 2008 ha sviluppato il servizio Visualization Lab 9 che consente ai lettori di creare tabelle, mappe e grafici interattivi sfruttando i dati messi a disposizione dal 4 http://www.data.gov/semantic/index http://data.gov.uk/ 6 http://www.guardian.co.uk/data-store 7 http://www.guardian.co.uk/news/datablog 8 http://www.opendatafoundation.org/ 9 http://vizlab.nytimes.com/ 5 85 6 – Campi di applicazione e conclusioni Times e la tecnologia Many Eyes 10 proposta da IBM. Gli utenti possono commentare le visualizzazioni, condividerle sotto forma di widget e immagini, creare dei topic in cui raccogliere questi dati e discutere di argomenti specifici. Inoltre, a partire dal 2009, il New York Times ha cominciato a pubblicare il proprio indice come Linked Open Data11 . Al 13 febbraio 2010, le voci pubblicate sotto licenza Creative Commons erano all’incirca 10 mila ed erano disponibili sia come documenti RDF che come pagine HTML. La tabella 6.1 mostra la classificazione dei tag e le strategie di mapping utilizzate per l’estrazione dei dati. Type Manually mapped tags Automatically mapped tags People 4.978 0 Organizations 1.489 1.582 Locations 1910 0 Descriptors 498 0 Tabella 6.1. 6.3 Total 4.978 3.081 1.910 498 Entità estratte dall’archivio del New York Times Conclusioni In un contesto nel quale l’utente si confronta con una mole sterminata di dati, si fa strada la necessità di collocare questi stessi dati all’interno di un preciso dominio semantico affinché l’utente sia in grado, con strumenti opportuni, di raggiungere l’informazione che risponde effettivamente alle sue esigenze. Sul modello dei motori di ricerca semantici, il reperimento dei dati non avviene in base alle informazioni specifiche che l’utente già possiede, ma per mezzo del percorso concettuale che l’ontologia gli propone. Tuttavia, a differenza dei motori di ricerca, nel caso di LDI gli artefatti di rappresentazione della conoscenza non sono uno strumento nascosto che fornisce intelligenza al meccanismo di information retrieving, bensı̀ sono espliciti ed evidenti al visitatore in tutta la loro ricchezza. Linkded Data ICONVIS è dunque in grado di visualizzare e consentire la navigazione interattiva di dati strutturati in forma di ontologia. Dal momento che l’ontologia in ingresso al sistema è progettata sulla base dei valori dei campi più significativi di un database, essa costituisce la rappresentazione della conoscenza complessiva del dominio a cui i dati si riferiscono. L’utente può passare dall’esplorazione dei concetti presenti sul grafo ontologico all’effettiva fruizione dei contenuti del DB. Oltre a ciò, l’applicazione è in grado di agganciarsi a database esterni e costruire viste opportune, prelevando dati specifici in grado di arricchire i contenuti al quale l’utente può accedere. 10 11 http://manyeyes.alphaworks.ibm.com/manyeyes/ http://data.nytimes.com/ 86 6.3 – Conclusioni In sintesi, l’applicazione si propone come mezzo per poter accedere ai dati relazionali sfruttando i paradigmi e gli strumenti del Web Semantico non soltanto all’interno di un dominio chiuso e specifico, ma sfruttando le relazioni esistenti tra i dati provenienti da diverse sorgenti. Un mezzo per poter esplorare il Web of Data ipotizzato da Tim Berners-Lee. 87 6 – Campi di applicazione e conclusioni 88 Bibliografia [1] K. Ahmad, M. Tariq, B. Vrusias, e C. Handy, Corpus-based thesaurus construction for image retrieval in specialist domains, in “Advances in Information Retrieval: Proceedings of the 25th European Conference on IR Research (ECIR 2004)”, 2003, http://www.computing.surrey.ac.uk/ai/socis/papers/ECIR03 tech.pdf [2] T. Berners-Lee, Relational Databases on the Semantic Web - Design Issues, 1998, http://www.w3.org/DesignIssues/RDB-RDF.html [3] T. Berners-Lee, Linked Data Design Issues, 2006, http://www.w3.org/DesignIssues/LinkedData.html [4] T. Berners-Lee, W. Hall, J. A. Hendler, K. O’Hara, N. Shadbolt, D. J. Weitzner, A framework for Web Science, in “Journal Foundations and Trends in Web Science”, Volume 1, Issue 1, 2006, http://eprints.aktors.org/594/01/1800000001.pdf [5] T. Berners-Lee, Y. Chen, L. Chilton, D. Connolly, R. Dhanaraj, J. Hollenbach, A. Lerer, D. Sheets, Tabulator: Exploring and Analyzing linked dataon the Semantic Web, 2006, http://swui.semanticweb.org/swui06/papers/BernersLee/Berners-Lee.pdf [6] C. Bizer, T. Heath, T. Berners-Lee, Linked Data - The Story So Far, in “International Journal on Semantic Web and Information Systems (IJSWIS)”, 2009, http://tomheath.com/papers/bizer-heath-berners-lee-ijswis-linked-data.pdf [7] C. Bizer, J. Lehmannb, G. Kobilarova, S. Auerb, C. Beckera, R. Cyganiakc, S. Hellmannb,DBpedia - A crystallization point for the Web of Data , in “Journal of Web Semantics”, 2009 [8] J. Dmitrieva, F. J. Verbeek, Multi-view Ontology Visualization, 2009, http://protege.stanford.edu/conference/2009/abstracts/S9P3Dmitrieva.pdf [9] J. Euzenat, F. Scharffe, A. Zimmermann, Expressive alignment language and implementation, in “IKnowledge Web project report”, KWEB/2004/D2.2.10/1.0, 2007, http://sw-app.org/pub/isemantics08-sotsw.pdf [10] J. D. Fekete, C. Plaisant, Interactive Information Visualization of a Million Items, in “Proceedings of IEEE Symposium on Information Visualization”, 2002, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.81.9248&rep=rep1&type=pdf 89 Bibliografia [11] C. Fry, M. Plusch, H. Lieberman, Static and Dynamic Semantics of the Web, in “Spinning the Semantic Web: Bringing the World Wide Web to its Full Potential”, 2003, http://web.media.mit.edu/ lieber/Lieberary/DynamicSemantics/Dynamic-Semantics.pdf [12] J. A. Goguen, Ontology, Society, and Ontotheology, “International Conference on Formal Ontology in Information Systems”, 2004 ,http://cseweb.ucsd.edu/users/goguen/pps/fois04.pdf [13] A. Katifori, C. Halatsis, G. Lepouras, C. Vassilakis, E. Giannopoulou, Ontology Visualization Methods – A Survey, in “ACM Computing Surveys”, 2007, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.79.7581&rep=rep1& type=pdf [14] K. Pastra e Y. Wilks, Vision-language integration in AI: A reality check, in “Proceedings of ECAI 2004”, 2004, http://www.ilsp.gr/homepages/pastra/documents/ecai04.pdf [15] K. Petridis, F. Precioso, T. Athanasiadis, Y. Avrithis e Y. Kompatsiaris, Combined domain specific and multimedia ontologies for image understanding, in “Proceedings of the Workshop on Mixed-Reality as a Challenge to Image Understanding and Artificial Intelligence, 28th German Conference on Artificial Intelligence”, 2004, http://www.image.ece.ntua.gr/papers/384.pdf [16] Y. Raimond, C. Sutton e M. Sandler Automatic Interlinking of Music Datasets on the Semantic Web, 2008, http://events.linkeddata.org/ldow2008/papers/18raimond-sutton-automatic-interlinking.pdf [17] S. S. Sahoo, W. Halb, S. Hellmann, K. Idehen, T. Thibodeau Jr, S. Auer, J. Sequeda, A. Ezzat, A Survey of Current Approaches for Mapping of Relational Databases to RDF, “W3C RDB2RDF Incubator Group”, http://www.w3.org/2005/Incubator/rdb2rdf/RDB2RDF SurveyReport.pdf [18] N. Simou, C. Saathoff, S. Dasiopoulou, E. Spyrou, N. Voisine, V. Tzouvaras, I. Kompatsiaris, Y. Avrithis e S. Staab, An ontology infrastructure for multimedia reasoning, in “International Workshop on Very Low Bit-Rate Video-Coding”, 2005, http://www.image.ntua.gr/papers/381.pdf [19] F. Van Ham, J. J. Van Wijk, Beamtrees: Compact Visualization of Large Hierarchies, in “Proceedings of the IEEE Conf. Information Visualization”, IEEE CS Press, 2002, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.8.7659&rep=rep1&type=pdf 90