MAC0499 - Trabalho de Conclusão de Curso

Refatoração do Projeto Delpo

Professor Supervisor: Marco Dimas Gubitoso

Adriano Tetsuaki Ogawa Santin, 8944387
Luiz Fernando Antonelli Galati, 7557223
Mauricio Luiz Abreu Cardoso, 6796479


Resumo

O projeto do Dicionário Etimológico da Língua Portuguesa (DELPo) nasceu da importância de os pesquisadores que se dedicam ao estudo desse idioma contarem com informações a respeito da origem e do significado dos verbetes da língua. O dicionário já está disponível online, mas possui problemas de funcionamento que podem ser atribuídos a falhas no desenvolvimento dos softwares envolvidos no projeto.

Neste trabalho, propusemo-nos a refazer, desde o princípio, todo o DELPo (que inclui um complexo banco de dados e vários programas auxiliares), de modo a produzir uma plataforma cuja interação com os usuários seja intuitiva e que, além disso, seja estável e relativamente fácil de ser modificada ou aperfeiçoada.


Proposta

O projeto Delpo, Dicionário Etimológico da Língua Portuguesa, tem como propósito datar ocorrências e mudanças de cada palavra no decorrer do tempo através das suas similariedades, ou seja, estudar sua etimologia. O projeto utiliza um "moedor" de palavras, que se encontra no site do NEHiLP, Núcleo de Apoio à Pesquisa em Etimologia e História da Língua Portuguesa.

O moedor recebe obras arcaicas inseridas pelos pesquisadores da FFLCH e o quebra em palavras de várias maneiras diferentes, comparando com palavras já presentes no banco de dados a fim de se verificar sua semelhança. Essas "novas palavras" que estão contidas na obra serão inseridas no banco, juntamente com a data da obra, traçando indiretamente a evolução da palavra com o tempo.

Atualmente, esta plataforma está programada em php, e o módulo do moedor em perl, e está hospedada em uma máquina desatualizada, em um Ubuntu 12.04. Está sendo feita uma mudança para uma nova máquina no IME, com Ubuntu 16.10 e, com essa atualização, nosso objetivo é refatorar o moedor na linguagem Ruby e intégra-lo na plataforma utilizando Rails.

Ao fazer a refatoração para uma linguagem mais atual, limpamos muito o código legado que foi criado e modificado por várias pessoas durante muito tempo e abrimos possibilidade para implementação de novas funções para auxiliar na pesquisa etimológica.



Desenvolvimento do trabalho

O trabalho foi iniciado com a atualização do banco de dados. O banco de dados no Delpo, que foi feito em MySQL, foi estudado e começamos por criar novas tabelas equivalentes no Postgresql e ligando com o ActiveRecord do Rails. A primeira tabela adaptada foi a de usuários, e criada com um sistema de autenticação da Gema Devise, para segurança de dados. Essa Gema criptografa as senhas ao guardar no banco e tem um sistema que requer autenticação dos usuários para acesso às páginas. Também foi feito um sistema para que o somente usuários de nível elevado no sistema consigam adicionar novos usuários.

Em seguida, foram criadas as tabelas por ordem de dependência. Primeiramente as tabelas que não dependem de outras como Cidades, e depois as que depoendiam de tabelas já criadas, como Editoras, que pertencem a uma Cidade.

Na criação de entradas na tabela no Rails, foram encontrados alguns problemas com entradas que possuiam chaves estrangeiras, que exigiam os ids específicos das chaves estrangeiras. Esse problema foi resolvido com um dicionário de dados que puxa do banco os ids no processo da criação das entradas.

Com as tabelas básicas e necessárias para o sistema criadas, foi iniciada adaptação do moedor de textos em linguagem Ruby.

O moedor foi então completamente adaptado da sua linguagem original em Perl, para Ruby, integrando-se ao framework Rails com facilidade, e mantendo uma coerência, já que agora o sistema inteiro do Delpo é composto de uma única linguagem.

Juntamente com a adaptação do moedor, todas as outras tabelas do sistema atual foram criadas no novo banco de dados.