- medio/ 1.200 px e grande/ 2.000 px para os 13.059 itens (6,0 GB) - 9 matrizes com JPEG corrompido viram tarefa; derivadas delas saem da imagem do DSpace - MANIFEST com as contagens novas, reenviado ao bucket
230 lines
12 KiB
Markdown
230 lines
12 KiB
Markdown
# 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 derivada de acesso, 1.200 px, DERIVADA,
|
||
aberta no visor do mural
|
||
derivados/grande/
|
||
{handle-com-underscore}.webp derivada de acesso ampliada, 2.000 px,
|
||
carregada no zoom do visor
|
||
```
|
||
|
||
### 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/` e
|
||
`derivados/grande/` têm a mesma cobertura (13.059).
|
||
|
||
#### Tamanhos das derivadas (definidos em 2026-10-01)
|
||
|
||
Nos termos do CONARQ (Resolução 31/2010, *Recomendações para digitalização
|
||
de documentos arquivísticos permanentes*), a imagem de preservação faz o
|
||
papel de **matriz digital**, e o que está em `derivados/` são **derivadas**:
|
||
a de navegação (thumbnail) e as de acesso, que o CONARQ pede em formato
|
||
aberto e "em variados tamanhos de acordo com a banda" — sem fixar pixels.
|
||
Os pixels seguem a NARA (*Technical Guidelines for Digitizing Archival
|
||
Materials for Electronic Access*, 2004, tabela de fotografias), que é a
|
||
referência citada pela própria recomendação do CONARQ:
|
||
|
||
| Pasta | Lado maior | CONARQ | NARA 2004 (fotografias) | Uso no mural |
|
||
|---|--:|---|---|---|
|
||
| `thumb256/` | 256 px | derivada de navegação | thumbnail (≤ 200 px) | fonte do atlas 3D (blocos de 128 px) |
|
||
| `medio/` | 1.200 px | derivada de acesso | *Access – Recommended* (800–1.200 px) | imagem aberta no visor |
|
||
| `grande/` | 2.000 px | derivada de acesso | *Larger Alternative* (1.200–2.000 px) | carregada só no zoom |
|
||
|
||
Regras comuns: WebP (formato aberto; o CONARQ recomenda JPEG/PNG mas admite
|
||
outros quando o acesso exige), espaço de cor **sRGB** (pedido pela NARA para
|
||
acesso), metadados embutidos removidos, e **nunca ampliar** — a matriz menor
|
||
que o alvo fica no próprio tamanho. Também chega ao nível 3–4 do Europeana
|
||
Publishing Framework (≥ 0,95 megapixel). Gerado por
|
||
`pipeline/deriva-acesso.py` a partir da matriz (ou, nos 68 itens sem ela, da
|
||
imagem servida pelo DSpace). Em 9 itens (`6574`, `6969`, `6975`, `6994`,
|
||
`7153`, `7161`, `7169`, `7173`, `7203`) a matriz é um JPEG com dados
|
||
corrompidos (marcador RST quebrado; o arquivo está inteiro e o SHA-256 confere
|
||
com o ledger), e as derivadas saíram da imagem do DSpace. No fim,
|
||
134 `medio` e 991 `grande` ficaram abaixo do alvo porque a matriz é menor.
|
||
|
||
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` (1.200 px) | 13.059 | 13.059 | 1,61 GB |
|
||
| Derivado `grande` (2.000 px) | 13.059 | 13.059 | 4,37 GB |
|
||
| 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.
|