(57)【特許請求の範囲】
【請求項１】
ユーザにヘルプ情報を提示する方法であって、
主要アプリケーションによって生成された、少なくとも１つの関連付けられたユーザインターフェース機能を含むアプリケーションインターフェースを提供するステップと、
前記アプリケーションインターフェースに関連付けられた前記１つのユーザインターフェース機能の上に実質的に重なるシースルーパネルからなるヘルプ選択機構を提供するステップであって、前記ユーザが下にある前記１つのユーザインターフェースに関するヘルプ情報を要求することができることと、
前記１つのユーザインターフェース機能が前記シースルーパネルによって実質的にオーバーレイされている間に、前記ユーザが前記ヘルプ選択機構の上で、前記１つのユーザインターフェース機能の近くにマーカーを置いたことを示す情報を受け取ること、または前記ユーザがマーク付け機構を使用して、前記ヘルプ選択機構の上において、前記１つのユーザインターフェース機能の近くにマークを作成したこと示す情報を受け取ることによって、前記ヘルプ選択機構を介して前記ユーザから前記下にある１つのユーザインターフェースに関するヘルプ要求を受け取るステップであって、前記ヘルプ要求は前記下にある１つのユーザインターフェース機能が前記シースルーパネル上で識別された後にユーザによって提出されることと、
前記受け取られたヘルプ要求に応答して、前記ヘルプ選択機構によって提供された前記シースルーパネル上において前記ユーザに視覚的ヘルプ情報を提示するステップであって、前記１つのユーザインターフェース機能が前記シースルーパネルによって実質的に重なったままである間に、前記ユーザが前記主要アプリケーションと関連付けられた前記下にある１つのユーザインターフェース機能との対話ができることと
を備えることを特徴とする方法。
【請求項２】
前記方法は、携帯電話デバイス、携帯情報端末デバイス、ラップトップコンピュータデバイス、タブレット型入力装置または着用型コンピュータデバイスの少なくとも１つを使用して実行されることを特徴とする請求項１に記載の方法。
【請求項３】
前記方法は、コンピュータワークステーションを使用して実行されることを特徴とする請求項１に記載の方法。
【請求項４】
前記ユーザのヘルプ要求を受け取るのに応答して、前記ユーザにどのヘルプ情報を示すかを決定するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記ユーザに提示するヘルプ情報を決定する前記ステップは、前記ユーザから受け取られた前記ヘルプ要求を、前記関連付けられたヘルプ情報に自動的に対応付けるステップを含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記ユーザに提示するヘルプ情報を決定する前記ステップは、人間のアシスタントにより、前記ユーザのヘルプ要求に基づいて、前記ユーザに伝達する前記ヘルプ情報を手動で判定するステップを含むことを特徴とする請求項４に記載の方法。
【請求項７】
前記ユーザに前記ヘルプ情報を提示する前記ステップは、前記ユーザに音声のヘルプ情報を提示するステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記ユーザに前記ヘルプ情報を提示する前記ステップは、前記ユーザが以前に前記アプリケーションインターフェースと対話する際に行った一連の動作から決定される、前記ユーザの前記アプリケーションインターフェースとの対話の状況に基づいて、ヘルプ情報を提示するステップを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記ユーザに前記ヘルプ情報を提示する前記ステップは、前記ユーザが前記方法を実行するコンピュータデバイスに対してローカルなソースから前記ヘルプ情報を配信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記ユーザに前記ヘルプ情報を提示する前記ステップは、前記ユーザが前記方法を実行するコンピュータデバイスに対してリモートのソースから前記ヘルプ情報を配信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
請求項１に記載の前記アプリケーションインターフェースを提供するステップ、前記ヘルプ選択機構を提供するステップ、前記ヘルプ要求を受け取るステップならびに前記ヘルプ情報を提示するステップそれぞれを実施するコンピュータ可読命令を含むことを特徴とするコンピュータ読取り可能記録媒体。
【請求項１２】
ユーザにヘルプ情報を提示する装置であって、
表示装置と、
主要アプリケーションによって生成された、少なくとも１つの関連付けられたユーザインターフェース機能を含むアプリケーションインターフェースを前記表示装置上に提供するように構成されたロジック実行手段と、
前記アプリケーションインターフェースに重なるヘルプ選択機構を提供するように構成されたロジック実行手段であって、前記ヘルプ選択機構は、その上に移動可能なマーカーを提供するように、またはマーク付け機構によって付けられたマークを受け取るように構成され、前記ユーザに下にある前記１つのユーザインターフェースに関するヘルプ情報を要求することを可能とし、前記アプリケーションインターフェースに関連付けられた前記１つのユーザインターフェース機能の上に実質的に重なるシースルーパネルからなることと、
前記１つのユーザインターフェース機能が前記シースルーパネルによってオーバーレイされている間に、前記ユーザが前記１つのユーザインターフェース機能の近くに前記マーカーを置いたことを示す情報を受け取ること、または前記ユーザが前記マーク付け機構を使用して前記ヘルプ選択機構の上の前記１つのユーザインターフェース機能の近くにマークを作成したことを示す情報を受け取ることによって、前記ヘルプ選択機構を介して前記ユーザから前記下にある１つのユーザインターフェースに関するヘルプ要求を受け取るように構成されたロジック実行手段であって、前記下にある１つのユーザインターフェース機能が前記ヘルプ選択機構によって提供された前記シースルーパネル上で識別された後に、前記要求がユーザによって提出されることと、
前記受け取られたヘルプ要求に応答して、前記ヘルプ選択機構によって提供された前記シ-スルーパネル上において前記ユーザに視覚的ヘルプ情報を提示するように構成されたロジック実行手段であって、前記１つのユーザインターフェース機能が前記シースルーパネルによって実質的に重なったままである間に、前記ユーザが前記主要アプリケーションと関連付けられた前記下にある１つのユーザインターフェース機能との対話ができることと
を備えたことを特徴とする装置。
【請求項１３】
前記装置は、携帯電話デバイス、携帯情報端末デバイス、ラップトップコンピュータデバイス、タブレット型入力装置または着用型コンピュータデバイスの少なくとも１つであることを特徴とする請求項１２に記載の装置。
【請求項１４】
前記装置はコンピュータワークステーションであることを特徴とする請求項１２に記載の装置。
【請求項１５】
前記ユーザに前記ヘルプ情報を提示する前記ロジック実行手段は、前記ユーザに音声のヘルプ情報を提示するように構成されたことを特徴とする請求項１２に記載の装置。
【請求項１６】
前記ユーザに視覚的ヘルプ情報を提示する前記ロジック実行手段は、前記ユーザが以前に前記アプリケーションインターフェースと対話する際に行った一連の動作から決定される、前記ユーザの前記アプリケーションインターフェースとの対話の状況に基づいて、ヘルプ情報を提示するように構成されたことを特徴とする請求項１２に記載の装置。
【請求項１７】
前記ユーザに前記ヘルプ情報を提示する前記ロジック実行手段は、前記装置に対してローカルなソースから配信された前記ヘルプ情報を受け取るように構成されたことを特徴とする請求項１２に記載の装置。
【請求項１８】
前記ユーザに前記ヘルプ情報を提示する前記ロジック実行手段は、前記装置に対してリモートにあるソースから配信された前記ヘルプ情報を受け取るように構成されたことを特徴とする請求項１２に記載の装置。
【請求項１９】
請求項１２に記載の前記各ロジック実行手段の動作を実行するコンピュータ可読命令を含むことを特徴とするコンピュータ読取り可能記録媒体。
【請求項２０】
ユーザにヘルプ情報を提示するシステムであって、
前記ユーザにヘルプ情報を供給するように構成された支援センターと、
結合機構と、
前記結合機構を介して前記支援センターに結合された少なくとも１つの装置と
を備え、
前記少なくとも１つの装置は、
表示装置と、
主要アプリケーションによって生成された、少なくとも１つの関連付けられたユーザインターフェース機能を含むアプリケーションインターフェースを前記表示装置上に提供するように構成されたロジック実行手段と、
前記アプリケーションインターフェースに重なるヘルプ選択機構を提供するように構成されたロジック実行手段であって、前記ヘルプ選択機構は、その上に移動可能なマーカーを提供するように、またはマーク付け機構によって付けられたマークを受け取るように構成され、前記ユーザに下にある前記１つのユーザインターフェースに関するヘルプ情報を要求することを可能とし、前記アプリケーションインターフェースに関連付けられた前記１つのユーザインターフェース機能の上に実質的に重なるシースルーパネルからなることと、
前記１つのユーザインターフェース機能が前記シースルーパネルによってオーバーレイされている間に、前記ユーザが前記１つのユーザインターフェース機能の近くに前記マーカーを置いたことを示す情報を受け取ること、または前記ユーザが前記マーク付け機構を使用して前記ヘルプ選択機構の上の前記１つのユーザインターフェース機能の近くにマークを作成したことを示す情報を受け取ることによって、前記ヘルプ選択機構を介して前記ユーザから前記下にある１つのユーザインターフェースに関するヘルプ要求を受け取るように構成されたロジック実行手段であって、前記下にある１つのユーザインターフェース機能が前記ヘルプ選択機構によって提供された前記シースルーパネル上で識別された後に、前記要求がユーザによって提出されることと、
前記受け取られたヘルプ要求に応答して、前記支援センターから前記ヘルプ情報を受け取るように構成されたロジック実行手段と、
前記受け取られたヘルプ要求に応答して、前記ヘルプ選択機構によって提供された前記シ-スルーパネル上において前記ユーザに視覚的ヘルプ情報を提示するように構成されたロジック実行手段であって、前記１つのユーザインターフェース機能が前記シースルーパネルによって実質的に重なったままである間に、前記ユーザが前記主要アプリケーションと関連付けられた前記下にある１つのユーザインターフェース機能との対話ができることと
を含むことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザのコンピュータデバイスとの対話を支援するためにユーザに情報を提供する手法に関する。
【背景技術】
【０００２】
ソフトウェア開発者は、通例、開発製品に「ヘルプ」機能を組み込む。このヘルプ機能は、ユーザにヘルプ情報を提供してユーザが製品と対話するのを支援する。そのようなヘルプ情報をユーザに提供する多数の技術が存在する。そのような技術の１つでは、ヘルプ機能は、ユーザが関心のあるトピックに関する検索語を入力するのを可能にする。例えばテキスト編集のソフトウェアアプリケーションの状況で、ユーザは、表のセルをフォーマットする方法を知りたい場合がある。ヘルプ機能は、ユーザが、そのテキスト編集作業に関する検索語を入力できるようにする。別の技術では、ヘルプ機能は、想定されるユーザ入力動作のシミュレーションとその結果行われるソフトウェア製品の振る舞いを提供することにより、一般的なトピックに関するデモンストレーションを提供することができる。典型的なデモンストレーションは、スライドショーを利用したフォーマット、ビデオを利用したフォーマット、動画のフォーマットなどを使用する。ユーザは通常、ソフトウェア製品と対話する前に、このデモンストレーションを見る。いずれの場合も、従来のデスクトップ環境においては、ヘルプ機能は、１つまたは複数のパネル型の表示（例えばワシントン州レドモンドのマイクロソフト社によって製造されるＷｉｎｄｏｗｓ（登録商標）（商標）オペレーティングシステムで提供されるウィンドウ型の表示）の形態でヘルプ情報を表示する。ヘルプ機能は、普通、そうしたパネル型の表示を、ユーザが現在対話している主要アプリケーションの作業スペースの上または近くに提示する。
【０００３】
【非特許文献１】Peter Walsh, Advanced 3-D Game Programming Using DirectX（登録商標） 8.0, Wordware Publishing, Inc., Plano, Texas, 2002, pp. 441-445
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記のヘルプ機能は、多くの状況で完全に満足の行くものではない。一般に、ソフトウェア製品は、ヘルプ機能と主要アプリケーションと満足の行く形で一体化せず、ユーザがヘルプ機能と主要なアプリケーションとの間を、繰り返し切り替えることが必要とされる。そうした対話は、別個のヘルプ機能と対話するために現在行っている作業からユーザの注意をそらすので、ユーザの気を散らす可能性がある。さらに、ヘルプ機能を起動すると、自身が現在行っている作業に関連するヘルプ情報を見つけるために、ユーザは込み入った煩瑣な動作を行わなければならない場合がある。さらに、このように効果的な一体化がないために、ユーザは、ヘルプ機能で得た知識を行っている作業に応用する際に苦労する可能性がある。
【０００５】
さらに、多くのコンピュータデバイスは、比較的狭い表示画面を用いる。例えば、携帯電話や、携帯情報端末（ＰＤＡ）、各種のラップトップコンピュータはいずれも、従来のコンピュータワークステーションの表示装置と比べて、表示画面が狭い。そうした狭い表示画面は、しばしば、上記の方式、すなわち別個のヘルプのパネルタイプを表示することによりヘルプ情報を提示するための、表示画面の「面積」をそもそも持たない。
【０００６】
したがって、ヘルプ情報をユーザに伝達する、より効果的な技術を提供する典型的なニーズがある。
【課題を解決するための手段】
【０００７】
例示的な実施によれば、ユーザにヘルプ情報を与える方法が記述される。この方法は、（ａ）主要アプリケーションによって生成された、少なくとも関連付けられた１つのユーザインターフェース機能を含むアプリケーションインタフェースを提供するステップと、（ｂ）アプリケーションインタフェースの上に重なるヘルプ選択機構を提供し、その機構により、ユーザが、上記で明らかにした少なくとも１つのユーザインターフェース機能に関するヘルプ情報を要求することができるステップと、（ｃ）ヘルプ選択機構を介してユーザからヘルプ要求を受け取るステップと、（ｄ）受け取ったヘルプ要求に応答して、ユーザが主要アプリケーションとの対話を続けることができる方式によりヘルプ情報をユーザに提示するステップと、を備える。
【０００８】
別の例示的な特徴によれば、この方法は、携帯電話デバイス、携帯情報端末デバイス、ラップトップコンピュータデバイス、タブレット型入力装置、着用型コンピュータデバイス、の少なくとも１つを使用して行われる。
【０００９】
別の例示的な特徴によれば、この方法は、コンピュータワークステーションを使用して行われる。
【００１０】
別の例示的な特徴によれば、上記で明らかにしたヘルプの選択機構を提供するステップは、アプリケーションインタフェースの上に重なるシースルーパネルを提供するステップを備える。
【００１１】
別の例示的な特徴によれば、上記で明らかにしたユーザからヘルプ要求を受け取るステップは、ユーザが、ヘルプ選択機構の上で、上記で明らかにした少なくとも１つのユーザインターフェース機能の近くにマーカーを配置したことを示す情報を受け取るステップを備える。
【００１２】
別の例示的な特徴によれば、上記で明らかにしたユーザからヘルプ要求を受け取るステップは、ユーザが、ヘルプ選択機構の上で、マーク付け機構を使用して前記少なくとも１つのユーザインターフェース機能の近くに印を作成したことを示す情報を受け取るステップを備える。
【００１３】
別の例示的な特徴によれば、この方法はさらに、ユーザのヘルプ要求を受け取るのに応答して、ユーザに提示すべきヘルプ情報を判定するステップを備え、ユーザに提示すべきヘルプ情報の判定は、人間のアシスタントにより、ユーザのヘルプ要求に基づいてユーザに伝達するヘルプ情報を手作業で判定するステップを備える。
【００１４】
別の例示的な特徴によれば、上記で明らかにしたユーザにヘルプ情報を提示するステップは、音声のヘルプ情報をユーザに提示するステップを備える。
【００１５】
別の例示的な特徴によれば、上記で明らかにしたユーザにヘルプ情報を提示するステップは、視覚的なヘルプ情報をユーザに提示するステップを備える。
【００１６】
別の例示的な特徴によれば、上記で明らかにしたユーザに視覚的ヘルプ情報を提示するステップは、ヘルプ選択機構の上にヘルプ情報を提示するステップを備える。
【００１７】
別の例示的な特徴によれば、上記で明らかにしたユーザにヘルプ情報を提示するステップは、ユーザが本方法を行うコンピュータデバイスに対してローカルなソースからヘルプ情報を伝達するステップを備える。
【００１８】
別の例示的な特徴によれば、上記で明らかにしたユーザにヘルプ情報を提示するステップは、ユーザが本方法を行うコンピュータデバイスに対してリモートのソースからヘルプ情報を伝達するステップを備える。
【００１９】
この方法に関連する装置、機械読取り可能媒体、およびシステムも記述される。
【００２０】
この他の実施および特性は以下に記述される。
【００２１】
開示と図を通して、同様の構成要素および機能には同じ符号を使用して参照する。一連の１００番台の参照符号は、最初に図１に現れる機能を指し、一連の２００番台の参照符号は、最初に図２に現れる機能を指し、一連の３００番台の参照符号は、最初に図３に現れる機能を参照する。
【発明を実施するための最良の形態】
【００２２】
主要アプリケーションとのユーザの対話にとって過度に邪魔にならない方式によって、ヘルプ情報を提供するヘルプ機能が記述される。このヘルプ機能は、各種の特徴を通じてこの結果を達成する。１つの特徴によれば、ヘルプ機能は、主要アプリケーション自体と完全に一体化されたヘルプ情報を提供する。これにより、ヘルプ機能は、ヘルプ情報を分析して選び出し、主要アプリケーションとユーザの対話の適切な時点にヘルプ情報を伝達することができる。すなわち、このヘルプ機能は、ユーザがそのような情報を必要とするちょうどその時に、関連するヘルプ情報を提供する。すなわち、いわゆる「ジャストインタイム」のヘルプ情報を提供する。この手法は、ユーザがアプリケーション作業を行う前に概略的なチュートリアルを見たり、または、汎用的な検索エンジンと対話して当該の機能について調べたりすることによって、煩瑣なステップを経ることを必要とする従来のアプリケーションと一線を画している。
【００２３】
別の特徴によれば、ヘルプ情報は、主要アプリケーションからユーザの注意力を過度にそらさない方式によって提示される。すなわち、ヘルプ機能は、主要アプリケーションの「上に」、一体的にヘルプ情報を重ねる各種技術を提供する。この機能を実施する技術の１つは、ユーザが現在行っているアプリケーション作業に関連する音声のヘルプ情報を提供する。この機能を実施する別の技術は、主要アプリケーションの上に重ねられるシースルーパネルを提供するものであり、その場合は、シースルーパネルを介してヘルプ情報が要求され、シースルーパネルの上にヘルプ情報が提示されることができる。この機能を実施する別の技術は、主要アプリケーションにより提供されるアプリケーションインタフェースの中に提供された、表示フィールドと表示フィールドの間にヘルプ情報を挿入し、それにより、ある意味では、それらのフィールドを一時的に引き離してヘルプ情報のための空間を作る。上記のいずれの場合も、ヘルプ機能は、中央の支援センターからヘルプ情報を提供することも、コンピュータデバイスにとってローカルなソース（例えばローカルストレージ）から、（または中央とローカル両方のソースから）ヘルプ情報を提供することもできる。
【００２４】
さらに他の特徴とそれに伴う利益は、以下の説明において述べる。
【００２５】
ヘルプ機能は、ソフトウェアおよび／またはファームウェア（固定された論理回路など）を使用して実施することができる。本明細書で使用される用語「機能」、「ロジック」、「モジュール」は、一般に、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアの組み合わせを表す。例えば、ソフトウェアによる実施の場合、用語「機能」、「ロジック」、または「モジュール」は、処理装置またはデバイス（ＣＰＵなど）で実行された時に指定されたタスクを行うプログラムコードを表す。プログラムコードは、１つまたは複数のコンピュータ読取り可能のメモリデバイスに記憶することができる。本明細書で述べられる別個のものとしての機能、ロジック、およびモジュールの区分は、そのようなソフトウェアおよび／またはハードウェアの実際の物理的なグループ化と割り振りを表すことができ、あるいは、１つのソフトウェアプログラムおよび／またはハードウェア装置によって行われる種々のタスクの概念的な割り振りに対応することができる。ここに述べられる機能、ロジック、およびモジュールは、１つの場所に配置しても（１つの処理装置によって実施される場合など）、複数の場所に分散してもよい。
【００２６】
用語「ヘルプ情報」は、コンピュータデバイスで作業を行う際にユーザを支援するように意図された任意タイプの情報を指す。ヘルプ情報は、テキスト情報、絵／グラフィックの情報、記号的な情報、音声情報、触覚的な情報など、またそのような形態の情報の各種の組み合わせからなることができる。
【００２７】
本明細書で使用される用語「主要アプリケーション」は、ヘルプ情報が関連するいずれのソフトウェア機能またはハードウェア機能をも指す。例えば、主要アプリケーションは、任意種のオペレーティングシステムで提供される機能に関することが可能である。あるいは、主要アプリケーションは、基礎となるオペレーティングシステムのサービスを使用して動作する任意種のユーザアプリケーションに関する場合もある。さらに、これに代えて、主要アプリケーションは、ユーザが装置と対話する際の助けとなる、その装置と一体化されたヘルプ機能を提供する任意種の機械的な装置または電気的な装置を指すこともできる。いずれの場合も、主要アプリケーションがユーザとのインターフェースをとるために使用するユーザインターフェースの提示を、「アプリケーションインタフェース」と称する。
【００２８】
コンピューティング環境では、ヘルプ機能を使用して、任意種の主要アプリケーションを実施する任意種のコンピュータデバイスとユーザが対話するのを支援するヘルプ情報を提供することができる。このヘルプ機能は、目障りにならない方式によって支援を提供することができるので、携帯電話、各種の着用型コンピューティングデバイス、携帯情報端末（ＰＤＡ）デバイス、タブレットタイプの携帯デバイス、ラップトップコンピュータなどの表示画面が狭いコンピュータデバイスに適用される場合に特に有用である。しかし、このヘルプ機能は、従来型のワークステーションコンピューティング環境など、従来型のコンピューティング環境にも適用することができる。
【００２９】
この開示は、次のセクションを含む。セクションＡは、ヘルプ機能を実施する例示的システムについて記述する。セクションＢは、セクションＡのシステムと対話する例示的方法について記述する。
【００３０】
Ａ．例示的システム
Ａ．１．  システムの概要
図１は、ユーザ１０２より、一般的には複数のユーザ（図示せず）にヘルプ情報を提供する例示的システム１００を示す。ヘルプ情報は、ユーザデバイス１０４を介してユーザ１０２に伝達される。１つのモードでは、ヘルプ情報は、ユーザデバイス１０４のローカルストレージから供給されることができる。別のモードでは、ヘルプ情報は、リモートにある支援センター１０６から供給されることができる。システム１００の上記の主要な構成要素（すなわちユーザデバイス１０４と支援センター１０６）それぞれについて下記で説明する。
【００３１】
ユーザデバイス１０４は、任意種の主要アプリケーションを実行する任意タイプのコンピューティングデバイスからなることができる。コンピューティングデバイスの詳細なタイプには、任意種の携帯／モバイルデバイス（携帯電話、ＰＤＡ、タブレット型入力装置、着用型コンピュータなど）、任意種のラップトップコンピュータデバイス、任意種の特定用途デバイス（ゲームコンソールなど）、任意種の据え置き型汎用コンピュータデバイス（コンピュータワークステーションなど）が含まれる。この多様性を表すために、図１では、システム１００が、種々のユーザデバイスの中でも特に、典型的な携帯電話１０８、典型的なラップトップコンピュータ１１０、典型的なＰＤＡ１１２、典型的なタブレット型入力装置１１４、および典型的なコンピュータワークステーション１１６を含む他のユーザデバイスと対話できるものとする。
【００３２】
典型的なユーザデバイス１０４は、１つもしくは複数のプロセッサ１１８、コンピュータ可読命令および他のデータを記憶するＲＯＭメモリ１２０およびＲＡＭメモリ１２２、各種のローカル記憶媒体１２６（各種の磁気媒体、光学媒体、固体媒体など）と対話するメディアインターフェースとそれに関連付けられたメディアドライブ１２４を含むことができる。一実施では、ＲＡＭメモリ１２２は、オペレーティングシステムとそのオペレーティングシステムの上で実行される各種のユーザアプリケーションなどの主要アプリケーションの機能を定義する機械可読命令を受け取ることができる。ＲＡＭメモリ１２２は、ヘルプ機能１２８の動作を定義する機械可読命令も受け取ることができる。主要アプリケーションとヘルプ機能１２８は、プロセッサ１１８がＲＡＭ１２２に記憶された命令を実行すると、ユーザ１０２に提供される。しかし、主要アプリケーションおよび／またはヘルプ機能１２８によって行われる１つまたは複数の動作は、すべてもしくは一部分を、プログラムすることができない（ハードワイヤードなど）論理回路によって実施することもできる。さらに、主要アプリケーションおよび／またはヘルプ機能１２８によって行われる１つまたは複数の動作は、リモートの支援センター１０６（下記で説明する）など別の処理デバイスに割り当てることができる。（ヘルプ機能１２８で実施されるジオメトリ処理機能、すなわちＧＰＦ１６４については、下記のセクションＡ．２．ｉｉｉで説明する）。
【００３３】
ユーザデバイス１０４は、１つまたは複数の入力装置から入力を受け取り、１つまたは複数の出力装置に出力を提供する入出力インターフェース１３０も含むことができる。そのような入力装置は、従来のキーボードやキーパッドなど、任種のキー入力装置１３２を含むことができる。出力装置は、任意種のスピーカ装置など任意種の音声出力装置１３４を含むことができる。音声出力装置１３４を使用して、音声によるヘルプ情報をユーザ１０２に与えることができる。上記の入力装置および出力装置は例示的なものであり、限定的なものではない。図１では、システム１００は、各種のジョイスティック、トラックボール、データグローブなどを含む各種の他の入力装置および出力装置１３６を含むことができるものと示す。
【００３４】
ユーザデバイス１０４は、表示装置１４０を介して視覚的情報をユーザ１０２に提示する表示ロジック１３８も含むことができる。表示装置１４０には、主要アプリケーションおよびヘルプ機能１２８に関連付けられた情報を表示する任意タイプのデバイスが含まれる。典型的な携帯電話１０８、典型的なＰＤＡ１１２、典型的なタブレット型デバイス１１４などの場合などの場合には、表示装置１４０をユーザデバイス１０４自体の筐体の中に組み込むことができる。他の場合には、典型的なワークステーション１１６の場合など、表示装置１４０は、別個の表示モニタやテレビなどからなることができる。いずれの場合も、ユーザデバイス１０４は、表示装置１４０にグラフィカルユーザインターフェースの提示１４２を表示することができる。そのようなグラフィカルユーザインターフェースの提示１４２は、主要アプリケーションから提供されるアプリケーションインタフェースと、ヘルプ機能１２８から提供されるヘルプ情報を提示することができる。下記で説明する図２は、ユーザデバイス１０４によって提示することができるグラフィカルユーザインターフェース表示１４２の一例を示す。あるいは、表示装置１４０は、テキスト情報などグラフィックによらない提示を提供することもできる。
【００３５】
ユーザデバイス１０４は、任意種の外部エンティティと対話するためのネットワークインターフェース１４４も含むことができる。ネットワークインターフェース１４４は、ブロードバンド結合デバイス、ＤＳＬ結合デバイス、モデム方式の結合デバイス、２地点間結合デバイスなど、任意種の結合デバイスからなることができる。
【００３６】
上記のユーザデバイス１０４の構成要素は、例示的なものであり、限定的なものではない。まとめて「その他のモジュール」と表記した機能１４６により表されるように、ユーザデバイス１０４は、各種の他のモジュールを含むことができる。ユーザデバイス１０４は、図１に示すモジュールの１つまたは複数を省略してもよい。いずれの場合も、１つまたは複数のバス１４８が、上記のすべての構成要素をともに結合する。
【００３７】
ユーザデバイス１０４は、独立型モードでヘルプ情報を提供することができる。このモードでは、ユーザデバイス１０４によって提供されるヘルプ機能１２８は、ローカル記憶媒体１２６にローカルに記憶されたヘルプ情報を提供することができる。この場合、ユーザデバイス１０４は、諸機能を行うために外部のエンティティと通信する必要がない。
【００３８】
しかし、別の実施では、ユーザデバイス１０４は、リモートの支援センター１０６との協同的な関与を通じて、ヘルプ情報を提供することができる。支援センター１０６は、複数のユーザデバイス（デバイス１０４、１０８、１１０、１１２、１１４、１１６．．．）と対話する任意種のヘッドエンドインフラストラクチャを表すことができる。図１では、そのようなインフラストラクチャを概略的に「処理機能」１５０と示す。ある場合には、処理機能１５０は、サーバファームとしてともに結合された１つまたは複数のコンピュータサーバなど、１つまたは複数の処理デバイスを用いることができる。図示しないが、各サーバは、１つまたは複数の処理デバイス（ＣＰＵなど）、ＲＯＭ、ＲＡＭ、メディアインターフェースとそれに関連付けられたドライブ、各種の入出力装置、ネットワークインターフェースなど、ユーザデバイス１０４と同じ種類の構成要素を含むことができる。各サーバは、サーバがそれに帰されたサーバ関連タスクを行うことを可能にするソフトウェアも含むことができる。
【００３９】
処理機能１５０は、１つまたは複数のデータベース１５２（以下では便宜上単数とする）に結合することができる。データベース１５２は、任意種の磁気媒体、光学媒体、固体素子媒体、または他の種類の媒体を使用して実施することができる。さらに、支援センター１０６は、データベース１５２を管理するために任意の種のデータベース技術を用いることができる。データベース１５２を使用して、ローカルの記憶媒体１２６から提供されるヘルプ情報に代えて、あるいはその補助として、ユーザデバイス１０４に与えるヘルプ情報を記憶することができる。
【００４０】
処理機能１５０は、１つの場所に置くことができる。あるいは、処理機能１５０は、複数の場所に分散することもできる。同様に、データベース１５２も１つの場所に記憶しても、複数の場所に分散してもよい。
【００４１】
支援センター１０６の処理機能１５０は、ユーザ１０２に自動的にヘルプ情報を提供する自動支援モジュール１５４を提供することができる。例えば、自動支援モジュール１５４は、ユーザ１０２からの明示的な要求があると、または、ユーザ１０２が主要アプリケーションと対話した結果、ユーザ１０２に自動的にヘルプ情報を供給することができる。これに代えて、またはこれに加えて、処理機能１５０は、１人または複数の人間のアシスタント１５８がユーザ１０２にヘルプ情報を提供するための手動支援モジュール１５６を提供することができる。これらの機能（１５４、１５６）は、上記のタスクを行うように適切に構成された１つまたは複数のコンピュータデバイスなど、上記で明らかにしたそれに帰されたタスクを行う任意種のソフトウェアおよびハードウェアを含むことができる。それらのモジュール（１５４、１５６）は、ユーザデバイス１０４によって提供されるローカルのヘルプ機能１２８に加えてユーザ１０２にヘルプ情報を提供する役割を果たすので、図１では、自動支援モジュール１５４と手動支援モジュール１５６をまとめてヘルプ機能１２８としている。
【００４２】
処理機能１５０はさらに、結合機構１６２を介してユーザデバイス１０４（または他のユーザデバイス）と対話するためのインターフェース機能１６０を含む。結合機構１６２は、ＴＣＰ／ＩＰネットワーク（インターネットやイントラネットなど）、任意種の無線ネットワーク、ＬＡＮネットワーク、イーサネット（登録商標）ネットワークなど（またはそれらのネットワークの組み合わせ）など、任意種のネットワークを含むことができる。インターネットによる実施の場合、結合機構１６２は、各種の有線リンクおよび／または無線リンク、各種のルータ、各種のゲートウェイ、各種のネームサーバなど（図示せず）を含むことができる。あるいは、結合機構１６２は、支援センター１０６とユーザデバイス１０４間の２地点間の結合を表すこともできる。
【００４３】
要約すると、用語「ヘルプ機能」１２８は、ローカルのヘルプ機能１２８（ユーザデバイス１０４によって提供される）および／またはリモートのヘルプ機能１２８（自動支援モジュール１５４および／または手動支援モジュール１５６を含む）によって提供されるサービスの組み合わせを指すことができる。呼び出される特定のヘルプ機能１２８は、開発者が下記で述べる動作を実施することを選択する方式によって決まる。あるいは、システム１００は、数個の異なるヘルプモード（例えばローカルのヘルプモードとリモートのヘルプモード）で動作することができ、ユーザ１０２がそれらのモードの１つを選択することができる。
【００４４】
Ａ．２．  ヘルプ機能
ヘルプ機能１２８は、ユーザ１０２が現在行っている特定のアプリケーション作業を判定し、そして、目障りにならない方式で、特にその作業に合わせられたヘルプ情報を提示することができる。ユーザ１０２がその情報を必要とするちょうど時に適切なヘルプ情報が自動的に提示され、主要アプリケーションとのユーザ１０２の対話を過度に妨げないので、この機能は、上記のジャストインタイムのヘルプ情報の伝達を可能にする。図２〜図５を参照して、ジャストインタイムのヘルプ機能１２８の２つの態様について述べる。第１の態様は、ヘルプ機能１２８が、ユーザ１０２の主要アプリケーションとの対話の様々な時点にユーザ１０２に与えるヘルプ情報を判定する方式に関する。第２の態様は、ヘルプ機能１２８が、そのようにして判定されたヘルプ情報をユーザ１０２に提示する方式に関する。
【００４５】
Ａ．２．ｉ．  関連するヘルプ情報の識別
第１の態様に関して、ヘルプ機能１２８は、種々の技術を使用して、ユーザ１０２に提示すべきヘルプ情報を判定することができる。図２は、アプリケーションインタフェース２０４の上に提示されるシースルーパネル２０２からなるユーザインターフェース表示１４２を用いるそのような技術の１つを示す。
【００４６】
アプリケーションインタフェース２０４は、主要アプリケーションによって提供されるユーザインターフェースの提示を指す。すなわち、アプリケーションインタフェース２０４は、サービスをユーザ１０２に伝達するために主要アプリケーションによって提供される通常の一連のページを指す。説明のために、アプリケーションインタフェース２０４が、ユーザ１０２が商品またはサービスを注文することができる、例示的なアプリケーションに関連しているものとする。アプリケーションインタフェース２０４は、ユーザインターフェース機能の任意の組み合わせを含むことができる。図２には、一連のドロップダウンメニュー２０６を含むアプリケーションインタフェース２０４の１ページを示す。１つのドロップダウンメニュー２０８が展開され、その例示的な内容を示している。アプリケーションインタフェース２０４は、タブのついた複数のフォルダ２１０、複数のいわゆるラジオボタン２１２、複数のコマンドボタン（２１４、２１６）、１つまたは複数のテキスト入力フィールド２１８なども含むことができる。図２に示すこれらのユーザインターフェース機能（２０６〜２１８）の選択および位置の配置は、例示的なものに過ぎない。
【００４７】
シースルーパネル２０２は、アプリケーションインタフェース２０４の上に置かれる。シースルーパネル２０２は、ユーザ１０２がそれを通して、アプリケーションインタフェース２０４に提示された情報を見ることができるプロパティを有する。シースルーパネル２０２は、完全に透明なパネルの外観（透き通ったウィンドウにあるかのような）であっても、半透明のパネルの外観（下にあるアプリケーションインタフェース２０４の内容を明らかにするが、何らかの形によって内容の外観を変化させる何らかの種のウィンドウなど）であってもよい。いずれにせよ、シースルーパネル２０２は、ユーザ１０２が、下にあるアプリケーションインタフェース２０４とパネル２０２を区別できるような何らかの視覚的属性を備えることが好ましい。ある場合には、シースルーパネル２０２は、例えば表面にガラスの筋模様が模されたガラス板に似たものにすることができる。これに加えて、またはこれに代えて、シースルーパネル２０２は、下にあるアプリケーションインタフェース２０４と区別ができるよう、色づけ（灰色など）を持つこともできる。これに加えて、またはこれに代えて、シースルーパネル２０２は、アプリケーションインタフェース２０４の少し上に物理的なシースルーパネルを配置した様子を模した影付き効果を持つこともできる。さらに視覚的効果を使用して、アプリケーションインタフェース２０４の上に透明なものが重ね置かれた印象を作り出すことができる。ある場合には、アプリケーションインタフェース２０４を構成する１つまたは複数のウィンドウ型パネルの上に配置され、それらのパネルを包含する透明なプロパティを有するウィンドウ型のパネルとして、シースルーパネル２０２を概念化し、実施することができる。シースルーパネル２０２を実施するために使用することができる例示的な機構に関するさらなる情報は、下記のセクションＡ．２．ｉｉｉにおいて提示される。
【００４８】
一実施においては、主要アプリケーションはアプリケーションインタフェース２０４に情報を提示し、ヘルプ機能１２８はシースルーパネル２０２に情報を提示する。図２では、例えば、ヘルプ機能１２８が、シースルーパネル２０２の上に移動可能なポインタ２２０を提示している。ユーザ１０２は、ポインタ２２０を動かして、ユーザ１０２がヘルプ情報を得たいアプリケーションインタフェース２０４中のユーザインターフェース機能をポイントすることができる。例えば、ユーザ１０２が、コマンドボタン２１４によって行われる機能について分からない点があるとする。その機能について知るために、ユーザ１０２は、下にあるアプリケーションインタフェース２１４のコマンドボタン２１４を指すように（またはボタン２１４から所定の近さとなるように）ポインタ２２０をシースルーパネル２０２の上に配置することができる。ユーザ１０２は、キーボード入力装置、ジョイスティック入力装置、トラックボール入力装置、マウスタイプの入力装置など、任意の種類の入力装置を使用して、ポインタ２２０を動かすことができる。
【００４９】
上記のようにユーザ１０２がポインタ２２０の位置を合わせるのに応答して、ヘルプ機能１２８は、ユーザ１０２が関心を持つアプリケーションインタフェース２０４機能を判定することができる。この判定は、各種の方式によって実行することができる。ある場合には、ヘルプ機能１２８は、ポインタ２２０が下にあるアプリケーションインタフェース２０４機能から特定のＸ−Ｙ方向の距離にあるかどうかを、判定することができる。アプリケーションインタフェース１０２に表示されている内容に関する情報は、アプリケーションインタフェース２０４を表示するために使用されるコードから情報を抽出し、または、現在アプリケーションインタフェース２０４に提示されている機能に関する情報を提供するアクセシビリティインターフェースに照会するなどの各種の方式によって、判断することができる。ユーザ１０２が対象とするアプリケーションインタフェース２０４の機能を判定すると、ヘルプ機能１２８は、その機能に関連付けられたヘルプ情報を（以下説明する方式によって）提供する。
【００５０】
ヘルプ機能１２８は、アプリケーションインタフェース２０４内の機能を指定する他のマーキング技術に依ることができる。例えば、ヘルプ機能１２８は、ユーザ１０２がスタイラスを使用して関心のある機能に手動で印をつけられるようにすることができる。そのマークはシースルーパネル２０２上に追加され、下にあるユーザインターフェース機能を指定することができる。例えば、図２では、ユーザ１０２がスタイラスを使用してメニューリスト２０８の中において、一つのメニュー項目の周りに円２２２を描き、テキスト入力ボックス２１８の隣に疑問符マーク２２４を置いている。ヘルプ機能１２８は、シースルーパネル２０２に描かれたこのようなユーザの状況を示唆する疑問を表している形状を検出することができる、自動化されたテキスト／形状認識機能を含み、その認識結果に応じて反応することができる。
【００５１】
ユーザ１０２がアプリケーションインタフェース２０４中の種々の機能をポイントすることができる、さらに他の技術を使用することができる。例えば、代替的な実施においては、ヘルプ機能１２８は、ユーザ１０２が、アプリケーションインタフェース２０４自体（すなわちシースルーパネル２０２を提供しない）の中において、ポインタ（または他のマーク）を移動できるようにすることができる。さらに別の場合、ヘルプ機能１２８は、ユーザ１０２が、例えば入力装置を起動するのに応答してアプリケーションインタフェース２０４内を移動ことにより、種々のアプリケーションインタフェース機能を連続して強調表示できるようにすることができる。それに応答して、ヘルプ機能１２８は、現在強調表示されているアプリケーションインタフェース機能に関するヘルプ情報を提供するように構成することができる。ヘルプ機能１２８は、ユーザ１０２がアプリケーションインタフェース２０４内の機能をポイントすることを可能にする、さらに追加的な技術を提供することができる。
【００５２】
上記のすべての実施においては、ユーザ１０２は、何らかの選択機構を使用してアプリケーションインタフェース２０４の機能をポイントしてその機能に関するヘルプ情報を受け取るのと同時に、下にあるアプリケーションインタフェース２０４と通常の方式によって、対話をすることができる。例えば、図２の場合、ユーザ１０２は入力装置を使用してシースルーパネル２０２の上でポインタ２２０を動かすことができ、また、同じく入力装置を使用して下にあるアプリケーションインタフェース２０４のコマンドボタン２１４を起動することもできる。ヘルプ機能１２８は、この二重の制御機能を様々な方式によって可能とすることができる。１つの技術によれば、ヘルプ機能１２８は、ユーザ１０２が、操作したいユーザインターフェース表示１４２の部分を指定できるようにすることができる。すなわち、ヘルプ機能１２８は、ユーザ１０２が、入力動作の対象が、シースルーパネル２０２に関するのか、下にあるアプリケーションインタフェース２０４に関するのかを指定できるようにすることができる。これは、ユーザ１０２がシースルーパネル２０２を制御することに関心があるのか、下にあるアプリケーションインタフェース２０４を制御することに関心があるのかを指定するためのフォーカス制御機構（トグルスイッチなど）を備えることによって実施することができる。ユーザインターフェース表示１４２は、ユーザ１０２が現在注目しているユーザインターフェース表示１４２部分を反映する何らかの種の視覚的属性を表示することにより（その部分が選択されていることを示す強調表示状態でその部分を表示するなど）、その選択に応答するように構成することができる。シースルーパネル２０２または下にあるアプリケーションインタフェース２０４が選択されると、その後行われる入力動作は、選択された部分（すなわちシースルーパネル２０２、または下にあるアプリケーションインタフェース２０４）に向けられ、選択された部分に影響を及ぼす。代替的な実施においては、ヘルプ機能１２８は、２つの独立した入力制御機構を提供することができ、第１の入力制御機構は、単にシースルーパネル２０２のポインタ２２０を制御し、第２の制御機構は、下にあるアプリケーションインタフェース２０４の機能をコントロールする。これに代えて、またはこれに加えて、視覚フィールド自体に情報を加え、そのフィールドを対象とするユーザ動作が、上にあるシースルーパネル２０２に影響するのか、もしくは、下にあるアプリケーションインタフェース２０４に影響するのかを指示することもできる。例えば、その入力動作が明確にポインタ２２０を対象とするのでなければ、ユーザインターフェース表示１４２を対象とするユーザの入力動作（マウスのクリックなど）は、シースルーパネル２０２を「突き抜けて」下にあるアプリケーションインタフェース２０４をコントロールするように、シースルーパネル２０２に表示プロパティを割り当てることができる。
【００５３】
ヘルプ機能１２８は、ユーザ１０２が関心を持つ可能性のあるアプリケーションインタフェース２０４機能を判定するさらなる技術を提供することができる。代替的な技術の１つでは、ヘルプ機能１２８は、ユーザ１０２がアプリケーションインタフェース２０４内の機能を明確にポイントすることを必要としない場合がある。その技術では、ヘルプ機能１２８は、ユーザ１０２が以前に主要アプリケーションと対話する際に行った入力動作のみに基づいて、ユーザ１０２が特定のトピックに関心を持っていることを推測することができる。ユーザ１０２は、ユーザ１０２が戸惑っているか、あるいは、経験が浅いことを示唆する形で、主要アプリケーションと対話をする場合がある。例えば、ユーザ１０２は、誤った情報を繰り返し入力する、もしくは、予期される時間内に何も情報を入力しないなど、ユーザ１０２がヘルプを必要としていることを表す入力パターンを表す連続した入力動作を行う場合がある。別の例では、ユーザ１０２は、特定商品のオンライン購入など、特定タイプのトランザクションを行っている過程にあることを総合的に示唆する連続した入力動作を行っている場合がある（この場合、ユーザ１０２はその動作を行う際に誤りをしている場合も、そうでない場合もある）。その分析に基づいて、ヘルプ機能１２８は、ユーザ１０２が現在対話をしている、または、間もなく対話をするであろうアプリケーションインタフェース２０４のある一面に的を絞ったヘルプメッセージを引き出すことができる。この方式は、ユーザ１０２が現在問題を抱えている、または間もなく問題を抱えると思われるアプリケーションインタフェース２０４の側面をインテリジェントに判断することに基づいて、ユーザ１０２にジャストインタイムの支援を提供する。別の実施では、自動的にヘルプトピックを推測するこの能力を、上記の明示的にポイントする方式と組み合わせることができる。その実施では、ヘルプ機能１２８は、ユーザ１０２が現在ポイントしているアプリケーションインタフェース機能に対応するヘルプ情報と、以前にユーザ１０２が行った動作に基づいて、ヘルプ機能１２８が行う状況分析を提供することができる。
【００５４】
ユーザ１０２が対象としているアプリケーションインタフェース２０４の機能を判定すると、ヘルプ機能１２８は、対象とされる機能に関連付けられたヘルプ情報を取り出す。これは様々な方式で行うことができる。１つの場合には、ヘルプ機能１２８は、特定された機能をインデックスとして使用して、特定された機能に対応する、あらかじめ記憶されたヘルプ情報を取り出すことができる。この対応付けの動作は、主要アプリケーションの一部として実施しても、主要アプリケーションと別個の機能として実施してもよい。ある場合には、主要アプリケーションの様々な部分が、その個々の部分に該当するヘルプ情報を識別するＸＭＬ（拡張可能マークアップ言語）情報を含むことができる。ユーザ１０２がアプリケーションインタフェース２０４の特定の部分を特定すると、その部分に関連付けられたＸＭＬ情報にアクセスすることができ、そのＸＭＬ情報をポインタまたはインデックスとして使用して、対応するヘルプ情報を取り出すことができる。
【００５５】
さらに他の手法を使用して、主要アプリケーションの部分をそれに対応するヘルプ情報と関係付けることができる。例えば、上記で指摘したように、ヘルプ機能１２８は、ユーザ１０２によって行われた以前の入力動作のパターンを考慮するなどの状況分析に基づいて、取り出すヘルプ情報を判定することもできる。より具体的には、ヘルプ機能１２８は、一連のユーザ１０２の入力動作に関する情報を取り込み、記憶することができる。この情報は、ユーザ１０２がユーザインターフェース２０４に関して問題を抱えている、あるいは、複数段階からなるトランザクションを行っている最中であることを伝えることができえるパターンを定義する。ヘルプ機能１２８は、入力パターンを、あらかじめ記憶されたそのようなパターンのデータベースと比較し、一致があると、その一致したパターンに関連付けられたヘルプ情報を取り出すことにより、入力パターンに適したヘルプ情報を取り出すことができる。あるいは、ヘルプ機能１２８は、パターン中のユーザの状況を示唆する主要な動作のパターンを調べ、その主要な動作に関連付けられたヘルプ情報を取り出すことにより、この動作を行うこともできる。
【００５６】
任意種のパターンマッチング機能、人工知能機能、制約処理機能など、各種の機構を使用して上記の動作を行うことができる。上記のいずれの場合でも、その機構は、長い期間にわたってユーザ１０２の入力動作についての分析を行って、その動作に反映される一般的な入力パターンのタイプ、その動作を行う際にユーザ１０２によって犯される一般的なエラーのタイプ、ユーザ１０２がアプリケーションインタフェース２０４のある側面を使用するのに問題を抱えている時に役立つことが分かっている一般的なヘルプ情報のタイプ、を判定する学習機能を組み込むことができる。ヘルプ機能１２８は、その分析を適用して、ユーザ１０２のヘルプに関連する必要性をより正確に判断し、関連する情報をユーザ１０２に提供することができる。ヘルプ機能１２８は、その学習を、複数ユーザの動作の総合的な分析に基づいて行うこともできる。さらに別の実施では、ヘルプ機能１２８は、ユーザ１０２のヘルプに関する必要性のステートレス（ｓｔａｔｅｌｅｓｓ）な判断を提供することができ、その場合は、ユーザ１０２のアプリケーションインタフェース２０４との現在の対話の状況に関係なく、ユーザ１０２による特定の動作は、常に同じタイプのヘルプ情報を表示させる。
【００５７】
上記のいずれの場合でも、ヘルプ機能１２８を実施するロジックは、主としてローカルの場所に（例えばユーザデバイス１０４により）提供されても、または主としてリモートの場所（例えば支援センター１０６により）に提供されても、またはローカルな場所とリモートの場所の両方に提供されるロジックの組み合わせとして提供されてもよい。同様に、ヘルプ情報自体も、主としてローカルな場所に記憶されても（例えばユーザデバイス１０４に）、主としてリモートの場所に記憶されても（例えば支援センター１０６に）、またはローカルの場所とリモートの場所の両方に提供されたストレージの組み合わせによって記憶されてもよい。
【００５８】
上記の例は、ユーザ１０２がアプリケーションインタフェース２０４の機能を特定した際のヘルプ情報の自動的な取り出しを強調した。しかし、さらに別の実施では、リモートモードで、ヘルプ機能１２８は、人間のアシスタント１５８に依拠してユーザ１０２のヘルプに関する必要性を判断することができる。例えば、ある場合には、手動支援モジュール１５６は、人間のアシスタント１５８が、主要アプリケーションと対話する際のユーザ１０２の動作を監視できるようにする機能を含むことができる。例えば、ヘルプ機能１２８は、人間のアシスタント１５８が、ユーザ１０２に提示されているアプリケーションインタフェース２０４の複製を見られるようにする機構を提供することができる。そして、アシスタント１５８自身の個人経験と判断に基づいて、アシスタント１５８が、ユーザ１０２に伝達すべきヘルプ情報を判断することができる。図示しないが、ユーザデバイス１０４は、音声伝達機構（ユーザ１０２から音声信号を受け取るマイクロフォンなど）を含むことができる。それにより、ユーザ１０２は、抱えている問題をアシスタント１５８に直接説明することができる。（あるいは、別の実施では、自動支援モジュール１５４がユーザ１０２の音声入力を受け取り、音声認識技術を使用してユーザ１０２の質問を判定することができる。）
【００５９】
Ａ．２．ｉｉ．  判定されたヘルプ情報の提供
第２のジャストインタイムの伝達の態様は、上記のように判定されたヘルプ情報をユーザ１０２に提示する独自の方式に関する。ヘルプ機能１２８は、そのような情報を多くの異なる方式で伝達することができる。概要として、ヘルプ機能１２８は、音声情報、視覚情報（テキストおよび／またはグラフィック情報）、または音声情報と視覚情報の組み合わせとして、ヘルプ情報を伝達することができる。ヘルプ機能１２８は、主としてローカルの記憶媒体１２６、リモートのデータベース１５２から、またはローカルの記憶媒体１２６とリモートデータベース１５２の組み合わせからヘルプ情報を供給することができる。
【００６０】
まず、図２を参照して音声情報の伝達の場合を考察する。コマンドボタン２１４によって、ショッピングカートの画面が呼び出されるとする。したがって、ポインタ２２０をシースルーパネル２０２上でコマンドボタン２１４の近くに置くと、ヘルプ機能１２８が、例示的な音声ヘルプ情報２２６「コマンド１でショッピングカートが起動します。購入内容を確認するにはこのボタンを押してください」を提示する。したがって、音声情報は、ユーザ１０２がたまたまその時に対話しているアプリケーションインタフェース２０４の特定の部分を明確に対象としている。
【００６１】
ヘルプ機能１２８は、この音声情報を種々の方式で供給することができる。この音声情報は、ローカルの記憶媒体１２６、リモートのデータベース１５２から、またはローカルおよびリモート両方のソースから供給されることができる。音声情報はあらかじめ録音された人間の声、あらかじめ録音された合成音声、記憶されたテキスト情報または何らかの他の技術に基づいてリアルタイムで生成される音声情報とすることができる。いずれにせよ、音声情報は、単語、フレーズ、および／または文の異なる部分に相当するセグメントとして記憶することができる。ヘルプ機能１２８は、アプリケーションインタフェース２０４とのユーザ１０２の対話の状況に応じて、それらの部分を組み合わせてユーザ１０２に伝達する意味のある内容を形成することができる。ある場合には、組み合わせられるヘルプ指示の種々の可能な置き換えが、ユーザ１０２に提示することができる限定された命令のセットを定義する。別の場合には、ヘルプ機能１２８は、アプリケーションインタフェース２０４とのユーザ１０２との現在の対話の状況に基づいて、制約のない動的な方式で指示を組み立てるように構成することができる。その場合、ヘルプ機能１２８によって作成されるヘルプ指示の置き換えの数は、制限がないか、いずれにせよ非常に多くすることができる。この場合も、人工知能機能、制約処理機能などを使用して、アプリケーションインタフェース２０４とのユーザ１０２の状況固有の対話に応じて、適切な指示をインテリジェントに構成することができる。
【００６２】
音声のヘルプ情報は、音声出力装置１３４（スピーカなど）に任意の方式で供給することができる。例えば、リモートモードでは、音声のヘルプ情報は、ＲＴＰ（リアルタイムプロトコル）、ＲＴＣＰ（リアルタイムコントロールプロトコル）、ＲＴＳＰ（リアルタイムストリーミングプロトコル）、あるいは他のフォーマットなどのプロトコルを使用して、音声出力装置１３４に転送することができる。ストリーミングプロトコルの代わりに、リモートのヘルプ機能１２８は、例えば完全なファイルなどで一括して音声情報を転送することができ、転送されると、ユーザデバイス１０４は続いてその情報をユーザ１０２に提示する。さらに別の場合には、リモートのヘルプ機能１２８は、命令（インデックス情報など）だけをユーザデバイス１０４に転送することができ、転送されると、ユーザデバイス１０４は、その命令を使用してローカルの記憶媒体１２６から音声情報を引き出し、それをユーザ１０２に提示する。さらに他の技術を用いて音声情報の提示を実現することができる。
【００６３】
別の実施によれば、人間のアシスタント１５８が、結合機構１６２または何らかの他の音声伝達チャネルを通じて、リアルタイムの音声指示をユーザ１０２に提供することができる。そうした音声指示は、ユーザ１０２が遭遇している可能性のある問題のタイプに関するアシスタント１５８の経験に基づくことができる。上述したように、ユーザデバイス１０４は、ユーザ１０２自身の声を受け取り、それを支援センター１０６に転送する機構も含むことができる。それにより、ユーザ１０２はアシスタント１５８に返答することができる。自動支援モジュール１５４は、ユーザ１０２の質問と返答を自動的に分析する音声認識技術も含むことができる。この機構を通じて、システム１００は、ユーザ１０２とアシスタント１５８の会話に対応することができる。
【００６４】
音声モードでは、ヘルプ機能１２８は、ヘルプ情報を目障りにならない方式で伝達することができる。すなわち、音声情報は、その性質上、場合によってはユーザの注意力をそらす情報でアプリケーションインタフェース２０４を雑然とさせない。ヘルプ機能１２８は、ユーザ１０２によるポインタ２２０の配置に依拠して、ユーザ１０２に提示すべきヘルプ情報を判定することができるが、このポインタ２２０は比較的少ない量のオーバーヘッド情報であり、したがって、アプリケーションインタフェース２０４を過度に雑然とさせない。さらに、ヘルプ機能１２８は、このポインタ２２０をシースルーパネル２０２の上に提示し、そのため、ポインタ２２０によって生じる注意力の散漫をさらに低減する。ヘルプ情報は基本的にアプリケーションインタフェース２０４の「上に」目障りにならないように重ねられ、アプリケーションインタフェース２０４を効果的に補うが、その他の点ではインターフェース２０４の通常の外観と雰囲気を妨げることはないため、この機構は、より良いユーザ体験につながる。
【００６５】
これに代えて、またはこれに加えて、ヘルプ機能１２８は、視覚的なヘルプ情報を提示することができる。図２では、視覚的なヘルプ情報２２８がシースルーパネル２０２自体の上に提示されている。これは、そのヘルプ情報２２８が、アプリケーションインタフェース２０４の表示機能と分離しているという印象を与える。その結果、ユーザ１０２は主要アプリケーションによって提示されている情報と、ヘルプ機能１２８によって提示されている情報をより容易に区別することができるので、可能性としてユーザ１０２の混乱を軽減する。図２では、視覚的なヘルプ情報２２８は、アプリケーションインタフェース２０４のどの機能の上にも重ならないように提示されている。しかし、他の場合には、ヘルプ機能１２８は、アプリケーションインタフェース２０４の機能の一部分に重なるように視覚的なヘルプ情報２２８を提示することができる。視覚的なヘルプ情報は、下が透けて見えるプロパティを有することもできる。そうした表示プロパティはすべて、ユーザ１０２を過度に混乱させることなく、狭い空間に多くの量の情報を提示することを可能にし、そのため、表示画面が狭い小型のコンピューティングデバイスに理想的である。
【００６６】
視覚的なヘルプ情報は、図２に示すテキスト形態以外の他の形態をとることができる。例えば、ヘルプ機能１２８は、記号による情報、絵による情報、動画のデモンストレーションなどを提示することができる。また、ヘルプ機能１２８は、アプリケーションインタフェース２０４自体の上に直接視覚的ヘルプ情報を提示することもできる。いずれの場合も、ヘルプ機能１２８は、所定の時間後、またはユーザ１０２による明示的な要求に応答して（ユーザ１０２がヘルプ情報２２８をクリックする、あるいはヘルプ情報２２８を対象とする何らかの他の入力を行うのに応答して）、ヘルプ情報２２８を自動的に除去することができる。
【００６７】
他の技術を使用して、目障りにならない形で視覚的なヘルプ情報を提示することができる。図３に、そのような代替的な技術の１つを示す。図３に示すように、ユーザ１０２は、この場合もコマンドボタン２１４を指すようにポインタ２２０を配置している。しかし、この場合は、ヘルプ機能１２８は、アプリケーションインタフェース２０４の上においてユーザインターフェース機能を実際に動かして、間を空けることにより、視覚的なヘルプ情報３０２を提示する。この場合、ヘルプ機能１２８は、コマンドボタン２１４およびコマンドボタン２１６を移動させて離し、コマンドボタン２１４とコマンドボタン２１６の間に視覚ヘルプ情報３０２を挿入する。ヘルプ情報３０２が除去されると、ヘルプ機能１２８は、コマンドボタン２１４とコマンドボタン２１６を移動して再び一緒にすることができる。上記で説明したように、ヘルプ機能１２８は、所定の時間後、あるいはユーザ１０２からの明示的な要求に応答して（ユーザ１０２がヘルプ情報３０２の上でクリックする、あるいはヘルプ情報３０２を対象とする何らかの他の入力動作を行うのに応答して）、ヘルプ情報３０２を自動的に除去することができる。図３の実施では、ヘルプ機能１２８は、視覚的ヘルプ情報３０２をシースルーパネル２０２の上に提示している。しかし、ヘルプ機能１２８は代わりに、アプリケーションインタフェース２０４自体の上に視覚的なヘルプ情報３０２を提示し、したがって、場合によってはシースルーパネル２０２の使用を省くこともできる。
【００６８】
したがって、図３は、ヘルプ情報の提示に対応するためにアプリケーションインタフェース２０４の一部が移動される、動的なヘルプ情報提示の方式を示す。これは、ユーザインターフェース表示１４２の上にインテリジェントにヘルプ情報を配置して、ヘルプ情報と、それに対応してそのヘルプ情報が説明するインターフェース機能との、概念的な関連付けを促進するので、ユーザのユーザインターフェース表示１４２の理解を促す。また、ユーザインターフェース表示１４２の内容を動的に配置して、一時的なヘルプ情報の表示に対応することができるので、ディスプレイが小さいコンピュータデバイスに理想的である。
【００６９】
一般に、音声ヘルプ情報の場合と同様に、ヘルプ機能１２８は、視覚的ヘルプ情報を種々の方式で供給することができる。この情報は、ローカルの記憶媒体１２６、リモートデータベース１５２、またはローカルおよびリモート両方のソースから供されることができる。視覚的ヘルプ情報は、単語、フレーズ、および／または文などの異なる部分に相当するセグメントとして記憶することができる。ヘルプ機能１２８は、アプリケーションインタフェース２０４とのユーザ１０２の対話の状況に応じて、それらの部分を組み合わせてユーザ１０２に伝達する意味のある内容を形成することができる。このようにして、ヘルプ機能１２８は、限定されたグループの可能な視覚的ヘルプ指示、または、動的で制約のない方式で場合によっては制限のない数のそのような指示、を形成することができる。視覚的ヘルプ情報は、ＳＭＩＬ（Ｓｙｎｃｈｒｏｎｉｚｅｄ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｇｒａｔｉｏｎ  Ｌａｎｇｕａｇｅ）など任意のプロトコルに基づいて、任意の方式によって、ユーザインターフェース表示１４２に供給することができる。
【００７０】
別の実施では、人間のアシスタント１５８が、ユーザデバイス１０４の表示装置１４０でユーザ１０２に提示する視覚的ヘルプ情報を手動で入力（タイプ入力など）することができる。
【００７１】
上記のいずれの場合でも、再生型のコントロール２３０を使用して、ヘルプ情報（音声情報または視覚的情報。あるいはその両方）の再生を制御することができる。例えば、ユーザ１０２が、より多くの情報が欲しい機能としてコマンドボタン２１４を特定したとする。それがヘルプ機能１２８に指示して、コマンドボタン２１４を説明する音声セグメントまたは動画の視覚デモンストレーションを提示させることができる。再生コントロールによって、ユーザ１０２は、例えば情報の一部分を再生する、情報を一時停止する、情報を別の部分に早送りするなどにより、そのヘルプ情報の再生を制御することができる。
【００７２】
最後に、シースルーパネル２０２は、ヘルプ機能１２８に直接関連しない機能をいくつか提供することもできる。例えば、図２または図３を参照すると、ユーザデバイス１０４は、ユーザ１０２が、スタイラスを使用して作成された例示的なメモ２３２「ジェームスに電話する」などの手書きのメモをシースルーパネル２０２に追加できるようにする方式で構成することができる。ユーザデバイス１０４は、ユーザ１０２がそのようなメモを保存し、後に取り出せるようにする方式を含むことができる。
【００７３】
上記で明らかにした音声および視覚による提示機能は、どのようなユーザデバイスに関しても有用であるが、小型のユーザデバイス（携帯電話、ＰＤＡ、タブレット型の入力装置など）に特に役立つ。これは、そうした小型のデバイスは、そのサイズに応じて表示画面が狭いためである。そうしたデバイスでは、しばしばユーザインターフェースの複雑性に厳しい制約がある。上記で説明した音声情報と視覚的情報の伝達は、表示画面を過度に複雑にする（雑然とさせるなど）ことがなく、したがってそうした小型のユーザデバイスに理想的である。
【００７４】
Ａ．２．ｉｉｉ  ヘルプ機能の具体的な例示的実施
図４に、図２のユーザインターフェース表示１４２の一部の構造を示す。ユーザインターフェース表示１４２は、アプリケーションインタフェース２０４の上に配置されたシースルーパネル２０２を含む。図４は、（説明のために）文字通りアプリケーションインタフェース２０４の上方に配置されたシースルーパネル２０２を示すことにより、その２つの視覚的構成要素（２０２、２０４）の区別を強調している。アプリケーションインタフェース２０４は、いくつかのユーザインターフェース機能を含むことができ、その１つがコマンドボタン２１４である。シースルーパネル２０２は、ポインタ２０２（または他のマーク）と、コマンドボタン２１４を説明する視覚的ヘルプ情報２２８を含む。
【００７５】
上述したように、ユーザ１０２は、アプリケーションインタフェース２０４の任意の場所にポインタ２２０を置いてアプリケーションインタフェース２０４の種々の機能をポイントし、そしてその機能に対応するヘルプ情報２２８を受け取ることができる。図４の例では、ユーザ１０２は、コマンドボタン２１４を指すようにポインタ２２０を配置している。それに応答して、ヘルプ機能１２８は、コマンドボタン２１４のいくつかの側面を説明する視覚的ヘルプ情報２２８を提示する。
【００７６】
それと同時に、ユーザデバイス１０４は、ユーザ１０２がアプリケーションインタフェース２０４と対話することを可能にする。したがって、アプリケーションインタフェース２０４と対話する際に、ユーザ１０２は、コマンドボタンおよびオプションを起動する、テキスト入力フィールドに情報を入力するなどして、シースルーパネル２０２を「突き抜けて」パネル２０２の機能と対話する。図４の場合、線４０２で示すように、ユーザ１０２は、シースルーパネル２０２を突き抜けてコマンドボタン２１４を起動することができる。
【００７７】
上記の機能は、様々な方式によって実施することができる。１つの技術では、各種のアプリケーションプログラミングインターフェース（ＡＰＩ）（マイクロソフト社から提供されるＷｉｎ３２（登録商標）ＡＰＩスイートなど）を使用して、シースルーパネルの視覚的な錯覚を実装することができる。この技術では、ＡＰＩを使用して、一時的な「作業用」記憶領域（図示せず）を使用して、ユーザインターフェース表示１４２を定義するピクセル情報を構築し、そのピクセル情報を、表示ロジック１３８によって提供される周期的にリフレッシュされるフレームバッファ（図示せず）に転送することができる。次いで、ユーザデバイス１０４は、フレームバッファに記憶されたピクセル情報に基づいて、表示装置１４０にユーザインターフェース表示１４２を表示することができる。ユーザデバイス１０４は、まず、アプリケーションインタフェース２０４の各種機能を含んだ基本層を作成し、次いでシースルーパネル２０２の各種機能を追加するなどにより、作業用記憶領域のユーザインターフェースフィールドの異なる「層」を連続的に適用することにより、上記のようにインターフェース表示１４２を構築することができる。第１の層の上に第２の層を加えることにより、第１の層におけるピクセル集合の上に重ね書きした効果を得ることができる。例えば、シースルーパネル２０２の効果を模すために、ユーザデバイス１０４は、本来のアプリケーションインタフェース２０４のピクセルの上に、シースルーパネル２０２の擬似的なガラスの筋模様を定義するピクセルの集まりを重ね書きすることができる。所望のシースルーパネル効果が実現されると、ユーザデバイス１０４は、その結果得られた合成のユーザインターフェース表示１４２を定義するピクセル情報を、ビットブロック転送（ｂｌｉｔ）技術などの任意種の機構を使用して、作業用記憶領域からフレームバッファに転送することができる。ビットブロック転送技術では、長方形のピクセルグループが表示メモリに転送される。代替の技術においては、コンピュータデバイス１０４が、直接フレームバッファを操作することにより、所望のシースルーパネル効果を作り出すことができる。
【００７８】
上記の技術のいずれにおいても、アルファブレンディングを使用してシースルー効果を作り出すことができる。アルファブレンディングは、次のように、最終的な画像情報＝（元の画像情報）＊（元のアルファ係数）＋（目標画像情報）＊（目標アルファ係数）となるように、元の画像情報と目標画像情報を混合して最終的な画像情報を作成するように機能する。アルファ係数は、通常０から１までの範囲を取り、元の画像情報と目標画像情報がともに混合されて、別の層の上に重ね合わせられたある程度の透明性を有する１つの情報層の錯覚を作り出す程度を定義する。このようなブレンド動作は、ユーザデバイス１０４によって提供されるユーザインターフェース表示１４２全体を包含的に定義するように大域的規模で行っても、他のユーザインターフェース機能（Ｗｉｎｄｏｗｓ（登録商標）（商標）オペレーティングシステムなど）と連係して適用して、そのような他のユーザインターフェース機能で提供されるユーザインターフェース表示の特定の側面だけを支配してもよい。
【００７９】
上記のブレンド動作を行う例示的なツールの１つは、マイクロソフト社から提供されるＤｉｒｅｃｔＸ（登録商標）ソフトウェア製品ラインから得られる。この製品を使用したアルファブレンディングについての概略的な背景情報は、いくつかの情報源から得ることができる（非特許文献１）。
【００８０】
図４に示すシースルーパネルを実装するにはさらなる手法が存在する。例えば、ユーザデバイス１０４は、ヘルプ情報を提示する第１の面と、アプリケーションインタフェース情報を提示する第２の面の、ともに挟み込まれた２つの物理的な表示画面を実際に提供することができる。
【００８１】
シースルー効果を作り出すために使用される技術に関わらず、シースルーパネル２０２に取り込まれるユーザインターフェース機能（ポインタ２２０など）は、種々の方式で作成することができる。ある技術では、ユーザデバイス１０４は、下にあるアプリケーションインタフェース２０４にも利用することができる既存のユーザインターフェースリソースライブラリを使用することにより、そうしたユーザインターフェース機能を提供することができる。別の技術では、ユーザデバイス１０４は、そのような既存のユーザインターフェースリソースの１つまたは複数に動的に変更を加えることにより、そうしたユーザインターフェース機能を提供することができる。さらに別の技術では、ユーザデバイス１０４は、既存のユーザインターフェースリソースに直接相当する機能がない新しいユーザインターフェース機能を動的に作成することにより、そうしたユーザインターフェース機能を提供することができる。あるいは、ユーザデバイス１０４は、上記の技術の組み合わせを適用することができる。
【００８２】
同様に、図３に示すユーザインターフェース機能の動的な移動も種々の方式で実装することができる。ある機構によれば、ヘルプ機能１２８は、ユーザインターフェース表示１４２上へのユーザインターフェース機能の表示を管理するジオメトリ処理機能（ＧＰＦ）１６４を含むことができる。ヘルプ機能１２８がヘルプ情報を表示しようとする際に、ＧＰＦ１６４は、現在表示されているユーザインターフェース機能の集合のどこにヘルプ情報を挿入するかを判定し、必要な場合は、ヘルプ情報の表示に対応するために、現在表示されているそれらのユーザインターフェース機能をどのように移動するかを決定することができる。
【００８３】
ＧＰＦ１６４は、上記のタスクを種々の方式で行うことができる。１つの技術では、ユーザインターフェース表示１４２中の各ユーザインターフェース機能に、メモリに記憶されたメタデータを関連付けることができる。種々の情報の中でも特に、メタデータは、ユーザインターフェース機能に関連付けられた重要度を決定する情報を含むことができる。例えば、ヘルプ機能１２８は、コマンドボタン２１４などの１つまたは複数のコントロールに比較的高い重要度を割り当てることができる。例えば、ボタン２１４なしではユーザ１０２は主要アプリケーションと対話することができないので、コマンドボタン２１４が重要とみなされるとする。一方、主要アプリケーションは、そのような重要な役割を果たさない他のユーザインターフェース機能を提供する場合もある。例えば、図２を参照すると、主要アプリケーションは、ユーザ１０２が必須でないコメントを入力できるテキスト入力ボックス２１８を提供する場合がある。そのため、そのテキスト入力ボックス２１８が一時的に取り除かれても、主要アプリケーションとのユーザ１０２の対話は不可能にならない。したがって、ヘルプ機能１２８は、テキスト入力ボックス２１８にはコマンドボタン２１４と比較して、低い重要度を割り当てることができる。この優先度の順位付け方式では、ヘルプ機能１２８は、ヘルプ情報自体にも重要度を割り当てることができる。一般に、ユーザインターフェース機能とヘルプ情報は、それらの機能と情報を提示するために必要とされる表示「面積」を定義する、関連付けられた表示フィールドを有する。
【００８４】
ヘルプ情報を表示するように促されると、ＧＰＦ１６４は、現在表示されているユーザインターフェース機能に割り当てられた上記の優先度と、ヘルプ情報自体に割り当てられた優先度に基づいて、（必要な場合は）移動されるべき表示フィールドを判定することができる。例えば、例示的な一例では、ＧＰＦ１６４は、すべてのヘルプ情報に比較的高い優先度の順位付けを割り当てることができる。その場合、ＧＰＦ１６４は、ユーザインターフェース表示１４２に現在表示されているユーザインターフェース機能の中で、最も優先度が低いものを判定することにより、そのヘルプ情報を表示する要求に応えることができる。そして、ＧＰＦ１６４は、それらの機能に関連付けられた表示フィールドを一時的に移動させてヘルプ情報の表示に対応する。また可能であれば、ユーザインターフェース表示１４２からそのような表示フィールドの１つまたは複数を一時的に取り除くこともできる。例えば、図３では、ＧＰＦ１６４は、コマンドボタン２１４を移動させてコマンドボタン２１６から一時的に離し、それらのボタン（２１４、２１６）の間にできた空間にヘルプ情報３０２を挿入することにより、ヘルプ情報３０２を表示している。これにより、ユーザインターフェース表示１４２の他の表示フィールドも移動される可能性があり、また、この例では、テキスト入力ボックス２１８（図２に示す）全体が一時的にユーザインターフェース表示１４２から除去することができる（その結果を図３に示す）。この除去は、様々な要素の中でも特に、テキスト入力ボックス２１８に関連付けられた重要度が低く、主要アプリケーションとのユーザ１０２の対話を不可能にすることなく取り除くのに都合がよいということを反映することができる。ＧＰＦ１６４は、所定の時間後（数秒あるいは数分など）、あるいはユーザ１０２の明示的なコマンドに応答して、ユーザインターフェース表示１４２を元の状態に戻すように構成することができる。これは、ヘルプ情報を取り除き、表示フィールドを元の位置に移動することを伴う。一方、ヘルプ情報の重要度が現在表示されているユーザインターフェース機能に比べて比較的低い場合は、ＧＰＦ１６４は、ヘルプ情報の提示を完全に禁止することも出来る。
【００８５】
ＧＰＦ１６４は、移動するフィールドに関連付けられたピクセル座標に表示位置のオフセットを足し、そのオフセット表示座標を使用してユーザインターフェース表示１４２を再描画するなどにより、上記の表示フィールドの移動を任意の方式で実施することができる。そして、ＧＰＦ１６４は、表示フィールドを元の表示座標に戻し、再度ユーザインターフェース表示１４２を再描画することにより、ユーザインターフェース表示１４２を初期の状態に戻すことができる。
【００８６】
ＧＰＦ１６４は、種々のＵＩ空間管理パラダイムを応用して、どのように表示フィールドを移動するかを決定することができる。具体的で例示的な基本的事例の１つでは、ＧＰＦ１６４は、ａ）ヘルプ情報をどこに挿入するかを決定し、ｂ）ヘルプ情報を表示するために必要な長方形の「高さ」Ｈ（図３に示すヘルプ情報フィールド３０２の縦の長さで定義されるものなど）を判定し、ｃ）挿入位置の上にあるすべての表示フィールドを上に１／２Ｈ移動し、挿入位置の下にあるすべての表示フィールドを下に１／２Ｈ移動し、ｄ）それにより作られた空間にヘルプ情報３０２を表示することができる。さらに複雑なアルゴリズムを使用することができる。例えば、ＧＰＦ１６４は、横と縦両方の表示方向にフィールドを移動するように構成することができる。
【００８７】
ＧＰＦ１６４は、ヘルプ情報の表示を決定する各種の発見的規則を適用するように構成することもできる。例えば、ユーザインターフェース機能に割り当てられる優先度は、静的である必要はない。規則の集まりによって、異なる状況でユーザインターフェース機能に割り当てられる優先度を決定することができる。例えば、ユーザ１０２が特定のユーザインターフェース機能について問い合わせている場合は、それに応じてその機能の優先度を上げて、ユーザインターフェース表示１４２から取り除かれないようにする。別の規則の集まりで、ユーザ１０２が問い合わせているユーザインターフェース機能に対してヘルプ情報を表示する場所を決定することができる。例えば、ヘルプ情報が表示されたユーザインターフェース表示１４２の理解を促すために、ヘルプ情報はできる限り対象機能の近くに表示することが望ましい。別の規則の集まりで、ヘルプ情報の表示に対応するために（現在問い合わせられていない）他のユーザインターフェースフィールドをどのように移動するかを決定することができる。例えば、ユーザインターフェース機能の中には他のユーザインターフェース機能のグループにリンクされているものがある場合があり、そのグループ中の機能の１つが移動される場合は、そのグループをまとめて移動することが望ましい場合などがある。下にあるアプリケーションインタフェース２０４の設計と他の環境および設計に関連する要素に応じて、さらに他の規則を定義することができる。
【００８８】
さらに、ＧＰＦ１６４は、各種の最適化アルゴリズムを適用して、ヘルプ情報を挿入する場所と、そのようなヘルプ情報の表示に対応するために存在する表示フィールドを動かす方式を決定するように構成することができる。すなわち、そのようなアルゴリズムは、任意種のオペレーションリサーチ手法を適用して、ユーザインターフェース機能と提示するヘルプ情報に関連付けられた長方形の表示フィールドの最適な「パッキング」を提供することができる。さらに、ＧＰＦ１６４は、任意種の人工知能（エキスパートシステムなど）分析あるいは制約処理分析を応用して、ヘルプ情報の表示に対応するためにどのようにユーザインターフェース表示１４２を再構成するかを決定するように構成することができる。
【００８９】
上記のいずれの場合においても、ＧＰＦ１６４は、追加的なメタデータのフィールドをユーザインターフェース機能に関連付けることを必要とすることにより、動作をさらに向上することができる。例えば、優先度情報に加えて、ヘルプ機能１２８は、様々な表示状況でどのようにユーザインターフェース機能を動かすかを決定するメタデータを作成することができる。このメタデータは、例えば、他のユーザインターフェース機能に対してユーザインターフェース機能をどのように移動するか（または移動しないか）を定義することができる（それらの機能がすべて同時に表示されているとして）。ＧＰＦ１６４は、そのような補助メタデータを読み出し、ヘルプ情報の表示に対応するためにユーザインターフェース表示１４２をどのように変更するかを判定する際にそのメタデータを使用するように構成することができる。さらに、ヘルプ機能１２８は、すべてのヘルプ情報に同じ重要度を割り当てる必要はない。一部のヘルプ情報は、他のヘルプ情報よりも重要であると判断されてよい。
【００９０】
上記のジオメトリ処理の実例は、例示的なものであり、制限的ではない。ヘルプ機能１２８が用いられる技術的環境に応じて、他の技術および機構を使用することができる。さらに、図１では、ＧＰＦ１６４がヘルプ機能１２８のモジュールとして実施されているが、ユーザデバイス１０４は、ヘルプ機能１２８からアクセス可能な独立した機能モジュールとしてＧＰＦ１６４を提供することができる。さらに、図ではＧＰＦ１６４はユーザデバイス１０４によって実施されているが、全体または一部を遠隔の処理リソース（支援センター１０６など）によって実施することもできる。
【００９１】
次いで図５を参照すると、ユーザ１０２が１つまたは複数のヘルプモード５０２を選択することができるユーザインターフェース５００が示されている。すなわち、上記で述べたように、ヘルプ機能１２８は、様々な方式でヘルプ情報を供給することができる。選択肢の１つによれば、起動されるヘルプ機能１２８は、ローカルな場所、リモートの場所、または、ローカルな場所とリモートの場所の組み合わせに収容することができる。別のオプションによれば、ヘルプ機能１２８は、完全に自動化された方式、完全に手動の方式（人間のアシスタント１５８のサービスを使用するなど）、あるいは自動化された方式と手動方式の組み合わせによって、ヘルプ情報を伝達することができる。別の選択肢によれば、ヘルプ情報自体は、音声情報、視覚的情報、または音声情報と視覚的情報の組み合わせとすることができる。さらなる選択肢が可能である。上記で明らかにした選択肢の異なる個々の組み合わせに対応する、異なるヘルプモードを定義することができる。ユーザインターフェース５００は、ユーザ１０２が、主要アプリケーションとユーザ１０２の対話を支配する１つまたは複数のヘルプモードを選択することを可能にする。
【００９２】
例えば、図５に示す例では、ユーザ１０２は、ヘルプ情報がリモート支援センター１０６（データベース１５２など）から供給されることを指定している。ユーザ１０２は、ヘルプ機能１２８が、人間のアシスタント１５８のサービスを用いずに、自動化された方式でヘルプ情報を伝達することも指定している。ユーザ１０２は、ヘルプ情報が、音声フォーマットと視覚的フォーマットの両方で提示されることも指定している。さらに、ユーザインターフェース５００で、ユーザ１０２は、音声および／または視覚的なヘルプ情報が提示される方式を指定することにより、ヘルプ情報提示の好みをさらに詳細に指定することができる。例えば、音声による提示の場合、ユーザインターフェース５００は、ユーザ１０２が、ストリーミング型のモード、一括配信型のモードなど、様々な音声配信タイプから選択できるようにすることができる。視覚による提示の場合、ユーザインターフェース５００は、ユーザ１０２が、シースルーパネル２０２へのヘルプ情報の提示、アプリケーションインタフェース２０４の部分を動的に移動することによるヘルプ情報の提示など、様々な視覚的な伝達タイプから選択できるようにすることができる。
【００９３】
あるいは、環境に応じて、システム１００は「ハードワイヤード」にして、ヘルプモードのオプションの１つまたは複数のみを提供することもできる（すなわち、ユーザ１０２にいくつかのヘルプオプションから選択させない）。
【００９４】
最後に、人間のアシスタント１５８によって使用されるリモート支援モジュール１５６は、種々の方式で実施することができる。例えば、リモート支援モジュール１５６は、マイクロソフト社のＲｅｍｏｔｅ  Ｄｅｓｋｔｏｐ機能あるいはそれに変更を加えたものを使用して、ユーザデバイス１０４の表示装置１４０に提示されているユーザインターフェース表示１４２を監視することができる。
【００９５】
Ｂ．例示的な動作方法
図６は、セクションＡにおいて説明した機能の一部を、フローチャートの形で要約したものである。説明を簡単にするために、一般に、特定の動作は、特定の順序で行われる別個のステップを構成するものとして説明する。このような実施は、例示的なものであり、限定的なものではない。ここに記載されるステップのいくつかはまとめて、１回の動作で行うことができ、特定のステップは、本開示に述べられる例で用いられる順序とは異なる順序で行ってよい。
【００９６】
ステップ６０２において、主要アプリケーションと対話しているユーザ１０２が、ヘルプ情報を要求する。ユーザ１０２は、ポインタ２２０をアプリケーションインタフェース２０４における特定の機能の近くに置くことにより、この作用を行うことができる。あるいは、ユーザ１０２は、スタイラスなどでその機能に印をつけることができる。これに代えて、またはこれに加えて、ヘルプ機能１２８は、例えばユーザ１０２が以前に行った入力動作のパターンの分析に基づいて、ユーザ１０２がヘルプを必要としていることを自動的に推測することができる。
【００９７】
ステップ６０４において、ヘルプ機能１２８は、ヘルプ提示の状況を判断する。すなわち、このステップ６０４で、ヘルプ機能１２８は、ユーザ１０２に提示すべきヘルプ情報を決定する。ヘルプ機能１２８は、ポインタ２２０の位置に関する情報と、下にあるアプリケーションインタフェース２０４の機能を対応付けることにより、このタスクを行うことができる。これに代えて、またはこれに加えて、ヘルプ機能１２８は、ユーザ１０２が以前に行った入力動作の状況分析を行う（それにより、ユーザ１０２が行おうとしている動作の判定に基づいて、提示する該当ヘルプ情報を判定する）ことにより、この機能を行うこともできる。
【００９８】
ステップ６０６において、ヘルプ機能１２８は、ユーザ１０２によって選択された（あるいはシステム１００で固定された）ヘルプモードに従って、ユーザ１０２にヘルプ情報を送る。可能なヘルプモードは、図５とともに明らかにした。
【００９９】
判定の菱形６０８で表すように、上記の手順は、ユーザ１０２が主要アプリケーション内を移動するのに伴って複数回繰り返すことができる。
【０１００】
最後に、図７は、図６に示す手順の結果であるヘルプ情報のジャストインタイムの伝達を示す。図７の最初の列は、ユーザ１０２が、主要アプリケーションによって提供されるアプリケーションインタフェース２０４（図７には示さない）に関して行うことができる、一連の動作（ＡＡ１、ＡＡ２、．．．、ＡＡｎ）を示す。すなわち、最初の列は、所望のアプリケーション作業（オンラインショッピングサービスを介した商品注文など）を行うための、ユーザ１０２の主要アプリケーションとの通常の対話を表す。図７の２番目の列は、最初の列に示す動作に応答して提示される一連のユーザインターフェース表示１４２を示す。ユーザインターフェース表示１４２は、下にあるアプリケーションインタフェース２０４に関連付けられた、ヘルプに関連するインターフェース機能を含む。例えば、ユーザインターフェース表示１４２は、シースルーパネル２０２を含むことができ、このパネル２０２によって、ユーザ１０２はヘルプ機能１２０を呼び出すことができる。図７の３番目の列は、２番目の列に示すユーザインターフェース表示１４２によって可能にされたヘルプに関連するインターフェース機能に関して、ユーザ１０２が行うことができる一連の動作（ＡＨ１、ＡＨ２，．．．，ＡＨｎ）を示す。例えば、これらの動作（ＡＨ１、ＡＨ２，．．．，ＡＨｎ）は、ユーザ１０２が、ポインタ２２０（図７には示さない）を移動して、シースルーパネル２０２の下にある様々な機能をポイントする等である。代替的な実施では、ヘルプ機能１２８が状況分析に基づいてユーザ１０２が支援を必要とするトピックを自動的に推測することができ、または、人間のアシスタント１５８が、ユーザ１０２が支援を必要とするトピックを手作業で判定することができるという意味では、これらの動作は必須ではない。４番目の列は、３番目の列におけるイベントの結果提供される一連のヘルプ情報提示を示す。例えば、このヘルプ情報は、シースルーパネル２０２に提示される一連の視覚的なヘルプ情報メッセージ２２８（図７には図示せず）を表すことができる。
【０１０１】
図７に示すように、このヘルプ機能１２８は、下にある主要アプリケーションと一体的に動作する。この一体化は、少なくとも２つの特徴から生じる。第１に、ヘルプ機能１２８は、自動的かつ適切にユーザ１０２が行っている作業を対象とするヘルプ情報をユーザ１０２に提供し、その情報は、ユーザ１０２がその情報を必要とするちょうどその時に提示される。第２に、ヘルプ機能１２８は、主要アプリケーションの動作を不必要に妨げない形で、ヘルプ情報を提示する。この意味で、ヘルプ機能１２８は、主要アプリケーションの「上に載って」おり、ユーザ１０２がその情報を必要とするちょうどその時に、関連する情報のみを提供する。
【０１０２】
最後に、この開示ではいくつかの例は、代替的な実装として示した（例えばＸの場合またはＹの場合など）。また、この開示は、そうした包括的な（ｃｏｎｊｕｎｃｔｉｖｅ）事例をすべての具体例では明確に言及していないが、複数の代替的な実施を１つの実施に組み合わせる（Ｘの場合とＹの場合など）事例を含んでいる。
【０１０３】
より一般的には、構造的特徴および／または方法論的動作に固有の用語により本発明を説明したが、特許請求の範囲に提示される本発明は、必ずしもここに記載される具体的な特徴または動作に限定されない。そうした具体的な特徴および動作は、特許権が請求される本発明を実施する例示的な形態として開示されている。
【図面の簡単な説明】
【０１０４】
【図１】主要アプリケーションと対話しているユーザにヘルプ情報を提供する例示的システムの図である。
【図２】図１のシステムを使用してユーザにヘルプ情報を提供する例示的なユーザインターフェース表示の図である。
【図３】図１のシステムを使用してユーザにヘルプ情報を提供する別の例示的なユーザインターフェース表示の図である。
【図４】図２のユーザインターフェース表示の例示的構造を示す図である。
【図５】図１のシステムで提供することができる複数のヘルプ提示モードの１つをユーザが選択することができる例示的ユーザインターフェース表示の図である。
【図６】図１のシステムの動作を説明する例示的手順を示す図である。
【図７】図１のシステムの動作を説明する、例示的な一連の動作とそれに対応するユーザインターフェース表示を示す図である。
【符号の説明】
【０１０５】
１０８    携帯電話
１１０    ラップトップコンピュータ
１１２    ＰＤＡ
１１４    タブレット型入力装置
１１６    コンピュータワークステーション
２０２    シースルーパネル
２０４    アプリケーションインタフェース
２０８    ドロップダウンメニュー
２２０    ポインタ
【図１】
0004772380.tif 000002
【図２】
0004772380.tif 000003
【図３】
0004772380.tif 000004
【図４】
0004772380.tif 000005
【図５】
0004772380.tif 000006
【図６】
0004772380.tif 000007
【図７】
0004772380.tif 000008