1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <title>Ruby/CHISE</title>
5 <link rel="stylesheet" type="text/css" href="style.css">
10 <div class="container">
13 <div class="adminmenu">
14 <a href="index.html.ja">Japanese</a>/<a href="index.html.en">English</a>
20 <h2><a href="#about" name="about">■</a>Ruby/CHISEとは</h2>
23 <p>Ruby/CHISEは,XEmacs CHISEにおけるChaon実装をRubyへ移植することを試みたモジュールです.
26 <p>Chaonモデルとは,文字を符号ではなく素性によって扱う方法を意味します.
27 <p>Ruby/CHISEではそれを拡張し,文字をオブジェクトとして扱っています.
33 <h2><a href="#download" name="download">■</a>download</h2>
38 <li><a href="http://eto.com/2003/ruby/ruby-chise-0.2.tar.gz">ruby-chise-0.2.tar.gz</a>
42 <p>Ruby/CHISEを使うには,別途文字データベースを用意する必要があります.
43 文字データベースはXEmacs CHISEと一緒に配付されてますが,
44 必要な環境(GNU/Linux)を用意できない人もいるため,
45 文字データベースのみを取り出したファイルを用意しました.
47 <li>2003-11-04 : <a href="http://eto.com/2003/ruby/char-db.tar.gz">char-db.tar.gz</a> Windows用<br>
48 LinuxでXEmacs CHISEをinstallし,付属のmkdbtarball.rbを使った作成した.tar.gzにしたもの.
49 <li>2003-11-04 : <a href="http://eto.com/2003/ruby/char-db-linux.tar.bz2">char-db-linux.tar.bz2</a> Linux用<br>
50 /usr/local/lib/xemacs-21.4.12/i686-pc-linux/char-db以下をtar.bz2にしたもの.
56 <li><a href="http://cvs.m17n.org/cgi-bin/viewcvs/ruby/?cvsroot=chise">CVS access</a>
60 <p>GPLです.COPYINGをごらんください.</p>
67 <h2><a href="#install" name="install">■</a>install</h2>
71 <p>chise以下を,適当なdirectoryに移動します.<br>
74 # mv chise /usr/local/lib/ruby/site_ruby/1.8
76 <p>通常,<em>/usr/local/lib/ruby/site_ruby/</em>以下にinstallされます.
78 <p>拡張ライブラリは,ext以下にcdし,下記のように打ち込みます.
84 <p>拡張ライブラリが無くても動作します.ある場合は,高速化します.
87 <p><em>chise/config.rb</em>内および,<em>ext/config.h</em>内にて
88 <p><em>DB_DIR = '/usr/local/lib/xemacs-21.4.10/i686-pc-linux/char-db'</em><br>
90 <p><em>IDS_DB_DIR = '/home/eto/work/chise/ids/''</em><br>
91 IDSのテキストファイルが置かれているディレクトリーを指すます.(下記の字形分解・合成についてを参照.)
96 <li><a href="http://www.sleepycat.com/">db3-3.2.9</a>以上
97 <li><a href="http://www.ruby-lang.org/~eban/ruby/binaries/mingw/ext/">bdb-0.5.0</a>以上
98 <li><a href="http://www.ruby-lang.org/ja/">ruby 1.8.1</a>以上
101 <a href="http://www.ruby-lang.org/raa/"><em>RAA</em></a>を使って探すことができます.
104 <p>現状では,Ruby/CHISEに渡す文字コードはUTF-8のUnicodeにしておくと便利です.
105 <p>将来的にはプログラム自体がSJIS,EUCなどで書かれていても
106 問題なく処理できるようにしたいと思っています.
107 <p>WindowsでUnicodeを使えるエディターとして,Meadow + Mule-UCSが使えます.
108 <p>フリーのUnicode対応エディターとして「<a href="http://members.tripod.co.jp/sakura_editor/">サクラエディタ</a>」が使えます.
109 <p>また,Windows付属のメモ帳も使えます.
116 <h2><a href="#howto" name="howto">■</a>使い方</h2>
118 <div class="section">
124 str = "字" # Stringを拡張している.UTF8で与える.
125 p str.ucs # その文字のucsの値が表示される.
126 p str.total_strokes # 画数が表示される.
128 str.each_feature {|f, v| # 全素性を表示する.
129 print f, ": ", v, "\n"
138 <h2><a href="#ids" name="ids">■</a>字形分解・合成</h2>
140 <div class="section">
141 <p>Ruby/CHISEは,もともと字形分解・合成を扱うために作られたため,その機能が強化されています.
143 <p>字形分解・合成は,現在はUnicodeにおけるIDS(Ideographic Description Structure)という仕様に準拠しています.
144 U+2FF0〜U+2FFBで表わされるIDC(Ideographic Description Characters)によって合成方法を指定し,これに続く二文字から三文字の文字を合成して表示します.
148 <p>下記のようにして,IDSのテキストファイル群を持ってきます.
149 <pre><small>% cd ~/work/chise (このディレクトリーは適宜変更する)
150 % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login
151 password: (何も入れずにただもう一度return)
153 % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/chise co -d ids ids
156 <p>このようにすると,IDSのテキストファイル群を持ってくることができます.
158 <p>その後,<em>chise/config.rb</em>内の,<br>
159 <em>IDS_DB_DIR = '/home/eto/work/chise/ids/''</em><br>
160 ここに,上記のIDSテキストファイル群を持ってきたディレクトリーを入れます.
161 このようにして適切に<em>IDS_DB_DIR</em>を設定し,
162 <em>./tools/idsdbdumpall.rb</em>を実行します.(かなり時間がかかります.)
163 これで,文字素性として新たにidsなどが加わります.
166 <p>Stringに,decompose, decompose_allという二つのメソッドがあります.
167 decomposeは一段階だけ分解します.decompose_allはそれを再帰的に行います.
179 <p>最初の説明から,字形分解されて出てきた結果の文字列には,
180 IDSキャラクターが含まれているため,うまく表示されない場合もあります.
184 <p>字形合成は,composeメソッドで行います.
186 p "⿰木木".compose
189 <p>findメソッドで,ある部品が漢字の一部として含まれている漢字群を探すことができます.
193 <p>ここでは,日と雲という部品が含まれている全漢字を出力します.
200 <h2><a href="#usage" name="usage">■</a>説明</h2>
202 <div class="section">
203 <p>現時点では,test caseを見たほうが使い方はわかりやすいです.
206 char 先頭の文字をCharacterに変換したものを返す
210 存在しない素性を参照したときは,nilが返えってきます.
216 <dt>define-kanji-meaning.rb
217 <dd>漢字の意味による分解を行うための情報を素性として定義します.
219 <dd>文字データベースをテキストとしてダンプします.中身を見ることができます.
220 <dt>make-chisedb-tarball.rb
223 Usage: make-chisedb-tarball.rb <directory of XEmacs CHISE> <tmp dir>
226 % ./make-chisedb-tarball.rb /usr/local/lib/xemacs-21.4.14/i686-pc-linux
229 XEmacs CHISEの文字データベースを,一つのtarballにまとめます.Windowsで
230 は使えないファイル名を適宜変更します.UNIX上で使います.
232 Windowsでtar.gzを展開するには,
233 <a href="http://member.nifty.ne.jp/beambitious/">eo</a>がおすすめです.
235 <dt>make-ids-database.rb
236 <dd>IDSのテキストファイル群を読みこみ,素性として使えるようにします.
239 <dt>move-obsolete-files.rb
240 <dd>すでにobsoleteになった素性のBDBファイルをobsolete directoryに移動させます.
243 <dd>古い構造の文字データベースのディレクトリ構造を,新しいディレクトリ構造に直します.
246 <dd>Unicodeファイルを作ったときの先頭についてくるBOM(byte order mark)を削除します.
254 <h2><a href="#description" name="description">■</a>付属libraryの説明</h2>
256 <div class="section">
261 C言語版のlibchiseを用いたextensionです.
263 <li>network.rb, makegraph.rb, graphviz.rb, defkanji.rb, kanjilist.rb<br>
264 漢字の部品間の接続関係を計算します.Graphvizによるグラフ化も行います.
268 <p>Graphvizが必要です.min.svgが生成されます.
275 <li>stroke.rb, kage.rb, kageserver.rb, csf.rb<br>
276 StrokeFontを用いるライブラリー群.
277 上地宏一氏によるKAGE System, 坂直純氏によるCSFという二つのStrokeFontが使えます.
279 <tt>csf.rb</tt>中の<tt>CSF_FONT_DIR = 'd:/work/chise/csf/'</tt>を適切に設定してください.
280 <p>sglという独自のグラフィックライブラリーが必要ですが,これはまだ非公開です.
285 <p>漢字のCodeTableが表れ,その中の文字を表示できます.
288 <li><a href="http://www.fonts.jp/">漢字フォント自動生成技術フォーラム</a>
289 <li><a href="http://web.sfc.keio.ac.jp/~kamichi/kage/kage.html">KAGEモデル</a>
290 <li><a href="http://www.vector.co.jp/soft/win95/writing/se256880.html">KST32ZX</a>, 篆文風(Zhuanwen-Like),漢字StrokeFont(KST)
291 <li><a href="http://www.vector.co.jp/soft/data/writing/se119277.html">KST32A</a>, 極めてコンパクトなJIS第一水準漢字(非漢字)ストローク・テーブル
300 <h2><a href="#discussion" name="discussion">■</a>discussion</h2>
302 <div class="section">
304 <h3>Ruby/M17Nとの整合性</h3>
305 <p>Ruby/M17Nとの整合性をどうとればいいか.
307 <li><a href="http://www.inac.co.jp/~maki/ruby/ruby-i18n.html">M17N/I18N for Ruby</a>
308 <li><a href="http://www.inac.co.jp/~maki/ruby/matz-000516.html">Matz によるI18Nに関するコメント(2000/05/16) </a>
309 <li><a href="http://ns1.php.gr.jp/pipermail/php-dev/2002-April/000274.html">高橋征義氏による,Ruby M17Nの解説</a>
310 <li><a href="http://cvs.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/ruby/?only_with_tag=ruby_m17n">Ruby/M17N</a>
318 <h2><a href="#links" name="links">■</a>links</h2>
320 <div class="section">
323 <h3>CHISE project</h3>
325 <li><a href="http://cvs.m17n.org/chise/">CHISE project</a>
326 (<a href="http://www.kanji.zinbun.kyoto-u.ac.jp/projects/chise/">kyoto-u</a>,
327 <a href="http://mousai.as.wakwak.ne.jp/projects/chise/">mousai</a>)
328 <li><a href="http://eto.com/2003/ruby/">Ruby/CHISE</a>
329 <li><a href="http://cvs.m17n.org/chise/ruby/index.html.ja.iso-2022-jp">Ruby/CHISE page at CHISE project</a>
330 <li><a href="http://cvs.m17n.org/cgi-bin/viewcvs/perl/?cvsroot=chise">師茂樹氏 Perl/CHISE → CHISE.pm</a>
335 <li><a href="http://www.ruby-lang.org/ja/">Ruby</a>
336 <li><a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/11450">akr氏によるRuby/CHISE仕様案</a>
337 <li><a href="http://moulon.inra.fr/ruby/bdb.html">Ruby/BDB</a>
338 <li><a href="http://www.ruby-lang.org/~eban/ruby/binaries/mingw/ext/">eban氏によるコンパイル済みの拡張ライブラリー</a>
345 <h2><a href="#history" name="history">■</a>history</h2>
347 <div class="section">
349 <li>2003-0110 : テスト公開
350 <li>2003-0112 : XString追加
351 <li>2003-0115 : IDSの読み込み機能β版
352 <li>2003-0116 : IDSの読み込み機能1.0
353 <li>2003-0117 : XStringを廃止し,Stringに一本化.IDSの読み込み機能を強化.
354 <li>2003-0120 : IDS_Treeの読み込み機能を追加.木構造の整合性checkを追加.
355 <li>2003-0130 : IDSの逆変換機能などを追加.
356 <li>2003-0213 : <a href="http://eto.com/2003/ruby/ruby-chise-20030213.tar.bz2">ruby-chise-20030213.tar.bz2</a><br>
357 名称をRuby/UTF-2000からRuby/CHISEへと変更.
358 <li>2003-0312 : <a href="http://eto.com/2003/ruby/ruby-chise-20030312.tar.bz2">ruby-chise-20030312.tar.bz2</a><br>
360 <li>2003-1004 : <a href="http://eto.com/2003/ruby/ruby-chise-20031004.tar.bz2">ruby-chise-20031004.tar.bz2</a><br>
361 新しい素性名に対応した.Copyright noticeをいれた.
362 <li>2003-10-31 : <a href="http://lc.linux.or.jp/lc2003/">LC2003</a>にて発表.
363 <li>2003-1110 : <a href="http://eto.com/2003/ruby/ruby-chise-20031110.tar.bz2">ruby-chise-20031110.tar.bz2</a><br>
364 ディレクトリ構造をchise/*.rbとなるように変更.installerをつけた.
365 <li>2004-07-08 : <a href="http://eto.com/2003/ruby/ruby-chise-0.2.tar.gz">ruby-chise-0.2.targz</a><br>
366 libchiseに対応した.他,多数の変更.
372 <div class="sidebar">
375 <li><a href="#about">about</a>
376 <li><a href="#download">download</a>
377 <li><a href="#install">install</a>
378 <li><a href="#howto">howto</a>
379 <li><a href="#ids">ids</a>
380 <li><a href="#usage">usage</a>
381 <li><a href="#description">description</a>
382 <li><a href="#discussion">discussion</a>
383 <li><a href="#links">links</a>
384 <li><a href="#history">history</a>
389 <address>author: <a href="http://eto.com/">Kouichirou Eto</a></address>