Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato finale in basi di dati RDF Triplestore Systems Anno Accademico 2013-2014 Candidato Francesco Palumbo Matr. N46000140 RDF Triplestore Systems ______________________________________________________________________________________ _______________________________________________________________________________________ Dedica _______________________________________________________________________________________ 1 RDF Triplestore Systems ______________________________________________________________________________________ 2 RDF Triplestore Systems ______________________________________________________________________________________ Indice: Introduzione..........................................................................................................................................5 Capitolo 1: • Web semantico..............................................................................................................................7 • L'architettura del web semantico..........................................................................................8 • Rdf.......................................................................................................................................................10 • Rdf/schema.....................................................................................................................................12 • OWL....................................................................................................................................................12 • Linked Open Data.........................................................................................................................14 Capitolo 2: • Stato dell'arte.................................................................................................................................16 • DBpedia.............................................................................................................................................16 • Estrazione dati da Wikipedia...................................................................................................17 • Creazione della base di conoscenza......................................................................................19 • Creazione di punti di accesso alla base di conoscenza.................................................20 • I triplestore......................................................................................................................................21 • Triplestore benchmark...............................................................................................................22 Capitolo 3 • OWLIM...............................................................................................................................................24 • Virtuoso.............................................................................................................................................26 • Mulgara..............................................................................................................................................28 • Confronto .........................................................................................................................................30 Conclusioni .............................................................................................................................................37 3 RDF Triplestore Systems ______________________________________________________________________________________ 4 RDF Triplestore Systems ______________________________________________________________________________________ Introduzione Al giorno d'oggi grazie all'enorme sviluppo avuto dall'informatica, dell'elettronica e al costo, fondamentalmente, contenuto di apparecchi capaci di collegarsi a internet, l'espressione "lo cerco sul web" è diventata abituale. Ciò ci fa riflettere anche su cosa sia diventato il web negli anni: un serbatoio di conoscenza. Attraverso la rete, infatti, è possibile fare svariate cose, come consultare gli orari dei treni, trasmettere dati, chattare, fare acquisti online, e tutto ciò è in continua e rapida evoluzione. Basta pensare che negli anni '90 il web era composto da poche pagine testuali, con il tempo al testo si sono aggiunti contenuti multimediali che hanno dato alle pagine una grafica più ricca. Il contenuto, memorizzato su poche migliaia di macchine e sviluppato da pochi "specialisti", ha iniziato a crescere in quantità smisurata. Se ciò da un lato ha ampliato le possibilità del web rendendolo una sorta di enciclopedia universale multimediale, un gestore di servizi da remoto e un centro di comunicazione mondiale, dall'altro ha reso le ricerche più complesse all'utente finale che è sempre più obbligato a terminare la ricerca "manualmente" scegliendo il risultato desiderato tra tutti quelli restituiti da un motore di ricerca. Ciò avviene perché i tradizionali motori di ricerca effettuano ricerche di tipo sintattico restituendo, infatti, le pagine che contengono le keywords presenti nelle query degli utenti, indipendentemente dal contesto in cui esse sono utilizzate oppure restituiscono pagine secondo algoritmi differenti, ad esempio basati sulla popolarità. Per venire incontro a tale problema, negli ultimi anni, le aziende proprietarie dei motori di ricerca stanno investendo nello sviluppo di nuove tecnologie che permettano alle macchine di interpretare il senso delle parole in maniera simile a come succede tra essere umani. Il loro obiettivo è quello di creare sistemi d'information retrival capaci di estrarre e indicizzare i concetti 5 RDF Triplestore Systems ______________________________________________________________________________________ più significativi dei testi in modo da rendere le ricerche effettuate tramite i loro portali sempre più precise. 6 RDF Triplestore Systems ______________________________________________________________________________________ Capitolo1_____________________________________________________ Web semantico Nei primi dieci anni il web è stato fondamentalmente un medium di sola lettura, una sorta di grande libreria dalla quale ricevere informazioni. Nel successivo decennio invece si è assistito alla diffusione di servizi che permettevano all'utente medio oltre che di leggere anche di scrivere. Attraverso i social network e i blog i navigatori da semplici spettatori si sono trasformati in attori, iniziando a pubblicare informazioni, opinioni e idee: è il cosiddetto web 2.0, il web della partecipazione. Negli ultimi anni le informazioni disponibili on-line stanno diventando comprensibili anche ai calcolatori, in modo da poter essere collegate tra di loro e riutilizzate, dando vita a nuove informazioni, in maniera automatica senza l'intervento umano. Tale processo è reso possibile grazie a svariate tecnologie comunemente chiamate "semantiche" ossia in grado di estrarre significati da informazioni. Grazie al web semantico, la ricerca non sarà più basata sulle parole ma sul significato di un concetto o di più concetti collegati tra di loro. Con il termine Web Semantico si intende, quindi, la trasformazione del web in un ambiente dove è possibile pubblicare non più solo documenti ma anche informazioni relative ai documenti stessi (metadati) in un formato adatto all'interrogazione, l'interpretazione e, più in generale, all’elaborazione automatica. Così facendo sarà possibile un’interpretazione più significativa del contenuto dei documenti stessi e quindi la possibilità di effettuare ricerche altamente precise. 7 RDF Triplestore Systems ______________________________________________________________________________________ L'architettura del web semantico Nello sviluppo di applicazioni basate sui principi del web semantico 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 a ogni livello venga associato uno standard specifico. Il livello più alto della pila ovviamente è rappresentato dalla "fiducia". Essendo i dati del web collocati in una dimensione globale provenienti da sorgenti differenti, è necessario che l'utente sia in grado di distinguere le fonti affidabili da quelle che non lo sono. Un'applicazione basata sul web semantico deve essere in grado di derivare automaticamente se i risultati sono giusti. Per poter quantizzare in che modo viene calcolato il livello di "fiducia" occorre una "prova" 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 “fiducia” che hanno permesso di controllare la veridicità di ciascuna deduzione. Naturalmente, la solidità del livello “Prova” 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 ragionamento per riuscire a derivarne di nuove. La logica deve essere perciò in grado di rispondere a due esigenze 8 RDF Triplestore Systems ______________________________________________________________________________________ specifiche: da un lato rendere efficace la prova e dall’altro descrivere l’informazione stessa. La parte superiore della pila quindi è costituita da tutti gli elementi necessari ad abilitare operazioni di ragionamento. La parte inferiore ingloba un insieme di tecnologie e linguaggi per formalizzare la conoscenza in maniera da rendere abituali tali operazioni. Come prima cosa, è necessario un sistema in grado di identificare e accedere alle risorse. Quindi uno dei blocchi fondamentali è quello degli URI (Uniform Resource Identifier), cioè le stringhe che identificano in maniera univoca le risorse. Subito sopra il livello di URI c'è XML (l’eXtensible Markup Language), che è un linguaggio di marcatura che consente di costruire e utilizzare i propri tag, al fine di garantire interoperabilità sintattica, che consente a sistemi diversi di interpretare la struttura e la sintassi dei documenti scambiati. Per avere interoperabilità semantica occorre risalire al livello successivo della pila: RDF (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à. RDF però, pur consentendo interoperabilità semantica, non è abbastanza espressivo tale da poter gestire alcune situazioni particolari, come ad esempio due sistemi che identificano la stessa risorsa con URI differenti. 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 la natura delle relazioni che intercorrono tra questi stessi concetti. I linguaggi ontologici prevalentemente adottati da parte della comunità del SW sono RDF Schema e OWL (Web Ontology Language). Esistono inoltre dei meccanismi che permettono di potenziare le capacità delle macchine di elaborare conoscenza, ossia i sistemi a regole. Poiché sono già 9 RDF Triplestore Systems ______________________________________________________________________________________ largamente diffusi ed utilizzati all’interno della comunità scientifica, la proposta da parte del W3C è stata quella di standardizzare RIF, un metodo che consente ai sistemi a regole esistenti di interagire tra di loro. Al fine di interrogare data source 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 SPARQL attraverso cui è possibile estrarre informazioni dalle basi di conoscenza distribuite sulla rete. Infine, una componente importante è rappresentata dalla “Crittografia” (che indica crittografia e firma digitale) che pur non essendo direttamente legata alle tecnologie del web semantico, costituisce un elemento fondamentale per raggiungere la cosiddetta “Fiducia” e determinare dunque l’affidabilità dei dati. RDF Il Resource Description Framework (RDF) è uno standard descritto dal W3C concepito per supportare il Web Semantico più o meno allo stesso modo in cui l’HTML ha contribuito ad avviare il Web originale. L’RDF permette la rappresentazione di dati e metadati sul Web. Il Data Model RDF è basato su 3 concetti fondamentali: • Risorsa: indica qualunque cosa venga descritta da una espressione RDF. Ogni risorsa è indentificata da un URI, può essere una pagina web, una sua parte ma anche un oggetto non direttamente accessibile via web; • Proprietà: descrive un aspetto specifico, un attributo o una relazione usata per descrivere una risorsa. Ogni proprietà definisce i valori ammissibili, i tipi di risorse che può descrivere e le sue relazioni con le altre proprietà; • Asserzioni (statement): una asserzione è costituita dall'insieme di una risorsa, una 10 RDF Triplestore Systems ______________________________________________________________________________________ proprietà e uno specifico valore per quella proprietà. Descrive le caratteristiche di una risorsa e le relazioni con altre risorse. Ogni asserzione è formata, quindi, da: soggetto, predicato e oggetto. Il soggetto di una tripla è l'URI che identifica la risorsa descritta. L'oggetto può essere un semplice valore letterale (come una stringa, un numero, o data) o l'URI di un'altra risorsa che è in qualche modo legata al soggetto. Il predicato, nel mezzo, indica il tipo di relazione esiste tra il soggetto e l’oggetto. Ogni tripla soggetto-predicato-oggetto viene detta statement. Una delle possibili rappresentazioni di statement RDF è data dall’uso di reti semantiche, ovvero da grafi in cui il soggetto e l’oggetto sono rappresentati da nodi e il predicato è l’arco diretto che parte dal primo e arriva al secondo. Un grafo RDF è rappresentato fisicamente mediante una serializzazione. Le principali serializzazioni adottabili per un grafo RDF sono: • RDF/XML: in cui le risorse vengono descritte mediante l’uso di tag RDF; • N-Triples: il grafo viene serializzato come insieme di triple soggetto-predicato-oggetto • Notation3 (N3): il grafo viene serializzato descrivendo, una per volta, una risorsa e tutte le sue proprieta. 11 RDF Triplestore Systems ______________________________________________________________________________________ RDF/SCHEMA Il limite di un documento RDF è che si preoccupa soltanto di descrivere le proprietà di un oggetto, non fornisce nessun meccanismo per dichiarare queste proprietà, né per definire le relazioni tra queste proprietà ed altre risorse. RDF Schema (RDFS) permette invece di definire dei vocabolari, quindi significato, caratteristiche e relazioni di un insieme di proprietà (compresi eventuali vincoli). Inoltre consente di definire gerarchie di classi implementando il concetto transitivo di classe e sottoclasse. In RDFS il sistema delle classi e delle proprietà è simile a quello dei linguaggi di programmazione orientati agli oggetti, come Java o C++, dai quali differisce nel fatto che invece di definire le classi in termini delle proprietà che le istanze possono avere, descrive le proprietà in termini delle classi delle risorse a cui si applicano. OWL Anche RDFS però non è sufficientemente espressivo in quanto non permetter di definire vincoli di esistenza e cardinalità e, inoltre, non permette di definire proprietà transitive, inverse, simmetriche. Per tali motivi si presta a modellazioni piuttosto semplici, mentre diventa impossibile usarlo in contesti complessi. OWL (Web Ontology Language) è l’evoluzione di RDF e RDF Schema, dei quali arricchisce il vocabolario per descrivere proprietà e classi, relazioni tra classi (ad es. disgiunzione), cardinalità (ad es. “esattamente uno”), uguaglianza, tipi più ricchi delle proprietà, caratteristiche di proprietà (ad es. simmetria) e classi enumerate. Dato questo tipo di Ontologia, la semantica formale di OWL specifica come derivare le sue conseguenze logiche, ovvero i fatti che non sono presenti letteralmente nell’ontologia, ma derivati logicamente dalla semantica. Tali derivazioni logiche 12 RDF Triplestore Systems ______________________________________________________________________________________ possono essere basate su un solo documento o su più documenti distribuiti che sono stati combinati fra loro usando dei meccanismi OWL predefiniti. OWL fornisce ben tre tipologie di sottolinguaggi che si differenziano tra di loro per la capacità espressiva: • OWL Lite è la versione più semplice e meno espressiva di OWL, che supporta le funzioni necessarie a definire una tassonomia di classi e semplici vincoli; esso supporta per esempio la cardinalità, ma solo con valori pari a uno e zero. OWL Lite è il sottolinguaggio di più facile implementazione e inoltre consente una veloce migrazione da vocabolari o altre tassonomie. • OWL DL (OWL Description Logic) permette più espressione e mantiene la completezza computazionale e la decidibilità; esso supporta gli utenti che desiderano la massima espressività senza mancare di completezza computazionale e di decidibilità (è cioè garantito che tutte le implicazioni siano elaborate in un tempo finito). OWL DL comprende tutti i costrutti OWL, ma con alcune restrizioni. • OWL Full permette la massima espressività senza però garanzie sulla completezza e decidibilità; ad esempio una classe può essere allo stesso tempo vista come una collezione di entità (individui) e come una entità a se stante. OWL Full permette ad una ontologia di aumentare il significato di un vocabolario già definito; tuttavia è molto difficile, data la complessità del linguaggio, che un ragionatore supporti appieno tutte la potenzialità di OWL FULL. Una caratteristica importante dei sottolinguaggi OWL è che ogni versione include tutte le funzionalità del sottolinguaggio al livello precedente mantenendo la piena compatibilità. 13 RDF Triplestore Systems ______________________________________________________________________________________ Ciò vuol dire che un ontologia espressa in OWL Lite è gestibile con OWL DL, ed in entrambi i casi le conclusioni sono le stesse, ovviamente la relazione in versa non vale. Linked Open Data Sono stati fino ad ora descritti i principi e le tecnologie che sono alla base del Semantic Web. In particolare si è visto come queste tecnologie possano essere usate per mettere in risalto ed esprimere il significato e la conoscenza presente nelle informazioni. L'obiettivo principale di questa evoluzione, tuttavia, non è solo quello di esporre la semantica dei dati attraverso modi e formati nuovi, ma anche quello di renderli fruibili in maniera più intelligente e diretta, valorizzandoli e permettendo di utilizzarli in applicazioni e modalità sempre più interessanti. Alla base di questa evoluzione si collocano infatti una serie di pratiche e principi relativi alla pubblicazione e connessione di dati strutturati nel Web che danno vita a ciò che viene chiamato Linked Data. Il termine Linked Data, creato da Tim Berners-Lee, viene spesso utilizzato quasi come sinonimo di Semantic Web, quando si vuole però mettere in evidenza una vera e propria rete di dati che connette informazioni appartenenti ai più disparati domini e permette la creazione di nuove applicazioni che possano accederci, creandone liberamente un valore aggiunto. Il presupposto che sta alla base di questa idea si fonda sul principio che il valore e l'utilità dei dati cresce quanto più questi sono interconnessi tra loro. In sintesi quindi il Linked Data non è altro che l'utilizzo del Web per creare degli specifici collegamenti tra i dati di diverse sorgenti, alle quali si fa spesso riferimento con il nome di silos. I dogmi di tale approccio consistono nell'utilizzare l'RDF come modello per la pubblicazione di dati strutturati nel Web e i collegamenti che l'RDF mette a disposizione per interconnettere i dati dei 14 RDF Triplestore Systems ______________________________________________________________________________________ diversi silos, nonché l'utilizzo del protocollo HTTP per effettuarne l'accesso. Affinché i dati possano essere pubblicati e riutilizzabili, occorre che venga definito un insieme di regole che ne favorisca l’interoperabilità. Nel 2006 Tim Berners-Lee propose alcune linee guida per fare in modo che i dati entrassero a far parte di uno spazio globale complesso: • Utilizzare gli URI per l’identificazione delle risorse; • Utilizzare gli URI in conformità al protocollo HTTP, in modo che possano essere consultati; • Utilizzare standard come RDF e SPARQL per esplorare un URI e reperire informazioni utili; • Creare collegamenti tra i vari URI al fine di scoprire nuove risorse. Tuttavia, in una presentazione tenuta nel 2009 all’interno del ciclo di conferenze TED lo stesso Berners-Lee rivisita e sintetizza i principi del Linked Data all’interno di tre regole di base: • ogni risorsa riconducibile a un oggetto del mondo reale è contraddistinto da un identificativo che comincia con HTTP; • 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. 15 RDF Triplestore Systems ______________________________________________________________________________________ Capitolo1_____________________________________________________ 1_____________________________________________________ Stato dell'arte Per analizzare lo stato attuale dei Linked Open Data si osservano alcuni dataset che raccolgono un gran numero di collegamenti, formando una sorta di fulcro di raccolta dei vari link. I più evidenti casi di questo genere sono rappresentati dai dataset di DBpedia, che raccoglie triple RDF estratte dalle informazioni mazioni presenti negli articoli di Wikipedia, e di Geonames, che fornisce invece descrizioni RDF relative a milioni di locazioni geografiche. La ragione dell'importanza attribuita a queste sorgenti di dati consiste nel fatto che, oltre ad essere state tra le prime ad essere inserite nel progetto, raccolgono e forniscono URI e descrizioni RDF relative a moltissime entità o concetti molto comuni, e vengono pertanto referenziati molto frequentemente da altri dataset che raccolgono, invece, informazioni più specializzate. spe DBpedia DBpedia rappresenta uno dei dataset più importanti del Lincked Open Data, analizzando gli algoritmi che hanno permesso di convertire tutte le informazioni presenti in Wikipedia in dati legati ad una ontologia e con una semantica associata. 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 conoscenza creata e mantenuta 16 RDF Triplestore Systems ______________________________________________________________________________________ da migliaia di collaboratori provenienti da tutto il mondo, che ha contribuito a migliorare l’intelligenza del Web. Il progetto DBpedia sfrutta questa enorme risorsa informativa estraendo da essa informazione semanticamente strutturata. Il processo di trasformazione consta fondamentalmente di tre elementi: • Estrazione dati da Wikipedia: è stato sviluppato un sistema per l’estrazione dei dati di Wikipedia che convertisse il suo contenuto in una base di conoscenza multi-dominio. • Creazione della base di conoscenza: sono state elaborate le informazioni ottenute nella fase di estrazione, fornendo loro una semantica e definendo un’ontologia in cui sono mappate le informazioni. • Creazione di punti di accesso alla base di conoscenza: sono stati resi disponibili diversi mezzi per poter accedere ai dati di DBpedia come ad esempio i link RDF che puntano da DBpedia ad altri dataset. Estrazione dei dati da Wikipedia Il sistema di estrazione dei dati è formato da più componenti tra cui quelli che si occupano di recuperare gli articoli (PageCollections), quelli che memorizzano e serializzano le triple RDF (Destinations), quelli che stabiliscono come marcare le triple (Extractors). Il nucleo centrale è costituito però dall’Extraction Manager che gestisce il processo di passaggio degli articoli di Wikipedia agli estrattori e li consegna a destinazione. Gli estrattori sono 11 tra cui Label che identifica ogni articolo indicandone la risorsa con rdfs:label oppure Interlanguage links 17 RDF Triplestore Systems ______________________________________________________________________________________ che estrae i link che collegano fra loro articoli in lingue diverse che però trattano lo stesso argomento per assegnare risorse diverse per ogni lingua. Il sistema è in grado di eseguire due tipo di estrazione: • Estrazione dump-based: la Wikimedia Foundation, che detiene la proprietà di Wikipedia, pubblica ogni mese i dump SQL di tutte le versioni di Wikipedia ed in seguito la base della conoscenza di DBpedia viene aggiornata tramite questi dump. • Estrazione live: la stessa Wikimedia Foundation ha fornito a DBpedia la possibilità di accedere ai feed di Wikipedia che in tempo reale riportano tutti i cambiamenti avvenuti. Un sistema di estrazione live quindi permette di aggiornare ed estrarre nuove triple RDF non appena un articolo viene modificato ed una procedura di UPDATE SPARQL permette di eliminare la voce già esistente sostituendola con la nuova. 18 RDF Triplestore Systems ______________________________________________________________________________________ Creazione della base di conoscenza Dopo aver estratto le informazioni è necessario rielaborarle per fornire loro una semantica. È stato quindi generata una base di conoscenza che permette di memorizzare e classificare le diverse entità presenti in Wikipedia. La base di conoscenza di DBpedia è composta da circa 1 miliardo di triple RDF estratte dalle edizioni di Wikipedia in ben 35 lingue diverse. Per creare gli identificatori di DBpedia vengono utilizzati i nomi inglesi degli articoli, l’URI delle risorse viene generato secondo la sintassi http://dbpedia.org/resource/Name dove Name è ottenuto dall’URL dell’articolo che ha la sintassi http://en.wikipedia.org/wiki/Name. In questo modo gli URI di DBpedia comprenderanno un ampio spettro di argomenti e saranno definiti col consenso della comunità. Ogni entità viene descritta da un insieme di proprietà generali e da un insieme di proprietà specifiche delle InfoBoxes, se essi sono presenti. Le proprietà generali includono un’etichetta, due abstract dell’articolo in inglese, uno più breve e uno più lungo, un link all’articolo di Wikipedia corrispondente, le coordinate geografiche qualora siano disponibili, un link ad un’immagine che raffigura il soggetto, un insieme di link a pagine web esterne e, qualora esistessero, i due abstract per ognuna delle versioni in altre lingue della pagina. Le proprietà specifiche delle InfoBoxes, invece, possono essere ottenute sia attraverso un’estrazione generica dei dati sulle InfoBoxes sia attraverso un’estrazione mapping-based sulla base delle ontologie costruite sulle InfoBoxes. 19 RDF Triplestore Systems ______________________________________________________________________________________ Creazione di punti di accesso alla base della conoscenza Per accedere alla base della conoscenza di DBpedia da diversi client è possibile usare quattro meccanismi differenti: • Linked Data: metodo per pubblicare gli RDF sul Web che si basa su URI HTTP come identificatori e sul protocollo HTTP per recuperare le descrizioni delle risorse. Gli identificatori di DBpedia sono configurati per restituire descrizioni RDF quando ad accedervi sono degli agenti semantici e versioni HTML quando invece vi accedono i browser tradizionali. • SPARQL Endpoint: che permette di interrogare la base di conoscenza attraverso delle query in SPARQL tramite l’endpoint http://dbpedia.org/sparql. • RDF Dumps: che si basa sulla stratificazione della base di conoscenza, offrendo una serializzazione N-Triple di questi strati di cui è possibile effettuare il download direttamente dal sito web di DBpedia. • Lookup Index: che rende più semplice il rinvenimento degli URI di DBpedia a cui collegarsi, sfruttando un servizio lookup che restituisce gli URI in base ad una data etichetta effettuando una ricerca basata su similarità fra stringhe e rilevanza della pagina ricercata. Per consentire agli utenti e agli agenti software di rinvenire le informazioni contenute in DBpedia, la base della conoscenza è collegata a molti altri dataset sul Web seguendo i principi del Linked Data. La base della conoscenza di DBpedia attualmente contiene 4,9 milioni di link RDF in uscita, che puntano ad informazioni complementari rispetto a quelle contenute in DBpedia. 20 RDF Triplestore Systems ______________________________________________________________________________________ I triplestore I triplestore sono dei database realizzati appositamente per la memorizzazione ed il recupero di triple RDF. Proprio come un database relazionale, è possibile memorizzare le informazioni in un triplestore e poi le recuperarle attraverso un linguaggio di query, in questo caso SPARQL. A differenza di un database relazionale, un triplestore è ottimizzato per lo stoccaggio ed il recupero di triple. Si distinguono i seguenti triplestore in base alla loro architettura: • In-memory: essi memorizzano il grafo RDF nella memoria principale. Memorizzare tutto in memoria principale non può essere un metodo serio per memorizzare volumi di dati estremamente elevati, tuttavia, essi possono agire come un utile punto di riferimento e possono essere utilizzati per eseguire alcune operazioni come il “caching data” da siti remoti o per eseguire inferenze. • Native: una seconda categoria ora dominante è quella dei triplestore nativi. Essi implementano un database engine completo, ottimizzato per l’elaborazione di dati RDF ed opera indipendentemente da ogni altro Database Management System (DBMS). I dati sono memorizzati direttamente sul file system. • Non-native non-memory: tali triplestore sono impostati per essere eseguiti su database di terze parti, usufruiscono delle funzionalità di archiviazione e recupero dei DBMS esistenti. È possibile dividere questo modello in: o “Generic Schemas” in cui i dati RDF vengono memorizzati a prescindere da qualsiasi ontologia in una tabella simile alla struttura tripla di un RDF, ossia in una tabella a tre colonne (soggetto-predicato-oggetto). Il vantaggio di tale approccio è chiaramente la flessibilità 21 RDF Triplestore Systems ______________________________________________________________________________________ ottenuta dalla rappresentazione dei dati, il principale svantaggio è l’elevato numero di selfjoins che sono necessari per rispondere alle query non banali. “Ontology-specific Schemas” in cui i dati RDF non vengono memorizzati in una singola o tabella ma viene creato uno schema che rifletta le proprietà strutturali delle ontologie in atto. Si possono distinguere tre sottomodelli: 1) “Horizontal representation” oppure “one-table-per-class schema”: ogni classe dell’ontologia si riflette in una tabella del database che contiene tutte le istanze di tale classe. Lo svantaggio principale di tale approccio è quello di ristrutturare le tabelle del database ogni volta che cambia l’ontologia e, inoltre, manca il sostegno per valori multipli della proprietà. 2) ”Decomposition storage model” oppure “one-table-per-property schema”: ogni proprietà si riflette in una tabella composta da due colonne (soggetto e oggetto). Lo svantaggio di questo modello è l’inefficienza delle query quando si tratta di query complesse perché genera molti join tra le tabelle proprietà. Tuttavia può fornire prestazioni superiori di un fattore pari a 2 rispetto a database con uno schema singolo. 3) “Hybrid Schemas”: sono più comuni e combinano i vantaggi di entrambi i modelli. Triplestore benchmark Oltre allo sviluppo dei database RDF e di linguaggi di interrogazione adeguati ai triplestore, sono state realizzate anche appropriate tecniche di valutazione (benchmark). I benchmark principali messi a disposizione e quelli più usati sono: 22 RDF Triplestore Systems ______________________________________________________________________________________ • SPARQL Performance Benchmark, SP2Bench (SP2): è costituito da due component principali. Il primo è un generatore di dati arbitrariamente grandi che si basa sul ben noto scenario DBLP (Computer Science Library), creando così uno scenario simile alla realtà. Il secondo componente è costituito da 14 query specificamente progettate per il caso d’uso DBLP. • Lehigh University Benchmark (LUBM): è stato sviluppato per facilitare la valutazione dei repository del Semantic Web in modo standard e sistematico. Il benchmark ha lo scopo di valutare le prestazioni di tali archivi su un set di dati di grandi dimensioni. L’ontologia utilizzata dal benchmark è chiamata Univ-Bench, descrive le università e i dipartimenti e le attività che si verificano in esse. Il benchmark è formato da 14 query, scritte in SPARQL, scelte affinché fossero più realistiche possibili e tenessero conto di fattori come la dimensione dell’input, la selettività, la complessità ecc.. • Berlin SPARQL Benchmark (BSBM): fornisce un benchmark sulle prestazioni delle query utilizzando SPARQL. Il BSBM è composto da 12 query che vengono eseguite a frequenze diverse, nel contesto di un caso d'uso e-commerce. Il caso d’uso di e-commerce è realizzato eseguendo più volte variazioni delle 12 query in un “mix query” composto da 25 query che simulano una ricerca di prodotti da parte di un singolo consumatore. Questo benchmark include un generatore di dati e un test suit. Il generatore di dati è in grado di costruire una quantità scalabile di dati in formato RDF/XML basati su un caso d’uso di e-commerce. Il funzionamento del test suite, invece, si basa su un caso d’uso preso dalla vita reale, l’esecuzione delle varie query imitano il comportamento degli operatori umani. Nella sua ultima versione sono stati aggiunti altri due casi d’uso uno ‘Explore and Update’, in cui si simulano operazioni di scrittura/lettura con l’aggiunta di update query, e l’altro ‘Intelligence Business’, in cui si simula l’escuzione di domande analitiche sui dataset. 23 RDF Triplestore Systems ______________________________________________________________________________________ Capitolo3_____________________________________________________ OWLIM OWLIM è implementato in Java e confezionato come un "Storage and Inference Layer" (SAIL) per il database RDF Sesame, fa ampio uso delle caratteristiche e delle infrastrutture di Sesame, in particolare l’RDF model, l’RDF parser e il query engine. Architettura OWLIM OWLIM implementa l'interfaccia Sesame SAIL in modo che possa essere integrato con il resto del framework Sesame, ad esempio il query engine e l'interfaccia utente web. Un'applicazione utente può essere progettato per utilizzare OWLIM direttamente attraverso l'API SAIL di sesame o tramite le interfacce funzionali di livello superiore. OWLIM può essere utilizzato anche con il framework Jena attraverso un adattatore. OWLIM è disponibile in tre edizioni principali: OWLIM-Lite, OWLIM-SE (Standard Edition) e OWLIM-Enterprise. OWLIM-Lite e OWLIM-SE sono identici in termini di utilizzo e di integrazione. A 24 RDF Triplestore Systems ______________________________________________________________________________________ parte alcune differenze nei parametri di configurazione, queste edizioni hanno la stessa funzionalità e implementano le stesse API di Sesame. Tuttavia, essi usano una diversa indicizzazione, inferenza e valutazione delle query, che si traduce in differenti prestazioni, requisiti di memoria e scalabilità. OWLIM-Lite è stato progettato per volumi di dati normali (sotto i 100 milioni di dichiarazioni). Le sue caratteristiche principali sono le seguenti: • Il ragionamento e la valutazione della query viene eseguita nella memoria principale; • impiega una strategia di persistenza che garantisce la conservazione dei dati e la coerenza; • il caricamento di dati, incluso il ragionamento, è estremamente veloce; • ha una facile configurazione. OWLIM-SE è adatto per la gestione di grandi volumi di dati e per attività di interrogazione molto intensi. È stato progettato come un enterprise-grade database management system . Ciò è stato reso possibile attraverso: • indici file-based, che consentono di scalare a miliardi di dichiarazioni anche su computer desktop; • indici special-purpose e tecniche di ottimizzazione delle query, per garantire una valutazione rapida della query su grandi volumi di dati; • gestione ottimizzata di owl:sameAs per aumentare l'efficienza per le attività di integrazione dei dati; • efficiente retroazione delle dichiarazioni esplicite e le loro inferenze, che consente efficienti operazioni di eliminazione. OWLIM-Enterprise è un componente in grado di gestire e sincronizzare più istanze OWLIM in una configurazione cluster flessibile e scalabile. OWLIM si basa sul "Triple Reasoning and Rule Entailment Engine" di ontotext (TRREE), un RDF 25 RDF Triplestore Systems ______________________________________________________________________________________ engine nativo. La semantica supportata può essere configurata attraverso la definizione di set di regole. Il più espressivo set di regole combina RDFS non vincolati e OWL-Lite. È possibile realizzare set di regole personalizzati per ottenere prestazioni ottimali ed migliore espressività. OWLIM supporta RDFS, OWL DLP, OWL Horst, la maggior parte di OWL Lite e OWL2 RL. OWLIM è in uso per un gran numero di applicazioni del Semantic Web e del Data linked, tra cui BBC's Olympics 2012 website, il BBC World Cup 2010 Website e LinkedLifeData platform. Virtuoso Openlink Virtuoso è un innovativo data server multi-modello, esso offre una impareggiabile soluzione, indipendente dalla piattaforma, per la gestione dei dati, l'accesso e l’integrazione. Figura: Architettura Virtuoso 26 RDF Triplestore Systems ______________________________________________________________________________________ L’architettura ibrida del server Virtuoso consente di offrire le funzionalità del server tradizionale all’interno di un offerta unica che copre le seguenti aree: • Relational Data Management • RDF Data Management • XML Data Management • Free Text Content Management & Full Text Indexing • Document Web Server • Linked Data Server • Web Application Server • Web Services Deployment (SOAP or REST) Virtuoso è quindi un database ibrido che combina in un unico sistema le funzionalità di un tradizionale RDBMS, ORDBMS, virtual database, RDF, XML, web application server e file server. Piuttosto che avere server dedicati per ogni funzionalità sopra elencate Virtuoso fornisce un accesso trasparente alle fonti di dati esistenti, che sono in genere banche dati di fornitori di database diversi. Come DBMS relazionale offre un po' tutte le caratteristiche che offrono gli RDBMS tipici come MySQL e simili. Ovviamente supporta il linguaggio SQL, inoltre mette a disposizione molte funzioni utili. Per quanto riguarda invece le sue funzionalità come Triple Store, il modello di dati utilizzato è il modello a grafo, che è quello utilizzato dalla maggior parte dei Triple Store che non si basano su database relazionali. E' possibile interrogarlo tramite il linguaggio SPARQL , eseguire update tramite SPARUL ed è possibile importare ed esportare dati in formato RDF. I formati di serializzazione RDF supportati sono HTML+RDFa, RDF-JSON, N3, Turtle, TriG, TriX e RDF/XML. Virtuoso ha guadagnato un notevole interesse in quanto è utilizzato per ospitare molti importanti 27 RDF Triplestore Systems ______________________________________________________________________________________ Linked open Date (ad esempio, DBpedia). Virtuoso viene offerto sia in una versione open-source che in una commerciale. Mulgara • Mulgara è un sistema open source, altamente scalabile, un database puramente java-based costruito appositamente per la memorizzazione e il recupero di metadati. Mulgara è un database completamente nuovo iniziato nel luglio del 2006 come un fork del progetto Kowari, concesso in licenza sotto la Open License v3.0 Software e la Licenza Apache 2.0, che si applica ai nuovi contributi del codice. • Le caratteristiche ed i vantaggi di Mulgara sono descritti nelle sezioni seguenti: • Generale: • Supporto nativo a RDF • Database multiplo per server • Semplice linguaggio per query • Ricerca ful text • Supporta le caratteristiche e le linee guida del W3C • Prestazioni e scalabilità: • Capacità di memorizzazione di dataset di grandi dimensioni • Ottimizzata archiviazione e recupero dei metadati • Supporto multiprocessore • Ricerca ful text • Configurazione indipendente sia per architetture a 32 che 64 bit • Affidabilità: 28 RDF Triplestore Systems ______________________________________________________________________________________ • Supporto full transaction • Clustering • Archivio livello fail-over • Integrità permanente • Connettività: • Jena • JDRF • SOAP • Software Developers Kit (SDK) • Proprio come un database relazionale, Mulgara può essere utilizzato come un repository di dati per le applicazioni software. Mulgara ha un open API che supporta molti standard di linguaggi di programmazione e protocolli. • Gli utenti possono utilizzare ed interagire con Mulgara in modi diversi a secondo delle loro esigenze: • Gli utenti finali possono interagire con Mulgara indirettamente tramite le applicazioni che utilizzano Mulgara come archivio dati sottostante. • Gli amministratori di sistema utilizzano ITQL per caricare metadati in Mulgara, controllarne lo stato, fare il backup delle informazioni detenute ed amministrare i database Mulgara. • I programmatori effettuano l'integrazione tra le proprie applicazioni e Mulgara. Le query ai database Mulgara possono essere effettuate attraverso uno dei seguenti standard: ITQL shell, SOAP, ITQL JavaBean, Mulgara driver • Mulgara è in grado di interrogare qualsiasi tipo di sorgente dati tramite resolver. I resolver accettano ed elaborano delle query sui dati contenuti in un file, in un database o in un'altra fonte di dati. 29 RDF Triplestore Systems ______________________________________________________________________________________ • Mulgara fornisce resolver per l'interrogazione di diversi tipi di archivi di dati, tra cui: • Local and remote TKS data stores • file: and HTTP: protocol files • JRDF files • MP3 files • RDF/XML files • MBox files Confronto Per rendersi conto delle differenze prestazionali dei tre triplestore presentati è stato effettuato un test con tramite il benchmark BSBM (Berlin SPARQL Benchmark), poiché esso si concentra principalmente sull’efficienza dei triplestore, mentre altri ben noti benchmark si concentrano più sull’inferenza e la scalabilità. Il BSBM version 3 è suddiviso in 3 scenari: • Explore Use Case: di sola lettura, simula la ricerca di un prodotto da parte di un consumatore; • Explore and Update Use Case: di lettura e scrittura, in cui update query vengono aggiunte a quelle dell’Explorer Use Case; • Business Intelligence Use Case: simula l’utilizzo di query analitiche sui dati. In questo lavoro è stato preso in considerazione solo il primo caso d’uso, e sono stati valutate per ogni triplestore le seguenti metriche: • Query al Secondo (QpS): tale metrica misura il numero di una specifica query che il sistema sotto test ha risposto in un secondo; 30 RDF Triplestore Systems ______________________________________________________________________________________ • Query Mixes all’ora (QMpH): tale metrica misura il numero di query mixes complete che sono risposte da un sistema in un’ora. L’Explore Use Case simula la ricerca di un prodotto da parte di un consumatore. Esso è composto da 12 query che vengono eseguite nel contesto di un "mix query" formato a sua volta da 25 query. Le query sono di sola lettura ed hanno lo scopo di simulare un caso d'uso di e-commerce. Il test driver ed il sistema erano in esecuzione sulla stessa macchina al fine di ridurre l’influenza della latenza della rete. Per ogni triplestore sono stati valutati: • Il numero di query che il sistema è riuscito ad eseguire in un secondo, valutato per ogni singola query; • Il numero di “mix query” che il sistema è riuscito ad eseguire in un ora. • Nelle figure sottostanti si vedono i risultati ottenuti e sono stati marcati mostrando in grassetto i risultati migliori. Risultati Query 1 31 RDF Triplestore Systems ______________________________________________________________________________________ Risultati query 2 Risultati query 3 Risultati query 4 32 RDF Triplestore Systems ______________________________________________________________________________________ Risultati query 5 Risultati query 6 Risultati query 7 33 RDF Triplestore Systems ______________________________________________________________________________________ Risultati query 8 Risultati query 9 Risultati query 10 34 RDF Triplestore Systems ______________________________________________________________________________________ Risultati query 11 Risultati query 12 Risultati “query mix” all’ora 35 RDF Triplestore Systems ______________________________________________________________________________________ Come si può notare dai grafici OWLIM è risultato quello più efficiente seguito da Virtuoso ed infine da Mulgara. In quasi tutte le query del test OWLIM era davanti ai suoi concorrenti, ed in quelle in cui non lo era ha mostrato ugualmente di essere molto competitivo. 36 RDF Triplestore Systems ______________________________________________________________________________________ Conclusioni___________________________________________________________________ Nonostante il web sia uno strumento utile per il recupero, l'elaborazione e la trasmissione delle informazioni e della conoscenza, rimane, ancora e soprattutto, una gigantesca biblioteca di pagine HTML (statiche e dinamiche) online. I motori di ricerca attuali sono in grado, secondo ben precise istruzioni, di disporre e visualizzare le informazioni in una certa maniera, ma non hanno capacità di riconoscerle o attribuire loro un particolare significato per elaborarle, questo poiché effettuano solo ricerche di tipo sintattico basate su insieme di parole chiave. Trovare informazioni usando i tradizionali motori si rivela fruttuoso solo in presenza di argomenti di una certa notorietà e importanza e di query molto precise, se invece fossero in grado di comprendere il significato dei contenuti di una pagina, potrebbero fornire risposte efficaci a domande anche più complesse. Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno investendo nello sviluppo di nuove tecnologie che permettano alle macchine di interpretare il senso delle parole similmente agli 37 RDF Triplestore Systems ______________________________________________________________________________________ esseri umani. La loro aspirazione è quella di creare sistemi di information retrieval capaci di estrarre ed indicizzare semanticamente i concetti più significativi dei testi affinché le ricerche effettuate attraverso i loro portali risultino sempre più precise. Aggiungere la semantica ai contenuti del Web richiede però la creazione di linguaggi e tecnologie in grado di estrarre significati da informazioni. Il linguaggio, proposto dal W3C, per la rappresentazione delle informazioni riguardo le risorse del Web è RDF (Resource Description Framework). L’RDF ci permette di effettuare semplici affermazioni sulle risorse, tali affermazioni sono costituite da una tripla soggetto-predicato-oggetto in cui il soggetto è la parte che identifica ciò che l'affermazione descrive, il predicato è la parte che identifica la proprietà o le caratteristiche del soggetto e l’oggetto è la parte che identifica il valore della proprietà. Nascono così i primi database realizzati appositamente per la memorizzazione ed il recupero di triple RDF, i cosidetti triplestore. In questo lavoro di tesi è stato effettuato un confronto tra alcuni triplestore in commercio al fine di individuare quello più efficiente. Per la valutazione dei triplestore è stato scelto il benchmark BSBM (Berlin SPARQL Benchmark) e sono stati testati i seguenti triplestore: OWLIM, Virtuoso e Mulgara. Analizzando i risultati dei test effettuati il triplestore più efficiente è risultato essere OWLIM. 38
© Copyright 2024 Paperzz