Closed gustavofonseca closed 4 years ago
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:
obtém os valores dos parâmetros.
No script cgi-bin/ScieloXML/sci_arttext.xis, o trecho:
retorna:
No trecho seguinte, monta uma mensagem de erro caso algum destes parâmetros estão ausentes:
Neste trecho:
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:
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)
Sabe-se os idiomas do HTML pela tag <ART_TEXT_LANGS>
O texto a ser apresentado é sabido pela lógica dentro do .xis (a detalhar ainda)
<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)
//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
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
?
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.
👍
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.
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.