(57)【特許請求の範囲】
【請求項１】
アプリケーション拡張機能アクティブ化を提供するための方法であって、
項目のリストの中の複数の関連する文書に対応する項目を表示するステップと、
前記複数の関連する文書に関連する新しい文書を受信し、前記項目のリストの中に、前記新しい文書に対応する項目を表示するステップと、
前記項目のリストの中の第２の文書に対する参照が、前記新しい文書についての複数の拡張機能トリガー条件の少なくとも１つを満たしていることを決定するステップと、
前記新しい文書に対応する項目についてのエントリーポイント・ユーザー・インターフェース・エレメントを表示するステップであって、前記エントリーポイント・ユーザー・インターフェース・エレメントを表示することによって、前記アプリケーション拡張機能の少なくとも一つがアクティブ化したことを示すステップと、
前記項目のリストの中の前記新しい文書に対応する項目が選択されたことに応答して、前記複数の拡張機能トリガー条件の少なくとも１つに関連するアプリケーション拡張機能を示すユーザー・インターフェースを含む前記新しい文書を表示するステップと、
を含む方法。
【請求項２】
前記複数の拡張機能トリガー条件に含まれるそれぞれの拡張機能トリガー条件が相対的な優先度を有する、請求項１に記載の方法。
【請求項３】
前記新しい文書に付属するメタデータが、複数の拡張機能トリガー条件の少なくとも２つを満たしていることを決定するステップと、
前記少なくとも２つの拡張機能トリガー条件のうち、最も高い優先度を有する拡張機能トリガー条件を識別するステップと、
前記最も高い優先度を有する拡張機能トリガー条件に関連する拡張機能を示すユーザー・インターフェースを含む前記新しい文書を表示するステップと、
をさらに含む、請求項２に記載の方法。
【請求項４】
前記複数の関連する文書が複数の電子メール・メッセージを含む、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記複数の関連する文書が異なる種類の文書を含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記複数の関連する文書が共通プロジェクトに関連するものである、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記複数の関連する文書が複数のハイパーリンクで参照された複数のウェブ・ページを含む、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
請求項１〜７のいずれか一項に記載の方法を実行するためのプログラム。
【請求項９】
請求項１〜７のいずれか一項に記載の方法を実行するためのプログラムを記録した記録媒体。
【請求項１０】
アプリケーション拡張機能アクティブ化を提供するためのコンピュータ・システムであって、
処理装置と、
コンピュータで実行可能な命令を記憶するメモリー記憶装置を有し、
前記処理装置が前記コンピュータで実行可能な命令を実行することによって、前記コンピュータ・システムに、請求項１〜７のいずれか一項に記載の方法を実行させる、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関連する文書（ドキュメント）のための拡張機能アクティブ化（extension activation）に関する。
【背景技術】
【０００２】
[001]文脈上の拡張機能は、文書の内容に関連する追加情報を示すことにより、文書読
取り経験を補足することができる。いくつかの拡張機能は、いくつかのキー情報が文書中に見出された場合などの適切な場合にのみ表示することができる。従来のシステムは、単一の文書の走査を利用し、かつ、特定の基準がその文書に設けられている場合のみのアクティブ化を利用している。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら状況によっては、キーとなる文脈上の情報が、複数の返事のスレッド中の先行する電子メールなどの他の文書に含まれていることがある。
【課題を解決するための手段】
【０００４】
[002]本概要は、以下で、発明を実施するための形態でさらに説明される概念の選択を
簡易形態で紹介するために提供されたものである。本概要には、特許請求される主題の重要な特徴または本質的な特徴を識別することは意図されていない。また、本概要には、特許請求される主題の範囲を限定するために使用されることも意図されていない。
【０００５】
[003]拡張機能アクティブ化が提供される。複数の関連する文書に関連する新しい文書
を受け取ると、拡張機能トリガー条件を評価することができる。拡張機能トリガーが満たされたことの決定に応答して、拡張機能トリガーに関連するユーザー・インターフェイス・エレメントを表示することができる。
【０００６】
[004]上記概略説明および以下の詳細な説明は、いずれも例を提供したものであり、説
明的なものにすぎない。したがって上記概略説明および以下の詳細な説明は、本発明を制限するものと見なしてはならない。さらに、本明細書において示されている特徴または変形形態以外の特徴または変形形態を提供することも可能である。例えば実施形態は、詳細な説明の中で説明されている様々な特徴の組合せおよび副組合せを対象とすることができる。
【０００７】
[005]本開示に組み込まれ、かつ、本開示の一部を構成している添付の図面は、本発明
の様々な実施形態を示したものである。
【図面の簡単な説明】
【０００８】
【図１】[006]動作環境のブロック図である。
【図２Ａ】[007]動的拡張機能ビューを提供するためのユーザー・インターフェイスのブロック図である。
【図２Ｂ】動的拡張機能ビューを提供するためのユーザー・インターフェイスのブロック図である。
【図３】[008]拡張機能アクティブ化を提供するための方法の流れ図である。
【図４】[009]コンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【０００９】
[010]以下の詳細な説明では、添付の図面を参照している。可能である場合、同じまた
は同様の要素を参照するために、図面および以下の説明で同じ参照番号が使用されている。本発明の実施形態が説明されているが、修正、適合および他の実施態様が可能である。例えば、図面に示されている要素に、置換、追加または修正を加えることができ、また、本明細書において説明されている方法は、開示されている方法に対するステージの置換、並び換え、または追加によって修正することができる。したがって以下の詳細な説明は、本発明を制限するものではない。
【００１０】
[011]電子メール会話は、いくつかの電子メールからなっていてもよい。会話における
個々の返事は、メッセージの本体の一部および／またはすべてをその返事に引用することができる。文脈上の拡張機能がメッセージの本体全体の中で見出された情報に対してアクティブ化すると、その文脈上の拡張機能は、そのメッセージに対する後続する返事に対しても同じくアクティブ化することができる。これは、アドレスのマッピングなどでは、しばしば望ましい挙動であるが、既に過ぎ去った時間に対する待ち合わせ時間の提案などの他の場合は、この挙動は望ましくない。後者の場合、情報は、引用された本体（例えば先行するメッセージからのテキスト）からではなく、返事メッセージ（例えば返事としてタイプされたテキスト）からのみ引き出されることが場合によっては好ましい。拡張機能アクティブ化規則は、拡張機能開発者が、関連する情報を探す場所、つまり、全文書本体（例えば電子メールの返事テキストおよび引用された本体）、および／または一連の関連する文書（例えばウェブ・ページおよびそのリンクされたページ）、および／または単なる文書の新たに追加された内容のいずれの中か、の特定を許容することができる。さらに、文書のリスト（例えば電子メールアプリケーション中のメッセージ・スレッドのリスト）が表示されると、特定の文書、その一部および／または関連する一連の文書の全体におけるトリガーリング条件に従って拡張機能をアクティブ化することができる。
【００１１】
[012]拡張機能は、サンドボックス化（ｓａｎｄｂｏｘｅｄ）ユーザー・インターフェ
イス・ウィンドウの中で実行することができるＨＴＭＬおよび／またはＪａｖａＳｃｒｉｐｔ（登録商標）モジュールを含むことができる。このような拡張機能は、現在観察されている項目（電子メール、コンタクト、タスク、等々）に付加することができ、および／またはユーザー・インターフェイス環境中に個別に浮遊させることができる。拡張機能は、ユーザーのデータ（すなわちメール項目、コンタクト、カレンダー項目、タスク、等々）に対する可変レベルのデータアクセスを有することができ、また、外部ウェブサービスと接続してそのデータと文脈的に統合することができる。例えばマップ拡張機能は、現在観察されているメッセージ中で検出されたアドレスのマップを表示することができ、および／または顧客関係管理（ＣＲＭ）拡張機能は、現在観察されているメッセージの送信側に関するＣＲＭデータを表示することができる。
【００１２】
[013]アプリケーション拡張機能を作成する場合、開発者は、拡張機能をアクティブ化
するべきかどうかを決定するために、関連する情報を探す場所を特定することができる。このような構成情報は、拡張機能に関連するマニフェストファイルに記憶することができる。例えば電子メール文書の場合、メッセージの主題、返事本体および／または本体全体を構成することができる。
【００１３】
[014]マニフェストファイルは、拡張機能、同様のその名称およびバージョン、構成デ
ータ、および／または拡張機能をエンドユーザーに示すべきであるかどうかを決定するためにソフトウェアアプリケーションを適用することができる規則を記述した情報を含むことができる。マニフェストの情報は、情報技術エンジニアなどによる修正、拡張機能の作成者による更新、ソフトウェアアプリケーション自体に対する更新、拡張機能のユーザーによる明確な変更、および／または、拡張機能とのユーザーの対話に関連する発見的に学習された挙動を実施することができる。例えば、電子メールスレッド中の先行するメッセ
ージの中に置かれているデータ上で動作するために、ユーザーが手動で矛盾なく拡張機能をアクティブ化し、一方、拡張機能は、新たに追加されたデータ（例えば返事メッセージ）に基づいてのみアクティブ化しなければならないことを開発者の規則が規定している場合、拡張機能を手動でアクティブ化しなければならないユーザー負担を軽減するために、アクティブ化規則を修正して、スレッド中のすべてのデータに基づいて拡張機能をアクティブ化することができる。
【００１４】
[015]図１は、ユーザーワークステーション１１０を備えた、動的拡張機能ビューを提
供するための動作環境１００のブロック図である。ユーザーワークステーション１１０は、文書処理アプリケーション１１５を備えることができ、また、ネットワーク１２５を介してサーバー１２０と対話するように動作することができる。サーバー１２０は、複数のアプリケーションおよび／またはサービスを実行するように動作することができる。文書処理アプリケーション１１５は、例えばワード処理、スプレッドシート、プレゼンテーション、ウェブ・ブラウザー、電子メールおよび／または他のアプリケーションを含むことができる。ユーザーワークステーション１１０は、アプリケーションデータおよび／またはユーザー・インターフェイスをモニターおよび／またはタッチスクリーンなどの表示デバイス１４０に出力するように動作することができる。ユーザーワークステーション１１０は、例えば、コンピューター、ラップトップ、セルラーおよび／またはＩＰフォーン、タブレット、ゲームコンソールおよび／または他のデバイスなどの電子通信デバイスを備えることができる。文書処理アプリケーション１１５は、サーバー１２０と通信し、拡張機能リポジトリー１５０の中に構成された複数の拡張機能へのアクセスを受け取るように動作することができる。拡張機能管理アプリケーション１３０は、ユーザー毎、ユーザーグループ毎および／または組織単位で、拡張機能設定およびアクセス許可を管理するための集中型インターフェイスを情報技術（ＩＴ）アドミニストレーターに提供するように動作することができる。
【００１５】
[016]図２Ａは、動的拡張機能ビューを提供するためのユーザー・インターフェイス２
００のブロック図である。ユーザー・インターフェイス２００は、複数のメッセージ２１０（Ａ）〜（Ｇ）を含んだ会話ペイン２０５を含むことができる。ユーザー・インターフェイス２００は、メッセージ２１０（Ｂ）などの選択されたメッセージを強調し、かつ、選択されたメッセージに関連する追加データをメッセージペイン２１５に表示することができる。例えばメッセージペイン２１５は、メッセージヘッダー２２０およびメッセージテキスト２２５などのユーザー・インターフェイス・エレメントを表示することができる。メッセージペイン２１５は、メッセージに関連する拡張機能が利用可能であることを示すことができるＵＩエレメント２３０をさらに含むことができる。複数のメッセージ２１０（Ａ）〜（Ｇ）の各々に対して、メッセージ２１０（Ｂ）に関連するエントリーポイントＵＩエレメント２４０などのエントリーポイントを表示し、メッセージが拡張機能をアクティブ化したことをエンドユーザーに知らせることができる。拡張機能がメッセージに対してアクティブ化されない場合、エントリーポイントが示されないことがある。
【００１６】
[017]ＵＩエレメント２３０は、利用可能な拡張機能の名称をリストにすることができ
、また、利用することができる追加拡張機能の数を示すことも可能である。例えば拡張機能を１つしか利用することができない場合、ＵＩエレメント２３０は、「＜拡張機能名称＞を示す」を表示することができる。複数の拡張機能を利用することができる場合、ＵＩエレメント２３０は、「＜拡張機能名称＞を示す＋あとＮ個の拡張機能」を表示することができる。ＵＩエレメント２３０がユーザーによってクリックされると、下側の図２Ｂに示されているように拡張機能ペインを拡張し、エントリーポイント内に明確に名称が挙げられている拡張機能の内容を表示することができる。
【００１７】
[018]図２Ｂは、拡張された拡張機能ペイン２５０を示すユーザー・インターフェイス
２００のブロック図である。ＵＩエレメント２３０は、「拡張機能を隠す」に変えることができ、これが選択されると、拡張機能ペイン２５０を消すことができる。複数の拡張機能がアクティブ化および／または表示されると、拡張機能ペイン２５０は、エンドユーザーによる拡張機能間の切換えを可能にする表形式のインターフェイスを表示することができる。本発明の実施形態に矛盾することなく、「．．．を示す」エントリーポイントの代わりに表形式のインターフェイスを表示することができ、追加拡張機能を出現させる、単一の拡張機能＋「すべてを示す」コマンドを表示することができ、および／またはインラインでそれらをメッセージペイン２１５に示す代わりに、別のＵＩエレメント（例えば他のウィンドウ）の中に拡張機能を表示することができる。
【００１８】
[019]図３は、アプリケーション拡張機能アクティブ化を提供するための、本発明の一
実施形態と無矛盾の方法３００に含まれている一般的なステージを示す流れ図である。方法３００は、図３に関連して以下でより詳細に説明されるように、コンピューティングデバイス４００を使用して実施することができる。以下、方法３００のステージを実施するための方法について、より詳細に説明する。方法３００は、開始ブロック３０５で開始し、コンピューティングデバイス４００が複数の関連する文書のうちの少なくとも１つの文書を表示することができるステージ３１０へ進行することができる。例えば複数の関連する文書は、電子メール・メッセージ・スレッド、ハイパーリンク・ウェブ・ページのツリー、それぞれ共通プロジェクトに関連する一組の文書、複数のワード処理文書、複数のスプレッドシート文書、複数のプレゼンテーション文書、および／またはタイプが異なる複数の文書を含むことができる。
【００１９】
[020]方法３００は、次に、コンピューティングデバイス４００が、複数のアプリケー
ション拡張機能のうちの少なくとも１つの第１のアプリケーション拡張機能に関連する第１の拡張機能トリガー条件が満たされているかどうかを決定することができるステージ３１５へ進行することができる。例えば拡張機能トリガー条件は、表示された少なくとも１つの文書の表示された内容エレメント（例えば文書中のテキスト）、複数の関連する文書のうちの少なくとも１つの第２の文書に対する参照（例えばハイパーリンク）、表示された少なくとも１つの文書に関連するメタデータエレメント、および表示された少なくとも１つの文書のフォーマット（例えばフォントおよび／またはスタイル情報、シグネチャーおよび／またはアドレスブロックの包含）に関連していてもよい。
【００２０】
[021]拡張機能トリガーが満たされている場合、方法３００は、コンピューティングデ
バイス４００が、第１の拡張機能トリガーに関連する少なくとも１つの第１のアプリケーション拡張機能に関連する第１のユーザー・インターフェイス・エレメントを、表示されている少なくとも１つの文書に近接して表示することができるステージ３２０へ進行することができる。例えば拡張機能トリガーは、文書の内容の中のアドレスを検出し、かつ、アドレス情報の下および／またはアドレス情報の隣の文書内にマップ拡張機能を表示することができる。また、拡張機能は、新しいウィンドウなどの別のユーザー・インターフェイス・エレメントに表示することも可能である。ユーザー・インターフェイス・エレメントは、拡張機能を利用することができるインディケーターを含むことも可能である。
【００２１】
[022]方法３００は、次に、コンピューティングデバイス４００が、複数の関連する文
書に関連する新しい文書を受け取ることができるステージ３２５へ進行することができる。例えばメッセージ・スレッドに対する返事である新しい電子メールを受け取ることができる。
【００２２】
[023]方法３００は、次に、コンピューティングデバイス４００が、第１のアプリケー
ション拡張機能に関連する第１のユーザー・インターフェイス・エレメントを除去することができるステージ３３０へ進行することができる。例えば現在表示されているアプリケ
ーション拡張機能を隠すことができる。インディケーターエレメント（例えば先行する文書に関連する拡張機能を依然として利用することができることを示すアイコン）を、先行する文書の上および／または先行する文書に近接して表示することができる。
【００２３】
[024]方法３００は、次に、コンピューティングデバイス４００が、表示されている少
なくとも１つの文書を新しい文書の表示に置き換えることができるステージ３３５へ進行することができる。例えば新たに受け取った電子メール・メッセージを文書ウィンドウに表示することができる。
【００２４】
[025]方法３００は、次に、コンピューティングデバイス４００が、新しい文書が複数
のアプリケーション拡張機能の少なくとも１つの第２のアプリケーション拡張機能に関連する少なくとも１つの第２の拡張機能トリガー条件を満たしているかどうかを決定することができるステージ３４０へ進行することができる。例えば、ステージ３１５に関連して上で説明したように、先行する文書によって満たされたトリガーリング条件を含むトリガーリング条件に対して新しい文書を走査することができる。
【００２５】
[026]少なくとも１つの第２の拡張機能トリガーが満たされていることの決定に応答し
て、方法３００は、次に、コンピューティングデバイス４００が、第２の拡張機能トリガーに関連する少なくとも１つの第２のアプリケーション拡張機能に関連する第２のユーザー・インターフェイス・エレメントを、表示されている新しい文書に近接して表示することができるステージ３４５へ進行することができる。例えば、提案されている待ち合わせ時間トリガーが新しい文書の内容によって満たされていることの決定に応答して、待ち合わせスケジューラー拡張機能を表示することができる。方法３００は、次にステージ３５０で終了することができる。
【００２６】
[027]本発明と無矛盾の一実施形態は、アプリケーション拡張機能アクティブ化を提供
するためのシステムを備えることができる。このシステムは、記憶装置および該記憶装置に結合された処理装置を備えることができる。処理装置は、複数の関連する文書に関連する新しい文書を受け取り、拡張機能トリガー条件が満たされているかどうかを決定し、かつ、拡張機能トリガーが満たされていることの決定に応答して、拡張機能トリガーに関連するユーザー・インターフェイス・エレメントを表示するように動作することができる。拡張機能トリガーは、新しい文書および／または複数の関連する文書のうちの任意の他の文書によって満たすことができる。処理装置は、複数の関連する文書のうちの少なくとも１つに関連するユーザー・インターフェイス・フレームの内側にユーザー・インターフェイス・エレメントを表示するように動作することができる。処理装置は、複数の拡張機能トリガー条件が満たされているかどうかを決定するようにさらに動作することができ、これらの拡張機能トリガー条件の各々は、複数のアプリケーション拡張機能のうちの１つに関連しており、その場合、複数のアプリケーション拡張機能のうちの少なくとも１つを識別して表示し、かつ、複数のアプリケーション拡張機能のうちの少なくとも１つに関連するユーザー・インターフェイス・エレメントを表示する。
【００２７】
[028]本発明と無矛盾の他の実施形態は、アプリケーション拡張機能アクティブ化を提
供するためのシステムを備えることができる。このシステムは、記憶装置および該記憶装置に結合された処理装置を備えることができる。処理装置は、複数の関連する文書のうちの少なくとも１つを表示し、表示された少なくとも１つの文書が拡張機能トリガー条件を満たしているかどうかを決定し、かつ、表示された少なくとも１つの文書が拡張機能トリガー条件を満たしていることの決定に応答して、アプリケーション拡張機能に関連するユーザー・インターフェイス・エレメントを、複数の関連する文書のうちの表示されている少なくとも１つに近接して表示するように動作することができる。拡張機能トリガー条件は、アプリケーション拡張機能に関連する拡張機能マニフェストの中で定義することがで
き、また、例えば表示された少なくとも１つの文書の表示された内容エレメント、複数の関連する文書のうちの少なくとも１つの第２の文書に対する参照、表示された少なくとも１つの文書に関連するメタデータエレメント、および表示された少なくとも１つの文書のフォーマットに関連していてもよい。処理装置は、複数の関連する文書のうちの表示された少なくとも１つがもはや表示されていないかどうかを決定するようにさらに動作することができ、その場合、アプリケーション拡張機能に関連するマニフェストが表示規則を含んでいるかどうかを決定する。アプリケーション拡張機能に関連するマニフェストが表示規則を含んでいないことの決定に応答して、処理装置は、アプリケーション拡張機能に関連する表示されたユーザー・インターフェイス・エレメントを除去するようにさらに動作することができる。あるいは処理装置は、表示規則に従って、アプリケーション拡張機能に関連する表示されたユーザー・インターフェイス・エレメントの表示を修正するようにさらに動作することができる。処理装置は、表示された少なくとも１つの文書が、それぞれ優先順位を含み、かつ、複数のアプリケーション拡張機能のうちの少なくとも１つに関連している複数の拡張機能トリガー条件を満たしているかどうかを決定するようにさらに動作することができ、その場合、満たされた複数の拡張機能トリガー条件のうちの最も高い優先順位を含む拡張機能トリガー条件に関連する複数のアプリケーション拡張機能のうちの１つのアプリケーション拡張機能を表示する。
【００２８】
[029]本発明と無矛盾のさらに他の実施形態は、アプリケーション拡張機能アクティブ
化を提供するためのシステムを備えることができる。このシステムは、記憶装置および該記憶装置に結合された処理装置を備えることができる。処理装置は、複数の関連する文書のうちの少なくとも１つの文書を表示し、複数のアプリケーション拡張機能のうちの少なくとも１つの第１のアプリケーション拡張機能に関連する第１の拡張機能トリガー条件が満たされているかどうかを決定し、かつ、第１の拡張機能トリガーが満たされていることの決定に応答して、第１の拡張機能トリガーに関連する少なくとも１つの第１のアプリケーション拡張機能に関連する第１のユーザー・インターフェイス・エレメントを、表示されている少なくとも１つの文書に近接して表示するように動作することができる。処理装置は、複数の関連する文書に関連する新しい文書を受け取り、第１のアプリケーション拡張機能に関連する第１のユーザー・インターフェイス・エレメントを除去し、表示されている少なくとも１つの文書を新しい文書の表示に置き換え、新しい文書が複数のアプリケーション拡張機能のうちの少なくとも１つの第２のアプリケーション拡張機能に関連する少なくとも１つの第２の拡張機能トリガー条件を満たしているかどうかを決定し、かつ、少なくとも１つの第２の拡張機能トリガーが満たされていることの決定に応答して、第２の拡張機能トリガーに関連する少なくとも１つの第２のアプリケーション拡張機能に関連する第２のユーザー・インターフェイス・エレメントを、表示されている新しい文書に近接して表示するようにさらに動作することができる。
【００２９】
[030]本明細書において説明されている実施形態および機能は、有線コンピューティン
グシステムおよび無線コンピューティングシステム、移動コンピューティングシステム（例えば移動電話、タブレットまたはスレート型コンピューター、ラップトップコンピューター、等々）を始めとする多くのコンピューティングシステムを介して動作することができる。さらに、本明細書において説明されている実施形態および機能は、分散システム上で動作することができ、アプリケーション機能、メモリー、データ記憶装置、ならびに検索および様々な処理機能は、インターネットまたはイントラネットなどの分散コンピューティングネットワークを介して、互いに遠隔で動作させることができる。様々なタイプのユーザー・インターフェイスおよび情報は、オンボードコンピューティングデバイスディスプレイを介して、あるいは１つまたは複数のコンピューティングデバイスに関連する遠隔表示ユニットを介して表示することができる。例えば様々なタイプのユーザー・インターフェイスおよび情報は、様々なタイプのユーザー・インターフェイスおよび情報が映し出される壁の表面に表示することができ、かつ、対話することができる。本発明の実施形
態を実践することができる多くのコンピューティングシステムとの対話は、キーストローク入力、タッチスクリーン入力、音声または他の音響入力、関連するコンピューティングデバイスがユーザーのジェスチャーを捕獲し、かつ、解釈してコンピューティングデバイスの機能を制御するための検出（例えばカメラ）機能を備えたジェスチャー入力、等々を含む。図４および関連する説明は、本発明の実施形態を実践することができる様々な動作環境の説明を提供したものである。しかしながら図４に関連して示され、かつ、説明されているデバイスおよびシステムは、例および例証を目的としたものであり、本明細書において説明されている本発明の実施形態を実践するために利用することができる極めて多数のコンピューティングデバイス構成を制限するものではない。
【００３０】
[031]図４を参照すると、本発明の実施形態と無矛盾のシステムは、コンピューティン
グデバイス４００などのコンピューティングデバイスを含むことができる。基本構成では、コンピューティングデバイス４００は、少なくとも１つの処理装置４０２およびシステムメモリー４０４を含むことができる。コンピューティングデバイスの構成およびタイプに応じて、システムメモリー４０４は、それらに限定されないが、揮発性（例えばランダム・アクセス・メモリー（ＲＡＭ））、不揮発性（例えばリード・オンリー・メモリー（ＲＯＭ））、フラッシュメモリーまたは任意の組合せを備えることができる。システムメモリー４０４は、オペレーティングシステム４０５、１つまたは複数のプログラミングモジュール４０６を含むことができ、また、文書処理アプリケーション１１５を含むことができる。オペレーティングシステム４０５は、例えばコンピューティングデバイス４００の動作を制御するのに適したものであってもよい。さらに、本発明の実施形態は、グラフィックスライブラリー、他のオペレーティングシステムまたは任意の他のアプリケーションプログラムと共に実践することができ、何らかの特定の用途またはシステムに限定されない。この基本構成は、破線４０８内の構成要素によって図４に示されている。
【００３１】
[032]コンピューティングデバイス４００は、追加特徴または機能を有することができ
る。例えばコンピューティングデバイス４００は、例えば磁気ディスク、光ディスクまたはテープなどの追加データ記憶装置（取外し可能および／または非取外し可能）を含むことも可能である。このような追加記憶装置は、取外し可能記憶装置４０９および非取外し可能記憶装置４１０によって図４に示されている。また、コンピューティングデバイス４００は、デバイス４００による、分散計算環境におけるネットワーク、例えばイントラネットまたはインターネットを介した他のコンピューティングデバイス４１８との通信を可能にすることができる通信接続４１６を含むことも可能である。通信接続４１６は通信媒体の一例である。
【００３２】
[033]本明細書において使用されているコンピューター可読媒体という用語は、コンピ
ューター記憶媒体を含むことができる。コンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性媒体、取外し可能および非取外し可能媒体を含むことができる。システムメモリー４０４、取外し可能記憶装置４０９および非取外し可能記憶装置４１０は、すべてコンピューター記憶媒体の例（つまりメモリー記憶装置）である。コンピューター記憶媒体は、それらに限定されないが、ＲＡＭ、ＲＯＭ、電気的消去可能リード・オンリー・メモリー（ＥＥＰＲＯＭ）、フラッシュメモリーまたは他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル汎用ディスク（ＤＶＤ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または情報を記憶するために使用することができ、かつ、コンピューティングデバイス４００によるアクセスが可能な任意の他の媒体を含むことができる。任意のこのようなコンピューター記憶媒体は、デバイス４００の一部であってもよい。また、コンピューティングデバイス４００は、キーボード、マウス、ペン、音声入力デバイス、接触入力デバイス、捕獲デバイス、等々などの１つまたは複数の入力デバイス４１２を有することも
可能である。捕獲デバイスは、カメラおよび／またはマイクロホンなどを使用して、ユーザーを記録し、かつ、ユーザーによってなされる会話、運動および／またはジェスチャーを捕獲するように動作することができる。捕獲デバイスは、ユーザーの音声および／または運動を検出することができる任意の音声および／または運動検出デバイスを備えることができる。例えば捕獲デバイスは、複数のカメラおよび複数のマイクロホンを備えたＭｉｃｒｏｓｏｆｔ（登録商標）Ｋｉｎｅｃｔ（登録商標）運動捕獲デバイスを備えることができる。ディスプレイ、スピーカー、プリンター、等々などの１つまたは複数の出力デバイス４１４を含むことも可能である。上記デバイスは例であり、他のデバイスを使用することも可能である。
【００３３】
[034]また、本明細書において使用されているコンピューター可読媒体という用語は、
通信媒体を含むことも可能である。通信媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または搬送波あるいは他の輸送機構などの変調データ信号中の他のデータによって具体化することができ、また、任意の情報引渡し媒体を含む。「変調データ信号」という用語は、１つまたは複数の特性セットを有する信号、または情報を信号に符号化する方法で変化した信号を記述することができる。非制限の一例として、通信媒体は、配線式ネットワークまたは直接配線接続などの配線式媒体、および音響、無線周波数（ＲＦ）、赤外線などの無線媒体および他の無線媒体を含むことができる。
【００３４】
[035]上で言及したように、システムメモリー４０４には、オペレーティングシステム
４０５を始めとする多くのプログラムモジュールおよびデータファイルを記憶することができる。処理装置４０２上で実行している間、プログラミングモジュール４０６は、上で説明したプロセスおよび／または方法を実施することができる。上記プロセスは一例であり、処理装置４０２は他のプロセスを実施することも可能である。本発明の実施形態に従って使用することができる他のプログラミングモジュールは、電子メールおよびコンタクトアプリケーション、ワード処理アプリケーション、スプレッドシートアプリケーション、データベースアプリケーション、スライド・プレゼンテーション・アプリケーション、作図またはコンピューター支援アプリケーションプログラム、等々を含むことができる。
【００３５】
[036]一般に、本発明の実施形態と無矛盾のプログラムモジュールは、ルーチン、プロ
グラム、コンポーネント、データ構造、および特定のタスクを実施することができ、あるいは特定の抽象データタイプを実施することができる他のタイプの構造を含むことができる。さらに、本発明の実施形態は、ハンドヘルドデバイス、多重プロセッサーシステム、マイクロプロセッサーをベースとする消費者電子工学またはプログラム可能消費者電子工学、ミニコンピューター、本体コンピューター、等々を含んだ他のコンピューターシステム構成を使用して実践することも可能である。また、本発明の実施形態は、複数のタスクが通信ネットワークを介してリンクされる遠隔処理デバイスによって実行される分散計算環境で実践することも可能である。分散計算環境では、プログラムモジュールは、局所メモリー記憶装置および遠隔メモリー記憶装置の両方に配置することができる。
【００３６】
[037]さらに、本発明の実施形態は、離散電子要素、論理ゲートを含んだパッケージま
たは集積電子チップ、マイクロプロセッサーを利用している回路を備えた電気回路の中で実践することができ、あるいは電子要素またはマイクロプロセッサーを含んだ単一チップ上で実践することも可能である。また、本発明の実施形態は、それらに限定されないが、機械技術、光技術、流体技術および量子技術を始めとする、例えばＡＮＤ、ＯＲおよびＮＯＴなどの論理演算を実施することができる他の技術を使用して実践することも可能である。さらに、本発明の実施形態は、汎用コンピューター内で、または任意の他の回路あるいはシステムの中で実践することも可能である。
【００３７】
[038]本発明の実施形態は、例えば、コンピュータープロセス（方法）、コンピューテ
ィングシステムとして実施することができ、あるいはコンピュータープログラム製品またはコンピューター可読媒体などの製造物品として実施することができる。コンピュータープログラム製品は、コンピューターシステムによる読取りが可能なコンピューター記憶媒体であってもよく、コンピュータープロセスを実行するための命令のコンピュータープログラムを符号化することができる。また、コンピュータープログラム製品は、コンピューティングシステムによる読取りが可能な搬送波上の伝搬信号であってもよく、コンピュータープロセスを実行するための命令のコンピュータープログラムを符号化することができる。したがって本発明は、ハードウェアおよび／またはソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコード、等々を含む）の中で具体化することができる。言い換えると、本発明の実施形態は、命令実行システムが使用するための、あるいは命令実行システムと共に使用するための媒体中に具体化されたコンピューター使用可能プログラムコードまたはコンピューター可読プログラムコードを有するコンピューター使用可能記憶媒体またはコンピューター可読記憶媒体上のコンピュータープログラム製品の形態を取ることができる。コンピューター使用可能媒体またはコンピューター可読媒体は、命令実行システム、装置またはデバイスが使用するための、あるいは命令実行システム、装置またはデバイスと共に使用するためのプログラムを含み、記憶し、通信し、伝搬し、あるいは輸送することができる任意の媒体であってもよい。
【００３８】
[039]コンピューター使用可能媒体またはコンピューター可読媒体は、例えば、それら
に限定されないが、電子、磁気、光、電磁、赤外線または半導体のシステム、装置、デバイスまたは伝搬媒体であってもよい。コンピューター可読媒体のより特定の例（非網羅的リスト）では、コンピューター可読媒体は、１つまたは複数の配線を有する電気接続、携帯型コンピューターディスケット、ランダム・アクセス・メモリー（ＲＡＭ）、リード・オンリー・メモリー（ＲＯＭ）、消去可能プログラマブル・リード・オンリー・メモリー（ＥＰＲＯＭまたはフラッシュメモリー）、光ファイバおよび携帯型コンパクト・ディスク・リード・オンリー・メモリー（ＣＤ−ＲＯＭ）を含むことができる。プログラムは、例えば紙または他の媒体の光走査を介して電子的に捕獲し、次にコンパイルし、翻訳し、さもなければ必要に応じて適切な方法で処理した後、コンピューターメモリーに記憶することができるため、コンピューター使用可能媒体またはコンピューター可読媒体は、さらにはプログラムが印刷される紙または他の適切な媒体であってもよいことに留意されたい。
【００３９】
[040]本発明の実施形態は、システム・オン・ア・チップ（ＳＯＣ）を介して実践する
ことができ、上で示した個々の構成要素および／または多くの構成要素は、単一の集積回路の上に統合することができる。このようなＳＯＣデバイスは、１つまたは複数の処理ユニット、グラフィックスユニット、通信ユニット、システム仮想化ユニットおよび様々な応用機能を含むことができ、これらはすべて単一の集積回路としてチップ基板の上に統合（すなわち「バーン（ｂｕｒｎｅｄ）」）することができる。ＳＯＣを介して動作させる場合、動作環境１００の任意の構成要素の訓練および／または動作環境１００の任意の構成要素との対話に関して本明細書において説明されている機能は、コンピューティングデバイス／システムの他の構成要素と共に単一の集積回路（チップ）上に統合された特定用途向け論理を介して動作することができる。
【００４０】
[041]例えば本発明の実施形態は、上では、本発明の実施形態による方法、システムお
よびコンピュータープログラム製品のブロック図および／または操作図解を参照して説明されている。ブロックの中に示されている機能／作用は、すべての流れ図に示されている順序以外の順序で実施することができる。例えば連続して示されている２つのブロックは、実際、実質的に同時に実行することができ、あるいは含まれている機能／作用に応じて、場合によってはこれらのブロックを逆の順序で実行することも可能である。
【００４１】
[042]以上、本発明の特定の実施形態について説明したが、他の実施形態が存在してい
てもよい。さらに、本発明の実施形態は、メモリーおよび他の記憶媒体に記憶されているデータに関連するものとして説明されているが、データは、ハードディスク、フロッピー（登録商標）ディスクまたはＣＤ−ＲＯＭのような二次記憶装置、インターネットからの搬送波、または他の形態のＲＡＭあるいはＲＯＭなどの他のタイプのコンピューター可読媒体上に記憶し、あるいはこれらから読み出すことも可能である。さらに、開示されている方法のステージは、本発明から逸脱することなく、ステージの並び換えおよび／またはステージの挿入あるいは削除を始めとする任意の方法で修正することができる。
【００４２】
[043]本明細書に含まれているコードの著作権を始めとするすべての権利は、本出願人
に付与され、また、本出願人の資産である。本出願人は、本明細書に含まれているコードのすべての権利を保持し、かつ、保留し、また、付与された特許の複製に関連してのみ材料を複製する許可を付与し、その他の目的のためには付与しない。
【００４３】
[044]以上、本発明の特定の実施形態について説明したが、他の実施形態が存在してい
てもよい。本明細書は例を含んでいるが、本発明の範囲は、以下の特許請求の範囲によって示されている。さらに、本明細書は、構造的特徴および／または方法論的作用に特化された言語で記述されているが、特許請求の範囲は、上で説明した特徴または作用に限定されない。そうではなく、上で説明した特定の特徴および作用は、本発明の実施形態のための例として開示されたものである。
【図１】
0006479079.tif 000002
【図２Ａ】
0006479079.tif 000003
【図２Ｂ】
0006479079.tif 000004
【図３】
0006479079.tif 000005
【図４】
0006479079.tif 000006