Fix improve oai pmh metadata quality for agris ap compliance#1425
Merged
gitnnolabs merged 4 commits intoscieloorg:mainfrom Apr 2, 2026
Conversation
- dc:description: {{ abs }} chamava __str__ de DocumentAbstract,
retornando "[None | en] Abstract..." em vez do texto puro.
Corrigido para {{ abs.plain_text }} com sub-elemento 'abstract'
e wrapper <element> conforme estrutura esperada pelo crosswalk.
- dc:date: object.updated (timestamp de modificação Django) era
emitido como data de publicação. Corrigido para object.pub_date
sob sub-elemento 'issued', alinhado com dc.date.issued do crosswalk.
- dc:identifier: todos os identificadores estavam sob 'none',
impedindo o crosswalk de qualificá-los por tipo. Reestruturado
com sub-elementos nomeados: 'doi' e 'uri'. Identificadores internos
(pid_v2, pid_v3) mantidos em 'none'.
- dc:rights: object.license é ForeignKey, não M2M. A chamada .all()
nunca executava, resultando em dc:rights sempre vazio.
Corrigido para acesso direto via object.license.url.
- dc:source: object.source retornava vazio para a maioria dos
registros. Substituído por construção explícita a partir de
object.journal.title e object.pub_date_year.
- dc:relation: adicionado via journal.title para indicar o periódico
de origem do artigo, conforme recomendação AGRIS AP.
- dc:contributor.author: estrutura alterada de dc.creator.none para
dc.contributor.author, alinhada com o crosswalk. Nome do autor
emitido no formato "Sobrenome, Nome" usando last_name e given_names
do modelo ContribPerson. Mantém fallback para person.names quando
last_name não está disponível.
Ref: AGRIS AP — seção 4.2 Creator
https://www.fao.org/4/ae909e/ae909e05.htm
Ref: AGRIS AP — seção 4.6 Description
Ref: AGRIS AP — seção 4.7 Date
Ref: AGRIS AP — seção 4.8 Identifier
Ref: AGRIS AP — seção 4.11 Rights
Ref: AGRIS AP — seção 4.13 Source
prepare_license: retornava o código interno "CC BY 4.0" em vez da
URL da licença Creative Commons. Refatorado para usar License.url,
que reconstrói a URL correta a partir do license_type.
prepare_creator: retornava person.names (nome completo sem inversão,
em caixa alta). O AGRIS AP exige o formato "Sobrenome, Nome" para
autores pessoais. Corrigido para construir o nome a partir dos campos
separados last_name, given_names e suffix do modelo ContribPerson.
Mantém fallback para person.names quando last_name não está disponível.
Ref: AGRIS AP — seção 4.2 Creator
https://www.fao.org/4/ae909e/ae909e05.htm
Ref: AGRIS AP — seção 4.11 Rights
A property License.url existia mas gerava URLs inválidas porque usava
license_type ("CC BY 4.0") diretamente no path da URL.
O campo license_type segue o formato "CC {CODE} {VERSION}" com
version=None (ex.: "CC BY 4.0", "CC BY-NC 4.0", "CC BY-SA 4.0").
Corrigido para parsear o formato e reconstruir a URL:
"CC BY 4.0" → https://creativecommons.org/licenses/by/4.0/
"CC BY-NC 4.0" → https://creativecommons.org/licenses/by-nc/4.0/
"CC BY-SA 4.0" → https://creativecommons.org/licenses/by-sa/4.0/
Collaborator
|
Validando ... |
Collaborator
|
PR aprovado e funcionando como esperado! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Descrição do PR
Corrige a geração de metadados OAI-PMH no SciELO Core para conformidade
com o AGRIS Application Profile. Os problemas foram identificados por análise
comparativa entre o XML interno XOAI (
item.compile) e a saídaoai_dc_agrisgerada pelo
lareferencia-oai-pmh.As correções afetam o template de compilação do registro XOAI, o índice
de busca OAI e o modelo de licença.
Arquivo 1:
article/templates/search/indexes/article/article_compile.txtCommit
Alterações por correção:
dc:description__str__com prefixo[None | en]abs.plain_text+ sub-elementoabstractdc:dateobject.updated(timestamp interno)object.pub_datesobissueddc:identifiernonedoi,uridc:rights.all()em ForeignKeyobject.license.urldiretodc:sourceobject.sourcevaziojournal.title + pub_date_yeardc:relationjournal.titledc:creatornonesem inversão de nomecontributor.authorcomSobrenome, NomeArquivo 2:
article/search_indexes.pyCommit
Alterações:
Arquivo 3:
core/models.pyCommit
Alterações:
Checklist de revisão — PR 2
rebuild_indexexecutado após alterações nosearch_indexes.pyGetRecordtestado com artigo que temcontrib_persons,licenseeabstractspopuladosdc:creatorno formatoSobrenome, Nomeconfirmado na saídadc:rightscom URL CC completa confirmada na saídadc:descriptionsem prefixo[None | en]confirmado na saídadc:datecom apenasdcterms:dateIssuedconfirmado na saídaLicense.urltestado com os três tipos (CC BY,CC BY-NC,CC BY-SA)