scieloorg / Web

SciELO Web
www.scielo.br
6 stars 21 forks source link

Entidade HTML na resposta do protocolo OAI-PMH #685

Closed gustavofonseca closed 5 years ago

gustavofonseca commented 5 years ago

O erro foi reportado por Mike Lichtenberg, do BHL.

O conjunto de dados retornados pela interface OAI-PMH apresenta a entidade HTML <dc:creator>D&#8217;Ávila,V. A.</dc:creator>, conforme exemplo:

Screen Shot 2019-06-13 at 11 46 36

URL que apresenta o problema: http://www.scielo.br/oai/scielo-oai.php?verb=GetRecord&identifier=oai:scielo:S1519-69842016000300796&metadataPrefix=oai_dc

joffilyfe commented 5 years ago

Resultado da exploração inicial

Imagens

[1] - Busca pelo artigo em questão:

Screen Shot 2019-06-25 at 14 30 21
gustavofonseca commented 5 years ago

Eu imagino que esse caso é mais comum do que aparenta, digo, a ocorrência de entidades html na base de dados ISIS. Você já tem em mente alguma abordagem para solucionar?

joffilyfe commented 5 years ago

Eu imagino que esse caso é mais comum do que aparenta, digo, a ocorrência de entidades html na base de dados ISIS. Você já tem em mente alguma abordagem para solucionar?

Depois de alguns séculos eu tenho uma proposta de solução para o problema, segue a url com um gist https://gist.github.com/joffilyfe/bc6daae8e7c5c40e496d1c2331307b41.

Basicamente transformamos todas as entidades html logo após a transformação da XSLT. A principio o código html_entity_decode('output xml', ENT_QUOTES, "UTF-8"); seria suficiente para resolver todo o problema porém no caso do temos urls codificadas que e me parece que elas não podem ser transformadas (por causa do consumidor talvez?). Então foi necessário iterar entre todas as entidades, verificar se elas são entidades passíveis de transformação e realizar a substituição da entidade não codificada pelo valor transformado.

gustavofonseca commented 5 years ago

A abordagem me parece boa. Deixei um comentário no gist.

jamilatta commented 5 years ago

@joffilyfe

Nessa abordagem vejo que resolvemos o problema para o OAI-PMH, mas o problema permanece na base de dados, o que talvez seja um problema para os aplicativos que irão fazer uso dos dados da base de dados ISIS.

Como a atividade é para resolver um problema do OAI-PMH especificamente, acho a solução satisfatória, porém, recomendo abrimos um tíquete para uma solução que seja na camada da base de dados ISIS.

joffilyfe commented 5 years ago

@joffilyfe Como a atividade é para resolver um problema do OAI-PMH especificamente, acho a solução satisfatória, porém, recomendo abrimos um tíquete para uma solução que seja na camada da base de dados ISIS.

Aparentemente isso não é possível @jamilatta , segundo a @robertatakenaka a base ISIS não suporta o UTF-8 então estes caracteres precisam ser traduzidos para as suas representações HTML.

Eu acredito em uma solução a posteriori onde nós teremos esses dados no XML (migrado) e na base do Kernel em UTF-8.

jamilatta commented 5 years ago

@joffilyfe

OK!

joffilyfe commented 5 years ago

Resolução em produção.