Acerca de
¿Qué son los dados abiertos?
El Open Data Institute define los datos abiertos de la siguiente manera:
Los datos abiertos son datos a los que cualquier persona puede acceder, usar y compartir. Los gobiernos, las empresas y los particulares pueden usar datos abiertos para obtener beneficions sociales, económicos o medioambientales.
Para que los datos abiertos sean útiles se han de poner a disposición del público en un formato no restringido y compatible para su computación, y esto es lo que pretende este Portal.
¿Cómo se estructura el Portal de Datos Abiertos del Ayuntamiento de Valls?
Los datos se presentan en recursos: tablas, ficheros o mapas en formatos estructurados y abiertos, como CSV
o JSON
, por ejemplo. Estos recursos se agrupan en conjuntos de datos según su naturaleza. A su vez, los conjuntos de datos se clasifican en categorías, según el ámbito, o ámbitos, de los que provienen o a que hacen referencia. Un recurso sólo puede pertenecer a un conjunto de datos, pero un conjunto de datos puede pertenecer a más de una categoría.
Así, por ejemplo, el conjunto de datos Población contiene distintos recursos con datos demográficos de la ciudad, y pertenece a la categoría (o grupo) Demografía, mientras que el conjunto de datos Presupuestos pertenece a las categorías Economía y Sector Público y continene recursos con datos relativos a los presupuestos del Ayuntamiento.
Implementación
Para la implementación del Portal de Datos Abiertos hemos utilizado herramientas de código abierto instaladas en contenedores, dockerizadas, para facilitar su instalación y posibles posteriores traslados y escalados.
Se ha montado una infraestructura de contenedores interconectados que permite la ingestión y transformación automáticas de los datos, así como su inserción en el Portal de manera totalmente desatendida y según una planificación establecida.
Finalmente, se ha creado la aplicación OpenDChain, desarrollada en el Ayuntamiento, que replica los datos del Portal a la red de ficheros distribuidos IPFS, para garantizar su disponibilidad, y guarda el hash en una blockchain, para asegurar su trazabilidad.
El Portal
El motor del Portal es la herramienta de código abierto CKAN, instalada en un contenedor docker y a la que se han añadido algunos plugins de visualización de datos geográficos.
La herramienta dispone de una interfaz API que nos permite subir y modificar los datos, y sus metadatos, de manera desatendida y remota.
Cómo se alimenta?
Los datos a publicar se extraen de las bases de datos internas del Ayuntamiento, y de web externas, como el Portal de Transparència de la AOC o el servicio de meteorología.
La herramienta escogida es el logstash, también de código abierto. Esta herramienta permite configurar un circuito de procesado ETL (pipeline) con plugins especializados para cada una de las tres fases: input, filter y output.
Los plugins de ingestión (input) recogen los datos a intervalos establecidos des de las distintas fuentes. En este proyecto, hemos utilizado plugins para fuentes SQL y http.
Los distintos plugins de filtrado (filter) adaptan los datos, si es necesario, a las necesidades del CKAN. Aquí se transforman, por ejemplo, los datos de fecha y hora al formato adecuado, se añaden campos, o se substituyen comas por puntos, según se necesite en cada caso.
Finalmente, los plugins de salida (output) suben los datos al CKAN a través de su API, generan un .CSV
i llaman a la API de OpenDChain indicándole que hay nuevos datos.
Permanéncia de los datos
La aplicación OpenDChain, al recibir la llamada desde el logstash, replica el .CSV
a la red de ficheros distribuidos IPFS.
Trazabilidad de los datos
Una vez guardado el .CSV
, la aplicación OpenDChain recupera el hash del fichero, y lo guarda en una transacción en la blockchain ropsten, que es una de las redes de test del proyecto Ethereum.
Posteriormente, utilizando la API del CKAN, modifica los metadatos del dataset con el enlace al fichero en el IPFS y el de la transacción en la "blockchain, de manera que esta información es accesible directamente des del Portal de Datos Abiertos.