関連研究
インテリジェントなヘルプシステムに関しては数多くの研究が存在するが『User interfaces and help systems: from helplessness to intelligent assistance.』 、現在広く利用されているものはほぼ存在せず、研究は下火になっているようである。これはインターネット上で検索したりチャットやSNS などで質問したりする方が有効なことが一因であろう。
ネット上で手軽にヘルプ情報を検索したり他人に意見を聞けるようになったことは喜ばしいことであるが、何でも他人に聞く人間は嫌われるし、ネットで問題解決方法がわかった場合でもそれを直線実行できないという問題が存在する。
Little のシステムTranslating keyword commands into executable code. は、「left margin 2 inches」のようなキーワードから「ActiveDocument.PageSetup.LeftMargin = InchesToPoints(2)」のようなコマンド文字列を生成することができる。
システムは提供する関数や引数に関する完全なデータベースを持っており、その知識とキーワードにもとづいてコマンドを生成する。
このようなユーザ補助はプログラマにとって非常に便利であるが、コマンドの文法を文脈自由文法で正確に記述しておく必要があるのに加え、ドメイン依存のヒューリスティクスが必要になるため、データベースを用意することは容易でない。
また、前述のようなコマンドを得るためには少なくともユーザは「マージン」のような基本概念については知っている必要があり、「領域を右に寄せる」のような表現からコマンドを生成することはできない。
cf. ユーザモデル問題
展開ヘルプの手法はドメイン知識を利用してインテリジェントにコマンドを生成することはできないが、データの用意が簡単であり、エラーに対して寛容であるという特徴がある。
近年、IBM の Watsonシステムや Wolfram Alphaのように、複雑な人工知能テクニックを駆使することによって自然言語による質問文から解答を得るシステムが実用になってきている。
これらのシステムは、開発者が設定した領域の問題をうまく解くことができるが、ヘルプが必要な任意の領域で適用できるわけではないし、普通のユーザがデータベースを用意したり回答をコントロールしたりすることができない。
任意の問題に関して柔軟なヘルプを用意するためには展開ヘルプのようなシンプルでかつ集合知を利用しやすい手法が有効だと考えられる。