説明
『かんな』では次の3階層のライブラリを提供します.
- ・
-
高レベルライブラリ
-
アプリケーションプログラムからはかな漢字変換を全く意識しないで利用でき 候補一覧表示を含む候補選択の処理などはかな漢字変換システム側で行われ, アプリケーション側へは確定された文字列だけが渡されます.TTYでの入力に おいてかな漢字変換フロントエンドを使っている場合には端末での入力に おけるシステムコールのread(cooked mode)やそれを利用したscanfなどが高レ ベルライブラリとみなすこともできます.しかし,高レベルライブラリライブ ラリを端的に表すようなライブラリとしてはXウィンドウにおける日本語アテ ナウィジェットのテキストウィジェットがそれに当たるでしょう.
-
- ・
-
ユーザインタフェースライブラリ
-
1文字の入力,1キーの入力に対応して,未確定文字,確定文字,注目文節位 置,ステータス表示のための文字列,候補一覧のための文字列などを返還する ライブラリです.辞書アクセスライブラリに見られるような,辞書のメンテナ ンスや,学習の制御などに関する機能は,このレベルのライブラリでは提供し ません.日本語入力ユーザインタフェースの大まかなラインは規定されること になりますが,表示部分に 若干の工夫をする余地は残ります.TTYにおいてrawモードで キーを取得したいアプリケーションや,Xウィンドウにおいて,図形 と文字を同じウィンドウ内で入力・表示したいアプリケーションはこのレベル のアプリケーションインタフェースを用いることをお薦めします.
-
- ・
-
辞書アクセスライブラリ
-
辞書のアクセスや候補の選択を直接制御したい時に用います.このレベルのか な漢字変換ライブラリでは,かな漢字変換システムの利用開始,読みから漢字 への変換,文節の切り分けの変更,次候補/前候補の取りだし,学習の制御, 辞書のメンテナンスなどの処理に対する関数インタフェースを提供します.辞 書アクセスライブラリはユーザインタフェースライブラリや高レベルライブラ リを構築するために用いられています.一般のユーザはあまり用いない方が良 いでしょう.
-
『かんな』では4つのヘッダファイルと3つのライブラリが提供されます.そ れぞれの概要を以下に示します.
- ・
-
ヘッダファイル
-
- X11/Xnw.h
- 日本語アテナウィジェットを用いる時に使用するヘッダファイルです.
- X11/kanji.h
- Xで日本語の入出力を行う時に使用するヘッダファイルです.
- canna/jrkanji.h
- TTYレベルの日本語の入出力を行う時に使用するヘッダファイルです.
- canna/RK.h
- 辞書アクセスライブラリを使用する時に用いるヘッダファイルです.
-
- ・
-
ライブラリ
-
- libXnw
- アテナウィジェットXawの日本語版です.アプリケーションプログラムはかな 漢字変換を全く意識することはありません.
- libXn
- Xで日本語を取り扱う時のライブラリ です.XLookupKanjiString,XDrawKanjiStringなどを使用する時はこのライブ ラリをリンクしなければなりません.
- libcanna
- 日本語入力のための中核となるライブラリです.
-
以下のように利用する関数によってライブラリのリンクと,ヘッダファイルの インクルードを行わなければなりません.
- ・
-
アテナウィジェット
-
- ヘッダファイル
- X11/Xnw.h
- ライブラリ
- libXnw,libXn,libcanna
-
- ・
-
XDrawKanjiString
-
- ヘッダファイル
- canna/kanji.h
- ライブラリ
- libXn
-
- ・
-
XLookupKanjiString, XKanjiControl
-
- ヘッダファイル
- canna/kanji.h
- ライブラリ
- libXn, libcanna
-
- ・
-
jrKanjiString, jrKanjiControl
-
- ヘッダファイル
- canna/jrkanji.h
- ライブラリ
- libcanna
-
- ・
-
辞書アクセスライブラリ
-
- ヘッダファイル
- canna/RK.h
- ライブラリ
- libcanna
-
変換コンテクスト
『かんな』では同時に複数のかな漢字変換を行うことができます.このため, それぞれのかな漢字変換を管理する方法として変換コンテクストを用いた制御 を行います.各コンテクストにはかな漢字変換を行うために必要な内部データ が確保されます.
アプリケーションは変換コンテクストをコンテクスト番号により識別します. コンテクスト番号は,0以上の整数値で表され,かな漢字変換関数の第1パラ メタとして使用されます.
辞書アクセスライブラリのRkInitialize(3)によりかな漢字変換が初期化され た直後には番号0の標準コンテクストだけが存在します.コンテクストをひと つだけ使用するアプリケーションは標準コンテクストを使用することができま す.
連文節変換の概要
連文節変換は,与えられたひらがなを解析して文節と呼ばれる単位に分けます. 解析例を示します.
「かなをかんじにへんかんする」 かなを 仮名を かなを かんじに 漢字に 幹事に 感じに かんじに へんかんする 変換する 返還する へんかんする
辞書アクセスライブラリの連文節変換機能で提供される関数は,この解析結果 を修正するか,解析情報を取得するかのいずれかに分類されます.これらの関 数では2次元的な候補アドレスを想定します.
解析されたN個の文節には,左から順番に文節番号0,1,・・・,N-1を与え,こ のうち現在注目している候補をカレント候補と呼びます.
例えば,「かなを」は文節番号0,候補番号0の候補と指定できます.ライブラ リではその代わりにコンテクストにカレント文節,カレント候補を仮定しパラ メタを簡略化しています.