Files
brasiliano/MANIFEST.md
T
rodado dfb6362e30 docs: plano, manifest e textos da descrição conferidos; descrição publicada no bucket
- PLANO §1/§7 com o estado real (ledger e bucket em 2026-09-30) e §9 com o
  visor do mural (7.1–7.2c), 7.3 e 7.4 pendentes
- MANIFEST final com contagens fechadas e seção sobre a descrição NOBRADE
- textos das 15 seções e do nível 1 conferidos na web, com fontes fora da descrição
- rascunho do pedido de CODEARQ ao CONARQ
- descricao/ enviada a s3://brasiliana/descricao/ com manifest-sha256.txt
2026-09-30 22:35:21 +02:00

197 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MANIFEST — Brasiliana Fotográfica → S3
> **Versão final, 2026-09-30.** Coleta concluída em 2026-09-13. Números
> conferidos contra o ledger de envio (`pipeline/subidor.sqlite`) e a listagem
> do bucket. Detalhe técnico em `tasks/PLANO.md` e `README.md`.
## O que é
Cópia de preservação do acervo da **Brasiliana Fotográfica**
(brasilianafotografica.bn.gov.br), um repositório DSpace mantido pela
Biblioteca Nacional do Brasil reunindo fotografias de 15 instituições
(14 brasileiras e uma alemã) (handles `20.500.12156.1/*`). Depositada em
`s3://brasiliana` como acervo arquivístico — procedência e checksums
preservados por item, não uma cópia solta de imagens.
Inclui também os posts editoriais do blog WordPress do mesmo projeto
(raiz do domínio, separado do repositório DSpace) — ensaios curatoriais
que contextualizam itens do acervo, com autoria e data preservadas.
## Por que foi coletado assim
A Biblioteca Nacional foi consultada: o material é público, mas a
instituição não tem equipe técnica para fornecer um dump. A coleta por
scraping foi o caminho combinado, com ritmo cortês e identificação do
coletor mantidos ao longo de toda a coleta.
## Como foi coletado
**Metadados** (13.060 itens):
enumerados via `browse?type=title` por comunidade (o sitemap oficial está
desatualizado desde 2019 e cobre só 41% do acervo), colhidos um a um do
DSpace (`?show=full`), executado a partir de um navegador real — o site
usa uma proteção anti-automação que bloqueia requisições de servidores e
navegadores sem sessão real, mesmo pra bitstreams de imagem, não só
páginas HTML.
**Imagens**: cada item pode ter mais de uma imagem original (achado desta
coleta — 121 itens tinham de 2 a 8 bitstreams reais, não um). Pra cada item
coletamos: a imagem de preservação (a de maior resolução), a(s) imagem(ns)
adicional(is) quando existem, e a miniatura gerada pelo próprio DSpace.
Uma cópia legada de menor resolução (`objdigital.bn.br`) também foi
preservada quando disponível — é a mesma proveniência, resolução inferior,
mantida por referência histórica, nunca como substituta da imagem de
preservação.
**Posts do blog**: 636 posts únicos coletados (637 identificados, 1 com erro na origem; 8 categorias do
WordPress, com sobreposição substancial entre elas), com título, autor,
data, categorias e corpo do texto, mais a lista de handles do acervo que
cada post referencia.
## Estrutura no bucket
```
s3://brasiliana/
MANIFEST.md este arquivo
INDEX.md índice legível dos itens
catalogo.jsonl metadados completos, 1 linha por item
wordpress-posts.jsonl posts do blog, 1 linha por post
wordpress/ um Markdown por post
falhas-500-2026-09-13.txt itens cuja preservação a origem não serve
descricao/ descrição arquivística NOBRADE (ver abaixo)
itens/{handle-com-underscore}/
metadata.json Dublin Core completo + URL de origem
+ data/hora UTC de captura
manifest-sha256.txt SHA-256 de cada arquivo do item
preservacao/
{nome-do-arquivo}.jpg imagem de maior resolução
extra_seqN.jpg imagens adicionais (itens com
múltiplos bitstreams — ver achado
2.7 do PLANO.md)
thumbnail/
thumb_N.jpg miniatura gerada pelo DSpace
legado/
{nome-original}.jpg cópia de objdigital.bn.br, quando
existe (menor resolução, mesma
proveniência)
derivados/thumb256/
{handle-com-underscore}.webp miniatura DERIVADA por nós (não é
material de origem — ver abaixo)
derivados/medio/
{handle-com-underscore}.webp imagem média (~1000 px) DERIVADA, usada
no cartão do mural
```
### Sobre `derivados/`
Tudo sob `itens/` é material de origem: veio da Biblioteca Nacional como
está. `derivados/` é o oposto — foi gerado por nós a partir do que está
em `itens/`, e pode ser reconstruído do zero a qualquer momento. A
separação é proposital: misturar derivado nosso com bitstream de origem
apagaria a procedência que o resto deste manifesto garante.
`derivados/thumb256/` tem **13.059 miniaturas** (256px no maior lado,
WebP q80, ~100 MB no total), uma por item, geradas com libvips a partir da
imagem de preservação quando ela existe e, nos 69 itens sem ela, do
`thumbnail/` do próprio DSpace. A especificação de saída é a mesma nos dois casos,
então o conjunto é uniforme.
Cobre **13.059 dos 13.060 handles do catálogo (99,99%)**. O único ausente
é `7523`, cujos bitstreams a origem serve com HTTP 500. `derivados/medio/`
tem a mesma cobertura (13.059).
Contagem de itens: o `catalogo.jsonl` final tem **13.060 handles distintos**,
todos itens reais. O falso-positivo `20.500.12156.1/1` (página raiz da
comunidade) não está nele. A cifra de 13.058 de rascunhos anteriores está
superada.
Note que `itens/{handle}/thumbnail/` **não** é uma miniatura no sentido
usual: os arquivos que o DSpace chama de thumbnail têm 721 a 3.709 px no
maior lado (média ~1.087). São derivados de resolução média, não
miniaturas de listagem.
## Não-negociáveis (cumpridos)
- **SHA-256 de cada arquivo** — em `manifest-sha256.txt`, por item
- **URL de origem + data/hora UTC de captura** — em `metadata.json`
(`source_url`, `fetched_at`)
- **`dc.rights` e instituição de origem preservados por item** —
`metadata.json` traz `community` (100% dos itens) e `rights` (quando a
instituição de origem o preencheu — ver nota abaixo)
## Contagens (fechadas em 2026-09-30)
| | Arquivos | Itens | Tamanho |
|---|--:|--:|--:|
| Itens no catálogo | — | 13.060 | 45,9 MB (`catalogo.jsonl`) |
| Imagem de preservação | 13.194 | 12.991 | 127,4 GB |
| ↳ extras (itens com 2 a 8 imagens) | 203 | 121 | incluídos acima |
| Miniatura do DSpace (`thumbnail/`) | 13.060 | 13.059 | 1,5 GB |
| Cópia legada (objdigital) | 2.137 (1.899 JPG, 213 PDF, 25 outros) | 2.137 | 9,6 GB |
| `metadata.json` + `manifest-sha256.txt` | 26.118 | 13.059 | 65 MB |
| Derivado `thumb256` | 13.059 | 13.059 | 101 MB |
| Derivado `medio` | 13.059 | 13.059 | 499 MB |
| Posts do blog (`wordpress/`) | 636 | — | 10 MB |
| **Total no bucket** (sem `descricao/`) | **81.269 objetos** | | **139,2 GB** |
Sem imagem de preservação: **69 itens**, listados em `errors.md` e
`falhas-500-2026-09-13.txt`. A origem responde HTTP 500 ao bitstream, e
todos, menos o `7523`, têm a miniatura do DSpace.
## Descrição arquivística (NOBRADE)
`descricao/` descreve esta coleção segundo a NOBRADE (CONARQ, 2006), em seis
níveis: acervo › coleção › 15 seções (instituição de origem) › 115 séries
(coleção ou fundo de origem) › 13.060 dossiês (itens do DSpace) › 13.262
itens documentais (cada imagem). Código de referência
`BR RJXYZ.BF.<seção>.<série>.<handle>.<imagem>`, com a entidade `RJXYZ`
provisória até o CONARQ atribuir um CODEARQ.
| Arquivo | Conteúdo |
|---|---|
| `unidades.jsonl` | 26.454 unidades de descrição, elementos pelo número da norma |
| `autoridades.jsonl`, `eac/` | 457 registros de autoridade (ISAAR(CPF)), também em EAC-CPF |
| `ead/brasiliana.xml` | a coleção inteira em EAD 3, validada contra o XSD oficial |
| `atom.csv` | importação no AtoM (modelo ISAD) |
| `pendencias.md` | validador dos obrigatórios: 0 pendências |
| `revisao/`, `textos/` | tabelas dos normalizadores e textos dos níveis 1–2 |
| `manifest-sha256.txt` | SHA-256 de cada arquivo de `descricao/` |
A descrição é derivada, como `derivados/`: regenera-se com
`python3 -m nobrade` a partir do catálogo e do ledger. Decisões e mapeamentos
estão em `CONARQ.md`, no repositório.
## Exceções conhecidas (não são bugs)
- **`dc.rights` ausente em 5.833 itens (44,7%)** — característica real da
fonte: várias instituições nunca preencheram esse campo no DSpace. A
instituição de origem (`community`) está preservada em 100% dos casos;
a decisão de redistribuição desses itens deve considerar a política de
cada instituição individualmente (ver seção "Direitos" abaixo).
- **Handle `20.500.12156.1/1`** — descoberto pelo crawler mas não é um
item: é a página raiz da comunidade. Excluído do catálogo final.
- **Duplicatas com sufixo `(N)` removidas** — 3.511 objetos nomeados
`arquivo (1).jpg` ao lado de um `arquivo.jpg` byte a byte idêntico
(artefato do navegador rebaixando por cima). Confirmados idênticos por
ETag + tamanho antes de apagar; 0,39 GB recuperados. Sobraram 43 cujo
nome tem o sufixo mas que são o único arquivo do item (ficam como
estão) e 30 cujo gêmeo tem tamanho diferente — esses precisam de
conferência individual e **não** foram tocados.
- **Handle `20.500.12156.1/7523`** ("Vista Aérea de Cabo Frio", Museu
Aeroespacial) — sem imagem. O servidor da Biblioteca Nacional retorna
`HTTP 500` ao tentar servir os bitstreams desse item especificamente;
não é um problema do nosso lado. Metadados preservados normalmente.
- **Handles `20.500.12156.1/6656` e `20.500.12156.1/7939`**: a primeira
tentativa baixou o bitstream de LICENÇA do DSpace (777 bytes de texto com
extensão `.jpg`), que a validação de magic bytes barrou. Na rodada de
2026-09-13 os dois foram recuperados, e a imagem de preservação real está
no bucket.
## Direitos
Majoritariamente domínio público por antiguidade, mas as 15 instituições
de origem (14 brasileiras + 1 alemã) têm políticas distintas. `dc.rights`
e a instituição de origem são preservados **por item**: a decisão de
redistribuir é item a item, não do acervo em bloco. Arquivar para si é
uma coisa; republicar é outra.