User:Alessiojr/Easy dictionary - Application-GSOC2010

From Apertium
Jump to navigation Jump to search

Title: Easy dictionary maintenance[edit]

Student: Alessio Miranda Junior
E-mail: or
IRC: AlessioJr


   The idea is to develop a GUI tool to manage Apertium Monolingual and Bilingual XML files with the follow objectives:
   • Create a alternative form to edit dix files with GUI resources.
   • Develop, initially, monolingual dictionaries but keeping the particular format of each file.
   • Minimize the direct manipulation of XML files, providing features that reduce this need.
   • Making use of DixTools to keep code reuse.

Why is it you are interested in machine translation?

   My first interest in machine translation was a consequence of the participation of a Brazilian project 
   to create a translator from Portuguese to Libras (Brazilian Sign Language). Analyzing the challenges, 
   I realized that the core problem was to seek a generic translator that could be adapted to this problem.

Why are they interested in the Apertium project?

   I’ve been studying Apertium for about 1 year, for my Master’s degree and now for my PH.D, and I’m very
   excited with its objectives. My focus is to develop GUI tools, for beginner users, to manipulate and
   develop Language Pairs. By studying and trying to create a language pair, I realized that this is a
   weakness point, that can be improved.

Which of the published tasks are you interested in?

   Easy dictionary maintenance. The number of language pairs in development for Apertium is increasing, 
   and so is the complexity of these pairs. This increased complexity has made the job getting more
   complicated, thus the need for tools for the task is evident. 
   The proposed want to make this management easier and probably will increase the probability of
   development for new language pairs. With better tools, more people will be able to develop language pairs.

Why should Google and Apertium sponsor it?

   I Believe in Apertium work I am motivated to do a job with this team. I think that Apertium really
   needs a great GUI tools to facilitate the development and maintenance of their dictionaries and I'm
   ready to do this task. This work is important because it will not help a unique Language Pair, but all Pairs.

How and who will it benefit in society?

   I believe that all Apertium society will have direct or indirect benefit. Directly, the developers
   of language-pairs will have their task facilitated. With a good tool to help with the work, to create
   or maintain a language will become easier, and probably it will take less time to get better results.
   Indirectly, the users will have benefits with this better and robust result.

What do you plan to do?

   We're planing to create a GUI interface with features that facilitate common tasks of a user who wishes
   to manipulate a existing language pair or dictionary. These tasks will also be of great value to new
   users, who have an intuitive tool to start new language pairs.
   DixTools, tool developed for the apertium, currently already solves half the problem, especially the
   fact that a load XML into memory and do the reverse, it returns the XML in a suitable format.
   We believe that the main challenge of this task is to find a way to expand DixTools by adapting the
   existing classes as a persistence layer connected to a framework for GUI applications, supporting an
   integration of elements, providing tools to search, filter, integration and change.
   The application is developed for monolingual dictionaries manipulation, but its architecture will have
   to provide support for future extensions (Web and Collaborative) and bilingual dictionary.

Development Paradigm: MVC Paradigm
Program Language: Java/SWING
Persistence: XML (Apertium XML Files)
Framworks: Dixtools, JPA, Swing Application Framework


Week Stage Description
1, 2 Analysis of technology in handling memory To investigate and select an effective way to view and manipulate the XML files of Apertium in memory using Java.
Analysis of the best technologie that complement the functionality of DixTools during manipulation of XML.
Maybe a database integration, trying to use VTD-XML or extend dixTools Classes.
Testing and choosing the best alternative.
2, 3 Development of first prototype Development of an interface that tries to use a core of features like Load, Save, list , search and Filter elements.
Prototype Milestone 1 First version for community analysis. Provides the basic architecture, the interface model, and basic handling.
5, 6 Simple Structures Implementation of Symbols, Alphabet and statistic features.
Need Drawings experiments to create interface to users.
7 Paradigms First implementation of features with paradigms.
Need Drawings experiments to create interface to users.
8 Lemmas First implementation of features with lemmas.
Need Drawings experiments to create interface to users.
Prototype Milestone 2 Version for testing with huge dictionaries and complete edition test with basic features.
9 Paradigms With feedback of the community, adjusting the interface and implementation, and probably adding new features.
10 Lemmas With feedback of the community, adjusting the interface and implementation, and probably adding new features.
11 Pré-Release Security time to improve integration functionalities
Prototype Release Candidate
12 Makeup Fix remain bugs, final adjustments and documentation in Wiki
Final Release


   My name is Aléssio, a Brazilian Student at Federal University of Paraná and I have an ambitious objective to develop a
   complete environment to create and manage language pairs with a cooperative paradigm support in Apertium. 
   It is a huge and complex project that I want to my PH.D project at UFPR, Brazil.
   On top of that, I’m a prepared professional for this kind of challenge. I have 4 years of experience in development with
   Java/J2EE/UML, working in Brazilian companies. I really believe that the project is realistic and possible, although I
   need help to understand better the end-user features.

Resume of Skills

Apertium Knowledge:

   * I did a work with Apertium in my Master degree dissertation:
   * A study of actual Apertium process about creating a language pair by the user point of view.
   * An overview of this huge objective platform to develop languages.
   * An explanation of prototype interface to manage Monolingual and Bilingual Dictionary.

Academic Skills:

   * Degree in Computer Science - Universidade Federal de Viçosa – Brazil
   * Master of Computer Science - Federal University of Parana
   * Ph.D. candidate - University of Parana (Looking for a Tesis with Apertium)

Professional Skills:

   * Language developer: Java, Delphi, C++, PHP
   * SCJP 1.5: Sun Certified Java Program 1.5
   * Experience with UML Driven Development.
   * Experience with manipulation of XML using JAXB and XStream
   * Field: Software Engineering, Human Computer interaction, Design of Software Interfaces

Projects for Summer:

   * No professional activities planned.
   * Planning to work in GSOC
   * PH.D,