April 24, 2008

Unihan (漢統輸入系統) 也採開源發展


事實上不是新聞,早在半年前,大陸 [新華科技] 即將用於該公司華鐳 RAYS LX - Linux 桌面作業系統的 [Unihan2 中文輸入法系統],公佈其大部分原始程式碼,授權條款為 GNU LGPL,並架設於 Google Code 的 [Unihan] 專案上,維護者就是知名的 Debian 開發者 [Roger So]。

我與 Roger So 有一面之緣,時間是 2004 年,當時正思考 [IIIMF] 與 SCIM 設計並著手改善輸入法設計的我,得知 [openi18n] 主席 Hideki Hiura、XIM/IIIMF 架構設計者,來台與本地的開發者作面對面交流,自然很歡欣地前往。先跟 Hideki Hiura 身旁同行的開發者聊到當時 Debian 對於多個 IIIMF 套件打包維護的問題,我提到:
    「幾天前發信給 Debian mainatainer, Roger So, 但是他沒有回覆訊息,也不知道 Debian 現在的處理態度如何。」
沒想到,那位開發者竟回覆道:
    「我就是 Roger So」
可想而知,有眼不識泰山的我,是有多麼震撼,也因此得知頗多第一手的資訊。過去,推動 IIIMF 最積極的兩家公司是 Sun Microsystems (Hideki Hiura 的老東家) 與新華科技 (Roger So 擔任該公司 CTO 一職),Unihan2 (漢統) 即後者最知名的、以 IIIMF 為基礎的中文輸入法平台,內含紫光拼音、智能 ABC、五筆等十三種輸入法,允許使用者添加刪除輸入法模組,並作簡繁轉換輸入,其大略的系統示意圖如下:

IIIMF 主要分成兩部份:
  • IIIMSF (IIIM Server Framework) - 提供與平台無關的 LE (Language Engine) 讓 client 存取必要的輸入法處理的服務,透過其 LEIF (LE Interface) 讓程式開發者得以專注於輸入法的邏輯流程處理,而不需擔憂平台設計
  • IIIMCF (IIIM Client Framework) - 與平台接軌之處,可接上 X11 XIM, Java, Emacs, Gtk+, Qt, 等等執行環境
不過,IIIMF 基本上還只是框架,若要發展為傳統中文輸入法的模樣,有頗多地方需要改進,所以 Unihan 首先藉由 IIIMSF 發展若干 LE,有表格導向、需要特別詞庫猜字選詞,也有手寫辨識引擎等等。再來,因為許多輸入法需要與使用者保持互動,不免要有特製的 UI,在 IIIMCF 中引入 xaux 來輔助 X11 的顯示,Unihan 也提供 Gtk+/GNOME 平台的支援。

Roger So 在 Unihan 中,把原本複雜的 IIIMF 包裝成較為容易開發的模式,可參照以 Doxygen 產生的 [C++ API 文件] 與範例輸入法:[unihan-sample-2.5.tar.bz2]。這個簡化的模型中,系統架構如下圖:

doc/api.txt 則是簡要的描述,基本上掌握輸入法的 state machine,即可快速開發輸入法的邏輯處理,詳情可參照範例的 src/sample.cpp。關於 Unihan 的資源,除了 Google Code 的專案網頁外,可在新華科技的 [漢統Unihan 論壇] 找到一些討論,此外,就少見蹤跡,大概跟過去 closed-source 模式有關。

值得注意的是,Unihan 作者 Roger So 的 blog 文章 [Input Method API Now (nearly) Standardised on Linux] 提及在今年一月份,由中、日、韓等國政府資助的 [Northeast Asia OSS Promotion Forum] (NEAOSS) 的 IMSWG (輸入法標準工作小組) 會議中,蘇哲 (SCIM) 與 Hideki Hiura (IIIMF/XIM) 出席共同制定下一代的輸入法架構,可望讓現有 UNIX 的輸入法架構分歧更加收斂,目前呼聲頗高的 [IMBus] 標榜 "The next generation input method framework for Linux",很可能成為彙整包含 Unicon 在內的輸入法開發資源,期待種種開放原始碼的系統,得以有新的發展。
由 jserv 發表於 April 24, 2008 03:46 PM
迴響

哇,竟然被 jserv 大大發現了,寫得還比我詳盡呢 XD

jserv 大過獎了,其實我很懶,這幾個月來一直都沒有碰過 Unihan……

spacehunt 發表於 April 25, 2008 10:38 AM

@spacehunt

wow! Roger So 耶,感謝留言,我一直對 IM framework 有高度興趣,儘管現在還沒有頭緒。

jserv 發表於 April 25, 2008 09:25 PM
發表迴響









記住我的資訊?