Datos abiertos con Drupal: DKAN 2
You can also read this post in english.
He presentado en conferencias antes, pero esta vez fue distinto. El pasado jueves 28 de mayo fue mi primera vez presentando en una Drupaleada. Desde hace algún tiempo tenía ganas de hacerlo pero no se me había presentado la oportunidad, hasta ahora finalmente lo logré, en un evento virtual. Quiero agradecer a todas las personas que han trabajado duro para mantener viva esta comunidad y por darnos a todos la oportunidad de seguir aprendiendo, incluso cuando estamos lejos.
En esta presentación hablé sobre datos abiertos en Drupal y cómo DKAN está ayudando a aumentar los esfuerzos en cuanto a datos abiertos en todo el mundo. Acá voy a presentar una pequeña versión escrita de mi charla, ¡empecemos!
¿Qué son datos abiertos?
Básicamente, datos abiertos son todos aquellos datos que los usuarios pueden usar y redistribuir libremente. Para poder considerar datos como "abiertos", los mismos deben estar disponibles para todas las personas, deben ser accesibles, reutilizables, interoperables y abiertos al público en general.
Para que los datos sean realmente abiertos deben estar presentados en formatos estructurados que faciliten a las personas compararlos, intercambiarlos, rastrearlos y reutilizarlos efectivamente, todo esto incentiva la transparencia y responsabilidad en las instituciones públicas.
Tener datos abiertos hace que las personas puedan tomar decisiones bien informadas con base en los datos como tales, permite a los usuarios contar las historias de sus comunidades y fortalece la participación ciudadana.
¿Qué es DKAN y cómo calza en todo esto?
Bueno, Drupal es lo que nos ayuda a administrar los datos, eso es lo que DKAN hace. Básicamente, DKAN es una plataforma open source para la administración de datos abiertos. Permite a las organizaciones subir y publicar sus datos, mientras que al mismo tiempo, los usuarios pueden utilizarla para buscarlos y descargarlos.
Sin embargo, no es suficiente con solo "abrir los datos", sino que también es muy importante que los usuarios sean capaces de encontrarlos, entenderlos e incluso compararlos con otros datos que estén viendo, que dichos datos sean interoperables y, por supuesto, que se puedan descargar. Aunque todo esto pueda sonar difícil, es posible gracias a los catálogos.
Los catálogos de datos abiertos son más que solamente los datos, los mismos incluyen también quién los recolectó, cómo fueron recolectados y en qué formato están, y toda esta información es importante porque le ayuda a los usuarios a entender lo que están viendo y facilita el poder compararlos.
¿Cómo funciona DKAN?
DKAN fue creado inicialmente como una distribución para Drupal 7, consistía en una estructura monolítica en la que Drupal estaba a cargo de la administración de todo: datos, metadatos, historias, visualizaciones, usuarios el flujo de publicación e incluso el cómo se veía la aplicación.
DKAN ha funcionado de esta manera por varios años ya, tiene una comunidad activa que se ha mantenido desarrollando nuevas funcionalidades y ahora se está enfocando en actualizaciones de seguridad para esta versión. Actualmente hay bastantes sitios en todo el mundo que están abriendo sus datos por medio de DKAN.
La estructura de DKAN en su versión para Drupal 7 presenta algunos retos en cuanto a escalabilidad, además, la barrera de entrada para empezar a usarlo es algo alta; estas fueron algunas de las razones por las cuales DKAN fue completamente reconstruido para Drupal 8.
DKAN v2
La reconstrucción de DKAN se realizó pensando en una arquitectura por componentes, así DKAN v2 es un módulo disponible para Drupal 8 en el que el frontend y el backend están desacoplados, además se considera que es guiado por esquemas y API first.
Con esta nueva arquitectura, Drupal está a cargo de administrar solamente los usuarios, archivos, metadatos e índices de búsqueda (al contrario que en Drupal 7 donde Drupal hacía todo); al mismo tiempo, se tiene que el frontend es manejado por medio de una aplicación de React desacoplada y que todo se exporta por medio de Gatsby para crear un sitio estático. Además de esto, podemos agregar tantas piezas o microservicios como queramos.
Los principales componentes para la creación y administración de un sitio en DKAN v2 son:
- el módulo DKAN
- el frontend desacoplado, que se encuentra basado en:
data-catalog-frontend: funciona como un kit de inicio para manejar el frontend, acá podemos definir nuevos componentes que se necesiten y también cambiar los colores y la forma en la que se ve nuestra aplicación.
data-catalog-components: este es un paquete de componentes de React que permiten mostrar todas las piezas de datos que provee DKAN.
- DKAN Tools: es una herramienta CLI creada para facilitar el trabajo en sitios que utilicen DKAN.
Uno de los cambios más grandes entre DKAN clásico y la versión 2 es que en DKAN v2 solamente se utiliza un tipo de contenido llamado "data", el mismo sólo consta de un campo que permite agregar los metadatos en formato JSON, el campo se llama “Json Metadata”.
Esto, aunque inicialmente puede parecer complicado de manejar, en realidad nos permite proveer un mayor nivel de escalabilidad, porque gracias a ello se puede dar soporte a múltiples esquemas sin necesidad de cambiar montones de componentes en nuestro sitio en Drupal, en cambio, lo único que se debe hacer es actualizar nuestro esquema y de esa forma, por ejemplo, con un solo cambio podemos soportar más o menos campos. Algunos de los esquemas más comunes son:
- DCAT: formato ampliamente utilizado en Europa.
- Project Open Data: utilizado principalmente en Estados Unidos.
A pesar de que tener solo un campo en nuestro tipo de contenido podría parecer difícil de manejar para los usuarios cuando tienen que agregar o editar contenido, en realidad DKAN está mostrando todos los campos con base en el esquema utilizado, esto a través de un formulario creado en React por medio del proyecto react-jsonschema-form:
Existe otra forma de meter datos en la plataforma y esta es a través del componente Harvest, este es una herramienta que le permite a los usuarios recolectar datos desde un endpoint remoto y hace que los datos y metadatos respectivos se encuentren disponibles en el portal de DKAN.
De esta forma, los editores y organizaciones en general pueden actualizar sus datos y metadatos cuando sea necesario de una manera fácil y amigable, y además, los usuarios en general pueden buscar y encontrar dichos datos fácilmente.
Otra característica interesante de DKAN v2 es que se considera API first, esto significa que podemos hacer prácticamente cualquier cosa usando URLs particulares, y todo lo que se puede hacer desde la consola de comandos, puede hacerse también vía URL. Para probar esto, podemos hacerlo directamente en el sitio de demo de DKAN https://demo.getdkan.com/, al ir a la sección "API" podemos hacer requests y ver cómo son las respuestas.
DKAN v2 está siendo desarrollado activamente y hay muchas más características que serán lanzadas pronto, por lo tanto, recomiendo usarlo, jugar en el sitio de demo, instalarlo y ponerle atención.
Esta charla fue parte de un Drupal meetup en Costa Rica, acá les llamamos Drupaleadas y están retomándose de forma que tenemos una cada tres semanas aproximadamente. El evento completo de este jueves 28 de mayo fue transmitido aquí, así que está disponible para el público en general. Además de hablar sobre datos abiertos y drupal, Ronald Aguilar habló sobre la comunidad de Drupal y Alain Martínez nos habló sobre su jornada como emprendedor usando Drupal.
Este post fue publicado inicialmente en https://dev.to/dharizza/open-data-with-drupal-dkan-2-6dn.
Manatí es una firma consultora web de origen costarricense, donde hacemos sitios que impulsan el progreso en gobierno, causas sin fines de lucro y educación superior.
No se pierdan los proyectos, noticias e ideas de nosotros en Manatí. Conozca más sobre lo que hacemos, síganos en medium, twitter y facebook.