wiki:DocsPage
Last modified 3 years ago Last modified on 03/25/11 03:30:36

Bharati Input Method for 11 Indic Languages

Bharati is an input method originally designed for Marathi. It works with IBUS, SCIM as well as M17N. The input method scheme is inscript based (one-to-one mapping) and implements a unique transformation rule of deleting on the fly the previous matra/dependent-vowel (would be explained shortly). Currently, bharati layout is available in 10 other Indic languages.

Before explaining how bharati is different from other inscript based layouts, let me explain some of the characteristics of inscript layout. In Inscript layout, the keystrokes correspond to dependent vowels, consonants, independent vowels, digits and various other signs, all of which have been assigned specific Unicode values.

When text is prepared through data entry, the user should be provided with an intelligent interface to generate desired text from the keystrokes.
Bharati attempts to bring intelligence to existing upstream Indic inscript layouts.

Comparison of upstream Indic inscript *.mim and bharati *.mim:

  • Upstream Indic inscript *.mim doesn't classify data into groups. Bharati *.mim classify data into meaningful groups such as independent vowels, consonants, dependent vowel signs, digits, etc.
  • Upstream Indic inscript *.mim is 'one to one' pattern mapping in m17n. Bharati too follows 'one to one' pattern mapping but when applied to specific language/script(s) applies certain transformation rule.

Now, I will explain how does the unique transformation rule of deleting on the fly the previous matra/dependent-vowel work.

In bharati, following transformation rule is implemented:
(consonant) + (dependent-vowel-1) + (dependent-vowel-2) == (consonant) + (dependent-vowel-2)

Example (devanagari script):
input sequence: क + ा + ि + ी + ु + ू + े + ै + ो + ौ

mr-inscript.mim: कािीुूेैोौ
mr-bharati.mim: कौ

i.e. Previous matra/dependent-vowel sign is deleted on the fly.

Benefits of bharati *.mim over Indic inscript *.mim:

  • Allows user to delete on the fly the previous matra/dependent-vowel sign.
  • Bharati layout implements following:

(consonant) + [ (dependent-vowel-1) * n ] == (consonant) + (dependent-vowel-1)

Example (devanagari script):
input sequence: क+ ि+ ि+ ि+ ि+ ि+ ि+ ि+ ि+ ि+ ि

mr-inscript.mim: किििििििििि
mr-bharati.mim: कि

i.e. Number of matra/dependent-vowel after consonant is restricted to one.

  • With bharati it is also possible to type in perfectly legal Unicode strings (but without any linguistic content) as in the illustration below:

कििुीमिोौोैॉोििििििििि

  • Provides on the fly validation check of data entry of invalid syllable (often displayed with dotted circle).
  • Helps in improving the typing speed (since data entry with minimal keystrokes is handled).

Download:

You can download the .mim files from here. Icons for each language are also provided. You can see .mim files for Hindi, Marathi, Assamese, Bengali, Punjabi, Gujarati, Oriya, Tamil, Telugu, Kannada and Malayalam.

Note: source files for above languages are generated from Marathi mapping file using a Python script.

If you are interested in testing and/or correcting the maps for your language, please proceed ahead with "Installation" and/or "Correction of maps".

Installation:

Download the tar ball containing all the .mim files and icons from here. Extract it and run 'make install' with root user.

Note: Before moving ahead with the installation, you need to install ibus-m17n or scim-m17n package.

Now, if using iBus, right click on ibus icon and select "Restart" to restart iBus. Whereas, if using scim, restarting X is required to restart scim.

Adding bharati layout:

If using iBus:

  • Right click the iBus icon in the notification area (top panel)
  • Go to Preferences -> Input Method
  • In the "Select an input method", select Marathi->bharati
  • Click Add button
  • Press Close, Right Click on ibus icon, select "Restart"
  • Press Alt+F2
  • Open gedit
  • Enable iBus/Input Method and select your language > bharati layout
  • Start typing

If using scim:

  • Restart X by pressing "Ctrl+Alt+Delete" OR do "logout+login"
  • Press Alt+F2
  • Open gedit
  • Enable scim/Input Method and select your language > bharati layout
  • Start typing

Correction of maps:

Open the .mim file for your language using any text editor. If known pattern is not found in .mim file just add the missing line(s) as per the “lisp” syntax.

Once you are done, install it by just copying it to /usr/share/m17n directory.

Note: If using ibus, right click on ibus icon and select "Restart" to restart iBus. Whereas, if using scim, restarting X is required to restart scim.