Skip to content

Inferir y agregar metadatos faltantes a los catálogos, que monitoreo puede estimar #87

@abenassi

Description

@abenassi

Contexto

Hay campos que no esperamos que los nodos completen o utilicen correctamente, generalmente porque son tediosos de mantener y deberían ser automatizados.

Propuesta

Implementar como parte de la rutina de lectura de catálogos de django-datajsonar, el cálculo de algunos campos de metadatos adicionales (y los auxiliares que sea necesario) y su agregado a los catálogos que se leen (ie. estos metadatos nuevos deben servir para su uso dentro de monitoreo, pero también deben llegar al nodo central, cuando se federan).

Campos de manejo de fechas (aplicar a nivel catalog, dataset y distribution):

  • issued: este campo viene de los nodos, si está vacío y no había ningún valor generado, se completa con la fecha de hoy (se considera que la entidad fue publicada por primera vez, cuando django-datajsonar lo lee).

  • dataModified: este campo no existe en el perfil nacional de metadatos. Se llena con la última fecha en la que el hash de la distribución descargada fue distinto que el anterior (donde se verifica una modificación de los datos). Se "hereda" hacia arriba: un dataset cambia su dataModified cuando alguna de las distribuciones contenidas en él lo cambia. Un catálogo cambia su dataModified cuando alguno de los datasets contenidos en él lo cambia. Atención! Para esto se usa un hash interno calculado por monitoreo apertura, pero no el hash que viene (o no viene) de los metadatos.

  • metadataModified: este campo no existe en el perfil nacional de metadatos. Sigue un comportamiento igual a dataModified, pero sólo con los cambios en metadatos.

  • modified: este campo existe en el perfil nacional de metadatos. Si viene de los nodos, se respeta el valor que ellos pusieron. Si está vacío, se usa la fecha más reciente entre metadataModified y dataModified.

Estos 4 campos deben calcularse a nivel de catálogo, dataset y distribución. Siempre siguen la misma lógica y se "heredan hacia arriba".

Hay que implementarlos siempre como "lo busco en el data.json y, si no está, actúo por mi cuenta para completarlo".

Otros campos

Implementar el campo byteSize a nivel de distribución. Si el nodo no especifica el tamaño del archivo, este se calcula automáticamente a partir del archivo descargado y se completa el metadato.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions