scieloorg / journals-opac

[DEPRECATED]The on-line public access catalog of journals of a SciELO collection.
1 stars 5 forks source link

Planejamento da compatibilização das URLs legadas para o novo padrão. #60

Open jamilatta opened 11 years ago

jamilatta commented 11 years ago

A nova aplicação deve ter a capacidade de traduzir as URLs do SciELO atual para as novas URLs definidas pela nova aplicação.

Exemplo da página da revista(atual):

http://www.scielosp.org/scielo.php?script=sci_serial&pid=0034-8910&lng=en&nrm=iso

Exemplo da página da revista(novo):

http://www.scielosp.org/journal/rsp/

fabiobatalha commented 11 years ago

Acho que essa compatibilização teria que ir um pouco além de matchs de urls pois o número de combinações é muito grande.

Teríamos que pensar em uma solução que extrai os atributos passando esses atributos como entrada para uma metodo de resolução ex:

get_new_url(script, pid, tlng='en', ilng='en')

onde:

script: ['sci_arttext', 'sci_serial', 'sci_home', 'sci_abstract',...] pid: 'pid é pid uai' tlng: 'idioma do texto' ilng: 'idioma da interface'

Existem também um outro padrão de URL's na SciELO que é muito mais antigo e que é diferente do atual com relação a identificação do PID. Vou verificar isso e documentar essa regra.

jamilatta commented 11 years ago

Concordo.

jamilatta commented 11 years ago

Estudo sobre as URL do SciELO

Exemplo de URL (issue): http://www.scielo.br/scielo.php?script=sci_issuetoc&pid=0034-891020120001&lng=en&nrm=iso

Parâmetros:

lng = Idioma da interface tlng = Idioma do texto pid = publish identifier nrm = Norma (verificar se o valor é sempre 'iso') script = ['sci_alphabetic', 'sci_serial', 'sci_issues', 'sci_issuetoc', 'sci_arttext', 'sci_abstract', ' sci_pdf', 'sci_subject', 'sci_arttext_pr']

OBS.: Iremos considerar somente os params tlng, script e pid.

Característica do PID:

Tabela de tradução:

ISSN YEAR ORDER_ISSUE ORDER_ARTICLE SCRIPT OLD URL NEW URL
/scielo.php /URL/
sci_alphabetic /scielo.php?script=sci_alphabetic /alpha/
sci_subject /scielo.php?script=sci_subject /subject/
0103-2100 sci_serial /scielo.php?script=sci_serial&pid=0103-2100 /journal/ACRON
0103-2100 sci_issues /scielo.php?script=sci_issues&pid=0103-2100 /issue/ACRON
0103-2100 2008 0004 sci_issuetoc /scielo.php?script=sci_issuetoc&pid=0103-210020080004 /ACRON/ISSUE_ID/
0103-2100 2008 0004 0002 sci_arttext /article/ARTICLE_ID
0103-2100 2008 0004 0002 sci_abstract /article/ARTICLE_ID
0103-2100 2008 0004 0002 sci_pdf /article/ARTICLE_ID
0103-2100 2008 0004 0002 sci_arttext_pr /article/ARTICLE_ID

Para realizarmos essa tradução de URLs resolvemos criar um coleção 'legacy_urls' que conterá todas as URLs da aplicação anterior seguindo o seguinte modelo:

{
'pid': '0103-2100'
'acron': 'rsp'
'id':  2345
}

Justificamos a criação de uma nova coleção para as URLs legadas baseado no fato que iriamos conviver com índices desnecessários que aumentariam desnecessariamente.

fabiobatalha commented 11 years ago

Exemplo de como devem ser convertidos os PID do modelo super antigo.

campo v1 representa o formato super antigo, campo v2 representa o formato atual.

mfn= 170 1 "S0104-1169(97)00500311" 2 "S0104-11691997000300011" .. mfn= 171 1 "S0104-1169(97)00500313" 2 "S0104-11691997000300013" .. mfn= 172 1 "S0104-1169(97)00500314" 2 "S0104-11691997000300014"

jamilatta commented 11 years ago

Ok, devemos portanto adicionar esse "pids super antigos" na coleção "legacy_urls", utilizando campo em separado ou o campo pid como array no mongoDB:

Novo campo na coleção

{
'lpid':  'S0104-1169(97)00500311',
'pid': 'S0104-11691997000300011',
'acron': 'rsp'
'id':  2345
}

Nesse formato seriamos obrigados a identificar na view se o pid é um super antigo.

PID como array

{
'pid': ['S0104-11691997000300011', 'S0104-1169(97)00500311']
'acron': 'rsp'
'id':  2345
}

Nesse formato realizariamos a query no mongoDB sem a necessidade de identificarmos se é ou não super antigo.

gustavofonseca commented 11 years ago

Não seria mais fácil criar uma função que identifica a versão do pid, e caso seja o super antigo ele é transformado no antigo?

jamilatta commented 11 years ago

Dessa forma não teríamos mais a informação que o artigo teve esse PID super antigo, é necessário avaliarmos os impactos disso para outros serviços como por exemplo bibliometria(citação).