Ervin Yan's Weblog

Ervin Yan's Weblog

全部分类 | General | Java | Music
« Cairo Postscript... | Main | Plans For 2006 »

20050530 星期一 2005年05月30日

Proposal for IIIM GIMLET enhancement

To improve the usability, I'd like to propose a big enhancement with gimlet which based on significant redesign of gimlet, instead of bug fix.

We can make Gimlet act as an iiim desktop service agent, and have the following features:

1. Support PreFilter modules to do some preprocess for the keyevent before send to iiim server, such as:

a). Hotkey filter, different engines/different users/defferent locales may have different hotkeys.
b). keymapping filter.


2. Support common GUI modules, such as:

a). common status/preedit/candidates window
b). common configuration window
c). virtual keyboard.
d). should be scalable to support different window system, such as gtk/qt/Windows.
e). should be scalable to support iiimcf/user defined GUI(status/preedit/candidates) modules.


3. Provide interface to support local input modules, such as:

a). handwriting
b). voice recognization.
c). character lookup table.
d). user defined input engine.
e). user defined characters for specific input engine.
f). user defined keymapping.

4. Provide interface to support PostFilter modules to do some conversion for the commit result from iiim server, such as:

a). encoding converters, such as UTF-8 <-> big5
b). phrase converters, such as Simpified Chinese phrase <-> Traditional Chinese phrase.
c). others, such as, hagual<->hanja ...
d). user defined postfilters.


Each filtering should be registered whether or not they are needed so that the process can be ommitted.


5. Provide overall configuration panel to support:

a). input methods disable/enable
b). input method properties setting.
c). GUI styles switching.
d). Hotkey definition.
e). local input engine definition.


6. Support systray as Windows.


Event flow:

Two scenarios:

A). Fontend mode

gimlet can implement as a desktop service agent for iiim clients and server.

1. iiim client register gimlet for iiim desktop services. if not register, the iiim client events will be sent to iiim server directly.
2. iiim client sent events to gimlet first.
3. gimlet do prefilter process for the events.
4. gimlet sent prefilter result to iiim server.
5. iiim server send status/preedit/candidate/commit info back to gimlet.
6. if status/preedit/candidate info, gimlet use common GUI modules to show them.
7. if commit info, gimlet call postfilter modules and commit the result.


B). Backend mode

gimlet can implement an additional capability as a mini-cascaded server so that a possible optimization is possible, so that this significant modification proposal is a part of bigger picture.

gimlet is still on the desktop, however event is first sent to the server, then forwarded to gimlet, then gimlet perform pre-filter, then send back to the server and LE, then send to gimlet for post filtering.

( 2005年05月30日, 02:27:19 下午 CST ) Permalink 评论 [3]

反向跟踪 URL: http://blogs.sun.com/eyan/entry/proposal_for_iiim_gimlet_enhancement
评论:

So why not to use scim as the FrontEnd of IIIMF? Let's write a scim-iiimf adapter, so that IIIMF can make use of all that features available in SCIM.

发表于 James Su 在 2005年05月31日, 11:25 下午 CST #

So why not to use scim as the FrontEnd of IIIMF? Let's write a scim-iiimf adapter, so that IIIMF can make use of all that features available in SCIM.

发表于 James Su 在 2005年05月31日, 11:30 下午 CST #

I have recently installed Solaris 10 on an Athlon64 machine. I did not seem to see iiimf. Do you know how to install iiimf and gimlet in JDS3/Solaris? Thanks.

发表于 Ping-Wu Zhang 在 2005年06月05日, 03:04 上午 CST #

发表一条评论:

姓名:
电子邮件地址:
URL:

您的评论:

HTML语法: 禁用