feat: descrição arquivística NOBRADE multinível com exportação EAD 3, EAC-CPF e AtoM
- pipeline/nobrade: normalizadores de datas (ISO 8601-2), séries, autoridades, espécie/suporte, direitos, lugar e assuntos; montagem dos níveis 0–5 com código de referência BR RJXYZ.BF.<seção>.<série>.<handle>.<imagem> - validador dos elementos obrigatórios: 0 pendências em 26.454 unidades - EAD 3 e 457 EAC-CPF validados contra os XSD - mural: cartão com código, data normalizada, série e reprodução; filtro por série
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
"""Constantes da descrição NOBRADE — decisões registradas em CONARQ.md §5."""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
RAIZ = Path(__file__).resolve().parents[2]
|
||||
PIPELINE = RAIZ / 'pipeline'
|
||||
CATALOGO = PIPELINE / 'catalogo.jsonl'
|
||||
LEDGER = PIPELINE / 'subidor.sqlite'
|
||||
POSTS = PIPELINE / 'wordpress-posts.jsonl'
|
||||
ERROS = RAIZ / 'errors.md'
|
||||
AJUSTES = Path(__file__).resolve().parent / 'ajustes'
|
||||
SAIDA = RAIZ / 'descricao'
|
||||
TEXTOS = SAIDA / 'textos'
|
||||
REVISAO = SAIDA / 'revisao'
|
||||
|
||||
# 1.1 — código da entidade custodiadora. PROVISÓRIO até o CONARQ atribuir um
|
||||
# (proc. 1.1.1). Trocar aqui regenera todos os códigos de referência.
|
||||
# Formato do CODEARQ, como o AGCRJ usa: país, espaço, UF + sigla, e as partes
|
||||
# da unidade separadas por ponto — BR RJAGCRJ.SOP.NL.AVE.03.01
|
||||
PAIS = 'BR'
|
||||
ENTIDADE = 'RJXYZ'
|
||||
ENTIDADE_NOME = 'xyz — cópia digital de acervos fotográficos'
|
||||
ENTIDADE_SITE = 'https://xn--2dk.xyz/brasiliana/'
|
||||
COLECAO = 'BF'
|
||||
COLECAO_TITULO = 'Coleção Brasiliana Fotográfica (cópia digital)'
|
||||
RESPONSAVEL = 'rafapolo'
|
||||
BUCKET = 's3://brasiliana'
|
||||
|
||||
REGRAS = ('NOBRADE: Norma brasileira de descrição arquivística (CONARQ, 2006); '
|
||||
'ISAD(G) 2ª ed. (CIA, 2000); ISAAR(CPF) 2ª ed. (CIA, 2004); '
|
||||
'datas em ISO 8601-2 (EDTF); idiomas em ISO 639-2; países em ISO 3166.')
|
||||
|
||||
ORIGEM_NOME = 'Brasiliana Fotográfica'
|
||||
ORIGEM_SITE = 'https://brasilianafotografica.bn.gov.br/'
|
||||
HANDLE_URL = 'https://brasilianafotografica.bn.gov.br/brasiliana/handle/{}'
|
||||
|
||||
# Nível 2 — uma seção por instituição de origem (campo `community` do catálogo).
|
||||
# sigla → (nome autorizado, cidade)
|
||||
INSTITUICOES = {
|
||||
'Instituto Moreira Salles': ('IMS', 'Instituto Moreira Salles', 'Rio de Janeiro (RJ)'),
|
||||
'Biblioteca Nacional': ('BN', 'Biblioteca Nacional (Brasil)', 'Rio de Janeiro (RJ)'),
|
||||
'Museu Aeroespacial': ('MUSAL', 'Museu Aeroespacial', 'Rio de Janeiro (RJ)'),
|
||||
'Museu da Republica': ('MR', 'Museu da República', 'Rio de Janeiro (RJ)'),
|
||||
'Museu Historico Nacional': ('MHN', 'Museu Histórico Nacional', 'Rio de Janeiro (RJ)'),
|
||||
'Fiocruz': ('COC', 'Fundação Oswaldo Cruz. Casa de Oswaldo Cruz', 'Rio de Janeiro (RJ)'),
|
||||
'Diretoria do Patrimonio Historico e Documentacao da Marinha':
|
||||
('DPHDM', 'Diretoria do Patrimônio Histórico e Documentação da Marinha', 'Rio de Janeiro (RJ)'),
|
||||
'Arquivo Nacional': ('AN', 'Arquivo Nacional (Brasil)', 'Rio de Janeiro (RJ)'),
|
||||
'Arquivo Geral da Cidade do Rio de Janeiro':
|
||||
('AGCRJ', 'Arquivo Geral da Cidade do Rio de Janeiro', 'Rio de Janeiro (RJ)'),
|
||||
'Leibniz-Institut fuer Laenderkunde, Leipzig':
|
||||
('IFL', 'Leibniz-Institut für Länderkunde', 'Leipzig (Alemanha)'),
|
||||
'Instituto Historico e Geografico Brasileiro':
|
||||
('IHGB', 'Instituto Histórico e Geográfico Brasileiro', 'Rio de Janeiro (RJ)'),
|
||||
'Fundacao Joaquim Nabuco': ('FUNDAJ', 'Fundação Joaquim Nabuco', 'Recife (PE)'),
|
||||
'Museu Paraense Emilio Goeldi': ('MPEG', 'Museu Paraense Emílio Goeldi', 'Belém (PA)'),
|
||||
'Escola de Ciencias Sociais (FGV CPDOC)':
|
||||
('CPDOC', 'Fundação Getulio Vargas. Escola de Ciências Sociais (FGV CPDOC)', 'Rio de Janeiro (RJ)'),
|
||||
'Instituto Brasileiro de Geografia e Estatistica':
|
||||
('IBGE', 'Instituto Brasileiro de Geografia e Estatística', 'Rio de Janeiro (RJ)'),
|
||||
}
|
||||
|
||||
# 4.1 — obrigatório nos níveis 0 e 1
|
||||
ACESSO = ('Sem restrição de acesso à descrição. As cópias digitais são mantidas '
|
||||
f'para preservação em {BUCKET} e consultáveis pelo mural em {ENTIDADE_SITE}. '
|
||||
'O acesso aos originais segue as regras de cada instituição de origem '
|
||||
'(ver 5.1 em cada dossiê).')
|
||||
|
||||
|
||||
def codigo(*partes: str) -> str:
|
||||
"""BR RJXYZ, BR RJXYZ.BF, BR RJXYZ.BF.IMS.GF.12345.01 …"""
|
||||
return f'{PAIS} ' + '.'.join((ENTIDADE,) + tuple(p for p in partes if p))
|
||||
Reference in New Issue
Block a user