Departamento de Gobernanza Pública y Autogobierno

Open Data

Detalles

[OpenData euskadi] se enmarca dentro de la estrategia de [Transparencia], [Colaboración] y [Participación] del Gobierno Vasco que tiene como ejes principales:

  • Crear espacios de contacto directo en la red con la ciudadanía, así como espacios para el debate y el trabajo común.
  • Ser transparentes en la acción de Gobierno ofreciendo los datos de primera mano sin transformar ni interpretar para que sea la sociedad la que saque sus propias conclusiones.
  • La coproducción de valor social y económico, mediante la colaboración de sectores de nuestra sociedad en la propia prestación de servicios valiosos.  

Los tres pilares básicos: Participación, Colaboración y Transparencia se sustentan en:

Participación y Escucha

IREKIA es un espacio de Participación y Escucha, donde la ciudadanía puede opinar libremente, ampliar explicaciones e informaciones, debatir y contrastar ideas.

Desde IREKIA también se ejerce una escucha activa de las inquietudes ciudadanas en lo que a la acción de Gobierno se refiere, tanto en la propia IREKIA como en la Red.

Colaboración:La coproducción de valor

IREKIA proporciona canales para:

  1. Trabajar colaborativamente para influir en las políticas, planes y actuaciones desarrolladas por el Gobierno.
  2. Recoger ideas o propuestas directamente del ciudadano

[OpenData euskadi] pone a disposición de la comunidad reutilizadora información en crudo para que esta cree productos derivados y nuevos servicios

Transparencia

A través de [OpenData euskadi], cualquier ciudadano o ciudadana puede tener acceso a datos en formatos reutilizables, bajo licencias abiertas. Con esta medida se pretende:

  1. Fomentar la creación de valor económico y social mediante la reutilización de datos en la creación de nuevos servicios.
  2. Alcanzar formas más personalizadas y satisfactorias de prestar los servicios públicos, mediante explotaciones a la carta de la información pública.

Por otro lado el portal de [Transparencia de la Administración]: [Gardena] aglutina toda la información sobre la acción de gobierno

[OpenData euskadi] se sitúa en un punto intermedio entre la [Colaboración] y la [Transparencia]

 

[OpenData euskadi] se basa en un modelo con cinco ejes directores:

1 La publicación de datos abiertos es una derivada de la publicación web

El objetivo principal es publicar información en euskadi.eus para la ciudadanía en general (publicación web tradicional)

Sin embargo, en el mismo proceso, se publica la misma información en formatos reutilizables intentado que:

  • La fuente de datos sea la misma para la web y OpenData.
  • El proceso de publicación sea el mismo de forma que cuando se publican datos para la web, también se publiquen los mismos datos en formato reutilizable.
  • La publicación de datos reutilizables NO ha de tener ningún coste para el/la responsable de los datos (ha de ser lo más transparente posible)
2 Prioridad a la cantidad Priorizar los datos sobre la sofisticación tecnológica

Durante estos primeros años de vida de [OpenData euskadi], puesto que se partía de cero, la prioridad ha sido publicar cuantos datos en formato abierto sea posible dejando o relegando a un segundo plano otros aspectos como publicar APIs que faciliten la reutilización de ciertos datos o crear interfaces semánticos.

No obstante de lo anterior, se están dando pasos en dirección a incorporar tecnologías semánticas en la publicación de los datos con el objetivo de ir acercando [OpenData euskadi] a estándares abiertos.

En cualquier caso, los datos siempre se ponen a disposición de los infomediarios en formatos abiertos no propietarios: si algún conjunto de datos se publica en un formato propietario debe publicarse también en un formato abierto equivalente.

3 Sostenibilidad económica del proyecto

La organización tanto funcional como técnica que sustenta [OpenData euskadi] es bastante reducida puesto que se ha hecho un gran esfuerzo en automatizar al máximo la apertura de datos:

  • La infraestructura de publicación en la web se reutiliza para publicar datos en OpenData con los evidentes ahorros económicos y sinergias funcionales que se obtienen.
  • NO hay una organización dedicada en exclusiva a alimentar el portal OpenData, todo lo contrario: el trabajo de cerca de 400 personas de la Organización que publican diariamente en la web, de forma transparente para ellos/ellas “carga” de información [OpenData euskadi]
4 Alianza con la comunidad reutilizadora

Desde el nacimiento de [OpenData euskadi], se ha trabajado con reutilizadores, periodistas, redes sociales, etc con el objetivo de fomentar una comunidad en torno a [OpenData euskadi] y para ello:

  • Se dinamiza un blog y las redes sociales
  • Se han patrocinado concursos de ideas y productos
  • Se ha participado en sesiones de divulgación y formación
5 NO cobrar tasas ni establecer obstáculos Licencias CC-by

A pesar de que la apertura de cualquier data set conlleva unos costes a la Administración puesto que hay que ejecutar un proyecto para “sacar” los datos de allí donde estén almacenados y publicarlos en la web / OpenData euskadi, estos costes NO se repercuten al sector infomediario reutilizador

La licencia es CC-by siempre que sea posible lo que permite copiar, redistribuir, mezclar o transformar el dato publicado siempre que se indique el origen del mismo (OpenData euskadi)

Componentes para extraer la información de su origen y publicarla en opendata.euskadi.eus

La información que se publica en opendata.euskadi.eus tiene fundamentalmente dos orígenes:

1 Sistemas departamentales (ej: bases de datos, ficheros, sistemas gis, etc)
2 Contenidos web publicados en euskadi.eus utilizando el [Gestor de Contenidos PLATEA-Internet]

A continuación se detalla cómo se publica información reutilizable en opendata.euskadi.eus de cada uno de estos orígenes:

[DataSets] cuyo origen son sistemas departamentales

La pieza más importante del sistema de publicación de datos en [OpenData euskadi] es el [Sistema de Sindicación de PLATEA-Web] que a muy alto nivel es un mecanismo que facilita la importación en el [Gestor de Contenidos] como contenidos web / OpenData de datos residentes en otros sistemas corporativos.

Para entender la necesidad de este [Sistema de Sindicación Datos], hay que partir de la premisa de que en euskadi.eus como norma general se intenta evitar que se construyan aplicaciones que acceden directamente a los datos en bases de datos corporativas ya que esta estrategia de publicación de información en la web tiene muchos inconvenientes:

  • Fomenta la creación de «silos» de información ocultos en una «esquina» de la red de portales euskadi.eus: los contenidos de estos «silos» son difícilmente reutilizables
  • Es muy complicado mantener la imagen corporativa especialmente cuando esta cambia (ej: cambios de legislatura)
  • Es complicado tener un buscador corporativo que sea capaz de buscar en todos los «silos» de información
  • Complica la infraestructura web de euskadi.eus (muchas aplicaciones ad-hoc)
  • Complica la gestión de la web y su organización

Para evitar estos inconvenientes, en lugar de crear N (multiples) aplicaciones que acceden directamente a las bases de datos corporativas, los datos de estos orígenes se exportan como contenidos web cuyo ciclo de vida se gestiona en el [Gestor de Contenidos PLATEA-Web]

Aproximación tradicional para publicar información departamental como contenido web Aproximación [PLATEA-Internet] para publicar información departamental como contenido web

Esta aproximación tiene muchas ventajas:

  • Los contenidos son reutilizables en cualquier portal (iniciativa) de la red euskadi.eus: los contenidos no están vinculados a un portal en concreto sino que se pueden «pintar» en cualquier portal
  • Los contenidos son fácilmente buscables por un buscador corporativo ya que residen en el mismo repositorio (y no en N bases de datos departamentales)
  • Es sencillo cambiar la organización de la red euskadi.eus o la imagen corporativa (ej: cambios de legislatura)
  • Pueden crearse estructuras comunes (horizontales) de gestión de la web ([Servicio Web del Gobierno Vasco])
  • Los contenidos web se generan como ficheros HTML / XML / CSS, JS, etc estáticos que se publican en un servidor web con lo que NO es necesario un servidor de aplicaciones / base de datos, etc para «pintar» el portal simplificándose enormemente la infraestructura de euskadi.eus
  • El dato origen NO es accesible directamente desde Internet lo que abunda en una mayor seguridad

… pero también tiene inconvenientes:

  • Aunque la infraestructura para «servir» el contenido web en euskadi.eus se simplifica al máximo, en contrapartida, hay que llevar al momento de generación del contenido web toda la lógica de extracción de los datos desde su origen (bbdd departamental, fichero de intercambio o lo que sea).y su conversión en contenidos web

En definitiva: la infraestructura pública se simplifica a consta de trasladar la complejidad a los sistemas internos.

Para facilitar la publicación de información de sistemas corporativos internos como contenidos web se construyó el [Sistema de Sindicación de PLATEA-Web] que es un sistema responsable de:

1 Extraer información del sistema corporativo interno El caso más habitual es que la información esté en Bases de Datos relacionales, aunque en otros casos, la información origen está en ficheros Excel, Zip, etc que se dejan manual o automáticamente en zonas de intercambio de ficheros o en URLs accesibles
2 Transformar y enriquecer la información

En ocasiones, la información origen se enriquece con datos de otros sistemas, por ejemplo:

  • Se geo-cataloga la información obtieniendo datos de geo-posicionamiento a partir de direcciones en texto
  • Se cataloga la información en las taxonomías normalizadas del Gobierno Vasco
3 Crear el contenido web y los datos reutilizables

Una vez se han recuperado y enriquecido los datos, se crean contenidos en el [Gestor de Contenidos] y en estos contenidos se suben:

  • La(s) ficha(s) en formato HTML para ser utilizada en iniciativas web
  • Ficheros adjuntos con datos reutilizables
4 Publicar el contenido El contenido web se publica

Dado que la información es dinámica (cambia en el origen), el [Sistema de Sindicación de PLATEA-Web] es capaz de periódicamente repetir el proceso anterior en función del ratio de cambio de los datos de origen: si los datos de origen cambian cada 5 min el proceso se repite cada 5 min mientras que si lo hace cada 6 meses se repite solo dos veces al año.

El [Sistema de Sindicación de PLATEA-Web] es modular de forma que en torno a un núcleo común que contiene las operaciones comunes se instalan módulos conectores con cada origen de datos

A un nivel de abstracción alto, el [Sistema de Sindicación de PLATEA-Web] es fundamentalmente un sistema ETL (Extraction / Transformation / Load) muy adaptado a las necesidades de publicación de información utilizando [PLATEA-Web]

El caso de uso más habitual es:

  • El [Dpto X] mantiene un registro respaldado por una base de datos / fichero Excel / etc que quiere publicar en la web para su consulta pública y aprovechando el esfuerzo, también como datos abiertos en opendata.euskadi.eus
  • En el [Sistema de Sindicación de PLATEA-Internet] se desarrolla un módulo ad-hoc para este origen departamental que:
    • Para cada «fila» de la BBDD se crea un contenido web con una ficha que contiene los datos de la entrada

Estos contenidos web habitualmente se muestran en la web del Departamento concreto o en cualquier otra web de euskadi.eus

    • Para publicar todos los datos del registro en formato reutilizable, se crea un contenido tipo [DataSet] que tiene como adjunto una exportación en formato Excel / CSV de los datos origen

Estos datos se muestran habitualmente en opendata.euskadi.eus (aunque también pueden ser mostrados en cualquier otro portal)

  • El proceso anterior se planifica para su ejecución periódica en función del grado de cambio en los datos de forma que la información en opendata.euskadi.eus esté lo más actualizada posible

[DataSets] cuyo origen son contenidos web publicados en euskadi.eus utilizando el [Gestor de Contenidos PLATEA-Web]

Además de los datos que proceden de orígenes departamentales descritos en el punto anterior, los contenidos publicados en euskadi.eus utilizando el [Gestor de Contenidos PLATEA-Web] son en sí mismo un origen de información puesto que hay datos que solo (o de forma más completa) están en el [Gestor de Contenidos]; ejemplos de estos son:

  • Noticias
  • Eventos
  • Servicios de la administración (convocatorias de ayudas, becas, etc)
  • Información pública
  • Recursos turísticos
  • Contrataciones
  • etc

Para hacer que esta información sea reutilizable (ej: obtener un listado con todos los eventos del Gobierno Vasco) [PLATEA-Web] dispone de un mecanismo de automatización de la generación de [DataSets] a partir de contenidos web que funciona de la siguiente forma:

  • Un responsable de [OpenData euskadi] crea un [DataSet] automatizado haciendo básicamente lo mismo que hace cuando crea manualmente una ficha de un [DataSet]:
    • Utilizando utiliza una plantilla de carga de información (un formulario) del [Gestor de Contenidos PLATEA-Web] carga los meta-datos que describen el [DataSet] (titulo, descripción, licencia, etc)
    • … pero en lugar de (o además de) adjuntar los ficheros con los datos reutilizables configura una búsqueda entre los contenidos de euskadi.eus (ej: eventos del dpto. x)
  • El sistema periódicamente ejecutará la búsqueda y con los resultados de la misma generará un fichero en diversos formatos reutilizables (Excel, csv, json, xml) que se publicará como adjunto del contenido [DataSet] que está creando

Algunos ejemplos de [DataSets] de opendata.euskadi.eus que se crean utilizando este mecanismo de generación son:

  • Ayudas del Gobierno Vasco
  • Eventos de Culturales
  • Asociaciones o Fundaciones
  • Recursos turísticos

Componentes que facilitan la reutilización / consumo de los datos

A continuación se describen someramente los mecanismos que en la actualidad están disponibles para consumir los datos de euskadi.eus

Consumo / reutilización de datos adjuntos en [DataSets]

Este es el mecanismo más sencillo / obvio de consumo de los datos en aquellos [DataSets] en los que los datos reutilizables son adjuntos en el propio contenido web del [DataSet]

Algunos ejemplos de este tipo de reutilización:

Datos meteorológicos La previsión del tiempo se importa periódicamente (varias veces al día) desde sistemas de [EuskalMet] y se publican como ficheros XML adjuntos en un contenido web tipo [DataSet]
Datos de calidad de las aguas de consumo, calidad del aire, nivel de polen, estado de playas, etc Los datos se importan periódicamente desde sistemas del Dpto de Salud y se publican como ficheros Excel adjuntos en un contenido web tipo [DataSet]

Para utilizar estos datos, el reutilizador debe conocer la url en la que se publican estos ficheros y descargárselos antes de hacer uso de los mismos.

Por ejemplo, para reutilizar datos meteorológicos con el objetivo de construir un widget para móvil/web, los pasos que un reutilizador daría son:

1 Documentarse En la ficha que describe el [DataSet] se puede encontrar información sobre los datos y su formato
2 Analizar el fichero que contiene los datos El fichero de interés para la [Predicción del tiempo por ciudades] contiene un XML con la información en un formato propietario (no estándar) que hay que analizar para localizar la información que se quiere presentar
3 Construir el agente que consume los datos

Utilizando el lenguaje de programación favorito del reutilizador, construir un programa que:

  1. Se descargue el fichero XML con los datos de la url de opendata euskadi
  2. Parsee el contenido para extraer la información necesaria
4 Crear un producto derivado con los datos Una vez se han extraído los datos, ya se puede crear un producto derivado que haga uso de los mismos.

Esta sistemática de reutilización NO es mala sin embargo es mejorable ya que:

  • Se utilizan esquemas de datos propietarios y un pequeño cambio en el mismo puede hacer que los desarrollos de los reutilizadores dejen de funcionar
  • Requiere de un concienzudo estudio de la documentación (que muchas veces es escasa y/o obsoleta) y el formato de los datos

Consumo / reutilización de cualquier contenido de euskadi.eus

Cualquier contenido de euskadi.eus (noticia, evento, servicio, contratación, etc) es susceptible de ser reutilizado para lo cual se ofrece:

  • La información (meta-datos) del contenido en formato reutilizable (XML)
  • Todo el contenido (html, css, imágenes, adjuntos, etc) en formato ZIP descargable

Tal y como se ha detallado anteriormente, la mayor parte de los contenidos publicados en euskadi.eus son cargados manualmente en el [Gestor de Contenidos PLATEA-Web] o extraídos de sus orígenes (BBDD) departamentales e importados automáticamente en el [Gestor de Contenidos PLATEA-Web]

Los contenidos en [PLATEA-Web] son ficheros estáticos, así que cualquier contenido de euskadi.eus físicamente es una carpeta que contiene:

  • Documentos HTML destinados a que personas puedan ver la información
  • Recursos técnicos utilizados para visualizar y dar estilo al documento HTML: imágenes, hojas de estilo, scripts
  • Adjuntos (ej documentos PDF, ofimáticos, etc)
  • Ficheros XML que contienen toda la información (meta-datos)
    • Meta-Datos comunes a todo euskadi.eus (cualquier contenido de euskadi.eus tiene estos meta—datos) como el nombre, autor, catalogación, geo-referenciación, etc
    • Meta-Datos particulares que dependen de [familia] o [tipo de contenido] Ej: si se trata de una beca, algunos meta-datos particulares son los destinatarios, plazos de entrega de solicitud, etc  

Todos estos ficheros se publican en euskadi.eus (y obviamente en opendata.euskadi.eus) de forma que cualquier reutilizador puede:

  • Descargarse cualquier recurso (documento html, ofimático, etc)
  • Acceder a los XMLs que contienen los meta-datos (y a partir de los cuales se ha generado el documento web para las personas) y reutilizar estos datos para cualquier fin

Todos estos XMLs de datos pueden verse fácilmente cuando se accede a datos procedentes del [Gestor de Contenidos]: Ej:  Ayudas, Becas y Subvenciones de 2016

La ficha del [DataSet] proporciona varias posibilidades de reutilización:

Datos en formato XLS (Excel) / CSV / JSon / XML que son generados mediante un automatismo (ver antes en el documento):

Periódicamente el sistema hace una búsqueda de todos los contenidos de tipo [Ayuda] del año 2016 y crea un fichero XLS, CSV, XML y JSon con los datos

API:  ejecuta la búsqueda «contenidos de tipo [Ayuda] del año 2016» y presenta los resultados con alguna (no toda) la información «consumible» de cada contenido.

Para cada contenido resultado de la búsqueda se presenta:

  • Un XML con los meta-datos generales
  • Un XML con los meta-datos particulares (en función del [tipo de contenido])
  • Un ZIP que contiene toda la información publicada tal cual está en el [Gestor de Contenidos]NOTA:  Cualquier recurso del ZIP también está disponible en la web; la url es obvia:

Si el ZIP del contenido contiene un fichero /myFolder/myFile.txt, la url de este fichero será:

http://opendata.euskadi.eus/cont/myFolder/myFile.txt   

Al igual que el caso anterior –ya que la técnica de reutilización es muy similar-, la sistemática de reutilización NO es mala sin embargo es muy mejorable ya que:

  • Se utilizan esquemas de datos propietarios y un pequeño cambio en el mismo puede hacer que los desarrollos de los reutilizadores dejen de funcionar
  • Requiere de un concienzudo estudio de la documentación y el formato de los datos

Consumo / reutilización de contenidos de euskadi.eus utilizando el API del buscador

En el punto anterior se ha descrito el consumo de datos de contenidos de euskadi.eus directamente, es decir:

  1. El/la reutilizador localiza el contenido que quiere consumir accediendo a la ficha del [DataSet] (ej: Ayudas del 2016) y buscando entre los contenidos (opción API)
  2. Analiza los datos que contiene (por ejemplo descargándose el ZIP e inspeccionando su contenido o bien analizando el contenido de los XML de meta-datos)
  3. Desarrolla una aplicación que hace uso de los datos

Sin embargo, si el/la reutilizador quiere consumir todos los contenidos que cumplen un determinado criterio de búsqueda (ej: todos los contenidos tipo [Ayuda] del 2016) y quiere que su aplicación auto-descubra cuáles son estos contenidos, para reutilizarlos acto seguido uno a uno, la sistemática es:

  • El/la reutilizador establece un criterio de búsqueda que da como resultado el conjunto de contenidos que quiere reutilizar
  • Desarrolla una pequeña aplicación que lanza la búsqueda contra el buscador de euskadi.eus que devuelve el resultado en formato XML. Para hacer esta búsqueda hay dos opciones:
    • Utilizar un API pseudo-rest en el que la query se codifica en la URL que se lanza contra el buscador y se parsea el XML devuelto.

Ej: http://opendata.euskadi.eus/r01htSearchResultWAR/r01hPresentationXML.jsp?r01kQry=

tC:euskadi;tF:procedimientos_administrativos;tT:ayuda_subvencion;

m:documentLanguage.EQ.es,procedureStartDate.BETWEEN.01/01/2016,31/12/2016;

http://opendata.euskadi.eus/r01htSearchResultWAR/r01hPresentationXML.jsp?r01kQry=

tC:euskadi;tF:procedimientos_administrativos;tT:ayuda_subvencion

Contenidos de euskadi de la familia [procedimientos_administrativos] y el tipo [ayuda]

m:documentLanguage.EQ.es,procedureStartDate.BETWEEN.01/01/2016,31/12/2016

Que estén en castellano y cuya fecha de aperture de plazo esté entre el 1 de enero y 31 de diciembre de 2016  

    • Utilizar un API java en el que la query se codifica en Java y que abstrae al desarrollador de interactuar con el buscador

// [1] Build the query

R01MSearchFilterForContent qry =

  R01MSearchFilterForContent.createFor(R01MContent.class)

       .typedInAnyOfTheseClusters(R01MTypoClusterID.forId(«euskadi»))

       .typedInAnyOfTheseFamilies(R01MTypoFamilyID.forId(«procedimientos_administrativos»))

       .typedInAnyOfTheseTypes(R01MTypoTypeID.forId(«ayuda_subvencion»))

       .mustMeetThisMetaDataCondition(EqualsQueryClause.forField

       (IndexableFieldID.forId(«procedureStatus»)).of(16))

       .mustHaveStructureLabels(R01MStructureLabelOID.forIds(«r01e00000ff26d46212a470b818464daec45c59fa»,

       «default»)).orderedBy(R01MSearchQueryOrderByMetaData.forMetaData(«createDate»)

       .ordered(R01MSearchQueryOrderBy.ASCENDING));   

// [2] Inicializar la sesión de búsqueda

R01MSearchSession srchSession = R01MSearchSession.forQuery(qry);

R01MSearchResultItem[] items = srchSession.getCurrentPageSearchResults();  

  • Una vez obtiene los resultados de la búsqueda, recorre cada uno de los resultados y hace uso de los datos expuestos para cada contenido tal y como se describía anteriormente (usando el ZIP o cualquiera de los XMLs de meta-datos publicados).  

Esta sistemática de reutilización tampoco está mal ya que permite el auto-descubrimiento de los contenidos,  sin embargo también es mejorable ya que:

  • Una vez más, se utilizan esquemas de datos propietarios y un pequeño cambio en el mismo puede hacer que los desarrolos de los reutilizadores dejen de funcionar
  • Requiere de un concienzudo estudio de la documentación y el formato de los datos
  • NO todos los contenidos reutilizables de [OpenData euskadi] están disponibles con el API: solo se puede «descubir» los contenidos gestionados en PLATEA-Web.
  • El API es específico del buscador de euskadi.eus (lo cual tampoco es intrínsecamente malo)

Consumo / reutilización del catálogo de [DataSets] utilizando estándares semánticos: RDF

Los componentes / interfaces para facilitar a infomediarios / colectivos reutilizadores el consumo de los datos descritos anteriormente no son del todo óptimos puesto que:

  • Los mecanismos de reutilización / consumo de los datos son muy simples (primarios): fundamentalmente el consumo de ficheros en diferentes formatos (XML, Excel, CSV, JSon)
  • Haciendo un paralelismo con la web, la accesibilidad de los datos es muy mejorable: se publican numerosos ficheros de datos y diferentes XMLs, JSon, etc basados en esquemas no estándar
  • NO hay APIs que faciliten el acceso a los datos salvo el API del buscador de euskadi.eus (que es muy antiguo –de cuando el Json no era mainstream-)
  • En general NO es posible cruzar o enlazar datos con otras fuentes 
  • Versión 1: 03-07-2017 (última versión)