update.
[chise/ruby.git] / doc / index.html.ja
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="index.html.ja">Japanese</a>/<a href="index.html.en">English</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">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にしたもの.
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                 存在しない素性を参照したときは,nilが返えってきます.
211         []=     ある素性をputします.
212 </pre>
213
214 <h3>tools</h3>
215 <dl>
216 <dt>define-kanji-meaning.rb
217 <dd>漢字の意味による分解を行うための情報を素性として定義します.
218 <dt>dump-database.rb
219 <dd>文字データベースをテキストとしてダンプします.中身を見ることができます.
220 <dt>make-chisedb-tarball.rb
221 <dd>
222 <pre>
223 Usage: make-chisedb-tarball.rb &lt;directory of XEmacs CHISE&gt; &lt;tmp dir&gt;
224 </pre>
225 <pre><small>example.
226  % ./make-chisedb-tarball.rb /usr/local/lib/xemacs-21.4.14/i686-pc-linux
227 </small></pre>
228
229 XEmacs CHISEの文字データベースを,一つのtarballにまとめます.Windowsで
230 は使えないファイル名を適宜変更します.UNIX上で使います.
231
232 Windowsでtar.gzを展開するには,
233 <a href="http://member.nifty.ne.jp/beambitious/">eo</a>がおすすめです.
234
235 <dt>make-ids-database.rb
236 <dd>IDSのテキストファイル群を読みこみ,素性として使えるようにします.
237 実行には時間がかかります.
238
239 <dt>move-obsolete-files.rb
240 <dd>すでにobsoleteになった素性のBDBファイルをobsolete directoryに移動させます.
241
242 <dt>rename-files.rb
243 <dd>古い構造の文字データベースのディレクトリ構造を,新しいディレクトリ構造に直します.
244
245 <dt>trim_bom.rb
246 <dd>Unicodeファイルを作ったときの先頭についてくるBOM(byte order mark)を削除します.
247
248 </dl>
249 </div>
250 </div>
251 </div>
252
253 <div class="day">
254 <h2><a href="#description" name="description">■</a>付属libraryの説明</h2>
255 <div class="body">
256 <div class="section">
257
258 <ul>
259
260 <li>ext/*<br>
261 C言語版のlibchiseを用いたextensionです.
262
263 <li>network.rb, makegraph.rb, graphviz.rb, defkanji.rb, kanjilist.rb<br>
264 漢字の部品間の接続関係を計算します.Graphvizによるグラフ化も行います.
265 <pre>
266 ruby makegraph.rb
267 </pre>
268 <p>Graphvizが必要です.min.svgが生成されます.
269
270 <pre>
271 ruby defkanji.rb
272 </pre>
273 <p>漢字の定義を行います.
274
275 <li>stroke.rb, kage.rb, kageserver.rb, csf.rb<br>
276 StrokeFontを用いるライブラリー群.
277 上地宏一氏によるKAGE System, 坂直純氏によるCSFという二つのStrokeFontが使えます.
278 別途フォントファイルが必要です.<br>
279 <tt>csf.rb</tt>中の<tt>CSF_FONT_DIR = 'd:/work/chise/csf/'</tt>を適切に設定してください.
280 <p>sglという独自のグラフィックライブラリーが必要ですが,これはまだ非公開です.
281
282 <pre>
283 ruby stroke.rb
284 </pre>
285 <p>漢字のCodeTableが表れ,その中の文字を表示できます.
286
287 <ul>
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第一水準漢字(非漢字)ストローク・テーブル
292 </ul>
293
294 </ul>
295 </div>
296 </div>
297 </div>
298
299 <div class="day">
300 <h2><a href="#discussion" name="discussion">■</a>discussion</h2>
301 <div class="body">
302 <div class="section">
303 <p>
304 <h3>Ruby/M17Nとの整合性</h3>
305 <p>Ruby/M17Nとの整合性をどうとればいいか.
306 <ul>
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>
311 </ul>
312
313 </div>
314 </div>
315 </div>
316
317 <div class="day">
318 <h2><a href="#links" name="links">■</a>links</h2>
319 <div class="body">
320 <div class="section">
321
322 <p>
323 <h3>CHISE project</h3>
324 <ul>
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>
331 </ul>
332
333 <h3>Ruby</h3>
334 <ul>
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>
339 </ul>
340 </div>
341 </div>
342 </div>
343
344 <div class="day">
345 <h2><a href="#history" name="history">■</a>history</h2>
346 <div class="body">
347 <div class="section">
348 <ul>
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>
359 様々なライブラリを追加.
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に対応した.他,多数の変更.
367 </ul>
368 </div>
369 </div>
370 </div>
371
372 <div class="sidebar">
373 <h2>menu</h2>
374 <ul>
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>
385 </ul>
386 </div>
387
388 <div class="footer">
389 <address>author: <a href="http://eto.com/">Kouichirou Eto</a></address>
390 </div>
391
392 </div>
393 </div>
394
395 </body>
396 </html>