Na era dixital actual, a información é un activo estratéxico que impulsa a innovación, a transparencia e a colaboración en todos os sectores da sociedade.
No entanto, existen aínda moitos retos tanto para publicadores de datos como para consumidores dos mesmos. Aspectos como o mantemento das APIs (Application Programming Interfaces) que nos permiten acceder e consumir os conxuntos de datos publicados ou a correcta replicación e sincronización de conxuntos de datos cambiantes seguen sendo desafíos moi relevantes para estes actores.
Os Linked Data Event Streams (LDES) son un novo mecanismo de publicación de datos que poden axudar a liquidar estes retos.
Destilando os aspectos craves de LDES
Cando desde a Universidade de Gante comezouse a traballar nun novo mecanismo para a publicación de datos abertos, a pregunta á que pretendían dar resposta era: Cal é o mellor API posible que podemos deseñar para expor conxuntos de datos abertos?
Na actualidade, os organismos publicadores de datos recorren a múltiples mecanismos para publicar os seus diferentes conxuntos de datos. Por unha banda, é fácil atoparnos API s. Destacan as de tipo SPARQL, estándar para consulta de datos enlazados ( Link Data ), pero tamén de tipo REST ou de tipo WFS, para o acceso a conxuntos de datos con compoñente geoespacial. Doutra banda, é moi común que atopemos a posibilidade de acceder a envorcados de datos en diferentes formatos (i.e. CSV, JSON, XLS, etc.) que podamos descargar para a súa utilización.
No caso de os envorcados de datos, é moi fácil atoparnos con problemas de sincronización. Isto ocorre cando, tras un primeiro envorcado, prodúcese un cambio que require a modificación do conxunto de datos orixinal como, por exemplo, o cambio do nome dunha rúa nunha guía de rúas previamente descargada. Ante este cambio, se o terceiro opta por modificar o nome da rúa sobre o envorcado inicial en lugar de esperar a que o publicador actualice os seus datos no repositorio mestre para realizar un novo envorcado, os datos manexados polo terceiro quedarán desincronizados fronte aos manexados polo publicador. De igual forma, se é o publicador o que actualiza o seu repositorio mestre pero estes cambios non son descargados polo terceiro, ambos manexarán diferentes versións do conxunto de datos.
Por outra banda, se o publicador ofrece o acceso aos datos a través de APIs de consulta, en lugar de mediante envorcados dos datos aos terceiros, soluciónanse os problemas de sincronización, pero a construción e mantemento dun alto e variado volume das mesmas supón un elevado esforzo aos publicadores de datos.
LDES busca liquidar estas diferentes problemáticas aplicando o concepto de Linked Data a un event stream ou fluxo de datos. Segundo a definición que aparece na súa propia especificación , un Linked Data Event Stream (LDES) é unha colección de obxectos inmutables onde cada obxecto está descrito en ternas RDF.
En primeiro lugar, o feito de que os LDES aposten por Linked Data achega principios de deseño que permiten combinar datos diversos e/ou pertencentes a diferentes fontes, así como a súa consulta a través de mecanismos semánticos que permiten lexibilidade tanto por humanos como por máquinas. En resumo, achega interoperabilidade e consistencia entre conxuntos de datos, e facilita por tanto a súa procura e descubrimento.
Doutra banda, os event streams ou fluxos de datos, permiten aos consumidores replicar a historia dos conxuntos de datos, así como sincronizar os cambios recentes. Calquera novo rexistro engadido a un conxunto de datos ou calquera modificación dos rexistros existentes (en definitiva, calquera cambio), rexístrase como un novo evento incremental no LDES que non alterará os eventos anteriores. Por tanto, poden publicarse e consumirse datos como unha secuencia de eventos, o cal é útil para datos que cambian con frecuencia, como información en tempo real ou información que sofre actualizacións constantes, xa que permite a sincronización das últimas actualizacións sen necesidade de facer unha nova descarga completa de todo o repositorio mestre tras cada modificación.
Nun modelo deste tipo, o editor só necesitará desenvolver e manter un API, o LDES, en lugar de múltiples APIs como WFS, REST ou SPARQL. Os diferentes terceiros que desexen utilizar os datos publicados conectaranse (cada terceiro implementará o seu cliente LDES) e recibirán os eventos dos streams aos que se subscribiron. Cada terceiro creará a partir da información solicitada as APIs específicas que considere oportunas en base ao tipo de aplicacións que queiran desenvolver ou fomentar. En definitiva, o publicador non terá que resolver todas as potenciais necesidades que teña cada terceiro na publicación de datos, senón que dando unha interface LDES (API basee mínima) cada terceiro centrarase na súa problemática.
Ademais, para facilitar o acceso en grandes volumes de datos ou a datos que poden estar distribuídos en diferentes fontes, como un inventario de puntos de recarga eléctrica en Europa, LDES achega a capacidade de fragmentación dos conxuntos de datos. A través da especificación TREE (en inglés, árbore), LDES permite establecer diferentes tipos de relacións entre fragmentos de datos. Esta especificación permite publicar coleccións de entidades, chamados membros, e ofrece a capacidade de xerar unha ou máis representacións destas coleccións. Estas representacións organízanse como vistas, distribuíndo os membros a través de páxinas ou nodos interconectados mediante relacións. Así, se desexamos que os datos se poidan consultar a través de índices temporais, poderase establecer unha fragmentación temporal e acceder só ás páxinas dun intervalo temporal. De igual forma, poderanse expor índices alfabéticos ou geoespaciales e así un consumidor poderá acceder só a aqueles datos necesarios sen a necesidade de realizar o “envorcado” do conxunto de datos completo.
Que conclusións podemos extraer de LDES?
Neste post observamos o potencial de LDES como mecanismo para a publicación de datos. Algúns das aprendizaxes máis relevantes son:
- LDES persegue facilitar a publicación de datos a través de APIs base mínimas que sirvan como punto de conexión para calquera terceiro que desexe consultar ou construír aplicacións e servizos sobre conxuntos de datos.
- A construción dun servidor LDES, no entanto, ten certo nivel de complexidade técnica á hora de establecer a arquitectura necesaria para o manexo dos fluxos de datos publicados e a súa adecuada consulta por parte de consumidores de datos.
- O deseño de LDES permite a xestión tanto de datos cunha elevada taxa de cambios (i.e. datos provenientes de sensores), como datos cunha baixa taxa de cambios (i.e. datos provenientes dunha guía de rúas). Ambos os escenarios poden manexar calquera modificación do conxunto de datos como un fluxo de datos.
- LDES soluciona de forma eficiente a xestión de rexistros históricos, versións e fragmentos de conxuntos de datos. Para iso apóiase na especificación TREE podendo establecer diferentes tipos de fragmentación sobre o mesmo conxunto de datos.