English Version

Wnnについての基礎知識

Wnn の概要を、フリーソフトのWnn4.2 と商品のWnn6 の2つをポイント にして説明します。

Wnn(うんぬ)とは?

 京都大学、オムロン株式会社、株式会社アステックによって共同開発され、 1987年に完成した UNIX上のかな漢字変換システム。Watashino Namaeha Nakanodesu(私の名前は中野です)という文章の一括変換ができる (当時は、文章を一括変換できることは画期的だった!)システム ということで、その文の各文節の頭文字をとって名付けられた。

 C言語で 書かれたソースコードが無料で配布されたことから、多くのワークステーショ ン上で使われるようになり、現在では、UNIX上のかな漢字変換システムの デファクト・スタンダード(事実上の標準)となっている。

 一番の特徴はクライアント・サーバ方式を採用していることで、 サーバ部分(jserver)は、 X Window System 上の入力システムであるxwnmoの かな漢字変換エンジンとしてや、Nemacs/ Muleたまご(egg) のかな漢字変換エンジンとして、使われている。

図:Wnnのモジュール構成

 1991年に公開された Wnn4.1 からは中国語、各種 ヨーロッパ語の入力システムの機能が付加され、多言語入力システムと なった。フリーで提供されている最新版は、1994年にリリースされた Wnn4.2 で、このバージョンには、韓国語連文節変換の機能 と X11R6 サポートの機能とが加わっている。

図:Wnnのバージョンの流れ
( 書籍「マルチリンガル環境の構築」2章 p.44 より抜粋)

 そして、1995年にリリースされた Wnn6 、1996年にリリースされた Windows95 用のマルチリンガルWnn95(日本語版、中国語版、韓国語版がある)は、商品と して、オムロンソフトウェア(株)から販売された。


*クライアント・サーバ構成のWnn

 Wnnは、サーバ部分の jserever(ジェーサーバ)、クライアント部分の uumなどから構成される。サーバとクライアントはそれぞれ独立していて、 TCP/IPと呼ばれるプロトコルで通信しているため、それぞれを 別のマシン上に置くことができる。

図:クライアント・サーバ方式のWnnの構成
書籍「マルチリンガル環境の構築」2章 p.45 より抜粋)

 たとえば、ユーザが「わたしのなまえはなかのです」などと入力した文字列 は、クライアント(uum、egg など)からサーバに渡される。文字列を渡された サーバは、辞書などの情報を参照しながら変換結果を探し出し、「私の名前は 中野です」という結果をクライアントに返すというしくみになっている。


*サーバに接続されるクライアントの種類

 jserver のクライアントとして、一般的に次のものが使われている。
uum(うーむ)
Wnn の標準のフロントエンドプロセッサ。wnn を180度回転させて命名された。

xwnmo(えっくすうんも)
X Window System から Wnn を使う場合に使われる。

たまご(egg)
GNU Emacs の日本語版の Nemacs、 多国語版の Mule の中でかな漢字変換環境を提供している。

*Wnnの持つ6つの特徴

 Wnn(うんぬ)が初めて登場した 1987年から、 Wnn 以下の6つの特長を持っていた。それから長い年月が流れ、Wnnに、 中国語、韓国語、台湾語に対応した変換サーバ(それぞれ、 cserver、kserver、tserver)と各言語用の辞書が追加されたり、 X Window System の標準の多言語入力システムとして使われるようになったりと、 Wnn は成長を続けたが、これらの特長は守り続けられた。
(1)文章一括変換の実現

かな漢字変換の主流は単文節変換であった時代に、開発者の中野秀治さん (オムロン社員) の「これから開発するのだから、『私の(Watashino) 名前は(Namaeha) 中野です(Nakanodesu)』くらいの文章は一発で変換できるものにしよう!」 という一言で、文章一括変換のシステムが開発されることになった。 1985年のことであった。

(2)クライアント・サーバ方式の採用

複数のマシンから同じユーザ辞書や学習結果を参照したり、メモリ領域 を節約したりするため。

(3)他のシステムや他の人とのやりとりを可能にすること

システム辞書とユーザ辞書の形式などの情報をすべて公開。

(4)いろいろなマシンで共通に使えること

ソースコードを移植性の高いC言語で記述することで、多くのマシンへの 移植を容易に。

(5)ユーザーが独自のアプリケーションを開発できるようにすること

変換ルーチンなどをライブラリで提供し、内部構造も公開することで、 ユーザーが独自のアプリケーションを開発できるようした。この結果、 Wnn のサーバ部分を利用して日本語入力を実現する「たまご(egg)」 が、電総研にて誕生した。

(6)できるだけ広めて多くの人が使えるようにすること

ソースコードを無料で提供することで、多くの人が使えるようにした。
しかし1995年4月に登場したWnn6は、フリーソフトの Wnn が持ち続けてきた 上記の6つの特長のうち(1)~(4)を強化し、(5)の内部公開と(6)の無料配布 を あきらめることによって誕生したものであった。開発を担当したのは、オムロン (株)のIT研究所、販売を担当しているのはオムロンソフトウェア (株)である。

*Wnn6 で強化された機能とは

Wnn6 で強化された機能を、上記のWnnの特長と対応させて説明してみる。
(1)文章一括変換の実現
→ FI機能の導入により変換効率が大幅に向上

キーワードとなっている FI とは、フレキシブル・インテリジェンス (Flexible Intelligence)のことで、flexible は「融通のきく、適応性の ある、弾力的な」という意味である。Wnn6 の持つFI機能の中心となっている のが、格情報を持つ文節と述語文節との接続関係を考慮して変換するFI変換 機能と、文節間の関係を学習して変換するFI学習機能である。

このために使われるのが、270万用例からなる「FI関係システム辞書」と、 ユーザーごとに存在するFI関係のユーザー辞書ファイル群である。なお、Wnn6 は「FI関係システム辞書」以外に、20万語のシステム辞書(ちなみに Wnn4 の辞書 pubdic は3万5000語)も使って変換をおこなっている。

(2)クライアント・サーバ方式の採用
→ クライアント・サーバ方式の活用

現在では、クライアント・サーバ方式を採用しているということ自体は当り 前で、それをいかに活用できるしくみを持っているかが大切である。Wnn6 は、 クライアント・サーバ方式を活用することで実現された、次の機能を持ってい る。

・オフライン学習機能
変換効率の向上と資源の節約を目的として、自動的にユーザー辞書ファイ ル群の持つ頻度値を最適化したり、複数のユーザ辞書に登録されている単 語を調査してマージ辞書に登録したりする機能がある。

・サーバの管理者向け機能
アクセス認可情報の設定によりクライアントを制限したり、変換サーバ のホストマシンを指定したりする、システム管理者向けの機能である。

・パラメータの自動チューニング機能
変換に大きく影響する17種類のパラメータの中から、7種類のパラメー タの値を自動的に、最適化する機能である。

・複数のサーバを利用する機能
ポート番号をずらすことによって、一つのマシンに複数の jserver を置く ことができる。

(3)他のシステムや他の人とのやりとりを可能にすること
→ 他の日本語入力システムや他人の辞書の利用が可能

他の日本語入力システム(ATOK7、ATOK8、VJE-Delta、EGBRIDGE)で作成さ れたユーザ辞書も、Wnn6 で準備されている辞書コンバータ(otow)を利用す ることで、Wnn6 で使える辞書に変換して利用することができる。もちろん、 Wnn4 で使っていた辞書も流用することができる。

(4)いろいろなマシンで共通に使えること
→ UNIXワークステーション上だけでなく、Windows95 などでも使える

Wnn6 を Windows95 上で使うための「Wnn95 for Windows95」も販売されて いる。そして、1997年7月には、「Wnn6 for Linux/FreeBSD」も発売された。

参考文献:
[1] 「UNIX の日本語処理がわかる本 ~最新Wnn活用ガイド」
栗林博監修、よしだともこ著、日刊工業新聞社 1993年発行、3,800円
[2] 「UNIX USER 誌」1995.7 月号記事「かな漢字変換システム Wnn6」
よしだともこ著
[3 「マルチリンガル環境の構築 ~X Window/Wnn/Mule/WWWブラウザでの 多言語環境~」
錦見美貴子、高橋直人、戸村哲、半田剣一、桑理聖二、向川信一、吉田智子著、 プレンティスホール発行、1996年9月発行、4,300円

用語説明:
uum(うーむ)

Wnn の持つキャラクタ端末用のFEPで、端末の最下行を使って入力、変換を 行う。日本語用がuum、中国語(簡体字)用が cuum、中国語(繁体字) 用が tuum、韓国語用が kuum という名前である。これらモジュールは独立 しているが、それを構築するソースコードは一本化されており、コンパイル オプションで作成するモジュールが選択できるようになっている。


xwnmo

Wnn の持つ、X Window System 上の多言語入力システムである。Wnn が 中国語入力の機能を持つ Wnn4.1 になったのと同時に、xwnmo も マルチリンガル対応のものが開発された。Wnn4.2 の xwnmo は、 中国語、韓国語、各種ヨーロッパ言語の入力システムとして使われる。 uum とは異なり、1つのモジュールで、複数の変換サーバと接続する ことができる。


Nemacs
Nihongo Emacs

1987年6月に最初のバージョンが公開された Nemacs は、 通産省工業技術院 電子技術総合研究所で開発されたもので、 日本語と英語の二カ国語のみを取り扱うことのできる、ローカライズ されたエディタであった。1988年6月の バージョン2.1からは、 Wnn の jserver と直接通信してかな漢字変換を行なうシステム「たまご」 が組み込まれ、容易な日本語入力が可能になった。

なお、Nemacs は1990年6月の Ver. 3.3.2 (藤娘バージョン)を最後に 開発を終了し、以降は Mule がこれに取って代わった。


Mule(みゅーる)
MULtilingual Enhancement to GNU Emacs

複数の文字集合を取り扱えるように GNU Emacs を拡張したエディタで、 通産省工業技術院 電子技術総合研究所で開発された。 ISO 2022 を満たす文字集合を中心に、多くの文字集合を扱える仕組みを 持つと同時に、拡張もできる。

1991年暮れから開発がスタートした Mule は、1993年8月にはMule Ver.1.0 (桐壷)が公開された。1995年7月24日公開の Ver.2.3 (末摘花)は、GNU Emacs 19.28 をベースにしている。その後、 Mule と GNU Emacs との統合を目指した作業が進行し、1997年には、 Mule と GNU Emacs を統合しemacs20 が登場している。1997年10月現在の 最新バージョンは、emacs20.2 である。


たまご

Mule/Nemacs で使われる多言語入力メソッドの一つ。ネットワーク 上の変換サーバとの通信を用いて入力文字の変換を行なうものである。 Mule で使われる「たまご」は、正確には「たまご(たかなバージョン)」で、 Mule 2.3 では、日本語、韓国語および中国語簡体字について、これを 用いることができる。

ちなみに、たまごの語源は、「たくさん・またせて・ごめんなさい。」 たかなの語源は、「たまごよ・かしこく・な~れ。」である。


Wnnについてさらに詳しく知りたい方は、「Wnn関連用語集」を、参照のこと。
Last Update : Aug 25 2004 by T.Yoshida
このページは、よしだともこ が作成しました。