Descrição do problema
GraphicValidation.validate_id() (packtools/sps/validation/graphic.py:29-52) exige @id obrigatoriamente em
<graphic> e <inline-graphic>, inclusive sobrescrevendo explicitamente o comportamento da classe base
(VisualResourceBaseValidation) que isenta elementos inline-* dessa exigência (ver docstring do método).
O relato original (scieloorg/spsvalidator#49) afirma que essa exigência é indevida, e que o SPS já teria
corrigido um erro anterior no documento que listava @id como obrigatório em <graphic>.
Ao conferir o arquivo SPS 1.10_pt.pdf (versão 1.10, última atualização em 22/05/2025), encontrei uma
inconsistência interna no próprio documento:
- Na seção dedicada "
<graphic> e <inline-graphic>: Figura", o texto ainda lista:
"Atributos obrigatórios: 1. @id 2. @xLink:href"
- Já na seção "
<supplementary-material>: Material Suplementar", o mesmo documento lista, para <graphic>
usado nesse contexto:
"Atributo obrigatório em <graphic>: 1. @xLink:href"
(sem mencionar @id)
Ou seja, dentro do mesmo arquivo, uma seção exige @id em <graphic> e outra não. Isso é compatível com a
hipótese do relato original: a correção mencionada (remoção da obrigatoriedade de @id) pode já ter sido
aplicada em parte do documento-fonte (Google Docs) mas não propagada a todas as seções nesta cópia, ou a cópia
usada nesta análise está desatualizada em relação à versão publicada.
Adicionalmente, o SPS define claramente que @id é obrigatório em <fig> e <table-wrap> (para viabilizar o
thumbnail no site) - obrigatoriedade distinta da de <graphic>/<inline-graphic> isoladamente, e que não está
em questão aqui.
Comportamento esperado (a confirmar)
Caso a versão vigente do SPS 1.10 realmente não exija @id em <graphic>/<inline-graphic> (apenas
@xlink:href):
GraphicValidation.validate_id() não deveria mais gerar erro pela ausência de @id em
<graphic>/<inline-graphic> fora de <fig>/<table-wrap>.
- Continuar exigindo
@id em <fig> e <table-wrap> (já implementado corretamente em fig.py/tablewrap.py).
Necessário antes de codar
Confirmar com a equipe SciELO/autores do SPS qual das duas seções do documento reflete a regra vigente,
idealmente checando a versão publicada mais recente (Google Docs linkado em scieloorg/spsvalidator#49), já que
a cópia usada nesta análise pode estar desatualizada.
Anexos
Trechos comparados a partir do arquivo SPS 1.10_pt.pdf (versão 1.10, última atualização em 22/05/2025),
seções "<graphic> e <inline-graphic>: Figura" e "<supplementary-material>: Material Suplementar".
Classificação (esforço / risco / relevância)
- Esforço: Baixo - a mudança de código em si é uma linha, mas depende de confirmação prévia da regra
vigente.
- Risco: Médio - depende de qual seção do SPS está correta; uma reversão precipitada tanto pode
reintroduzir falsos positivos quanto criar falsos negativos.
- Relevância: Alta -
<graphic> fora de <fig>/<table-wrap> é comum (material suplementar, abstract
gráfico etc.); se a exigência de @id realmente não procede, é o falso positivo de maior volume do lote.
Referências
Descrição do problema
GraphicValidation.validate_id()(packtools/sps/validation/graphic.py:29-52) exige@idobrigatoriamente em<graphic>e<inline-graphic>, inclusive sobrescrevendo explicitamente o comportamento da classe base(
VisualResourceBaseValidation) que isenta elementosinline-*dessa exigência (ver docstring do método).O relato original (scieloorg/spsvalidator#49) afirma que essa exigência é indevida, e que o SPS já teria
corrigido um erro anterior no documento que listava
@idcomo obrigatório em<graphic>.Ao conferir o arquivo
SPS 1.10_pt.pdf(versão 1.10, última atualização em 22/05/2025), encontrei umainconsistência interna no próprio documento:
<graphic>e<inline-graphic>: Figura", o texto ainda lista:<supplementary-material>: Material Suplementar", o mesmo documento lista, para<graphic>usado nesse contexto:
Ou seja, dentro do mesmo arquivo, uma seção exige
@idem<graphic>e outra não. Isso é compatível com ahipótese do relato original: a correção mencionada (remoção da obrigatoriedade de
@id) pode já ter sidoaplicada em parte do documento-fonte (Google Docs) mas não propagada a todas as seções nesta cópia, ou a cópia
usada nesta análise está desatualizada em relação à versão publicada.
Adicionalmente, o SPS define claramente que
@idé obrigatório em<fig>e<table-wrap>(para viabilizar othumbnail no site) - obrigatoriedade distinta da de
<graphic>/<inline-graphic>isoladamente, e que não estáem questão aqui.
Comportamento esperado (a confirmar)
Caso a versão vigente do SPS 1.10 realmente não exija
@idem<graphic>/<inline-graphic>(apenas@xlink:href):GraphicValidation.validate_id()não deveria mais gerar erro pela ausência de@idem<graphic>/<inline-graphic>fora de<fig>/<table-wrap>.@idem<fig>e<table-wrap>(já implementado corretamente emfig.py/tablewrap.py).Necessário antes de codar
Confirmar com a equipe SciELO/autores do SPS qual das duas seções do documento reflete a regra vigente,
idealmente checando a versão publicada mais recente (Google Docs linkado em scieloorg/spsvalidator#49), já que
a cópia usada nesta análise pode estar desatualizada.
Anexos
Trechos comparados a partir do arquivo
SPS 1.10_pt.pdf(versão 1.10, última atualização em 22/05/2025),seções "
<graphic>e<inline-graphic>: Figura" e "<supplementary-material>: Material Suplementar".Classificação (esforço / risco / relevância)
vigente.
reintroduzir falsos positivos quanto criar falsos negativos.
<graphic>fora de<fig>/<table-wrap>é comum (material suplementar, abstractgráfico etc.); se a exigência de
@idrealmente não procede, é o falso positivo de maior volume do lote.Referências
packtools/sps/validation/graphic.py(GraphicValidation.validate_id)