

             日本語入力システム『かんな』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 を使っていたのです
  が)。

  ほどなくしてＸウィンドウをベースとしたアプリケーションプログラムが幅
  を効かせて来ました。その中には xmh や xcalendar のような実際に是非使
  いたいようなものも入って来ました。これらのＸベースのアプリケーション
  プログラムは当初英語だけを対象としており日本語化はされていませんでし
  た。そのころは、これらのプログラムを日本語化し、日本語入力としても
  『たまご』が使えればなどと夢を見たりしていました。

《『たまご』を作ろう》

  ということで『たまご』のようなユーザインタフェースを持つものを作って
  ライブラリとして提供しようということになりました。それが『かんな』で
  す。

  一言で言って『かんな』は『たまご』のユーザインタフェースをいたるとこ
  ろ(すなわち、TTY やＸクライアント)で提供するものであるということがで
  きます。

 『かんな』では当時の『たまご』では苦手だった読み入力後のローマ字変換
  や字種変換、記号一覧なども取り込んであります。『かんな』は現状では 
  Emacs やＸウィンドウ環境、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 のディストリビューションに『かんな』とのインタフェースが含
  まれています。

  既存のＸのアプリケーションプログラムで 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、龍谷大学の各サイトでは『かんな』のソー
  スファイルなどをミラーしていただいています。各サイトの担当者の方々に
  感謝いたします。

/* Copyright (c) 2002-2003 Canna Project. All rights reserved.
 *
 * 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 the
 * author and contributors not be used in advertising or publicity
 * pertaining to distribution of the software without specific, written
 * prior permission.  The author and contributors no representations
 * about the suitability of this software for any purpose.  It is
 * provided "as is" without express or implied warranty.
 *
 * THE AUTHOR AND CONTRIBUTORS DISCLAIMS ALL WARRANTIES WITH REGARD TO
 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS, IN NO EVENT SHALL THE AUTHOR AND CONTRIBUTORS 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. 
 */

/* 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 1.4 2003/09/25 15:24:31 aida_s Exp $)
