-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.jp
347 lines (247 loc) · 19.3 KB
/
README.jp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
-*- coding:utf-8 -*-
日本語入力システム『かんな』Version 3.6 について
Canna Project
http://canna.sourceforge.jp/
0. はじめる前に
本ファイルは『かんな』に関しての紹介が書いてあるファイルです。『かん
な』のインストールや前のバージョンからの変更点などに関しては INSTALL
や CHANGES を参照してください(CHANGES, INSTALL, README は日本語版に
対して完全にはアップデートされていません)。
1. はじめに
本ディレクトリより下にありますファイルは日本語入力システム『かんな』
Version 3.6 を構成するファイルです。『かんな』は日本語入力のための統
一的なユーザインタフェースを提供します。
※注: 『かんな』は開発コード『いろは』で開発された日本語入力システム
です。したがって、今でも『いろは』という名前を散見することがあ
ると思いますが、それは現在の『かんな』を意味することもあります
のでご注意下さい。
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)
・各種辞書メンテナンスコマンド
・『かんな』版 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. 謝辞
『かんな』は元々、今氏を中心に、NECでフリーソフトウェアとして開発され
ました。素晴らしいソフトウェアを開発してくださいましたNECに感謝いたし
ます。
また、現在『かんな』の開発や配布に必要なサービスのほとんどを提供して
下さっている、sourceforge.jpの皆さんに感謝を申し上げます。
Debian GNU/Linuxのパッチからは、多くのコードを借用させていただきまし
た。Debianの開発者の皆さん、特にパッケージメンテナの柳原良亮氏、石川
睦氏に感謝します。
また、NEC時代にも、メーリングリストなどを通して、さまざまな方が開発
に協力してくださいました。それぞれの版のコンパイル報告、コンパイル時
の問題の指摘、見つけにくいバグの指摘、さらにはパッチなど、さまざまな
形で『かんな』を発展させてくださいました以下の皆さんに感謝します。
日本IBMの上野博氏、浜名湖地域ネットワーク研究会の小池志郎氏、フリー
ライターの羽根秀也氏、つばい氏。
慶応大学の大岩元教授には 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 の山田洋志氏、には単語の品詞や接続に関
する意見をいただきました。特に藤枝氏は、『かんな』のかな漢字変換ロジ
ックに文章末記号を導入していただきました。『かんな』で変な文末が減っ
たなあと、お感じになられたとしたらこれは藤枝氏の力によるものです。『
かんな』の変換効率の向上にご尽力下さいました上記の方々に感謝いたしま
す。
ASTEC、SRA、東京インターネット、Hamamatsu Business Internet、
Hamanako-Area Network Society、龍谷大学の各サイトでは『かんな』のソー
スファイルなどをミラーしていただいています。各サイトの担当者の方々に
感謝いたします。