En l'era digital actual, la informació és un actiu estratègic que impulsa la innovació, la transparència i la col·laboració en tots els sectors de la societat.
No obstant això, existeixen encara molts reptes tant per a publicadors de dades com per a consumidors dels mateixos. Aspectos com el manteniment de les APIs (Application Programming Interfaces) que ens permeten accedir i consumir els conjunts de dades publicades o la correcta replicació i sincronització de conjunts de dades canviants segueixen sent desafiaments molt rellevants per a aquests actors.
Els Linked Data Event Streams (LDES) són un nou mecanisme de publicació de dades que poden ajudar a solucionar aquests reptes.
Destil·lant els aspectes claus de LDES
Quan des de la Universitat de Gant es va començar a treballar en un nou mecanisme per a la publicació de dades obertes, la pregunta a la qual pretenien donar resposta era: Quin és la millor API possible que podem dissenyar per exposar conjunts de dades obertes?
En l'actualitat, els organismes publicadors de dades recorren a múltiples mecanismes per publicar els seus diferents conjunts de dades. D'una banda, és fàcil trobar-nos API s. Destaquen les de tipus SPARQL, estàndard per a consulta de dades enllaçades ( Link Data ), però també de tipus REST o de tipus WFS, per a l'accés a conjunts de dades amb component geoespacial. D'altra banda, és molt comú que trobem la possibilitat d'accedir a bolcats de dades en diferents formats (i.i. CSV, JSON, XLS, etc.) que puguem descarregar per a la seva utilització.
En el cas dels bolcats de dades, és molt fàcil trobar-nos amb problemes de sincronització. Això ocorre quan, després d'un primer bolcat, es produeix un canvi que requereix la modificació del conjunt de dades original com, per exemple, el canvi del nom d'un carrer en una llista de carrers prèviament descarregada. Davant aquest canvi, si el tercer opta per modificar el nom del carrer sobre el bolcat inicial en lloc d'esperar al fet que el publicador actualitzi les seves dades en el repositori mestre per realitzar un nou bolcat, les dades manejades pel tercer quedaran desincronizados enfront dels manejats pel publicador. D'igual forma, si és el publicador el que actualitza el seu repositori mestre però aquests canvis no són descarregats pel tercer, tots dos manejaran diferents versions del conjunt de dades.
D'altra banda, si el publicador ofereix l'accés a les dades a través d'APIs de consulta, en lloc de mitjançant bolcats de les dades als tercers, se solucionen els problemes de sincronització, però la construcció i manteniment d'un alt i variat volum de les mateixes suposa un elevat esforç als publicadors de dades.
LDES cerca solucionar aquestes diferents problemàtiques aplicant el concepte de Linked Data a un event stream o flux de dades. Segons la definició que apareix en la seva pròpia especificació , un Linked Data Event Stream (LDES) és una col·lecció d'objectes immutables on cada objecte està descrit en ternes RDF.
En primer lloc, el fet que els LDES apostin per Linked Data aporta principis de disseny que permeten combinar dades diverses i/o pertanyents a diferents fonts, així com la seva consulta a través de mecanismes semàntics que permeten llegibilitat tant per humans com per màquines. En resum, aporta interoperabilitat i consistència entre conjunts de dades, i facilita per tant la seva cerca i descobriment.
D'altra banda, els event streams o fluxos de dades, permeten als consumidors replicar la història dels conjunts de dades, així com sincronitzar els canvis recents. Qualsevol nou registre afegit a un conjunt de dades o qualsevol modificació dels registres existents (en definitiva, qualsevol canvi), es registra com un nou esdeveniment incremental en el LDES que no alterarà els esdeveniments anteriors. Per tant, poden publicar-se i consumir-se dades com una seqüència d'esdeveniments, la qual cosa és útil per a dades que canvien amb freqüència, com a informació en temps real o informació que sofreix actualitzacions constants, ja que permet la sincronització de les últimes actualitzacions sense necessitat de fer una nova descàrrega completa de tot el repositori mestre després de cada modificació.
En un model d'aquest tipus, l'editor solament necessitarà desenvolupar i mantenir una API, el LDES, en lloc de múltiples APIs com WFS, REST o SPARQL. Els diferents tercers que desitgin utilitzar les dades publicades es connectaran (cada tercer implementarà el seu client LDES) i rebran els esdeveniments dels streams als quals s'hagin subscrit. Cada tercer crearà a partir de la informació recaptada les APIs específiques que consideri oportunes sobre la base del tipus d'aplicacions que vulguin desenvolupar o fomentar. En definitiva, el publicador no haurà de resoldre totes les potencials necessitats que tingui cada tercer en la publicació de dades, sinó que donant un interfície LDES (API basi mínima) cada tercer se centrarà en la seva problemàtica.
A més, per facilitar l'accés en grans volums de dades o a dades que poden estar distribuïts en diferents fonts, com un inventari de punts de recarrega elèctrica a Europa, LDES aporta la capacitat de fragmentació dels conjunts de dades. A través de l'especificació TREE (en anglès, arbre), LDES permet establir diferents tipus de relacions entre fragments de dades. Aquesta especificació permet publicar col·leccions d'entitats, anomenats membres, i ofereix la capacitat de generar una o més representacions d'aquestes col·leccions. Aquestes representacions s'organitzen com a vistes, distribuint els membres a través de pàgines o nodes interconnectats mitjançant relacions. Així, si desitgem que les dades es puguin consultar a través d'índexs temporals, es podrà establir una fragmentació temporal i accedir solament a les pàgines d'un interval temporal. D'igual forma, es podran plantejar índexs alfabètics o geoespacials i així un consumidor podrà accedir només a aquelles dades necessàries sense la necessitat de realitzar el “bolcat” del conjunt de dades complet.
Quines conclusions podem extreure de LDES?
En aquest post hem observat el potencial de LDES com a mecanisme per a la publicació de dades. Alguns dels aprenentatges més rellevants són:
- LDES persegueix facilitar la publicació de dades a través d'APIs base mínimes que serveixin com a punt de connexió per a qualsevol tercer que desitgi consultar o construir aplicacions i serveis sobre conjunts de dades.
- La construcció d'un servidor LDES, no obstant això, té cert nivell de complexitat tècnica a l'hora d'establir l'arquitectura necessària per al maneig dels fluxos de dades publicades i la seva adequada consulta per part de consumidors de dades.
- El disseny de LDES permet la gestió tant de dades amb una elevada taxa de canvis (i.i. dades provinents de sensors), com a dades amb una baixa taxa de canvis (i.i. dades provinents d'una llista de carrers). Tots dos escenaris poden manejar qualsevol modificació del conjunt de dades com un flux de dades.
- LDES soluciona de forma eficient la gestió de registres històrics, versions i fragments de conjunts de dades. Per a això es recolza en l'especificació TREE podent establir diferents tipus de fragmentació sobre el mateix conjunt de dades.