(57)【要約】【課題】本発明の課題は、上記問題点に鑑み、コンテクスト情報の集計、解析及び利用に効果的な方法及びシステムを提供することである。【課題手段】本発明の一特徴は、複数のプロバイダからプロバイダＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介しコンテクスト情報を受け付けるステップと、前記受け付けたコンテクスト情報を集計するステップと、計算されたコンテクスト情報を生成するため、前記受け付けたコンテクスト情報と前記集計したコンテクスト情報とを解析するステップと、前記集計されたコンテクスト情報、前記計算されたコンテクスト情報及び１以上の解析ルールに基づき、複数のクライアントの少なくとも１つのクライアントに対するアクションをトリガーするステップとを有する方法であって、前記複数のクライアントとの通信はクライアントＡＰＩを介し実現される方法に関する。【選択図】図１
2014053043.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロバイダからプロバイダＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介しコンテクスト情報を受け付けるステップと、
前記受け付けたコンテクスト情報を集計するステップと、
計算されたコンテクスト情報を生成するため、前記受け付けたコンテクスト情報と前記集計したコンテクスト情報とを解析するステップと、
前記集計されたコンテクスト情報、前記計算されたコンテクスト情報及び１以上の解析ルールに基づき、複数のクライアントの少なくとも１つのクライアントに対するアクションをトリガーするステップと、
を有する方法であって、
前記複数のクライアントとの通信はクライアントＡＰＩを介し実現される方法。
【請求項２】
前記複数のクライアントのそれぞれと前記複数のプロバイダのそれぞれは、ドメイン固有のものである、請求項１記載の方法。
【請求項３】
前記解析ルールは、前記複数のクライアントによりカスタマイズ可能である、請求項１記載の方法。
【請求項４】
前記受け付けたコンテクスト情報を集計するステップは、前記受け付けたコンテクスト情報のそれのソースから切断する、請求項１記載の方法。
【請求項５】
前記受け付けたコンテクスト情報は、前記複数のクライアントにより供給される基準に基づき集計される、請求項１記載の方法。
【請求項６】
前記複数のプロバイダのそれぞれは、環境センサ、プラットフォームセンサ、心理センサ及びソフトウェアソースの１つである、請求項１記載の方法。
【請求項７】
前記受け付けたコンテクスト情報、前記集計されたコンテクスト情報及び前記計算されたコンテクスト情報は、コンテクストスキーマに従って処理される、請求項１記載の方法。
【請求項８】
複数のプロバイダからプロバイダＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介しコンテクスト情報を受け付け、前記受け付けたコンテクスト情報を集計する集計手段と、
計算されたコンテクスト情報を生成するため、前記受け付けたコンテクスト情報と前記集計したコンテクスト情報とを解析する解析手段と、
を有するシステムであって、
前記集計されたコンテクスト情報、前記計算されたコンテクスト情報及び１以上の解析ルールに基づき、前記集計手段と前記解析手段の少なくとも１つが複数のクライアントの少なくとも１つのクライアントに対するアクションをトリガーし、
前記複数のクライアントとの通信は、クライアントＡＰＩを介し実現されるシステム。
【請求項９】
前記複数のクライアントのそれぞれと前記複数のプロバイダのそれぞれは、ドメイン固有のものである、請求項８記載のシステム。
【請求項１０】
前記解析ルールは、前記複数のクライアントによりカスタマイズ可能である、請求項８記載のシステム。
【請求項１１】
前記受け付けたコンテクスト情報の集計は、前記受け付けたコンテクスト情報のそれのソースから切断する、請求項８記載のシステム。
【請求項１２】
前記受け付けたコンテクスト情報は、前記複数のクライアントにより供給される基準に基づき集計される、請求項８記載のシステム。
【請求項１３】
前記複数のプロバイダのそれぞれは、環境センサ、プラットフォームセンサ、心理センサ及びソフトウェアソースの１つである、請求項８記載のシステム。
【請求項１４】
前記受け付けたコンテクスト情報、前記集計されたコンテクスト情報及び前記計算されたコンテクスト情報は、コンテクストスキーマに従って処理される、請求項８記載のシステム。
【請求項１５】
処理システムにより実行されると、前記処理システムに方法を実行させる命令を含むマシーン可読記憶媒体であって、
前記方法は、
複数のプロバイダからプロバイダＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介しコンテクスト情報を受け付けるステップと、
前記受け付けたコンテクスト情報を集計するステップと、
計算されたコンテクスト情報を生成するため、前記受け付けたコンテクスト情報と前記集計したコンテクスト情報とを解析するステップと、
前記集計されたコンテクスト情報、前記計算されたコンテクスト情報及び１以上の解析ルールに基づき、複数のクライアントの少なくとも１つのクライアントに対するアクションをトリガーするステップと、
を有し、
前記複数のクライアントとの通信はクライアントＡＰＩを介し実現されるマシーン可読記憶媒体。
【請求項１６】
前記複数のクライアントのそれぞれと前記複数のプロバイダのそれぞれは、ドメイン固有のものである、請求項１５記載のマシーン可読記憶媒体。
【請求項１７】
前記解析ルールは、前記複数のクライアントによりカスタマイズ可能である、請求項１５記載のマシーン可読記憶媒体。
【請求項１８】
前記受け付けたコンテクスト情報を集計するステップは、前記受け付けたコンテクスト情報のそれのソースから切断する、請求項１５記載のマシーン可読記憶媒体。
【請求項１９】
前記受け付けたコンテクスト情報は、前記複数のクライアントにより供給される基準に基づき集計される、請求項１５記載のマシーン可読記憶媒体。
【請求項２０】
前記複数のプロバイダのそれぞれは、環境センサ、プラットフォームセンサ、心理センサ及びソフトウェアソースの１つである、請求項１５記載のマシーン可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテクストアウェア（ｃｏｎｔｅｘｔ  ａｗａｒｅ）システム又は装置は、コンテクストの取得（センサを用いた状況の認識など）、コンテクストの理解（認識されたセンサ刺激とコンテクストとのマッチングなど）及び認識されたコンテクストに基づくアプリケーション動作（コンテクストに基づくアクションのトリガーなど）に関する。
【背景技術】
【０００２】
コンテクストアウェア装置の目的は、明示的なユーザ入力を必要とすることなく、それらの動作を適応化し、意志決定をし、又はユーザのためにアクションを行うことである。例えば、コンテクストアウェア携帯電話は、それが現在会議室にあり、ユーザが着席したことを知っているかもしれない。この電話は、ユーザが現在会議に参加しており、重要でない電話の呼び出しを自動的に拒否するして終了するかもしれない。
【０００３】
最近、様々な新たなセンサが市場において利用可能になってきている。対応する新たな適用及び利用もまた可能となってきている。残念ながら、コンテクストアウェア装置の現在の実現形態は、特殊なセンサが特殊な利用を導くセンサの狭い利用を示している。このような手段は、センサが広く使用されることを可能にしない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の課題は、上記問題点に鑑み、コンテクスト情報の集計、解析及び利用に効果的な方法及びシステムを提供することである。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明の一特徴は、複数のプロバイダからプロバイダＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介しコンテクスト情報を受け付けるステップと、前記受け付けたコンテクスト情報を集計するステップと、計算されたコンテクスト情報を生成するため、前記受け付けたコンテクスト情報と前記集計したコンテクスト情報とを解析するステップと、前記集計されたコンテクスト情報、前記計算されたコンテクスト情報及び１以上の解析ルールに基づき、複数のクライアントの少なくとも１つのクライアントに対するアクションをトリガーするステップとを有する方法であって、前記複数のクライアントとの通信はクライアントＡＰＩを介し実現される方法に関する。
【０００６】
本発明の他の特徴は、複数のプロバイダからプロバイダＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介しコンテクスト情報を受け付け、前記受け付けたコンテクスト情報を集計する集計手段と、計算されたコンテクスト情報を生成するため、前記受け付けたコンテクスト情報と前記集計したコンテクスト情報とを解析する解析手段とを有するシステムであって、前記集計されたコンテクスト情報、前記計算されたコンテクスト情報及び１以上の解析ルールに基づき、前記集計手段と前記解析手段の少なくとも１つが複数のクライアントの少なくとも１つのクライアントに対するアクションをトリガーし、前記複数のクライアントとの通信は、クライアントＡＰＩを介し実現されるシステムに関する。
【０００７】
本発明のさらなる他の特徴は、処理システムにより実行されると、前記処理システムに方法を実行させる命令を含むマシーン可読記憶媒体であって、前記方法は、複数のプロバイダからプロバイダＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介しコンテクスト情報を受け付けるステップと、前記受け付けたコンテクスト情報を集計するステップと、計算されたコンテクスト情報を生成するため、前記受け付けたコンテクスト情報と前記集計したコンテクスト情報とを解析するステップと、前記集計されたコンテクスト情報、前記計算されたコンテクスト情報及び１以上の解析ルールに基づき、複数のクライアントの少なくとも１つのクライアントに対するアクションをトリガーするステップとを有し、前記複数のクライアントとの通信はクライアントＡＰＩを介し実現されるマシーン可読記憶媒体に関する。
【発明の効果】
【０００８】
本発明によると、コンテクスト情報の集計、解析及び利用に効果的な方法及びシステムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、コンテクスト情報を集計、解析及び利用するためのコンテクストプラットフォームフレームワークの一実施例を示す。
【図２】図２は、コンテクストエンジンの一実施例を示す。
【図３】図３は、ポリシーエンジンの一実施例を示す。
【図４】図４は、コンテクストエンジンの論理コンポーネント間の依存関係の一実施例を示す。
【図５】図５は、コンテクストスキーマの一実施例を示す。
【図６】図６は、本発明の環境の一実施例を示す。
【図７】図７は、コンテクスト情報が集計手段にどのように提供されるかを示す論理フローの一実施例を示す。
【図８】図８は、クライアントがどのように集計手段におけるコンテクストデータにアクセスするか示す論理フローの一実施例を示す。
【図９】図９は、クライアントがどのように解析ルールを解析手段に提供するか示す論理フローの一実施例を示す。
【図１０】図１０は、プロキシーエンジンの動作の論理フローの一実施例を示す。
【発明を実施するための形態】
【００１０】
本発明の実施例は、コンテクスト情報の集計、解析及び利用のためのコンテクストプラットフォームフレームワークを提供する。実施例では、コンテクストエンジンは、コンテクストクライアントからのセンサに固有の特性を隠し、クライアントが各種コンテクストソースにアクセスするための統一された機構を提供する。実施例では、センサは物理的センサとソフトセンサ（ソフトウェアベースのソースなど）の両方を含むかもしれない。コンテクストエンジンの集計手段は、コンテクスト情報の集計を通じてコンテクスト情報の利用者（すなわち、クライアント）からコンテクスト情報のソースを切断する。実施例では、コンテクストエンジンの解析手段が、クライアントにより認識されるようなより有用性のある性質の新たなコンテクスト情報を計算するため、集計されたコンテクスト情報を解析するかもしれない。コンテクストエンジンの実施例は、クライアントにより実行されるコンテクスト情報のアウト・オブ・バンド処理を実行する。本発明の実施例は、コンテクスト情報の取得、集計、モニタリング及び解析の連続する各タスクからコンテクストクライアントを解放し、クライアントが各自の主要なタスクに集中し、必要に応じてパワーを節約するスリープ状態に入ることを可能にする。実施例では、クライアントは、コンテクストエンジンの解析手段により使用される解析ルールを介しクライアントによりカスタマイズされるように、“コンテクスト的に重要な”イベント又は状況が生じすると、クライアントがトリガーされるかもしれない。ポリシーエンジンは、集計されたコンテクスト情報の変更、計算されたコンテクスト情報の変更及び制御ポリシールールに基づき、コンテクストプラットフォームフレームワークが実装される物理的なプラットフォームの内部において、又は周囲の環境において具体的なアクションをトリガーするかもしれない。実施例では、コンテクスト情報は、コンテクストスキーマに従ってコンテクストプラットフォームフレームワークにより格納及び処理される。他の実施例が説明及び主張されるかもしれない。
【００１１】
各種実施例は、１以上の要素又はコンポーネントを有するかもしれない。要素は、特定の処理を実行するよう構成される任意の構成を有するかもしれない。各要素は、所与の設計パラメータ又はパフォーマンス制約群に対して所望されるようなハードウェア、ソフトウェア又はこれらの何れかの組み合わせとして実現されるかもしれない。実施例は特定のトポロジーによる限定数の要素により説明されるが、所与の実現形態に対して所望されるような他のトポロジーにおけるより多くの又はより少ない要素を有するようにしてもよい。“一実施例”又は“実施例”という表現は、当該実施例に関して説明される機能、構成又は特徴が少なくとも１つの実施例に含まれることを意味することに留意すべきである。明細書の各所における“一実施例では”という表現は、そのすべてが同一の実施例を参照しているとは限らない。
【００１２】
図１は、コンテクスト情報の集計、解析及び利用のためのコンテクストプラットフォームフレームワーク１００の一実施例を示す。一実施例では、コンテクストプラットフォームフレームワーク１００は、コンテクストエンジン１０２とポリシーエンジン１０４とを有する。コンテクストプラットフォームフレームワーク１００はまた、１以上のプロバイダ１０６−１〜ｎ（ｎは任意の正の整数）、１以上のクライアント１０８−１〜ｍ（ｍは任意の正の整数）及び１以上のアクチュエータ１１０−１〜ｐ（ｐは任意の正の整数）を有する。
【００１３】
実施例では、コンテクストプラットフォームフレームワーク１００の各コンポーネントは、“使用認識不能（ｕｓａｇｅ  ａｇｎｏｓｔｉｃ）”である。プロバイダ１０６とクライアント１０８の両者は、典型的には使用領域に依存するが、フレームワーク１００の設計と実装は、フレームワーク１００が使用される使用領域に関して何れの仮定もしない。
【００１４】
ハイレベルな実施例では、物理センサ又はソフトウェアベースのソースからのコンテクストデータは、プロバイダ１０６を介しコンテクストエンジン１０２により継続的に受け付けされる。プロバイダ１０６は、プロバイダのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）１１２を介しコンテクストデータをコンテクストエンジン１０２に送信する。コンテクストエンジン１０２は、コンテクスト情報を取得、処理及び維持する。コンテクストエンジン１０２は、クライアント１０８からコンテクスト情報のソースを切断する。コンテクストエンジン１０２は、受け付けたデータを“コンテクスト”として利用し、それをクライアント１０８に利用可能にするかもしれない。実施例では、コンテクストエンジン１０２はまた、プロバイダ１０６を介し受け付けたオリジナルのコンテクスト情報より、クライアント１０８に有用な性質のさらなるコンテクスト情報を生成するため、コンテクスト情報を解析するかもしれない。クライアント１０８は、コンテクストエンジン１０２により格納及び利用されるカスタマイズされた解析ルールを供給するかもしれない。コンテクストエンジン１０２及びクライアント１０８は、コンテクストクライアントＡＰＩ１１４を介し通信する。クライアント１０８はまた、ポリシーＡＰＩ１１８を利用して、ポリシーエンジン１０４により利用されるプラットフォーム動作ポリシーを指定又は調整するかもしれない。コンテクストエンジン１０２が、図２及び４を参照して以下でより詳細に説明される。
【００１５】
コンテクストエンジン１０２はまた、ポリシーエンジン１０４と通信する。ポリシーエンジン１０４は、コンテクストエンジン１０２の特化したクライアントとしてみなされるかもしれない。ポリシーエンジン１０４は、集計されたコンテクスト情報の変更、計算されたコンテクスト情報の変更及び制御ポリシールールに基づき、コンテクストプラットフォームフレームワーク１００が実現される物理的なプラットフォームの内部で、又はそれの周囲の環境において具体的なアクションをトリガーする。クライアント１０８は、ポリシーエンジン１０４により格納及び利用されるカスタマイズされた制御ポリシールールを提供するかもしれない。ポリシーエンジン１０４が、図３を参照して以下でより詳細に説明される。ポリシーエンジン１０４は、アクチュエータＡＰＩ１１６を介しアクチュエータ１１０に制御コマンド及びデータを送信する。アクチュエータ１１０は、装置及びそれの周囲の環境の内部のハードウェア及びソフトウェアコンポーネントを制御することが可能である。
【００１６】
実施例では、コンテクスト情報は、コンテクストスキーマに従ってコンテクストプラットフォームフレームワーク１００により格納及び処理される。コンテクストスキーマは、コンテクスト情報の基本要素を表すクラス及び関連付けから構成される。スキーマクラスは、コンテクストエンジン１０２において行われる処理アクションの基礎を形成する。コンテクストスキーマのメインクラスは、コンテクスト識別子、コンテクストアイテム、コンテクストグループ及びコンテクストデータを含む。
【００１７】
スキーマのコンテクスト識別子は、特定タイプのコンテクスト情報（“温度”タイプなど）を表す。コンテクストエンジン１０２は、同時に複数タイプのコンテクスト情報を維持及び処理するかもしれない。クライアント１０８は、コンテクスト識別子オブジェクトを指定することによって、コンテクストアイテムをリクエストするかもしれない。
【００１８】
スキーマの各コンテクストアイテムは、コンテクスト識別子に対応するコンテクスト情報のサンプル（温度の読み出しなど）を表す。典型的には、コンテクストエンジン１０２は、特定のコンテクスト識別子について複数のコンテクストアイテムオブジェクトを維持する。コンテクストクライアントＡＰＩ１１４は、クライアント１０８がコンテクストエンジン１０２からのコンテクストアイテムオブジェクトにアクセスすることを可能にする。
【００１９】
スキーマのコンテクストグループは、１以上のコンテクスト識別子のグループを表す。クライアント１０８は、コンテクストグループオブジェクトを指定することによって、コンテクストアイテム群をリクエストするかもしれない。
【００２０】
スキーマのコンテクストデータは、コンテクストアイテムの１つの値を表す。いくつかのケースでは、コンテクストアイテムは、同時に複数の有効な値を有することが許容される。従って、値の表現はこのクラスでは抽象化される。スキーマにおける上記及び他の可能なクラスが、図５を参照して以下でより詳細に説明される。図１の各要素又はコンポーネントが、次により詳細に説明される。
【００２１】
各種実施例では、コンテクストプラットフォームフレームワーク１００は、無線システム、有線システム又は両者の組み合わせとして実現されるかもしれない。無線システムとして実現されるとき、フレームワーク１００は、１以上のアンテナ、送信機、受信機、送受信機、アンプ、フィルタ、制御ロジックなど、無線共有メディアを介し通信するのに適したコンポーネント及びインタフェースを有するかもしれない。無線共有メディアの具体例として、ＲＦスペクトルなどの無線スペクトルの各部分を有するかもしれない。有線システムとして実現されるとき、フレームワーク１００は、入出力（Ｉ／Ｏ）アダプタ、Ｉ／Ｏアダプタと対応する有線通信媒体とを接続する物理的なコネクタ、ネットワークインタフェースカード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラなど、有線通信媒体を介し通信するのに適したコンポーネント及びインタフェースを有するかもしれない。有線通信媒体の具体例として、配線、ケーブル、メタルリード、プリント回路ボード（ＰＣＢ）、バックプレーン、スイッチ網、半導体物質、ツイストペアワイヤ、同軸ケーブル、光ファイバなどがあげられる。
【００２２】
実施例では、プロバイダ１０６は、“コンテクスト”として使用されるデータを集計し、プロバイダＡＰＩ１１２を介しコンテクストエンジン１０２にデータを提供することが可能な何れかのタイプのエンティティ（ソフトウェア、ハードウェア又はハードウェアとソフトウェアの組み合わせ）であるかもしれない。リアルタイムのデータが、プロバイダ１０６を介し連続的に集計されるかもしれない。プロバイダ１０６はまた、フラッシュメモリなどの集積されたロングタームストレージを介しリアルタイムデータを格納し、以降に当該データをコンテクストエンジン１０２に送信するよう構成されるかもしれない。集積されたロングタームストレージは、エンジン１０２との現在利用可能な接続がない場合、集計されたデータの何れも失われないことを確実にするのに役立つ。
【００２３】
限定することなく具体例として、プロバイダ１０６は、プラットフォームセンサ（バッテリチャージ、アクティブラジオなど）、環境センサ（ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）技術を介した位置情報、湿度、近傍の危険、近傍の装置など）、心理センサなどの物理的性質のセンサを搭載してもよい。心理センサは、心臓血管特性（心拍変動、ＥＣＧ振幅、ＳＴセグメント解析、ＱＴインターバルなど）の広範なアレイを測定するＥＣＧと、酸化レベルを測定するパルスオキシメータユニットと、活動レベル及び方向を測定する多軸加速時計と、温度レベルを測定する温度センサと、電気皮膚反応を測定するユニットと、血圧をモニタするパルス波速度モニタと、血糖値を測定する最小侵襲又は非侵襲グルコメトリ（ｇｌｕｃｏｍｅｔｒｙ）モニタユニットと、肺活量を測定するユニットと、呼吸数を測定するユニットと、発話特性（音量、ストレスに係る発話の特性、発話リズム、遅延、ポーズの長さ、音声的な区別、ワード転置、発話韻律、これら発話特性の影響及び変動の示唆を含む）を測定するユニットと、タイピングスピード及びエラーを測定するユニットと、ホルモンレベルを測定するユニットと（ＥＭＧ装置など）、カロリー消費を測定するユニットと、温度レベルを測定するユニットと、筋肉の緊張（コルチゾールなど）を測定するユニットなどの１以上を有するかもしれない。
【００２４】
限定することなく具体例として、プロバイダ１０６は、各種“ソフトソース”（ソフトウェアソースなど）からデータを取得する手段を有するかもしれない。実施例では、ソフトウェアソースは、アプリケーションにおいて格納されているコンテクスト情報（ユーザの次のアポイントメント、必要とされるラジオタイプ、所望される表示解像度など）の検知、オペレーティングシステムなどにおける動的なコンテクスト情報（メモリ利用、ＣＰＵロードなど）の検知、インターネットなどのエンティティにおいて利用可能なコンテクスト情報（トラフィック状態、気象状態、買い物など）の検知、ユーザの嗜好（利用履歴など）の検知などを含むかもしれない。
【００２５】
実施例では、プロバイダ１０６は、以下の責任の１以上を有するかもしれない。すなわち、コンテクストエンジン１０２からセンサの特性及びそれらのやりとりの詳細を隠し、必要に応じて、有用なコンテクスト情報を抽出するため未処理のセンサデータを処理し、要求されると、コンテクスト情報をコンテクストエンジン１０２に提供し、イベント通知機構を利用して非同期的にコンテクスト情報をコンテクストエンジン１０２に提供し、対応するコンテクスト識別子が使用されていないとき、センサ及び関連するシステムコンポーネントを低電力モードにし、コンテクストエンジン１０２により指定されるようにプロバイダＡＰＩ１１２に従うかもしれない。
【００２６】
コンテクストエンジン１０２は、プロバイダ１０６及び関連する外部コンポーネント（プロバイダインストーラなど）とのやりとりを管理するため、インタフェース群を備えている。このインタフェース群は、ここではプロバイダＡＰＩ１１２として参照される。実施例では、プロバイダＡＰＩ１１２は、以下の機能の１以上をサポートするかもしれない。すなわち、新たなプロバイダをコンテクストエンジン１０２に動的に関連付け、コンテクストエンジン１０２から既存のプロバイダを動的に切り離し、１以上のコンテクスト識別子の詳細な情報をプロバイダからコンテクストエンジン１０２に転送し、コンテクストエンジン１０２から同期的なコールを実行し（コンテクストアイテムオブジェクトをリクエストするコールなど）、プロバイダ１０６からコンテクストエンジン１０２に通知を実行し（コンテクスト識別子に対応する更新されたコンテクストアイテムが利用可能であることを示す通知など）、コンテクストエンジン１０２からプロバイダ１０６にコマンドを実行する（１以上のコンテクスト識別子のコンテクストアイテムをプロバイダが調達することを可能／不可にすることをリクエストするコマンドなど）などをサポートするかもしれない。
【００２７】
実施例では、プロバイダＡＰＩ１１２は、プロバイダ１０６がコンテクストアクセスルールを指定することを可能にする。コンテクストアクセスルールは、特定のコンテクスト情報へのアクセスを特定のクライアント１０８のクラスに制限するかもしれない。コンテクストエンジン１０２は、コンテクストアクセスルールを実行する。この機構は、クライアント１０８が公衆に利用可能であるか、又は特定のクライアント又はクライアントクラスによるアクセスについて許可されているコンテクスト情報の一部へのアクセスを取得可能であることを保証する。実施例では、アクセス制限は、ドメインに固有のものであり、装置に予め設定されるか、又はコンテクストアクセスルールを介し動的に指定若しくは編集されるかもしれない。これは、コンテクストプラットフォームフレームワーク１００がどのようにモジュールとなるか、それのコンポーネントがどのように動的にロード可能であるかの具体例である。
【００２８】
限定することなく具体例として、クライアントが患者情報を格納し、それへのアクセスを提供する病院におけるアプリケーションであることを仮定する。このような情報は、患者課金情報、患者の現在の病状及び患者の履歴若しくは過去の医療情報を含むかもしれない。ここでは、プロバイダは何れのタイプの病院スタッフが異なるタイプの患者情報にアクセス可能であるかに関するコンテクストアクセスルールをエンジン１０２に提供するかもしれない。例えば、１つのコンテクストアクセスルールは、病院管理者を患者課金情報に制限するかもしれない。他のコンテクストアクセスルールは、患者の看護士を患者の現在の医療情報に制限し、他のコンテクストアクセスルールは、患者の医師が患者の現在及び過去の医療情報にアクセスすることを許可するかもしれない。
【００２９】
実施例では、クライアント１０８は、コンテクスト情報を利用可能な任意のアプリケーション（ユーザインタフェースを備えた又は備えていない）であるかもしれない。クライアント１０８は、コンテクストクライアントＡＰＩ１１４を介しコンテクストエンジン１０２とやりとりする。クライアント１０８は、コンテクストエンジン１０２とやりとりする際、クライアントＡＰＩ１１４に従う責任がある。クライアント１０８はまた、オペレーティングシステム、プラットフォームユーティリティ、プラットフォームツール、ミドルウェアライブラリ、コンテクスト情報を利用して他のモジュールに付加価値サービスを提供する“中間的な”ソフトウェアモジュールなどの他のソフトウェアコンポーネントであるかもしれない。実施例では、クライアント１０８の大多数は、典型的には、ドメインに固有のものである。
【００３０】
クライアント１０８は、各種方法によりコンテクストエンジン１０２を介し生成されたコンテクスト情報にクライアントＡＰＩ１１４を介しアクセスするかもしれない。例えば、クライアント１０８は、同期的及び／又は非同期的なイベントを介しコンテクスト情報にアクセスするかもしれない。同期的なイベントによると、クライアント１０８は、必要に応じてコンテクストエンジン１０２から情報をリクエスト及び受け取る。非同期的なイベントによると、クライアント１０８は、利用可能になると、又は特定の状態が充足されると、更新されたコンテクスト情報の送信をリクエストする。ここでは、コンテクストエンジン１０２は、通知イベントを適切なクライアントに送信するかもしれない。
【００３１】
コンテクストエンジン１０２は、クライアント１０８及び関連する外部コンポーネントとのやりとりを管理するため、インタフェース群を備える。このインタフェース群は、ここではコンテクストクライアントＡＰＩ１１４として参照される。実施例では、コンテクストクライアントＡＰＩ１１４は、以下の機能の１以上をサポートするかもしれない。すなわち、１以上のコンテクスト識別子の利用性をチェックし、新たなコンテクストグループをそれらのメンバーのコンテクスト識別子を指定することにより規定し、コンテクスト識別子及びコンテクストグループに関する詳細にアクセスし、コンテクスト識別子に対応するコンテクストアイテムにアクセスし、コンテクストグループに対応するコンテクストアイテムにアクセスし、時間及び／又は場所に対応するコンテクストアイテムにアクセスし、解析ルールを指定及び編集するなどの機能の１以上をサポートするかもしれない。
【００３２】
実施例では、コンテクストクライアントＡＰＩ１１４は、クライアントの認証とコンテクスト情報への制御されたアクセスを実行する。この機構は、クライアント１０８がすべてのクライアントに公衆に利用可能であるか、又は特定のクライアント又はクライアントのクラスによるアクセスが許可されているコンテクストアイテムへのアクセスしか取得できないことを保証することに役立つ。実施例では、コンテクストエンジン１０２により利用されるアクセスポリシーは、コンテクスト識別子のレベルにおいて、また個々のコンテクストアイテムに対するアクセス許可を指定する。
【００３３】
実施例では、クライアント１０８はまた、ポリシーＡＰＩ１１８を利用して、ポリシーエンジン１０４により利用されるプラットフォーム動作ポリシーを指定又は調整するかもしれない。クライアント１０８は、ポリシーエンジン１０４とやりとりすると、ポリシーＡＰＩ１１８に従う責任がある。実施例では、ポリシーＡＰＩ１１８は、ポリシーエンジン１０４におけるプラットフォームポリシーを指定及び編集する機能をサポートするかもしれない。
【００３４】
アクチュエータ１１０は、コンテクストプラットフォームフレームワーク１００及びその周辺環境の内部のハードウェア及びソフトウェアコンポーネントを制御可能である。限定することなく具体例として、アクチュエータ１１０は、コンテクストアウェア装置の各機能を操作し、コンピュータスクリーンの解像度を変更し、電子機器（サーモスタット、照明器具など）を操作し、ユーザインタフェースモダリティの間のスイッチを行い、待機している医師を呼び出すなどするためのハードウェアコンポーネントを制御するかもしれない。
【００３５】
コンテクストプラットフォームフレームワーク１００は、ポリシーエンジン１０４とアクチュエータ１１０との間のやりとりのためのインタフェース群を備える。このインタフェース群は、ここではアクチュエータＡＰＩ１１６として参照される。
【００３６】
プロバイダＡＰＩ１１２、クライアントＡＰＩ１１４、アクチュエータＡＰＩ１１６及びポリシーＡＰＩ１１８のすべては、各種機構を介し実現されるかもしれない。実施例では、これら各種機構は、標準的な言語（Ｃ＋＋など）、管理された言語（Ｊａｖａ（登録商標）など）及びウェブサービスなどのプロトコルベース機構の１以上を含むかもしれない。
【００３７】
図２を参照するに、コンテクストエンジン１０２の実施例が示される。コンテクストエンジン１０２は、コンテクスト情報を取得、処理及び維持する。コンテクストエンジン１０２は、集計手段２０２と、解析手段２０４と、コンテクストデータベース２０６と、解析手段ルールデータベース２０８とを有するかもしれない。これらの各コンポーネントが、以下でより詳細に説明される。
【００３８】
実施例では、集計手段２０２は、各種ソース（プロバイダ１０６、解析手段２０４など）から受け付けたコンテクスト情報を維持し、コンテクスト情報に係るアクセスポリシーを実行し、コンテクスト情報をクライアント１０８に供給し、コンテクスト情報を解析手段２０４に供給し、クライアントにより指定されたコンテクスト識別子のグループを管理するなどのタスクを実行するかもしれない。コンテクストエンジン１０２の実行例は、集計手段２０２の１つまでのインスタンスを含むかもしれない。
【００３９】
集計手段２０２は、プロバイダ１０６からコンテクスト情報を受け取る。集計手段２０２はまた、解析手段２０４により計算されるコンテクスト情報を受け取ることができる。集計手段２０２は、コンテクスト情報を集計し、コンテクストデータベース２０６に格納する。集計手段２０２又はコンテクストデータベース２０６は、コンテクストキャッシング機構を利用して、集計手段２０２がデータを迅速に抽出することを可能にするかもしれない。コンテクストキャッシング基準は、各種タイプを有するかもしれない。例えば、コンテクストキャッシング基準は、最近にアクセスされたキャッシュアイテム、最近のｎ個のキャッシュアイテム、最近１時間に受け付けされたキャッシュアイテムなどの１以上を含むかもしれない。コンテクストキャッシング基準の１以上が、同時に使用されるかもしれない。集計手段２０２は、コンテクスト情報のソースをクライアント１０８から切断する。
【００４０】
実施例では、集計手段２０２は、受け付け時に、すべてのコンテクストアイテムオブジェクトとタイムスタンプリファレンス及び位置スタンプリファレンスを関連付ける。クライアント１０８は、タイムスタンプフィルタ及び／又は位置フィルタを指定することによって、コンテクストクライアントＡＰＩ１１４を介し具体的なコンテクストアイテムにアクセスするかもしれない。この機構は、コンテクストアクセスのタイムシフトモードと位置シフトモードをもたらす。ここで、クライアント１０８は、異なる時間及び／又は位置に適用可能なコンテクスト情報（例えば、これから３ヶ月間の特定の都市の気象予報など）をリクエストするかもしれない。
【００４１】
実施例では、集計手段２０２により利用されるコンテクストグループ定義は、通常はドメインに固有のものである。コンテクストグループ定義は、コンテクストアウェア装置の構築時に構成されるかもしれない。他の実施例は、クライアント１０８がコンテクストグループ定義を実行中に動的に指定及び変更することを可能にする。クライアント１０８は、各アイテムとして又は複数のアイテムの集合として格納されるコンテクスト情報にアクセスするかもしれない。
【００４２】
上述されるように、一部の実施例は、クライアント１０８がコンテクストグループ定義を実行中に動的に指定及び変更することを可能にする。具体例は、本発明を限定するものでないが、コンテクストデータベース２０６に格納されているコンテクストスキーマの複数のコンテクスト識別子に関するものであるかもしれない。これらの一例となるコンテクスト識別子はそれぞれ、“明るさ状態”、“湿度”などを含む天候の状態に関するものであるかもしれない。クライアント１０８は、コンテクストアイテムグループを規定し、それを“天候”と呼ぶかもしれない。ここで、“天候”のカスタマイズされたコンテクストアイテムグループは、“明るさ状態”、“湿度”などの関連する気象データを含むコンテクストデータベース２０６に格納されているすべてのコンテクスト識別子を含むかもしれない。
【００４３】
実施例では、解析手段２０４は、クライアント１０８の制御の下で解析ルールを受付及び維持し、集計手段２０２に維持されるコンテクスト情報をモニタし、コンテクストアクセスルールに固有の入力状態に遭遇すると解析ルールを実行し、集計手段２０２がリクエストすると解析ルールを実行し、解析ルールの実行前に集計手段２０２から要求されたコンテクスト情報を取得し、解析ルールにより計算された新たなコンテクスト情報を集計手段２０２に送信するなどのタスクを実行するかもしれない。
【００４４】
実施例では、コンテクストエンジン１０２の実行例は、１つまでの解析手段２０４のインスタンスを含むかもしれない。実施例では、解析手段２０４は常にアクティブ状態であるか、あるいはクライアント１０８の１つが解析手段の機能を要求すると動的にロードされるようにしてもよい。解析手段２０４が動的にロードされると、解析手段２０４に係る必要なすべての接続がまた動的にアクティブ化される。解析手段２０４は、部分的に集計手段２０２に依存し、これら２つの間のインタフェースは解析手段２０３の動的なロード及びアンロードを可能にする。これは、どのようにしてコンテクストプラットフォームフレームワーク１００がモジュールとなり、それのコンポーネントが動的にロード可能となるかの一例である。
【００４５】
実施例では、解析手段２０４は、プロバイダ１０６から受け付けたオリジナルのコンテクスト情報よりもクライアント１０８に有用な新たなコンテクスト情報を計算するため、コンテクスト情報を解析するかもしれない。この解析は、閾値処理、パターン検出、推論、信号処理、過去の相関などの複数の形態をとりうる。従って、解析手段２０４（及び一般にはコンテクストエンジン１０２）は、“スマートエンジン”として動作し、コンテクスト情報を解析を実行するのに役立つ人工知能（ＡＩ）技術の１以上の特徴を含むかもしれない。
【００４６】
実施例では、解析手段２０４は、クライアント１０８により供給される解析ルールを利用して、さらなるコンテクスト情報を生成するため、コンテクスト情報を解析する。解析アルゴリズムは、構築時には装置設定者により、又は実行時にはクライアント１０８により供給されるかもしれない。解析アルゴリズムは、解析手段ルールデータベース２０８及びそれに係るキャッシュに格納されるかもしれない。計算されたコンテクスト情報は、クライアント１０８又は解析手段２０４による格納及びさらなるアクセスのため、集計手段２０２に送信される。
【００４７】
例えば限定されるものでないが、解析手段２０４は、２つのモードの解析アルゴリズムをサポートするかもしれない。１つのモードの解析アルゴリズムは、エクスパートシステムにおいて周知であるようなスクリプトベース解析ルールをサポートするかもしれない。他のモードの解析アルゴリズムは、バイナリ形式により供給される予めコンパイルされたルールを含むかもしれない。実施例では、解析ルールは、典型的には、利用ドメインに依存する。
【００４８】
コンテクストエンジン１０２の実施例は、解析手段２０４に典型的にはクライアント１０８により実行される解析を実行させることによって、コンテクスト情報のアウト・オブ・バンド解析を提供する。クライアント１０８は、コンテクスト情報の取得、集計、モニタリング及び解析の持続的なタスクから解放される。これは、クライアント１０８が各自の主要なタスクに集中し、又は必要に応じてスリープ状態に入ることを可能にする。実施例では、解析手段２０４により利用される解析ルールを介しクライアント１０８によりカスタマイズされるように、“コンテクストに重大な”イベント又は状況が発生した場合に限って、クライアント１０８がトリガーされる。図４を参照して、集計手段２０２と解析手段２０４の論理コンポーネントの間の依存性の実施例が以下で説明される。
【００４９】
上述されるように、コンテクストエンジン１０２はまた、ポリシーエンジン１０４と通信する。図３を参照するに、ポリシーエンジン１０４の実施例が示される。ポリシーエンジン１０４は、コントローラ３０２とポリシーデータベース３０４とを有するかもしれない。コントローラ３０２は、集計されたコンテクスト情報、計算されたコンテクスト情報及びポリシーデータベース３０４に格納されている制御ポリシールールに基づき、コンテクストプラットフォームフレームワーク１００が実装される物理的なプラットフォーム及び／又はそれの周囲の環境の内部の具体的なアクションをトリガーする責任がある。コントローラ３０２は、アクチュエータＡＰＩ１１６を介し制御コマンド及びデータをアクチュエータ１１０に送信する。アクチュエータ１１０は、コンテクストプラットフォームフレームワーク１００が実装される物理的なプラットフォーム及び／又はそれの周囲の環境の内部のハードウェア及びソフトウェアコンポーネントを制御することが可能である。
【００５０】
上述されるように、クライアント１０８は、具体的なドメイン要求を充足するため、コンテクストエンジン１０２により処理されるコンテクスト情報の多数の特徴をカスタマイズするかもしれない。例えば、クライアント１０８は、特定のアプリケーションに関連する１以上の制御ポリシールールをポリシーエンジン１０４に提供するかもしれない。これらカスタマイズされた制御ポリシールールは、制御ポリシールールセットに含まれるかもしれない。
【００５１】
実施例では、ポリシーエンジン１０４は、“スマートエンジン”として動作し、集計されるコンテクスト情報、計算されたコンテクスト情報及びポリシーデータベース３０４に格納されている制御ポリシールールに基づき、コンテクストプラットフォームフレームワーク１００が実装される物理的なプラットフォーム及び／又はそれの周辺環境の内部の具体的なアクションをトリガーするのに役立つ人工知能（ＡＩ）機能を有するかもしれない。
【００５２】
実施例では、ポリシーエンジン１０４は常にアクティブ状態であるか、又はそれの機能が要求されると動的にロードされるかもしれない。ポリシーエンジン１０４が動的にロードされると、ポリシーエンジン１０４に係る必要なすべての接続がまた動的にアクティブ化される。これは、どのようにしてコンテクストプラットフォームフレームワーク１００がモジュールとなり、それのコンポーネントが動的にロード可能であるかの一例である。
【００５３】
図４は、コンテクストエンジン１０２の論理コンポーネント又はパッケージの間の依存関係の一実施例を示す。実施例では、“依存関係（ｄｅｐｅｎｄｅｎｃｙ）”という用語は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）により定義されるように使用される。図４を参照するに、集計手段２０２は、コンテクスト集計手段４０２と、アクセスポリシー実行手段４０４と、アクセスポリシーストア４０６と、プロバイダハンドラ４０８と、コンテクストストア４１０と、コンテクストスキーマの各論理コンポーネントを有するかもしれない。解析手段２０４は、コンテクスト解析手段４１４と、解析ルールアクセス４１６と、解析ルールストア４１８と、スクリプトベースルール４２０と、バイナリ形式により供給される予めコンパイルされたルール４２２の論理コンポーネントを有するかもしれない。図４の有向矢印は、本発明の一実施例による論理コンポーネントの間の依存関係を示す。
【００５４】
例えば、図４を参照するに、プロバイダハンドラ４０８とコンテクスト解析手段４１４とは、コンテクストレポジトリに新たなコンテクスト情報を追加するため、コンテクスト集計手段４０２に依存する。コンテクスト集計手段４０２は、データベースの格納及び抽出機能を利用するため、コンテクストストア４１０に依存する。
【００５５】
コンテクストスキーマ４１２は、コンテクスト情報の基本要素を表すクラス及び関連付けから構成される。スキーマクラスは、コンテクストエンジン１０２において実行される処理アクションの基礎を形成する。コンテクストスキーマのメインクラスは、コンテクスト識別子と、コンテクストアイテムと、コンテクストグループとコンテクストデータとを含む。図５を参照して、コンテクストスキーマの実施例が以下でより詳細に説明される。図４に示されるすべてのコンポーネントがコンテクストスキーマ４１２に依存し又は利用することに留意することが重要である。
【００５６】
実施例では、コンテクストストア４１０は、コンテクストエンジン１０２におけるその他の論理コンポーネントによる効率的なアクセスのため、コンテクスト情報のインメモリインスタンス（キャッシュなど）を維持する。ここで、最近使用された及び頻繁に使用されたコンテクスト情報は、典型的には、キャッシュに維持される。コンテクストストア４１０は、本発明の実施例はこれに限定されないが、典型的には、コンテクスト情報を格納するため不揮発性ストレージ機構（リレーショナルデータベース（ＲＤＢＭＳ）エンジンなど）を利用することが予期される。例えば、不揮発性ストレージがコンテクストエンジン１０２により必要とされない例が存在しうる。
【００５７】
アクセスポリシーストア１０８とアクセスポリシー実行手段４０４とは、コンテクスト情報に対するクライアント１０８のリクエストを実現する責任がある。実施例では、主要な責任は、コンテクスト情報をクライアント１０８に利用可能にし、コンテクスト情報を開示しながらクライアントレベルのアクセス制限を実行し、クライアント毎の通知リクエストを維持し、リクエストされたコンテクストアイテムが利用可能になると通知を送信することを含むかもしれない。
【００５８】
プロバイダハンドラ４０８は、プロバイダＡＰＩ１１２を介しプロバイダ１０６とやりとりし、コンテクストエンジン１０２により使用されるコンテクスト情報を受け取る。
【００５９】
解析ルールアクセス４１６は、クライアント１０８がコンテクストエンジン１０２における解析ルールを管理することを可能にする。ここで、クライアント１０８は、以下に限定されるものでないが、追加、削除、アクティブ化などを含む解析ルールに対する各種処理を実行するかもしれない。
【００６０】
コンテクスト解析手段４１４は、新たなコンテクストアイテムがコンテクストストア４１０において利用可能になると、０以上の解析ルールを実行するかもしれない。解析ルールストア４１８は、すべての解析ルールが維持されるレポジトリを表す。スクリプトベースルール４２０及び／又はバイナリ形式の予めコンパイルされたルール４２２は、コンテクスト解析手段４１４によりサポートされる解析ルールの可能な２つのタイプのカテゴリである。
【００６１】
図５を参照して、コンテクストスキーマ５００の実施例が以下でより詳細に説明される。実施例では、図５のすべてのアイコンは、ＵＬＭにより定義されている。図５を参照するに、コンテクストスキーマ５００は、コンテクストグループ５０２、コンテクスト識別子５０４、コンテクストアイテム５０６及びコンテクストデータ５０８のクラスを含むかもしれない。図５に示される一例となるコンテクストスキーマ５００は、１つの可能なスキーマであり、本発明を限定するものでない。
【００６２】
コンテクストグループ５０２は、１以上のコンテクスト識別子５０４の集合を表す。コンテクスト識別子５０４は、あるタイプのコンテクスト情報（“温度”タイプなど）を表す。コンテクストアイテム５０６は、それぞれコンテクスト識別子５０４に対応するコンテクスト情報（読み取った温度など）のインスタンスを表す。典型的には、コンテクストエンジン１０２は、あるコンテクスト識別子５０４について複数のコンテクストアイテム５０６を維持する。コンテクストデータ５０８は、コンテクストアイテム５０６の１つの値を表す。一部のケースでは、コンテクストアイテム５０６は、同時に複数の有効な値を有することが許容される。従って、値の表現がこのクラスから抽象化されるかもしれない。各クラスが以下においてより詳細に説明される。
【００６３】
コンテクスト識別子５０４は、コンテクストエンジンにおけるコンテクストタイプのコア表現である。一般に、コンテクスト識別子５０４は、それの値をどのように表現及び解釈するかを含む、コンテクストタイプの特性を指定する。さらなるコンテクストタイプの特性の表現が可能であり、本発明の実施例により想定される。実施例では、クライアント１０８は、コンテクスト識別子５０４を指定することによって、コンテクストアイテム５０６にアクセス又は要求する。コンテクストアイテム５０６にアクセスする他の間接的な機構がまた可能であり、本発明の実施例により想定される。
【００６４】
実施例では、新たなコンテクスト識別子が各種ソースにより供給されるかもしれない。１つのソースはプロバイダ１０６を介したものである。ここで、プロバイダの登録処理の一部として、プロバイダは、提供可能なすべてのコンテクスト識別子の定義を供給する。新たなコンテクスト識別子の他のソースは、クライアント１０８を介したものである。ここで、クライアントは、新たなコンテクスト解析ルールを指定する一部として新たなコンテクスト識別子を定義するかもしれない。
【００６５】
コンテクストエンジン１０２は、それが知っているすべてのコンテクスト識別子５０４のリストを維持するかもしれない。新たなコンテクスト識別子５０４がプロバイダ１０６から受け取られると、新たなコンテクスト識別子が既知のコンテクスト識別子に対してチェックされる。同様に、解析手段２０４は、新たな解析手段ルール（スクリプトベースルールなど）を追加する際、新たなコンテクスト識別子を指定するかもしれない。
【００６６】
図５を参照するに、コンテクスト識別子５０４の実施例は、コンテクスト名、説明、バリュースキーマ及びマルチバリューの４つの主要な属性を有するかもしれない。さらに、実施例では、コンテクスト識別子５０４は、図に示される関連付けに対応するメンバー属性を有する。以下のテーブル１は、主要な属性の可能な説明を示す。
【００６７】
【表１】
2014053043.tif 000003
コンテクストグループ５０２は、２以上のコンテクスト識別子５０４の集合を表す。この集合は、それが生成されるドメインにおいて通常意味がある。コンテクストグループ５０２は、任意の時点でコンテクストエンジン１０２に追加又は削除されるかもしれない。実施例では、クライアント１０８は、コンテクストエンジン１０２のコンテクストグループ５０２のオブジェクトを動的に追加及び削除するかもしれない。しかしながら、典型的には、コンテクストグループは特定の使用ドメインにおいて装置の配置時に生成される。
【００６８】
実施例では、グループメンバーが参照され、これは、コンテクストグループ５０２を構成するコンテクスト識別子５０４が存在し、コンテクストグループの削除がコンテクストエンジン１０２からメンバーコンテクスト識別子を削除しないことを意味する。
【００６９】
コンテクスト識別子５０４は、複数のコンテクストグループ５０２のメンバーであるかもしれない（すなわち、参照されるかもしれない）。コンテクストグループ５０２は、他のコンテクストグループを含むかもしれない（非循環的な関係のみ）。また、コンテクストグループ５０２は、複数の他のコンテクストグループ５０２の一部であるかもしれない。
【００７０】
図５を参照するに、コンテクストグループ５０２の実施例は、グループ名と説明の２つの主要な属性を有するかもしれない。さらに、実施例では、コンテクストグループ５０２は、図に示される関連付けに対応するメンバー属性を有する。以下のテーブル２は、主要な属性に対する可能な説明を示す。
【００７１】
【表２】
2014053043.tif 000004
コンテクストアイテム５０６は、コンテクスト識別子５０４に対応するコンテクスト情報の具体的なサンプルを示す。一部のコンテクストタイプのケースでは、コンテクストアイテムオブジェクトは、同時に複数の有効な値を有するかもしれない。従って、コンテクストアイテムクラスの値の表現は、独立したクラスのコンテクストデータ５０８に抽象化されるかもしれない。
【００７２】
図５を参照するに、コンテクストアイテム５０６の実施例は３つの主要な属性、プロジェクトされているか？、位置及び時間を有するかもしれない。さらに、実施例では、コンテクストアイテム５０６は、図に示される関連付けに対応するメンバー属性を有する。以下のテーブル３は、主要な属性に対する可能な説明を示す。
【００７３】
【表３】
2014053043.tif 000005
コンテクストデータ５０８は、コンテクストアイテム５０６の１つの値を表す。一部の実施例では、コンテクストアイテムは、同時に複数の有効な値を有することが許容される。従って、値の表現はこのクラスで抽象化される。コンテクスト識別子５０４は、それの対応するコンテクストアイテム５０６がおそらく同時に複数の有効な値を有することが可能であるか示す。実施例では、複数の値の可能性は、ブール属性“マルチバリュー”のクラスのコンテクスト識別子５０４によりフラグ表示される。
【００７４】
図５を参照するに、コンテクストデータ５０８の実施例は３つの主要な属性、バリュー、有効期間及び確実性を有するかもしれない。以下のテーブル４は、これらの属性の可能な説明を示す。
【００７５】
【表４】
2014053043.tif 000006
一実施例では、コンテクストエンジン１０２及び／又はポリシーエンジン１０４が、ここに記載される本発明の機能を実行可能な任意のモバイル装置に含まれるかもしれない。エンジン１０２及び／又は１０４は、有線通信システム、無線通信システム又はこれらの組み合わせの一部として実現可能である。一実施例では、例えば、エンジン１０２及び／又は１０４は無線機能を有するモバイル計算装置として実現可能である。モバイル計算装置は、例えば、１以上のバッテリなどのモバイル電源と処理システムとを有する任意の装置を表す。他の実施例では、コンテクストプラットフォームフレームワーク１００（コンテクストエンジン１０２及び／又はポリシーエンジン１０４）はまた、デスクトップＰＣ、バックエンドサーバなどの固定的な計算装置に配備されるかもしれない。
【００７６】
本発明の機能を有するよう構成されるモバイル計算装置の実施例は、ラップトップコンピュータ、ウルトララップトップコンピュータ、ポータブルコンピュータ、携帯コンピュータ、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、携帯電話とＰＤＡの組み合わせ、スマートフォン、ページャ、一方向ページャ、双方向ページャ、メッセージング装置、データ通信装置などを含む。
【００７７】
このようなモバイル計算装置の具体例として、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、眼鏡コンピュータ、ベルトチップコンピュータ、アームバンドコンピュータ、シューズコンピュータ、クロージングコンピュータ、他の装着可能なコンピュータなどの人が装着するよう構成されるコンピュータなどがあげられる。
【００７８】
図６において、本発明の実施例のより詳細な説明が示される。図６を参照するに、装置６００は、ハウジング６０２と、ディスプレイ６０４と、１以上の入出力装置６０６と、１以上のセンサ６０７と、アンテナ６０８と、ナビゲーションボタン６１０と、コンテクストエンジン１０２と、ポリシーエンジン１０４とを有するかもしれない。
【００７９】
コンテクストエンジン１０２及び／又はポリシーエンジン１０４は、直接的に装置６００に統合されるか、又は接続（有線、無線又はこれらの組み合わせなど）を介し装置６００に接続されてもよい。エンジン１０２及び１０４の機能は、ここでは２つのコンポーネントに分離されると示されるが、これは本発明を限定するものでないことに留意されたい。実際、この機能は、１つのコンポーネントに合成されてもよく、又は３以上のコンポーネントに分離されてもよい。図６の各コンポーネントが、以下でより詳細に説明される。
【００８０】
ハウジング６０２は、何れか適切なハウジングから構成可能であるが、典型的には、装置６００が容易に可搬となるようＳＦＦ（Ｓｍａｌｌ  Ｆｏｒｍ  Ｆａｃｔｏｒ）に関するものとされる。ディスプレイ６０４は、エンジン１０２及び／又は１０４の機能に適した情報を表示するための何れか適切な表示ユニットから構成されてもよい。ディスプレイ６０４が、本発明の実施例により使用され、カスタマイズされた制御ポリシールール（上述されるような）などの装置６００への入力を支援する。
【００８１】
Ｉ／Ｏ装置６０６は、装置６００に情報を入力し、装置６００から情報を受け取るための何れか適切なＩ／Ｏ装置から構成されるかもしれない。ここで、Ｉ／Ｏ装置は、プロバイダ１０６からのデータを入力し、コンテクスト情報をクライアント１０８に送信し、カスタマイズされた制御ポリシールールをポリシーエンジン１０４及び解析手段２０４に入力するなどのために利用されるかもしれない。Ｉ／Ｏ装置６０６の具体例として、タッチ画面インタフェース、アイコン選択を備えたシンプルなメニュー、装置のジェスチャによる操作、適切な英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロフォン、スピーカー、音声認識装置及びソフトウェアと共に、上述した心理検知のすべてなどがあげられる。情報はマイクロフォンを開始装置６００に入力される。このような情報は、音声認識装置によりデジタル化されるかもしれない。実施例はこれに限定されない。
【００８２】
センサ６０７は、コンテクストエンジン１０２に利用されるコンテクスト情報を集計するのに適したセンサから構成されるかもしれない。センサ６０７の具体例として、図１を参照して上述されたセンサの１以上があげられる。
【００８３】
アンテナ６０８は、本発明の実施例との無線通信を実行するのに利用される。一実施例では、ナビゲーションボタン６１０は、上方向ナビゲーションボタン、下方向ナビゲーションボタン、左方向ナビゲーションボタン及び右方向ナビゲーションボタンからなる。ナビゲーションボタン６１０はまた、装置６００に関する特定の機能を実行するための選択ボタンからなるかもしれない。
【００８４】
上記実施例の動作が、以下の図及び具体例を参照してさらに説明される。一部の図は論理フローを含むかもしれない。ここに提供される図は特定の論理フローを有しているが、論理フローはここに記載される機能がどのように実現可能であるかの具体例を提供するのに過ぎないことが理解できるであろう。さらに、与えられた論理フローは、特段の指摘がない場合、提示された順序により実行される必要はない。さらに、与えられた論理フローは、ハードウェア要素、プロセッサにより実行されるソフトウェア要素又はこれらの何れかの組み合わせにより実現可能である。
【００８５】
図７〜１０は、コンテクストプラットフォームフレームワーク１００により実行される処理など、ここに記載される１以上の実施例により実行される処理を表す論理フローの実施例を示す。
【００８６】
図７は、コンテクスト情報が集計手段２０２にどのように提供されるかを示す論理フロー７００の一実施例を示す。図７を参照するに、コンテクスト情報は、１以上のプロバイダ１０６を介し集計され、プロバイダＡＰＩ１１２を介し集計手段２０２に送信される（ブロック７０２）。
【００８７】
集計手段２０２は、コンテクスト情報にタイムスタンプ及び／又は位置スタンプを設ける（ブロック７０４）。
【００８８】
集計手段２０２は、コンテクスト情報をコンテクストストアに格納する（ブロック７０６）。
【００８９】
集計手段２０２は、解析手段２０４における適切な解析ルールをトリガーする（ブロック７０８）。
【００９０】
図８は、クライアント１０８がどのように集計手段２０２のコンテクストデータにアクセス可能であるかを示す論理フロー８００の一実施例を示す。図８を参照するに、クライアント１０８は、クライアントＡＰＩ１１４を利用して集計手段２０２の認証を受ける（ブロック８０２）。
【００９１】
クライアント１０８が認証された場合、クライアント１０８は、それのコンテクスト識別子５０４を指定することによって、コンテクストアイテムに対する集計手段２０２へのリクエストをすることが許可される（ブロック８０４）。
【００９２】
リクエストされたコンテクストアイテムがコンテクストストアにおいて利用可能である場合、集計手段２０２は、コンテクストストアからコンテクストアイテムを抽出し、それをクライアントＡＰＩ１１４を介しクライアント１０８に送信する（ブロック８０６）。
【００９３】
リクエストされたコンテクストアイテムがコンテクストストアにおいて利用可能でない場合、集計手段２０２は、プロバイダ１０６の１以上からそれをリクエストするかもしれない。集計手段２０２はまた、解析手段２０４にコンテクストアイテム５０６を計算することをリクエストする。コンテクストアイテム５０６は、コンテクストストアに格納され、クライアントＡＰＩ１１４を介しクライアント１０８に送信される（ブロック８０８）。
【００９４】
図９は、クライアント１０８がどのように解析ルールを解析手段２０４に提供可能であるか示す論理フロー９００の一実施例を示す。図９を参照するに、クライアント１０８は解析ルールを規定する（ブロック９０２）。
【００９５】
クライアント１０８は、クライアントＡＰＩ１１４を介し解析手段２０４に解析ルールを供給する（ブロック９０４）。
【００９６】
解析手段２０４は、解析ルールを登録、コンパイル及び解析ルールストアに格納する（ブロック９０６）。
【００９７】
図１０は、ポリシーエンジン１０４の動作の論理フロー１０００の一実施例を示す。図１０を参照するに、プロバイダ１０６は、ポリシーエンジン１０４においてアクションをトリガーするコンテクスト情報を集計手段２０２に提供する（ブロック１００２）。
【００９８】
ポリシーエンジン１０４は、自己の制御ポリシールールを利用してアクションを決定する（ブロック１００４）。
【００９９】
ポリシーエンジン１０４は、アクチュエータ１１０がアクチュエータＡＰＩ１１６を介しアクションを実行するよう指示する（ブロック１００６）。
【０１００】
各種実施例は、ハードウェア要素、ソフトウェア要素又はこれらの組み合わせを用いて実現されるかもしれない。ハードウェア要素の具体例として、プロセッサ、マイクロプロセッサ、回路、回路素子（トランジスタ、抵抗、キャパシタ、インダクタなど）、集積回路、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、デジタル信号プロセッサ（ＤＳＰ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどがあげられる。ソフトウェアの具体例として、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシーンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、メソッド、プロシージャ、ソフトウェアインタフェース、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）、命令セット、計算コード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル又はこれらの何れかの組み合わせがあげられる。実施例がハードウェア要素及び／又はソフトウェア要素を用いて実現されるかの決定は、所望される計算レート、電力レベル、熱耐性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバススピード及び他の設計若しくはパフォーマンス制約などの何れかの個数のファクタに従って変更されるかもしれない。
【０１０１】
一部の実施例では、“接続される”及び“結合される”という表現をそれらの派生語と共に使用して説明されるかもしれない。これらの用語は、互いに同義語として使用されていない。例えば、一部の実施例は、２以上の要素が互いに直接的な物理的又は電気的接触状態にあることを示すため、“接続される”及び／又は“結合される”という用語を用いて説明される。しかしながら、“接続される”という用語はまた、２以上の要素が互いに直接的な接触状態にはないが、以前として協働又は相互作用することを意味するかもしれない。
【０１０２】
一部の実施例は、例えば、マシーンにより実行される場合、マシーンに実施例による方法及び／又は処理を実行させる命令又は命令セットを格納可能なマシーン可読若しくはコンピュータ可読媒体若しくは物などを用いて実現されるかもしれない。このようなマシーンは、例えば、何れか適切な処理プラットフォーム、計算プラットフォーム、計算装置、処理装置、計算システム、処理システム、コンピュータ、プロセッサなどを含むかもしれず、ハードウェア及び／又はソフトウェアの何れか適切な組み合わせを用いて実現されるかもしれない。マシーン可読媒体又は物は、例えば、何れか適切なタイプのメモリユニット、メモリデバイス、記憶物、記憶媒体、ストレージデバイス、格納物、格納媒体及び／又は格納ユニットを含み、例えば、メモリ、着脱可能若しくは着脱不可な媒体、消去可能若しくは消去不可な媒体、書き込み可能若しくは書き換え可能な媒体、デジタル若しくはアナログ媒体、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（ＣＤ−Ｒｅｃｏｒｄａｂｌｅ）、ＣＤ−ＲＷ（ＣＤ−Ｒｅｗｒｉｔｅａｂｌｅ）、光ディスク、磁気媒体、光磁気媒体、着脱可能なメモリカード若しくはディスク、各種タイプのＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、テープ、カセットなどを含むかもしれない。命令は、何れか適切なハイレベル、ローレベル、オブジェクト指向、ビジュアル、コンパイル及び／又はインタープリットされたプログラミング言語を用いて実現されるソースコード、コンパイルされたコード、インタープリットされたコード、実行可能コード、静的コード、動的コード、暗号化されたコードなどの何れか適切なタイプのコードを含むかもしれない。
【０１０３】
特段の指摘がない場合、“処理”、“計算”、“算出”、“決定”などの用語は、計算システムのレジスタ及び／又はメモリ内において物理的な量（電子的など）として表現されるデータを、計算システムのメモリ、レジスタ又は他の情報格納、伝送若しくは表示装置内における物理的な量として同様に表される他のデータに処理及び／又は変換するコンピュータ、計算システム又は同様の電子計算装置のアクション及び／又はプロセスを表すことが理解されるかもしれない。実施例はこれに限定されない。
【０１０４】
実施例の完全な理解を提供するため、多数の具体的な詳細が提供された。しかしながら、これらの実施例はこれらの具体的な詳細なしに実現可能であることは当業者に理解されるであろう。他の例では、実施例を不明りょうにしないため、周知の処理、コンポーネント及び回路は詳細には説明されていない。ここに開示される具体的な構造的及び機能的詳細は、典型例であり、実施例の範囲を限定するものでないことが理解できる。
【０１０５】
各項性は、構造的特徴及び／又は方法的動作に固有の言語により説明されたが、添付した請求項に規定される構成は上述した具体的な特徴又は動作に必ずしも限定されるものでないことが理解されるべきである。上述した具体的特徴及び動作は、請求項を実現する形態例として開示されている。
【符号の説明】
【０１０６】
１００  コンテクストプラットフォームフレームワーク
１０２  コンテクストエンジン
１０４  ポリシーエンジン
１０６  プロバイダ
１０８  クライアント
１１０  アクチュエータ
１１２，１１４，１１６，１１８  ＡＰＩ
２０２  集計手段
２０４  解析手段
２０６  コンテクストデータベース
２０８  解析手段ルールデータベース
３０２  コントローラ
３０４  ポリシーデータベース
【図１】
2014053043.tif 000007
【図２】
2014053043.tif 000008
【図３】
2014053043.tif 000009
【図４】
2014053043.tif 000010
【図５】
2014053043.tif 000011
【図６】
2014053043.tif 000012
【図７】
2014053043.tif 000013
【図８】
2014053043.tif 000014
【図９】
2014053043.tif 000015
【図１０】
2014053043.tif 000016