persNamer
persNamer: ligar a TEI ao Virtual International Authority File
O persNamer é uma ferramenta especializada em Python que simplifica a integração de dados de autoridade sobre pessoas, provenientes do VIAF (Virtual International Authority File), em documentos XML TEI. Ao converter identificadores VIAF em marcação TEI pronta a usar, o persNamer reduz consideravelmente o trabalho manual de criação de entradas estruturadas de pessoas para as edições académicas digitais.
O desafio do controlo de autoridade em TEI
As edições académicas digitais exigem muitas vezes a identificação precisa de personagens históricas, com os seus nomes normalizados e datas de vida. Manter um controlo de autoridade coerente ao longo de um projeto obriga a:
- Identificar as pessoas nos textos históricos
- Encontrar dados de autoridade a seu respeito
- Criar entradas TEI corretamente formatadas
- Garantir referências coerentes em todo o projeto
Estes passos são, por norma, manuais, demorados e propensos a incoerências.
Como funciona o persNamer
O persNamer automatiza este fluxo de trabalho:
- Obtenção dos dados VIAF: a partir de um identificador VIAF, a ferramenta recupera os dados RDF por negociação de conteúdo HTTP
- Extração da informação essencial: analisa o RDF para extrair o nome preferido, a data de nascimento e a data de morte
- Geração da marcação TEI: cria dois fragmentos XML essenciais:
- Uma entrada de ficheiro de autoridade (elemento
<person>com umxml:idgerado,<persName>,<birth>,<death>e<idno type="VIAF">) - Uma etiqueta de anotação separada (
<persName>com um atributorefque remete para a entrada de autoridade)
- Uma entrada de ficheiro de autoridade (elemento
Esta dupla saída permite aos editores manter um ficheiro de autoridade centralizado e, ao mesmo tempo, inserir facilmente etiquetas de anotação nos seus textos TEI.
Características principais
- Geração normalizada de identificadores: cria IDs XML coerentes no formato
pers-[familyname]-[givenname initial](p. ex.,pers-deteligny-c) - Análise de RDF: usa o
rdflibpara extrair informação de várias propriedades RDF (p. ex.,rdfs:label,schema:name,viaf:mainHead) - Interface de linha de comandos: execução simples, com o número VIAF como único argumento obrigatório
- Saída detalhada: fornece informação pormenorizada sobre o processamento, a par do XML final
Exemplo de utilização
python persNamer.py 314802260
Este comando produz:
<person xml:id="pers-deteligny-c">
<persName>Charles deTéligny</persName>
<birth>1535</birth>
<death>1572-08-24</death>
<idno type="VIAF">314802260</idno>
</person>
<persName ref="#pers-deteligny-c">Charles deTéligny</persName>
Aplicações nas humanidades digitais
O persNamer é particularmente útil para:
- Edições académicas digitais que exijam controlo de autoridade
- Projetos de codificação TEI que trabalhem com figuras históricas
- Iniciativas de dados ligados que liguem documentos a registos de autoridade
- Garantir a coerência em grandes corpora TEI
- Ensinar os conceitos do controlo de autoridade em cursos de humanidades digitais
Implementação
O persNamer está escrito em Python e depende de:
requestspara os pedidos HTTPrdflibpara a análise de RDFlxmlpara o tratamento de XML
O código-fonte e a documentação estão no repositório GitHub.
