update.
[chise/ruby.git] / doc / index.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <html>
3 <head>
4 <title>Ruby/CHISE</title>
5 <link rel="stylesheet" type="text/css" href="style.css">
6 </head>
7
8 <body>
9
10 <div class="container">
11 <div class="main">
12
13 <div class="adminmenu">
14 <a href="http://eto.com/2003/ruby/">Ruby/CHISE</a>
15 </div>
16
17 <h1>Ruby/CHISE</h1>
18
19 <div class="day">
20 <h2><a href="#about" name="about">■</a>Ruby/CHISEとは</h2>
21 <div class="body">
22 <div class="section">
23 <p>Ruby/CHISEは,XEmacs CHISEにおけるChaon実装をRubyへ移植することを試みたモジュールです.
24
25 <h3>Chaonモデルとは</h3>
26 <p>Chaonモデルとは,文字を符号ではなく素性によって扱う方法を意味します.
27 <p>Ruby/CHISEではそれを拡張し,文字をオブジェクトとして扱っています.
28 </div>
29 </div>
30 </div>
31
32 <div class="day">
33 <h2><a href="#download" name="download">■</a>download</h2>
34 <div class="body">
35 <div class="section">
36 <h3>最新版</h3>
37 <ul>
38 <li><a href="http://eto.com/2003/ruby/ruby-chise-0.2.tar.gz">ruby-chise-0.2.tar.gz</a>
39 </ul>
40
41 <h3>文字データベース</h3>
42 <p>Ruby/CHISEを使うには,別途文字データベースを用意する必要があります.
43 文字データベースはXEmacs CHISEと一緒に配付されてますが,
44 必要な環境(GNU/Linux)を用意できない人もいるため,
45 文字データベースのみを取り出したファイルを用意しました.
46 <ul>
47 <li>2003-11-04 : <a href="http://eto.com/2003/ruby/char-db.tar.gz" class="s">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" class="s">char-db-linux.tar.bz2</a> Linux用<br>
50 /usr/local/lib/xemacs-21.4.12/i686-pc-linux/char-db以下をtar.bz2にしたもの.
51 </ul>
52
53 <h3>CVS access</h3>
54 <p>CVSによる入手もできます.
55 <ul>
56 <li><a href="http://cvs.m17n.org/cgi-bin/viewcvs/ruby/?cvsroot=chise">CVS access</a>
57 </ul>
58
59 <h3>ライセンス</h3>
60 <p>GPLです.COPYINGをごらんください.</p>
61
62 </div>
63 </div>
64 </div>
65
66 <div class="day">
67 <h2><a href="#install" name="install">■</a>install</h2>
68 <div class="body">
69 <div class="section">
70
71 <p>chise以下を,適当なdirectoryに移動します.<br>
72 例:
73 <pre>
74 # mv chise /usr/local/lib/ruby/site_ruby/1.8
75 </pre>
76 <p>通常,<em>/usr/local/lib/ruby/site_ruby/</em>以下にinstallされます.
77
78 <p>拡張ライブラリは,ext以下にcdし,下記のように打ち込みます.
79 <pre>
80 % ruby extconf.rb
81 % make
82 # make install
83 </pre>
84 <p>拡張ライブラリが無くても動作します.ある場合は,高速化します.
85
86 <h3>config</h3>
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>
89 などを必要に応じて変更してください.
90 <p><em>IDS_DB_DIR = '/home/eto/work/chise/ids/''</em><br>
91 IDSのテキストファイルが置かれているディレクトリーを指すます.(下記の字形分解・合成についてを参照.)
92
93 <h3>依存関係</h3>
94 <p>下記のパッケージが必要です.
95 <ul>
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>以上
99 </ul>  
100 <p>一般にRubyのパッケージは
101 <a href="http://www.ruby-lang.org/raa/"><em>RAA</em></a>を使って探すことができます.
102
103 <h3>Unicode</h3>
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付属のメモ帳も使えます.
110 <p>見るだけであればIEが使えます.
111 </div>
112 </div>
113 </div>
114
115 <div class="day">
116 <h2><a href="#howto" name="howto">■</a>使い方</h2>
117 <div class="body">
118 <div class="section">
119
120 <h3>基本的な使い方</h3>
121 <pre>
122 require "chise"
123
124 str = "字"             # Stringを拡張している.UTF8で与える.
125 p str.ucs               # その文字のucsの値が表示される.
126 p str.total_strokes     # 画数が表示される.
127 p str.gb2312            # などなど.
128 str.each_feature {|f, v|        # 全素性を表示する.
129   print f, ": ", v, "\n"
130 }
131 </pre>
132
133 </div>
134 </div>
135 </div>
136
137 <div class="day">
138 <h2><a href="#ids" name="ids">■</a>字形分解・合成</h2>
139 <div class="body">
140 <div class="section">
141 <p>Ruby/CHISEは,もともと字形分解・合成を扱うために作られたため,その機能が強化されています.
142
143 <p>字形分解・合成は,現在はUnicodeにおけるIDS(Ideographic Description Structure)という仕様に準拠しています.
144 U+2FF0〜U+2FFBで表わされるIDC(Ideographic Description Characters)によって合成方法を指定し,これに続く二文字から三文字の文字を合成して表示します.
145
146 <h3>IDSを使うための準備</h3>
147
148 <p>下記のようにして,IDSのテキストファイル群を持ってきます.
149 <pre><small>% cd ~/work/chise (このディレクトリーは適宜変更する)
150 % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login
151 password: (何も入れずにただもう一度return)
152
153 % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/chise co -d ids ids
154 </small></pre>
155
156 <p>このようにすると,IDSのテキストファイル群を持ってくることができます.
157
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などが加わります.
164
165 <h3>字形分解</h3>
166 <p>Stringに,decompose, decompose_allという二つのメソッドがあります.
167 decomposeは一段階だけ分解します.decompose_allはそれを再帰的に行います.
168 <pre>
169 p "字".decompose
170 p "字".decompose_all
171 p "榊".decompose
172 p "榊".decompose_all
173 p "終了".decompose
174 p "終了".decompose_all
175 p "鬱".decompose
176 p "鬱".decompose_all
177 </pre>
178
179 <p>最初の説明から,字形分解されて出てきた結果の文字列には,
180 IDSキャラクターが含まれているため,うまく表示されない場合もあります.
181 メモ帳だと表示できます.
182
183 <h3>字形合成</h3>
184 <p>字形合成は,composeメソッドで行います.
185 <pre>
186 p "&#x2ff0;木木".compose
187 </pre>
188
189 <p>findメソッドで,ある部品が漢字の一部として含まれている漢字群を探すことができます.
190 <pre>
191 p "日雲".find
192 </pre>
193 <p>ここでは,日と雲という部品が含まれている全漢字を出力します.
194
195 </div>
196 </div>
197 </div>
198
199 <div class="day">
200 <h2><a href="#usage" name="usage">■</a>説明</h2>
201 <div class="body">
202 <div class="section">
203 <p>現時点では,test caseを見たほうが使い方はわかりやすいです.
204 <pre>
205 class String
206         char    先頭の文字をCharacterに変換したものを返す
207
208 class Character
209         []      ある素性をgetします.
210         []=     ある素性をputします.
211 存在しない素性を参照したときは,nilが返えってきます.
212 </pre>
213
214 <h3>tools</h3>
215 <p>詳しくは<em>tools/README</em>を参照してください.
216 <ul>
217 <li><em>define-kanji-meaning.rb</em> : 漢字の意味による分解を行うための情報を素性として定義します.
218 <li><em>dump-database.rb</em> : 文字データベースをテキストとしてダンプします.
219 <li><em>make-chisedb-tarball.rb</em> : XEmacs CHISEの文字データベースを,一つのtarballにまとめます.Windowsでは使えないファイル名を適宜変更します.UNIX上で使います.Windowsでtar.gzを展開するには,<a href="http://member.nifty.ne.jp/beambitious/">eo</a>がおすすめです.
220 <li><em>make-ids-database.rb</em> : IDSのテキストファイル群を読みこみ,素性として使えるようにします.
221 <li><em>move-obsolete-files.rb</em> : すでにobsoleteになった素性のBDBファイルをobsolete directoryに移動させます.
222 <li><em>rename-files.rb</em> : 古い構造の文字データベースのディレクトリ構造を,新しいディレクトリ構造に直します.
223 <li><em>trim_bom.rb</em> : Unicodeファイルを作ったときの先頭についてくるBOM(byte order mark)を削除します.
224 </ul>
225 </div>
226 </div>
227 </div>
228
229 <div class="day">
230 <h2><a href="#description" name="description">■</a>付属libraryの説明</h2>
231 <div class="body">
232 <div class="section">
233 <p>現時点では個々の詳細には立ち入りません.
234
235 <ul>
236
237 <li>ext/*<br>
238 C言語版のlibchiseを用いたextensionです.
239
240 <li>network.rb, makegraph.rb, graphviz.rb, defkanji.rb, kanjilist.rb<br>
241 漢字の部品間の接続関係を計算します.Graphvizによるグラフ化も行います.
242 <pre>
243 ruby makegraph.rb
244 </pre>
245 <p>Graphvizが必要です.min.svgが生成されます.
246
247 <pre>
248 ruby defkanji.rb
249 </pre>
250 <p>漢字の定義を行います.
251
252 <li>stroke.rb, kage.rb, kageserver.rb, csf.rb<br>
253 StrokeFontを用いるライブラリー群.
254 上地宏一氏によるKAGE System, 坂直純氏によるCSFという二つのStrokeFontが使えます.
255 別途フォントファイルが必要です.<br>
256 <tt>csf.rb</tt>中の<tt>CSF_FONT_DIR = 'd:/work/chise/csf/'</tt>を適切に設定してください.
257 <p>sglという独自のグラフィックライブラリーが必要ですが,これはまだ非公開です.
258
259 <pre>
260 ruby stroke.rb
261 </pre>
262 <p>漢字のCodeTableが表れ,その中の文字を表示できます.
263
264 <ul>
265 <li><a href="http://www.fonts.jp/">漢字フォント自動生成技術フォーラム</a>
266 <li><a href="http://web.sfc.keio.ac.jp/~kamichi/kage/kage.html">KAGEモデル</a>
267 <li><a href="http://www.vector.co.jp/soft/win95/writing/se256880.html">KST32ZX</a>, 篆文風(Zhuanwen-Like),漢字StrokeFont(KST)
268 <li><a href="http://www.vector.co.jp/soft/data/writing/se119277.html">KST32A</a>, 極めてコンパクトなJIS第一水準漢字(非漢字)ストローク・テーブル
269 </ul>
270
271 </ul>
272 </div>
273 </div>
274 </div>
275
276 <div class="day">
277 <h2><a href="#discussion" name="discussion">■</a>discussion</h2>
278 <div class="body">
279 <div class="section">
280 <p>
281 <h3>Ruby/M17Nとの整合性</h3>
282 <p>Ruby/M17Nとの整合性をどうとればいいか.
283 <ul>
284 <li><a href="http://www.inac.co.jp/~maki/ruby/ruby-i18n.html">M17N/I18N for Ruby</a>
285 <li><a href="http://www.inac.co.jp/~maki/ruby/matz-000516.html">Matz によるI18Nに関するコメント(2000/05/16) </a>
286 <li><a href="http://ns1.php.gr.jp/pipermail/php-dev/2002-April/000274.html">高橋征義氏による,Ruby M17Nの解説</a>
287 <li><a href="http://cvs.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/ruby/?only_with_tag=ruby_m17n">Ruby/M17N</a>
288 </ul>
289
290 <p>Ruby/M17Nブランチが本体に反映されるのは,ruby-1.8以降が予定されている.
291
292 <p>ソースコード中のm17n.c, m17n.hが該当個所.
293 内部的にはUTF-8として扱えるので,それを拡張すればいいか?
294 UTF-8の処理への追加という形で実装できる?
295
296 </div>
297 </div>
298 </div>
299
300 <div class="day">
301 <h2><a href="#links" name="links">■</a>links</h2>
302 <div class="body">
303 <div class="section">
304
305 <p>
306 <h3>CHISE project</h3>
307 <ul>
308 <li><a href="http://cvs.m17n.org/chise/">CHISE project</a>
309 (<a href="http://www.kanji.zinbun.kyoto-u.ac.jp/projects/chise/">kyoto-u</a>,
310 <a href="http://mousai.as.wakwak.ne.jp/projects/chise/">mousai</a>)
311 <li><a href="http://eto.com/2003/ruby/">Ruby/CHISE</a>
312 <li><a href="http://cvs.m17n.org/chise/ruby/index.html.ja.iso-2022-jp">Ruby/CHISE page at CHISE project</a>
313 <li><a href="http://cvs.m17n.org/cgi-bin/viewcvs/perl/?cvsroot=chise">師茂樹氏 Perl/CHISE → CHISE.pm</a>
314 </ul>
315
316 <h3>Ruby</h3>
317 <ul>
318 <li><a href="http://www.ruby-lang.org/ja/">Ruby</a>
319 <li><a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/11450">akr氏によるRuby/CHISE仕様案</a>
320 <li><a href="http://moulon.inra.fr/ruby/bdb.html">Ruby/BDB</a>
321 <li><a href="http://www.ruby-lang.org/~eban/ruby/binaries/mingw/ext/">eban氏によるコンパイル済みの拡張ライブラリー</a>
322 </ul>
323 </div>
324 </div>
325 </div>
326
327 <div class="day">
328 <h2><a href="#history" name="history">■</a>history</h2>
329 <div class="body">
330 <div class="section">
331 <ul>
332 <li>2003-0110   : テスト公開
333 <li>2003-0112   : XString追加
334 <li>2003-0115   : IDSの読み込み機能β版
335 <li>2003-0116   : IDSの読み込み機能1.0
336 <li>2003-0117   : XStringを廃止し,Stringに一本化.IDSの読み込み機能を強化.
337 <li>2003-0120   : IDS_Treeの読み込み機能を追加.木構造の整合性checkを追加.
338 <li>2003-0130   : IDSの逆変換機能などを追加.
339 <li>2003-0213   : <a href="http://eto.com/2003/ruby/ruby-chise-20030213.tar.bz2" class="s">ruby-chise-20030213.tar.bz2</a><br>
340 名称をRuby/UTF-2000からRuby/CHISEへと変更.
341 <li>2003-0312   : <a href="http://eto.com/2003/ruby/ruby-chise-20030312.tar.bz2" class="s">ruby-chise-20030312.tar.bz2</a><br>
342 様々なライブラリを追加.
343 <li>2003-1004   : <a href="http://eto.com/2003/ruby/ruby-chise-20031004.tar.bz2" class="s">ruby-chise-20031004.tar.bz2</a><br>
344 新しい素性名に対応した.Copyright noticeをいれた.
345 <li>2003-10-31  : <a href="http://lc.linux.or.jp/lc2003/">LC2003</a>にて発表.
346 <li>2003-1110   : <a href="http://eto.com/2003/ruby/ruby-chise-20031110.tar.bz2" class="s">ruby-chise-20031110.tar.bz2</a><br>
347 ディレクトリ構造をchise/*.rbとなるように変更.installerをつけた.
348 </ul>
349 </div>
350 </div>
351 </div>
352
353 <div class="sidebar">
354 <h2>menu</h2>
355 <ul>
356 <li><a href="#about">about</a>
357 <li><a href="#download">download</a>
358 <li><a href="#install">install</a>
359 <li><a href="#howto">howto</a>
360 <li><a href="#ids">ids</a>
361 <li><a href="#usage">usage</a>
362 <li><a href="#description">description</a>
363 <li><a href="#discussion">discussion</a>
364 <li><a href="#links">links</a>
365 <li><a href="#history">history</a>
366 </ul>
367 </div>
368
369 <div class="footer">
370 <address>author: <a href="http://eto.com/">Kouichirou Eto</a></address>
371 </div>
372
373 </div>
374 </div>
375
376 </body>
377 </html>