日本語入力システム『かんな』Version 3.2 について
三竿 夕子
今 昭
1994年 6月 1日
0. はじめる前に
1. はじめに
2. 『かんな』の特長について
3. 『かんな』を構成する物件
4. ドキュメントについて
5. 既知バグ
6. 謝辞
0. はじめる前に
本ファイルは『かんな』に関しての紹介が書いてあるファイルです。『かん
な』のインストールや前のバージョンからの変更点などに関しては INSTALL
や CHANGES を参照してください(CHANGES, INSTALL, README は日本語版に
対して完全にはアップデートされていません)。
1. はじめに
本ディレクトリより下にありますファイルは日本語入力システム『かんな』
Version 3.2 を構成するファイルです。『かんな』は日本語入力のための統
一的なユーザインタフェースを提供します。
※注: 『かんな』は開発コード『いろは』で開発された日本語入力システム
です。したがって、今でも『いろは』という名前を散見することがあ
ると思いますが、それは現在の『かんな』を意味することもあります
のでご注意下さい。
UNIX 上で共通に使える日本語入力システムとして Wnn が存在しました。
『かんな』は UNIX 上の日本語入力として Wnn 以外にもう一つの選択肢を
与えることができればと思いフリーソフトウェアとして誰でも利用できるよ
うにしました。
『かんな』は Wnn と同様、アプリケーションプログラムとかな漢字変換辞
書をアクセスするかな漢字変換サーバが別のプロセスとして分離されたクラ
イアント・サーバ型の動作をします。このことを含め『かんな』の特長とし
て以下があります。
(1) クライアント・サーバ方式のかな漢字変換
(2) 逐次自動変換のサポート
(3) 統一的なユーザインタフェースの提供
(4) 広範囲なカスタマイズのサポート
(5) lisp 言語ベースのカスタマイズ記述
(6) 単語登録時の最適な品詞づけ
(7) 統一的なユーザインタフェースを簡単に提供するためのライブラリ
(8) 辞書をメンテナンスするためのコマンド群
(9) カスタマイズを簡単に行うためのカスタマイズツールの提供
(10) Nemacs(Mule)、kinput2、uum のサポート
以下ではそれぞれの項目について説明します。
2. 『かんな』の特長について
2.1 クライアント・サーバ方式
『かんな』も Wnn 同様、かな漢字変換はかな漢字変換サーバと接続して実
際の変換を行うクライアント・サーバ方式を採用しています。
2.2 逐次自動変換方式のサポート
フリーで入手できるクライアント・サーバ方式のかな漢字変換システムとし
ては初めて逐次自動変換をサポートしました。従来のパーソナルコンピュー
タなどでは逐次自動変換の操作方法がぎこちない場合が多くありましたが、
連文節変換でのユーザインタフェースを自然に拡張する形の操作法を提供し
ており、誰でも自然に逐次自動変換を利用することが可能です。
2.3 統一的なユーザインタフェースの提供
筆者らは UNIX 上で日本語を入力する手段として Nemacs 上の『たまご』を
使用していました。『たまご』は Nemacs との親和性も良くユーザインタフェー
スが大変使いやすいという特長を持っていました。
いっぽう Nemacs を使わないで日本語を入力する場合、すなわち、コマンド
ライン等の入力では『たまご』が使えません。TTY での入力を行うプログラ
ムとしては Wnn(uum) がありましたが、Wnn は『たまご』と異なるユーザイ
ンタフェースを持っており『たまご』に慣れてしまっているものにはちょっ
とまごつくような場合がありました。例えば grep でちょっと日本語を入れ
たい時などによく苦労していました(結局 Emacs shell を使っていたのです
が)。
ほどなくしてXウィンドウをベースとしたアプリケーションプログラムが幅
を効かせて来ました。その中には xmh や xcalendar のような実際に是非使
いたいようなものも入って来ました。これらのXベースのアプリケーション
プログラムは当初英語だけを対象としており日本語化はされていませんでし
た。そのころは、これらのプログラムを日本語化し、日本語入力としても
『たまご』が使えればなどと夢を見たりしていました。
《『たまご』を作ろう》
ということで『たまご』のようなユーザインタフェースを持つものを作って
ライブラリとして提供しようということになりました。それが『かんな』で
す。
一言で言って『かんな』は『たまご』のユーザインタフェースをいたるとこ
ろ(すなわち、TTY やXクライアント)で提供するものであるということがで
きます。
『かんな』では当時の『たまご』では苦手だった読み入力後のローマ字変換
や字種変換、記号一覧なども取り込んであります。『かんな』は現状では
Emacs やXウィンドウ環境、TTY 上などで利用することが可能です。
2.4 広範囲なカスタマイズのサポート
カスタマイズファイルを用いてキーの割り当てやローマ字かな変換規則をは
じめとして、モード表示文字列、辞書の指定などのカスタマイズが行えます。
カスタマイズファイルは『かんな』を用いてかな漢字変換を行っているアプ
リケーション間で共有することが可能です。
2.5 lisp 言語ベースのカスタマイズ記述
既存のカスタマイズファイルのシンタックスは拡張性が乏しかったため、バー
ジョンアップ時に新しいカスタマイズ記述を組み入れると古いアプリケーショ
ンプログラムが回復不能なシンタックスエラーとなっていました。
これを lisp 言語のシンプルな構文をベースとすることで解決し、一部理解
できない部分があっても読み飛ばして次の設定を行うことを可能としました。
また、新形式では現在の『かんな』のバージョン、接続されているサーバの
バージョンなどを問い合わせることが可能であり、それらのバージョンによっ
て条件的にカスタマイズの設定を行うことが可能です。
2.6 単語登録時の最適な品詞づけ
ユーザインタフェースを整備するとき、ついでに単語登録でひと工夫を付け
加えました。
かな漢字変換では国語文法よりも詳細な品詞分けを行っています。例えば、
カ行五段活用の動詞『響く』は連用形活用語尾である『響き』も「良い響き
を持つホルン」のように名詞的に使われますが、同じカ行五段活用の動詞
『書く』に関しては「素晴らしい書きを持ってますね」のような使われ方は
しませんので違う品詞をつけます。
上記の 2 つの単語の品詞を区別するために、単語を登録するときに品詞の
細分化を行うための質問を行うようにしました。例えば、『響く』を新たに
登録したときに、『「響きがいい」は正しいですか?』のような用法に関す
る質問を利用者に対して行い、正確な品詞づけを行うための判断をしていま
す。
同様な判断は、名詞、形容詞、形容動詞などの登録のときにも行われます。
2.7 統一的なユーザインタフェースを簡単に提供するためのライブラリ
統一的なユーザインタフェースを簡単に各アプリケーションプログラムから
利用できるようにユーザインタフェースレベルのライブラリを提供していま
す。
本ライブラリは Wnn4 で提供されている高レベルライブラリよりもさらに高
いレベルのライブラリであり、入力されたキーの解釈もライブラリ内部で行っ
ています。
このライブラリのインタフェースは単純で入力となるキーを与えると表示す
るための文字列がアプリケーションプログラムに戻されるような形になって
います。キーの解釈などはライブラリ内部に隠されており、アプリケーショ
ンプログラムが意識する必要はありません。
このライブラリはマルチウィンドウからの入力を単一プロセスで行う場合に
も対応されています。各ウィンドウからの入力を、コンテクスト識別子によっ
て区別し、ライブラリに与えることにより複数のかな漢字変換を単一プロセ
ス内で並行して進めることが可能です。
2.8 辞書をメンテナンスするためのコマンド群
『かんな』はかな漢字変換辞書をメンテナンスするための 10 数個のツール
を持っています。それぞれのツールでは、以下の事が行えます。
・テキスト辞書とバイナリ辞書の相互変換
・サーバ配下で辞書の作成、削除、一覧、リネーム
・辞書のアップロード、ダウンロード
・辞書の項目のバッチ的な追加、削除
2.9 カスタマイズツールの提供
カスタマイズファイルを直接エディットする代わりにカスタマイズツール
(ccustom)を使ってカスタマイズ設定を行うことができます。
2.10 Nemacs(Mule)、kinput、uum のサポート
共通のユーザインタフェースを広く利用することができるように
Nemacs(Mule) に対するパッチを用意しています。また、Mule 0.9.5 版以降
では Mule のディストリビューションに『かんな』とのインタフェースが含
まれています。
既存のXのアプリケーションプログラムで kinput に対応しているものに関
しては、kinput2 でかな漢字変換エンジンとして『かんな』を用いることに
より、それらのアプリケーションプログラムで『かんな』のユーザインタフェー
スを用いて日本語入力することができます。
キャラクタ端末で使っている場合にも『かんな』が使えるように TTY 用の
フロントエンドである uum に対するパッチを提供します。uum につきまし
てはさらに canuum/README.j を参照してください。
3. 『かんな』を構成する物件
『かんな』は以下の物件から構成されます。
・かな漢字変換サーバ(cannaserver)
・ユーザインタフェースライブラリ(libcanna.a、libcanna.so.1)
・辞書アクセスライブラリリモート版(libRKC.a)
・辞書アクセスライブラリローカル版(libRK.a)
・辞書アクセスライブラリ Wnn 版(RKwnn.o)
・各種辞書メンテナンスコマンド
・『かんな』版 uum 作成のためのパッチファイル
・サンプルプログラム
4. ドキュメントについて
『かんな』のドキュメントは以下のようになっています。
(1) 『かんな』マニュアル
doc/man/guide の下に jLaTeX 形式で用意してあります。このドキュメン
トでは『かんな』を使うための手引全般が記述されています。
(2) 各種コマンドに関するドキュメント
cmd の下の各コマンドのソースプログラムが存在するディレクトリに
nroff/troff の man マクロで用意してあります。
ここで、日本語マニュアルページは拡張子 .jmn、英語マニュアルページ
は .man になっています。
(3) 各種ライブラリのアプリケーションインタフェースに関するドキュメント
lib/canna の下に nroff の man マクロで用意してあります。
(4) かな漢字変換プロトコルに関するドキュメント
doc/intern/protocol.tex として jLaTeX の形式で用意してあります。
『かんな』プロトコルのバージョンは、1.0, 1.1, 2.0, 2.1, 3.0, 3.2
があります。1.0, 1.1 のプロトコルに関してのドキュメントは、
doc/intern/proto12.tex として用意してあり、それ以外のプロトコルに
関しては doc/intern/protocol.tex として用意してあります。
(5) .canna lisp 言語仕様に関するドキュメント
doc/lisp/canlisp.tex として .canna をパースする lisp 言語仕様に関
するドキュメントが用意してあります。
(6) 『かんな』版 uum に関するドキュメント
canuum/README.jp に『かんな』版 uum に関する注意事項を記述していま
す。
(7) その他のドキュメント
ワイドキャラクタ定義の、各マシンでの違いの比較(wchar.tex)や、かな
漢字変換エンジンの切り替えを行うようにするためのコンパイルのしかた
に関する記述(engine.tx)が doc/misc 下にあります。
5. 既知バグ
今のところ以下の問題が解決しておりません。解決に向けてのご助言があり
ましたらお願いします。
(1) canuum が Solaris 2.1 でうまく動かない。
(2) canuum が SunOS 4.2 と gcc の組合せのときにうまく動かない。
(3) SONY NEWS で、canuum で作成される pseudo tty でターミナルのモー
ドがおかしい。
(4) 以下の英文マニュアルが足りない。
canuum/canuum.man
(5) 逐次自動変換でうまく変換できないことがある。
(6) Solaris 2.3 で core を吐く。
(7) コンパイルするときに以下の warning が出る。
Undefind row vectors: BM
6. 謝辞
『かんな』Version 3.2 は 1994 年 1 月からαリリースを行い、同年 3 月
からβリリースを行いました。αリリース、βリリースを通してメーリング
リストなどにてさまざまな方に協力していただきました。それぞれの版のコ
ンパイル報告を下さったり、また、コンパイル時の問題の指摘、見つけにく
いバグの指摘、さらにはパッチの案を届けてくださいました以下の方々に感
謝いたします。
IIJ の吉村伸氏、IBM の古畑ともたけ氏、アイザックの安富伸浩氏、キヤノ
ンの西島孝徳氏、京都大学の井上義也氏、慶應義塾大学の広瀬雄二氏、ソニ
ーの桐山哲明氏、中部大学の村山文孝氏、電気通信大学の高田哲司氏、電気
通信大学の谷口崇氏、電気通信大学の壷井彰久氏、東京大学の上野文裕氏、
東京大学の佐々木康晴氏、東北大学の金谷吉成氏、東京工業大学の萩原威志
氏、東京工業大学の森谷之信氏、東京工業大学の原川卓也氏、名古屋工業大
学の松岡康広氏、奈良先端科学技術大学院大学の坂本佳則氏、日本サンソフ
トの辻健二郎氏、日立ソフトの古場正行氏、富士通の小玉利彦氏、富士ゼロ
ックスの関範顕氏、情報技術開発株式会社京都ネットワーク技術研究所の力
武健次氏、松下技研の中村敦司氏、武蔵工大の谷野健一氏と加納正和氏、明
治大学の熊澤典良氏、横河ディジタルコンピュータの田畑良一氏、早稲田大
学の狩野宏樹氏、NECソフトウェアの高山雅樹氏、NEC技術情報システム開発
の松本隆一氏、大日本印刷の根岸まさお氏、NEC の酒井淳嗣氏。
慶応大学の大岩元教授には TUT コード入力を『かんな』の一機能として提
供することをご快諾いただきました。ありがとうございました。TUT コード
入力機能は『かんな』Version 2.2 patch level 2 より提供されました。
東大の古畑ともたけ氏は『かんな』Version 1.2 の Imakefile に対して不
具合の指摘及び修正用パッチをお送りくださいました(『かんな』はディレ
クトリの数がたくさんあり、Imakefile の数も半端ではありません)。『か
んな』Version 2.2 以降の Imakefile は氏のパッチをベースとしておりま
す。大変ありがとうございました。
大阪大学の升谷保博氏とNEC ソフトウェアの高山雅樹氏には、『かんな』の
ドキュメントの整備を行っていただきました。『かんな』の各種ディレクト
リはインストールによってどうなるかわからないため、ドキュメントと一致
しない場合があると言う問題がありました。この問題が解消されたのは両氏
のおかげです。どうもありがとうございました。
『かんな』のエンジン切替え部の HP-UX 対応部は松沢高志氏により記述さ
れております。さらに氏にはエンジン切替えと HP-UX に関していろいろと
ご助言を頂きました。ありがとうございました。
PRUG の関功氏、慶応義塾大学の広瀬雄二氏、名古屋工業大学の松岡康広氏
には、『かんな』を NEmacs や Mule から使う場合の不具合を指摘していた
だいたり、それを修正するためのパッチをいただきました。どうもありがと
うございました。NEmacs/Mule 関連に関しては本リリースには含まれません
が、別途改善して行きたいと思います。
cannaserver の TTY との切り離しや、可変個引数に関するポータブルなプ
ログラムの記述法に関して、奈良先端科学技術大学院大学の坂本佳則氏、
SRAの石曽根信氏、SRAの南野寿氏、東北大の金谷吉成氏、リコーの太田純氏、
DIT の徳川義崇氏、富士ゼロックス情報システムの神戸隆博氏に助言をいた
だきました。ありがとうございました。
DEC の 64 bit ワークステーション、DEC Alpha 上での問題がなかなか解決
しなかった時、日本 DEC 社のご厚意により、Alpha リソースセンタを利用
してデバグをすることができました。本利用に関してお骨折りいただいた、
小幡広昭氏、沖原務氏、渡辺哲氏に感謝します。
ASTEC の民田雅人氏は『かんな』メーリングリストの設立と運営をしてくだ
さりました。上記のようにたくさんの有益な情報が集まったのはもともとと
いえば民田氏のおかげです。本当にありがとうございました。
北陸先端科学技術大学院大学の藤枝和宏氏、早稲田大学の狩野宏樹氏、NEC
ソフトウェアの高山雅樹氏、NEC の山田洋志氏、には単語の品詞や接続に関
する意見をいただきました。特に藤枝氏は、『かんな』のかな漢字変換ロジ
ックに文章末記号を導入していただきました。『かんな』で変な文末が減っ
たなあと、お感じになられたとしたらこれは藤枝氏の力によるものです。『
かんな』の変換効率の向上にご尽力下さいました上記の方々に感謝いたしま
す。
/* Copyright 1994 NEC Corporation, Tokyo, Japan.
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without
* fee, provided that the above copyright notice appear in all copies
* and that both that copyright notice and this permission notice
* appear in supporting documentation, and that the name of NEC
* Corporation not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission. NEC Corporation makes no representations about the
* suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
* NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
($Id: README.jp,v 2.16 1994/06/13 01:21:43 kon Exp $)