feat(pubmed): adicionar Object[@Type=grant] (financiamento) em ObjectList#1248
Open
Rossi-Luciano wants to merge 1 commit into
Open
feat(pubmed): adicionar Object[@Type=grant] (financiamento) em ObjectList#1248Rossi-Luciano wants to merge 1 commit into
Rossi-Luciano wants to merge 1 commit into
Conversation
…List Estende xml_pubmed_object_list, que hoje só cobre Object[@type=keyword], usando funding_group.FundingGroup.award_groups (já expõe funding-source e award-id por award-group). Para cada award-group: funding-source(s) viram Param[@name="grantor"] (concatenados com "; " quando há mais de um, ex. "FAPESP; CAPES", já que o Object do PubMed só aceita um grantor por vez); cada award-id vira um Object[@type=grant] próprio com Param[@name="id"]. acronym e country não têm fonte nos dados SciELO, ficam de fora. De quebra, corrige um bug latente: xml_pubmed_object_list criava <ObjectList> sempre que havia kwd_list, mesmo sem nenhuma keyword em inglês — podendo gerar <ObjectList/> vazio. Agora só anexa ObjectList se houver pelo menos um Object (keyword ou grant). Refs scieloorg#1226, scieloorg#1239
3 tasks
Contributor
Author
|
Validado localmente contra a DTD oficial do PubMed (
(O validador linkado na issue-mãe #1226 não serve para este formato — ver comentário em #1226.) |
This was referenced Jul 4, 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?
Estende
xml_pubmed_object_list(packtools/sps/formats/pubmed.py), que hoje só cobreObject[@Type="keyword"], para também gerarObject[@Type="grant"]a partir dos dados de financiamento do artigo, usando o model já existentefunding_group.FundingGroup.award_groups(expõefunding-sourceeaward-idpor<award-group>).Regras de mapeamento:
award-idde um<award-group>vira umObject[@Type="grant"]próprio, comParam[@Name="id"].funding-sourcedo mesmo<award-group>viramParam[@Name="grantor"]; quando há mais de um (comum nos dados SciELO — ex. financiamento conjunto FAPESP+CAPES), são concatenados com"; ", já que oObjectdo PubMed só aceita umgrantorpor vez.acronymecountry(outrosParamaceitos pelo PubMed para grants) não têm fonte nos dados SciELO e ficam de fora.De quebra, corrige um bug latente:
xml_pubmed_object_listcriava<ObjectList>sempre que havia alguma keyword no XML, mesmo que nenhuma fosse em inglês (a única condição que efetivamente gera umObject) — podendo emitir<ObjectList/>vazio. Agora só anexaObjectListse houver pelo menos umObject(keyword ou grant).Onde a revisão poderia começar?
packtools/sps/formats/pubmed.py:get_award_groups,add_grant_objects(novas), exml_pubmed_object_list(reescrita para combinar keywords + grants e só anexarObjectListquando não vazio).Como este poderia ser testado manualmente?
source .venv/bin/activate && python -m pytest tests/sps/formats/test_pubmed.py -v(49 passed: 46 originais + 3 novos).funding-sourceporaward-group):Object[@Type="grant"], o segundo comgrantor="FAPESP; CAPES".tests/samples/0034-7094-rba-69-03-0227.xml) para confirmar queObjectListcontinua só com as keywords, sem mudança de comportamento.Algum cenário de contexto que queira dar?
Parte da quebra da #1226 em sub-issues. Independente das demais.
Quais são tickets relevantes?
Closes #1239. Relacionado a #1226 (issue-mãe).
Referências
Object (Param)*,Object[@Type]sem lista fechada de valores,Param[@Name]livre — https://dtd.nlm.nih.gov/ncbi/pubmed/in/PubMed.dtd<funding-group>/<award-group>: exemplos com múltiplosfunding-sourceporaward-id