You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ContribRoleValidation.validate_credit() (packtools/sps/validation/article_contribs.py:1134), chamada dentro do
pipeline principal usado por xml_validator.get_validation_results, compara o texto de <role> contra o termo
CRediT em inglês esperado para o @content-type informado (expected_term.upper() == text.upper()). Quando o
texto não bate exatamente com o termo em inglês, é gerado um erro "CRediT taxonomy term".
O SPS 1.10, na seção "<role>: Papel do Autor - Taxonomia CRediT", documenta que:
O uso de taxonomia é opcional: "O periódico e/ou os autores podem usar qualquer taxonomia. SciELO Brasil
recomenda o uso da taxonomia CRediT."
Quando CRediT é usado, o vínculo formal é feito pelo @content-type (URL do papel), não pelo texto do elemento.
"A tradução dos termos para outros idiomas fica a critério do periódico e autores que desejarem utilizá-los" -
ou seja, o texto de <role> pode legitimamente estar em português/espanhol mesmo com @content-type CRediT
correto em inglês.
Isso gera falso-positivo em todo artigo que usa CRediT com o rótulo do papel traduzido, por exemplo: <role content-type="https://credit.niso.org/contributor-roles/conceptualization/">Conceituação</role>.
O mesmo trecho do SPS também estabelece duas regras que hoje não parecem cobertas:
Consistência de uso: "Ou o documento adota os termos CRediT na íntegra ou não adota" - todos os <role> de um
mesmo documento devem, ou todos ter @content-type, ou nenhum ter.
"Cada papel de autor deve ser marcado em uma tag de <role>, esta tag não deve ser usada para marcação do
conjunto de vários papéis" - um único <role> não deve concentrar múltiplos papéis.
Passos para reproduzir o problema
Validar um XML com <role content-type="https://credit.niso.org/contributor-roles/conceptualization/">Conceituação</role>.
Observar que validate_credit() emite erro "CRediT taxonomy term" porque o texto não é exatamente "Conceptualization".
Comportamento esperado
Quando @content-type estiver presente, validar apenas se a URL corresponde a um dos identificadores CRediT
(essa parte, a validação de URI, já está correta).
Não validar/restringir o conteúdo textual de <role> contra a lista fixa de termos em inglês.
Manter/implementar a validação de consistência (todo <role> do documento com @content-type, ou nenhum).
Anexos
Trecho citado a partir do arquivo SPS 1.10_pt.pdf (versão 1.10, última atualização em 22/05/2025), seção
"<role>: Papel do Autor - Taxonomia CRediT".
Ambiente utilizado
N/A (validação de XML via packtools.sps.validation.xml_validator)
Classificação (esforço / risco / relevância)
Esforço: Médio - remover a comparação de texto é simples, mas a consistência de uso de @content-type
entre <article> e <sub-article> pode exigir estender a lógica de validate_credit_consistency.
Risco: Médio - toca um validador usado por qualquer artigo com <contrib>/<role>; a suíte de testes
correspondente (test_article_contribs.py) é extensa.
Relevância: Alta - a comparação de texto contra o termo em inglês quebra qualquer artigo que use CRediT
com o rótulo do papel traduzido, um cenário comum em periódicos em português/espanhol.
Descrição do problema
ContribRoleValidation.validate_credit()(packtools/sps/validation/article_contribs.py:1134), chamada dentro dopipeline principal usado por
xml_validator.get_validation_results, compara o texto de<role>contra o termoCRediT em inglês esperado para o
@content-typeinformado (expected_term.upper() == text.upper()). Quando otexto não bate exatamente com o termo em inglês, é gerado um erro "CRediT taxonomy term".
O SPS 1.10, na seção "
<role>: Papel do Autor - Taxonomia CRediT", documenta que:recomenda o uso da taxonomia CRediT."
@content-type(URL do papel), não pelo texto do elemento.ou seja, o texto de
<role>pode legitimamente estar em português/espanhol mesmo com@content-typeCRediTcorreto em inglês.
Isso gera falso-positivo em todo artigo que usa CRediT com o rótulo do papel traduzido, por exemplo:
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/">Conceituação</role>.O mesmo trecho do SPS também estabelece duas regras que hoje não parecem cobertas:
<role>de ummesmo documento devem, ou todos ter
@content-type, ou nenhum ter.<role>, esta tag não deve ser usada para marcação doconjunto de vários papéis" - um único
<role>não deve concentrar múltiplos papéis.Passos para reproduzir o problema
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/">Conceituação</role>.validate_credit()emite erro "CRediT taxonomy term" porque o texto não é exatamente "Conceptualization".Comportamento esperado
@content-typeestiver presente, validar apenas se a URL corresponde a um dos identificadores CRediT(essa parte, a validação de URI, já está correta).
<role>contra a lista fixa de termos em inglês.<role>do documento com@content-type, ou nenhum).Anexos
Trecho citado a partir do arquivo
SPS 1.10_pt.pdf(versão 1.10, última atualização em 22/05/2025), seção"
<role>: Papel do Autor - Taxonomia CRediT".Ambiente utilizado
N/A (validação de XML via
packtools.sps.validation.xml_validator)Classificação (esforço / risco / relevância)
@content-typeentre
<article>e<sub-article>pode exigir estender a lógica devalidate_credit_consistency.<contrib>/<role>; a suíte de testescorrespondente (
test_article_contribs.py) é extensa.com o rótulo do papel traduzido, um cenário comum em periódicos em português/espanhol.
Referências
packtools/sps/validation/article_contribs.py(ContribRoleValidation.validate_credit,CreditValidation.validate_credit_consistency)