(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスに、
前記コンピューティングデバイス上で現在実行中のアプリケーションに関するコンテキストの情報を決定する手順であって、前記アプリケーションの現在のステータスを示すタグを決定する手順を含む手順と、
観察回路により解析されるべく、前記タグを含む前記決定されたコンテキストの情報を、第２のコンピューティングデバイス上で運用される前記観察回路に提供する手順と、
前記決定されたコンテキストの情報に関連するコンテキストが終了したことを示す指標を、前記観察回路に提供する手順と、
を実行させるためのプログラムであって、
前記タグは、前記アプリケーションによって利用されているデータに関するデータタイプの指標を含み、
前記観察回路は、
前記タグを受信すると、前記決定されたコンテキストの情報に関連するコンテキストの指標をデータ構造に格納し、
前記コンテキストが終了したことを示す前記指標を受信すると、前記データ構造を変更する、
プログラム。
【請求項２】
前記アプリケーションに関する命令をさらに含む、
請求項１に記載のプログラム。
【請求項３】
前記コンピューティングデバイス及び前記第２のコンピューティングデバイスは、同一のコンピューティングデバイスである、
請求項１又は請求項２に記載のプログラム。
【請求項４】
前記コンピューティングデバイスに、
前記観察回路を操作して、前記コンピューティングデバイスの１又は複数のアクション又はリソース利用をモニタリングする手順と、
前記観察回路をさらに操作して、
前記タグを含む前記決定されたコンテキストの情報を受信し、
前記モニタリングされた１又は複数のアクション又はリソース利用のうちの１又は複数に、前記アプリケーションに関する前記決定されたコンテキストの情報に含まれる前記タグをタグ付けし、
前記タグを含む前記決定されたコンテキストの情報を、解析回路に提供する手順と、
をさらに実行させるための、
請求項３に記載のプログラム。
【請求項５】
前記コンピューティングデバイスに、
前記解析回路を操作して、少なくとも一部において、前記決定されたコンテキストの情報に含まれる前記タグに基づいて、受信されたアクションについて、前記コンピューティングデバイスの１又は複数のアクション又はリソース利用の候補に関する１又は複数の確率を決定する手順、
をさらに実行させるための、
請求項４に記載のプログラム。
【請求項６】
前記コンピューティングデバイスに、
前記決定された前記コンピューティングデバイスの１又は複数のアクション又はリソース利用の候補に関する１又は複数の確率に基づいて、前記コンピューティングデバイスのアクション又はリソース利用の候補を決定する手順、
をさらに実行させるための
請求項５に記載のプログラム。
【請求項７】
前記コンピューティングデバイスに、
前記決定されたアクション又はリソース利用の候補の実行を支援するためのアクション又はリソース利用を選択する手順、
をさらに実行させるための、
請求項６に記載のプログラム。
【請求項８】
前記データ構造は、スタックデータ構造であり、
前記指標を前記データ構造に格納することは、前記タグを前記スタックデータ構造に詰め込むことを含む、
請求項１から請求項７までの何れか一項に記載のプログラム。
【請求項９】
前記データ構造を変更することは、前記タグを前記スタックデータ構造から取り外すことを含む、
請求項８に記載のプログラム。
【請求項１０】
装置であって、
アプリケーションの実行中に、前記アプリケーションのコンテキストの情報を決定する回路であって、前記アプリケーションのコンテキストの情報を決定することは、前記アプリケーションの現在のステータスを示すタグを決定することを含む回路と、
観察回路により解析されるべく、前記タグを含む前記決定されたコンテキストの情報を、前記観察回路に提供する回路と、
前記決定されたコンテキストの情報に関連するコンテキストが終了したことを示す指標を、前記観察回路に提供する回路と、
を備え、
前記タグは、前記アプリケーションによって利用されているデータに関するデータタイプの指標を含み、
前記観察回路は、
前記タグを受信すると、前記決定されたコンテキストの情報に関連するコンテキストの指標をデータ構造に格納し、
前記コンテキストが終了したことを示す前記指標を受信すると、前記データ構造を変更する、
前記装置の上で動作しているアプリケーションのアクティビティを予測する装置。
【請求項１１】
前記アプリケーションを実行する回路をさらに備える、
請求項１０に記載の装置。
【請求項１２】
コンピューティングデバイスの１又は複数のアクション又はリソース利用をモニタリングし、前記タグを含む前記決定されたコンテキストの情報を受信し、前記モニタリングされた１又は複数のアクション又はリソース利用のうちの１又は複数に、前記アプリケーションに関する前記決定されたコンテキストの情報に含まれる前記タグをタグ付けし、前記タグを含む前記決定されたコンテキストの情報を解析回路に提供する、前記観察回路をさらに備える、
請求項１１に記載の装置。
【請求項１３】
少なくとも一部において、前記決定されたコンテキストの情報に含まれる前記タグに基づいて、受信されたアクションについて、前記コンピューティングデバイスの１又は複数のアクション又はリソース利用の候補に関する１又は複数の確率を決定する、前記解析回路をさらに備える、
請求項１２に記載の装置。
【請求項１４】
前記決定された前記コンピューティングデバイスの１又は複数のアクション又はリソース利用の候補に関する１又は複数の確率に基づいて、前記コンピューティングデバイスのアクション又はリソース利用の候補を決定する回路をさらに備える、
請求項１３に記載の装置。
【請求項１５】
前記決定されたアクション又はリソース利用の候補の実行を支援するためのアクション又はリソース利用を選択する回路をさらに備える、
請求項１４に記載の装置。
【請求項１６】
前記データ構造は、スタックデータ構造であり、
前記指標を前記データ構造に格納することは、前記タグを前記スタックデータ構造に詰め込むことを含む、
請求項１０から請求項１５までの何れか一項に記載の装置。
【請求項１７】
前記データ構造を変更することは、前記タグを前記スタックデータ構造から取り外すことを含む、
請求項１６に記載の装置。
【請求項１８】
第１のコンピューティングデバイスのアクション候補を予測する目的でコンピュータにより実施される方法であって、
第１のコンピューティングデバイスが、前記第１のコンピューティングデバイス上で現在実行中のアプリケーションに関するコンテキストの情報を決定する段階であって、前記アプリケーションの現在のステータスを示すタグを決定する段階を含む段階と、
前記第１のコンピューティングデバイスが、観察回路により解析されるべく、前記タグを含む前記決定されたコンテキストの情報を、第２のコンピューティングデバイス上で運用される前記観察回路に提供する段階と、
前記第１のコンピューティングデバイスが、前記決定されたコンテキストの情報に関連するコンテキストが終了したことを示す指標を、前記観察回路に提供する段階と、
を有し、
前記タグは、前記アプリケーションによって利用されているデータに関するデータタイプの指標を含み、
前記観察回路は、
前記タグを受信すると、前記決定されたコンテキストの情報に関連するコンテキストの指標をデータ構造に格納し、
前記コンテキストが終了したことを示す前記指標を受信すると、前記データ構造を変更する、
方法。
【請求項１９】
前記アプリケーションに関するコンテキストの情報を決定する段階は、前記アプリケーションによって実行される、
請求項１８に記載の方法。
【請求項２０】
前記第１及び第２のコンピューティングデバイスは、同一のコンピューティングデバイスである、
請求項１８又は請求項１９に記載の方法。
【請求項２１】
前記第１のコンピューティングデバイスの１又は複数のアクション又はリソース利用をモニタリングする段階と、
前記タグを含む前記決定されたコンテキストの情報を受信する段階と、
前記モニタリングされた１又は複数のアクション又はリソース利用のうちの１又は複数に、前記アプリケーションに関する前記決定されたコンテキストの情報に含まれる前記タグをタグ付けする段階と、
前記タグを含む前記決定されたコンテキストの情報を、解析回路に提供する段階と、
をさらに有する、
請求項２０に記載の方法。
【請求項２２】
少なくとも一部において、前記決定されたコンテキストの情報に含まれる前記タグに基づいて、受信されたアクションについて、前記第１のコンピューティングデバイスの１又は複数のアクション又はリソース利用の候補に関する１又は複数の確率を決定する段階をさらに有する、
請求項２１に記載の方法。
【請求項２３】
前記決定された前記第１のコンピューティングデバイスの１又は複数のアクション又はリソース利用の候補に関する１又は複数の確率に基づいて、前記第１のコンピューティングデバイスのアクション又はリソース利用の候補を決定する段階をさらに備える、
請求項２２に記載の方法。
【請求項２４】
前記決定されたアクション又はリソース利用の候補の実行を支援するためのアクション又はリソース利用を選択する段階をさらに備える、
請求項２３に記載の方法。
【請求項２５】
前記データ構造は、スタックデータ構造であり、
前記指標を前記データ構造に格納することは、前記タグを前記スタックデータ構造に詰め込むことを含む、
請求項１８から請求項２４までの何れか一項に記載の方法。
【請求項２６】
前記データ構造を変更することは、前記タグを前記スタックデータ構造から取り外すことを含む、
請求項２５に記載の方法。
【請求項２７】
請求項１から請求項９までの何れか一項に記載のプログラムを格納するコンピュータ可読記録媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
［関連出願の相互参照］
本願は、２０１２年６月２９日に出願された米国特許出願第１３／５３９，１５７号を基礎とする優先権を主張しており、その全内容は、参照により、すべての目的のためにそのまま、ここに組み込まれる。
コンピューティングデバイスを利用するときに、予想したよりも遅いパフォーマンスを体験するユーザは多い。特に、新しいコンピュータ及びデバイスは、ユーザ入力に対するシステムの応答時間がより古いシステムと同じままである可能性があるので、それらの前のものよりもほんのわずかしか速くないと知覚されることも多い。同様に、共通のアプリケーションの開始又は終了に同じくらいの時間がかかると知覚される可能性もある。
【０００２】
例えば、ユーザインタフェース中のボタンをクリックしたり、新しいコマンドを開始したりした場合に、しばしは、システムからシステムへの応答時間がそれほど変わらないという結果になりがちである。このパフォーマンスは、その基礎をなす（ｕｎｄｅｒｌｙｉｎｇ）システムの現実の能力及び機能・性能にはほとんど依存していないように見える可能性がある。いくつかの状況において、ソリッドステートドライブ及びより高性能なキャッシング・メカニズム（ｓｍａｒｔｅｒ  ｃａｃｈｉｎｇ  ｍｅｃｈａｎｉｓｍ）は有用であるが、それらはこの問題を解決していない。
【図面の簡単な説明】
【０００３】
実施形態は、添付図面と併せて、後述する詳細な説明によって、容易に理解されるであろうこの説明を容易にする目的で、同様の構成要素には、同様の参照符号を付する。添付図面の図表において、実施形態は、限定を目的とするものではなく、例示を目的とするものとして説明される
【図１】様々な実施形態に即した、例示的な予測アクション実行システムを示すブロック図である。
【図２】様々な実施形態に即した、例示的な確率エンジンを示すブロック図である。
【図３】様々な実施形態に即した、例示的なアクション予測及び実行プロセスを示す。
【図４】様々な実施形態に即した、例示的な確率生成プロセスを示す。
【図５】様々な実施形態に即した、例示的なフロー構造生成プロセスを示す。
【図６】様々な実施形態に即した、例示的な観察収集プロセスを示す。
【図７】様々な実施形態に即した、例示的なフロー構造を示す。
【図８】様々な実施形態に即した、例示的なフロー構造から確率を生成するプロセスを示す。
【図９】様々な実施形態に即した、例示的な期待値構造を示す。
【図１０】様々な実施形態に即した、例示的な予測アクション実行プロセスを示す。
【図１１】様々な実施形態に即した、例示的な開示内容の実現に適したコンピュータ環境を示す。
【発明を実施するための形態】
【０００４】
後述する詳細な説明において、参照符号は、本願の一部を構成する添付図面に付与され、初めから終わりまで同様の数字は同様の部材を指定し、実施される可能性のある実施形態の実例として示される。他の実施形態が実施されてもよく、本開示の範囲を逸脱することなく構造的又は論理的な変更が加えられてもよいことが理解されるであろう。それゆえ、後述する詳細な説明は、限定する意味で解釈されるべきではなく、また、実施形態の範囲は、添付の特許請求の範囲及びその均等物によって定義される。
【０００５】
様々なオペレーションが、クレームされた主題の理解に役立つ意味で、複数の個別のアクション又は順番になされる複数のオペレーションとして記述される場合がある。しかしながら、説明の順序は、必ずしも、これらのオペレーションが順序依存性を有することを示唆すると解釈されるものではない。特に、これらのオペレーションが、提示された順序で実行されない場合がある。記載されたオペレーションは、記載された実施形態とは異なる順序で実行される場合がある。追加的な実施形態において、様々な追加的なオペレーションが実行される、及び／又は、記載されたオペレーションが省略される場合がある。
【０００６】
本明細書での開示を目的として、「Ａ及び／又はＢ」という表現は、「Ａ」、「Ｂ」又は「Ａ及びＢ」を意味するものとする。本明細書での開示を目的として、「Ａ、Ｂ及び／又はＣ」という表現は、「Ａ」、「Ｂ」、「Ｃ」、「Ａ及びＢ」、「Ａ及びＣ」、「Ｂ及びＣ」又は「Ａ、Ｂ及びＣ」を意味するものとする。
【０００７】
説明において、「一実施形態において」又は「実施形態において」という表現を、それぞれ、１又は複数の同一又は異なる実施形態に言及するものとして用いる場合がある。さらに、「備える」、「有する」、「含む」などの用語は、本開示における実施形態について用いられている場合、同義語である。
【０００８】
本明細書において用いられている場合、「モジュール」という用語は、エイシック（ＡＳＩＣ）；電子回路；１若しくは複数のソフトウェア若しくはファームウェアプログラムを実行するプロセッサ（共有、専用又はグループ）及び／又はメモリ（共有、専用又はグループ）；組合せ論理回路；及び／又は、記載された機能を提供する他の適切なコンポーネントの一部である、又は、それらを含むことに言及する場合がある。
【０００９】
ここで、図１によれば、例示的な予測アクション実行システムを示す実施形態を説明するブロック図が示される。様々な実施形態において、予測アクション実行システムは、予測アクションエンジン１００（ＰＡＥ１００）と、確率エンジン１１０（ＰＥ１１０）とを備えてよい。様々な実施形態において、ＰＡＥ１００は、コンピューティングデバイスの過去及び／又は現在のオペレーションに関する情報を受信するように構成されてよい。ＰＡＥ１００は、コンピューティングデバイス上で生じるであろうと予測される複数のアクション及び／又はリソース利用の候補を支援すべく、上記の情報の一部に基づいて、１又は複数のアクションを選択するように構成されてよい。様々な実施形態において、アクションには、プロセスの開始、ウィンドウ若しくはダイアログボックスのオープン、ネットワークイベントの受信、又は、ユーザとの対話処理といったものが含まれうる。例えば、ＰＡＥ１００は、まもなく実行されることが予測されるアプリケーション用のコードをプリロードすべく選択するように構成されてもよく、または、データをキャッシュに読み込んでもよい。
【００１０】
図１の例において示されるように、様々な実施形態において、ＰＡＥ１００は、プロセス１５０などの、実行中のプロセスの複数のアクション及び／又はリソース利用の候補を支援すべく、アクションを選択するように構成されてよい。様々な実施形態において、プロセス１５０は、サブプロセス１６０を含んでもよい。様々な実施形態において、ＰＡＥ１００は、近い将来において、第２のサブプロセス１７０が実行されるであろうことを予測するように構成されてもよい。例えば、様々な実施形態において、ＰＡＥ１００は、サブプロセス１７０用のコードのプリフェッチを促進する（及び／又は早期実行を促進する）ように構成されてもよい。他の実施形態において、ＰＡＥは、現在実行中のプロセスの外の実行可能なコードのプリフェッチ及び／又は早期実行を引き起こすように構成されてよい。例えば、特定のドキュメントタイプの添付物を有する電子メールが受信された場合に、ＰＡＥ１００は、当該ドキュメントタイプを読み込むように構成されたアプリケーション用のコード又はプロセスをプリフェッチすべく選択してよい。
【００１１】
同様に、いくつかの実施形態において、ＰＡＥ１００は、近い将来において、（例えば、ドメインネームシステムサーチを実行する目的で、）外部リソース１７５（例えば、ネットワークカード）が利用されるであろうことを予測するように構成されてもよい。また、様々な実施形態において、ＰＡＥ１００は、外部リソース１７５の早期リクエストを促進するように構成されてよい。上記の例は、単にアクション候補及びＰＡＥ１００の機能・性能について説明しているものと認められるが、他の実施形態において、異なるプロセス又は外部リソースが含まれてもよい。
【００１２】
図１に記載の例において、破線の左側には、予測アクション実行システムの態様が図示され、破線の右側には、予測アクション実行システムがアクションを予測するコンピューティングデバイスの態様が図示される。例えば、いくつかの実施形態において、予測アクション実行システムは、予測アクション実行システムとは別個のデバイス又は装置に作用するように構成されてよい。しかしながら、様々な実施形態において、予測アクション実行システムの１又は複数の態様は、アクションが予測されているのと同一のコンピューティングデバイス上で運用されてよい。
【００１３】
様々な実施形態において、ＰＡＥ１００は、コンピューティングデバイス上で実行されるであろう複数のアクション候補の１又は複数の確率を受信するように構成されてよい。様々な実施形態において、ＰＡＥ１００は、ＰＥ１１０から、これらの確率を受信してよい。ＰＥ１１０の特定の実施形態については後述する。
【００１４】
様々な実施形態において、ＰＡＥ１００は、コンピューティングデバイスに関する現在のシステムコンテキスト１２０を受信する（又は、他の方法で取得する）ように構成されてもよい。様々な実施形態において、システムコンテキストは、コンピューティングデバイスの状態（例えば、パワー、性能、メモリ、ストレージ、負荷、バッテリ状態、及び／又は、熱に関するデータ）、論理環境（例えば、ネットワーク接続性、ネットワークを介して受信されたデータ）、及び／又は、コンピューティングデバイスの物理的な位置（例えば、コンピューティングデバイスが、移動可能（ｍｏｂｉｌｅ）である、家にある、オフィスにある、飛行中の機内にある、外国にあるなど）を含んでよい。様々な実施形態において、コンテキストは、コンピューティングデバイスの内部及び外部のその他の情報、データ、及び／又は、その情報及びデータから導出されうる結果を含んでよい。
【００１５】
様々な実施形態において、例えば、アプリケーション又はシステムプロセスが、システムコンテキスト情報をＰＡＥ１００に通知することによって、現在のシステムコンテキストがＰＡＥ１００により受動的に受信されてもよい。他の実施形態において、ＰＡＥ１００は、コンピューティングデバイスから、現在のシステムコンテキスト１２０を能動的に要求する、及び／又は、他の方法で取得するように構成されてよい。様々な実施形態において、ＰＡＥ１００は、利用できるシステムリソース（例えば、現在のシステムコンテキスト中で識別されたもの）に基づいて、実行用のアクションを選択するように構成されてよい。
【００１６】
次に、図２によれば、様々な実施形態に即した、例示的なＰＥ１１０を示すブロック図が示される。様々な実施形態においてＰＥ１１０は、観察エンジン２５０（ＯＥ２５０）及び解析エンジン２６０（ＡＥ２６０）を備えてよい。様々な実施形態において、ＯＥ２５０は、コンピューティングデバイスのアクション及びリソース利用２１０を受信するように構成されてよい。図示されているように、ＯＥ２５０は、ＯＥ２５０により受信された履歴データに基づいて、コンピューティングデバイスの複数の定常状態及び遷移を記述するフロー構造２５０を生成してよい。受信された現在のアクション２０５に続いて起こる可能性のある複数のアクション候補に関する１又は複数の確率を決定するべく、このフロー構造が、コンピューティングデバイスにより実行されている現在のアクション２０５の指標（ｉｎｄｉｃａｔｉｏｎ）と共に、ＡＥ２６０によって利用されてもよい。本明細書において記載されたように、これらの確率は、ＰＡＥ１００による実行用のアクションの選択に利用されてもよい。
【００１７】
様々な実施形態において、例えば、アプリケーション又はシステムプロセスが、実行されたアクション及び／又はリソース利用の指標をＯＥ２５０に通知することによって、アクション／リソース利用２１０がＯＥ２５０により受動的に受信されてよい。他の実施形態において、ＯＥ２５０は、コンピューティングデバイスから、アクション及び／又はリソース利用２１０を能動的に要求する、及び／又は、他の方法で取得するように構成されてよい。
【００１８】
様々な実施形態において、ＯＥ２５０は、コンピューティングデバイス上で実行中の１又は複数のアプリケーション２２０から、アプリケーション・コンテキスト情報を受信するように構成されてよい。様々な実施形態において、アプリケーション２２０は、コンテキスト情報を提供する目的で、ＯＥ２５０と通信することができるコンテキストコンポーネント２３０を含んでよい。アプリケーション２２０は、別な方法において（ｏｔｈｅｒｗｉｓｅ）ＰＥ１１０がコンピューティングデバイス上で実行中のアプリケーションからの直接の援助なしに利用できていたであろうよりも多くの情報を、ＯＥ２５０に（そしてそれゆえＰＥ１１０に）提供するように構成されてもよい。例えば、コーディング環境アプリケーション２２０は、そのコンテキストコンポーネント２３０を介するなどして、当該アプリケーションにおいて記述されているコードのタイプを示すタグを提供し得る。他の例において、電子メールアプリケーション２２０は、電子メールが受信されたことを示すタグ、当該電子メールの送信側を示すタグ、及び、パワーポイント（登録商標）ファイルが添付されていることを示すタグを提供してよい。この情報は、ＰＥ１１０が、パワーポイント（登録商標）ファイルが添付された、特定の人からの電子メールが受信される度に、パワーポイント（登録商標）が実行されるであろうということを決定するのに利用されてもよい。ＰＡＥ１００は、パワーポイント（登録商標）アプリケーション用のコードのロードを促進してもよい。
【００１９】
様々な実施形態において、コンテキストコンポーネント２３０は、これらに限定されるものではないが、アプリケーションの状態、アプリケーション２２０によってアクセスされた１又は複数のファイルを示す情報、アプリケーション２２０によって受信された複数のメッセージ、アプリケーションに対する情報の、１又は複数の受信側又は送信側の識別情報（ｉｄｅｎｔｉｔｙ）などの情報を提供してよい。様々な実施形態において、コンテキストコンポーネント２３０は、１又は複数のタグの形態で、アプリケーション・コンテキスト情報をＯＥ２５０に提供してよい。後述するとおり、受信されたアクション及び／又はリソース利用２１０用の追加的なコンテキストを提供する目的で、これらのタグが、ＯＥ２５０により受信されるアクション及び／又はリソース利用２１０に添付されてもよく、このことは、まわりまわって、ＯＥが、より正確な及び／又は詳細なフロー構造２５０を生成することを可能にし得る。同様に、様々な実施形態において、ＯＥ２５０は、１又は複数の現在のアクション２０５にコンテキストを提供するのに利用されうるＡＥ２６０に、１又は複数のコンテキストタグ２５５を提供してよい。様々な実施形態において、このようなコンテキストタグ２５５の提供は、ＡＥ２６０がより正確な確率２７０を生成することを促進する。本明細書において、アプリケーション・コンテキスト情報及びタグの特定の使用が示される。
【００２０】
図３は、様々な実施形態に即した、例示的なアクション予測及び実行プロセス３００を示す。プロセスは、オペレーション３２０において開始され、様々な実施形態において、この段階で、ＰＥ１１０は、ＰＡＥ１００により利用される１又は複数の確率を生成してよい。オペレーション３２０の特定の実施形態については後述する。次に、オペレーション３４０において、ＰＡＥ１００は、オペレーション３２０においてＰＥ１１０により生成された確率に基づいて、１又は複数の予測アクションを実行してよい。いくつかの実施形態において、オペレーション３４０における予測アクションの実行は、部分的に、現在のシステムコンテキスト１２０に基づいていてもよい。オペレーション３４０の特定の実施形態については後述する。様々な実施形態において、その後、オペレーション３２０において、追加的な確率及び予測アクションに関するプロセスが繰り返し実行されてよい。いくつかの実施形態によれば、その代わりに、プロセスが終了する。
【００２１】
図４は、様々な実施形態に即した、例示的な確率生成プロセス４００を示す。様々な実施形態において、プロセス４００は、プロセス３００のオペレーション３２０の１又は複数の実施形態を実施すべく、ＰＥ１１０により実行されてよい。  プロセスは、オペレーション４１０において開始され、この段階で、ＯＥ２５０は、フロー構造２５０を生成してよい。オペレーション４１０の特定の実施形態については後述する。次に、オペレーション４２０において、ＡＥ２６０は、生成されたフロー構造２５０及び現在のアクション２０５に基づいて、確率を生成してよい。オペレーション４２０の特定の実施形態については後述する。
【００２２】
次に、オペレーション４３０において、確率が、ＡＥ２６０から出力されてよい。様々な実施形態において、出力される確率は、ＰＡＥ１００がそれらを容易に利用することができるように、順序付けされてよい。例えば、いくつかの実施形態において、確率は、尤度に従って順序付けされてよい。他の実施形態において、ＡＥ２６０により出力される確率は、現在のアクション２０５からの時間的な仮定距離（ａｓｓｕｍｅｄ  ｄｉｓｔａｎｃｅ  ｉｎ  ｔｉｍｅ）に従って順序付けされてよい。その後、プロセスは終了してよい。
【００２３】
図５は、様々な実施形態に即した、例示的なフロー構造生成プロセス５００を示す。様々な実施形態において、プロセス５００は、プロセス４００のオペレーション４１０の１又は複数の実施形態を実施すべく、ＯＥ２５０により実行されてよい。プロセスは、オペレーション５２０において開始され、この段階で、ＯＥ２５０は、コンピューティングデバイスから、アクション及び／又はリソース利用に関する情報を収集してよい。様々な実施形態において、これらの観察結果は、１又は複数のアプリケーションから取得されてもよい。オペレーション５２０の特定の実施形態については、図６のプロセス６００を参照して後述する。
【００２４】
そこで、図６を参照すると、当該図表は、様々な実施形態に即した、例示的な観察収集プロセス６００を示す。様々な実施形態において、プロセス６００は、プロセス５００のオペレーション５２０の１又は複数の実施形態を実施すべく、ＯＥ２５０によって実行されてよい。プロセスは、オペレーション６１０において開始され、この段階で、ＯＥ２５０は、アプリケーション２２０から、アプリケーション・コンテキスト情報を受信してよい。様々な実施形態において、アプリケーション２２０のコンテキストコンポーネント２３０からのアプリケーション・コンテキスト情報が受信されてよい。いくつかの実施形態において、アプリケーション・コンテキスト情報は、タグの形態で受信されてよい。プロセス６００のオペレーションに関する後述の説明において、タグについて具体的に言及するが、他の実施形態において、受信されたアプリケーション・コンテキスト情報は、他の形態であってもよいことが理解されるであろう。
【００２５】
オペレーション６２０において、ＯＥ２５０は、最近受信されたタグをスタックデータ構造（ｓｔａｃｋ  ｄａｔａ  ｓｔｒｕｃｔｕｒｅ）に詰め込ん（ｐｕｓｈ  ｏｎｔｏ）でよい。様々な実施形態において、スタックは、受信されたアクション及びリソース利用（ａｃｔｉｏｎｓ  ａｎｄ  ｒｅｓｏｕｒｃｅ  ｕｔｉｌｉｚａｔｉｏｎｓ）に適用された場合に、様々なスタックのネストを可能にするだけでなく、コンテキストを容易に取り出す（取り外す）ことを可能にする目的で利用され、また、他の実施形態においては、他のデータ構造を利用してスタックが格納されてもよい。
【００２６】
次に、オペレーション６３０において、ＯＥ２５０は、１又は複数のアクション及び／又はリソース利用を取得してよい。上述のとおり、様々な実施形態において、これらのアクション及び／又はリソース利用は、受動的に受信されてもよく、他の実施形態において、ＯＥ２５０が、アクション及び／又はリソース利用の情報を能動的に探し出してもよい。次に、オペレーション６４０において、ＯＥ２５０は、受信されたアクション及び／又はリソース利用に、最近受信されたタグをタグ付けしてよい。様々な実施形態において、このようなタグ付けは、ＯＥ２５０が、受信されたアクション及び／又はリソース利用に付随するアプリケーション・コンテキスト情報を提供することを容易にし、確率生成を改善する。様々な実施形態において、ＯＥ２５０は、追加的なアクション及び／又はリソース利用を受信（し、かつタグ付け）する目的で、オペレーション６３０及び６４０を繰り返し実行してよい。
【００２７】
しかしながら、ＯＥ２５０は、例えば、オペレーション６５０において、アプリケーション・コンテキスト情報に関連付けられたアプリケーション・コンテキストに変更が生じたことを示す指標を受信してもよい。次に、例えば、アプリケーション２２０は、ユーザとの対話処理（ｕｓｅｒ  ｉｎｔｅｒａｃｔｉｏｎ）に応じてよく、それにより、ユーザは、メニューを選択することができる。アプリケーション２２０は、例えば、そのコンテキストコンポーネント２３０を利用して、このメニュー選択を示すタグを、ＯＥ２５０に送信してよい。後に、ユーザがメニューの選択を終了すると、アプリケーション２２０のコンテキストコンポーネント２３０は、関連するコンテキストが終了したことを、ＯＥ２５０に示唆してよい。次に、オペレーション６６０において、ＯＥ２５０は、スタック構造からタグを取り出す（取り外す）。これにより、その後に受信されたアクションへの受信されたタグのタグ付けを効率的に終了させることができる。その後、プロセスが終了してよい。
【００２８】
図５のプロセス５００に戻ると、アクション及び／又はリソース利用に関する情報を収集した後、プロセス５００は継続してオペレーション５３０に移り、この段階で、ＯＥ２５０は、コンピューティングデバイスの１又は複数の定常状態を特定してよい。様々な実施形態において、後述のとおり、これらの定常状態（ｓｔｅａｄｙ  ｓｔａｔｅ）は、コンピューティングデバイスが、ある特定の時間、一貫した（ｃｏｎｓｉｓｔｅｎｔ）状態にあるような状態を示す。様々な実施形態において、定常状態は、コンピューティングデバイスのコンテキストの一貫した状態を含んでよい。いくつかの実施形態において、定常状態は、コンピューティングデバイスの１又は複数の内部変数の一貫した状態を含んでよく、内部変数は、例えば、現在の作業ディレクトリ、ネットワークデバイスの現在のＩＰアドレス、１又は複数のアプリケーションの現在の実行状態などであってよい。例えば、一実施形態において、例示的な定常状態は、ハイレベルで、「電子メールプログラムがフォアグラウンドで実行されており、エディタ・ウィンドウが表示されており、ユーザ入力を待っている」と記述されてよい。
【００２９】
次に、オペレーション５４０において、ＯＥ２５０は、１又は複数のコンピューティングデバイスによって実行され得る遷移アクション及び／又はリソース利用を特定してよい。例えば、オペレーション５４０において、ＯＥ２５０は、ディレクトリ変更コマンドが、コンピューティングデバイスに、ディレクトリ定常状態の間での移行をもたらすことを特定してよい。他の例において、オペレーション５４０において、ＯＥ２５０は、アプリケーションを実行するためのコマンドが、コンピューティングデバイスに、そのアプリケーションが実行中であるという定常状態への移行をもたらし得ることを特定してよい。他の例において、遷移アクションは、ユーザからのコマンド（例えば、電子メールアプリケーションにおける「送信」コマンドである。）を受信することを含んでもよい。
【００３０】
次に、オペレーション５５０において、ＯＥ２５０は、その受信されたアクション及びリソース利用に関する情報に基づいて、複数の定常状態のそれぞれの頻度を生成してよい。これらの頻度の特定の例については、後述する図７において参照され得る。オペレーション５６０において、ＰＡＥ１００によって利用されるであろう確率を決定する段階における利用を目的として、これらの頻度がＡＥ２６０に提供されてよい。その後、プロセスが終了してよい。
【００３１】
図７は、様々な実施形態に即した、定常状態及び頻度を含む例示的なフロー構造を示す。図示された例において、定常状態は、グラフノードとして説明されている。グラフ遷移は、ある特定の観察期間に、ＯＥ２５０が、２つの定常状態の間における遷移をどのくらい観測したのかという頻度を示す。フロー構造７００に示されているとおり、様々な実施形態において、定常状態は、アプリケーションを実行するためのコマンドの受信（例えば、「ｕｓｒ／ｂｉｎ／ｂａｓｈ」、「／ｕｓｒ／ｂｉｎ／ｍａｋｅ／」、「／ｂｉｎ／ｒｍ」である。）を含んでもよく、又は、そのコマンドに基づくプロセスの実行（例えば、「／ｕｓｒ／ｂｉｎ／ｂａｓｈ：：ｂａｓｈ」、「／ｕｓｒ／ｂｉｎ／ｍａｋｅ：：ｍａｋｅ」である。）を含んでもよい。図７の例示的なフロー構造には、アプリケーション・コンテキスト情報のタグ付けされた定常状態が示されていないが、様々な実施形態において、フロー構造は、アプリケーション・コンテキスト情報を追加的に含んでもよい。例えば、様々な実施形態において、ある特定のディレクトリ又はプロセスに対して、異なるタグを付与された１以上の定常状態が存在してもよい。
【００３２】
図８は、様々な実施形態を踏まえて、フロー構造から確率を生成するための例示的なプロセス８００を示す。様々な実施形態において、プロセス８００は、プロセス４００のオペレーション４２０を実施すべく、ＡＥ２６０によって実行されてよい。プロセスは、オペレーション８１０において、開始され、この段階で、ＡＥ２６０は、ＯＥ２５０によって生成されたフロー構造を受信してよい。次に、オペレーション８２０において、ＡＥ２６０が、現在のアクション２０５を示す指標を受信してよい。オペレーション８３０において、ＡＥ２６０が、ＯＥ２５０から、アプリケーション・コンテキストタグ２５５を受信するが、これらのタグは、フロー構造中における関連する定常状態及び遷移をより精度よく特定する目的で利用されてよい。
【００３３】
次に、オペレーション８４０において、ＡＥ２６０は、受信されたアクションに従う複数の期待値を算出してよい。様々な実施形態において、複数の期待値は、定常状態のそれぞれから次の状態への頻度（ｄｉｒｅｃｔ  ｆｒｅｑｕｅｎｃｙ）に直接的に基づいて算出されてよく、その期待値が算出されている遷移に関連づけられていない頻度を含まなくてもよい。様々な実施形態において、ＡＥ２６０は、受信されたフロー構造のサブ構造を利用してよく、当該サブ構造は、現在のアクション２０５の実行後に到達される可能性のある定常状態のみを含む。様々な実施形態において、その後、ＡＥ２６０は、現在のアクション２０５の後、その後に続いて起こる（ｓｕｂｓｅｑｕｅｎｔ）定常状態のそれぞれが何度くらい到達され得るかを表す期待値を算出してよい。
【００３４】
次に、図９を参照すると、図９は、様々な実施形態に即した、例示的な期待値構造９００を示す。図９の例に示されるように、様々な実施形態において、ＡＥ２６０は、１００回のうち、実行される可能性のある遷移の回数の形態で、複数の期待値を算出してよい。例えば、現在のアクションに基づいて、ある特定のアプリケーションが５０％の確率で実行されるものと予想される場合、そのアプリケーションへの遷移の期待値は、（１００回のうち）５０回である。他の例において、あるアプリケーションが、平均して２回実行されるものと予想される場合、期待値は、１００回のうち２００回であってよい。いくつかの実施形態において、期待値には、上限値が設定されてもよい。
【００３５】
図８に戻ると、オペレーション８５０及び８６０において、ＡＥ２６０は、算出された期待値から、定常状態（８５０）及びリソース利用（８６０）の有効確率を算出してよい。様々な実施形態において、ＡＥ２６０は、確率的な形態（ｐｒｏｂａｂｉｌｉｓｔｉｃ  ｆｏｒｍ）で、期待値を直接的に乗算することによって、有効確率を算出してよい。他の実施形態において、ＡＥ２６０は、人工知能を利用した手法を使用する、他の情報を組み込むなどの、確率を計算する他の方法を利用してもよい。最後に、オペレーション８７０において、ＡＥ２６０は、例えば、尤度、又は、現在のアクション２０５からの距離（例えば、フロー構造中における距離である。）によって、算出された確率を順序付ける。  その後、プロセスは終了してよい。
【００３６】
図１０は、様々な実施形態に即した、例示的な予測アクション実行プロセス１０００を示す。様々な実施形態において、ＰＡＥ１００は、図３のプロセス３００のオペレーション３４０を実施すべく、プロセス１０００を実行してよい。プロセスは、オペレーション１０１０において開始され、この段階で、ＰＡＥ１００は、コンピューティングデバイスから、システムコンテキストを取得してよい。上述のとおり、様々な実施形態において、システムコンテキストは、様々な実施形態において、メモリ又はストレージの容量（ｃａｐａｂｉｌｉｔｙ）、現在の作業負荷、実行場所（ｌｏｃａｔｉｏｎ  ｏｆ  ｅｘｅｃｕｔｉｏｎ）などのリソースの利用可能性、及び／又は、コンピューティングデバイスの温度などの環境情報を含んでよい。次に、オペレーション１０２０において、ＰＡＥ１００は、アクション及び／又はリソースに関する１又は複数の確率を、例えばＰＥ１１０から取得してよい。上述のとおり、様々な実施形態において。これらの確率は、ＰＡＥ１００による利用を目的として、順序付けされてもよい。
【００３７】
次に、オペレーション１０３０において、ＰＡＥ１００は、コンピューティングデバイスに関する現在のシステムコンテキストを考慮して、実行される可能性があり、複数のアクション及び／又はリソース割り当ての候補を支援するアクション及び／又はリソース利用を選択してよい。例えば、様々な実施形態において、ＰＡＥ１００は、それに関する確率が受信された複数のアクション及び／又はリソース利用の候補について、システムコンテキストによって示される機能・性能を考慮して、どのサポートアクション及び／又はリソース利用が実行される可能性があるのかを決定してよい。様々な実施形態において、オペレーション１０３０において、ＰＡＥ１００は、これらのサポートアクション及び／又はリソース利用のうちのどれが、コンピューティングデバイスのユーザに気付かれる程に顕著なスピードダウンを引き起こすことなく実行される可能性が高いかを決定してよい。
【００３８】
最後に、オペレーション１０４０において、ＰＡＥ１００は、選択されたアクション及び／又はリソース利用の実行を促進してよい。様々な実施形態において、ＰＡＥ１００が自ら、直接的に、アクション及び／又はリソース利用を実行してよい。他の実施形態において、ＰＡＥ１００は、他のエンティティからのアクション及び／又はリソース利用の実行を要求してもよい。その後、プロセスが終了してよい。
【００３９】
図１１は、一実施形態に関連して、本明細書に開示された実施形態の実現に適した、例示的なコンピュータシステム１１００を示す。図示されているとおり、例示的なコンピュータシステム１１００は、プロセッサ１１０４、システム制御論理１１０８と結合されたシステムメモリ１１１２、システム制御論理１１０８と結合された不揮発性メモリ（ＮＶＭ）／ストレージ１１１６、及び、システム制御論理１１０８と結合された１又は複数の通信用インタフェース１１２０の少なくとも１つと結合された制御論理１１０８を備えてよい。様々な実施形態において、１又は複数のプロセッサ１１０４は、プロセッサコアであってもよい。
【００４０】
一実施形態において、システム制御論理１１０８は、プロセッサ１１０４の少なくとも１つに対する、及び／又は、システム制御論理１１０８と通信する適切なデバイス若しくはコンポーネントに対する、適切なインタフェースを提供する適切なインタフェースコントローラを備えてよい。
【００４１】
一実施形態において、システム制御論理１１０８は、システムメモリ１１１２に対するインタフェースを提供する、１又は複数のメモリコントローラを備えてよい。システムメモリ１１１２は、例えば、システム１１００に関するデータ及び／又は命令のロード及び格納に用いられてよい。一実施形態において、システムメモリ１１１２は、例えば、ダイナミック・ランダムアクセスメモリ（ＤＲＡＭ）などの適切な揮発性メモリを含んでよい。
【００４２】
一実施形態において、システム制御論理１１０８は、ＮＶＭ／ストレージ１１１６及び通信用インタフェース１１２０に対するインタフェースを提供する、１又は複数の入／出力（Ｉ／Ｏ）コントローラを備えてよい。
【００４３】
ＮＶＭ／ストレージ１１１６は、例えば、データ及び／又は命令の格納に用いられてよい。ＮＶＭ／ストレージ１１１６は、例えば、フラッシュメモリなどの適切な不揮発性メモリを備えてもよく、及び／又は、例えば、１又は複数のハードディスクドライブ（ＨＤＤ）、１又は複数のソリッドステートドライブ、１又は複数のコンパクトディスク（ＣＤ）ドライブ、及び／又は、１又は複数のデジタル多目的ディスク（ＤＶＤ）ドライブなどの不揮発性ストレージデバイスを備えてもよい。
【００４４】
ＮＶＭ／ストレージ１１１６は、物理的に、システム１１００がインストールされたデバイスの一部であるストレージリソースを備えてもよく、あるいは、必ずしもその一部である必要はないが、当該デバイスによってアクセス可能であってもよい。例えば、ＮＶＭ／ストレージ１１１６は、通信用インタフェース１１２０を介して、ネットワーク経由でアクセスされてもよい。
【００４５】
具体的には、システムメモリ１１１２及びＮＶＭ／ストレージ１１１６は、予測アクション実行論理１１２４の一時的な持続性のコピー（ｔｅｍｐｏｒａｌ  ａｎｄ  ｐｅｒｓｉｓｔｅｎｔ  ｃｏｐｙ）を含んでよい。予測アクション実行論理１１２４は、少なくとも１つのプロセッサ１１０４によって実行された場合に、システム１１００に、上述した１又は複数の予測アクション実行オペレーションを実行させるための命令を含んでよい。いくつかの実施形態において、予測アクション実行論理１１２４は、追加的に／代替的に、システム制御論理１１０８に配されてもよい。
【００４６】
通信用インタフェース１１２０は、システム１１００が１又は複数のネットワークを介して、及び／又は、他の適切なデバイスと、通信するためのインタフェースを備えてよい。通信用インタフェース１１２０は、例えば、ネットワークアダプタ、１又は複数のアンテナ、無線インタフェースなどの適切なハードウェア及び／又はファームウェアを備えてよい。様々な実施形態において、通信用インタフェース１１２０は、システム１１００が、ＮＦＣ、光通信（例えば、バーコード）、ブルートゥース（登録商標）、又は、それらに類する、（例えば、中継することなく）他のデバイスと直接的に通信する技術を利用するためのインタフェースを備えてよい。
【００４７】
一実施形態において、少なくとも１つのプロセッサ１１０４は、システム制御論理１１０８及び／又は予測アクション実行論理１１２４とともにパッケージ化されてよい。一実施形態において、少なくとも１つのプロセッサ１１０４は、システム制御論理１１０８及び／又は予測アクション実行論理１１２４とともにパッケージ化されて、システム・イン・パッケージ（ＳｉＰ）を構成してよい。一実施形態において、少なくとも１つのプロセッサ１１０４は、システム制御論理１１０８及び／又は予測アクション実行論理１１２４とともに、同一のダイに組み込まれてよい。一実施形態において、少なくとも１つのプロセッサ１１０４は、システム制御論理１１０８及び／又は予測アクション実行論理１１２４とともに同一のダイに組み込まれて、システム・オン・チップ（ＳｏＣ）を構成してよい。
【００４８】
この後のパラグラフにおいて、様々な実施形態の例を記載する。様々な実施形態において、その装置のアクティビティを予測するための装置は、１又は複数のコンピュータプロセッサを備えてよい。上記の装置は、１又は複数のコンピュータプロセッサによって運用されるコンテキストコンポーネントを備えてよい。コンテキストコンポーネントは、アプリケーションの実行中に、当該アプリケーションに関するコンテキストの情報を決定し、当該アプリケーションの複数のアクション又はリソース利用の候補を決定する段階における解析に用いられるべく、決定されたコンテキストの情報を観察エンジンに提供するように運用されてよい。様々な実施形態において、上記の装置は、上記のアプリケーションをさらに備えてよく、当該アプリケーションは、上記のコンテキストコンポーネントを備えてよい。
【００４９】
様々な実施形態において、コンテキストコンポーネントは、アプリケーションのステータスを記述するタグの、当該アプリケーションの決定に用いられるコンテキストの情報を決定するように構成されてよい。様々な実施形態において、タグは、アプリケーションによりアクセスされたファイルの指標を含んでよい。様々な実施形態において、タグは、アプリケーションにより利用されたデータに関するデータタイプの指標を含んでよい。様々な実施形態において、タグは、アプリケーションにより、ネットワークを介して受信された情報の指標を含んでよい。
【００５０】
様々な実施形態において、上記の装置は、１又は複数のコンピュータプロセッサによって、コンピューティングデバイスの１又は複数のアクション又はリソース利用をモニタリングするように運用されるように構成される、観察エンジンをさらに備えてよい。様々な実施形態において、観察エンジンは、さらに、１又は複数のコンピュータプロセッサによって運用されて、決定されたコンテキストの情報を受信したり、モニタリングされた１又は複数のアクション又はリソース利用のうちの１又は複数に、アプリケーションに関するコンテキストの情報をタグ付けしたり、決定されたコンテキストの情報を解析エンジンに提供したりするように構成されてよい。
【００５１】
様々な実施形態において、上記の装置は、１又は複数のコンピュータプロセッサによって運用されて、少なくとも一部は、１又は複数のモニタリングされたアクション又はリソース利用と、アプリケーションに関するコンテキストの情報とに基づいて、受信されたアクションについて、コンピューティングデバイスの１又は複数のアクション又はリソース利用の候補に関する１又は複数の確率を決定するように構成される、解析エンジンをさらに備えてよい。
【００５２】
上述された技術を実現するためのコンピュータ可読媒体（不揮発性のコンピュータ可読媒体を含む。）、方法、システム及びデバイスは、本明細書に開示された実施形態の実例である。加えて、上述された相互作用（ｉｎｔｅｒａｃｔｉｏｎ）に関連する他のデバイスが、開示された様々な技術を実現するように構成されてよい。
【００５３】
説明の目的で、特定の実施形態が示され、本願明細書中に開示されているけれども、同様の目的を達成するために計画された、多種多様の代替的な及び／又は均等な実施形態又は実装形態が、本開示の範囲から逸脱することなく、開示又は記載された実施形態の代わりに用いられることができる。本願は、ここに記載された実施形態の改造又は変更の結果物をもカバーすることを意図されている。本明細書中で開示された実施形態は、特許請求の範囲によってのみ限定されることが意図されている。
【００５４】
本開示において、「１つの」若しくは「第１の」構成要素又はその均等物のように表現された場合、当該表現は、１又は複数の当該構成要素を含んでおり、２又はそれ以上の当該構成要素を要求したり、排除したりするものではない。さらに、特定の構成要素に対する序数標識（例えば、第１の、第２の、第３のなど）は、構成要素同士を区別する目的で用いられており、要求された若しくは限定された数の当該構成要素の存在を示したり、示唆したりするものではなく、また、特に他で延べられないかぎり、それらは、当該構成要素の特定の順位若しくは順序を示すものではない。
［項目１］
第１のコンピューティングデバイスの複数のアクション候補を予測する目的でコンピュータにより実施される方法であって、
第１のコンピューティングデバイスが、上記第１のコンピューティングデバイス上で現在実行中のアプリケーションに関するコンテキストの情報を決定する段階と、
上記第１のコンピューティングデバイスが、上記第１のコンピューティングデバイスの複数のアクション又はリソース利用の候補を決定する段階において観察エンジンにより解析されるべく、上記決定されたコンテキストの情報を、第２のコンピューティングデバイス上で運用される上記観察エンジンに提供する段階と、
を有する、方法。
［項目２］
上記アプリケーションに関するコンテキストの情報を決定する段階は、上記アプリケーションによって実行される、
項目１に記載の方法。
［項目３］
上記アプリケーションに関するコンテキストの情報を決定する段階は、上記アプリケーションのステータスを示すタグを決定する段階を有する、
項目１に記載の方法。
［項目４］
上記タグは、上記アプリケーションによってアクセスされているファイルの指標を含む、
項目３に記載の方法。
［項目５］
上記タグは、上記アプリケーションによって利用されているデータに関するデータタイプの指標を含む、
項目３に記載の方法。
［項目６］
上記タグは、上記アプリケーションによりネットワークを介して受信された情報の指標を含む、
項目３に記載の方法。
［項目７］
上記第１及び第２のコンピューティングデバイスは、同一のコンピューティングデバイスである、
項目１に記載の方法。
［項目８］
上記コンピューティングデバイスの１又は複数のアクション又はリソース利用をモニタリングする段階をさらに有する、
項目７に記載の方法。
［項目９］
上記決定されたコンテキストの情報を受信する段階と、
上記モニタリングされた１又は複数のアクション又はリソース利用のうちの１又は複数に、上記アプリケーションに関する上記コンテキストの情報をタグ付けする段階と、
上記決定されたコンテキストの情報を、解析エンジンに提供する段階と、
をさらに有する、
項目８に記載の方法。
［項目１０］
少なくとも一部において、上記モニタリングされた１又は複数のアクション又はリソース利用と、上記アプリケーションに関する上記コンテキストの情報とに基づいて、受信されたアクションについて、上記コンピューティングデバイスの１又は複数のアクション又はリソース利用の候補に関する１又は複数の確率を決定する段階とをさらに有する、
項目９に記載の方法。
［項目１１］
コンピューティングデバイス上で実行されたことに応じて、上記コンピューティングデバイスに、項目１から項目１０までの何れか一項に記載のコンピュータにより実施される方法を実行させるための複数の命令を備える、少なくとも１つの機械可読媒体。
［項目１２］
項目１から項目１０までの何れか一項に記載のコンピュータにより実施される方法を実行する手段を備える、装置。
［項目１３］
装置であって、
１又は複数のコンピュータプロセッサと、
上記１又は複数のコンピュータプロセッサにより運用され、
アプリケーションの実行中に、上記アプリケーションのコンテキストの情報を決定し、
上記アプリケーションの複数のアクション又はリソース利用の候補を決定する段階において解析されるべく、上記決定されたコンテキストの情報を、観察エンジンに提供する、
コンテキストコンポーネントと、
を備える、上記装置のアクティビティを予測する装置。
［項目１４］
上記アプリケーションをさらに備え、
上記アプリケーションは、上記コンテキストコンポーネントを有する、
項目１３に記載の装置。
［項目１５］
上記コンテキストコンポーネントは、アプリケーションのステータスを記述するタグの、上記アプリケーションの決定に関するコンテキストの情報を決定するように構成される、
項目１３又は項目１４に記載の装置。
［項目１６］
上記タグは、上記アプリケーションによりアクセスされているファイルの指標を含む、
項目１５に記載の装置。
［項目１７］
上記タグは、上記アプリケーションにより利用されているデータに関するデータタイプの指標を含む、
項目１５に記載の装置。
［項目１８］
上記タグは、上記アプリケーションによりネットワークを介して受信された情報の指標を含む、
項目１５に記載の装置。
［項目１９］
コンピューティングデバイスの１又は複数のアクション又はリソース利用をモニタリングするべく、上記１又は複数のコンピュータプロセッサにより運用されるように構成される観察エンジンをさらに備える、
項目１３に記載の装置。
［項目２０］
上記観察エンジンは、さらに、上記決定されたコンテキストの情報を受信し、上記モニタリングされた１又は複数のアクション又はリソース利用のうちの１又は複数に、上記アプリケーションに関する上記コンテキストの情報をタグ付けし、上記決定されたコンテキストの情報を、解析エンジンに提供するべく、上記１又は複数のコンピュータプロセッサにより運用されるように構成される、
項目１９に記載の装置。
［項目２１］
少なくとも一部において、上記１又は複数のモニタリングされたアクション又はリソース利用と、上記アプリケーションに関する上記コンテキストの情報とに基づいて、受信されたアクションについて、コンピューティングデバイスの１又は複数のアクション又はリソース利用の候補に関する１又は複数の確率を決定するべく、上記１又は複数のコンピュータプロセッサにより運用されるように構成される解析エンジンをさらに備える、
項目１９に記載の装置。
【図７】
0006037320.tif 000002
【図９】
0006037320.tif 000003
【図１】
0006037320.tif 000004
【図２】
0006037320.tif 000005
【図３】
0006037320.tif 000006
【図４】
0006037320.tif 000007
【図５】
0006037320.tif 000008
【図６】
0006037320.tif 000009
【図８】
0006037320.tif 000010
【図１０】
0006037320.tif 000011
【図１１】
0006037320.tif 000012