API para OpenDataMX
Especificación de unaDraft de la primera especificación de una API para el OpenDataMX
Razón
Introducción
OpenDataMX es un hackatón enfocado en desarrollar tecnología para promover la transparencia del Gobierno de México.
Para el evento se publican datasets en el repo de Github o en la página oficial del evento, y varios equipos destinan 36 horas del fin de semana para concretar un producto de la depuración, procesamiento, y visualización de los datos.
Problema
- El producto de los equipos del evento concretan necesidades tan específicas que terminan limitando el esfuerzo a una visualización en particular y por ende aislando el avance generado en el procesamiento de los datos.
- Cada equipo trabaja la fase de depuración de datos de manera independiente y no está disponible de manera digerida para terceros. ¿Dónde están los datos procesados de los OpenDataMX pasados? Al final del evento sólo veo el repositorio original con documentos .zip, .pdf, .xls, el anuncio de un proyecto ganador, y un par de infografías (datos digeridos, presentables, pero no flexibles ni estandarizados para nuevos desarrollos).
- El repositorio de datasets de OpenDataMX no está centralizado en una base de datos, por lo tanto no provee una interfaz flexible para la manipulación, consulta, y generación de referencias cruzadas con los datos.
Ejemplos:
1 Datasets de agosto 2012 de OpenDataMX, .zip, .xls, .csv
2 Estos datasets de educación indígena en DataHub están comprimidos en formato .zip
Open Government Working Group
Retomando algunos de los principios delLos datos de gobierno:
- Deben ser completos: datos públicos significa que no están sujetos a confidencialidad, privacidad o algún otro status restrictivo.
- Deben ser primarios, i.e. con el mayor grado de granularidad posible.
- Deben ser legibles tanto para humanos como para un programa computacional.
- Deben estar disponibles sin discriminación para el mayor número de usuarios y propósitos.
- Deben almacenarse en formatos no propietarios.
Propuesta
- Estandarizar el formato de datos
- Centralizar la información
- Facilitar el acceso de los datos a las masas
- Permitir la generación de consultas
- Agilizar y humanizar la importación de datos
En resumen, cualquier humano o programa informático debe poder accesar, entender, y procesar los datos del OpenDataMX desde cualquier parte de la red.
Proponemos un API público que permita centralizar el procesamiento, distribución y consulta de estos datos.
API
Descripción de la- El API facilitará el consumo de datos entregándolos en JSON o en XML.
- Arquitectura simple basada en REST sin autenticación.
- Facilitará la consulta de datos bajo los siguientes rubros:
3.1 Categorías, ej. educación, salud, gasto público
3.2 Datasets/temáticas/contextos, ej. bullying, licitaciones de software
3.3 Zona geográfica, ej. Baja California
3.4 Fechas, ej. 2009 - 2011 - Los datos deben tener referencia, i.e. autor, organización a cargo.
- Los datos deben estar ligados a una zona geográfica y al tiempo.
- Los campos deben tener una descripción, p.ej. en el data set "Financiamiento a la actividad forestal por programa 2011", el campo o columna "solicitante" llevaría una descripción más específica similar a "Nombre del apoderado legal del subsidio entregado".
Ejemplo de descripción de servicios de API en Open311
Contextos, datasets, temática
➜ ~ curl http://opendata.mx/api/educacion
{ datasets: ["bullying", "nivel-de-escolaridad"] }
➜ ~ curl http://opendata.mx/api/presupuesto
{ datasets: ["licitaciones", "compras-de-software", "pronabes"] }
Datos en tiempo y espacio
Dataset de bullying filtrado al DF
➜ ~ curl http://opendata.mx/api/educacion/bullying?w=-99.364067&s=19.048220&e=-98.940193&n=19.591579
Presupuesto para compra de software desde 2009
➜ ~ curl http://opendata.mx/api/presupuesto/compras-de-software?since=2009
Financiamiento a bosques en 2011
➜ ~ curl http://opendata.mx/api/presupuesto/financiamiento-a-bosques?year=2011
{
"results": [
{
"Estado": "Chiapas",
"Solicitante": "Emilio Jiménez Pérez",
"Monto": 2450,
"Municipio": "San Fernando",
"Superficie": 2,
"Programa": "Restauración y conservación del Río Grijalva"
},
{
"Estado": "Chiapas",
"Solicitante": "Esteban Vázquez Sánchez",
"Monto": 1080,
"Municipio": "San Fernando",
"Superficie": 1,
"Programa": "Restauración y conservación del Río Grijalva"
}
]
}
Futuros escenarios
- Un ecosistema de desarrollo alrededor del API
- SDKs para diferentes lenguajes de programación
- Aplicación Web para la fácil incorporación de nuevos datasets
- Cuentas validadas para organizaciones que mantendrán sanos los datos
- Productos más robustos y más completos
- Repositorio histórico de datos
- Minería de datos
- Referencias cruzadas entre datasets
Referencias
Licencia
Licencia bajo Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
2012 Rodolfo Wilhelmy rwilhelmy@gmail.com