[Uim] Glossary

TOKUNAGA Hiroyuki tkng at xem.jp
Sun Aug 14 21:28:44 EEST 2005


In the source of uim, we use some technical terms without explanation.

That is wrong from the point of view of new people inducement. In
addition, now ourself are confused about the usage of some words.

In this mail, I want to define technical terms for uim. Some of them
may need discussion.

I'll draw a diagram of these words later.

* preedit

Preedit is a string which is not yet input to an application. This is
used when plural key events are need to determine 1 input character.
For example, to input o-umulaut, following key sequence is used. 

    Multi_key, o, "

When o was input, what sould be input could not be determined. (When '
come after o, then o-accute will be input. When ` come after o, then
o-grave will be input.)

In general, preedit is displayed with underline or reversed background
color.

Note that preedit could be plural characters.

* commit

Once we could determine the characters which should be input actually,
then libuim tells to an application that 'these characters were input'.

This behavior is called 'commit'. Note that you *CANNOT* assume that
string which should be committed is same as 'preedit' before the
committing in the case of uim.


* segment

In uim, segment often means segment of a sentence. For example, in
anthy, converting preedit is a sequence of one or more segments. You
should know this concept if you want to input Japanese. If not, this
would be needless.


* candidate

Frequently one preedit has plural convertion candidate. For example, in
Japanese, at first we input Hiragana (phnogram of Japanese), then
convert them to Kanji (Ideogram of Japanese). At the time of
converting, often we need to select one candidate from selections.
Candidate is used in such situation.

To be exact, it need not be 'conversion' candidate. For example, in
the case of PRIME, candidate is guessed rather than the result of
convertion.


* context

Context is a unit of inputting. This is sometimes called as 'input
context'. Normally, one text widget has one context. But in some
application, plural text widgets share one input context. (i.e.
Mozilla.)


* bridge

Bridge is a glue code between applications and uim. There are many
bridges on uim.

  * GTK+ bridge    (GTK+ immodule)
  * Qt bridge      (Qt immodule)
  * XIM bridge     (uim-xim)
  * Console bridge (uim-fep)
  * Emacs bridge   (uim.el)
  * Mac bridge     (MacUIM)


* plugin

Plugin is a mechanism to extend uim's Scheme interpreter with C. Mainly
used to write a glue code between uim and conversion software such as Anthy.


* module

Once I planned to use this word as a name of the part which handle
actual input and convert. But this word seems causing misunderstanding,
therefore I decided that I don't give a clear definition of this word
for now.


* input method

 (1) A software to input characters which cannot input from keyboard
     directly.
 (2) Part of uim which handles (key) events actually. 


* helper

Helper is a dark side of uim. Helper is an identifier used in:

  (a) Which are related on inter process communication
  (b) Which are neither core nor bridge

(a) and (b) should not be identified with the same identifier. In
addition, 'helper' is not intuitive.

Therefore now we make an effort to reduce the use of this word. For
example, in 0.5 series, most of the code which releated on inter
process communication will be given new identifier 'message bus'.



Regards,

-- 
TOKUNAGA Hiroyuki
tkng at xem jp





More information about the uim mailing list