# Namazu 2.0 入門

Namazu 2.0 を初めて使う方のための入門書です。

## 目次

- 本書の目的
- 開発の推移
- Namazu の構成部品
- 準備と make
- 日本語環境での利用
- make install 前の確認
- help の表示
- 動作確認 mknmz
- mknmz の調整
- 動作確認 namazu
- Namazu でできること
- できないこと
- その他
- 用語
- 参照

## 本書の目的

- Namazu 2.0 を初めてインストールする方
- Namazu を初めて使う方、Namazu 2.0 を初めて使う方

を対象に、Namazu を使い始める時の困難を少しでも減らせるよう にという目的で書かれています。Namazu の全ての機能については、 説明書 があります。またインストー ルについては INSTALL-ja ファイルに説明があります。

## 開発の推移

1.3.0.x から 2.0 への開発は次のように推移してきました。

1.3.0.x
  旧安定版。1.3.0.10 以前のものは 外部からゴミのファイルを作られる可能性があるので、 1.3.0.11 に更新した方がいい。
  1.3.0.11 が最新
1.3.1.0
  開発版。チェックポイント機能 (mknmz が定期的に自分自身を exec し直してプロセスの膨張を防ぐ -s オプション) が導入された。 が、正式公開はされず、開発は 1.4.0.0 へと移った。
1.4.0.0
  開発版。Perl モジュールを使った高速化が導入された。
  が、正式公開はされず、開発は 1.9.x へと移った。
1.9.x
  2.0 への開発中のものを不定期に公開したもの。
  1.9.12 以前のものには外部からゴミのファイルを作られる可能性 がある。
2.0
  2000/02 から公開されている安定版。
current
  次の版に向けて開発の続いているもの current は CVS で取得できます。

## Namazu の構成部品

Namazu は大きくわけて mknmz, namazu, namazu.cgi の三つから構成されています。

- mknmz
  インデックスをあらかじめ作る。(Perl で書かれている)
- namazu
  作成したインデックスを元に検索する。
  コマンド行から利用する。(C言語で書かれている)
- namazu.cgi
  作成したインデックスを元に検索する。
  CGIとして利用する。(C言語で書かれている)

## 準備と make

2.0 の版を作るために次のソフトウェアが必要です。(お名 前の敬称は略させていただきます)

名称 | 説明 | 必須 | 最新版 | 必要な版 | ファイル名 | 作成・配布 | 入手先(例) | その他
--- | --- | --- | --- | --- | --- | --- | --- | ---
Perl | Perl 言語処理系 | ○ | 5.10.0 | >= 5.004 | perl5.005_03.tar.gz | Larry Wall GNU CPAN | CPAN |
make | コンパイル支援ソフトウェア |  | 3.81 |  | make-3.81.tar.gz | FSF | GNU | システム付属のmakeでコンパイルできない場合に必要
gettext | メッセージの国際化 |  | 0.17 | >= 0.13.1 | gettext-0.17.tar.gz | FSF | GNU | Solaris は必須
nkf | Network Kanji Filter 漢字コード 変換系 | ○ | 2.0.8 | >= 1.71 | nkf207.tar.gz | 河野眞治 古川令 | nkf_utf8 | 1.90, 1.92 は問題があるので最新版もしくは 1.71 を使う(脚注参照)
NKF | nkf Perl モジュール化 | ▲ | 2.0.8 | >= 1.71
KAKASI | 日本語・ ローマ字 変換系 | △ | 2.3.4 | >= 2.x | kakasi-2.3.4.tar.gz | KAKASI Project | namazu.org |
Text::Kakasi | KAKASI Perl モジュール化 | ▲ | 2.04 | >= 1.05 | Text-Kakasi-2.04.tar.gz | 野首貴嗣 小飼弾 | CPAN dist |
Chasen | (茶筌) -- 日本語 形態素 解析器 | △ | 2.3.3 | >= 2.02 | chasen-2.3.3.tar.gz | 奈良先端科学技術大学院大学 | 配布方針 | 2.02 以前では libchasen.a について下記参照
Text::ChaSen | ChaSen Perl モジュール化 | ▲ | 1.04 | <= | Text-ChaSen-1.04.tar.gz | 野首貴嗣 | Text::ChaSen |
MeCab | (和布蕪) -- 日本語 形態素解析器 | △ | 0.97 | >= 0.6 | mecab-0.97.tar.gz | 工藤 拓 | MeCab | Namazu 2.0.15 から正式対応 (MeCab 0.90 以降は Namazu 2.0.16 以降で対応)
mecab-perl | MeCab Perl モジュール化 | ▲ | 0.97 | >= 0.76 | mecab-perl-0.97.tar.gz | 工藤 拓 | MeCab | Namazu 2.0.15 から正式対応 (MeCab 0.90 以降は Namazu 2.0.16 以降で対応)
File::MMagic | File 種別 | × | 1.27 | >= 1.20 | File-MMagic-1.27.tar.gz | 野首貴嗣 | CPAN dist | Namazu の配布に同梱されています

- △ は (日本語の処理をするなら) KAKASI/ChaSen/MeCab のいずれかが必要という意味。

  全て用意しておいた場合 | (無指定ではわかち書きに KAKASI を使いますが、 茶筌は -c オプション、和布蕪は -b オプションを 指定するだけで使用できます。)
  ひとつ以上用意している場合 | ./configure の時点で KAKASI/ChaSen/MeCab のいずれを使うかが選ばれます。 (KAKASI を用意している場合は -k オプション、 茶筌を用意している場合は -c オプション、 和布蕪を用意している場合は -b オプションを 指定するだけで使用できます。)

- ▲ は Perl モジュール化で、2.0 の高速化機能を生かすために必要です。 しかし、なくても動きます。 その場合には一つのファイル毎にわかち書きの外部 process を起動するので、インデックス作成の速度は遅くなります。 インストールは `perl Makefile.PL; make; make install` と実行するだけです。 問題がなければ入れておいた方がいいでしょう。
- Namazu 2.0 以降では ChaSen2 にだけ対応しています。
- 「KAKASI」か「茶筌」か「和布蕪」 ---- 大ざっぱに言うと
  KAKASIの方が簡単 (安定)で速い。
  茶筌の方が、 少し遅いかもしれないがひらがなだけの文の取扱が出来る というような違いがあります。
- ChaSen 2.02 以前では make install しても /usr/local/lib/libchasen.a をインストールしてくれないので、 perl のChaSenモジュールを作るには手動で

      cp libchasen.a /usr/local/lib
      ranlib /usr/local/lib/libchasen.a # ここはシステムに応じて

  と実行する必要があります。
- ×となっている File::MMagic は Namazu の配布に同梱されています。
- Namazu 自体の ./configure についてはINSTALL-ja を見てください。
- 以上用意した KAKASI や ChaSen や MeCab は、 Namazu を ./configure する時に、 ($PATH 変数の設定によって) 利用出来るようになっている必要があります。 後から追加した場合には、./configure からやり直して下さい。
- nkf-1.90, 1.92 は 全角空白の取扱いに問題 があります。最新版2.0.7を使うか 1.71 を使うかして下さい。

## 日本語環境での利用

Namazu 2.0.6 から環境変数の扱いが修正されました。また、mknmz にコマンド行引数が新設されました。

### 環境変数の設定

Namazu 2.0 を日本語環境で利用するには言語の切換を行う環境変数の設定が必要です。

2.0.5 までは、以下のようにメッセージの表示と言語処理の両方で、 全く同じ環境変数を用いていました。

言語の切換を行なう環境変数(左優先)
【メッセージの表示】 | LANGUAGE | LC_ALL | LC_MESSAGES | LANG
【言語処理】 | LANGUAGE | LC_ALL | LC_MESSAGES | LANG

2.0.6 からは以下のように修正されました。

言語の切換を行なう環境変数(左優先)
【メッセージの表示】 | LANGUAGE | LC_ALL | LC_MESSAGES | LANG
【言語処理】 |  | LC_ALL | LC_CTYPE | LANG

日本語の表示が欲しい時や、日本語の処理をしたい時には、 これらの変数に、

Unix OS | ja
Windows | ja_JP.SJIS

等と設定します。例えば次のような方法で

C shell 等 | Bourne shell 等
`setenv LANG ja` | `LANG=ja; export LANG`

Mac OS X + gettext 0.14.2 以降の場合

言語の切換を行なう環境変数(左優先)
【メッセージの表示】 | LANGUAGE | 【MacOS X の言語環境】 | LC_ALL | LC_MESSAGES | LANG

メッセージの表示において、OS の言語環境が LC_ALL, LC_MESSAGES, LANG より優先します。
環境変数で切り替える場合は LANGUAGE で切り替えてください。

LANG に ja を設定し (それ以外の変数に何も設定されていなければ)、 全て日本語の表示をし、 検索対象を日本語として処理します。 `ja` という値が適当でない時には `ja_JP`, `ja_JP.eucJP`, `ja_JP.EUC`, `ja_JP.ujis` などという値が必要とされる場合(システム)もあります。

mknmz 実行時に環境変数が適切に設定されていないと、 わかち書きが正しく行なわれず、 (生成された索引の一つである) NMZ.w を覗いて見ると、 本来なら単語が一行に一つづつ書いてあるはずなのに、 長い文章が書いてあって、namazu/namazu.cgi で検索しても 正しく見つけてくれないという問題が起きたり、 filter が日本語について正しく動作しなかったりします。

### --indexing-lang コマンド行引数 (mknmz)

2.0.6 から mknmz に `--indexing-lang=LANG` が新設されました。

前述の環境変数の設定にかかわらなく mknmz の処理について 言語の指定が出来ます。`--indexing-lang=ja` などとします。 `ja` という値が適当でない時には `ja_JP`, `ja_JP.eucJP`, `ja_JP.EUC`, `ja_JP.ujis` などという値が必要とされる場合(システム)もあります。 このオプションが指定されていない場合は前述の環境変数が参照されます。

### 設定ファイル (namazu 及び namazu.cgi)

namazurc または .namazurc に次のように書きます。(一例です)

    Lang: ja

`ja` という値が適当でない時には `ja_JP`, `ja_JP.eucJP`, `ja_JP.EUC`, `ja_JP.ujis` などという値が必要とされる場合(システム)もあります。

置く位置などについては 説明書 を参照して下さい。

## make install 前の確認

もし make install する前に mknmz を試してみたいという時には

    cd namazu-2.0.x ( ... tar.gz 形式を開けた位置)
       してから
    env pkgdatadir=`pwd` scripts/mknmz (csh/tcsh 等の場合)
       または
    pkgdatadir=. scripts/mknmz (sh/bash 等の場合).

とすると、 (`/usr/local/share/namazu` でなく) すぐ隣にある pl,filter,template 等を参照します。

(この辺の事情は mknmz 等の中の変数 $PKGDATADIR の文字列付近を見ると 少し分ります。)

同じようにして、

    setenv pkgdatadir .
       または
    pkgdatadir=.
    export pkgdatadir
       しておいて、
    scripts/mknmz -C
    scripts/mknmz --help
    scripts/mknmz -O /tmp ~/Mail

などが試すと、それぞれ、構成を表示・説明を表示・~/Mail の索引を作成する、 などを行うことが出来ます。 ただし、 make install 前は日本語でのメッセージ出力は行えません。

## help の表示

以上 mknmz と namazu の 2つの使い方は引数無しで起動すると簡 単な説明が、--help と入力すると長い説明が表示されます。また -C を付けるとその時の構成を表示します。この 3つは覚えておくと便利です。

コマンド行で説明などを得る方法
引数 | 意味 | その他に引数を付けると
--- | --- | ---
無 | とても簡単な説明 | (他の引数・選択は付けられない)
`--help` | 詳しい説明 | (他の引数・選択は無視される)
`-C` | その時の構成 | (他の引数・選択も意味がある)

## 動作確認 mknmz

まずはインデックスを作ります。 (もし make install の前に試したいなら、上の mknmz make install 前の確認を見てください)
1.4.0.8 からは少し書式が変っています。 URI の置換は --replaceオプションを使って指定するようになりました。 URIの置換は namazu/namazu.cgi の実行時にも行えます。mknmz で は --replace を指定しないで実行し、.namazurc の設定で namazu/namazu.cgi の実行時に置換する方法をお勧めします。

mknmz は次のように実行します。

> `mknmz [options] 対象ディレクトリ`

この例では、インデックスはカレントディレクトリに作られます。 もし出力先を変更したい時には -O を使います。

例えば

          mkdir /tmp/index
          mknmz -O /tmp/index \
          --replace='s#/foo/bar/doc/#http://foo.example.jp/software/#' \
          /foo/bar/doc

のよう実行します。インデックスの作成中に mknmz は次のような メッセージを出力します。もし、メッセージが英語で表示されたと きは日本語環境での利用を参照してくだ さい。

          6個のファイルがインデックス作成の対象として見つかりました
          1/6 - /foo/bar/acrobat4.pdf [application/pdf]
          2/6 - /foo/bar/html.html [text/html]
          3/6 - /foo/bar/msg00000.html [text/html; x-type=mhonarc]
          4/6 - /foo/bar/plain.txt [text/plain]
          5/6 - /foo/bar/rfc0000.txt [text/plain; x-type=rfc]
          6/6 - /foo/bar/tex.tex [application/x-tex]
          インデックスを書き出しています...
          [基本]
          日付:                Fri Feb 18 14:09:55 2000
          追加された文書の数:  6
          サイズ (bytes):      7,301
          合計の文書数:        6
          追加キーワード数:    48
          合計キーワード数:    48
          わかち書き:          module_kakasi -ieuc -oeuc -w
          経過時間 (秒):       8
          ファイル/秒:         0.75
          システム:            linux
          Perl:                5.00503
          Namazu:              2.0.X

- 結果 (のインデックス) は (-O で指定した) /tmp/index に
- 検索対象は`/foo/bar/doc`
- URI については

  「`/foo/bar/doc/` に置いてあるものは 外から見ると、 `http://foo.example.jp/software/` の下に見えるもの なので、(Perl 語で言うと) s#aaa#bbb# のように置換してね」という意味です。 (上の例では aaa (/foo/bar/doc/) bbb (http://foo.example.jp/) となります。)

- (/usr/local/etc/namazu/mknmzrc の $ALLOW_FILE, $DENY_FILE の設定によって) *.html, *.txt, *.tex, *.pdf, MH形式のメイルなどを対象とします。

## mknmz の調整

Namazu は元々は HTML 形式のものを処理するために作られました が、現在では様々な文書形式を取り扱うことができます。 /usr/local/share/namazu/filter というディレクトリに手がかり が、また説明書の中の 文書フィ ルタ の節に詳しい説明があります。

MH 形式のメイル
  普通に mknmz を実行します。
  `% mknmz ~/Mail/foobar`
MHonArc
  Namazu は MHonArc の HTMLに特化した処理を行います。
hnf
  hnf 用の .mknmzrc と起動手続が ハイパー日記システム・プロジェクト から入手出 来ます。
他の計算機にある文書
  Namazu 単独ではできません。他にその内容を転送してくる 仕組み (wget, NFS など) と組合せて使います。

mknmz のコマンド行引数は、mknmz --helpとすると得ら れます。また-C を付けると、その時の構成を次のように表示してくれます。

          読み込んだ設定ファイル: /home/foobar/.mknmzrc
          システム: linux
          Namazu: 2.0.X
          Perl: 5.00503
          File-MMagic: 1.27
          NKF: module_nkf
          KAKASI: module_kakasi -ieuc -oeuc -w
          茶筌: module_chasen -i e -j -F "%m "
          和布蕪: module_mecab -Owakati -b 8192
          わかち書き: module_kakasi -ieuc -oeuc -w
          メッセージの言語: ja_JP.eucJP
          言語: ja_JP.eucJP
          文字コード: euc
          CONFDIR: /usr/local/etc/namazu
          LIBDIR: /usr/local/share/namazu/pl
          FILTERDIR: /usr/local/share/namazu/filter
          TEMPLATEDIR: ../template
          対応メディアタイプ:   (43)
          未対応メディアタイプ: (1) 必要ツールが $path にないものには (-) を表示
            application/excel: excel.pl
            application/gnumeric: gnumeric.pl
            application/ichitaro5: taro56.pl
            application/ichitaro6: taro56.pl
            application/ichitaro7: taro7_10.pl
            application/macbinary: macbinary.pl
            application/msword: msword.pl
            application/pdf: pdf.pl
            application/postscript: postscript.pl
            application/powerpoint: powerpoint.pl
            application/rtf: rtf.pl
            application/vnd.kde.kivio: koffice.pl
            application/vnd.kde.kpresenter: koffice.pl
            application/vnd.kde.kspread: koffice.pl
            application/vnd.kde.kword: koffice.pl
            application/vnd.oasis.opendocument.graphics: ooo.pl
            application/vnd.oasis.opendocument.presentation: ooo.pl
            application/vnd.oasis.opendocument.spreadsheet: ooo.pl
            application/vnd.oasis.opendocument.text: ooo.pl
            application/vnd.sun.xml.calc: ooo.pl
            application/vnd.sun.xml.draw: ooo.pl
            application/vnd.sun.xml.impress: ooo.pl
            application/vnd.sun.xml.writer: ooo.pl
            application/x-apache-cache: apachecache.pl
            application/x-bzip2: bzip2.pl
            application/x-compress: compress.pl
          - application/x-deb: deb.pl
            application/x-dvi: dvi.pl
            application/x-gzip: gzip.pl
            application/x-js-taro: taro7_10.pl
            application/x-rpm: rpm.pl
            application/x-tex: tex.pl
            application/x-zip: zip.pl
            audio/mpeg: mp3.pl
            message/news: mailnews.pl
            message/rfc822: mailnews.pl
            text/hnf: hnf.pl
            text/html: html.pl
            text/html; x-type=mhonarc: mhonarc.pl
            text/html; x-type=pipermail: pipermail.pl
            text/plain
            text/plain; x-type=rfc: rfc.pl
            text/x-hdml: hdml.pl
            text/x-roff: man.pl

### インデックスの作成対象について

短縮形 | 本名 | 説明
--- | --- | ---
-F | --target-list=file | インデックス対象のファイルのリストを読み込む
-t | --media-type=mtype | 対象ファイルの文書形式を指定する
| --allow=PATTERN | 対象ファイル名の正規表現を指定する
| --deny=PATTERN | 除外するファイル名の正規表現を指定する
| --exclude=PATTERN | 除外するパス名の正規表現を指定する

## 動作確認 namazu

検索を行うにはコマンド行で次のように実行します。

          % namazu 検索文字列 インデックス

インデックスを省略すると、namazu は `/usr/local/var/namazu/index` を対象とします。

namazu コマンドの設定は`namazurc` で行います。 namazurc の設定例は 配布の中の `/usr/local/etc/namazu/namazurc-sample` にありま す。

Web で CGI を実行するにはいくつかの条件があります。Apache の場合、設定として

ScriptAlias | /cgi-bin/ /usr/local/apache/cgi-bin/ | URI 中の /cgi-bin/ に対応するディレクトリ
AddHandler | cgi-script .cgi | .cgi と拡張子ならば cgi として実行する
AllowOverride | All | .htaccess での設定を許可する (Web管理者)
Options | ExecCGI | cgi-bin の実行を許す
DirectoryIndex | index.html | URI がディレクトリを指している時に探すファイル名

などが関係します。(Web管理者) と書かれているもの以外は .htaccess にも設定できます (ただし Apache の設定次第でそれを禁止されていることもあります)。

## Namazu でできること

ここに書いてあることは「保証」ではありません。 開発者の希望が書かれているだけです。

- 一つの計算機の、一つまたは複数のディレクトリの下にある文 書ファイルを指定して、
- それらの中の単語を調べ、どの文書ファイルにどの単語が含まれているか をインデックスに書き出しておく
- 利用者が入力した検索式と、上記の単語を比べて、 その単語が含まれている文書ファイルを表示すること
- 上記単語の指定は、単語の一部分でなく単語全体です。 ですから sys と指定しても system は見つかりません。 そのような時には sys* や *sys* のように前後に * を付けることによって、sys で始まる単語 (sys*)、 sys を含む単語 (*sys*)、 sys で終了する単語 (*sys) と入力します。
- 作られたインデックスの利用はコマンド行、または cgi-bin が動く HTTP server を Webブラウザを通じて利用する形 で行なう。

## できないこと

- 他の計算機にまで文書ファイルを取りにいって検索すること
- 「一日に 100 万回の利用件数がある」というような大規模な構成 の使い方。

## その他

インデックス作成の対象ファイルについて
  指定した「対象ディレクトリ」の中で、どのファイルがインデック ス作成の対象とされるかは (mknmzrc の) $ALLOW_FILE, $DENY_FILE の設定、あるいは -a, --allow, --deny, --exclude オプションの設定で決まります。
mew-1.94b2x と mew-nmz.el
  mew には namazu と連動して
  - mknmz を起動して必要なインデックスを作り
  - 検索した結果を使って virtual folder を作成する
  機能が contrib/mew-nmz.el にあり、説明は contrib/00readme-namazu.jis に書かれています。

## 用語

KAKASI
  本来は「漢字で書かれたもの」を「ひらがな・カタカナ・Ro-maji」などに変換するソフトウェア。しかし Namazu では次々項の「わ かち書き」をする道具として使う。
Chasen (茶筌)
  「日本語形態素解析器」であるが、KAKASIと同様に「わかち書き」 (正確には日本語の単語の切出し)に使っている。
MeCab (和布蕪)
  MeCab は、ChaSenを基に開発された高速な形態素解析器です。 現在 ChaSen とは独立に、工藤さんがフルスクラッチから開発しています。 解析精度は ChaSen と変わらないにもかかわらず、ChaSen より高速に動作します。
わかち書き
  日本語 は (英語 と 違って)単語 の 区切り に 空白 を 書いたり は しない。 そのまま では 計算機 の 処理 に 不都合 が ある ので、単語毎 に わけて、 間 に 空白 を 入れて 書いた もの を 利用する。 そういう書き方を「わかち書き」と言う。 (用語としては計算機用語として以外にも同じ意味で使われる)
インデックス(名詞)

                     (準備)     (検索画面)
                      mknmz       namazu
                     ↑   ↓     ↑    ↓
            元々の資料    インデックス  検索結果

  Namazu はあらかじめ単語の索引を作っておき、検索要求があっ たときには、それを元に検索を行う。この「あらかじめ作 られた「索引」のことをインデックスと呼んでいる。
  Namazu の場合 NMZ.* ファイルがそれにあたる。
インデックス(動詞)
  上記インデックスを作ること。mknmz を使う
複数インデックス
  2つ以上のインデックスを作っておいて、それらの中をまとめて 検索する機能
フレイズ検索
  Namazu の検索の基本は単語の組合せである。 "foo and bar" と (順を逆にした) "bar and foo" は区別しない。また、 foo と bar は文書中のどこ に現れてもいい。 "foo bar" という文字列がそのままの順 で出現する文書を探すことをフレイズ検索という。
namazu.conf, conf.pl
  1.4 以前では、 namazu, mknmz の設定はそれぞれ namazu.conf, conf.pl で行ったが 2.0 では namazurc, mknmzrc に変更された。
mknmzrc (/usr/local/etc/namazu/mknmzrc)
  mknmz の基本設定を行なう。
namazurc (/usr/local/etc/namazu/namazurc)
  Namazu の動作を変更したいときに、その設定をする。 `Index, Replace, Logging, Lang, Template` の設定ができる。 詳しくは説明書を参照のこ と。
Perl モジュール (Perl module)
  NKF, KAKASI, ChaSen などは以前は Namazu から外部プロセ スとして呼出されていた。この場合、プロセスをファイル毎に起動するので 時間がかかる。 現在の版では、これらの perl モジュールを使うしくみが用意されて、 perl からモジュールとして呼出されるようにできる。 そうするとプロセスを起動しないで済む分、実行速度が速くなる。
  この機能は Namazu-1.3 以前では提供されていない。 1.4 以降の機能である。 Namazu に必要な Perl のモジュールが入っているかどうかは

      perl -MText::Kakasi -e ''
      perl -MText::ChaSen -e ''
      perl -MMeCab -e ''
      perl -MNKF -e ''

  のように入力した時に、何も表示されなければいい。 その状態で namazu で ./configure すると、これらが使われる。

## 参照

KAKASI - 漢字→かな(ローマ字)変換プログラム
  漢字かなまじり文をひらがな文やローマ字文に変換することを目 的として作成したプログラムと辞書
  原作:高橋裕信さん、保守:KAKASI Project
  Namazu ではこれを転じてわかち書き処理に使っている。
  http://kakasi.namazu.org/
開発・配布元の情報
  http://www.namazu.org/
よくある質問と答 (FAQ)日本語
  http://www.namazu.org/FAQ.html
Namazu メイリングリスト
  http://www.namazu.org/ml.html
Namazu開発版
  http://www.namazu.org/development.html

Namazu Homepage

Copyright (C) 2000-2008 Namazu Project. All rights reserved.
$Id: tutorial.html,v 1.44.4.34 2008-03-04 19:59:51 opengl2772 Exp $