ヘルプ項目の記述
ヘルプ項目は検索の対象となる文字列を表現する正規表現とそれに対応したコマンドパタンの組で構成され、ヘルプデータベースはヘルプ項目の集合として表現される。ユーザからの様々なクエリに対応するため、できる限り多様な表現を用意しておく。例えば時刻を設定するヘルプ項目として以下のようなものを用意する。
ヘルプエントリの正規表現
? (時計|時刻)を(1?0-9)時に(設定|セット)する 実行コマンド
% setdate {$2}:00
この正規表現は「時計を 0 時に設定する」「時計を 1時に設定する」... 「時刻を 19 時にセットする」というヘルプ文字列の集合を表現しており、各ヘルプ文字列に「setdate 0:00」「setdate 1:00」...「setdate19:00」のようなコマンド文字列が対応している。
ユーザが「時間 7」のようなキーワードを指定すると「時間」が「時計」と曖昧マッチし、「7」が2 番目の括弧「(1?[0-9]) に」マッチするので「時間を7 時にセットする」のようなエントリが表示され、それを選択すると「setdate 7:00」が実行される。
この例ではパタンに利用される文字列(e.g. 「7」)をコマンドでも利用しているが、パタンと異なる文字列をコマンド内で利用する必要がある場合は以下のようにタブ文字で区切ってパラメタを指定する。
ヘルプエントリの正規表現
? (鎌倉\t773|秋葉原\t682)の天気を調べる
実行コマンド
この場合「鎌倉」「天気」のようなキーワードを指定すると「鎌倉の天気を調べる」というヘルプエントリが表示され、それを選択すると「open http://tenki.jp/forecast/point-773.html」が実行される。
正規表現は静的なテキストとして記述する必要はなく、実行時のコンテクストやデータベースなどから動的に生成することもできる。
具体例を見たいtakker.icon