Scopri tutti gli articoli e le iniziative nelle varie sezioni del portale

Più consultati


Tags

I Linked Data al tempo dei Big Data

16/02/2017


Tim Open ospita oggi Federico Morando, co-founder e CEO di Synapta, start-up innovativa focalizzata su data curation e data integration, che si è data la missione di portare la tecnologia Linked Data in produzione, per risolvere problemi concreti di aziende e pubbliche amministrazioni.



Introduzione

Questo post  ha un duplice obiettivo. Da un lato, introdurrò il lettore ai Linked Data – e proverò a farlo abbinando alle classiche definizioni, che risentono del background tecnico-accademico di molti degli early adopters, qualche intuizione sull'utilità di business di questo approccio alla gestione dei dati. D'altro canto, chi già avesse familiarità coi Linked Data non si scoraggi subito: nella seconda parte, mi concentrerò brevemente sul ruolo dei Linked Data nel contesto Big Data, con un accenno ai Big Linked Data – inclusi alcuni riferimenti tecnici più specifici, che spero siano utili anche agli addetti ai lavori “linked”.

Fonte: http://www.cafepress.com/w3c_shop

Cosa sono i Linked Data?

Se si chiede a Google una “definition of linked data”, si ottiene un paragrafo tratto da webopedia.com, che contestualizza questo termine nel campo del Web Semantico. La wiki del W3C (principale standard setting organization per il Web), va nella stessa direzione, definendo i Linked Data come “il formato dati che supporta il Web Semantico”. Il contesto è il seguente: i siti Web usano collegamenti ipertestuali, che consentono alla persone di muoversi da un documento all'altro. Questo è il Web dei Documenti, il Web che tutti navighiamo, in cui il significato dei link da una pagina all'altra è intuito dal cervello di chi naviga, ma incomprensibile ad un computer. L'idea dietro i Linked Data ed il Web dei Dati è che i collegamenti tra dati abbiano un significato esplicito, che siano “etichettati” diversamente, a seconda della ragione per cui si stabilisce il collegamento, permettendo alle persone, ma anche alle macchine, di trovare nuovi dati pertinenti [ovvero, fare inferenze], a partire dai dati e collegamenti esistenti. Nella visione del Semantic Web, agenti intelligenti sono in grado di navigare il Web dei Dati, fare inferenze, e dunque generare nuova conoscenza.

Tutto ciò aiuta a capire la vision che anima i Linked Data, ma probabilmente non giova alla loro percezione come tecnologia immediatamente utile. Infatti, un Web completamente “comprensibile” dalle macchine resta un'utopia, mentre i Linked Data – precondizione ed espressione più pragmatica di questa visione – sono utilizzabili ed utilizzati già oggi.

La definizione proposta da Wikipedia aiuta maggiormente l'intuizione del lettore. I Linked Data, infatti, sono descritti come “una modalità di pubblicazione di dati strutturati atti ad essere collegati fra loro e quindi utilizzabili attraverso interrogazioni semantiche”, sicché diventa “possibile collegare e utilizzare dati provenienti da diverse sorgenti.”

Insomma, esplicitare il significato dei collegamenti tra dati è possibile ed utile fin da subito, anche se è probabile che gli agenti intelligenti che processeranno questi dati nella vostra azienda non siano bot autonomi, ma delle persone (magari chiamate data scientist).

ll formalismo standard, seguendo il quale sono strutturati i Linked Data, è chiamato Resource Description Framework (RDF) ed induce ad esplicitare la semantica (il significato) dei dati stessi. In altre parole, chi pubblica i dati è spinto a “mettere più intelligenza nei dati”, anziché lasciare che tutta l'intelligenza debba essere posta nelle query che li interrogano e nel software che elabora ulteriormente i risultati. Ciò ha lo scopo primario di favorire l'interoperabilità. In particolare, chi non conosce già i dati, li capisce un po' meglio, perché i dati stessi sono “collegati” a più meta-dati; inoltre, sistemi diversi possono scambiarsi dati più facilmente, rispondendo a query complesse interrogando al volo basi di dati esterne, ma collegate. Tale approccio nasce per il Web, e dunque è pensato per non richiedere un coordinamento “a monte” rispetto alla condivisione di vocabolari ed ontologie. Estremizzando, l'unica cosa che è necessario condividere è il formalismo di base, RDF, che forza a rappresentare tutta la conoscenza sotto forma di molteplici affermazioni molto semplici, del tipo soggetto-predicato-oggetto (dette anche “triple”).

(A scanso di equivoci: così come il Web è di regola accessibile a tutti, ma ci sono parti riservate a chi sia autenticato nel modo opportuno, nonché LAN aziendali che usano tecnologie Web solo per i dipendenti, anche i Linked Data sono aperti by default, ma la loro fruizione può essere regolata, anche in modo granulare.)

A cosa servono i Linked Data?


Fonte: elaborazione da tavole di Hugh MacLeod

L'introduzione sin qui fornita è senz'altro lacunosa, ma spero si sia intuito che la tecnologia Linked Data nasce per favorire l'interoperabilità tra fonti di dati eterogenee, pubblicate sul Web da una pluralità di attori. Tale interoperabilità non viene garantita da una semantica condivisa ex ante, ma dall'uso di un formalismo concettualmente semplice, dall'esistenza di identificatori per loro natura globali (gli URI, che in prima approssimazione possiamo considerare analoghi agli URL del Web), e dalla facilità di riutilizzare vocabolari e tassonomie esistenti, eventualmente anche "annotando" ex post o dall'esterno dati che risiedono su altri sistemi e sono pubblicati da entità tra loro del tutto indipendenti.

L'approccio Linked Data, nato per abilitare il Web dei Dati, si rivela vincente anche – e forse soprattutto – in contesti aziendali complessi, in cui molte fonti di dati non siano state sottoposte ad una forte governance unitaria “a monte”. Così come sul Web, in questi casi, è prezioso poter relazionare tra loro i dataset legacy “a valle”, ovvero andando a descrivere le relazioni tra la semantica di una certa colonna di una tabella del database A ed un'altra colonna di un'altra tabella del database B, senza dover andare ad alterare gli schemi dei database originali (e senza dover progettare il nuovo database “perfetto” prima di cominciare: RDF, infatti, ha la flessibilità degli approcci NoSQL/schemaless).

Quando i dati sono strutturati secondo il formalismo Linked Data, diventa dunque più facile collegare tra loro diversi database o estrarne nuova conoscenza, anche facendo leva su informazioni pubblicate da terze parti. Ovvero, può darsi che i link per collegare il database interno A ed il database interno B passino per il database esterno C, disponibile online come Open Linked Data. Coerentemente col fatto che complessi sistemi, anche proprietari, possono utilizzare i Linked Data con profitto, questa tecnologia è al centro di piattaforme come Watson di IBM, ed elementi linked sono presenti in prodotti come Siri di Apple. D'altro canto, Google (ma anche Microsoft e Yandex) o Facebook supportano questo approccio tramite Schema.org o l’Open Graph Protocol, anche al fine di facilitare l'ingestione di dati provenienti dal Web, integrandoli nelle loro piattaforme.

La Linked Open Data Cloud


Linking Open Data cloud diagram 2017, 
di A. Abele, J. P. McCrae, P. Buitelaar, A. Jentzsch e R. Cyganiak. 

Fonte: http://lod-cloud.net/


L'immagine qui sopra rappresenta la cosiddetta Linked Open Data Cloud: una raffigurazione (parziale) dei dataset Open Linked Data. Val la pena provare a “navigarla”, per evidenziare le relazioni tra basi dati. Ho già accennato allo scenario in cui l'incrocio delle banche dati interne passi tramite l'integrazione/arricchimento dei dati proprietari tramite fonti di dati esterne: un caso tipico è quello in cui si possano collegare diverse entità alla loro dimensione geografica, a partire dall'indirizzo (o elementi dello stesso). Il pallino azzurro evidenziato nell'immagine dai link rossi è GeoNames, uno dei database geografici più connessi. Chiaramente, tutti i database connessi con GeoNames diventano potenzialmente connessi anche tra loro, sul piano geo-spaziale.

A riprova del fatto che la Linked Open Data Cloud, per quanto ricca, è solo una vista parziale, essa non menziona un elemento che io ritengo ormai cardine: Wikidata ed i suoi milioni di link.

 

Wikidata


Fonte: https://en.wikipedia.org/wiki/File:Datamodel_in_Wikidata.svg


Wikidata, è la “base di conoscenza libera e collaborativa ospitata dalla Wikimedia Foundation e aggiornata da volontari”. Fondata nell'Ottobre del 2012, da allora ha sperimentato una crescita tumultuosa, conquistandosi crescente rispetto nella comunità dell'enciclopedia libera Wikipedia. Al momento di scrivere queste righe, l'end-point pubblico di Wikidata (https://query.wikidata.org/) espone 1.532.823.622 triple [N.B.: circa dieci minuti dopo, rileggendo questa riga, dovrei scrivere che le triple sono 1.532.857.587].

Dal punto di vista tecnologico, la parte Linked Data di Wikidata è ospitata su un cluster del database a grafo Blazegraph. La scelta di Blazegraph è stata determinata, in particolare, dal supporto alla versione cluster del database nella versione open source, il che ci porta all'intersezione tra Linked Data e Big Data.

 

Ci servono i Linked Data, al tempo dei Big Data?



Fonte: http://dilbert.com/strip/2008-05-08


Ad oggi, le tecnologie utilizzate per immagazzinare ed interrogare le basi di dati linked sono, per ovvie ragioni cronologiche, meno mature ed ottimizzate dei tradizionali database relazionali. Si potrebbe dunque pensare che gli approcci Big e Linked Data siano del tutto ortogonali, difficilmente applicabili agli stessi dati. Ed è vero che, laddove dei dati siano così Big da non poter essere trattati con un DB tradizionale, in termini di performance un approccio Linked Data puro sarebbero ancor più scadente. Vi sono tuttavia modi per abbinare Big e Linked Data proficuamente.

Raggruppo queste argomentazioni in due filoni: Data Lake vs. Data Swamp e Big Linked Data.

Data Lake vs. Data Swamp

Chi ha già fatto o sta per fare passi importanti nel mondo Big Data, può cogliere l'occasione della creazione di un data lake per arricchire la semantica delle proprie basi dati, scongiurando il rischio che il lago di dati diventi una palude incomprensibile. Il processo non deve necessariamente essere integrale: si può, ad esempio, decidere di esplicitare la semantica delle sole entità più rilevanti.

Per una discussione più completa, rimando a due ulteriori brevi articoli: un post di Janz Aasman, che espande un po' l'accenno fatto sopra all'utilizzo della semantica dentro un data lake, ed un vecchio post di Bob DuCharme, molte delle cui intuizioni sono sopravvissute al tempo e possono oggi finalmente trovare applicazione (in parte con le tecnologie discusse nel prossimo paragrafo).

Big Linked Data

L'appetito vien mangiando. E chi avesse cominciato ad utilizzare, per esempio, proprietà di vocabolari RDF come chiavi dei JSON immagazzinati su Hadoop, potrebbe sentire l'esigenza di andare oltre… in particolare, si potrebbe desiderare l'espressività di linguaggi di query come SPARQL, per esplorare grandi grafi. Con l’aumentare della dimensione di un RDF, si vengono a porre due problemi:

in termini di spazio: gli RDF crescono facilmente per loro natura e un triplestore stand-alone, per quanto si possa aumentare la RAM di una singola macchina, trova oggi un limite invalicabile tra 1 e 10 miliardi di triple RDF;

in termini di accesso: più il grafo RDF è grande, più è lento l’accesso alle risorse e quindi le performance delle query decrescono. In particolare, diventa difficile portare a termine alcune query avanzate.

Insomma, parte del vantaggio di avere a disposizione molti dati si viene a perdere poiché non si riesce a far leva su un adeguato sistema di interrogazione degli stessi.

Una soluzione per affrontare il problema è un’architettura di storage distribuito, ad esempio tramite Apache Hadoop, sulla quale abilitare strati ulteriori, che “comprendano” la semantica di RDF. Questa soluzione risolverebbe il problema del numero crescente di triple, permettendo al contempo di continuare a fare query avanzate, anche in presenza di grafi molto espansi. Tra le implementazioni che stanno emergendo per utilizzare gli RDF in un ambiente distribuito, le più promettenti che abbiamo esaminato come Synapta sono:

Apache Rya, basato su Apache Accumulo e Hadoop;

S2RDF, progetto di ricerca basato su Apache Spark e Hadoop.

Sebbene si tratti di progetti non ancora maturi, abbiamo testato con successo il codice open source di Rya. Per approfondire, si può partire da RDF in the clouds: a survey di Z. Kaoudi e I. Manolescu.


In conclusione


In conclusione, chiunque può trarre benefici dall'utilizzo dei Linked Data fin da subito. Le organizzazioni di minori dimensioni possono collegarsi alla Linked Open Data Cloud, per integrare i dati interni con quelli messi a disposizione da un crescente numero di communities online (a partire da Wikidata) ed entità pubbliche e private (dall'ISTAT a Bloomberg). Ciò  avvantaggiandosi in tempo reale degli aggiornamenti dei dati di origine e senza doversi preoccupare di mantenere in sincrono copie locali. Le organizzazioni di maggiori dimensioni, inoltre, possono godere già al proprio interno di ulteriori vantaggi, derivanti dalla progressiva standardizzazione semantica, senza bisogno di mettere pesantemente mano ai database legacy.

Nell'ambito Big Data, poi, l'aggiunta di un certo livello di semantica al Data Lake è un'opzione già percorribile, ed a prova di futuro, che darà tutti i suoi frutti nel momento in cui gli sviluppi verso i Big Linked Data offriranno soluzioni stabili, che uniscano i vantaggi dei mondi Big e Linked Data.

 

Bio:

Federico Morando è co-founder e CEO di Synapta, start-up innovativa focalizzata su data curation e data integration tramite tecnologie Linked Data. Laurea e master in economia in Bocconi e a Toulouse, PhD a Gand e Torino in analisi economica del diritto. Dopo sette anni come managing director e direttore della ricerca del Centro Nexa su Internet & Società del Politecnico di Torino, in cui si è spesso occupato di Open e Linked Data, ha deciso di fondare Synapta, start-up innovativa nata per fare "Linked Data per davvero!", applicandoli alla soluzione di problemi concreti di aziende e pubbliche amministrazioni.

Per saperne di più e per continuare la conversazione con Federico e i suoi colleghi: https://synapta.it/.