- 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
73 lines
3.7 KiB
Python
73 lines
3.7 KiB
Python
"""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))
|