Archivo por Autor

Real-time Open Data con iCMS. Integración con Virtuoso

11 abr 2012

Con el objetivo de habilitar diversos mecanismos de acceso a la información publicada a través de la Interfaz de Interoperabilidad de Contenidos Web (iCMS), además del end-point opensearch que conforma la propia interfaz de iCMS, se han implementado mecanismos de integración con servidores semánticos (en este post nos centraremos en Virtuoso) . Entre otras características, estos sistemas permiten la utilización del lenguaje estándar SPARQL para la consulta de los datos almacenados.

Entre las funcionalidades de iCMS encontramos la gestión de eventos asociados a las colecciones de datos (al iniciar y al modificar las colecciones), permitiendo vincular scripts (en la versión actual de iCMS se da soporte a la inyección de scripts Groovy, aunque en el Roadmap de la solución se encuentra el soporte para otras tecnologías, como pueden ser Python o Ruby) a dichos eventos.

El mecanismo de integración entre iCMS y Virtuoso se apoya en esta funcionalidad, es decir, se trata de un script Groovy que incluye toda la lógica necesaria para conectar con virtuoso, crear los grafos, obtener los recursos/datos (desde los back-ends a través de los drivers iCMS) cuya modificación ha lanzado el evento y finalmente actualizar la información en Virtuoso.

La actualización de los datos en Virtuoso se realiza mediante la ejecución de sentencias INSERT/DELETE de SPARQL a través de los servicios desplegados por Virtuoso.

En la parametrización de las colecciones de datos, cuyo contenido va a ser volcado en Virtuoso, es preciso establecer la configuración del evento que dispara el script Groovy que incluye la lógica de integración con el servidor semántico. Esta configuración sigue el siguiente modelo:

    event {
       my_event_script {
           path = "/opt/icms/data/scripts/groovy_virtuoso.groovy"
           urlSubscription = "http://localhost:8080/icms"
           collections = "<nombre_coleccion>"
           parameters {
              virtuoso_url = "jdbc:virtuoso://localhost:1111"
              virtuoso_usr = "icms_virt"
              virtuoso_psw = "icms_virt"
              virtuoso_graph = "<http://nombre_grafo>"
           }
      }
    }

La configuración anterior le indica a iCMS que cuando haya algún cambio en los recursos de la colección definida (“nombre_colección” en el ejemplo) se ejecute el script groovy_virtuoso.groovy con los parámetros dados. Dicho script contiene toda la lógica necesaria para rellenar Virtuoso con los nuevos cambios.

En el siguiente gráfico se muestra a alto el proceso de integración entre iCMS y el servidor semántico Virtuoso:

Proceso de integración entre iCMS y Virtuoso

Real-time Open Data con iCMS

29 mar 2012

En  octubre de 2007, en una de las conferencias de la SunLight Foundation se discutía sobre el modelo a seguir por los Organismos Públicos para realizar la apertura de datos almacenados electrónicamente. En este evento tienen su origen un conjunto de principios básicos a tener en cuenta en diseño de cualquier iniciativa de apertura de datos (que hoy día son incluidos en la Ley de Transparencia de diversos Organismos Públicos):

  • Completeness. Los Datos deben ser lo más completos que sea posible.
  • Primacy. Deben ser obtenidos en su origen, evitando la transformaciones intermedias.
  • Timeliness. Publicados en tiempo real, o actualizados siempre sea posible.
  • Ease of Physical and Electronic Access. Fácilmente accessibles.
  • Machine readability. Procesables electrónicamente.
  • Non-discrimination. Accesibles sin discriminación (disponibles para todos).
  • Use of Commonly Owned Standards. Publicados en formatos no proprietarios.
  • Licensing. Datos libres (el licenciamiento utilizado debe facilitar el acceso libre a los mismos).
  • Permanence. Se debe garantizar la permanencia en el tiempo de los conjuntos de datos publicados.
  • Usage Costs. Sin coste.

Es esta ocasión nos centraremos en los tres primeros enunciados (datos completos, obtenidos directamente desde la fuente y actualizados), pues representan (al menos, desde mi punto de vista) algunos de los aspectos más destacables de la Interfaz de Interoperabilidad de Contenidos Web (iCMS), esto es, la posibilidad de publicar conjuntos de datos obteniéndolos directamente desde su fuente, sin necesidad de recurrir a procesos de consolidación de los datos en repositorios centralizados (por ejemplo, mediante ETLs). De esta forma, siempre que se cumplan determinadas condiciones (que son establecidas en el proceso de configuración del conjunto de datos), los datos son ofrecidos completamente actualizados. Obviamente, para ofrecer esta posibilidad, ha sido necesario recurrir a mecanismos de caché e indexación con el objetivo de que el acceso a los datos no penalice el rendimiento de los back-ends (sistemas donde son generados/almacenados los datos).

Hace unas semanas, tuve la suerte de asistir como oyente al evento Gobierno Abierto: “Reto y Oportunidad” , donde en una de las mesas redondas uno de los ponentes presentaba un concepto que enmarca claramente las características descritas anteriormente: Real-Time Open Data.

Todo esto es posible gracias al sistema de notificaciones implementado en iCMS. En primer lugar, los back-ends notifican al servidor iCMS (a través de los drivers iCMS) los cambios que se producen en los datos,  con el objetivo de las actualizaciones sean indexadas. Por otro lado,  una vez indexados los cambios, el servidor iCMS procede a notificar dicho cambio a todos los sistemas suscritos al conjunto de datos en el que se ha producido el evento. Este proceso es descrito en el siguiente diagrama:

notificaciones icms

En el siguiente gráfico se presenta a muy alto nivel el rol que desempeña iCMS dentro de una iniciativa de apertura de datos:

Arquitectura Open Data basada en iCMS

En futuras entradas, se detallará el resto de capacidades/funcionalidades de iCMS, así como los procesos de integración con CKAN y Virtuoso.

Portal de Datos Abiertos de la Junta de Andalucía

03 ene 2012

Hace pocos días salía a producción la primera fase del Portal de Datos Abiertos de la junta de Andalucía. Esta primera fase del proyecto tiene como objetivo ofrecer una aproximación a los datos disponibles en la Junta de Andalucía, así como establecer un punto único de acceso a los mismos. Los servicios ofrecidos en esta etapa pueden catalogarse como 2 estrellas, según la clasificación del Open Linked Data propuesta por Tim Berners-Lee.

Para mediados de 2012 será publicada la versión final del Portal, en la que se habrán realizado las siguientes actuaciones:

  • Modelado semántico de los datos.
  • Ampliar el catálogo de datos disponible.
  • Dotar al Portal de la infraestructura necesaria para ofrecer conjuntos de datos de 4 y 5 estrellas. El Portal ofrecerá un SPARQL endpoint (implementado con Virtuoso), así como servicios de suscripción a los contenidos (para lo que se habilitará un servidor iCMS público).
  • Incorporar un conjunto de aplicaciones de ejemplo y documentación técnica destinada a desarrolladores, con el objetivo de facilitar la construcción de sistemas que reutilicen la información disponible.

En el siguiente diagrama se muestra la infraestructura tecnológica (presentada por la Junta de Andalucía en el evento Opendatasev  que tuvo lugar el pasado noviembre) que dará soporte a la iniciativa de apertura de datos en la Junta de Andalucía:

Arquitectura tecnológica Portal Datos Abiertos de la JA

Apertura de datos con iCMS

13 jul 2011

Open Data es una iniciativa que tiene como meta que ciertos contenidos estén disponibles para todo el mundo, sin limitaciones o restricciones de cualquier tipo (aunque como veremos más adelante existen licencias para regular el acceso y uso que se hace de la información).

En el caso concreto del Sector Público, las iniciativas de apertura de datos plantean una serie interrogantes: ¿qué información es reutilizable?, ¿en qué condiciones se puede ofrecer esta información?, ¿qué es posible hacer con la información publicada?. Para dar respuesta a esta estas cuestiones surge la Ley 37/2007 que regula la Reutilización de Información del Sector Público (RISP). Además, en este contexto nace el proyecto Aporta (www.aporta.es), que tiene la misión de establecer una cultura de reutilización en las AAPP (realizando actividades de divulgación, capacitación, realización de guías de reutilización, etc.).

La Ley 37/2007 tiene como objetivo definir las condiciones para la publicación de la información que esté en poder de las Administraciones Públicas, así como fomentar el desarrollo de iniciativas que persigan la reutilización de dicha información. Es importante destacar que la 37/2007 excluye de esta reutilización el intercambio de información entre AAPP (como queda reflejado en el Artículo 3. “Ámbito objetivo de aplicación”), para el que ya existe una normativa específica (por ejemplo, el Esquema Nacional de Interoperabilidad – ENI).

En 2008, la Junta de Andalucía inicia (en colaboración con Viavansi) el desarrollo de lo que podemos considerar los cimientos de su estrategia de apertura de datos, esto es, la Interfaz de Interoperabilidad de Contenidos Web (iCMS). Con este desarrollo se persigue el establecimiento (en base a estándares reconocidos) de protocolos, formatos y vocabularios que permitan el acceso a los contenidos susceptibles de ser publicados que se encuentran disponibles en la heterogeneidad de sistemas de la Junta de Andalucía.

Desde el punto de vista funcional podemos destacar las siguientes funcionalidades de iCMS:

  • La información reside los sistemas origen, por lo que no es necesario replicarla para su almacenamiento en un sistema centralizado.
  • Para permitir que los contenidos de un sistema sean accesibles por iCMS sólo es necesario contar con un “driver” o adaptador (aplican los formatos y vocabularios a la información). En la mayoría de los casos no es necesario realizar ningún tipo de modificación en dichos sistemas.
  • Los sistemas interesados (por ejemplo, reutilizadores de la información) en consumir cierta información pueden suscribirse a las colecciones pertinentes (datasets) y, cada vez que se producen cambios en las mismas, el servidor iCMS correspondiente realiza notificaciones dichos sistemas.

En próximos artículos, profundizaremos en el proceso de implantación de iCMS como solución de para la “recolección” de los contenidos susceptibles de ser publicados dentro de una inciativa de apertura de datos.