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 obstante, existen aún muchos retos tanto para publicadores de datos como para consumidores de los mismos. Aspectos como el mantenimiento de las APIs (Application Programming Interfaces) que nos permiten acceder y consumir los conjuntos de datos publicados o la correcta replicación y sincronización de conjuntos de datos cambiantes siguen siendo desafíos muy relevantes para estos actores.
Els Linked Data Event Streams (LDES) són un nou mecanisme de publicació de dades que poden ajudar a solucionar estos reptes.
Destil·lant els aspectes claus de LDES
Quan des de la Universitat de Gant se comenzó a trabajar en un nuevo mecanismo para la publicación de datos abiertos, la pregunta a la que pretendían dar respuesta era: Cuál es la mejor API posible que podemos diseñar para exponer conjuntos de datos abiertos?
En l'actualitat, els organismes publicadors de dades recorren a múltiples mecanismes per a 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 seua utilització.
En el caso de los volcados de datos, es muy fácil encontrarnos con problemas de sincronización. Esto ocurre cuando, tras un primer volcado, se produce un cambio que requiere la modificación del conjunto de datos original como, por ejemplo, el cambio del nombre de una calle en un callejero previamente descargado. Ante este cambio, si el tercero opta por modificar el nombre de la calle sobre el volcado inicial en lugar de esperar a que el publicador actualice sus datos en el repositorio maestro para realizar un nuevo volcado, los datos manejados por el tercero quedarán desincronizados frente a los manejados por el publicador. De igual forma, si es el publicador el que actualiza su repositorio maestro pero estos cambios no son descargados por el tercero, ambos manejarán diferentes versiones del conjunto de datos.
D'altra banda, si el publicador oferix 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 busca solucionar estes diferents problemàtiques aplicant el concepte de Linked Data a un event stream o flux de dades. Segons la definició que apareix en la seua 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 aposten per Linked Data aporta principis de disseny que permeten combinar dades diverses i/o pertanyents a diferents fonts, així com la seua 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 seua 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 patix 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'este tipus, l'editor solament necessitarà desenvolupar i mantindre una API, el LDES, en lloc de múltiples APIs com WFS, REST o SPARQL. Els diferents tercers que desitgen utilitzar les dades publicades es connectaran (cada tercer implementarà el seu client LDES) i rebran els esdeveniments dels streams als quals s'hagen subscrit. Cada tercer crearà a partir de la informació recaptada les APIs específiques que considere oportunes sobre la base del tipus d'aplicacions que vullguen desenvolupar o fomentar. En definitiva, el publicador no haurà de resoldre totes les potencials necessitats que tinga cada tercer en la publicació de dades, sinó que donant un interfície LDES (API base mínima) cada tercer se centrarà en la seua problemàtica.
A més, per a 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. Esta especificació permet publicar col·leccions d'entitats, anomenats membres, i oferix la capacitat de generar una o més representacions d'estes col·leccions. Estes 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 puguen 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 extraure de LDES?
En este 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 perseguix facilitar la publicació de dades a través d'APIs base mínimes que servisquen com a punt de connexió per a qualsevol tercer que desitge consultar o construir aplicacions i servicis sobre conjunts de dades.
- La construcció d'un servidor LDES, no obstant açò, 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 seua 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 açò es recolza en l'especificació TREE podent establir diferents tipus de fragmentació sobre el mateix conjunt de dades.