ローマ字ひらがな変換ライブラリ suikyo

suikyo 「水鏡」とは

suikyo は決定性オートマトンに基づいて, 文字列の変換を行うライブラリです. 主には「ローマ字ひらがな変換」に使用されます. 例えば "suikyou" という 文字列から "すいきょう" と変換を行なったり, 逆に "すいきょう" から "suikyou" に変換することが可能です.

変換を行うためのルールを表すフォーマットについては詳しくは後述しますが, canna の .kpdef フォーマットとほぼ同様です. そのため .kpdef フォーマットに よる変換ルールをそのまま利用できます.

最新版

各言語用ライブラリ

suikyo は 2003-12-30 の時点で, 以下の言語用ライブラリがあります. 各言語別の説明は以下のリンクからのページにあります.

インストール

パッケージ

Debian パッケージを http://taiyaki.org/debian/から 取得できます. パッケージ名は suikyo-table, libsuikyo-ruby, suikyo-elisp です. 高宮安仁さんに 作成していただきました. ありがとうございます.

ダウンロード

http://taiyaki.org/suikyo/src/ からダウンロードして下さい.

インストール

suikyo のディレクトリ直下にある suikyo.config を編集して, インストール先の ディレクトリを設定して下さい. おそらくはデフォルトのままでも問題ないと 思います.

編集後 "make install" を実行すると, 変換ルールのファイル, Ruby 用ライブラリ, Emacs Lisp 用ライブラリがインストールされます.

アンインストール

"make uninstall" の実行でアンインストールされます. ただし, suikyo.config がインストール時と同じ内容である必要があります.

変換ルールのフォーマット

基本的なルール

基本的な変換ルールは, 以下に示すように, タブまたは空白で区切られた 2つもしくは 3つの項目から構成されます. ( 実際のファイル)

a	あ
ta	た
tt	っ	t

1つ目の項目が「入力データ」, 2つ目の項目が「変換データ」, 3つ目の項目が「保留データ」です. 入力データを変換データに置き換える というのが基本的なルールになります.

3つ目の保留データがある場合, 変換後, 保留データが未変換の文字列の先頭に 追加されます. 例えば "tta" と入力した場合, "tt" が "っ" に変換されて "t" が書き戻されて, 未変換の文字列は "ta" になります. その後, "ta" が "た" に変換されて, 最終的に "tta" が "った" に変換されます.

コメント記号

行頭が '#' で始まる 1行, または行頭が '/*' で始まり '*/' を含む行までを コメントとして扱います. '/*' も行頭で始まる必要があり, また '*/' 以降の 文字列もコメントして扱われてしまうので注意して下さい.

canna の .kpdef フォーマットでは '#ifdef' などにより条件分岐が可能ですが, suikyo では条件分岐はできません. '#ifdef' もただのコメントとして 扱われます.

実用には問題ないと判断したので, いい加減なコメントの仕様になっています. そのうち適切に修正する予定ですが, 現時点での優先順位は低いです.

特殊文字

バックスラッシュ (または円記号) '\' は特殊文字です. '\' に続く文字との組み合わせによって, さまざまな意味を表します.

記号意味
\\ バックスラッシュ '\' を表します.
\# シャープ '#' を表します.
\0 空文字 '' を表します. 便宜上用意してありますが, 何も書かなくても同じ意味になります.
\xNN 16 進数 NN で示された文字を表します. 例えば '\x22' なら, ダブルクウォーテーション '"' になります.

テーブルファイル名

2003-12-30 現在, 以下の変換用テーブルが用意されています.

ファイル名機能
romaji ローマ字ひらがな
romaji_reverse ひらがなローマ字
kana かな配列ひらがな
kana_reverse ひらがなかな配列
egg-mark egg記号入力記号
egg-mark_reverse 記号egg記号入力
hiragana-katakana ひらがなカタカナ
katakana-hiragana カタカナひらがな
romaji-kana ローマ字ひらがな (obsolete)
kana-romaji ひらがなローマ字 (obsolete)
azik azik入力ひらがな
skk-mark SKK記号入力記号
skk-mark_reverse 記号SKK記号入力
tcode T-Code文字
tcode_reverse 文字T-Code
tcode-dvorak T-Code文字 (Dvorak 配列)
tcode-dvorak_reverse 文字T-Code (Dvorak 配列)

T-Code 用のテーブルは, 高橋直人から御提供いただきました. ありがとうございます.

更新履歴

Ver 1.2.1
かな入力, AZIK, SKK記号, Egg記号, T-code, T-code (Dvorak配列) のデータ追加
Ver 1.2.0
Ver 1.1.2(2003-05-16)
Ver 1.1.1(2003-05-07)
Ver 1.1.0(2003-04-25)
Ver 1.0.1(2002-11-26)
Ver 1.0.0(2002-11-23)

小松 弘幸 <komatsu@taiyaki.org>
$Id: index.html,v 1.3 2003/12/30 13:16:58 komatsu Exp $