FreePWING プログラミングドキュメント

[前へ] [次へ] [目次]

# はじめに

FreePWING は JIS X 4081 形式の書籍データを生成を行うソフトウェアです。 JIS X 4081 は EPWING V1 のサブセットですので、FreePWING によって生成 した JIS X 4081 形式の書籍データは、原理上 EPWING の検索ソフトウェアで検索 を行うことが可能です。

ただし、FreePWING で作成した JIS X4081 形式の書籍データが、お持ちの EPWING 検索ソフトウェアで正しく扱えなかったとしても、検索ソフトウェア の発売元や作者に対して問い合わせることはご遠慮下さい。 (Windows 向けの EPWING 検索ソフトウェアには、書籍データが CD-ROM 以外 の媒体上にあると検索できないようになっているものもあります。)

FreePWING のほとんどの部分は Perl 5 (バージョン 5.005 以上が必要) で 書かれていますが、現状では UNIX 系 OS および Cygwin のような UNIX 互換 の開発環境をインストールしてあるシステム上でないと動作しません。 生成した書籍データはシステムによらず共通なので、UNIX 以外でも使えます。

FreePWING はフリーソフトウェアです。 あなたは、Free Software Foundation が公表した GNU General Public License (GNU 一般公有使用許諾) バージョン 2 あるいはそれ以降の 各バージョンの中からいずれかを選択し、そのバージョンが定める条項に 従って本プログラムを再頒布または変更することができます。

FreePWING は有用とは思いますが、頒布にあたっては、市場性及び 特定目的適合性についての暗黙の保証を含めて、いかなる保証も行いません。 詳細については GNU General Public License をお読み下さい。

FreePWING で生成した JIS X 4081 形式のデータに関しては、使用許諾および その他の権利について、FreePWING の著作者は一切の主張をいたしません。 ただし、上述の GNU General Public License に従い、あなたの作成した データに対して、FreePWING はいかなる保証も行いません。

最新の FreePWING は ftp://ftp.sra.co.jp/pub/misc/freepwing/ から入手できます。

FreePWING に関する情報は http://www.sra.co.jp/people/m-kasahr/freepwing/ から得ることができます。

コメントやバグの報告は m-kasahr@sra.co.jp 宛にお送り下さい。

## FreePWING の概要

あなたが既に FreePWING で変換してみたい書籍データをお持ちなら、その 辞書は JIS X 4081 以外の形式、たとえば、HTML、Texinfo、PDIC といった 形式で書かれていると思います。 しかしながら、FreePWING にはこうした特定のテキスト形式を解釈する機能は ありません。 もし、書籍データが HTML で書かれているとしたら、データを HTML として 解釈する処理プログラムはあなたが用意しなくてはなりません。

たとえば、HTML で書かれた書籍データに一節があったとします。

>     FreePWING では<EM>できません</EM>!!!

HTML では <EM> と </EM> はそのまま文章として 扱われるのではなく、その間の文字列を強調するという意味を持ちます。 したがって、HTML を JIS X 4081 形式に変換するためには、<EM> や </EM> が特殊な意味を持つことを認識して、他の普通の文字列とは 分けて処理しなくてはなりません。

けれども、繰り返しになりますが、FreePWING には HTML を解釈する機能は 用意されていません。 JIS X 4081 形式に変換するには、HTML を解釈するための HTML パーサ (構文解析器) と、解釈したデータを FreePWING に渡すための橋渡し的な プログラムを用意する必要があります。

「<EM>できません</EM>」の部分を JIS X 4081 形式に変換する FreePWING プログラムを敢えて書くなら、次のようになります。

>     ## $text は FreePWING::FPWUtils::Text クラスのオブジェクトで、
>     ## 既に出力ファイルをオープンしているものとします。
>     $text->add_emphasis_start();
>     $text->add_text("できません");
>     $text->add_emphasis_end();

このように、FreePWING を扱うには、プログラミング、特に Perl 5 での プログラミングが常に付いて回ります。 FreePWING の実体は、「Perl 5 用のライブラリ」と言っても良いでしょう。

この文書は、FreePWING のプログラミングの仕方について解説します。 なお、あなたが既に Perl 5 のプログラミングの基本知識を身に付けている ものとしますので、あらためてこの文書の中で説明することは致しません。 ご了承下さい。

## FreePWING が生成できるデータ要素

FreePWING が変換した書籍データには、次の機能を与えることができます。

本文データ
  書籍の本文です。
メニュー表示用データ
  階層構造になった、特殊な本文です。 詳しくは メニュー の節をご覧下さい。
著作権表示データ
  書籍の著作権表示です。
前方一致検索
  ユーザが入力した単語に対して、その先頭部分が一致する単語を検索します。 たとえば `ques' という単語を検索すると、先頭が `ques' で始まる語 (`quest', `question' など) を見つけられます。 主に、辞書タイプの書籍で使います。
後方一致検索
  ユーザが入力した単語に対して、その末尾部分が一致する単語を検索します。 たとえば `lism' という単語を検索すると、末尾が `lism' で始まる語 (`realism', `nationalism' など) を見つけられます。 これも、主に辞書タイプの書籍で使います。
条件一致検索
  前方一致や完全一致検索とは異なり、複数の単語すべてにマッチする エントリを探し出すための検索方法として、条件検索 (keyword search) が あります。 たとえば、英語辞典で入力した英単語すべてを用いた例文を探す機能を実現 するときなどに使用することができます。
外字
  書籍固有の字を定義して、使うこととができます。

なお、この一覧には「完全一致検索」(ユーザが入力した単語に対して、完全 に一致する単語の検索) はありません。 これは、FreePWING が対応していないからではなく、完全一致検索は 前方一致検索用のデータを使って行うからです。 したがって、書籍に前方一致検索の機能を持たせれば、完全一致検索も扱う ことができまるようになります。

[前へ] [次へ] [目次]