Lookup TODO -- list of something to do.			-*- outline -*-

* Lookup チュートリアルを作る。

ndtut とかいうエージェントを作っておいて、実際に Lookup を使ってもらいな
がら説明出来るようにしたい。ドキュメントは最終的に次の四部構成にしたい。

 o スタートアップガイド
   Lookup についての概要把握と、辞書の準備や設定法についての手引き。
 o チュートリアル
   Lookup の使い方を実際に動かしながら学べるガイド。
 o ユーザマニュアル
   Lookup の設定と機能について完全に説明したマニュアル。
 o 開発者マニュアル
   Lookup の内部構造と、エージェントやパッケージの構築法について。

でも、ここまで凝る必要があるほど大層なプログラムか、という気もする・・

* ドキュメントを英訳する。

英語圏にもプログラムを広めたいのと、自分の英語の練習を兼ねて(^^;)、今後
は文書を徐々に英語化していきたい。

* bitmap-mule を多くのフォントサイズに対応させる。

現在は 16 ドットにしか対応していないが、わずかな修正で他のサイズでも使え
るようになる。附属フォントのサイズを変えたものもまとめて配布出来るといい。
ドキュメントもまとめて本家に反映出来るとなおいい。

* XEmacs での使い勝手を高める。

メニューやアイコン、マウスによる検索語指定などに対応した方がよい。とはい
えこれもまで要望も出ていないし、自分は XEmacs を使っていないので、今のと
ころ用意する予定はなし。もし必要だという人がおられましたら、自分でコード
を書いて送って下さると有り難いです。

* 外字情報等のディスク・キャッシュ。

特に NDTPD サーバから外字情報を得る場合など、毎回ネットワークに負荷を掛
けるよりも、手元のディスクにキャッシュを残したい。それほど難しいことでも
ないが、なければならないものでもないので、優先順位は大きくない。

* and/or 検索の導入。

辞書が条件検索などに対応していない場合でも、Lookup 側で検索を繰り返すこ
とで and/or 条件での検索を行なうことが出来る。しかし Lookup の処理やデー
タ構造がやや複雑になるため、現在は導入していない。いずれ EB ライブラリが
条件検索・複合検索に対応し、それを Lookup からも利用しようとするときには、
これらの処理も導入するだろう。

構文としては、次のような感じで考えている。

単語検索:

  word                  デフォルトの検索方式。まず完全一致検索を行ない、
                        キーワード検索や前方一致検索に続ける、など。
  'word'                完全一致検索
  word*                 前方一致検索
  *word                 後方一致検索
  @word                 キーワード検索 (条件検索用インデックスを利用)
  [word]                項目検索 (複合検索用インデックスを利用)

条件検索:

  head* & *word         見出し語が "head" で始まり "word" で終わる。
  @key1 | @key2         キーワード key1 または key2 を含む。
  foo & ( bar | baz )   foo かつ、bar または baz。

`&' は ` ' で置き換え可。`|' は `,' で置き換え可とする。
括弧は省略可で、`&' は `|' より優先順位が高い。

  foo bar, baz          (foo & bar) | baz に同じ

複合検索:

  [項目1] [項目2] word  項目を選んで検索。項目は、ミニバッファで TAB を
                        押すことで一覧から選択する。

このようにすると、条件検索と複合検索は区別されず、自由に組み合わせが可能。
# でも下で働く eblook などは大変かもしんない・・

* 本文の構造をツリー表示。

いずれやりたいが、かなり大変そう。プログラムもさることながら、辞書の方も
きちんと構造化されている必要があるので、現状の EPWING ではちょっと不十分。
もっと XML とかできちんと設計されたフォーマットが出てこないとなぁ。

----------------------------------------------------------------
英和辞典            test


------------+---------------------------------------------------
test        |test /t'est/
 +- [名]    |−[名][C]
 | +- 1.    |1. 試験。...
 | +- 2.    |2. 試金石。...
 +- [動]    |−[動](他)
   +- (他)  |1. 試験する。...
   | +- 1.  |2. 分析する。...
   | +- 2.  |−(自) テストをする。...
   +- (自)  |
            |
------------+---------------------------------------------------

これが出来れば、メニューも同様にして辿れるように出来るだろう。

* 例外処置をきちんとやる。

現状では、設定に誤りがあるなどして問題が発生した場合でも、適切にエラーを
発生させることはしていない。期待された状況でのみ、期待された動作をする。
これはあまりよろしいこととは言えないが、十分な頑健性を構築するよりも優先
して取り組みたい課題が他に多くあるため、特別問題にならない限りは後回しに
なっているのが現状。

* 補助パッケージの構築環境を整える。

パッケージを一から手作業で作るのは面倒。特に外字テーブルの定義なんてやっ
てられない。支援のためのツールが必要。(一時期作っていたけど、未完のまま
お蔵入りしてる)

1. パッケージの雛型を生成

Lookup を起動後、エージェントID を指定することで、それに合わせたパッケー
ジの雛型を自動的に生成する。

2. Appendix から外字テーブルを生成

NDTPD のホームページで配布されている Appendix を、Lookup に合わせた外字
テーブルに変換する。

3. 外字テーブル・エディタ

現在の外字テーブルの設定を読み込み、それを画面上で編集するためのエディタ。

これらも将来的な課題。外字テーブル・エディタについては、動くものが一つ作
られている。
