Contexto
O Biodiversity Heritage Library (BHL) é a maior biblioteca digital de acesso aberto para literatura de biodiversidade, operando como consórcio mundial de bibliotecas de história natural. O BHL utiliza o protocolo OAI-PMH com metadados no formato MODS 3.8 para harvesting e incorporação de conteúdo.
Atualmente, o SciELO expõe metadados via OAI-PMH utilizando transformação XSLT (arquivo mods.xsl) que converte metadados Dublin Core em MODS. Esta transformação foi originalmente desenvolvida pelo DSpace @ Lyncode e apresenta implementação parcial dos elementos MODS.
Para que artigos científicos do SciELO possam ser incorporados ao BHL via harvesting OAI-PMH, é necessário adequar a transformação MODS aos padrões utilizados pelo BHL.
Problema
O arquivo mods.xsl atual implementa apenas 35% dos elementos MODS utilizados pelo BHL, resultando em:
- Perda de contexto de publicação (falta hierarquia periódico/volume/número)
- Impossibilidade de citação completa dos artigos
- Perda de informações de localização e acesso
- Falta de papéis de contribuidores (author, editor, etc.)
- Ausência de metadados de autoridade e vocabulários controlados
Objetivo
Implementar elementos MODS faltantes para atingir compatibilidade mínima de 90% com o padrão BHL, priorizando elementos críticos para descoberta, identificação e citação de artigos científicos.
Padrão MODS do BHL
Referências Oficiais
Versão MODS
- BHL utiliza: MODS 3.8
- Arquivo atual: MODS 3.1 (linha 20 do mods.xsl)
Elementos MODS Utilizados pelo BHL
Categorias Principais
- Identificação e Título (titleInfo)
- Autoria e Responsabilidade (name)
- Tipo e Gênero (typeOfResource, genre)
- Publicação e Origem (originInfo)
- Idioma (language)
- Descrição (abstract, note)
- Assuntos (subject)
- Classificação (classification)
- Relacionamentos (relatedItem)
- Identificadores (identifier)
- Localização (location)
- Acesso e Direitos (accessCondition)
- Metadados do Registro (recordInfo)
Status Atual da Implementação
Elementos Já Implementados
| Elemento |
Qualidade |
Observações |
mods:titleInfo/mods:title |
Adequado |
Implementado corretamente |
mods:name/mods:namePart |
Parcial |
Falta estrutura de roles |
mods:abstract |
Adequado |
Implementado corretamente |
mods:identifier |
Adequado |
Captura tipos dinamicamente |
mods:originInfo/mods:dateIssued |
Parcial |
Falta keyDate e outros elementos |
mods:language/mods:languageTerm |
Parcial |
Falta atributos type e authority |
mods:subject/mods:topic |
Parcial |
Falta authority e outros tipos |
mods:accessCondition |
Parcial |
Falta suporte a xlink:href |
mods:genre |
Parcial |
Falta atributo authority |
Problemas Identificados
- Erro de mapeamento (linhas 26-39):
dateAvailable e dateAccessioned estão invertidos
- Código duplicado (linhas 63-68): Lógica repetida para accessCondition
- Versão desatualizada: Schema MODS 3.1 ao invés de 3.8
Elementos Críticos Faltantes
Prioridade 1 - CRÍTICO
1. relatedItem type="host" com part
Importância: CRÍTICA - Sem este elemento, artigos não podem ser citados corretamente.
Descrição: Identifica o periódico host, volume, número e paginação do artigo.
Estrutura esperada:
<mods:relatedItem type="host">
<mods:titleInfo>
<mods:title>Revista Brasileira de Botânica</mods:title>
</mods:titleInfo>
<mods:identifier type="issn">0100-8404</mods:identifier>
<mods:originInfo>
<mods:publisher>Sociedade Botânica do Brasil</mods:publisher>
</mods:originInfo>
<mods:part>
<mods:detail type="volume">
<mods:number>45</mods:number>
</mods:detail>
<mods:detail type="issue">
<mods:number>3</mods:number>
</mods:detail>
<mods:extent unit="page">
<mods:start>234</mods:start>
<mods:end>245</mods:end>
</mods:extent>
<mods:date>2022</mods:date>
</mods:part>
</mods:relatedItem>
Mapeamento proposto:
dc.relation.ispartof → mods:relatedItem/mods:titleInfo/mods:title
dc.source → fallback para título do periódico
dc.citation.volume → mods:relatedItem/mods:part/mods:detail[@type='volume']/mods:number
dc.citation.issue → mods:relatedItem/mods:part/mods:detail[@type='issue']/mods:number
dc.citation.spage → mods:relatedItem/mods:part/mods:extent/mods:start
dc.citation.epage → mods:relatedItem/mods:part/mods:extent/mods:end
dc.identifier.issn → mods:relatedItem/mods:identifier[@type='issn']
dc.publisher → mods:relatedItem/mods:originInfo/mods:publisher
2. name com role
Importância: CRÍTICA - Distinguir autores de editores e outros contribuidores.
Estrutura esperada:
<mods:name type="personal">
<mods:namePart>Silva, João da</mods:namePart>
<mods:role>
<mods:roleTerm type="text" authority="marcrelator">author</mods:roleTerm>
</mods:role>
</mods:name>
Mapeamento proposto:
dc.contributor.author → mods:name + mods:role[author]
dc.contributor.editor → mods:name + mods:role[editor]
Valores comuns de roleTerm:
- author
- editor
- translator
- contributor
3. typeOfResource
Importância: ALTA - Identifica o tipo de recurso.
Estrutura esperada:
<mods:typeOfResource>text</mods:typeOfResource>
Valor fixo: Para artigos científicos, sempre "text"
4. location com url
Importância: ALTA - Link de acesso ao artigo.
Estrutura esperada:
<mods:location>
<mods:url usage="primary display" access="object in context">
https://www.scielo.br/j/rbbot/a/xyz123/
</mods:url>
<mods:physicalLocation>SciELO Brazil</mods:physicalLocation>
</mods:location>
Mapeamento proposto:
dc.identifier.uri → mods:location/mods:url
Prioridade 2 - IMPORTANTE
5. genre com authority
Estrutura esperada:
<mods:genre authority="marcgt">article</mods:genre>
Mapeamento proposto:
dc.type = "research-article" → <mods:genre authority="marcgt">article</mods:genre>
dc.type = "review-article" → <mods:genre authority="marcgt">review</mods:genre>
dc.type = "editorial" → <mods:genre authority="marcgt">editorial</mods:genre>
6. language com atributos
Estrutura esperada:
<mods:language>
<mods:languageTerm type="code" authority="iso639-2b">por</mods:languageTerm>
</mods:language>
Modificação necessária: Adicionar atributos type="code" e authority="iso639-2b"
7. subject geográfico e temporal
Estrutura esperada:
<mods:subject>
<mods:geographic>Brazil</mods:geographic>
</mods:subject>
<mods:subject>
<mods:temporal encoding="w3cdtf">2020-2022</mods:temporal>
</mods:subject>
Mapeamento proposto:
dc.coverage.spatial → mods:subject/mods:geographic
dc.coverage.temporal → mods:subject/mods:temporal
8. accessCondition com xlink
Estrutura esperada:
<mods:accessCondition type="use and reproduction"
xlink:href="http://creativecommons.org/licenses/by/4.0/">
Creative Commons Attribution 4.0 International
</mods:accessCondition>
Modificação necessária: Adicionar namespace xlink e atributo href quando valor contém URL
Prioridade 3 - RECOMENDADO
9. recordInfo
Estrutura esperada:
<mods:recordInfo>
<mods:recordContentSource>SciELO Brazil</mods:recordContentSource>
<mods:recordCreationDate encoding="w3cdtf">2022-03-15</mods:recordCreationDate>
<mods:recordChangeDate encoding="w3cdtf">2025-12-10</mods:recordChangeDate>
<mods:recordIdentifier>S0100-84042022000300001</mods:recordIdentifier>
<mods:languageOfCataloging>
<mods:languageTerm type="code" authority="iso639-2b">por</mods:languageTerm>
</mods:languageOfCataloging>
</mods:recordInfo>
Mapeamento proposto:
dc.date.accessioned → mods:recordCreationDate
dc.date.available → mods:recordChangeDate
dc.identifier.uri → mods:recordIdentifier
10. note
Estrutura esperada:
<mods:note type="funding">Funded by FAPESP grant 2020/12345-0</mods:note>
Mapeamento proposto:
dc.description.sponsorship → mods:note[@type='funding']
dc.description (não abstract) → mods:note
11. subject com authority
Estrutura esperada:
<mods:subject authority="mesh">
<mods:topic>Diabetes Mellitus</mods:topic>
</mods:subject>
Mapeamento proposto:
dc.subject.mesh → mods:subject[@authority='mesh']
dc.subject.decs → mods:subject[@authority='decs']
12. originInfo completo
Estrutura esperada:
<mods:originInfo>
<mods:dateIssued encoding="iso8601" keyDate="yes">2022-09</mods:dateIssued>
</mods:originInfo>
Modificação necessária: Adicionar atributo keyDate="yes" ao dateIssued
13. name com afiliação e ORCID
Estrutura esperada:
<mods:name type="personal">
<mods:namePart>Silva, Maria</mods:namePart>
<mods:affiliation>Universidade de São Paulo</mods:affiliation>
<mods:nameIdentifier type="orcid">0000-0001-2345-6789</mods:nameIdentifier>
<mods:role>
<mods:roleTerm type="text" authority="marcrelator">author</mods:roleTerm>
</mods:role>
</mods:name>
Mapeamento proposto (se campos disponíveis no DSpace):
- Estrutura de autor com afiliação em subcampo
- ORCID se disponível em metadado específico
Elementos Não Aplicáveis
Os seguintes elementos utilizados pelo BHL não se aplicam a artigos científicos digitais do SciELO e podem ser omitidos:
physicalDescription/form - artigos são born digital
physicalDescription/extent - páginas já estão em relatedItem/part
physicalDescription/digitalOrigin - sempre "born digital"
originInfo/place - local de publicação é do periódico
originInfo/dateCreated - data de publicação é suficiente
originInfo/copyrightDate - raramente diferente de dateIssued
classification - pouco usado para artigos individuais
part no nível do artigo - informação vai em relatedItem/part
Correções Necessárias
1. Atualizar versão do schema MODS
Linha 20 atual:
xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-1.xsd"
Modificação:
xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-8.xsd"
version="3.8"
2. Corrigir erro de mapeamento de datas
Linhas 26-39 atuais: dateAvailable e dateAccessioned estão invertidos
Correção:
- Linha 28:
mods:dateAvailable deve vir de dc.date.available (não accessioned)
- Linha 35:
mods:dateAccessioned deve vir de dc.date.accessioned (não available)
3. Remover código duplicado
Linhas 63-68: Lógica duplicada para accessCondition pode ser consolidada
4. Adicionar namespace xlink
Adicionar na declaração do stylesheet:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:doc="http://www.lyncode.com/xoai"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.0">
Tarefas
Fase 1 - Elementos Críticos
Fase 2 - Elementos Importantes
Fase 3 - Melhorias
Fase 4 - Validação
Impacto Esperado
Completude MODS
- Atual: 35% dos elementos BHL (11 de 31)
- Após Fase 1: 70% (13 de 19 elementos aplicáveis a artigos)
- Após Fase 2: 90% (17 de 19 elementos aplicáveis)
- Após Fase 3: 95% (18 de 19 elementos aplicáveis)
Benefícios
- Artigos SciELO poderão ser harvested pelo BHL
- Citações completas com periódico/volume/número/páginas
- Melhor descoberta através de metadados ricos
- Interoperabilidade com outros repositórios que usam MODS
- Conformidade com padrões internacionais de bibliotecas digitais
Referências Técnicas
Documentação MODS
Documentação BHL
Vocabulários Controlados
Exemplo Completo
Registro MODS Completo Esperado
<mods:mods xmlns:mods="http://www.loc.gov/mods/v3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xlink="http://www.w3.org/1999/xlink"
xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-8.xsd"
version="3.8">
<mods:titleInfo>
<mods:title>Diversidade de aves em fragmentos de Mata Atlântica no Estado de São Paulo</mods:title>
</mods:titleInfo>
<mods:name type="personal">
<mods:namePart>Silva, João da</mods:namePart>
<mods:affiliation>Universidade de São Paulo, Instituto de Biociências</mods:affiliation>
<mods:nameIdentifier type="orcid">0000-0001-2345-6789</mods:nameIdentifier>
<mods:role>
<mods:roleTerm type="text" authority="marcrelator">author</mods:roleTerm>
</mods:role>
</mods:name>
<mods:name type="personal">
<mods:namePart>Santos, Maria Fernanda</mods:namePart>
<mods:affiliation>UNICAMP, Departamento de Zoologia</mods:affiliation>
<mods:role>
<mods:roleTerm type="text" authority="marcrelator">author</mods:roleTerm>
</mods:role>
</mods:name>
<mods:typeOfResource>text</mods:typeOfResource>
<mods:genre authority="marcgt">article</mods:genre>
<mods:originInfo>
<mods:dateIssued encoding="iso8601" keyDate="yes">2022-09</mods:dateIssued>
</mods:originInfo>
<mods:language>
<mods:languageTerm type="code" authority="iso639-2b">por</mods:languageTerm>
</mods:language>
<mods:abstract>
Este estudo avaliou a diversidade de aves em três fragmentos de Mata Atlântica
localizados no interior do Estado de São Paulo. Foram registradas 145 espécies
pertencentes a 42 famílias durante o período de amostragem de 12 meses.
</mods:abstract>
<mods:subject authority="lcsh">
<mods:topic>Biodiversity</mods:topic>
</mods:subject>
<mods:subject authority="lcsh">
<mods:topic>Birds</mods:topic>
</mods:subject>
<mods:subject>
<mods:geographic>São Paulo (State)</mods:geographic>
</mods:subject>
<mods:subject>
<mods:geographic>Atlantic Forest</mods:geographic>
</mods:subject>
<mods:subject>
<mods:temporal encoding="w3cdtf">2020-2021</mods:temporal>
</mods:subject>
<mods:relatedItem type="host">
<mods:titleInfo>
<mods:title>Revista Brasileira de Ornitologia</mods:title>
</mods:titleInfo>
<mods:identifier type="issn">0103-5657</mods:identifier>
<mods:identifier type="issn-e">1807-0205</mods:identifier>
<mods:originInfo>
<mods:publisher>Sociedade Brasileira de Ornitologia</mods:publisher>
</mods:originInfo>
<mods:part>
<mods:detail type="volume">
<mods:number>30</mods:number>
</mods:detail>
<mods:detail type="issue">
<mods:number>3</mods:number>
</mods:detail>
<mods:extent unit="page">
<mods:start>145</mods:start>
<mods:end>158</mods:end>
</mods:extent>
<mods:date>2022</mods:date>
</mods:part>
</mods:relatedItem>
<mods:identifier type="doi">10.1590/S0103-56572022000300001</mods:identifier>
<mods:identifier type="uri">https://www.scielo.br/j/rbori/a/xyz123/</mods:identifier>
<mods:location>
<mods:url usage="primary display" access="object in context">
https://www.scielo.br/j/rbori/a/xyz123/
</mods:url>
<mods:physicalLocation>SciELO Brazil</mods:physicalLocation>
</mods:location>
<mods:accessCondition type="use and reproduction"
xlink:href="http://creativecommons.org/licenses/by/4.0/">
This work is licensed under a Creative Commons Attribution 4.0 International License
</mods:accessCondition>
<mods:note type="funding">
Financiamento: Fundação de Amparo à Pesquisa do Estado de São Paulo - FAPESP
(Processo 2019/12345-0)
</mods:note>
<mods:recordInfo>
<mods:recordContentSource>SciELO Brazil</mods:recordContentSource>
<mods:recordCreationDate encoding="w3cdtf">2022-09-15</mods:recordCreationDate>
<mods:recordChangeDate encoding="w3cdtf">2025-12-10</mods:recordChangeDate>
<mods:recordIdentifier>S0103-56572022000300001</mods:recordIdentifier>
<mods:languageOfCataloging>
<mods:languageTerm type="code" authority="iso639-2b">por</mods:languageTerm>
</mods:languageOfCataloging>
</mods:recordInfo>
</mods:mods>
Observações Finais
- A implementação deve manter compatibilidade com o formato interno do DSpace/XOAI
- Alguns mapeamentos dependem da disponibilidade de campos específicos no Dublin Core
- Priorizar Fase 1 (elementos críticos) para viabilizar harvesting pelo BHL
- Testes devem incluir validação contra schema MODS 3.8 oficial
- Documentar mapeamentos não óbvios para manutenção futura
Nota sobre Preparação desta ISSUE
A análise técnica, estruturação e documentação desta ISSUE foram desenvolvidas com assistência de inteligência artificial (Claude, Anthropic). A análise baseou-se em:
- Documentação oficial do BHL disponível publicamente
- Especificações do padrão MODS 3.8 da Library of Congress
- Análise do arquivo
mods.xsl atual do repositório
- Comparação com implementações de referência do BHL
Todas as referências, mapeamentos e recomendações técnicas foram verificadas contra fontes oficiais e devem ser validadas durante a implementação.
Contexto
O Biodiversity Heritage Library (BHL) é a maior biblioteca digital de acesso aberto para literatura de biodiversidade, operando como consórcio mundial de bibliotecas de história natural. O BHL utiliza o protocolo OAI-PMH com metadados no formato MODS 3.8 para harvesting e incorporação de conteúdo.
Atualmente, o SciELO expõe metadados via OAI-PMH utilizando transformação XSLT (arquivo
mods.xsl) que converte metadados Dublin Core em MODS. Esta transformação foi originalmente desenvolvida pelo DSpace @ Lyncode e apresenta implementação parcial dos elementos MODS.Para que artigos científicos do SciELO possam ser incorporados ao BHL via harvesting OAI-PMH, é necessário adequar a transformação MODS aos padrões utilizados pelo BHL.
Problema
O arquivo
mods.xslatual implementa apenas 35% dos elementos MODS utilizados pelo BHL, resultando em:Objetivo
Implementar elementos MODS faltantes para atingir compatibilidade mínima de 90% com o padrão BHL, priorizando elementos críticos para descoberta, identificação e citação de artigos científicos.
Padrão MODS do BHL
Referências Oficiais
Versão MODS
Elementos MODS Utilizados pelo BHL
Categorias Principais
Status Atual da Implementação
Elementos Já Implementados
mods:titleInfo/mods:titlemods:name/mods:namePartmods:abstractmods:identifiermods:originInfo/mods:dateIssuedmods:language/mods:languageTermmods:subject/mods:topicmods:accessConditionmods:genreProblemas Identificados
dateAvailableedateAccessionedestão invertidosElementos Críticos Faltantes
Prioridade 1 - CRÍTICO
1. relatedItem type="host" com part
Importância: CRÍTICA - Sem este elemento, artigos não podem ser citados corretamente.
Descrição: Identifica o periódico host, volume, número e paginação do artigo.
Estrutura esperada:
Mapeamento proposto:
dc.relation.ispartof→mods:relatedItem/mods:titleInfo/mods:titledc.source→ fallback para título do periódicodc.citation.volume→mods:relatedItem/mods:part/mods:detail[@type='volume']/mods:numberdc.citation.issue→mods:relatedItem/mods:part/mods:detail[@type='issue']/mods:numberdc.citation.spage→mods:relatedItem/mods:part/mods:extent/mods:startdc.citation.epage→mods:relatedItem/mods:part/mods:extent/mods:enddc.identifier.issn→mods:relatedItem/mods:identifier[@type='issn']dc.publisher→mods:relatedItem/mods:originInfo/mods:publisher2. name com role
Importância: CRÍTICA - Distinguir autores de editores e outros contribuidores.
Estrutura esperada:
Mapeamento proposto:
dc.contributor.author→mods:name+mods:role[author]dc.contributor.editor→mods:name+mods:role[editor]Valores comuns de roleTerm:
3. typeOfResource
Importância: ALTA - Identifica o tipo de recurso.
Estrutura esperada:
Valor fixo: Para artigos científicos, sempre "text"
4. location com url
Importância: ALTA - Link de acesso ao artigo.
Estrutura esperada:
Mapeamento proposto:
dc.identifier.uri→mods:location/mods:urlPrioridade 2 - IMPORTANTE
5. genre com authority
Estrutura esperada:
Mapeamento proposto:
dc.type= "research-article" →<mods:genre authority="marcgt">article</mods:genre>dc.type= "review-article" →<mods:genre authority="marcgt">review</mods:genre>dc.type= "editorial" →<mods:genre authority="marcgt">editorial</mods:genre>6. language com atributos
Estrutura esperada:
Modificação necessária: Adicionar atributos
type="code"eauthority="iso639-2b"7. subject geográfico e temporal
Estrutura esperada:
Mapeamento proposto:
dc.coverage.spatial→mods:subject/mods:geographicdc.coverage.temporal→mods:subject/mods:temporal8. accessCondition com xlink
Estrutura esperada:
Modificação necessária: Adicionar namespace xlink e atributo href quando valor contém URL
Prioridade 3 - RECOMENDADO
9. recordInfo
Estrutura esperada:
Mapeamento proposto:
dc.date.accessioned→mods:recordCreationDatedc.date.available→mods:recordChangeDatedc.identifier.uri→mods:recordIdentifier10. note
Estrutura esperada:
Mapeamento proposto:
dc.description.sponsorship→mods:note[@type='funding']dc.description(não abstract) →mods:note11. subject com authority
Estrutura esperada:
Mapeamento proposto:
dc.subject.mesh→mods:subject[@authority='mesh']dc.subject.decs→mods:subject[@authority='decs']12. originInfo completo
Estrutura esperada:
Modificação necessária: Adicionar atributo
keyDate="yes"ao dateIssued13. name com afiliação e ORCID
Estrutura esperada:
Mapeamento proposto (se campos disponíveis no DSpace):
Elementos Não Aplicáveis
Os seguintes elementos utilizados pelo BHL não se aplicam a artigos científicos digitais do SciELO e podem ser omitidos:
physicalDescription/form- artigos são born digitalphysicalDescription/extent- páginas já estão em relatedItem/partphysicalDescription/digitalOrigin- sempre "born digital"originInfo/place- local de publicação é do periódicooriginInfo/dateCreated- data de publicação é suficienteoriginInfo/copyrightDate- raramente diferente de dateIssuedclassification- pouco usado para artigos individuaispartno nível do artigo - informação vai em relatedItem/partCorreções Necessárias
1. Atualizar versão do schema MODS
Linha 20 atual:
Modificação:
2. Corrigir erro de mapeamento de datas
Linhas 26-39 atuais: dateAvailable e dateAccessioned estão invertidos
Correção:
mods:dateAvailabledeve vir dedc.date.available(não accessioned)mods:dateAccessioneddeve vir dedc.date.accessioned(não available)3. Remover código duplicado
Linhas 63-68: Lógica duplicada para accessCondition pode ser consolidada
4. Adicionar namespace xlink
Adicionar na declaração do stylesheet:
Tarefas
Fase 1 - Elementos Críticos
relatedItem[@type='host']compartcompletoroleemnamepara autores e editorestypeOfResourcelocationcomurlFase 2 - Elementos Importantes
authority="marcgt"emgenretypeeauthorityemlanguagesubject/geographicesubject/temporalxlink:hrefemaccessConditionquando aplicávelkeyDate="yes"emdateIssuedFase 3 - Melhorias
recordInfocompletonotepara financiamento e outras notasauthorityemsubjectaffiliationenameIdentifieremnameFase 4 - Validação
Impacto Esperado
Completude MODS
Benefícios
Referências Técnicas
Documentação MODS
Documentação BHL
Vocabulários Controlados
Exemplo Completo
Registro MODS Completo Esperado
Observações Finais
Nota sobre Preparação desta ISSUE
A análise técnica, estruturação e documentação desta ISSUE foram desenvolvidas com assistência de inteligência artificial (Claude, Anthropic). A análise baseou-se em:
mods.xslatual do repositórioTodas as referências, mapeamentos e recomendações técnicas foram verificadas contra fontes oficiais e devem ser validadas durante a implementação.