datosgobar / ckanext-datajsonar Goto Github PK
View Code? Open in Web Editor NEWThis project forked from gsa/ckanext-datajson
Extensión de CKAN para integración con estándar DCAT
This project forked from gsa/ckanext-datajson
Extensión de CKAN para integración con estándar DCAT
De acuerdo con el perfil de metadatos 1.1 , los datasets cuentan con un campo recomendado source
que corresponde a la fuente primaria. Desde la página de creación de datasets es posible asignarlo y mostrarlo, pero no se ve reflejado en el /data.json
de un portal.
El campo theme de un dataset debe ser un array de ids de objetos Theme. Actualmente muestra los labels de objetos Theme directamente.
Relacionado a #4
Si al cargar un nuevo recurso, no se agrega la descripcion de campos (fields) el plugin se rompe con una excepción KeyError() y de hecho, la declaracion de campos para recursos tabulares no es una tarea requerida.
El caso de datos.gob.ar no tenía campo superTheme
en los datasets porque este es igual al theme
(es un portal transversal que usa en sí mismo la taxonomía temática global (superThemeTaxonomy) ).
La solución que se le encontró para que valide bien es agregar al data.json de datos.gob.ar el campo superTheme
para todos los datasets de forma que sea igual al theme
(son la misma cosa).
No estoy seguro de si va en este repo esto o si va en otro lado.
De acuerdo al perfil de metadatos 1.1, hay campos de un dataset que se corresponden con campos extras de un paquete de CKAN. Estos campos se están guardando y leyendo con nombres que no respetan el perfil. Estos son:
dateRange
, debería ser temporal
globalGroups
, debería ser superTheme
updateFrequency
, debería ser accrualPeriodicity
Estos cambios deberían coordinarse con el portal andino para que los comience a guardar de manera correcta.
Luego de implementar datosgobar/portal-andino-theme#120 tenemos que hacer esos campos accesibles en el data.json
.
Los campos son:
Contexto
Muchas áreas nos vienen pidiendo disponer de una forma fácil de tener sus metadatos en Excel, además de en formato JSON (como disponen ahora).
Propuesta
Usar pydatajson para generar una versión descargable en XLSX de los metadatos de un Andino que están en data.json, de manera que además de /data.json un usuario pueda hacer /catalog.xlsx y descargarse el Excel.
Ejemplo con Agroindustria:
https://datos.agroindustria.gob.ar/data.json
https://datos.agroindustria.gob.ar/catalog.xlsx
Código para hacer esto en pydatajson
# coding: utf-8#
# Ejemplo para Generar catálogo en Excel
from pydatajson import DataJson
from pydatajson import writers
URL_CATALOG = "https://datos.agroindustria.gob.ar/data.json"
catalog = DataJson(URL_CATALOG)
writers.write_xlsx_catalog(catalog, "agroindustria/catalog.xlsx")
Actualmente el data.json tiene content type igual a text/html
Deberia ser application/json
El campo spatial de un dataset fue añadido en datosgobar/portal-andino-theme#125.
Añadirlo al data.json
Es difícil de entender con claridad cuál es el problema, pero pareciera ser que todos los datasets del portal (sean "originales" nuestros o federados de Justicia) tiene la misma lista de "keyword" y "theme":
"keyword": [
"derechos-humanos",
"desaparecidos",
"desaparicion-forzada",
"represion",
"victimas",
"derechos-humanos",
"femicidios",
"genero",
"homicidios",
"violencia",
"asambleas",
"asociaciones-civiles",
"autoridades",
"fundaciones",
"igj",
"personas-juridicas",
"sistema-registral",
"sociedades",
"automotores",
"iniciales",
"inscripciones",
"maquinarias",
"motovehiculos",
"prendas",
"registracion",
"sistema-registral",
"transferencias",
"carceles",
"ejecucion-de-la-pena",
"establecimientos-penitenciarios",
"personas-privadas-de-la-libertad",
"politica-criminal",
"presos",
"prision",
"sistema-penitenciario",
"sneep",
"spf",
"cargo",
"concurso",
"defensor",
"federal",
"fiscal",
"juez",
"justicia",
"magistrado",
"nacional",
"organo",
"poder-judicial",
"subrogante",
"vacante",
"automotores",
"maquinarias",
"motovehiculos",
"prendas",
"registracion",
"sistema-registral",
"transferencias",
"anmac",
"armas",
"legitimo-usuario",
"portacion",
"renar",
"sistema-registral",
"anmac",
"armas",
"portacion",
"renar",
"sistema-registral",
"acordadas",
"boletin-oficial",
"decisiones-administrativas",
"decretos",
"disposiciones",
"informacion-juridica",
"leyes",
"resoluciones",
"denuncias",
"derechos-humanos",
"violacion-a-los-derechos-humanos",
"violencia-institucional",
"capturas",
"detencion",
"rebeldias",
"sistema-registral",
"acceso-a-justicia",
"acceso-a-la-justicia",
"asesoramiento-juridico",
"caj",
"casas-de-justicia",
"justicia",
"vulnerable",
"boletin-oficial",
"codigos-provinciales",
"constituciones-provinciales",
"decretos",
"informacion-juridica",
"leyes",
"acordadas",
"decisiones-administrativas",
"decretos",
"disposiciones",
"informacion-juridica",
"inteligencia-juridica",
"leyes",
"resoluciones",
"tesauro-juridico",
"vocabularios-controlados",
"Economía",
"Gastos",
"Recursos",
"acceso-a-justicia",
"mediacion",
"prejudicial",
"resolucion-alternativa-de-conflictos",
"condenados",
"federal",
"inimputables",
"penitenciario",
"presos",
"prision",
"procesados",
"procesal",
"sistema-penitenciario",
"spf",
"anticorrupcion",
"ddjj",
"etica-publica",
"funcionarios",
"ley-25188",
"ley-26857",
"patrimonio",
"apertura",
"compromisos",
"datos",
"gobierno abierto",
"ministerios",
"participación",
"Alquileres",
"Bienes inmuebles",
"Contratos",
"Inmuebles",
"Locador",
"Autoridades",
"Cargos",
"Estructuras",
"Jerarquía",
"Organigramas",
"Comunicación",
"Gastos",
"Medios",
"Pauta",
"Publicidad",
"Adjudicaciones",
"Bienes",
"Catálogo",
"Compras",
"Concursos",
"Contrataciones",
"Convocatorias",
"Finanzas Públicas",
"Gastos",
"Presupuesto",
"Proveedores",
"Servicios",
"Asignaciones",
"Autoridades Superiores",
"Estructura",
"Salarios",
"Sueldos",
"Agendas",
"Audiencias",
"Funcionarios",
"Registros",
"Reuniones",
"Acceso",
"Decretos",
"Pedidos",
"Registros",
"Solicitudes",
"Trámites",
"Contratos",
"Empleo Público",
"Nómina de Personal Contratado",
"Organismos",
"Personal"
],
"theme": [
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Economía y finanzas",
"Gobierno y sector público",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Justicia, seguridad y legales",
"Gobierno y sector público",
"Gobierno y sector público",
"Gobierno y sector público",
"Gobierno y sector público",
"Economía y finanzas",
"Gobierno y sector público",
"Gobierno y sector público",
"Gobierno y sector público",
"Gobierno y sector público",
"Gobierno y sector público"
]
El campo distribution.fileName
debe mostrarse en el data.json
El campo accessURL muestra la misma url que downloadURL cuando estas no son necesariamente las mismas.
De acuerdo con el perfil de metadatos accessURL es la "URL que permite el acceso a la distribución del dataset. Puede ser una página, feed u otro tipo de recurso que dé acceso indirecto a las distribuciones. Si las distribuciones son solo accesibles a través de la página de referencia del dataset, debe completarse el valor de la URL de acceso a la distribución con el mismo valor de la página de referencia del dataset."
Ejemplo
La generación y disponibilidad de la taxonomia via api está solo disponible en datos.gob.ar via /superThemeTaxonomy.json
Esto es generado por el plugin visual de datos.gob.ar, cuando en realidad deberia ser parte de este plugin.
Para evitar que todos los portales tengan una "super" taxonomia, la url por defecto para este metodo de la api deberia ser /themeTaxonomy.json
y ante un flag de configuración deberia poder cambiar a /superThemeTaxonomy.json
, de forma tal que datos.gob.ar siga disponibilizando la taxonomia global de forma transparente.
Durante el transpaso de codigo, aprovechar para cambiar:
El campo language
debe ser un Array
siempre y no un String
.
El 12/9 se verificó que tanto en el data.json de datos.gob.ar (http://datos.gob.ar/data.json) como de Agroindustria (https://datos.agroindustria.gob.ar/data.json) el campo se está generando como un string.
Ejemplo de Agroindustria:
"title": "Datos Agroindustriales",
"dataset": [
{
"publisher": {
"mbox": "[email protected]",
"name": "Subsecretaría de Control Comercial Agropecuario"
},
"accessLevel": "public",
"description": "Cantidad de establecimientos, a nivel departamental, que acopian granos en diferentes modos de gestión.",
"license": "Open Data Commons Open Database License (ODbL)",
"title": "Centros de acopio de granos",
"issued": "2017-09-07T15:01:53.903984",
"modified": "2017-09-12T11:42:51.613640",
"language": "spa",
"theme": [
"Producción Agroindustrial",
"Registros, censos y encuestas"
],
"distribution": [
{
"accessURL": "http://datos.agroindustria.gob.ar/dataset/b8d69703-ebc5-4cc0-a52c-0cc9e404489f/resource/a215e83a-7bb2-4d43-8eed-6ff8037ce766/download/rucagranosdepto.csv",
"description": "Cantidad de establecimientos a nivel departamental que acopian granos en diferentes modos de gestión.",
"title": "Centros de acopio de granos",
"issued": "2017-09-07T15:05:15.863289",
"format": "CSV",
"modified": "2017-09-07T15:12:40.471883",
"downloadURL": "http://datos.agroindustria.gob.ar/dataset/b8d69703-ebc5-4cc0-a52c-0cc9e404489f/resource/a215e83a-7bb2-4d43-8eed-6ff8037ce766/download/rucagranosdepto.csv"
},
{
"accessURL": "http://datos.agroindustria.gob.ar/dataset/b8d69703-ebc5-4cc0-a52c-0cc9e404489f/resource/85e785a4-57ac-4fe0-a396-5c5639e4a524/download/referenciarucagranos.csv",
"description": "Cantidad de establecimientos a nivel departamental que acopian granos en diferentes modos de gestión.",
"title": "Referencia de centros de acopio de granos",
"issued": "2017-09-07T17:21:45.842755",
"format": "CSV",
"modified": "2017-09-07T17:35:18.136821",
"downloadURL": "http://datos.agroindustria.gob.ar/dataset/b8d69703-ebc5-4cc0-a52c-0cc9e404489f/resource/85e785a4-57ac-4fe0-a396-5c5639e4a524/download/referenciarucagranos.csv"
}
],
"keyword": [
"Buenos Aires",
"CABA",
"Catamarca",
"Chaco",
"Chubut",
"Cordoba",
"Corrientes",
"Entre Rios",
"Formosa",
"Jujuy",
"La Pampa",
"La Rioja",
"Mendoza",
"Misiones",
"Neuquen",
"RUCA",
"Rio Negro",
"Salta",
"San Juan",
"San Luis",
"Santa Cruz",
"Santa Fe",
"Santiago del Estero",
"Tierra del Fuego",
"Tucuman",
"acopio",
"granos",
"infraestructura rural"
],
"accrualPeriodicity": "eventual",
"superTheme": [
"AGRI"
],
"landingPage": "http://datos.agroindustria.gob.ar/dataset/centros-de-acopio-de-granos",
"identifier": "b8d69703-ebc5-4cc0-a52c-0cc9e404489f",
"contactPoint": {
"@type": "vcard:Contact"
}
},
El data.json debería exponer en theme o superTheme una lista de los ids
de los temas asignados por el usuario en el formulario para c/dataset. Hoy muestra sus labels
en lugar de sus ids
. Esto sucede tanto en Andino como en datos.gob.ar.
Este cambio hay que coordinarlo bien con el harvesting, que debería estar usando los superTheme para ubicar los datasets en el theme correspondiente de datos.gob.ar. Ahí va a tener que empezar a usar los ids
en lugar de los labels
cuando se haga este cambio.
El atributo distribution_accessURL
se arma incorrectamente, tomando como URL base al atributo package.url
.
La URL base del accessURL debe ser la URL del portal CKAN/Andino.
Como parte de cerrar este issue se debe asegurar que el cambio llegue al ambiente de dev.
Algunos campos de los metadatos para datos.gob.ar no estan disponibles y hacen que el portal se rompa.
Relacionado con datosgobar/portal_datos.gob.ar#18
References datosgobar/portal-andino-theme#191
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.