【文献】
藤波香織,コンテクストアウェアなアプリケーション構築のためのフレームワーク,情報処理学会論文誌,日本,社団法人情報処理学会,2003年 7月15日,第44巻,No.SIG10(ACS2),第107−118頁
【文献】
岡本雄三,ユビキタスパーソナルエージェントフレームワークによるユーザ支援エージェントの開発,マルチメディア,分散,協調とモバイル(DICOMO 2005)シンポジウム論文集,日本,社団法人情報処理学会,2005年 7月 6日,第2005巻,第6号,第409−412頁
【文献】
渡部正文,ユーザ情報を活用したサービス制御基盤の検討−コンテキストに基づいたユーザ情報通知ポリシの実装と評価−,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2006年 6月15日,第106巻,第118号,第49−54頁
【文献】
鄭哲成,グループドリブンのサービス提供に向けたグループコンテキスト管理機構,マルチメディア,分散,協調とモバイル(DICOMO 2007)シンポジウム論文集,日本,社団法人情報処理学会,2007年 7月 4日,第2007巻,第1号,第1490−1495頁
(58)【調査した分野】(Int.Cl.,DB名)
前記コンテクストエンジンと前記1以上のクライアントとの間の通信を可能にするためコンテクストクライアントAPIを提供するステップを更に有する、請求項9記載の方法。
【発明を実施するための形態】
【0010】
本発明の実施例は、コンテクスト情報の集計、解析及び利用のためのコンテクストプラットフォームフレームワークを提供する。実施例では、コンテクストエンジンは、コンテクストクライアントからのセンサに固有の特性を隠し、クライアントが各種コンテクストソースにアクセスするための統一された機構を提供する。実施例では、センサは物理的センサとソフトセンサ(ソフトウェアベースのソースなど)の両方を含むかもしれない。コンテクストエンジンの集計手段は、コンテクスト情報の集計を通じてコンテクスト情報の利用者(すなわち、クライアント)からコンテクスト情報のソースを切断する。実施例では、コンテクストエンジンの解析手段が、クライアントにより認識されるようなより有用性のある性質の新たなコンテクスト情報を計算するため、集計されたコンテクスト情報を解析するかもしれない。コンテクストエンジンの実施例は、クライアントにより実行されるコンテクスト情報のアウト・オブ・バンド処理を実行する。本発明の実施例は、コンテクスト情報の取得、集計、モニタリング及び解析の連続する各タスクからコンテクストクライアントを解放し、クライアントが各自の主要なタスクに集中し、必要に応じてパワーを節約するスリープ状態に入ることを可能にする。実施例では、クライアントは、コンテクストエンジンの解析手段により使用される解析ルールを介しクライアントによりカスタマイズされるように、“コンテクスト的に重要な”イベント又は状況が生じすると、クライアントがトリガーされるかもしれない。ポリシーエンジンは、集計されたコンテクスト情報の変更、計算されたコンテクスト情報の変更及び制御ポリシールールに基づき、コンテクストプラットフォームフレームワークが実装される物理的なプラットフォームの内部において、又は周囲の環境において具体的なアクションをトリガーするかもしれない。実施例では、コンテクスト情報は、コンテクストスキーマに従ってコンテクストプラットフォームフレームワークにより格納及び処理される。他の実施例が説明及び主張されるかもしれない。
【0011】
各種実施例は、1以上の要素又はコンポーネントを有するかもしれない。要素は、特定の処理を実行するよう構成される任意の構成を有するかもしれない。各要素は、所与の設計パラメータ又はパフォーマンス制約群に対して所望されるようなハードウェア、ソフトウェア又はこれらの何れかの組み合わせとして実現されるかもしれない。実施例は特定のトポロジーによる限定数の要素により説明されるが、所与の実現形態に対して所望されるような他のトポロジーにおけるより多くの又はより少ない要素を有するようにしてもよい。“一実施例”又は“実施例”という表現は、当該実施例に関して説明される機能、構成又は特徴が少なくとも1つの実施例に含まれることを意味することに留意すべきである。明細書の各所における“一実施例では”という表現は、そのすべてが同一の実施例を参照しているとは限らない。
【0012】
図1は、コンテクスト情報の集計、解析及び利用のためのコンテクストプラットフォームフレームワーク100の一実施例を示す。一実施例では、コンテクストプラットフォームフレームワーク100は、コンテクストエンジン102とポリシーエンジン104とを有する。コンテクストプラットフォームフレームワーク100はまた、1以上のプロバイダ106−1〜n(nは任意の正の整数)、1以上のクライアント108−1〜m(mは任意の正の整数)及び1以上のアクチュエータ110−1〜p(pは任意の正の整数)を有する。
【0013】
実施例では、コンテクストプラットフォームフレームワーク100の各コンポーネントは、“使用認識不能(usage agnostic)”である。プロバイダ106とクライアント108の両者は、典型的には使用領域に依存するが、フレームワーク100の設計と実装は、フレームワーク100が使用される使用領域に関して何れの仮定もしない。
【0014】
ハイレベルな実施例では、物理センサ又はソフトウェアベースのソースからのコンテクストデータは、プロバイダ106を介しコンテクストエンジン102により継続的に受け付けされる。プロバイダ106は、プロバイダのAPI(Application Program Interface)112を介しコンテクストデータをコンテクストエンジン102に送信する。コンテクストエンジン102は、コンテクスト情報を取得、処理及び維持する。コンテクストエンジン102は、クライアント108からコンテクスト情報のソースを切断する。コンテクストエンジン102は、受け付けたデータを“コンテクスト”として利用し、それをクライアント108に利用可能にするかもしれない。実施例では、コンテクストエンジン102はまた、プロバイダ106を介し受け付けたオリジナルのコンテクスト情報より、クライアント108に有用な性質のさらなるコンテクスト情報を生成するため、コンテクスト情報を解析するかもしれない。クライアント108は、コンテクストエンジン102により格納及び利用されるカスタマイズされた解析ルールを供給するかもしれない。コンテクストエンジン102及びクライアント108は、コンテクストクライアントAPI114を介し通信する。クライアント108はまた、ポリシーAPI118を利用して、ポリシーエンジン104により利用されるプラットフォーム動作ポリシーを指定又は調整するかもしれない。コンテクストエンジン102が、
図2及び4を参照して以下でより詳細に説明される。
【0015】
コンテクストエンジン102はまた、ポリシーエンジン104と通信する。ポリシーエンジン104は、コンテクストエンジン102の特化したクライアントとしてみなされるかもしれない。ポリシーエンジン104は、集計されたコンテクスト情報の変更、計算されたコンテクスト情報の変更及び制御ポリシールールに基づき、コンテクストプラットフォームフレームワーク100が実現される物理的なプラットフォームの内部で、又はそれの周囲の環境において具体的なアクションをトリガーする。クライアント108は、ポリシーエンジン104により格納及び利用されるカスタマイズされた制御ポリシールールを提供するかもしれない。ポリシーエンジン104が、
図3を参照して以下でより詳細に説明される。ポリシーエンジン104は、アクチュエータAPI116を介しアクチュエータ110に制御コマンド及びデータを送信する。アクチュエータ110は、装置及びそれの周囲の環境の内部のハードウェア及びソフトウェアコンポーネントを制御することが可能である。
【0016】
実施例では、コンテクスト情報は、コンテクストスキーマに従ってコンテクストプラットフォームフレームワーク100により格納及び処理される。コンテクストスキーマは、コンテクスト情報の基本要素を表すクラス及び関連付けから構成される。スキーマクラスは、コンテクストエンジン102において行われる処理アクションの基礎を形成する。コンテクストスキーマのメインクラスは、コンテクスト識別子、コンテクストアイテム、コンテクストグループ及びコンテクストデータを含む。
【0017】
スキーマのコンテクスト識別子は、特定タイプのコンテクスト情報(“温度”タイプなど)を表す。コンテクストエンジン102は、同時に複数タイプのコンテクスト情報を維持及び処理するかもしれない。クライアント108は、コンテクスト識別子オブジェクトを指定することによって、コンテクストアイテムをリクエストするかもしれない。
【0018】
スキーマの各コンテクストアイテムは、コンテクスト識別子に対応するコンテクスト情報のサンプル(温度の読み出しなど)を表す。典型的には、コンテクストエンジン102は、特定のコンテクスト識別子について複数のコンテクストアイテムオブジェクトを維持する。コンテクストクライアントAPI114は、クライアント108がコンテクストエンジン102からのコンテクストアイテムオブジェクトにアクセスすることを可能にする。
【0019】
スキーマのコンテクストグループは、1以上のコンテクスト識別子のグループを表す。クライアント108は、コンテクストグループオブジェクトを指定することによって、コンテクストアイテム群をリクエストするかもしれない。
【0020】
スキーマのコンテクストデータは、コンテクストアイテムの1つの値を表す。いくつかのケースでは、コンテクストアイテムは、同時に複数の有効な値を有することが許容される。従って、値の表現はこのクラスでは抽象化される。スキーマにおける上記及び他の可能なクラスが、
図5を参照して以下でより詳細に説明される。
図1の各要素又はコンポーネントが、次により詳細に説明される。
【0021】
各種実施例では、コンテクストプラットフォームフレームワーク100は、無線システム、有線システム又は両者の組み合わせとして実現されるかもしれない。無線システムとして実現されるとき、フレームワーク100は、1以上のアンテナ、送信機、受信機、送受信機、アンプ、フィルタ、制御ロジックなど、無線共有メディアを介し通信するのに適したコンポーネント及びインタフェースを有するかもしれない。無線共有メディアの具体例として、RFスペクトルなどの無線スペクトルの各部分を有するかもしれない。有線システムとして実現されるとき、フレームワーク100は、入出力(I/O)アダプタ、I/Oアダプタと対応する有線通信媒体とを接続する物理的なコネクタ、ネットワークインタフェースカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラなど、有線通信媒体を介し通信するのに適したコンポーネント及びインタフェースを有するかもしれない。有線通信媒体の具体例として、配線、ケーブル、メタルリード、プリント回路ボード(PCB)、バックプレーン、スイッチ網、半導体物質、ツイストペアワイヤ、同軸ケーブル、光ファイバなどがあげられる。
【0022】
実施例では、プロバイダ106は、“コンテクスト”として使用されるデータを集計し、プロバイダAPI112を介しコンテクストエンジン102にデータを提供することが可能な何れかのタイプのエンティティ(ソフトウェア、ハードウェア又はハードウェアとソフトウェアの組み合わせ)であるかもしれない。リアルタイムのデータが、プロバイダ106を介し連続的に集計されるかもしれない。プロバイダ106はまた、フラッシュメモリなどの集積されたロングタームストレージを介しリアルタイムデータを格納し、以降に当該データをコンテクストエンジン102に送信するよう構成されるかもしれない。集積されたロングタームストレージは、エンジン102との現在利用可能な接続がない場合、集計されたデータの何れも失われないことを確実にするのに役立つ。
【0023】
限定することなく具体例として、プロバイダ106は、プラットフォームセンサ(バッテリチャージ、アクティブラジオなど)、環境センサ(GPS(Global Positioning System)技術を介した位置情報、湿度、近傍の危険、近傍の装置など)、心理センサなどの物理的性質のセンサを搭載してもよい。心理センサは、心臓血管特性(心拍変動、ECG振幅、STセグメント解析、QTインターバルなど)の広範なアレイを測定するECGと、酸化レベルを測定するパルスオキシメータユニットと、活動レベル及び方向を測定する多軸加速時計と、温度レベルを測定する温度センサと、電気皮膚反応を測定するユニットと、血圧をモニタするパルス波速度モニタと、血糖値を測定する最小侵襲又は非侵襲グルコメトリ(glucometry)モニタユニットと、肺活量を測定するユニットと、呼吸数を測定するユニットと、発話特性(音量、ストレスに係る発話の特性、発話リズム、遅延、ポーズの長さ、音声的な区別、ワード転置、発話韻律、これら発話特性の影響及び変動の示唆を含む)を測定するユニットと、タイピングスピード及びエラーを測定するユニットと、ホルモンレベルを測定するユニットと(EMG装置など)、カロリー消費を測定するユニットと、温度レベルを測定するユニットと、筋肉の緊張(コルチゾールなど)を測定するユニットなどの1以上を有するかもしれない。
【0024】
限定することなく具体例として、プロバイダ106は、各種“ソフトソース”(ソフトウェアソースなど)からデータを取得する手段を有するかもしれない。実施例では、ソフトウェアソースは、アプリケーションにおいて格納されているコンテクスト情報(ユーザの次のアポイントメント、必要とされるラジオタイプ、所望される表示解像度など)の検知、オペレーティングシステムなどにおける動的なコンテクスト情報(メモリ利用、CPUロードなど)の検知、インターネットなどのエンティティにおいて利用可能なコンテクスト情報(トラフィック状態、気象状態、買い物など)の検知、ユーザの嗜好(利用履歴など)の検知などを含むかもしれない。
【0025】
実施例では、プロバイダ106は、以下の責任の1以上を有するかもしれない。すなわち、コンテクストエンジン102からセンサの特性及びそれらのやりとりの詳細を隠し、必要に応じて、有用なコンテクスト情報を抽出するため未処理のセンサデータを処理し、要求されると、コンテクスト情報をコンテクストエンジン102に提供し、イベント通知機構を利用して非同期的にコンテクスト情報をコンテクストエンジン102に提供し、対応するコンテクスト識別子が使用されていないとき、センサ及び関連するシステムコンポーネントを低電力モードにし、コンテクストエンジン102により指定されるようにプロバイダAPI112に従うかもしれない。
【0026】
コンテクストエンジン102は、プロバイダ106及び関連する外部コンポーネント(プロバイダインストーラなど)とのやりとりを管理するため、インタフェース群を備えている。このインタフェース群は、ここではプロバイダAPI112として参照される。実施例では、プロバイダAPI112は、以下の機能の1以上をサポートするかもしれない。すなわち、新たなプロバイダをコンテクストエンジン102に動的に関連付け、コンテクストエンジン102から既存のプロバイダを動的に切り離し、1以上のコンテクスト識別子の詳細な情報をプロバイダからコンテクストエンジン102に転送し、コンテクストエンジン102から同期的なコールを実行し(コンテクストアイテムオブジェクトをリクエストするコールなど)、プロバイダ106からコンテクストエンジン102に通知を実行し(コンテクスト識別子に対応する更新されたコンテクストアイテムが利用可能であることを示す通知など)、コンテクストエンジン102からプロバイダ106にコマンドを実行する(1以上のコンテクスト識別子のコンテクストアイテムをプロバイダが調達することを可能/不可にすることをリクエストするコマンドなど)などをサポートするかもしれない。
【0027】
実施例では、プロバイダAPI112は、プロバイダ106がコンテクストアクセスルールを指定することを可能にする。コンテクストアクセスルールは、特定のコンテクスト情報へのアクセスを特定のクライアント108のクラスに制限するかもしれない。コンテクストエンジン102は、コンテクストアクセスルールを実行する。この機構は、クライアント108が公衆に利用可能であるか、又は特定のクライアント又はクライアントクラスによるアクセスについて許可されているコンテクスト情報の一部へのアクセスを取得可能であることを保証する。実施例では、アクセス制限は、ドメインに固有のものであり、装置に予め設定されるか、又はコンテクストアクセスルールを介し動的に指定若しくは編集されるかもしれない。これは、コンテクストプラットフォームフレームワーク100がどのようにモジュールとなるか、それのコンポーネントがどのように動的にロード可能であるかの具体例である。
【0028】
限定することなく具体例として、クライアントが患者情報を格納し、それへのアクセスを提供する病院におけるアプリケーションであることを仮定する。このような情報は、患者課金情報、患者の現在の病状及び患者の履歴若しくは過去の医療情報を含むかもしれない。ここでは、プロバイダは何れのタイプの病院スタッフが異なるタイプの患者情報にアクセス可能であるかに関するコンテクストアクセスルールをエンジン102に提供するかもしれない。例えば、1つのコンテクストアクセスルールは、病院管理者を患者課金情報に制限するかもしれない。他のコンテクストアクセスルールは、患者の看護士を患者の現在の医療情報に制限し、他のコンテクストアクセスルールは、患者の医師が患者の現在及び過去の医療情報にアクセスすることを許可するかもしれない。
【0029】
実施例では、クライアント108は、コンテクスト情報を利用可能な任意のアプリケーション(ユーザインタフェースを備えた又は備えていない)であるかもしれない。クライアント108は、コンテクストクライアントAPI114を介しコンテクストエンジン102とやりとりする。クライアント108は、コンテクストエンジン102とやりとりする際、クライアントAPI114に従う責任がある。クライアント108はまた、オペレーティングシステム、プラットフォームユーティリティ、プラットフォームツール、ミドルウェアライブラリ、コンテクスト情報を利用して他のモジュールに付加価値サービスを提供する“中間的な”ソフトウェアモジュールなどの他のソフトウェアコンポーネントであるかもしれない。実施例では、クライアント108の大多数は、典型的には、ドメインに固有のものである。
【0030】
クライアント108は、各種方法によりコンテクストエンジン102を介し生成されたコンテクスト情報にクライアントAPI114を介しアクセスするかもしれない。例えば、クライアント108は、同期的及び/又は非同期的なイベントを介しコンテクスト情報にアクセスするかもしれない。同期的なイベントによると、クライアント108は、必要に応じてコンテクストエンジン102から情報をリクエスト及び受け取る。非同期的なイベントによると、クライアント108は、利用可能になると、又は特定の状態が充足されると、更新されたコンテクスト情報の送信をリクエストする。ここでは、コンテクストエンジン102は、通知イベントを適切なクライアントに送信するかもしれない。
【0031】
コンテクストエンジン102は、クライアント108及び関連する外部コンポーネントとのやりとりを管理するため、インタフェース群を備える。このインタフェース群は、ここではコンテクストクライアントAPI114として参照される。実施例では、コンテクストクライアントAPI114は、以下の機能の1以上をサポートするかもしれない。すなわち、1以上のコンテクスト識別子の利用性をチェックし、新たなコンテクストグループをそれらのメンバーのコンテクスト識別子を指定することにより規定し、コンテクスト識別子及びコンテクストグループに関する詳細にアクセスし、コンテクスト識別子に対応するコンテクストアイテムにアクセスし、コンテクストグループに対応するコンテクストアイテムにアクセスし、時間及び/又は場所に対応するコンテクストアイテムにアクセスし、解析ルールを指定及び編集するなどの機能の1以上をサポートするかもしれない。
【0032】
実施例では、コンテクストクライアントAPI114は、クライアントの認証とコンテクスト情報への制御されたアクセスを実行する。この機構は、クライアント108がすべてのクライアントに公衆に利用可能であるか、又は特定のクライアント又はクライアントのクラスによるアクセスが許可されているコンテクストアイテムへのアクセスしか取得できないことを保証することに役立つ。実施例では、コンテクストエンジン102により利用されるアクセスポリシーは、コンテクスト識別子のレベルにおいて、また個々のコンテクストアイテムに対するアクセス許可を指定する。
【0033】
実施例では、クライアント108はまた、ポリシーAPI118を利用して、ポリシーエンジン104により利用されるプラットフォーム動作ポリシーを指定又は調整するかもしれない。クライアント108は、ポリシーエンジン104とやりとりすると、ポリシーAPI118に従う責任がある。実施例では、ポリシーAPI118は、ポリシーエンジン104におけるプラットフォームポリシーを指定及び編集する機能をサポートするかもしれない。
【0034】
アクチュエータ110は、コンテクストプラットフォームフレームワーク100及びその周辺環境の内部のハードウェア及びソフトウェアコンポーネントを制御可能である。限定することなく具体例として、アクチュエータ110は、コンテクストアウェア装置の各機能を操作し、コンピュータスクリーンの解像度を変更し、電子機器(サーモスタット、照明器具など)を操作し、ユーザインタフェースモダリティの間のスイッチを行い、待機している医師を呼び出すなどするためのハードウェアコンポーネントを制御するかもしれない。
【0035】
コンテクストプラットフォームフレームワーク100は、ポリシーエンジン104とアクチュエータ110との間のやりとりのためのインタフェース群を備える。このインタフェース群は、ここではアクチュエータAPI116として参照される。
【0036】
プロバイダAPI112、クライアントAPI114、アクチュエータAPI116及びポリシーAPI118のすべては、各種機構を介し実現されるかもしれない。実施例では、これら各種機構は、標準的な言語(C++など)、管理された言語(Java(登録商標)など)及びウェブサービスなどのプロトコルベース機構の1以上を含むかもしれない。
【0037】
図2を参照するに、コンテクストエンジン102の実施例が示される。コンテクストエンジン102は、コンテクスト情報を取得、処理及び維持する。コンテクストエンジン102は、集計手段202と、解析手段204と、コンテクストデータベース206と、解析手段ルールデータベース208とを有するかもしれない。これらの各コンポーネントが、以下でより詳細に説明される。
【0038】
実施例では、集計手段202は、各種ソース(プロバイダ106、解析手段204など)から受け付けたコンテクスト情報を維持し、コンテクスト情報に係るアクセスポリシーを実行し、コンテクスト情報をクライアント108に供給し、コンテクスト情報を解析手段204に供給し、クライアントにより指定されたコンテクスト識別子のグループを管理するなどのタスクを実行するかもしれない。コンテクストエンジン102の実行例は、集計手段202の1つまでのインスタンスを含むかもしれない。
【0039】
集計手段202は、プロバイダ106からコンテクスト情報を受け取る。集計手段202はまた、解析手段204により計算されるコンテクスト情報を受け取ることができる。集計手段202は、コンテクスト情報を集計し、コンテクストデータベース206に格納する。集計手段202又はコンテクストデータベース206は、コンテクストキャッシング機構を利用して、集計手段202がデータを迅速に抽出することを可能にするかもしれない。コンテクストキャッシング基準は、各種タイプを有するかもしれない。例えば、コンテクストキャッシング基準は、最近にアクセスされたキャッシュアイテム、最近のn個のキャッシュアイテム、最近1時間に受け付けされたキャッシュアイテムなどの1以上を含むかもしれない。コンテクストキャッシング基準の1以上が、同時に使用されるかもしれない。集計手段202は、コンテクスト情報のソースをクライアント108から切断する。
【0040】
実施例では、集計手段202は、受け付け時に、すべてのコンテクストアイテムオブジェクトとタイムスタンプリファレンス及び位置スタンプリファレンスを関連付ける。クライアント108は、タイムスタンプフィルタ及び/又は位置フィルタを指定することによって、コンテクストクライアントAPI114を介し具体的なコンテクストアイテムにアクセスするかもしれない。この機構は、コンテクストアクセスのタイムシフトモードと位置シフトモードをもたらす。ここで、クライアント108は、異なる時間及び/又は位置に適用可能なコンテクスト情報(例えば、これから3ヶ月間の特定の都市の気象予報など)をリクエストするかもしれない。
【0041】
実施例では、集計手段202により利用されるコンテクストグループ定義は、通常はドメインに固有のものである。コンテクストグループ定義は、コンテクストアウェア装置の構築時に構成されるかもしれない。他の実施例は、クライアント108がコンテクストグループ定義を実行中に動的に指定及び変更することを可能にする。クライアント108は、各アイテムとして又は複数のアイテムの集合として格納されるコンテクスト情報にアクセスするかもしれない。
【0042】
上述されるように、一部の実施例は、クライアント108がコンテクストグループ定義を実行中に動的に指定及び変更することを可能にする。具体例は、本発明を限定するものでないが、コンテクストデータベース206に格納されているコンテクストスキーマの複数のコンテクスト識別子に関するものであるかもしれない。これらの一例となるコンテクスト識別子はそれぞれ、“明るさ状態”、“湿度”などを含む天候の状態に関するものであるかもしれない。クライアント108は、コンテクストアイテムグループを規定し、それを“天候”と呼ぶかもしれない。ここで、“天候”のカスタマイズされたコンテクストアイテムグループは、“明るさ状態”、“湿度”などの関連する気象データを含むコンテクストデータベース206に格納されているすべてのコンテクスト識別子を含むかもしれない。
【0043】
実施例では、解析手段204は、クライアント108の制御の下で解析ルールを受付及び維持し、集計手段202に維持されるコンテクスト情報をモニタし、コンテクストアクセスルールに固有の入力状態に遭遇すると解析ルールを実行し、集計手段202がリクエストすると解析ルールを実行し、解析ルールの実行前に集計手段202から要求されたコンテクスト情報を取得し、解析ルールにより計算された新たなコンテクスト情報を集計手段202に送信するなどのタスクを実行するかもしれない。
【0044】
実施例では、コンテクストエンジン102の実行例は、1つまでの解析手段204のインスタンスを含むかもしれない。実施例では、解析手段204は常にアクティブ状態であるか、あるいはクライアント108の1つが解析手段の機能を要求すると動的にロードされるようにしてもよい。解析手段204が動的にロードされると、解析手段204に係る必要なすべての接続がまた動的にアクティブ化される。解析手段204は、部分的に集計手段202に依存し、これら2つの間のインタフェースは解析手段203の動的なロード及びアンロードを可能にする。これは、どのようにしてコンテクストプラットフォームフレームワーク100がモジュールとなり、それのコンポーネントが動的にロード可能となるかの一例である。
【0045】
実施例では、解析手段204は、プロバイダ106から受け付けたオリジナルのコンテクスト情報よりもクライアント108に有用な新たなコンテクスト情報を計算するため、コンテクスト情報を解析するかもしれない。この解析は、閾値処理、パターン検出、推論、信号処理、過去の相関などの複数の形態をとりうる。従って、解析手段204(及び一般にはコンテクストエンジン102)は、“スマートエンジン”として動作し、コンテクスト情報を解析を実行するのに役立つ人工知能(AI)技術の1以上の特徴を含むかもしれない。
【0046】
実施例では、解析手段204は、クライアント108により供給される解析ルールを利用して、さらなるコンテクスト情報を生成するため、コンテクスト情報を解析する。解析アルゴリズムは、構築時には装置設定者により、又は実行時にはクライアント108により供給されるかもしれない。解析アルゴリズムは、解析手段ルールデータベース208及びそれに係るキャッシュに格納されるかもしれない。計算されたコンテクスト情報は、クライアント108又は解析手段204による格納及びさらなるアクセスのため、集計手段202に送信される。
【0047】
例えば限定されるものでないが、解析手段204は、2つのモードの解析アルゴリズムをサポートするかもしれない。1つのモードの解析アルゴリズムは、エクスパートシステムにおいて周知であるようなスクリプトベース解析ルールをサポートするかもしれない。他のモードの解析アルゴリズムは、バイナリ形式により供給される予めコンパイルされたルールを含むかもしれない。実施例では、解析ルールは、典型的には、利用ドメインに依存する。
【0048】
コンテクストエンジン102の実施例は、解析手段204に典型的にはクライアント108により実行される解析を実行させることによって、コンテクスト情報のアウト・オブ・バンド解析を提供する。クライアント108は、コンテクスト情報の取得、集計、モニタリング及び解析の持続的なタスクから解放される。これは、クライアント108が各自の主要なタスクに集中し、又は必要に応じてスリープ状態に入ることを可能にする。実施例では、解析手段204により利用される解析ルールを介しクライアント108によりカスタマイズされるように、“コンテクストに重大な”イベント又は状況が発生した場合に限って、クライアント108がトリガーされる。
図4を参照して、集計手段202と解析手段204の論理コンポーネントの間の依存性の実施例が以下で説明される。
【0049】
上述されるように、コンテクストエンジン102はまた、ポリシーエンジン104と通信する。
図3を参照するに、ポリシーエンジン104の実施例が示される。ポリシーエンジン104は、コントローラ302とポリシーデータベース304とを有するかもしれない。コントローラ302は、集計されたコンテクスト情報、計算されたコンテクスト情報及びポリシーデータベース304に格納されている制御ポリシールールに基づき、コンテクストプラットフォームフレームワーク100が実装される物理的なプラットフォーム及び/又はそれの周囲の環境の内部の具体的なアクションをトリガーする責任がある。コントローラ302は、アクチュエータAPI116を介し制御コマンド及びデータをアクチュエータ110に送信する。アクチュエータ110は、コンテクストプラットフォームフレームワーク100が実装される物理的なプラットフォーム及び/又はそれの周囲の環境の内部のハードウェア及びソフトウェアコンポーネントを制御することが可能である。
【0050】
上述されるように、クライアント108は、具体的なドメイン要求を充足するため、コンテクストエンジン102により処理されるコンテクスト情報の多数の特徴をカスタマイズするかもしれない。例えば、クライアント108は、特定のアプリケーションに関連する1以上の制御ポリシールールをポリシーエンジン104に提供するかもしれない。これらカスタマイズされた制御ポリシールールは、制御ポリシールールセットに含まれるかもしれない。
【0051】
実施例では、ポリシーエンジン104は、“スマートエンジン”として動作し、集計されるコンテクスト情報、計算されたコンテクスト情報及びポリシーデータベース304に格納されている制御ポリシールールに基づき、コンテクストプラットフォームフレームワーク100が実装される物理的なプラットフォーム及び/又はそれの周辺環境の内部の具体的なアクションをトリガーするのに役立つ人工知能(AI)機能を有するかもしれない。
【0052】
実施例では、ポリシーエンジン104は常にアクティブ状態であるか、又はそれの機能が要求されると動的にロードされるかもしれない。ポリシーエンジン104が動的にロードされると、ポリシーエンジン104に係る必要なすべての接続がまた動的にアクティブ化される。これは、どのようにしてコンテクストプラットフォームフレームワーク100がモジュールとなり、それのコンポーネントが動的にロード可能であるかの一例である。
【0053】
図4は、コンテクストエンジン102の論理コンポーネント又はパッケージの間の依存関係の一実施例を示す。実施例では、“依存関係(dependency)”という用語は、UML(Unified Modeling Language)により定義されるように使用される。
図4を参照するに、集計手段202は、コンテクスト集計手段402と、アクセスポリシー実行手段404と、アクセスポリシーストア406と、プロバイダハンドラ408と、コンテクストストア410と、コンテクストスキーマの各論理コンポーネントを有するかもしれない。解析手段204は、コンテクスト解析手段414と、解析ルールアクセス416と、解析ルールストア418と、スクリプトベースルール420と、バイナリ形式により供給される予めコンパイルされたルール422の論理コンポーネントを有するかもしれない。
図4の有向矢印は、本発明の一実施例による論理コンポーネントの間の依存関係を示す。
【0054】
例えば、
図4を参照するに、プロバイダハンドラ408とコンテクスト解析手段414とは、コンテクストレポジトリに新たなコンテクスト情報を追加するため、コンテクスト集計手段402に依存する。コンテクスト集計手段402は、データベースの格納及び抽出機能を利用するため、コンテクストストア410に依存する。
【0055】
コンテクストスキーマ412は、コンテクスト情報の基本要素を表すクラス及び関連付けから構成される。スキーマクラスは、コンテクストエンジン102において実行される処理アクションの基礎を形成する。コンテクストスキーマのメインクラスは、コンテクスト識別子と、コンテクストアイテムと、コンテクストグループとコンテクストデータとを含む。
図5を参照して、コンテクストスキーマの実施例が以下でより詳細に説明される。
図4に示されるすべてのコンポーネントがコンテクストスキーマ412に依存し又は利用することに留意することが重要である。
【0056】
実施例では、コンテクストストア410は、コンテクストエンジン102におけるその他の論理コンポーネントによる効率的なアクセスのため、コンテクスト情報のインメモリインスタンス(キャッシュなど)を維持する。ここで、最近使用された及び頻繁に使用されたコンテクスト情報は、典型的には、キャッシュに維持される。コンテクストストア410は、本発明の実施例はこれに限定されないが、典型的には、コンテクスト情報を格納するため不揮発性ストレージ機構(リレーショナルデータベース(RDBMS)エンジンなど)を利用することが予期される。例えば、不揮発性ストレージがコンテクストエンジン102により必要とされない例が存在しうる。
【0057】
アクセスポリシーストア108とアクセスポリシー実行手段404とは、コンテクスト情報に対するクライアント108のリクエストを実現する責任がある。実施例では、主要な責任は、コンテクスト情報をクライアント108に利用可能にし、コンテクスト情報を開示しながらクライアントレベルのアクセス制限を実行し、クライアント毎の通知リクエストを維持し、リクエストされたコンテクストアイテムが利用可能になると通知を送信することを含むかもしれない。
【0058】
プロバイダハンドラ408は、プロバイダAPI112を介しプロバイダ106とやりとりし、コンテクストエンジン102により使用されるコンテクスト情報を受け取る。
【0059】
解析ルールアクセス416は、クライアント108がコンテクストエンジン102における解析ルールを管理することを可能にする。ここで、クライアント108は、以下に限定されるものでないが、追加、削除、アクティブ化などを含む解析ルールに対する各種処理を実行するかもしれない。
【0060】
コンテクスト解析手段414は、新たなコンテクストアイテムがコンテクストストア410において利用可能になると、0以上の解析ルールを実行するかもしれない。解析ルールストア418は、すべての解析ルールが維持されるレポジトリを表す。スクリプトベースルール420及び/又はバイナリ形式の予めコンパイルされたルール422は、コンテクスト解析手段414によりサポートされる解析ルールの可能な2つのタイプのカテゴリである。
【0061】
図5を参照して、コンテクストスキーマ500の実施例が以下でより詳細に説明される。実施例では、
図5のすべてのアイコンは、ULMにより定義されている。
図5を参照するに、コンテクストスキーマ500は、コンテクストグループ502、コンテクスト識別子504、コンテクストアイテム506及びコンテクストデータ508のクラスを含むかもしれない。
図5に示される一例となるコンテクストスキーマ500は、1つの可能なスキーマであり、本発明を限定するものでない。
【0062】
コンテクストグループ502は、1以上のコンテクスト識別子504の集合を表す。コンテクスト識別子504は、あるタイプのコンテクスト情報(“温度”タイプなど)を表す。コンテクストアイテム506は、それぞれコンテクスト識別子504に対応するコンテクスト情報(読み取った温度など)のインスタンスを表す。典型的には、コンテクストエンジン102は、あるコンテクスト識別子504について複数のコンテクストアイテム506を維持する。コンテクストデータ508は、コンテクストアイテム506の1つの値を表す。一部のケースでは、コンテクストアイテム506は、同時に複数の有効な値を有することが許容される。従って、値の表現がこのクラスから抽象化されるかもしれない。各クラスが以下においてより詳細に説明される。
【0063】
コンテクスト識別子504は、コンテクストエンジンにおけるコンテクストタイプのコア表現である。一般に、コンテクスト識別子504は、それの値をどのように表現及び解釈するかを含む、コンテクストタイプの特性を指定する。さらなるコンテクストタイプの特性の表現が可能であり、本発明の実施例により想定される。実施例では、クライアント108は、コンテクスト識別子504を指定することによって、コンテクストアイテム506にアクセス又は要求する。コンテクストアイテム506にアクセスする他の間接的な機構がまた可能であり、本発明の実施例により想定される。
【0064】
実施例では、新たなコンテクスト識別子が各種ソースにより供給されるかもしれない。1つのソースはプロバイダ106を介したものである。ここで、プロバイダの登録処理の一部として、プロバイダは、提供可能なすべてのコンテクスト識別子の定義を供給する。新たなコンテクスト識別子の他のソースは、クライアント108を介したものである。ここで、クライアントは、新たなコンテクスト解析ルールを指定する一部として新たなコンテクスト識別子を定義するかもしれない。
【0065】
コンテクストエンジン102は、それが知っているすべてのコンテクスト識別子504のリストを維持するかもしれない。新たなコンテクスト識別子504がプロバイダ106から受け取られると、新たなコンテクスト識別子が既知のコンテクスト識別子に対してチェックされる。同様に、解析手段204は、新たな解析手段ルール(スクリプトベースルールなど)を追加する際、新たなコンテクスト識別子を指定するかもしれない。
【0066】
図5を参照するに、コンテクスト識別子504の実施例は、コンテクスト名、説明、バリュースキーマ及びマルチバリューの4つの主要な属性を有するかもしれない。さらに、実施例では、コンテクスト識別子504は、図に示される関連付けに対応するメンバー属性を有する。以下のテーブル1は、主要な属性の可能な説明を示す。
【0067】
【表1】
コンテクストグループ502は、2以上のコンテクスト識別子504の集合を表す。この集合は、それが生成されるドメインにおいて通常意味がある。コンテクストグループ502は、任意の時点でコンテクストエンジン102に追加又は削除されるかもしれない。実施例では、クライアント108は、コンテクストエンジン102のコンテクストグループ502のオブジェクトを動的に追加及び削除するかもしれない。しかしながら、典型的には、コンテクストグループは特定の使用ドメインにおいて装置の配置時に生成される。
【0068】
実施例では、グループメンバーが参照され、これは、コンテクストグループ502を構成するコンテクスト識別子504が存在し、コンテクストグループの削除がコンテクストエンジン102からメンバーコンテクスト識別子を削除しないことを意味する。
【0069】
コンテクスト識別子504は、複数のコンテクストグループ502のメンバーであるかもしれない(すなわち、参照されるかもしれない)。コンテクストグループ502は、他のコンテクストグループを含むかもしれない(非循環的な関係のみ)。また、コンテクストグループ502は、複数の他のコンテクストグループ502の一部であるかもしれない。
【0070】
図5を参照するに、コンテクストグループ502の実施例は、グループ名と説明の2つの主要な属性を有するかもしれない。さらに、実施例では、コンテクストグループ502は、図に示される関連付けに対応するメンバー属性を有する。以下のテーブル2は、主要な属性に対する可能な説明を示す。
【0071】
【表2】
コンテクストアイテム506は、コンテクスト識別子504に対応するコンテクスト情報の具体的なサンプルを示す。一部のコンテクストタイプのケースでは、コンテクストアイテムオブジェクトは、同時に複数の有効な値を有するかもしれない。従って、コンテクストアイテムクラスの値の表現は、独立したクラスのコンテクストデータ508に抽象化されるかもしれない。
【0072】
図5を参照するに、コンテクストアイテム506の実施例は3つの主要な属性、プロジェクトされているか?、位置及び時間を有するかもしれない。さらに、実施例では、コンテクストアイテム506は、図に示される関連付けに対応するメンバー属性を有する。以下のテーブル3は、主要な属性に対する可能な説明を示す。
【0073】
【表3】
コンテクストデータ508は、コンテクストアイテム506の1つの値を表す。一部の実施例では、コンテクストアイテムは、同時に複数の有効な値を有することが許容される。従って、値の表現はこのクラスで抽象化される。コンテクスト識別子504は、それの対応するコンテクストアイテム506がおそらく同時に複数の有効な値を有することが可能であるか示す。実施例では、複数の値の可能性は、ブール属性“マルチバリュー”のクラスのコンテクスト識別子504によりフラグ表示される。
【0074】
図5を参照するに、コンテクストデータ508の実施例は3つの主要な属性、バリュー、有効期間及び確実性を有するかもしれない。以下のテーブル4は、これらの属性の可能な説明を示す。
【0075】
【表4】
一実施例では、コンテクストエンジン102及び/又はポリシーエンジン104が、ここに記載される本発明の機能を実行可能な任意のモバイル装置に含まれるかもしれない。エンジン102及び/又は104は、有線通信システム、無線通信システム又はこれらの組み合わせの一部として実現可能である。一実施例では、例えば、エンジン102及び/又は104は無線機能を有するモバイル計算装置として実現可能である。モバイル計算装置は、例えば、1以上のバッテリなどのモバイル電源と処理システムとを有する任意の装置を表す。他の実施例では、コンテクストプラットフォームフレームワーク100(コンテクストエンジン102及び/又はポリシーエンジン104)はまた、デスクトップPC、バックエンドサーバなどの固定的な計算装置に配備されるかもしれない。
【0076】
本発明の機能を有するよう構成されるモバイル計算装置の実施例は、ラップトップコンピュータ、ウルトララップトップコンピュータ、ポータブルコンピュータ、携帯コンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、携帯電話、携帯電話とPDAの組み合わせ、スマートフォン、ページャ、一方向ページャ、双方向ページャ、メッセージング装置、データ通信装置などを含む。
【0077】
このようなモバイル計算装置の具体例として、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、眼鏡コンピュータ、ベルトチップコンピュータ、アームバンドコンピュータ、シューズコンピュータ、クロージングコンピュータ、他の装着可能なコンピュータなどの人が装着するよう構成されるコンピュータなどがあげられる。
【0078】
図6において、本発明の実施例のより詳細な説明が示される。
図6を参照するに、装置600は、ハウジング602と、ディスプレイ604と、1以上の入出力装置606と、1以上のセンサ607と、アンテナ608と、ナビゲーションボタン610と、コンテクストエンジン102と、ポリシーエンジン104とを有するかもしれない。
【0079】
コンテクストエンジン102及び/又はポリシーエンジン104は、直接的に装置600に統合されるか、又は接続(有線、無線又はこれらの組み合わせなど)を介し装置600に接続されてもよい。エンジン102及び104の機能は、ここでは2つのコンポーネントに分離されると示されるが、これは本発明を限定するものでないことに留意されたい。実際、この機能は、1つのコンポーネントに合成されてもよく、又は3以上のコンポーネントに分離されてもよい。
図6の各コンポーネントが、以下でより詳細に説明される。
【0080】
ハウジング602は、何れか適切なハウジングから構成可能であるが、典型的には、装置600が容易に可搬となるようSFF(Small Form Factor)に関するものとされる。ディスプレイ604は、エンジン102及び/又は104の機能に適した情報を表示するための何れか適切な表示ユニットから構成されてもよい。ディスプレイ604が、本発明の実施例により使用され、カスタマイズされた制御ポリシールール(上述されるような)などの装置600への入力を支援する。
【0081】
I/O装置606は、装置600に情報を入力し、装置600から情報を受け取るための何れか適切なI/O装置から構成されるかもしれない。ここで、I/O装置は、プロバイダ106からのデータを入力し、コンテクスト情報をクライアント108に送信し、カスタマイズされた制御ポリシールールをポリシーエンジン104及び解析手段204に入力するなどのために利用されるかもしれない。I/O装置606の具体例として、タッチ画面インタフェース、アイコン選択を備えたシンプルなメニュー、装置のジェスチャによる操作、適切な英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロフォン、スピーカー、音声認識装置及びソフトウェアと共に、上述した心理検知のすべてなどがあげられる。情報はマイクロフォンを開始装置600に入力される。このような情報は、音声認識装置によりデジタル化されるかもしれない。実施例はこれに限定されない。
【0082】
センサ607は、コンテクストエンジン102に利用されるコンテクスト情報を集計するのに適したセンサから構成されるかもしれない。センサ607の具体例として、
図1を参照して上述されたセンサの1以上があげられる。
【0083】
アンテナ608は、本発明の実施例との無線通信を実行するのに利用される。一実施例では、ナビゲーションボタン610は、上方向ナビゲーションボタン、下方向ナビゲーションボタン、左方向ナビゲーションボタン及び右方向ナビゲーションボタンからなる。ナビゲーションボタン610はまた、装置600に関する特定の機能を実行するための選択ボタンからなるかもしれない。
【0084】
上記実施例の動作が、以下の図及び具体例を参照してさらに説明される。一部の図は論理フローを含むかもしれない。ここに提供される図は特定の論理フローを有しているが、論理フローはここに記載される機能がどのように実現可能であるかの具体例を提供するのに過ぎないことが理解できるであろう。さらに、与えられた論理フローは、特段の指摘がない場合、提示された順序により実行される必要はない。さらに、与えられた論理フローは、ハードウェア要素、プロセッサにより実行されるソフトウェア要素又はこれらの何れかの組み合わせにより実現可能である。
【0085】
図7〜10は、コンテクストプラットフォームフレームワーク100により実行される処理など、ここに記載される1以上の実施例により実行される処理を表す論理フローの実施例を示す。
【0086】
図7は、コンテクスト情報が集計手段202にどのように提供されるかを示す論理フロー700の一実施例を示す。
図7を参照するに、コンテクスト情報は、1以上のプロバイダ106を介し集計され、プロバイダAPI112を介し集計手段202に送信される(ブロック702)。
【0087】
集計手段202は、コンテクスト情報にタイムスタンプ及び/又は位置スタンプを設ける(ブロック704)。
【0088】
集計手段202は、コンテクスト情報をコンテクストストアに格納する(ブロック706)。
【0089】
集計手段202は、解析手段204における適切な解析ルールをトリガーする(ブロック708)。
【0090】
図8は、クライアント108がどのように集計手段202のコンテクストデータにアクセス可能であるかを示す論理フロー800の一実施例を示す。
図8を参照するに、クライアント108は、クライアントAPI114を利用して集計手段202の認証を受ける(ブロック802)。
【0091】
クライアント108が認証された場合、クライアント108は、それのコンテクスト識別子504を指定することによって、コンテクストアイテムに対する集計手段202へのリクエストをすることが許可される(ブロック804)。
【0092】
リクエストされたコンテクストアイテムがコンテクストストアにおいて利用可能である場合、集計手段202は、コンテクストストアからコンテクストアイテムを抽出し、それをクライアントAPI114を介しクライアント108に送信する(ブロック806)。
【0093】
リクエストされたコンテクストアイテムがコンテクストストアにおいて利用可能でない場合、集計手段202は、プロバイダ106の1以上からそれをリクエストするかもしれない。集計手段202はまた、解析手段204にコンテクストアイテム506を計算することをリクエストする。コンテクストアイテム506は、コンテクストストアに格納され、クライアントAPI114を介しクライアント108に送信される(ブロック808)。
【0094】
図9は、クライアント108がどのように解析ルールを解析手段204に提供可能であるか示す論理フロー900の一実施例を示す。
図9を参照するに、クライアント108は解析ルールを規定する(ブロック902)。
【0095】
クライアント108は、クライアントAPI114を介し解析手段204に解析ルールを供給する(ブロック904)。
【0096】
解析手段204は、解析ルールを登録、コンパイル及び解析ルールストアに格納する(ブロック906)。
【0097】
図10は、ポリシーエンジン104の動作の論理フロー1000の一実施例を示す。
図10を参照するに、プロバイダ106は、ポリシーエンジン104においてアクションをトリガーするコンテクスト情報を集計手段202に提供する(ブロック1002)。
【0098】
ポリシーエンジン104は、自己の制御ポリシールールを利用してアクションを決定する(ブロック1004)。
【0099】
ポリシーエンジン104は、アクチュエータ110がアクチュエータAPI116を介しアクションを実行するよう指示する(ブロック1006)。
【0100】
各種実施例は、ハードウェア要素、ソフトウェア要素又はこれらの組み合わせを用いて実現されるかもしれない。ハードウェア要素の具体例として、プロセッサ、マイクロプロセッサ、回路、回路素子(トランジスタ、抵抗、キャパシタ、インダクタなど)、集積回路、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、デジタル信号プロセッサ(DSP)、FPGA(Field Programmable Gate Array)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどがあげられる。ソフトウェアの具体例として、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシーンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、メソッド、プロシージャ、ソフトウェアインタフェース、API(Application Program Interface)、命令セット、計算コード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル又はこれらの何れかの組み合わせがあげられる。実施例がハードウェア要素及び/又はソフトウェア要素を用いて実現されるかの決定は、所望される計算レート、電力レベル、熱耐性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバススピード及び他の設計若しくはパフォーマンス制約などの何れかの個数のファクタに従って変更されるかもしれない。
【0101】
一部の実施例では、“接続される”及び“結合される”という表現をそれらの派生語と共に使用して説明されるかもしれない。これらの用語は、互いに同義語として使用されていない。例えば、一部の実施例は、2以上の要素が互いに直接的な物理的又は電気的接触状態にあることを示すため、“接続される”及び/又は“結合される”という用語を用いて説明される。しかしながら、“接続される”という用語はまた、2以上の要素が互いに直接的な接触状態にはないが、以前として協働又は相互作用することを意味するかもしれない。
【0102】
一部の実施例は、例えば、マシーンにより実行される場合、マシーンに実施例による方法及び/又は処理を実行させる命令又は命令セットを格納可能なマシーン可読若しくはコンピュータ可読媒体若しくは物などを用いて実現されるかもしれない。このようなマシーンは、例えば、何れか適切な処理プラットフォーム、計算プラットフォーム、計算装置、処理装置、計算システム、処理システム、コンピュータ、プロセッサなどを含むかもしれず、ハードウェア及び/又はソフトウェアの何れか適切な組み合わせを用いて実現されるかもしれない。マシーン可読媒体又は物は、例えば、何れか適切なタイプのメモリユニット、メモリデバイス、記憶物、記憶媒体、ストレージデバイス、格納物、格納媒体及び/又は格納ユニットを含み、例えば、メモリ、着脱可能若しくは着脱不可な媒体、消去可能若しくは消去不可な媒体、書き込み可能若しくは書き換え可能な媒体、デジタル若しくはアナログ媒体、ハードディスク、フロッピー(登録商標)ディスク、CD−ROM(Compact Disk Read Only Memory)、CD−R(CD−Recordable)、CD−RW(CD−Rewriteable)、光ディスク、磁気媒体、光磁気媒体、着脱可能なメモリカード若しくはディスク、各種タイプのDVD(Digital Versatile Disk)、テープ、カセットなどを含むかもしれない。命令は、何れか適切なハイレベル、ローレベル、オブジェクト指向、ビジュアル、コンパイル及び/又はインタープリットされたプログラミング言語を用いて実現されるソースコード、コンパイルされたコード、インタープリットされたコード、実行可能コード、静的コード、動的コード、暗号化されたコードなどの何れか適切なタイプのコードを含むかもしれない。
【0103】
特段の指摘がない場合、“処理”、“計算”、“算出”、“決定”などの用語は、計算システムのレジスタ及び/又はメモリ内において物理的な量(電子的など)として表現されるデータを、計算システムのメモリ、レジスタ又は他の情報格納、伝送若しくは表示装置内における物理的な量として同様に表される他のデータに処理及び/又は変換するコンピュータ、計算システム又は同様の電子計算装置のアクション及び/又はプロセスを表すことが理解されるかもしれない。実施例はこれに限定されない。
【0104】
実施例の完全な理解を提供するため、多数の具体的な詳細が提供された。しかしながら、これらの実施例はこれらの具体的な詳細なしに実現可能であることは当業者に理解されるであろう。他の例では、実施例を不明りょうにしないため、周知の処理、コンポーネント及び回路は詳細には説明されていない。ここに開示される具体的な構造的及び機能的詳細は、典型例であり、実施例の範囲を限定するものでないことが理解できる。
【0105】
各項性は、構造的特徴及び/又は方法的動作に固有の言語により説明されたが、添付した請求項に規定される構成は上述した具体的な特徴又は動作に必ずしも限定されるものでないことが理解されるべきである。上述した具体的特徴及び動作は、請求項を実現する形態例として開示されている。