[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