Skip to content

Adiciona IsisScript sci_getrecord para obter metadados de documento SciELO (e refs citadas)#736

Merged
robertatakenaka merged 31 commits intoscieloorg:masterfrom
rafaelpezzuto:feat1-sci_get_record
May 18, 2021
Merged

Adiciona IsisScript sci_getrecord para obter metadados de documento SciELO (e refs citadas)#736
robertatakenaka merged 31 commits intoscieloorg:masterfrom
rafaelpezzuto:feat1-sci_get_record

Conversation

@rafaelpezzuto
Copy link
Copy Markdown
Contributor

@rafaelpezzuto rafaelpezzuto commented May 17, 2021

O que esse PR faz?

Cria o IsisScript sci_getrecord.xis com base no script sci_arttext. O script novo é responsável por retornar, além das informações já retornáveis pelo sci_arttext, também dados relacionados a referências citadas. Atenção especial foi dada aos campos relacionados a refs. citadas dos tipos link, patente, tese, livro e conferência.

Onde a revisão poderia começar?

Por commits.

Como este poderia ser testado manualmente?

  1. Instalar instância da aplicação SciELO Metodologia
  2. Copiar o arquivo sci_getrecord.xis para a pasta scielo/cgi-bin/ScieloXML apontada pelo SciELO Metodologia
  3. Trocar bases ISIS title, issue, newissue e artigo para versões que contenham registros de citação dos tipos "patente", "link", "book", "conference" e "journal".
  4. Acessar via URL o novo IsisScript por meio de cgi-bin/wxis.exe?IsisScript=ScieloXML/sci_getrecord.xis&pid={PID}&PATH_TRANSLATED=../htdocs em que {PID} é o código PID do documento SciELO a ser consultado
  5. Verificar que os campos novos mapeados para referências citadas são apresentados corretamente.

Algum cenário de contexto que queira dar?

Este PR é parte de uma tarefa maior que consiste em criar um novo prefixo de metadados OAI-PMH. É preciso que os sites clássicos disponibilizem mais informações em relação aos seus documentos. O novo IsisScript é capaz de resolver essa parte da tarefa. A etapa seguinte é criar o arquivo de transformação XSL que coleta dados do novo IsisScript e os transformam em uma saída XML de interesse.

Screenshots

Referência relacionada à conferência
image

Referência relacionada à patente
image

Referência relacionada à tese ou dissertação
image

Referência relacionada a livro
image

Referência relacionada a sofware
image

Quais são tickets relevantes?

#735

Referências

N/A

The new IsisScript sci_getrecord.xis will not get the article's
fulltext. Another script, possible named sci_getfulltext.xis, will be
responsible for doing this task.
The idea is to adopt the same coding style all along the code
@rafaelpezzuto rafaelpezzuto added the enhancement New feature or request label May 17, 2021
<do task="search">
<parm name="db">ARTIGO</parm>
<parm name="expression"><pft>|R=|v4001^p</pft></parm>
<parm name="expression"><pft>|R=|v4001^p|$|</pft></parm>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

se preferir inserir um comentário aqui:

<!-- obtém os registros de referências com a chave `R=<pid>$` -->

lembra que o $ seria o equivalente a qualquer coisa; v4001^p é o pid.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feito

if p(v65) then '<YEAR_REFERENCE><![CDATA[',v65*0.4,']]></YEAR_REFERENCE>' fi
if p(v37) then '<URL_REFERENCE><![CDATA[',v37^*,']]></URL_REFERENCE>' fi
if p(v880) then '<PID_REFERENCE><![CDATA[',v880,']]></PID_REFERENCE>' fi
'<REFERENCE NUM="',v118,'">'
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

esta linha não deveria estar na linha 211?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sim.

(|<ORGNAME><![CDATA[|v17^*|]]></ORGNAME>|),
'</AUTHORS_REFERENCE>'
fi

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

este trecho cria uma variável (campo v9070) mas não está sendo usado. E, a gente pode melhorar isso.

,'~')

if p(v18) or p(v30) then
'<SOURCE_REFERENCE LANG="',v18^l,'" TYPE="',v9070,'"><![CDATA[',v18^*,v30,']]></SOURCE_REFERENCE>',
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah ok, o uso de v9070 está aqui.

<display>
<pft>
if p(v880) then '<PID_REFERENCE><![CDATA[',v880,']]></PID_REFERENCE>' fi
'<REFERENCE NUM="',v118,'">'
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agora sim, no lugar certo

,|<LINK_ACCESS_DATE_REFERENCE><![CDATA[|v110|]]></LINK_ACCESS_DATE_REFERENCE>|,

,|<CONFERENCE_SPONSOR_REFERENCE><![CDATA[|v52^*|]]></CONFERENCE_SPONSOR_REFERENCE>|,
,|<CONFERENCE_NAME_REFERENCE NUM="|v53^n|"><![CDATA[|v53^*|]]></CONFERENCE_NAME_REFERENCE>|,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aquela sintaxe com pipes e campo, só funciona com apenas 1 campo.
Neste caso aí, melhor vc fazer assim:

,if p(v53ˆn) then
,|<CONFERENCE_NAME_REFERENCE NUM="|v53^n|">|,
,|<![CDATA[|v53^*|]]></CONFERENCE_NAME_REFERENCE>|,
,else,
,|<CONFERENCE_NAME_REFERENCE><![CDATA[|v53^*|]]></CONFERENCE_NAME_REFERENCE>|,
,fi,


if p(v94) then
'<AUTHORS_REFERENCE TYPE="94">',
(
'<AUTHOR LANG_OR_ROLE="'v94^r'">'
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

observação: o uso do apostrofe aqui está correto. Só para te ensinar, ele tem o mesmo efeito do pipe, se vc colar no campo. Ou seja, se o campo não existir, não imprime o texto da lateral. No entanto, se vc separar o campo e o texto com vírgulas, o texto será impresso existindo ou não o campo.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grato.


,|<SERIE_REFERENCE><![CDATA[|v25|]]></SERIE_REFERENCE>|,

,|<EXTENT_REFERENCE><![CDATA[|v20|]]></EXTENT_REFERENCE>|,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

este campo é a extensão do documento por exemplo uma tese tem 300pp (300 páginas)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modifiquei um pouco pois percebi que em alguns casos há o subcampo ^u que indica que tipo de dado está no campo extent. Normalmente ^u = "pages".

Comment on lines +308 to +309
,|<CONFERENCE_NAME_REFERENCE><![CDATA[|v53^*|]]></CONFERENCE_NAME_REFERENCE>|,
,|<CONFERENCE_EDITION_REFERENCE><![CDATA[|v53^n|]]></CONFERENCE_EDITION_REFERENCE>|,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fica melhor

@robertatakenaka robertatakenaka merged commit 763417c into scieloorg:master May 18, 2021
@rafaelpezzuto rafaelpezzuto deleted the feat1-sci_get_record branch May 21, 2021 15:00
robertatakenaka added a commit that referenced this pull request Dec 13, 2024
* Aplicativo para incluir DOI nos registros h e f de uma data bases
Cria o módulo cisis e testes para gerar comandos para atualizar uma dada base com dados de DOI

* Melhorias no código e nos testes
Remove a restricao de versao do python

* Correcoes solicitadas que faltaram

* Altera exibição de ISSN no abstract e no como citar do artigo

Exibe prioritariamente o ISSN online. Caso não exista, exibe o que
existir em `ISSUE_ISSN`.

* Altera exibição de ISSN no abstract e no como citar do artigo

Exibe prioritariamente o ISSN online. Caso não exista, exibe o que
existir em `ISSUE_ISSN`.

* Atualiza version overview

* Considerar a formatação "italic" nas palavras-chave

* Ajusta o script para identificar o arquivo de configuração baseado na instância em que está instalado

* Atualiza indicadores H do Google para o ano 2020

* Atualiza versionOverview para versão 5.43

* Mescla conteúdos de v5.43 e v5.42

A versão v5.42 ainda não havia sido lançada, e portanto é a próxima.

* Coloca o conteúdo de `<citation_title/>` dentro de CDATA para que o XML da página não quebre

* Update versionOverview.txt

* Adiciona IsisScript sci_getrecord para obter metadados de documento SciELO (e refs citadas) (#736)

* Copy sci_arttext.xis to sci_getrecord.xis (a new IsisScript)

* Remove fulltext

The new IsisScript sci_getrecord.xis will not get the article's
fulltext. Another script, possible named sci_getfulltext.xis, will be
responsible for doing this task.

* Remove an unnecessary jump

* Add $ to the pft expression

* Add reference number

* Add param language to title_reference

* Fix field authors_reference

* Add a proc to detect the references' type

* Add param lang to field source_reference

* Change if instruction to ,||, instruction

The idea is to adopt the same coding style all along the code

* Add ISSN, ISBN, PID and DOI fields (concerning references)

* Add access and link access date fields (concerning references)

* Add conference fields (concerning references)

SPONSOR
NAME
DATE
ADDRESS

* Add edition field (concerning references)

* Add thesis fields (concerning references)

* Add patent fields (concerning references)

* Add issue fields (concerning references)

* Add serie field (concerning references)

* Add publisher fields (concerning references)

* Add sponsor, editor and comment fields (concerning references)

* Add accepted_date, reviewed_date and received_date of a article

* Add author of type translator

* Add field version (concerning software references)

* Add field extent (number of pages or volumes of a reference)

* Add fields related to volume information (of a book or monography)

* Split conference name into two fields (name and edition)

* Fix country information of a reference (add ^*)

* Add subfield "institution department" (subfield ^d)

* Add "or condition" to exibit country (address field)

* Add comment regarding the key R=<pid>$

* Add subfield v20^u

* Add field ORCID to sci_common.xis (#738)

* Adiciona capacida de sci_getrecord.xis retornar resumo e palavras-chave em todos os idiomas (#741)

* add function to obtain abstract in all languages

* Add function to obtain keywords in all languages

* Fix comment related to the keywords function

* Remove duplicidade de campo <AUTHORS> e <AFF> no script sci_getrecord.xis (#744)

* Copia função CreateAuthorsGroupXML de sci_common.xis

E remove o trecho referente a impressão do campo <AFF>

* Remove as duas chamadas a função antiga AuthorsGroupXML

* Remove chamada a função que imprime <AFFILIATION>

* Adiciona <AUTHORS> e <AFFILIATION> em lugar adequado

* Melhora script sci_getrecord.xis para conter mais e melhores campos (#745)

* Adiciona elocation-id como parâmetro de <article>

* Adiciona campo v60 (contract) do índice h em <article>

No dicionário de dados o campo v60 representa o número do contrato.

* Adiciona em reference os campos v238 (pmid) e v239 (pmcid) do registro c

* Renomeia os nomes dos tipos de author de referência

* Corrige campo para indicar se é link

* Remove parâmetro "publication type" de campo <source_reference>

* Cria campo <publication_type_reference>

Este campo passa a não ficar atrelado a existência do campo <source>

* Implementa novo prefixo de metadados oai_dc_scielo (#747)

* Divide sci_getrecord.xis: remove imports

* Divide sci_getrecord.xis: inclui único import necessário

sci_record.xis é o arquivo que define as funções a serem usadas por
sci_getrecord.xis e sci_listcrecords_scielo.xis

* Divide sci_getrecord.xis: remove definição de funções

* Divide sci_getrecord.xis: remove campo serial

* Divide sci_getrecord.xis: reorganiza identações e conteúdo

- Remove campo v3 (nrm)
- Remove chamadas a funções que responsáveis por criar campos
TitleGroup, TitleChanges, ISSN, Copyright, Contact, Issue (que passam a
estar dentro de CreateArticleXML - sci_record.xis)

* Divide sci_getrecord.xis: cria sci_record.xis com a definição de funções

* Cria sci_listrecords_scielo com base em sci_listrecords.xis

* listrecords: remove imports e inclui import sci_record.xis

* listrecords: remove parâmetro nrm

* listrecords: corrige identação

* listrecords: altera para 10 o limite de registros exibidos por vez

* listrecords: corrige identação

* listrecords: remove criação de campo controlinfo

* listrecords: remove comentários e chamada a função CreateArticleReferenceXML

* listrecords: ajusta parâmetros e chama função CreateArticleXML

* cria função php para obter registro (GetRecord)

* Cria função php para listar registros (ListRecordsSciELO)

* Remove parâmetro sln das chamadas aos scripts sci_listrecords_scielo e sci_getrecord

* Cria prefixo de metadados oai_dc_scielo

* Adequa função para parsing de token

* Adequa função para definição de Set

* Adiciona tratamentos para chamadas aos verbos GetRecord e ListRecords

* Cria XSL para exibir resultados do verbo GetRecord

* Cria XSL para exibir resultados do verbo ListRecords

* Cria XSLT oai_scielo_common com base em oai_common

* Novo xslt: Remove variável controlinfo

* Novo xslt: remove espaços em branco

* Novo xslt: remove datestamp específico para issueinfo

Um campo mais genérico é criado nos próximos commits

* Novo xslt: cria template para exibir campos com atributo

* Novo xslt: remove template processdate (um mais genérico será construído)

* Novo xslt: cria template para exibição de datas

* Novo xslt: remove template para ISSN e SetSpec

* Novo xslt: cria template para tratar tipo de ISSN (print ou onlin)

* Novo xslt: remove template para header oai-dc

* Novo xslt: cria template para tratar vários campos de data

* Novo xslt: remove template para criar Footer

* Novo xslt: adequa templates para autor

* Novo xslt: cria template para keywords

* Novo xslt: cria template para afiliação

* Novo xslt: cria template para subkey (keywords)

* Novo xslt: remove template abstract e cria um novo

* Novo xslt: cria template para exibir nome de arquivo PDF

* Novo xslt: cria template para exibir título em outros idiomas

* Novo xslt: cria template para exibir lista de refs citadas

* Novo xslt: corrige nome de template relacionado a data

* Novo xslt: remove trechos não utilizados

* Novo xslt: cria início de template principal format_article

* Novo xslt: remove elementos não usados de header

* Novo xslt: adiciona novo conteúdo do header

* Novo xslt: remove campos não utilizados em metadata

* Novo xslt: adiciona dados relacionados a journal

* Novo xslt: adiciona dados relacionados a formato e idioma

* Novo xslt: adiciona dados relacionados a identificador

* Novo xslt: adiciona dados de data

* Novo xslt: adiciona campo award (contract)

* Novo xslt: adiciona campos relacionados a título

* Novo xslt: adiciona campos relacionados à página

* Novo xslt: adiciona keywords e abstract

* Novo xslt: adiciona campo pdf

* Adiciona autores e filiação

* Novo xslt: adiciona lista de refs citadas

* Update versionOverview.txt

* Corrige sci_getrecord para retornar documentos ahead (#749)

* Adiciona tag faltante v3331

* Atualiza versão para v5.44

* Corrige definição de tag 6 (#750)

Adiciona caratere 'Y' ao chamar função `l` para a base NEWISSUE.

* Update network.rst

Remover a lista estática e adicionar o endereço para o site www.scielo.org

* Atualiza `htdocs/google_metrics/journals_url.csv` com dados de 2021 (#751)

* Converte o fim de linha de Windows para Linux

* Salva ordenado `htdocs/google_metrics/journals_url.csv`

* Atualiza `htdocs/google_metrics/journals_url.csv` com dados de 2021

* Update versionOverview.txt

v5.45 - Atualiza dados de Google Scholar 2021

* remove espaço indevido em atributos de marcação

* altera termo name-content para named-content

* adiciona escape de códigos html

* adiciona termo oai:scielo em identificador de registro

* Transforma atributo "num" de campo <reference> em campo <number_reference>

Há situações em que este campo está povoado com marcações <a> e isso
acarreta falha na renderização do XML

* Verifica se <number_reference> é número no XSLT

* Adiciona caminho para base gizmo

* Adiciona parâmetro gizmo com valor GIZMO_OAI

* Adiciona base gizmo com apenas uma conversão

* [oai-dc-scielo] Corrige retorno de dados de ISSUE para Press Release

* Imprime fechamento de ISSUE apenas quando houver ISSUE

* Apresenta XML de erro apenas quando não houver PID de documento

* Adiciona conversão de caracter 0x019 na base gizmo

* Substitui tag 4001^s por v6 tratada

* Conserta o arquivo journals_url.csv (#753)

* Melhora geração de estrutura parametrizada

* Update versionOverview.txt

* Create README.md

* Possibilita redirecionamento do old para o new (#762)

* Possibilita redirecionamento do old para o new

* Atualiza versionOverview com 5.45.3

* Adiciona o G4 Google Analytics.

* Corrigi o caminho para o script do google analytics.

---------

Co-authored-by: Patricia Morimoto <[email protected]>
Co-authored-by: Gustavo Fonseca <[email protected]>
Co-authored-by: Gustavo Fonseca <[email protected]>
Co-authored-by: Rafael J P D <[email protected]>
Co-authored-by: GitInno <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants