Add ref-list validations for SPS 1.10 (rules 1-14)#1135
Draft
Add ref-list validations for SPS 1.10 (rules 1-14)#1135
Conversation
- Model: Add has_element_citation, ext_link counts, date_in_citation_content_type, names_without_surname - Validation: Add validate_ref_list_presence, validate_ref_presence, validate_element_citation, validate_ext_link_count_*, validate_lpage_when_fpage, validate_size_units, validate_date_in_citation_content_type, validate_surname_in_name - Rules: Add new error levels for all new validations - Tests: 42 new tests in test_ref_list.py Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Implement validations for <ref-list> element
Add ref-list validations for SPS 1.10 (rules 1-14)
Mar 19, 2026
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.
O que esse PR faz?
Implementa 9 novas validações para
<ref-list>conforme SPS 1.10 e Critérios SciELO Brasil, atingindo 14 de 20 regras (70%). As 5 regras restantes já existiam (mixed-citation, publication-type, source, year).Novas validações:
<ref-list>em docs indexáveis (exceto correction/retraction/addendum/expression-of-concern/reviewer-report), presença de<ref>em<ref-list><element-citation>, máximo 1<ext-link>em element-citation e mixed-citation,<lpage>obrigatório quando<fpage>existe,@units="pages"em<size>,@content-type="access-date"em<date-in-citation>,<surname>obrigatório em<name>Também corrige null safety em
get_publication_type()quando<element-citation>está ausente.Onde a revisão poderia começar?
packtools/sps/validation/references.py— novos métodos emReferenceValidation(regras per-ref) eReferencesValidation(regras ref-list level).Como este poderia ser testado manualmente?
Testes automatizados:
python -m pytest tests/sps/validation/test_ref_list.py -v(42 testes).Algum cenário de contexto que queira dar?
Arquivos modificados:
packtools/sps/models/references.py— 5 novos métodos de extração de dados (has_element_citation,ext_link_count_*,date_in_citation_content_type,names_without_surname)packtools/sps/validation/references.py— 9 novos métodos de validaçãopacktools/sps/validation_rules/references_rules.json— 9 novos parâmetros de error level + lista de article types isentostests/sps/validation/test_ref_list.py— 42 novos testes (unitários + integração)tests/sps/validation/test_references.py— ajuste em 1 teste que usava índice fixo (quebrou com novas validações, agora filtra por título)Screenshots
N/A — validações backend sem componente visual.
Quais são tickets relevantes?
Criar validações para o elemento
<ref-list>Referências
Original prompt
This section details on the original issue you should resolve
<issue_title>Criar validações para o elemento </issue_title>
<issue_description>## Objetivo
Implementar validações para o elemento
<ref-list>conforme a especificação SPS 1.10 e Critérios SciELO Brasil, aumentando a conformidade de X% para 70% (14 de 20 regras).Nota: Algumas validações para
<ref-list>podem já estar parcialmente implementadas no repositório. Este Issue visa reavaliar, complementar e garantir cobertura completa das regras SPS 1.10 e Critérios SciELO Brasil.Contexto
O elemento
<ref-list>representa o conjunto de referências bibliográficas de um documento. Para SciELO Brasil, é obrigatório em todos os documentos indexáveis (exceto errata, retratação, adendo, manifestação de preocupação e parecer). Cada referência deve conter<mixed-citation>(apresentação) e<element-citation>(dados estruturados para métricas). Validações corretas garantem conformidade com critérios SciELO Brasil, presença de elementos obrigatórios, e qualidade dos metadados bibliográficos.Conformidade atual: X de 20 regras implementadas (X%)
Meta após implementação: 14 de 20 regras (70%)
Documentação SPS
Referência oficial: https://docs.google.com/document/d/1GTv4Inc2LS_AXY-ToHT3HmO66UT0VAHWJNOIqzBNSgA/edit?tab=t.0#heading=h.reflist
Regras principais conforme SPS 1.10 e Critérios SciELO Brasil:
Ocorrência:
<ref-list>aparece em<back>uma ou mais vezes<ref-list>Obrigatoriedade (Critério SciELO Brasil):
<ref-list>é obrigatório em documentos indexáveisEstrutura obrigatória:
<ref-list>deve conter pelo menos um<ref><ref>deve conter<mixed-citation>E<element-citation>Atributo obrigatório em
<element-citation>:@publication-type(obrigatório)Valores permitidos para
@publication-type:book- Livros, capítulos de livrosconfproc- Atas, anais, proceedings de eventosdata- Dados de pesquisa (datasets)database- Bases de dadosjournal- Artigos de periódicos científicoslegal-doc- Normas jurídicasletter- Cartas e comunicações pessoaisnewspaper- Artigos de jornalpatent- Patentespreprint- Preprintsreport- Relatórios técnicossoftware- Softwarethesis- Monografias, dissertações, teseswebpage- Sites, blogsother- Tipos não previstosRestrições em
<element-citation>:<ext-link><comment>abarcando apenas<ext-link><italic>ou<bold>Restrições em
<mixed-citation>:<ext-link><bold>,<italic>,<sup>,<sub>Elementos esperados em
<element-citation>:<source>- Título da fonte (esperado em todas as referências)<year>- Ano (esperado em todas as referências)Regras de elementos específicos:
<fpage>,<lpage>é obrigatório<size>deve ter@units="pages"<date-in-citation>deve ter@content-type="access-date"<person-group>deve ter@person-group-typequando presente<name>dentro de<person-group>deve ter<surname>Regras a Implementar
P0 – Críticas (implementar obrigatoriamente)
<ref-list>em documentos indexáveis<ref-list>é obrigatório em<back>para documentos indexáveis (exceto errata, retratação, adendo, manifestação de preocupação, parecer)<ref><ref-list>deve conter pelo menos um elemento<ref><mixed-citation><ref>deve conter<mixed-citation><element-citation><ref>deve conter<element-citation>@publication-type@publication-typeé obrigatório em<element-citation>@publication-type@publication-typedeve estar na lista de valores permitidos<ext-link>em<element-citation><ext-link>em<element-citation><ext-link>em<mixed-citation><ext-link>em<mixed-citation>P1 – Importantes (implementar se possível)
📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.