Gama IME: An AJAX web-based Japanese Input Method Editor

Gama Japanese IME - web-based Input Method Editor

For my undergraduate thesis, I chose to develop a web-based Japanese Input Method Editor. The resulting system is called Gama IME, with obvious reference to my University (universitas GAdjah MAda). The client uses JavaScript and the server uses C# with SQLite as its database. Client-server communication utilizes AJAX. Word data is provided by the EDICT project.

Rule chaining

The grammar rules are defined using a custom language which describes the inflection. Since rules can be chained, the program can infer complex grammar from a chain of elementary ones.

Here is an example rule:

adj/*i/*kunai/neg

It says that words with the type adj (adjective) and ends with -i can have the -i changed into -kunai. The resulting word will get an additional type neg (signifying negative).

Here is another easy rule that describes the negative inflection of ru-verbs (ichidan doushi):

v1/*ru/*nai/neg

Both rules above can be chained for example with this rule:

neg/*i/*kat'ta/past

All the rules are defined in a text file, so changes can be easily done without a recompile. Here is the rule file when I completed the thesis (you will find special syntax on some rules to deal with the quirks of the Japanese writing system).

You can see a live demo of the client here which can do romaji to kana transliteration. However the server-side kanji transliteration is disabled because I couldn’t find a place to host my ASP.NET component for free.

I chose to license the program in GPL. However there are many steps required to compile everything and make it running, since the Gama IME system is composed of independent interacting components. I’ll upload the source code once I’ve documented the build and deployment instruction. For now, you can read the thesis itself (Introduction, Content, Appendix) or the presentation (both in Indonesian with English abstract).

If you want to be informed when I upload the source code, feel free to ask me so in the comments.

See also:

  • Taku Kudo’s AJAX IME (I was aware of this IME back then, and it’s mentioned on my paper. My IME is generally inferior because it cannot break complex sentences into inflectable units. e.g., to get 吾輩は猫である we must input wagahaiha and nekodearu seperately into Gama IME)
  • Gownfull (my friend mentioned this to me much much later)
Share and Enjoy:
  • Digg
  • del.icio.us
  • Technorati
  • Slashdot
  • StumbleUpon
  • Sphinn
  • Facebook
  • Mixx
  • Google
  • TwitThis
  • Live

Leave a Reply