Skip to content

Validação de <related-article> rejeita combinações válidas de Carta/Resposta e Comentário/Resposta #1344

Description

@Rossi-Luciano

Descrição do problema

packtools/sps/validation/related_articles.py valida @related-article-type contra listas fixas e globais
(ALLOWED_RELATED_ARTICLE_TYPES/ALLOWED_EXT_LINK_TYPES), sem condicionar o valor esperado ao @article-type
do próprio documento nem ao papel que ele desempenha na relação (documento original, carta, resposta,
comentário). Isso faz com que combinações previstas e documentadas pelo SPS sejam rejeitadas.

O SPS 1.10 documenta explicitamente, nas seções "Carta" e "Comentário", a seguinte matriz de relações válidas
(com exemplos de XML completos para cada caso):

Documento (@article-type) <related-article related-article-type="..."> aponta para
article (documento original mencionado por uma carta) "letter"
letter "article" (documento comentado) e, se houver resposta, também "reply"
reply "letter"
article-commentary "commentary-article" (documento comentado) e, se houver resposta, também "reply"

O próprio SPS confirma que a mesma lógica se aplica a Comentário/Resposta: "A mesma lógica de relações deve
ser considerada para documentos do tipo comentário".

Cenários reais reportados em scieloorg/spsvalidator#55 mostram erro para:

  • Uma carta (@article-type="letter") com <related-article related-article-type="article"> apontando para o
    artigo comentado.
  • A mesma carta com um segundo <related-article related-article-type="reply"> apontando para a resposta.
  • O documento original com <related-article related-article-type="letter"> apontando para a carta que o
    menciona.

O caso reply -> "letter" já é aceito corretamente hoje, segundo o relato original; os demais falham.

Comportamento esperado

Tornar a validação de @related-article-type ciente do contexto: validar o valor esperado em função do
@article-type do documento atual (article/letter/reply/article-commentary), não apenas contra uma lista fixa
e global de valores permitidos.

Anexos

Trechos citados a partir do arquivo SPS 1.10_pt.pdf (versão 1.10, última atualização em 22/05/2025), seções
"Carta" (XML da Carta, XML da Carta com Resposta, XML do Documento Mencionado pela Carta, XML da Resposta para
uma Carta) e "Comentário" (estrutura análoga).

Classificação (esforço / risco / relevância)

  • Esforço: Alto - requer uma matriz de combinações válidas condicionada tanto ao @article-type do
    documento atual quanto ao @related-article-type declarado, substituindo a checagem atual contra uma lista
    global única.
  • Risco: Alto - test_related_articles.py é o maior arquivo de teste do lote (1774 linhas), sinal de que
    há muitos cenários de @article-type/@related-article-type já cobertos que podem regredir com uma mudança
    na lógica de validação.
  • Relevância: Alta - bloqueia integralmente o fluxo de publicação de Carta, Resposta e Comentário como
    documentos SPS-válidos.

Referências

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions