chise_swig_perl
これは何?
chiseライブラリ(concord + libchise)をPerlで利用するための仕組みです。SWIGを利用しています。Cygwinでも利用可能です。
ダウンロード
CVSリポジトリより入手してください。
% cvs -d:pserver:anonymous@cvs.m17n.org:/cvs/chise co kage/tools
内容
- chise.i
- SWIG定義インターフェイスファイル
- chiseperl.pl
- 簡単にlibchiseを使うための高級(?)ライブラリ
ビルド
すでにconcordとlibchiseが使える状態であると仮定します。Cygwin等適宜ディレクトリを読みかえてください。
% swig -c++ -perl -I/usr/local/include chise.i % g++ -c chise_wrap.cxx -I/usr/lib/perl/5.8/CORE % g++ -shared -lchise chise_wrap.o -o chise.so -Wl,-rpath,/usr/local/lib
(上記はCGI等で利用するために -Wl,-rpath,/usr/local/lib のオプションを含めてライブラリパスも埋め込んでいます)
完了
最終的に以下のファイルを利用します
- chise.pm
- chise.so または chise.dll
- chiseperl.pl
活用
chise.hを元に、libchiseの関数を呼び出してもいいのですが、chiseperl.plを活用するともう少し簡単にlibchiseをPerlから利用できます。
関数
- void init_chise();
- 初期化します。必ず実行してください
- void close_chise();
- バッファ等を開放します
- void update_chise();
- chise_feature_sync相当関数。新オブジェクトの割り当てや、素性の更新処理をデータベースに反映させます。
- void search_newid();
- 未使用の文字オブジェクトIDを探します。内部用です。
- $var get_feature_value($feature, $char_id);
- chise_char_gets_feature_value相当。素性名とcharIDから素性を得ます
- $var set_feature_value($feature, $char_id, $value);
- chise_char_set_feature_value相当。素性をセットします
- $var create_new_char($feature, $value);
- 新しい文字オブジェクトを生成します
- $char_id decode_char($feature_char, $int);
- chise_ds_decode_char相当。CCSとコードからUCSコードを得ます(?)
グローバル変数
いわゆるPerlのモジュールっぽくない実装になっています。基本的に内部でしか使いません。
- $chise_ds
- CHISEデータベースセットのハンドル
- @chise_feature
- 素性の一覧リスト(文字列)
- @chise_ft
- 全素性のハンドル
- $chise_newid
- void search_newid();の結果が格納されます
サンプルは?
すみません。準備中です。たとえばCHISE漢字連環図を参考することができます。
ところで
現在Cygwinでコンパイルはできますが、現在のlibchiseバージョンに対応したCHISE文字データベースをCygwin上で用意することはできません。この問題はもうすぐ解決されるはずです。
リンク
- CHISE Project
- SWIG on Perl 大変参考になります。
- CHISE漢字連環図 chise_swig_perl を実際に利用しています。
KAMICHI Koichi -- fonts.jp