\documentclass[a4paper,12pt]{article}

\usepackage{a4wide}
\usepackage{url}
\usepackage{x}
\usepackage[portuges]{babel}
\usepackage[utf8]{inputenc}

\newcommand{\email}[1]{$<$\url{#1}$>$}
\parskip 3mm

\def\fvc{{\sc Fvc}}
\title{\fvc: Ferramenta para validação e correcção de documentos estruturados}

\author{Aluno: Rui Soares Barbosa \email{a50189@alunos.uminho.pt} \\
  Orientador: José João Dias de Almeida \email{jj@di.uminho.pt}}

\date{Julho 2008}

\begin{document}
  
  \maketitle
  
  \section{Orientador}
  \label{sec:orientador}
  \begin{description}
    \item[Nome:]\mbox{}\\
      José João Dias de Almeida \email{jj@di.uminho.pt}
    \item[Instituição:]\mbox{}\\
      Departamento de Informática (\url{http://www.di.uminho.pt/})\\
      Universidade do Minho (\url{http://www.uminho.pt/})
    \item[Experiência:]\mbox{}\\
      José João Dias de Almeida é professor auxiliar no Departamento de 
Informática da Universidade do Minho.
      Fez doutoramento na área de programação de dicionários;
      Lecciona neste departamento diversas disciplinas cobrindo áreas de:
      \begin{itemize}
        \item Compiladores, DSL (domain specific languages),
        \item PLN, ferramentas de tradução e de terminologia
        \item Scripting (Perl, etc)
      \end{itemize}

   Envolvimento em vários projectos open-source ligados a:
      \begin{itemize}
        \item módulos Perl (disponíveis no CPAN) (Lingua::PT::Speaker,
Lingua::PT::PLN, Lingua::StarDict::Gen, XML::DT, Lingua::Jspell, etc), 
        \item arquivos culturais
          \begin{itemize}
             \item arquivo de Letras de música de Lingua Portuguesa, 
             \item EVO: Arquivo Ernesto Veida de Oliveira de etnomusicologia)
             \item listas de provérbios,
          \end{itemize}
        \item dicionários
        \begin{itemize}
          \item colaboração no projecto FreeDict
          \item Dicionário de expressões idiomáticas e calão
        \end{itemize}
        \item dicionário e analisador morfológico jSpell;
        \item Projecto Natura (recursos ligados a PLN e Língua Portuguesa)
      \end{itemize}
%%  \item[Proposta:]  \url{http://natura.di.uminho.pt/wiki/doku.php?id=ferramentas:globs}
  \end{description}
  
  \section{Aluno}
  \label{sec:aluno}
  
  \begin{description}
    \item[Nome:]\mbox{}\\
      Rui Miguel de Sousa Martinho Soares Barbosa \email{a50189@alunos.uminho.pt} 
    \item[Data e Local de Nascimento:]\mbox{}\\
      Braga, 28 de Outubro de 2008
    \item[Instituição:]\mbox{}\\
      Licenciatura em Ciências da Computação (\url{http://lcc.di.uminho.pt/}) \\
      Universidade do Minho (\url{http://www.uminho.pt/})
    \item[Curriculum Resumido:]\mbox{}\ 
    \begin{itemize}
    \item Concluiu o ensino secundário na Escola Secundária Carlos Amarante, Braga, 
    na área de Ciências, com média final de 19.2. 
    \item Frequenta actualmente
    o segundo ano da Licenciatura em Ciências da Computação na Universidade do Minho,
    tendo a classificação média parcial de 19.3 valores. 
    \item Revela grande interesse pelas
    áreas da Matemática e da Informática, com particular ênfase nos fundamentos e
    metodologias da programação e engenharia de desenvolvimento de \emph{software}.
    Neste contexto, tem participado em vários concursos de programação desde as Olímpiadas
    Internacionais de Informática (pré-universitário) aos concursos ACM nacionais 
    e regionais (nível universitário), conforme detalhado na secção seguinte.
    \item Revela também interesses noutras áreas, de cariz cultural,tais como a
    música (estuda piano na escola de ensino artístico "Companhia da Música") e a
    literatura (recebeu inclusive uma menção honrosa
    no prémio de literatura juvenil "Ferreira de Castro"). É também colaborador no ComUM, um jornal 
    académico independente.
    \end{itemize}
    \item[Bolsas e Prémios:]\mbox{}\
     \begin{itemize}
     \item 2º lugar na MIUP 2007 (concurso nacional de programação da ACM)
     \item Bolsa \emph{Novos Talentos em Matemática} 2007-2008
({{{http://www.math.ist.utl.pt/talentos}}}) atribuída pela Fundação Calouste Gulbenkian.
     \item 1º lugar no CeNPLf 2007 (Concurso/Encontro Nacional de Programação Lógica e Funcional)
     \item Prémio Conselho Académico da Universidade do Minho 
2006-2007, atribuído à melhor média de entrada (19.44) na Licenciatura em Ciências da Computação-
     \item 1º lugar na MIUP 2006 (concurso nacional de programação da ACM), integrado numa
     equipa convidada.
     \item Participação na International Olympiads on Informatics 2006, que decorreu em Mérida,
México, tendo conseguido a melhor classificação entre os estudantes portugueses
     \item Medalha de Bronze na International Physics Olympiad 2006, realizada em Singapura.
     \item Medalha de Prata na the Olimpíada Ibero-Americana de Informática 2006
     \item 2º lugar nas Olimpíadas Nacionais de Informática / 1º lugar na selecção dos
representantes portugueses para as Olimpíadas Internacionais.
     \item 1º lugar no Concurso Einstein, prémio atribuído pelo ISEP a trabalhos sobre a vida e
obra de Einstein, com um trabalho de grupo: monografia sobre  \emph{"Albert Einstein: o desmoronamento do sólido edifício da Física Clássica"}
     \item 1º lugar nas Olimpíadas de Português 2006 (UCP-Braga)
\end{itemize}
   \item[Métodos de Desenvolvimento:]\mbox{}\
\begin{itemize}
\item fase de análise dos requisitos do problema, com ênfase na identificação dos problemas
práticos concretos que a ferramenta deve ser capaz de resolver.
\item fase de estruturação/desenho da solução: separação por camadas (com diferentes graus de
generalidade e de interacção) e módulos, idealização das
estruturas de dados, etc
\item identificação de possíveis generalizações do contexto de aplicação
de toda ou de determinada camada. A possibilidade de generalização e de extensão (mesmo que não
num futuro imediato) dá orientações muito relevantes na estruturação e desenvolvimento do projecto.
\item desenvolvimento do código, de forma iterativa, tendo o cuidado de testar cada fase do
processo com exemplos concretos.
\end{itemize}


   \item[Motivação:]\mbox{}\\
   Ao longo dos dois primeiros anos de licenciatura, tive contacto com diversos paradigmas de
programação (imperativa, funcional, OO, lógica) e desenvolvi alguns projectos.
Em particular, no último semestre, tive contacto com a área de processamento de linguagens e de
documentos estruturados. 

Em primeiro lugar, penso que esta é uma oportunidade para adquirir formação
complementar na área da metodologia de desenvolvimento de projectos de software.
Uma segunda motivação é a possibilidade de trabalhar com a linguagem Perl.
O facto de desenvolver software para ser distribuído livremente é também um grande atractivo.

Mais concretamente, o projecto a que me candidato parece-me bastante interessante. 
As ferramentas existentes que validam a estrutura de documentos e o seu conteúdo de
acordo com tipos básicos/estáticos não são suficientes em muitos casos práticos,
como os referidos na descrição do projecto. Daí que a ideia de uma ferramenta
para validar e processar (anotar ou eventualmente corrigir) documentos
estruturados com base em especificações de tipos mais complexos seja de
grande interesse prático. O facto de se tratar de uma ferramenta genérica para vários
tipos de documentos e extensível com novos tipos definidos pelo utilizador é, sem dúvida, uma 
mais-valia para a sua usabilidade.  

  \end{description}
  
\newpage
  \section{Projecto}
  \label{sec:projecto}

  \begin{description}
    \item[Licença:] GNU General Public License, v.3;
    \item[Selecção:] O aluno seleccionado tem um excelente curriculum e
grande afinidade com os princípios Open-Source.
    \item[Calendarização:] 
O calendário vai ter um pequeno atraso inicial já que o Rui vai estar numa
escola de Verão nos Estados Unidos até ao dia 10 de Agosto.
    
    \item[Interacção:] Com este projecto, pretende-se construir uma ferramenta e
um conjunto de módulos que poderão servir uma vasta comunidade.
e servir de apoio a uma grande variedade de situações. Entre elas destacamos a 
correcção ortográfica de vários dicionários bilingues disponíveis na rede, 
análise de XML, etc.
  \end{description}
  \input{_projecto}
  

\end{document}
  \subsection{Contextualização}
  \label{sub:contextualizacao}
  
  No terceiro ano da Licenciatura em Engenharia Informática, da Universidade do Minho, foi proposta a construção
  de uma ferramenta Web para a gestão cooperativa de terminologias e glossários. O aluno Nuno Veloso integrou um
  grupo que desenvolveu (a par das restantes disciplinas) um protótipo básico deste sistema, e que está actualmente
  disponível em \url{http://eremita.di.uminho.pt/terminologia/}.
  Durante o desenvolvimento o Nuno destacou-se do resto do grupo, tendo sido o responsável pela maior parte do
  seu desenvolvimento. Deste modo, torna-se natural o convite para a continuação do desenvolvimento desta
  aplicação.
  
  Esta aplicação surgiu face à necessidade de ensinar alunos de licenciaturas de línguas e tradução a construção
  de glossários. Actualmente não existem ferramentas de código-aberto (ou livres) com este objectivo, sendo que
  as ferramentas comerciais usadas na indústria são demasiado caras para poderem ser adquiridas por uma Universidade.
  
  É também importante salientar que não se pretende o desenvolvimento de uma ferramenta apenas para a Universidade
  do Minho: não só existem contactos com outras Universidades que estão interessadas numa ferramenta deste género,
  como os próprios profissionais da área da tradução e línguas poderão tirar partido da ferramenta.
  
  \subsection{Globs}
  \label{sub:globs}
  O \emph{Globs} é uma aplicação \emph{web} desenvolvida sobre o Framework \emph{Drupal}, e pretende ser um gestor de
  terminologia/glossários cooperativo.
  
  Na área da tradução, uma terminologia ou glossário é visto como um conjunto de registos relativos a determinado
  conceito. Para cada um destes conceitos existem instâncias para cada língua (vulgo identificador do conceito).
  Além desta informação, são associadas propriedades ao conceito e/ou a cada uma das instâncias.
  
  Como exemplo ilustrativo, o conceito \emph{gato} (animal doméstico peludo) pode ser representado por vários
  identificadores, como \emph{gato} ou \emph{bichano} para a língua portuguesa, \emph{cat} para a língua inglesa, etc.
  Para cada uma destas línguas podem-se associar propriedades. Por exemplo, o género e o número da palavra, mas também
  o estilo (formal ou coloquial), exemplos de uso, etc.
  
  O \emph{Globs} pretende implementar um sistema para a gestão deste género de terminologias, em que a estrutura
  (também conhecida por \emph{micro-estrutura}) pode ser definida de forma independente para cada terminologia de
  acordo com os objectivos para os quais está a ser desenvolvida.
  
  Actualmente o \emph{Globs} inclui as seguintes funcionalidades básicas:
  \begin{itemize}
    \item gestão de utilizadores;
    \item gestão de permissões sobre glossários;
    \item criação básica de glossários orientados ao conceito;
    \item adição de línguas e propriedades a cada conceito do glossário;
    \item comunicação inter-colaboradores de um glossário;
  \end{itemize}
 
  \subsection{Objectivos}
  \label{sub:objectivos}
  
  Embora o \emph{Globs} actual funcione de forma básica, é imprescindível a adição de novas funcionalidades para que
  a ferramenta seja, realmente, útil:
  \begin{itemize}
    \item \textbf{Internacionalização/localização:}\\
    Toda a aplicação foi desenvolvida em Inglês, mas deverá ser tornada multi-lingue. A própria tarefa
    de internacionalização/localização pode tirar partido da própria aplicação;
    \item \textbf{Estruturação de Glossários:}\\
    Adicionar uma estrutura rígida (e independente) a cada glossário.
    \begin{itemize}
      \item que línguas podem ser instanciadas;
      \item que atributos/propriedades podem ser utilizadas;
      \item que tipo de dados está associado a cada atributo/propriedades (nomeadamente, \emph{pick-lists});
      \item definição de relações inter-conceito;
    \end{itemize}
    \item \textbf{Intercâmbio de Glossários:}\\
    Adicionar funcionalidades de intercâmbio com outras aplicações.
    \begin{itemize}
      \item exportação de vistas sobre o glossário em PDF;
      \item exportação de vistas hierárquicas do glossário no formato ISO-2788/5964 e/ou no formato OWL;
      \item importação e exportação do formato aberto TBX (Term base exchange);
      \item importação e exportação do formato textual MultiTerm;
    \end{itemize}
  \end{itemize}
  
  \subsection{Calendarização}
  \label{sub:calendarizacao}
  
  Os objectivos definidos na secção anterior são demasiado ambiciosos para os três meses do Summerbits08.
  Sugue-se uma calendarização dos objectivos mais prementes, dividindo-os pelas 12 semanas do programa:
  \begin{itemize}
    \item \textbf{Semana 1:} Colocação do código actual em \url{http://softwarelivre.sapo.pt}, criação da página
     do projecto e ambientação às ferramentas disponibilizadas pela SAPO;
    \item \textbf{Semana 2:} Sistema básico para a internacionalização da aplicação;
    \item \textbf{Semana 3:} Tradução da aplicação para a língua portuguesa. Permitir ao utilizador a
     escolha da língua a usar. Adaptação do esquema relacional da base de dados para suporte
     à configuração dos glossários;
    \item \textbf{Semana 4:} Implementação do novo esquema relacional, e adaptação do código actual.
    \item \textbf{Semana 5:} Adição da interface para definição da estrutura dos glossários. Adaptação da
     interface de edição de conceitos.
    \item \textbf{Semana 6:} Realização de testes.
    \item \textbf{Semana 7:} Criação de vistas (por língua) sobre o glossário em PDF, utilizando \LaTeX{}
     como ferramenta de typesetting.
    \item \textbf{Semana 8:} Análise do formato textual usado pelo MultiTerm. Implementação de um parser.
    \item \textbf{Semana 9:} Implementação do importador de MultiTerm. Realização de testes.
    \item \textbf{Semana 10:} Análise do formato TBX;
    \item \textbf{Semana 11:} Exportador da estrutura do glossário para TBX;
    \item \textbf{Semana 12:} Exportador do glossário para TBX;
  \end{itemize}
  Durante todo este processo pretende-se manter o sistema a funcionar o máximo tempo possível uma vez que 
  existem potenciais utilizadores que poderão servir de \emph{beta-testers}.
\end{document}
