Págico - Português Mágico

Colecção Págico

Págico, Linguateca

 


Versões Disponíveis

v1.0
Inclui todos os documentos (com excepção de algumas páginas referentes a ficheiros de imagem), num total de 1,474,400. Problemas conhecidos nesta coleção: Disponibilizada em 1 de Agosto de 2011
v2.0
Inclui apenas páginas que não sejam de redireção, num total de 901,900. Disponibilizada a partir de 4 de Agosto.
v3.0
Inclui páginas que não sejam de redireção. As páginas de redirecção aparecem como uma hiperligação para o documento oficial na Wikipédia. Disponibilizada a partir de 6 de Agosto.
v3.1
Versão 3.0 em que foi executado o programa comment-css.pl para comentar a inclusão das Cascade StyleSheets externas. Disponibilizada a partir de 7 de Agosto.
v3.2
Versão 3.1 em que foi executado o programa make-self-contained.pl para transformar todas as hiperligações para a Wikipédia em hiperligações internas. Disponibilizada a partir de 7 de Agosto.
v4.0
Esta versão corrige um pequeno problema na criação dos ZIPs, que fazia com que cerca de 50 documentos não fossem empacotados, corrige o caminho (árvore de directorias) para alguns documentos que continham caracteres estranhos nos três primeiros caracteres do nome, e expande um grande número das pré-definições (ver abaixo sobre este assunto). Além disso, levou o mesmo processamento que v3.1 e v3.2.
v4.1
O caminho dos documentos nas hiper-ligações passou de, por exemplo:
   <a class="mwx.link.article" href="../../../1/7/_/17_de_Setembro.a9bead.xml">17 de Setembro</a>
para:
   <a class="mwx.link.article" href="pt/1/7/_/17_de_Setembro.a9bead.xml">17 de Setembro</a>

Além disso, esta versão corrige um problema na geração do código hexadecimal de documentos referidos nas hiper-ligações da coleção. Este problema só afetava documentos cujo nome inclui acentos. Assim, onde na versão 4.0 estava, por exemplo:
   <a class="mwx.link.article"href="../../../m/_/_/Médico.9e4a55.xml">médico</a> (mas, na coleção v4.0, o documento chama-se Médico.7082fd.xml)
passou a estar na v4.1:
   <a class="mwx.link.article" href="pt/m/é/d/Médico.7082fd.xml">médico</a> (e, na coleção v4.1, o documento tem o mesmo nome)

A versão v4.1 é a versão oficial usada no Págico.

Construção

A colecção do Págico é construída com base na versão oficial da Wikipédia Portuguesa de 25 de Abril de 2011 (disponível oficialmente a partir de dumps.wikipédia.org.

O processamento foi feito com base no ficheiro pages-articles.xml.bz2 que inclui, num único documento XML, todas as páginas da Wikipédia.

Para fazer a geração da versão XHTML de cada artigo com base na sua definição XML (juntamente com todas as anotações na sintaxe da Wikipédia), foi usada uma biblioteca Python denominada mwlib.

As ferramentas da mwlib podem usar o sítio da wikipédia oficial, uma cópia local, ou uma versão pré-processada do ficheiro XML acima referido. Optamos por usar esta última abordagem por poupar largura de banda, e não necessitar de instalar um servidor e configurar uma versão da wikipédia local.

Infelizmente estas ferramentas foram pensadas para a língua inglesa e foi necessário fazer alterações ao seu código para que as ligações inter-wikipédia se mantivessem na língua portuguesa. Brevemente serão disponibilizadas estas alterações na forma de um ficheiro diff sobre a instalação das mwlib.

Instaladas e alteradas as mwlib, a versão pré-processada é criada com o comando:

      mw-buildcdb -i dump.xml -o cdb
    
e o resultado é uma pasta, de nome cdb que inclui o documento XML pré-processado, e alguns ficheiros de configuração. É importante verificar que o conteúdo do ficheiro wikiconf.txt é:
      [wiki]
      type = nucdb
      path = /caminho/para/o/pagico/cdb
      lang = en
    
Ter em atenção que a língua indicada neste ficheiro deve ser a inglesa, caso contrário as ferramentas de conversão falharão o processamento de várias páginas (a razão para esses problemas ainda não foi completamente entendida).

Posteriormente, são percorridas todas as páginas no ficheiro XML. Para isso é usado o módulo Perl MediaWiki::DumpFile. Para cada página é feita uma substituição de carácteres que habitualmente são problemáticos na gestão de ficheiros, nomeadamente o espaço e :!?'(\/)[]{}&. Todos estes carácteres são substituídos por um sublinhado. Para além disto, e para conseguir ter ficheiros com nomes iguais apenas mudando de maiúsculas para minúsculas, foi adicionado um código hexadecimal no final do ficheiro (primeiros seis carácteres do MD5 do nome do ficheiro depois de feitas as substituições).

Se a página em causa for de redirecção (ou seja, um apontador para outra página) o ficheiro XHTML não é gerado. Caso contrário, é invocado o comando mw-render com o nome da página a ser processada. Os ficheiros XHTML resultantes são pós-processados com o xmllint de modo a garantir que certas etiquetas são desdobradas (<title/> é transformada em <title></title>) para que os navegadores as interpretem correctamente.

Redirecções:

Foram detectados dois tipos de direcção. Um dos tipos é resolvido automaticamente. Por exemplo, http://pt.wikipedia.org/wiki/Escravo, embora mantenha o URL, redirecciona para http://pt.wikipedia.org/wiki/Escravidão. Outro tipo, como http://pt.wikipedia.org/wiki/Ateismo, tem uma página própria de redirecção que sugere http://pt.wikipedia.org/wiki/Ateísmo.

Em todas as colecções disponibilizadas, o segundo tipo de redirecção nunca é resolvido (é apresentada a página da redirecção).

O primeiro tipo de redirecção é resolvido na v1.0. Na v2.0 não foram geradas. Na v3.0 e seguintes, as páginas de redirecção contêm apenas a ligação para a página de destino.

Templates ou Pré-Definições:

A Wikipédia usa um sistema de template, macro, ou pré-definição, que permite que determinadas páginas (criadas originalmente num espaço de nomes — namespace — Template, e recentemente adaptado na versão portuguesa para Predefinição) possam ser utilizadas como funções ou texto pré-definido para ser incluído.

Os detalhes desta linguagem de macros razoavelmente poderosa pode ser consultada na página da Wikipédia sobre este assunto. Infelizmente nem todas as pré-definições podem ser expandidas antes de processar o XML da Wikipédia, já que o tornaria XML inválido. Isto levou a que nas versões que têm as pré-definições expandidas se tenha expandido apenas as pré-definições que não incluam os caracteres < e >, de modo a não invalidar o documento. Também só foi feita a expansão de pré-definições de primeiro nível.

Ferramentas: