La locura por la quinta estrella
Esta colaboración fue enviada a Escuela de Datos por Juan Pane, emprendedor con temas de datos abiertos, investigador para la Iniciativa Latinoamericana por los Datos Abiertos (ILDA) y la Universidad Nacional de Asunción en Paraguay, consultor en temas de Datos Abiertos y Contrataciones Abiertas para USAID, OEA y el Banco Mundial en Argentina, Honduras, Mexico y Paraguay y apoyo técnico para el Helpdesk de Latinoamérica para el Open Contracting Partnership.
Si tienes comentarios a esta u otras publicaciones, o quieres contribuir con algún texto, no dudes en escribirnos a [email protected]
http://es.schoolofdata.org/files/2017/07/Screen-Shot-2017-07-11-at-7.05.49-PM.png
Disclaimer: Esta es mi visión personal y muy pragmática, que posiblemente no concuerde con la visión de muchos académicos y puristas de la web semántica, pero bueno, como ya lo mencioné, es una visión pragmática, con la cual quizás haya alguna esperanza de que se pueda implementar lo de las 5 estrellas con recursos limitados.
Muchas personas relacionadas con la movida de los datos abiertos quieren sobresalir y llegar a la quinta estrella del esquema de publicación de datos a 5 estrellas definidas por Sir Tim Berners-Lee. Sin embargo, ¿qué significa exactamente, y más importante aún, qué implica la bendita quinta Estrella?
Una versión súper simplista de las 5 estrellas es la siguiente:
1 Estrella: Datos publicados en la web con una licencia abierta.
2 Estrellas: lo anterior y, además, que los datos estén estructurados, o sea, procesables por máquinas.
3 Estrellas: lo anterior y, además, que el formato de los datos estructurado no sea propietario.
4 Estrellas:. lo anterior y, además, una URI que permita que cualquiera pueda pueda hacer referencia a cada una de las entidades (o filas) contenidas en el conjunto de datos que estamos publicando.
5 Estrellas: todo lo anterior, además de reusar información (o datos) publicada en otros conjuntos de datos.
¿Cómo cumplir con las estrellas?, en pasos
Paso 1, la primera estrellita
Un simple .pdf conteniendo los datos del Presupuesto general de la Nación cumple con la primera estrella. Y no me malentiendan, el simple .pdf que yo como usuario puedo mirar es mejor que nada, esta es la belleza de la primera estrella, que se publique algo.
Paso 2, la segunda y tercera estrella
Para la segunda estrella, se deben publicar los datos del contenidos en el simple .pdf, pero en un un archivo en Excel. Es significa que como usuario de los datos no tengo que transcribir 13 páginas de números del presupuesto para comenzar a hacer un análisis de los datos.
La tercera estrella implica que no me tenga que gastar dinero en comprar Microsoft Excel (que es un muy buen programa si quiero gastar en él) para poder trabajar con los datos. En este caso, los datos de la tabla pueden ser publicados en archivos con formato .ODT que se puede abrir con un programa de Hoja de Cálculo como Libre Office u Open Office, o en formato .CSV, que es un formato de tabla en un archivo de texto, que puede ser abierto por cualquier procesador de texto y hoja de cálculo, e inclusive ser importado directamente a bases de datos.
En estas dos estrellas nos concentramos en la formalización de la sintaxis, es decir, en cómo dar al computador la capacidad de comprender la estructura de la información. Esto permite que un programador pueda escribir código para “parsear” los datos, o que un analista de datos pueda analizar los datos y extraer información relevante.
Como punto adicional que muchas veces olvidamos, es muy importante proveer información contextual que explique qué datos estamos publicando, como por ejemplo, un diccionario de datos para cada conjunto de datos Presupuesto General de la Nación en una página HTML. Esto permite que quien analiza la información pueda comprender el significado de cada una de las variables del conjunto de datos. Si me preguntan a mí, esto debería ser obligatorio para la tercera estrella, pero lastimosamente no lo es estrictamente hablando.
Paso 3, la cuarta y quinta estrella
Aquí se complican las cosas y entramos en el mundo de la formalización de la semántica, es decir, en cómo dar al computador la capacidad de comprender el significado de la información (que si me preguntan, no necesariamente equivale a la Web Semántica, pero son primos). Se puede definir la semántica de los datos a dos niveles:
- A nivel de estructura de la información, esto es, en lugar de nombrar una columna como “monto_presupuestado” para especificar que la información contenida en la misma se trata del monto aprobado del presupuesto para una institución dada, se utiliza algún formalismo que define qué es un “monto presupuestado”. Los formalismos pueden ir desde diccionarios con formato JSON Schema, Json Table Schema (ejemplo), hasta ontologías basadas en lógica proposicional y triplas como .RDF y OWL.
- A nivel de valores de la información, esto es, en lugar de decidir el usar una cadena de caracteres con el valor “Ministerio de Hacienda” para especificar que la institución a la que se le está asignando el presupuesto es el Ministerio de Hacienda del Paraguay, se debería utilizar una referencia a la entidad Ministerio de Hacienda creada y mantenida por otro conjunto de datos que mantiene las Instituciones del estado. El problema de definir el valor “Ministerio de Hacienda” como cadena de caracteres radica en que otro publicador de información, por ejemplo, que publica datos de los funcionarios de las instituciones públicas, puede definir el valor de la misma institución no por su nombre, sino por su acrónimo, es decir, “MH”. Claramente quien quiera realizar una integración de los datos de ambos conjuntos de datos va a tener un trabajo muy complejo para saber que “MH” = “Ministerio de Hacienda”.
La cuarta estrella:
En el ejemplo del presupuesto general de la nación, no basta publicar la información, sino que se debe además agregar URIs, o identificadores únicos en internet, a cada entidad (o fila) del conjunto de datos. Esto permite que cada entidad contenida en el conjunto de datos pueda ser referenciada por otros conjuntos de datos. Como analogía simplista, cada URI funciona como un primary key de una tabla de una base de datos (el conjunto de datos) al cual se puede hacer referencia desde internet (y no solo dentro de mi gestor de base de datos).
En mi opinión personal, la URI en el conjunto de datos es una de las cosas más importantes para la cuarta estrella, y yo consideraría que para los fines prácticos alguien que publique un conjunto de datos con un URI, y el mecanismo de resolución de la URI que retorne los datos como HTML/JSON ya cumple con la cuarta estrella (notar que en el esquema de datos a 5 estrellas en la cuarta estrella dice “usa URIs para denotar cosas, así la gente puede apuntar a estas”).
Este conjunto de dato de presupuesto general de la nación posee URIs para cada entidad, en este caso, cada línea presupuestaria. Cada URI puede ser vista en una página HTML y también en formato JSON (notar que lo que cambia para cada formato es solamente la extensión de la misma URL).
En teoría, estrictamente hablando se podría agregar también semántica a la estructura de la información, esto se podría hacer de distintas maneras:
- Usando un lenguaje como RDF u OWL para publicar los datos, utilizando una ontología para definir la estructura de la información,
- Alternativamente, personalmente prefiero otras tecnologías como jsonLD o microdata o RDF-a para datos en HTML. Usando estas últimas tecnologías se podría convertir los datos automáticamente en RDF y/o OWL, sin tener que aprender a trabajar con estas tecnologías.
Esta semántica en la estructura da un valor agregado muy importante a quien sabe utilizar los datos en RDF y OWL. Sin embargo, la curva de aprendizaje y la variedad de herramientas maduras para trabajar con estas tecnologías no se compara con las herramientas para trabajar los datos en bases de datos relacionales o con json.
La quinta estrella
Con la quinta estrella se quiere enlazar los datos publicados en un conjunto de datos a otro(s) conjunto(s) de datos para proveer contexto. Usando la analogía de base de datos usada anteriormente, en donde las URIs era los “primary key”, en la quinta estrella se pide que se usen “foreign keys” en internet, esto es, que cada conjunto de datos haga referencia a los datos de entidades publicadas en otros conjuntos de datos.
En el ejemplo del presupuesto general de la nación, si existiese un conjunto de datos de Instituciones del Estado que posee URIs para cada institución, entonces desde el conjunto de datos de presupuesto general de la nación se debería referenciar a cada institución de cada línea presupuestaria por su URI de Institución. Esto permite que un usuario de los datos de presupuesto pueda extraer automáticamente más información de la institución referenciada como pueden ser su acrónimo, su dirección, URL de su página web, etc.
Otro ejemplo de un conjunto de datos a 5 estrellas podría ser uno de contratos del estado, en donde se puede hacer referencia a las URIs de las líneas presupuestarias del conjunto de datos del presupuesto general de la nación, para definir de dónde se usa el dinero para poder costear cada contrato.
Siendo muy pragmáticos, los datos a cinco estrellas podría estar en formato CSV, siempre y cuando se incluyan URIs a otros conjuntos de datos. Con esta simple solución ya es posible automatizar la desreferenciación de las URIs y obtener más información de las entidades siendo referenciadas.
Algunas personas (en realidad muchas) opinan que para obtener la quinta estrella se tiene que usar el enfoque de Linked Data, y para ello se debería utilizar algún formato como RDF, OWL u otros formatos como jsonLD, RDFa o Microdata que permita la transformación automática a RDF y/o OWL. Personalmente creo que si bien esto provee muchas funcionalidades extras en el uso y análisis de la información, el esfuerzo y recursos extra necesarios para usar estos formatos más formales es muy grande y en general los proyectos de implementación de datos abiertos no suelen contar con estos recursos extra. Si este es el caso, con pocos recursos, usando el primer enfoque ya enlazamos conjuntos de datos entre sí habilitando la automatización del recorrido entre distintos conjuntos de datos.
Además, si en la cuarta estrella no se había incluido la semántica en la estructura, en la quinta estrella se podría hacerlo.
Entiendo que RDF y SPARQL son citados expresamente en la definición de la cuarta estrella, como estándares W3C.
En la definición de la quinta estrella se incluyen todos los requisitos de la cuarta estrella, por lo que un simple CSV no sería suficiente si no tenemos un mecanismo para generar las URIs de cada una de las filas, etc.