Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Estratégia sorrateira de resolução de idiomas de texto indisponíveis impacta negativamente no ranking do Google Scholar #710

Closed
gustavofonseca opened this issue Feb 13, 2020 · 8 comments
Assignees
Labels
bug Something isn't working

Comments

@gustavofonseca
Copy link
Contributor

gustavofonseca commented Feb 13, 2020

Na versão atual o site responde com código 200 para todo e qualquer idioma de texto solicitado, mesmo quando não disponível. Segundo nosso contato do Google Scholar este é um mau comportamento, pois não sinaliza para o crawler o que está acontecendo e gera conflitos que podem resultar em penalização no ranking de buscas.

Passos para reproduzir o problema

Acesse um documento num idioma indisponível (russo no exemplo) e perceba que é retornado o código 200 porém com o texto em outro idioma.

curl --head "http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0044-59672019000400268&lng=en&nrm=iso&tlng=ru"
HTTP/1.1 200 OK
Date: Thu, 13 Feb 2020 20:48:35 GMT
Set-Cookie: PHPSESSID=tvtvbfa8qovh3h85j39pta0rk4; path=/
Pragma: no-cache
Content-Type: text/html; charset=UTF-8
cache-control: max-age=900
magicmarker: 1
Server: nginx
X-Varnish: 403311338
Age: 0
Via: 1.1 varnish-v4
Connection: keep-alive

Comportamento esperado

É importante termos uma estratégia de fallback para estes casos, entretanto é desejável informar o ocorrido ao cliente (no caso crawler do Google Scholar). Uma sugestão é redirecionar o cliente para o documento no idioma de fallback, por meio do código 302.

@robertatakenaka
Copy link
Member

robertatakenaka commented Feb 14, 2020

Artigo:

view-source:http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0074-02762020000100200&lng=en&nrm=iso&debug=On

No script cgi-bin/ScieloXML/sci_arttext.xis, no trecho:

Captura de Tela 2020-02-14 às 14 16 39

obtém os valores dos parâmetros.

No script cgi-bin/ScieloXML/sci_arttext.xis, o trecho:

Captura de Tela 2020-02-14 às 14 20 58

retorna:
Captura de Tela 2020-02-14 às 14 16 08

No trecho seguinte, monta uma mensagem de erro caso algum destes parâmetros estão ausentes:
Captura de Tela 2020-02-14 às 14 23 30

Neste trecho:
Captura de Tela 2020-02-14 às 14 32 15
Caso o idioma do texto não venha preenchido na URL (&tlng), pega o v40, idioma principal do texto.

Este trecho vai montar a parte principal do XML:
Captura de Tela 2020-02-14 às 14 32 15

@jamilatta jamilatta removed their assignment Feb 14, 2020
@gustavofonseca gustavofonseca self-assigned this Feb 14, 2020
@robertatakenaka
Copy link
Member

robertatakenaka commented Feb 14, 2020

Para os documentos em formato XML, por exemplo: S0034-89102020000100203

O XML gerado pelo IsisScript também gera o elemento (já que todos os idiomas estão no mesmo XML SPS)

<filename>rsp/v54/1518-8787-rsp-54-05.xml</filename>

Para os documentos em formato HTML, o conteúdo do texto, vem dentro de <BODY> e é preenchido com o arquivo HTML correspondente ao idioma selecionado (tlng)

@robertatakenaka
Copy link
Member

robertatakenaka commented Feb 14, 2020

Para os documentos em formato HTML:

Sabe-se os idiomas do HTML pela tag <ART_TEXT_LANGS>


Captura de Tela 2020-02-14 às 16 43 37


Captura de Tela 2020-02-14 às 16 44 31


Captura de Tela 2020-02-14 às 16 45 45


O texto a ser apresentado é sabido pela lógica dentro do .xis (a detalhar ainda)

@robertatakenaka
Copy link
Member

Para os documentos em formato XML, os idiomas são os das traduções:

<ART_TEXT_LANGS>
<LANG>pt</LANG>
<LANG>es</LANG>
</ART_TEXT_LANGS>

É na XSL que se resolve qual é o idioma do texto a ser apresentado de acordo os idiomas contidos no XML gerado pelo IsisScript. (Mais detalhes teria que avaliar a XSL)

@robertatakenaka
Copy link
Member

Para os todos os documentos XML ou HTML:

//ARTICLE/@TEXTLANG contém o valor do parâmetro tlng=, não importa se é um valor válido ou não para o idioma do texto.

//ARTICLE/@ORIGINALLANG contém o valor do idioma principal do texto

//ARTICLE/@ORIGINALLANG

Captura de Tela 2020-02-14 às 15 33 58

@gustavofonseca
Copy link
Contributor Author

Notei que há casos onde o elemento ART_TEXT_LANGS é vazio, por exemplo http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0100-879X2020000300602&lng=en&nrm=iso&tlng=en&debug=xml. Neste caso devemos assumir que está disponível apenas em //ARTICLE/@ORIGINALLANG?

@gustavofonseca
Copy link
Contributor Author

Acabei de ser informado pela equipe do Google Scholar que é preferível retornar o código 308 Permanent Redirect e não 302 Found como foi implementado.

@jamilatta
Copy link
Contributor

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants