digital-guard / preserv

Digital Preservation Project
http://git.digital-guard.org/preserv
Apache License 2.0
0 stars 0 forks source link

Criação automatica de apéndice para o Readme #17

Closed ThierryAJean closed 2 years ago

0e1 commented 3 years ago

@ppKrauss lembrar de especificar essa issue.

ppKrauss commented 3 years ago

Na tabela ingest.layer_file, quando a ingestão é bem-sucedida um resumo é incluso como JSON, na coluna feature_asis_summary. Gravar como YAML em results.yaml através de função PostgreSQL... Peter e Claiton estão preparando essa implementação. A partir do YAML será possível o usuári ooptar no make pelo target de geração de apêndice ao README. O texto poderia também ser mesclado às evidências de teste.


Outra sugestão é o README novo se chamar README-test.md de modo a ficar localmente para o usuário acrescentar por copia/cola a um antigo README as partes que faltam... Ver também preserv/issues/10 pois haverá impacto na opção de README.

Exemplo

Sumário estatísico gerado pelo arquivo Malla_vial.shp do arquivo hash 410d02a do pk002 de CO-ANT-Medellin. Original JSON e em seguida sua tradução para YAML:

{"n": 41294, "size": 3363, "n_unit": "segments", "bbox_km2": 607,
 "size_mdn": 0.057, "size_unit": "km",
 "distribution": {
  "d3": 6329, "d34": 12334, "d345": 8133, "d347": 11800, "d345r": 780, "d3472": 1121, "d347bf": 797
 }
}

YAML:

via:
  members_n: 1
  members_md5_origName: {"c4f909ae9b9ee2d10fb4b275d7188453":"Malla_vial.shp"}
  bbox_km2: 607
  distribution:
    d3: 6329
    d34: 12334
    d345: 8133
    d345r: 780
    d347: 11800
    d3472: 1121
    d347bf: 797
  'n': 41294
  n_unit: segments
  size: 3363
  size_mdn: 0.057
  size_unit: km
geoaddress:

Resultado do YAML. O template a ser desenvolvido só precisa converter o YAML em XHTML.

Sumário estatísico dos membros do arquivo hash 410d02a (Malla Vial)
Layer via. Sumário da ingestão de 1 arquivo-membro, formato shapefile.
BBOX Numero de items Tamaño tot. Tamaño mediano
607 km2 41294 segments 3363 km 0.057 km
Distribución de ítems por cuadrícula Geohash
d3:6329; d34:12334; d345:8133; d345r:780; d347:11800; d3472:1121; d347bf:797
Sumário estatísico dos membros do arquivo hash 2630981 (Nomenclatura Domiciliaria)
Ningún Layer procesado

Implementação

Código-fonte Mustache sugerido: até pode ser gerado pelo módulo XML do PostgreSQL, mas queremos preservar as duas formas, YAML como resumo "legivel por máquina+nerds" e README como texto expandido "leǵivel para humanos em geral".

A decisão de incluir cabeçalho/tabela (ilustrado acima) por arquivo hash vai depender de ser simples ou não a concatenação com files de make_conf.yaml. O principal é listar os layers e seu resumo em termos geométricos. Por fim, o sumário estatístico de JOIN pode ser um complemento ao layer geométrico.

{{#.}}

  {{^members_n}}
  <table role="table">
  <tr>
    <td colspan="4" align="center"><b><i>Layer</i> {{..}} no procesado</b></td>
  </tr>
  </table>
  {{/members_n}}

  {{#members_n}}
  <table role="table">

  <tr>
    <td colspan="4" align="center">
       <b><i>Layer</i> {{..}}</b>,  <br/>resultante del procesamiento de {{.}} miembros.
    </td>
  </tr>
  <tr>
  <td><b>BBOX</b></td>
  <td><b>Numero de items</b></td>
  <td><b>Tamaño tot.</b></td>
  <td><b>Tamaño mediano</b></td>
  </tr>

  <tr>
  <td>{{bbox_km2}} km2</td>
  <td>{{n}} {{n_unit}}</td>
  <td>{{size}} {{size_unit}}</td>
  <td>{{size_median}} {{size_unit}}</td>
  </tr>

  <tr>
  <td colspan="4"><b>Distribución de ítems por cuadrícula Geohash</b></td>
  </tr>
  <tr>
  <td colspan="4">
     {{#distribution}}<code>{{_key}}</code>:{{.}}; {{/distribution}}
  </td>
  </tr>

  </table>
  {{/members_n}}

{{/.}}

O run_mustache.py além de preparar o merge precisa também gerar chaves _key a cada item da distribuição.

Por fim, o template precisa ser adaptado para cada língua de cada país.