(57)【特許請求の範囲】
【請求項１】
装置の処理手段にプログラムが実行されることにより、前記装置が実行する方法であって、
クライアントデバイスによって使用されているコンテンツの中に表されているコンセプトを示す第一のデータを決定することと；
前記クライアントデバイスの現在のコンテクストを示す第二のデータを決定することと；
前記第一のデータ及び前記第二のデータに基づいて、ネットワークサービスにより提供される機能を決定することと；
前記決定した機能を示すメッセージを、前記クライアントデバイスに送信するか、又は、前記ネットワークサービスを起動し得る外部サーバに送信することと；
を含む、方法。
【請求項２】
クライアントデバイスによって使用されているコンテンツの中に表されているコンセプトを示す第一のデータを決定する手段と；
前記クライアントデバイスの現在のコンテクストを示す第二のデータを決定する手段と；
前記第一のデータ及び前記第二のデータに基づいて、ネットワークサービスにより提供される機能を決定する手段と；
前記決定した機能を示すメッセージを、前記クライアントデバイスに送信するか、又は、前記ネットワークサービスを起動し得る外部サーバに送信する手段と；
を備える、装置。
【請求項３】
装置の処理手段にプログラムが実行されることにより、前記装置が実行する方法であって、
クライアントデバイスによって使用されているコンテンツの中に表されているコンセプトを示す第一のデータを決定することと；
前記クライアントデバイスの現在のコンテクストを示す第二のデータを決定することと；
ネットワークサービスにより提供される機能を決定すべく、前記第一のデータ及び前記第二のデータを、機能ルックアップサービスに送信することと；
前記送信することに応じて、前記機能ルックアップサービスから、決定された機能を示すメッセージを受信することと；
前記決定された機能を示す情報を前記クライアントデバイスに送信するか、又は、前記決定された機能を起動することと；
を含む、方法。
【請求項４】
クライアントデバイスによって使用されているコンテンツの中に表されているコンセプトを示す第一のデータを決定する手段と；
前記クライアントデバイスの現在のコンテクストを示す第二のデータを決定する手段と；
ネットワークサービスにより提供される機能を決定すべく、前記第一のデータ及び前記第二のデータを、機能ルックアップサービスに送信する手段と；
前記送信することに応じて、前記機能ルックアップサービスから、決定された機能を示すメッセージを受信する手段と；
前記決定された機能を示す情報を前記クライアントデバイスに送信するか、又は、前記決定された機能を起動する手段と；
を備える、装置。
【請求項５】
クライアントデバイスであって、
前記クライアントデバイスによって使用されているコンテンツの中に表されているコンセプトを示す第一のデータを決定する手段と；
前記クライアントデバイスの現在のコンテクストを示す第二のデータを決定する手段と；
ネットワークサービスにより提供される機能を決定すべく、前記第一のデータ及び前記第二のデータを、機能ルックアップサービスに送信する手段と；
前記送信することに応じて、前記機能ルックアップサービスから、決定された機能を示すメッセージを受信する手段と；
前記決定された機能示す情報を、前記ネットワークサービスを提供するサーバに送信する手段と；
を備える、クライアントデバイス。
【請求項６】
複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つと関係付けるデータ構造を形成する手段を備える、請求項２に記載の装置。
【請求項７】
前記コンセプトを示す前記第一のデータに基づいて前記ネットワークサービスにより提供される機能を決定する手段は、前記機能と前記コンセプトの識別子との間の関係を前記データ構造の中で見つける手段を備える、請求項６に記載の装置。
【請求項８】
前記データ構造を形成する手段は、複数の前記ネットワークサービスに提供される複数の機能のそれぞれを、前記クライアントデバイスのコンテクストの識別子の少なくとも一つと関係付けるデータ構造を形成する手段を備える；
請求項６または７に記載の装置。
【請求項９】
前記ネットワークサービスにより提供される前記機能を決定する手段は、前記クライアントデバイスの前記現在のコンテクストを含むデバイスコンテクストの識別子と前記機能との関係を前記データ構造の中で見つける手段を備える、請求項８に記載の装置。
【請求項１０】
前記クライアントデバイスの前記現在のコンテクストを示す前記第二のデータを決定する手段は、前記第二のデータを示すメッセージを受信する手段を備える、請求項２及び６から９のいずれか１項に記載の装置。
【請求項１１】
前記クライアントデバイスにより使用されているコンテンツに表されている前記コンセプトを示す前記第一のデータを決定する手段は、
前記コンテンツに基づいてメディアタイプ特性を示すメッセージを受信する手段と；
前記メディアタイプ特性に基づいて前記コンセプトを示す前記第一のデータを決定する手段と；
を含む、請求項２及び６から１０のいずれか１項に記載の装置。
【請求項１２】
前記クライアントデバイスにより使用されているコンテンツに表されている前記コンセプトを示す前記第一のデータを決定する手段は、
前記コンテンツを示すメッセージを受信する手段と；
前記コンテンツに基づいてメディアタイプ特性を決定する手段と；
前記メディアタイプ特性に基づいて前記コンセプトを示す前記第一のデータを決定する手段と；
を含む、請求項２及び６から１１のいずれか１項に記載の装置。
【請求項１３】
装置の処理手段にプログラムが実行されることにより、前記装置が実行する方法であって、
複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つ及びデバイスコンテクストの識別子の少なくとも一つと関係付けるデータ構造を形成することを含み、ここで前記データ構造は、ネットワークサービスにより提供される機能を決定するために前記装置又は他の装置によって使用される、方法。
【請求項１４】
装置であって、
複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つ及びデバイスコンテクストの識別子の少なくとも一つと関係付けるデータ構造を形成する手段を備え、ここで前記データ構造は、ネットワークサービスにより提供される機能を決定するために前記装置又は他の装置によって使用される、装置。
【請求項１５】
装置の一つ又は複数のプロセッサにより実行されることにより、前記装置に、請求項１または１３に記載の方法を少なくとも実行させる命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【背景】
【０００１】
ワイヤレス技術や携帯電話などのサービスプロバイダやデバイス製造業者は、魅力的なネットワークサービスなどを通じて、顧客に価値や利便性を提供しようと日々努力している。多くのデバイス製造業者は、自社によって製造されるハードウェアプラットフォームのためのソフトウェアアプリケーションを開発するために、外部の組織を引き入れようとしている。これは、例えば、そのプラットフォームの発表後にユーザに短期間の間に多くのソフトウェアを提供しようとする上で役に立つ。これらのアプリケーションは、しばしば、通信ネットワークを介して利用可能なバックエンドサービスに依存している。このようなバックエンドサービスとしては、例えばマップサービス、POI（points of interest；）サービス、電話番号照会サービス、為替レートに関するサービス、画像処理サービス、顔認識サービス、楽曲同定サービスなどがあり、他にも、何千ものバックエンドサービスが存在する。これらのサービスは、通常、通信ネットワークを介してアクセスされる、特定のメッセージプロトコルを通じて、特定のアプリケーションプログラミングインタフェース（API）を用いて呼び出されるようになっている。アプリケーションの開発者にとって、アプリケーションをサポートする適切なバックエンドサービスを同定することは、重要な課題となっている。
【いくつかの例示的実施形態】
【０００２】
このように、ユーザデータに基づいてネットワーク機能を同定するためのアプローチについての必要性が存在する。本明細書において、ユーザデータとは、コンテンツと呼ばれたり、コンテクストに基づくものであったりすることができる。コンテンツとは、例えば、ユーザのデバイスに格納されるサウンドクリップや写真のようなものであることができる。コンテクストとは、ユーザのデバイスで同定された時間や場所、アクティビティのようなものであることができる。
【０００３】
ある実施形態では、方法が、デバイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定することを含む。この方法はまた、前記第一のデータに基づいて、ネットワークサービスにより提供される機能を決定することを含む。
【０００４】
別の実施形態では、装置が、少なくとも一つのプロセッサと、一つ又は複数のプログラムのためのコンピュータプログラムコードを格納する少なくとも一つのメモリとを備える。前記少なくとも一つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも一つのプロセッサと協働して、前記装置に、少なくとも、デバイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定することを実行させる。前記装置はまた、前記第一のデータに基づいて、ネットワークサービスにより提供される機能を決定するようにされる。
【０００５】
別の実施形態では、方法が、少なくとも一つのサービスへのアクセスを可能にする、少なくとも一つのインタフェースへのアクセスを容易にすることを含む。前記少なくとも一つのサービスは、少なくとも、デバイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定することを行うように構成される。前記少なくとも一つのサービスはまた、前記第一のデータに基づいて、異なるネットワークサービスで提供される機能を決定する。
【０００６】
別の実施形態では、コンピュータ読み取り可能な記憶媒体に担持される一つ又は複数の命令の一つ又は複数のシーケンスが、一つ又は複数のプロセッサにより実行されると、装置に、バイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定することを、少なくとも部分的に遂行させる。前記装置はまた、前記第一のデータに基づいて、ネットワークサービスにより提供される機能を決定するようにされる。
【０００７】
別の実施形態では、装置が、デバイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定する手段を備える。前記装置はまた、前記第一のデータに基づいて、ネットワークサービスにより提供される機能を決定する手段を備える。
【０００８】
別の実施形態では、方法が、複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つと関係付けるデータ構造を形成することを含む。
【０００９】
別の実施形態では、装置が、少なくとも一つのプロセッサと、一つ又は複数のプログラムのためのコンピュータプログラムコードを格納する少なくとも一つのメモリとを備える。前記少なくとも一つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも一つのプロセッサと協働して、前記装置に、少なくとも、複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つと関係付けるデータ構造を形成することを実行させる。
【００１０】
別の実施形態では、方法が、少なくとも一つのサービスへのアクセスを可能にする少なくとも一つのインタフェースへのアクセスを容易にすることを含む。前記少なくとも一つのサービスは、複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つと関係付けるデータ構造を形成するように構成される、
【００１１】
別の実施形態では、コンピュータ読み取り可能な記憶媒体により担持される一つ又は複数の命令の一つ又は複数のシーケンスが、一つ又は複数のプロセッサにより実行されるとき、装置に、複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つと関係付けるデータ構造を形成することを遂行させる。
【００１２】
別の実施形態では、コンピュータプログラム製品が、一つ又は複数のプロセッサにより実行されるときに、装置に、上記いずれかに記載の方法のステップを実行させる一つ又は複数の命令の一つ又は複数のシーケンスを含む。
【００１３】
別の実施形態では、装置が、  複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つと関係付けるデータ構造を形成する手段を備える。前記装置はまた、複数のネットワークサービスにより提供される複数の機能のそれぞれを、デバイスコンテクストの識別子の少なくとも一つと関係付けるデータ構造を形成する手段を備える。
【００１４】
本発明の様々な例示的実施形態において、以下のことが適用されてもよい。
【００１５】
（１）データ、及び／又は（２）情報、及び／又は（３）少なくとも一つの信号の処理を容易にすること、及び／又は、前記（１）〜（３）を処理することを含む方法であって、前記（１）データ及び／又は前記（２）情報及び／又は前記（３）少なくとも一つの信号は、その少なくとも一部が、本発明の実施形態に関連して本願に開示された方法やプロセスのいずれかまたはこれらの組み合わせに依存するか、またはその少なくとも一部が上記方法やプロセスのいずれかまたはこれらの組み合わせから導かれる。
【００１６】
本発明の様々な例示的実施形態において、以下のことが適用されてもよい。
【００１７】
少なくとも一つのサービスへのアクセスを可能にするように構成される少なくとも一つのインタフェースへのアクセスを容易にする方法であって、前記少なくとも一つのサービスは、本願に開示されるネットワークやサービスプロバイダによる方法やプロセスのいずれかまたはこれらの組み合わせを実行するように構成される。
【００１８】
本発明の様々な例示的実施形態において、以下のことが適用されてもよい。
【００１９】
（１）少なくとも一つのデバイスユーザインタフェース要素、及び／又は；（２）少なくとも一つのデバイスユーザインタフェース機能；を形成することを容易にすること、及び／又は、変形することを容易にすることを含む方法であって、前記（１）少なくとも一つのデバイスユーザインタフェース要素及び／又は前記（２）少なくとも一つのデバイスユーザインタフェース機能は、その少なくとも一部が、本発明の実施形態に関連して本願に開示された方法やプロセスのいずれかまたはこれらの組み合わせによって得られたデータ及び／又は情報、及び／又は、本発明の実施形態に関連して本願に開示された方法やプロセスのいずれかまたはこれらの組み合わせによって得られた少なくとも一つの信号に基づく。
【００２０】
本発明の様々な例示的実施形態において、以下のことが適用されてもよい。
【００２１】
（１）少なくとも一つのデバイスユーザインタフェース要素、及び／又は；（２）少なくとも一つのデバイスユーザインタフェース機能；を形成すること及び／又は変形することを含む方法であって、前記（１）少なくとも一つのデバイスユーザインタフェース要素及び／又は前記（２）少なくとも一つのデバイスユーザインタフェース機能は、その少なくとも一部が、本発明の実施形態に関連して本願に開示された方法やプロセスのいずれかまたはこれらの組み合わせによって得られたデータ及び／又は情報、及び／又は、本発明の実施形態に関連して本願に開示された方法やプロセスのいずれかまたはこれらの組み合わせによって得られた少なくとも一つの信号に基づく。
【００２２】
様々な例示的実施形態において、方法またはプロセスは、サービスプロバイダや携帯機器の側で実行されてもよく、また、サービスプロバイダと携帯機器とで遂行されるべきアクションをシェアするいかなる方法によっても実行されてもよい。
【００２３】
本発明のさらなる側面や特徴、利点が、以下の詳細説明によって容易に明らかになる。以下の詳細説明では、本発明を実施するための最良の形態であると考えられているものも含め、様々な具体的な実施形態や実装形態が例示される。本発明はまた、さらに多くの様々な異なる実施形態を取りうることができ、そのいくつかのディテールは、本発明の思想や範囲を逸脱することなく、多くの明白な観点から修正可能なものである。本明細書による説明や図面は例示的な性質を有するものと考えられるべきであり、制限的なものとみなされるべきではない。
【図面の簡単な説明】
【００２４】
添付の図面には、本発明の実施形態が例示されている。これらはあくまでも例示を目的とするものであって、限定の目的のためのものではない。
【図１】ある実施形態に従うシステムの略図である。このシステムは、ユーザ装置のコンテンツやコンテクストに基づいてネットワーク機能を同定する能力を有する。
【図２】図２Ａは、一つ又は複数のオブジェクト又はコンテクスト関連する機能を格納するためのデータ構造の略図である。図２Ｂは、機能−コンセプト−コンテクストデータ構造のためのインデックスを格納するためのデータ構造の略図である。
【図３】図３Ａは、ある実施形態に従う、クライアントプロセスのモジュールの略図である。このクライアントプロセスは、クライアントにおいてコンテンツやコンテクストに基づいた機能を使う。図３Ｂは、ある実施形態に従う、ユーザオリエンテッドサービスモジュールの略図である。図３Ｃは、ある実施形態に従う、機能ルックアップサービスモジュールの略図である。
【図４】ある実施形態に従う、機能ルックアップ処理のフローチャートである。
【図５】ある実施形態に従う、機能ルックアップを使用するアプリケーションの処理のフローチャートである。
【図６】ある実施形態に従う、機能−コンセプト−コンテクストデータ構造を構築するための処理のフローチャートである。
【図７Ａ】様々な実施形態に従う、図５の処理で利用されるユーザインタフェースの略図である。
【図７Ｂ】様々な実施形態に従う、図５の処理で利用されるユーザインタフェースの略図である。
【図７Ｃ】様々な実施形態に従う、図５の処理で利用されるユーザインタフェースの略図である。
【図７Ｄ】様々な実施形態に従う、図５の処理で利用されるユーザインタフェースの略図である。
【図７Ｅ】様々な実施形態に従う、図５の処理で利用されるユーザインタフェースの略図である。
【図８】本発明の実施形態を実装するために使用されうるハードウェアの略図である。
【図９】本発明の実施形態を実装するために使用されうるチップセットの略図である。
【図１０】本発明の実施形態を実装するために使用されうる携帯端末（例えばハンドセット）の略図である。
【いくつかの実施形態の説明】
【００２５】
以下、コンテンツ又はコンテクストに基づいてネットワーク機能を同定する方法や装置、コンピュータプログラムの例が開示される。以下の記述において、説明の目的のために、多くの具体的な詳細な構成が紹介される。これらは、本発明の実施形態を深い理解に資するためのものである。なお、当業者には明らかなことである、本発明の実施形態は、これらの詳細構成がなくとも実施される場合があり、また、均等な構成によって実施される場合もある。よく知られた構成やデバイスが、ブロック図の形で紹介されることがあるが、これは、本発明の実施形態を不必要に不明瞭にすることを避けるためである。
【００２６】
ここで、コンテンツという用語は、いかなるデジタルデータを表してもよい。例えば、人間に知覚されるために提示されるデータを含むことができ、そのようなデータとは、例えば、デジタルサウンド、楽曲、デジタルイメージ、デジタルゲーム、デジタルマップ、POI情報、（音楽ビデオやニュースクリップ、劇場公開ビデオのような）デジタルビデオ、ドキュメント、広告、プログラム命令、データオブジェクトなどであることができる。その他にも、いかなるデジタルデータであってもよく、また、これらの組合せであってもよい。コンテンツは、ファイルやデータベースのような、一つ又は複数のデータ構造の中に格納されることができる。本明細書においては、デジタル写真のために好適なネットワーク機能を同定することについての様々な実施形態が説明される。しかし、本明細書で説明される手法は、他のタイプのコンテンツについても使用されうるものであり、そのように意図されている。他のタイプのコンテンツとは、上述のように、例えば、録音されたサウンドや、録音されたビデオ、ゲームのデータ、ネットワークから検索されたデータなどであることができる。
【００２７】
図１は、ある実施形態に従うシステム１００の略図である。システム１００は、ユーザ装置のコンテンツやコンテクストに基づいて、ネットワーク機能を同定する能力を有する。ユーザ装置（ＵＥ）１０１は一つ又は複数のユーザオリエンテッドサービス110a−１１０ｎに接続しうる。以下、ユーザオリエンテッドサービス１１０ａ−１１０ｎはまとめてサービス１１０と称されることがある。サービス１１０aへの接続は、ＷＷＷブラウザ１０７や通信ネットワーク１０５を介して通信を行なうクライアントプロセス11２のような、一つ又は複数のクライアントプロセスを用いて行われる。ＵＥ１０１はまた、ＵＥ１０１やそのユーザのローカルなコンテクストを決定するコンテクストエンジン１０３を備える。ローカルなコンテクストとは、例えばローカルタイム、位置決定システムからの地理的位置、外気の温度、気圧、音や光、ＵＥ１０１で実行中のアプリケーション、ＵＥ１０１でレンダリングされているコンテンツ、ユーザインタフェース（ＵＩ）を介するユーザ入力などであることができる。
【００２８】
例であるが、システム１００の通信ネットワーク１０５は、一つ又は複数のネットワークを含むことができる。このネットワークは、図示されていないが、例えばデータネットワークや電話ネットワーク、又はこれらを組み合わせたものであることができる。データネットワークは、例えば、ローカルエリアネットワーク（ＬＡＮ）やメトロポリタン エリア ネットワーク（ＭＡＮ）、広域ネットワーク（ＷＡＮ）、公衆データネットワーク（例えばインターネット）、近距離無線ネットワークなどであることができ、また、他の好適なパケット交換ネットワークであることができる。なお、そのようなパケット交換ネットワークには、商業的に利用可能なものもあれば、個人の光ケーブルや光ファイバネットワークのような、私有のパケット交換ネットワークもあり、またこれらを組み合わせたものであってもよい。無線ネットワークは、例えばセルラネットワークであることができ、これは、ＥＤＧＥ（enhanced data rates for global evolution）やＧＰＲＳ（general packet radio service），ＧＳＭ（global system for mobile communications），ＩＭＳ（Internet protocol multimedia subsystem），ＵＭＴＳ（universal mobile telecommunications system）など、様々な技術を利用したものであることができる。また、セルラネットワークで使用されうる無線媒体としては、WiMAX（worldwide interoperability for microwave access）やＬＴＥ（Long Term Evolution），ＣＤＭＡ（符号分割多元接続），ＷＣＤＭＡ（Wideband Code Division Multiple Access），ＷｉＦｉ，無線ＬＡＮ（ＷＬＡＮ），Bluetooth（登録商標），ＩＰデータ放送，衛星，モバイルアドホックネットワークなどがあり、またこれらを組み合わせたものであってもよい。
【００２９】
ＵＥ１０１はいかなるタイプの端末であってもよく、移動端末や固定端末、可搬型端末であってもよい。例えば、携帯ハンドセットや局，ユニット，デバイス，マルチメディアコンピュータ，マルチメディアタブレット，インターネットノード，ノートブックコンピュータ，ネットブック，タブレットコンピュータ，携帯情報端末（ＰＤＡ），音楽やビデオのプレーヤー，デジタルカメラやデジタルビデオカメラ，位置同定機器，テレビ受像機，無線放送受信機，電子ブック機器，ゲーム機器，及びこれらを組み合わせたものであってもよい。さらに、これらのアクセサリーや周辺機器を含んでもよく、またそれらの組合せを含んでもよい。ＵＥ１０１はまた、ユーザに対するとのようなタイプのインタフェースを含んでもよく、例えば、ウェアラブル回路などを含んでもよい。
【００３０】
例であるが、ＵＥ１０１やユーザオリエンテッドサービス１１０は、互いに通信したり、通信ネットワーク１０５の他の要素と通信したりすることができる。この通信には、よく知られたプロトコルを用いることができるが、新しいプロトコルや開発中のプロトコルを用いてもよい。これに関連して、プロトコルは、ネットワーク１０５の各ネットワークノードが、通信リンクを介して送信される情報に基づいて、どのように相互作用するかを定義するルールのセットを含む。プロトコルは、様々なタイプの物理信号の生成や受信から、これらの信号を送信するためのリンクの選択、これらの信号により提示される情報のフォーマット、コンピュータ上で動作しているとのソフトウェアアプリケーションが情報を送受信するかの識別など、各ノードの動作の様々なレイヤにおいて使用される。ネットワーク上で情報交換する複数のプロトコルレイヤのコンセプトが、ＯＳＩ参照モデルで記述されている。
【００３１】
ネットワークノード間の通信は、通常、パケットに分割したデータを交換することにより実現される。各パケットは、通常、（１）特定のプロトコルに関するヘッダ情報と、（２）ヘッダ情報の次に位置するペイロード情報とを有する。ペイロード情報は、プロトコルによって個々に処理される。プロトコルによっては、（３）ペイロード情報の次に位置するトレーラ情報も有する。この情報は、ペイロード情報の終わりを示す。ヘッダ情報は、パケットの送信元や送信先，ペイロードの長さなど、そのプロトコルで使われる各種の情報を含んでいる。しばしば、あるプロトコルのペイロードに含まれるデータは、ＯＳＩ参照モデルにおけるより高次のレイヤのプロトコルに関連するヘッダとペイロードを含んでいる。また、あるプロトコルのヘッダには、そのペイロードに含まれている次のプロトコルのタイプに関する情報が含まれている。高次のプロトコルは、低次のプロトコルにカプセル化されていると表現される。パケットに含まれるヘッダは、複数の異なるネットワークで運ばれる。例えばインターネットにおいては、ＯＳＩ参照モデルで記述されるように、通常、レイヤ１用の物理ヘッダ，レイヤ２用のデータリンクヘッダ，レイヤ３用のインターネットワークヘッダ，レイヤ４用のトランスポートヘッダ，及び、レイヤ５−７の各種アプリケーション用のヘッダが用いられる。
【００３２】
クライアントサーバモデルは、コンピュータ処理の相互関係において広く知られており、また使われている。クライアントサーバモデルによれば、クライアントプロセスは、リクエストを含むメッセージをサーバプロセスに送信し、サーバプロセスは、サービスを提供することによって応答する。サーバプロセスは、応答を含むメッセージをクライアントプロセスに返すこともある。しばしば、クライアントプロセスとサーバプロセスは異なるコンピュータ装置で実行される。このような装置は、例えばホストと呼ばれ、ネットワーク通信のための一つまたは複数のプロトコルを用いてネットワークを介して通信しあう。「サーバ」との用語は、一般的に、サービスを提供するプロセスや、処理が行われるホストコンピュータを言い表すときに使われる。「クライアント」との用語は、一般的に、リクエストを生成するプロセスを表現するときに使われるが、処理が行われるホストコンピュータを表現するときにも使われる。なお、本明細書では、文脈から特に明らかでない限り、「サーバ」や「クライアント」との用語は、ホストコンピュータ表現するよりも、プロセスを表現するためにおもに使用される。サーバによって遂行されるプロセスは、複数のプロセスや複数のホストに分解されることができる。この場合の複数のホストのそれぞれを、ティア（tier）と呼ぶことがある。分解する理由は、例えば、信頼性やスケーラビリティ、冗長性などである。通信ネットワークに接続されているほとんどのノードで利用可能な有名なクライアントプロセスは、ＷＷＷクライアントである。これは、ウェブブラウザやブラウザなどと呼ばれ、ＨＴＴＰに従うフォーマットのメッセージを用いて、ウェブページを提供するＷＷＷサーバと呼ばれる多くのサーバと相互に通信する。例えば、ある実施形態において、ネットワークサービス１１０はＷＷＷサーバであることができ、ＵＥ１０１はブラウザ１０７を有することができる。ブラウザ１０７はこれらのサービスを取得するために用いられることができる。
【００３３】
ユーザオリエンテッドサービス１１０は、アプリケーションプログラミングインタフェース１２２ａ−１２２ｎを通じて、バックエンドサービス１２０ａ−１２０ｎを用いる。なお、以下において、バックエンドサービス１２０ａ−１２０ｎは、まとめて符号１２０で表されることがあり、アプリケーションプログラミングインタフェース１２２ａ−１２２ｎは、まとめてＡＰＩ１２２で表されることがある。多くのバックグラウンドサービスは、それらのネットワークアドレスやＡＰＩ、メッセージプロトコルを、サービスレジストリ１２８において公開する。例えばウェブサービスレジストリはＵＤＤＩ（Universal Description, Discovery and Integration）を含み、これは、ＳＯＡＰ（ソープ：Simple Object Access Protocol）メッセージによって問い合わせを受け、ＷＳＤＬ（Web Services Description Language）ドキュメントへのアクセスが提供される。ＷＳＤＬドキュメントには、そのディレクトリにリストされているウェブサービスにアクセスするために必要なプロトコルの要件やメッセージフォーマットが記載されている。
【００３４】
ＵＥ１０１にユーザオリエンテッドアプリケーションを提供するために、アプリケーションの開発者はクライアントプロセス（例えばクライアントプロセス１１２）を書き、バックエンドサービスを使用する。ここで、当該アプリケーションの開発者は、個人または個人のチームであってもよい。バックエンドサービス１２０の使用は、直接に行われてもよいし、やはり開発者によって書かれたユーザオリエンテッドサービス１１０を介して間接的に行われてもよい。アプリケーション開発者は、クライアントプロセスをＵＥ１０１に提供する。ある場合において、アプリケーション開発者は、ユーザインタフェースとしてＵＥ１０１のブラウザ１０７を使用し、一つまたは複数のバックエンドサービス１２０と相互作用するユーザオリエンテッドサービス１１０を作成する。作成したユーザオリエンテッドサービス１１０は、サービス１１０のリンクを介してＵＥ１０１に届けられてもよい。全てのバックエンドサービス１２０及びそれらの対応するＡＰＩやプロトコルについての知識は、しばしば、技術に精通した開発者の非常に多くの経験を必要とする。これら多くのバックエンドサービスを起動することは、ＵＥ１０１やサービス１１０のホストにおいて、多くのストレージや処理能力を使用することになる。
【００３５】
さらに、あるユーザオリエンテッドアプリケーションにおいて、アプリケーションにおいて何か適切なアクションであるかは、アプリケーションの操作のためにユーザにより選択される特定のコンテンツに依存する。例えば、ユーザが建築物を撮影したのか、トウモロコシ畑を撮影したのか、人物のグループを撮影したのか、などである。起動されるべきバックエンドサービス１２０は、しばしば、コンテンツによって何が表現されているが依存する。例えば、顔認識サービスや映画のチケットの予約サービスは、ユーザによって提供されたものがトウモロコシ畑の写真であれば、ふさわしくないであろう。ユーザによって適切な全てのバックエンドサービスに提供されるコンテンツやプログラミングインタフェースを予測することは、多くのユーザオリエンテッドアプリケーションにとって、極めて大変で複雑とされており、そのようなアプリケーションの開発や提供は遅れている。このような事情で、バックエンドサービス１２０の適切な機能を一様に及び／または動的に同定することができれば、ユーザオリエンテッドアプリケーションは利益を得ることができる。
【００３６】
この問題に対応するため、図１のシステム１００は、ユーザ装置のコンテンツ又はコンテクストに基づいてネットワーク機能を同定する能力を導入している。図示される実施形態において、この強化された能力は、機能ルックアップサービス１３０と、機能−コンセプト−コンテクストデータ構造１３４とを含む。図示される機能ルックアップサービス１３０は、自身のＡＰＩ１３２と、ゼロ又はそれ以上のインデックス１３６とを有し、複数のバックエンドサービス１２０のための単一のゲートウェイとしての役割を果たす。インデックス１３６は、存在する場合、機能ルックアップサービス１３０がデータ構造１３４の中から、ユーザの現在のコンテンツやコンテクストの一方又は両方に関連するバックエンドサービスを効率的に見つけることを可能にする。機能ルックアップサービス１３０は、一つまたは複数のバックエンドサービス１２２について、これらがサービスレジストリ１２８において検索されることを可能にし、また、クライアント１１２やユーザオリエンテッドサービス１１０から起動されることを可能にする。この新しい機能ルックアップサービス１３０は、ユーザに供給されたコンテンツから抽出された特徴を使用して、バックエンドサービス１２０の適当な機能を提案するが、当該特徴には、機能−コンセプト−コンテクストストレージ１３４において上級のバックエンドサービス１２０が関連付けられる。クライアント１１２やユーザオリエンテッドサービス１１０は、提供される機能に基づいて、特定のバックエンドサービス１２０やその機能を特定し、また、バックエンドサービス１２０に必要なパラメータをための値を決定して、ＡＰＩ１２２や対応するプロトコルに従って送信する。機能−コンセプト−コンテクストデータ構造１３４及び機能ルックアップサービス１３０は、広範囲のバックエンドサービスを提供しつつ、クライアント１１２や（もし存在するなら）対応するユーザオリエンテッドサービス１１０の処理を簡単にするという効果を達成するための手段の例である。これらのバックエンドサービス２それぞれ明示的にサポートされるクライアントに比べて、クライアントプロセス１１２は、広範囲のバックエンドサービスの提供するために極めて少ない量のメモリしか消費しない。
【００３７】
図２Ａは、一つまたは複数のコンセプト又はコンテクストに関連付けられる機能を格納するデータ構造エントリ２００の略図である。図２Ａ及び図２Ｂにはデータ構造やフィールドが統合されたブロックとして描かれている。また、それらは図示目的のための特定の順番で描かれている。しかし、別の実施形態では、いずれかのデータ構造やフィールドやそれらの部分は、異なる順番に並べられてもよく、一つまたは複数のネットワークノードの一つまたは複数のデータ構造やデータベースに存在してもよく、または省略されていてもよく、または一つまたは複数の追加的なフィールドが加えられてもよく、いくつかのものを結合するなどの方法によりデータ構造が変更されてもよいことに留意されたい。
【００３８】
図示される実施形態において、エントリ２００は、サービス識別子（ＩＤ）フィールド２０２、機能識別子（ＩＤ）フィールド２０４、ＡＰＩ識別子（ＩＤ）フィールド２０６、プロトコルフィールド２０８、パラメータフィールド２１０、記述フィールド２２０、メディアタイプフィールド２３０、関連コンセプトフィールド２４０、関連コンテクストフィールド２５０を有する。
【００３９】
サービスＩＤフィールド２０２は、バックエンドサービス１２０の一つを示すデータを格納する。シールド１０２においてバックエンドサービスを識別する方法としては、いかなるもの用いてもよい。例えば、本願の技術分野でよく知られているように、サービスのネットワークアドレスや、バックエンドサービスに関連付けられたサービスレジストリ１２８のキーを用いることができる。なお、当該ネットワークアドレスとしては、ＩＰアドレスやＴＣＰポート、プロトコルドメイン、ネームディレクトリ、ファイルネームを利用したものであってもよい。機能ＩＤフィールド２０４は、フィールド２０２に示されるバックエンドサービスの個々の機能（存在する場合に）を示すデータを格納する。ＡＰＩ  ＩＤフィールド２０６は、フィールド２０４に示される機能のためのＡＰＩを示すデータを格納する。このデータは、例えば、ＡＰＩが公開されているネットワークアドレスであったり、サービスにおけるＡＰＩセット自身の識別子であったりすることができる。プロトコルフィールド２０８はフィールド２０６に示されるＡＰＩでデータを交換するためのメッセージプロトコルを示す。ある実施形態において、ＡＰＩ又はプロトコル、またはその両方は、フィールド２０２に示されるサービスレジストリ１２８のキーにおいて利用可能である。その場合、フィールド２０６や２０８の一方又は両方が省略される場合もある。フィールド２０６や２０８の一方又は両方を含めることは、バックエンドサービスの機能を起動するために必要なネットワーク帯域幅を減少させるという効果を達成するための手段の一例である。フィールド２０６や２０８の一方又は両方を省略することは、機能−コンセプト−コンテクストデータ構造１３４の記憶手段のフットプリントを削減するという効果を達成するための手段の一例である。
【００４０】
パラメータフィールド２１０は、入力パラメータや出力パラメータを示すデータを格納する。入力パラメータには、機能のために値が提供される。出力パラメータには、フィールド２０２や２０４に示される機能から値が提供される。例えばパラメータフィールド２１０は、場合に応じて、入力及び出力パラメータの名前や単位、有効範囲、デフォルト値などのデータを格納することができる。ある実施形態において、パラメータはフィールド２０２に示されるサービスレジストリ１２８のキーにおいて利用可能である。この場合、フィールド２１０は省略されることができる。フィールド２１０を含めることは、バックエンドサービスの機能を起動するために必要なネットワーク帯域幅を減少させるという効果を達成するための手段の一例である。フィールド２１０を省略することは、機能−コンセプト−コンテクストデータ構造１３４の記憶手段のフットプリントを削減するという効果を達成するための手段の一例である。
【００４１】
記述フィールド２２０はフィールド２０２や２０４で特定される機能によって実行される処理を説明するテキストなどのデータを格納することができる。そのようなテキストは、ＵＥ１０１のエンドユーザーによって理解されうるものであってもよい。記述フィールド２２０は、例えば、"ＧＰＳ座標に一致する通りの住所を決定する"や、"写真に写っている有名人の顔を判断する"、"行こうとしている劇場のショーのチケットを予約する"、"目的の都市への飛行機のチケットを予約する"、"行こうとしているレストランのテーブルを予約する"、"サウンドサンプルに似た楽曲のタイトルとアーティストを判断する"、"株や債権を市場で売買する際の値段を決定する"、"商品を市場で売買する際の値段を決定する"、"商品を売っている店を決定する"、"料理のレシピを提供する"、"銀行口座に支払を実行する"、などであることができる。ある実施形態において、この記述はフィールド２０２に示されるサービスレジストリ１２８のキーにおいて利用可能である。この場合、フィールド２２０は省略されることができる。フィールド２２０を含めることは、ＵＥ１０１のユーザにバックエンドサービスの機能を提示するために必要なネットワーク帯域幅を減少させるという効果を達成するための手段の一例である。フィールド２２０を省略することは、機能−コンセプト−コンテクストデータ構造の記憶手段のフットプリントを削減するという効果を達成するための手段の一例である。
【００４２】
メディアタイプフィールド２３０は、機能が処理を行うメディアのタイプを示すデータを格納する。メディアのタイプとは、例えば、イメージファイルフォーマット、オーディオファイルフォーマット、ビデオファイルフォーマット、文書処理ドキュメントフォーマット、スプレッドシートフォーマット、マークアップ言語のフォーマット等々であることができる。ある実施形態において、この情報は、ユーザから提供されたコンテンツに対して処理を行わない機能を取り除くための弁別情報として用いられることができる。ある実施形態において、この記述はフィールド２０２に示されるサービスレジストリ１２８のキーにおいて利用可能である。この場合、フィールド２３０は省略されることができる。フィールド２３０を含めることは、バックエンドサービスの適切な機能を決定するために必要なネットワーク帯域幅を減少させるという効果を達成するための手段の一例である。フィールド２３０を省略することは、機能−コンセプト−コンテクストデータ構造の記憶手段のフットプリントを削減するという効果を達成するための手段の一例である。
【００４３】
関連コンセプトフィールド２４０は、コンセプト特定ライブラリのどのコンセプト（例えば物理オブジェクト）が、フィールド２０２や２０４で特定される機能に関係するのかを示すデータを格納する。画像や音、テキストで特定可能なコンセプトのコンセプトライブラリは、既に知られている。本明細書において、"コンセプト（concept）"とは、セマンティックライブラリまたはオブジェクトライブラリのエントリであり、触知可能なオブジェクトを表すことができる。そのようなオブジェクトとは、例えば人間であったり車であったりすることができる。"コンセプト（concept）"は、触知可能なオブジェクトを表すこともでき、例えば株や債券、又はスキーや水泳のようなアクションであってもよい。"コンセプト"は、しばしばカテゴリにグループ分けされることができ、例えば、自動車や建築物、水に関するもの、航空機に関するものなどであることもできる。実施形態によっては、関連コンセプトフィールド２４０に含まれるコンセプトは、特定の機能が適用される特別のコンセプトやコンセプトのカテゴリである場合もある。例えば、"人間"というコンセプトは、顔認識機能や音声認識機能に関連があり（この場合、メディアタイプはそれぞれ画像や音である）、一方、"食材"というコンセプトは、レシピ機能に関連する（この場合、メディアタイプは食材を示すテキストである）。同様に、"建築物"は、チケットの購入やテーブルの予約に関連があり（メディアタイプは建築物を示すテキスト）、"製品"は小売り機能に関連する（メディアタイプは製品を示すテキスト）。実施形態によっては、"コンセプト"は、目的や文脈的な語彙のいずれかまたは両方の用語によって表現される。この点についてさらに説明する。実施形態によっては、"コンセプト"は文脈的な語彙のコンセプトであり、例えば株や債券であることができる。"コンセプト"は、ユーザから提供されたコンテンツの中の、そのデジタル的な表現の外に存在し、またそれとは独立に存在する。フィールド２４０は、ユーザのコンテンツの中に表現されるコンセプトを、バックエンドシステムの機能に関連付けるという効果を達成するための手段の例である。実施形態によってはフィールド２４０を省略することができ、その場合、機能はコンテクストだけによって選択され、コンテンツ中に表現されている目的やその他のコンセプトによっては選択されない。
【００４４】
関連コンテクストフィールド２５０は、フィールド２０２や２０４に特定される機能に関連する時間的，空間的，または活動に関する情報を示すデータを格納する。実施形態によっては、"コンテクスト"は、次のように、コンテクストの語彙によって表現される。例えば、月曜日，午前１０時，ＧＰＳ位置，通信中，ドキュメントの操作中，待機中，不在などである。しばしば"コンテクスト"は、コンテクストの語彙のある結合に関連する内容を含む。例えば、仕事中，運動中，睡眠中，食事中，休養中などである。例えば、１日のうちの時間や１週間のうちの曜日は銀行機能にとって重要であり、場所は、小売り機能やチケット購入機能、テーブル予約機能にとって重要であり、１年のうちの季節はレシピ機能にとって重要である。通信アクティビティは、テキスト音声変換や音声テキスト変換機能にとって重要である。フィールド２５０は、ＵＥ１０１などのユーザのデバイスに関連するコンテクストをバックエンドシステムの機能に関連付けるという効果を達成するための手段の一例である。実施形態によってはフィールド２５０を省略することもでき、その場合、機能はコンテンツに表現されているコンセプトのみによって選択され、コンテクストによっては選択されない。
【００４５】
フィールド２５０でコンテクストを示す方法は、どのようなものであってもよい。様々な実施形態において、消費者のコンテクストに関連する単語やトピックを特定するために、コンテクストの語彙集やトポロジが開発されてもよい。コンテクストの語彙集やトポロジを生成するための既存のどのような方法を用いてもよい。例えば、消費者のコンテクストについて検討し記述するためのドキュメントが集められる。例えば、消費者が支払いをしようとしているか、またはその他の義務を遂行しようとしているか、または休んでいるか、現在時刻は平日の夜であるかまたは週末であるか、現在の季節は夏であるか冬であるか、消費者は家にいるか外にいるか、消費者は目的地に着いたかまだ途中であるか、ドキュメントは場所の名前を呼び起こすか人の名前を呼び起こすか、消費者は動かないでいるか移動しているか、またどのような速度でどちらの方向に向かって移動しているか、明るいか暗いか、消費者のユーザ装置においてアプリケーションは使用可能であるか、などのようなドキュメントが集められる。これらのドキュメントは検討されて、消費者のコンテクストに関連する単語を決定したり、コンテクストに関連する単語のコレクションを決定したり、これらの単語に関連する使用法を決定したり、またはこれらの組合せを決定したりするために使われる。実施形態においては、語彙集のトポロジはドキュメント中の用語の相対的な出現によって与えられるか推定されるトピックを含む。例えば、様々な実施形態において、ドキュメントのセットの中の用語からトピックを推定するために、当該分野でよく知られたｐＬＳＩ（probabilistic latent semantic indexing）やＬＤＡ（latent Dirichlet allocation）を用いることができる。これらの方法は、ネットワークサービスの消費者の状況に関連するドキュメントのセットからコンテクストに関連する単語やコンテクストのトピックを導くために用いられることができる。各トピックは比較的多くの単語の集合の中のあるグループに関連付けられるため、トピックと単語を関連付けるトポロジや、サブトピックと高次のレベルのトピックとを関連付けるトポロジが存在する。実施形態によっては、コンテクストの語彙集は手動で構築されることができる。または、ODP（Open Directory Project）などの既存の標準的なトポロジを拡張して構築してもよい。これらの実施形態において、ＬＤＡはコンテクスト語彙集の構築には使用されないが、一旦語彙集が構築されると、ＬＤＡを用いてドキュメントを解析し、どのようなトピックやコンテクストがドキュメント中に含まれているかを調べることができるようになる。コンテクスト語彙集トポロジはここで説明される様々な実施形態で使用され、ＵＥ１０１やバックエンドサービスのコンテクスト決定するために使用される。
【００４６】
実施形態によっては、コンテクスト語彙集のルートの下に、カテゴリのレベルとして２つだけが存在する。これらはトピック（topic）と単語（word）である。各トピックは単語のセットによって定義される。各単語は特定の範囲の出現確率を有する。このような実施形態のあるものにおいて、Ｖ個の単語で表現される語彙は、Ｖ次元のベクトルで表現される。そして、全ての単語は、Ｖ次元のベクトルと、その単語に対応する位置以外の全ての位置がゼロであることによって表現される。通常、意味があまりない単語、例えば"冠詞"や前置詞、代名詞や常用語は無視される。トピック（Ｔ）の各々は、Ｖ次元のベクトルと、そのトピックの中の各単語の相対的な出現率によって表される。相対的の出現率は、各単語に対応する位置においてパーセントで表される。全てのトピックはＶ×Ｔのマトリクスによって表される。
【００４７】
コンテクスト語彙集からも単語が（例えばバックエンドサービス１２０を記述する）ドキュメントに発見されるとその単語はその単語を含む複数のトピックが混合したものであると考えられる。それは複数のトピックの各々には、ドキュメント中の単語のパーセンテージに基づいてパーセント確率が割り振られる。この割り振りには、例えばＬＤＡなどのよく知られた方法を用いることができる。このようにして、ドキュメント全体が当該ドキュメントから発見されたトピックのセットによって表現されることができる。この表現には確率のメトリックが使用されており、例えば、Ｔ次元のベクトルと、各ベクトルの位置における変動確率とが含まれている。二つのドキュメント、例えばバックエンドサービスの説明とＵＥ１０１の現在の状態の説明のような二つのドキュメントを比較することができる。この比較は、これらのドキュメントを表す二つのＴ次元ベクトル（トークン）の類似度を比較することによって行うことができる。例えば、対応する用語の積の和などである。代わりにまたはそれに加えて、これら二つのドキュメントの距離を表すメトリックを計算してもよい。このようなメトリックは、二つのトークンの類似度が下がると値が大きくなる。どのような距離的メトリックを使用してもよく、例えばオーダー０の距離（相違が最も大きくなる座標の絶対値）や、オーダー１の距離（Ｔ個の相違の絶対値の和）、オーダー２の距離（Ｔ個の相違の二乗の和・・・ユークリッド距離に等しい）、オーダー３の距離（絶対値の三乗の和）などを用いることができる。二つのドキュメントのトークンの類似度が上がるほど、またはこれらのトークンの距離が小さくなるほど、これら二つのドキュメントの関連性は強くなる。以下の説明において、コンテクスト語彙集は既に定義されており、コンテクスト語彙データ構造の中に格納されているものとする。ドキュメントやリソースのコンテクストはコンテクストトークンによって表される。二つのドキュメントのコンテクストトークンの類似度が上がるほど、これらの間に計られる距離は小さくなり、一方のドキュメントによって示される消費者のコンテクストが、もう一方のドキュメントに強く関連することとなる。
【００４８】
コンテクストはユーザのテキストベースを解析することによってのみ得られるわけではなく、デバイスのコンテクストデータから直接得られる場合のほうが多い。このため、実施形態によっては、コンテクストの語彙はコンテクストエンジン１０３の出力に基づいて定義される。コンテクストエンジン１０３は、デバイスの側で推定されることが可能な全てのコンテクストを反映することができる。このようなコンテクストとしては、例えば、ユーザの位置、現在のアクティビティ、交通機関の様子（車の中にいるか、バスの中にいるか、運転中であるかなど）、関係性（ソーシャルコンタクト）、だいたいの場所（家や仕事場）などであることができる。
【００４９】
例示のために、コンテクストを記述するために利用可能なコンテクスト語彙データ構造が存在すると考えられてもよい（ただし図示されていない）。さらに、ある言語の全てのコンセプトについて、異なる言語によるセマンティックな語彙のデータ構造が存在すると考えられてもよい（ただし図示されていない）。このようなデータ構造は現代のサーチエンジンで使用されているものである。さらに、ある実施形態においては、オブジェクトは、オブジェクトデータ構造（図示されていない）の中のオブジェクト語彙やトピックによって表現される。このようなオブジェクトデータ構造においては、オブジェクトトークンが定義されている。ある実施形態においては、コンセプトの語彙やトピックと、物理オブジェクトや他のコンセプトを異なるメディアから抽出した特徴に関連づけるデータベース中のコンセプトとの間にマッピングが存在する。この点についてさらに説明される。
【００５０】
ある実施形態において、関連コンセプトフィールド２５０のデータは、フィールド２０２や２０４に示される機能のための一つまたは複数のコンテクストトークンのリストである。同様に、ある実施形態においては、関連コンセプトフィールド２４０のデータは、フィールド２０２や２０４に示される機能のための一つまたは複数のコンテクストトークンのリストである。
【００５１】
図２Ｂは、機能−コンセプト−コンテクストデータ構造のためのインデックスを格納するデータ構造１６０の略図である。データ構造２６０は、データ構造１３６のインデックスの実施形態の一例である。ユーザが供給するコンテンツの中のコンセプトがＵＥ１０１において特定されたとき、そのコンセプトのためにデータ構造１３４の中の各エントリ２００を検索することは、コンピュータ資源の観点からはしばしばコストが高いものとなる。そこで、ある実施形態においては、機能−コンセプト−コンテクストエントリ２００から、各コンセプトのためにインデックスが導出される。また、コンセプトだけでなく、コンセプトのカテゴリやこれら両方のために、またコンセプトのトピックについてインデックスが導出される。同様に、ある実施形態においては、コンテンツやコンテンツの主題、これらの両方、またコンテンツのトピックのそれぞれのために、機能−コンセプト−コンテクストエントリ２００からインデックスが作成される。インデックス２６０は、既知のコンセプトやコンテクストに関連する機能を発見するための計算コストを削減するという効果を達成するための手段の例である。
【００５２】
図示される実施形態において、データ構造２６０は複数のインデックスを含む。最初のインデックスは、コンセプト識別子フィールド２６２および適合する複数の機能ＩＤフィールド２６４を含む。機能ＩＤフィールド２６４は、コンセプトデータベースの中の各コンセプト，カテゴリ，またはこれら両方について設けられてもよい（その様子が省略機能で示されている。）コンセプト識別子フィールド２６２はコンセプトのデータベースや語彙集からのコンセプトＩＤやカテゴリを示すデータを格納する。適合機能ＩＤフィールド２６４は、関連コンセプトフィールド２４０にコンセプトやカテゴリを含む各機能の機能IDをリストするデータを格納する（その様子がフィールド２０２や２０４に描かれている）。ある実施形態においては、コンセプトトピックの確率が閾値より大きい機能のみがリストに含まれる。
【００５３】
同様に、２番目のインデックスはコンテクストフィールド２７２と、適合機能ＩＤフィールド２７４を含む。適合機能ＩＤフィールド１７４は、コンテクスト語彙集の中の各コンテクスト用語や主題、またこれらの両方について設けられてもよい。その様子が省略機能で示されている。コンテクストフィールド役得時にはコンテクスト語彙集の単語やコンテクスト語彙集からの主題を示すデータを格納する。適合機能ＩＤフィールド２７４は、関連コンテクストフィールド２５０のコンテクストを含む各機能の機能ＩＤをリストするデータを含む（その様子がフィールド２０２や２０４に描かれている）。ある実施形態においては、コンテクストトピックの確率が閾値より大きい機能のみがリストに含まれる。
【００５４】
図３Ａは、ある実施形態に従って、クライアントのコンテンツやコンテクストに基づいてバックエンド機能を用いるクライアントプロセスのモジュール３１０の略図である。例示すると、ＵＥ１０１のクライアント１１２は、機能ルックアップサービスにコンテンツやコンテクストを供給するコンポーネントや、ＵＥ１０１の機能を実装するためにＵＥ１０１のユーザへ提案する機能を提示するコンポーネントを一つまたは複数有する。これらのコンポーネントの機能は一つまたは複数のコンポーネントによって組み合わせられたり、同様の機能を有する他のコンポーネントによって実行されたりすることがあることが想定されている。このような事態は、例えば、ユーザオリエンテッドサービス１１０や機能ルックアップサービス１３０において生じる可能性がある。図示される実施形態において、クライアントモジュール３１０は、ＵＥ１０１のユーザによって操作されるためのグラフィカルユーザーインターフェイス（ＧＵＩ）モジュール３１１や、ＵＥ１０１のコンテクスト天神１０３と協働するコンテクストエンジンインターフェイスモジュール３１３、アプリケーションによって使用されるコンテンツを供給するコンテンツ生成モジュール３１５、モジュール３１５によって生成されたコンテンツのメディアタイプを決定するメディア識別モジュール３１７、ユーザオリエンテッドサービス１１０と協働するサービスインターフェイスモジュール３１９を備える。
【００５５】
ＧＵＩモジュール３１１は、ＵＥ１０１のディスプレイにグラフィック要素を提示し、タッチスクリーンなどの一つまたは複数の入力デバイスにおけるユーザの操作を検出する。それによって、ＵＥ１０１のユーザがコンテンツ生成器を制御することを可能にし、また、生成されたコンテンツに基づいて特定される機能を選択することを可能とする。コンテクストエンジンインターフェイスモジュール３１３は、コンテクストエンジン１０３と協働し、ＵＥ１０１の時間的，空間的，またはアクティビティに関する状態を決定する。ある実施形態において、ＧＵＩモジュール３１１は、ブラウザ１０７に送られたウェブページのマークアップステートメントやフォームを有する。
【００５６】
コンテンツ生成器３１５は、ＵＥ１０１のアプリケーションによって用いられるコンテンツを生成する。このようなコンテンツとしては、例えば、サービス１１０からコンテンツをダウンロードするファイル転送プロセスや、ＵＥ１０１のマイクロホンによって検出された音声からオーディオファイルを生成するオーディオキャプチャプロセス、デジタルカメラから画像ファイルや動画ファイルを生成する画像または動画キャプチャプロセス、ユーザによる一つまたは複数の入力デバイスの操作に基づいてテキストファイルや文書ファイル、スプレッドシートや画像ファイルを作成するユーザ入力キャプチャプロセスなどがある。メディアタイプ識別モジュール３１７は、コンテンツ生成モジュール３１５によって作られたコンテンツのメディアタイプを決定する。
【００５７】
ユーザオリエンテッドサービス・インターフェイスモジュール３１９は、ＵＥ１０１のアプリケーションに関与するユーザオリエンテッドサービス１１０と協働する。ある実施形態においては、ユーザオリエンテッドサービス１１０省略され、ユーザオリエンテッドサービスモジュール３２０は、クライアント１１２と機能ルックアップサービス１３０と２分割される。さらに、ユーザオリエンテッドサービス・インターフェイスモジュール３１９は、機能ルックアップサービス・インターフェイスモジュールに置き換えられる。
【００５８】
インターフェイスモジュール３１９は一つまたは複数の機能の選択肢を返し、ＧＵＩモジュール３１１はそれをユーザに提示する。ユーザが使う機能を選択すると、クライアント１１２またはユーザオリエンテッドサービス１１０は、その機能のために足りない入力パラメータを補う。この処理は、例えば、現在のコンテクストや表現されているコンセプト、またはこれら両方に基づいて行うことができる。パラメータの値を自動で決定することができない場合は、ＧＵＩモジュール３１１は、そのようなパラメータを埋めるようにユーザを促す。全ての必要なパラメータが埋められると、クライアント１１２またはユーザオリエンテッドサービス１１０は、リクエストに対応すべく、選択された機能の情報をバックエンドサービス１２０に伝える。その結果はバックエンドサービス１２２よってクライアント１１２直接送られるか、ユーザオリエンテッドサービスや機能ルックアップサービス１３０を通じてクライアント１１２に渡される。
【００５９】
図３Ｂは、ある実施形態に従う、ユーザオリエンテッドサービス１１０のモジュール３２０の略図である。例として、ユーザオリエンテッドサービス１１０は、機能ルックアップサービスにコンテンツやコンテクストを提供し、ＵＥ１０１でアプリケーションを実装するためにＵＥ１０１のユーザに提案する機能を提示する一つまたは複数のコンポーネントを備える。これらのコンポーネントの機能は一つまたは複数のコンポーネントの中で結合されたり、同様の機能を有する他のコンポーネントによって実行されたりする場合があることが想定されている。そのような他のコンポーネントとして、例えば、クライアントプロセス１１２や機能ルックアップサービス１３０がある。ユーザオリエンテッドサービスモジュール３２０は、クライアントインターフェイスモジュール３２１，メディア特性抽出モジュール３２３，コンセプト特徴データ構造３２７を有するコンセプト特定モジュール３２５，機能ルックアップサービス・インターフェイス３２８，サービスレジストリ・インターフェイス３２９を備える。
【００６０】
クライアントインターフェイスモジュール３２１は、ＵＥ１０１からコンテンツやコンテクストを受信したり、機能ルックアップサービス１３０２よって提供される一つまたは複数の機能を提示したりするために、クライアントプロセス１１２やブラウザ１０７とのやりとりを制御する。
【００６１】
メディア特性抽出モジュール３２３は、メディアから一つまたは複数の特徴を抽出する適当なメディアエンジンを使用する。抽出される特徴としては、例えば、統計情報、ヒストグラム、クラスタ情報、フーリエ変換に関する振幅、ウェーブレット変換に関する振幅、主成分分析に関する値、テクスチャに関する値、その他の性質であることができる。特徴のリストがさらに処理され、パターンが抽出され、抽出されたパターンがコンセプト特定モジュール３２５へ渡される。
【００６２】
コンセプト特定モジュール３２５は、コンセプト特徴データベース３２７を利用し、データベース３２７から、オブジェクトまたは他のコンセプトを特定するための検索やパターン解析を実行する。特定されるオブジェクトやコンセプトは、メディア特性やリストに最もよく一致するものである。そのようなオブジェクトやコンセプトが特定されると、そのオブジェクトやコンセプトのコンセプト識別子がインタフェース３２８を介して機能ルックアップサービスへと渡される。機能特定モジュールとコンセプト特徴データ構造３２７は、ユーザによってアプリケーションで作成されたり当該アプリケーションで提供されたりするコンテンツに含まれるコンセプトを自動的に導出するという効果を達成するための手段の一例である。
【００６３】
機能ルックアップサービス・インターフェイス３２８モジュールは、コンテクスト識別子やコンセプト識別子をコンテンツに基づいてサービス１３０へ送信したり、機能ルックアップサービス１３０から提供される一つまたは複数の機能を受信したりするために、機能ルックアップサービス１３０とのやりとりを制御する。インタフェース３２８は、クライアントアプリケーションをサポートする全てのユーザオリエンテッドサービス１１０の各々について機能選択プロセスを受信するということを避けるという効果を達成するための手段の一例である。
【００６４】
サービスレジストリインターフェイスモジュール３２９は、ユーザオリエンテッドサービス１１０に対し、機能ルックアップサービス１３２よって提供される機能の有用なディテールをサービスレジストリ１２８から見つけることを可能とする。有用なディテールとは、例えば、ＡＰＩやプロトコル、入力及び出力パラメータ、または説明などである。実施形態によっては、これら全てのディテールがインタフェース３２８によって機能ルックアップサービス１３０に提供され、モジュール３２９は省略される。
【００６５】
図３Ｃは、ある実施形態に従う、機能ルックアップサービスのモジュール３３０の略図である。として、機能６アップサービス１３０は、コンテンツやコンテクストに基づいてバックエンドサービス１２０の機能を提示するための一つまたは複数のコンポーネントを備える。なお、これらのコンポーネントの機能は、一つまたは複数のコンポーネントの中で結合されたり、同様の機能を有する他のコンポーネント（クライアントプロセス１１２やユーザオリエンテッドサービス１１０など）によって実行される場合があることが想定されている。機能ルックアップモジュール３３０は、図１に描かれるようにＡＰＩ１３２を有する。機能ルックアップモジュール３３０はまた、機能−コンセプト−コンテクストストレージデータ構造１３４を有する機能識別子３３３や、関連度及び推薦モジュール３３７、構造データベース（ＤＢ）３３８を有する。
【００６６】
ＡＰＩ１３２は、ユーザにより提供されるコンテンツやコンテクストまたはその両方に基づいて、機能を特定するための機能を実行する命令を受信するために用いられる。機能特定モジュール３３３は、ユーザのコンテンツに基づいて、モジュール３２５によって特定されるコンセプトに関連するデータ構造１３４の機能を特定する。ある実施形態において、データ構造１３４は、ＵＥ１０１のコンテクストにも関連する。ＡＰＩ１３２は、全てのバックエンドサービス１２０のための全てのＡＰＩ１２２と協働するためのコードを、機能ルックアップサービス１３０のＡＰＩである単一のＡＰＩ１３２のみと協働する簡単なコードに置き換えるという効果を達成するための手段の一例である。シンプルなコードは、クライアントプロセス１１２やユーザオリエンテッドサービス１１０において、ストレージのスペースをあまり消費せず、開発を早めることができる。
【００６７】
関連度及び推薦モジュール３３７は、いくつの機能及びどのように関連する機能が返されるべきかを決定する。例えばモジュール３３７は、供給される機能のコンテクスト構造と比較されたＵＥ１０１のコンテクストを用い、受信したコンテクストデータに基づいて、クライアントに返されるべき最良の機能セットを特定するある実施形態において、モジュール３３７はまた、各機能についてコンテクスト構造を構築するが、特定のコンテクストフィールドは空にされておいたり使用不能とされておいたりされてもよい。これら選択された機能は、これらに関連するコンテクスト構造と共に、クライアントに返送される。例えばクライアント１１０に直接返送されてもよいし、ユーザオリエンテッドサービス１１０を介してクライアント１１２やブラウザ１０７に間接的に返送されてもよい。関連度及び推薦モジュール３３７は、ユーザに提示されるべき最も関連性の高い機能のセットであって小さいセットをクライアントプロセスに送るという効果を達成するための手段の一例である。
【００６８】
バックグラウンドプロセスにおいて、構造ＤＢモジュール３３８は、図６を参照して後に詳細に説明されるように、機能−コンセプト−コンテクストデータ構造にデータを投入する。ある実施形態において、構造ＤＢモジュール３３８は、特定のコンセプトやコンテクストコンセプトのために登録されているサービスにサポートされている全ての機能を検索するために、サービスレジストリ１２８や機能データベースを用いる。ある実施形態において、モジュール３３８は、バックエンドサービス１２０によって定義されたコンテクストやコンセプトトークンを検索する。そのようなバックエンドサービス１２０は、特定の機能を適切なコンテクストに関連づける。
【００６９】
図４は、ある実施形態に従う機能ルックアップのための処理４００のフローチャートである。ある実施形態では、例えば図９に示されるようなプロセッサとメモリとを有するチップセットによって実装されたり、図８に描かれるような一般的なコンピュータによって実装されたりする、機能ルックアップサービス１３０が処理４００を実行する。ある実施形態では、ユーザオリエンテッドサービス１１０が、処理４００の一つまたは複数のステップを実行する。図４及び後続の図５及び６のフローチャートには、ひとまとまりのステップが特定の順序で描かれているが、これは例示目的のためであって、他の実施形態では、一つまたは複数のステップや、これらの一部分が別の順番や時間的に重なって実行されたり、順番に実行されたり並行に実行されたり、これらが省略されたりまた別のステップ加えられたり、これらのものは結合されたりして、変更される場合がある。
【００７０】
ステップ４０１においては、機能−コンセプト−コンテクストデータ構造１３４が構築され、または更新される。例えば一つまたは複数のデータベースやテーブルに、図２Ａ描かれるフィールドのためのデータが入力される。ステップ４０１は、図６を参照して後により詳細に説明される。構築されるデータ構造において、バックエンドサービス１２０などの複数のネットワークサービスによって提供される複数の機能のそれぞれは、少なくとも一つのコンセプトに関する識別子や、少なくとも一つのデバイスコンテクストに関する識別子、またはこれらの両方と関係付けられる。データ構造にコンテクストデータも含められる場合、ステップ４０１は、複数のネットワークサービスによって提供される複数の機能のそれぞれを、コンテンツに関するデバイスコンテクストに関する少なくとも一つの識別子に関連づける手段の一例である。当該デバイスコンテクストの例は、例えば"ＵＥ１０１において"である。
【００７１】
ステップ４０３において、クライアントプロセスによって使われているコンテンツやそれに関連するコンテクストが決定される。したがって、ステップ４０３は、現在のコンテンツを示す第一のデータを決定する手段の一例であり、ＵＥ１０１などのデバイスの現在のコンテクストを示す第二のデータを決定する手段の一例である。例えば、コンテンツは、クライアント１１２によって、コンテンツ生成器としてのデジタルカメラによって提供されたメタデータを含む画像であると決定される。そしてクライアント１１２は、メタデータやコンテクストエンジン１０３の出力、またはこれら両方に基づいて、コンテクストをコンテクストトークンとして決定する。ステップ４０３がユーザオリエンテッドサービス１１０によって実行されるとき、コンテンツやコンテクストは、クライアントから送られた画像やコンテクストに基づいて決定される。ステップ４０３が機能ルックアップサービス１３０によって実行されるとき、コンテンツやコンテクストは、クライアント１１２やユーザオリエンテッドサービスから送られてくるコンテンツやメディア特性、コンセプト識別子やコンテクストトークンに基づいて決定される。したがって、ステップ４０３は、第二のデータを示すメッセージを受信することによりデバイスの現在のコンテクストを示す第二のデータを決定する手段の一例である。
【００７２】
ステップ４０５では、ＵＥ１０１において使用されているコンテンツに基づいて、コンセプトが決定される。ある実施形態において、コンセプトは、クライアント１１２や、コンセプト特定モジュール３２５を備えるユーザオリエンテッドサービス１１０によって決定される。実施形態によっては、コンセプトは、クライアントやユーザオリエンテッドサービス１１０からのメッセージの中で受信されるコンセプト識別子に基づいて、機能ルックアップサービス１３０によって決定される。実施形態によっては、コンセプトは、機能ルックアップサービス１３０によって決定され、クライアント１１２やユーザオリエンテッドサービス１１０からのメッセージで受信されるコンテンツやメディア特性に基づいて決定される。実施形態によっては、コンセプトは、少なくともその一部分が、コンテクストに基づいて決定される。例えば、画像に基づいて、コンセプトは建築物であると決定される。そして、関連する場所や、場所と方角の両方を示すコンテクストに基づいて、その建築物が、例えば映画館など、特定の住所を有する特定の建築物であることが決定される。したがってステップ４０５は、ＵＥ１０１のようなデバイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定する。
【００７３】
ステップ４０７において、機能ルックアップサービス１３０は、バックグラウンドサービス１２０の一つまたは複数の機能の候補を決定する。この決定は、関連コンセプトフィールド２４０や関連コンテクストフィールド２５０のコンテクストのコンセプト識別子を含む機能を、機能−コンセプト−コンテクストデータ構造１３４を検索することによって行われる。この場合、ある閾値を上回る確率を持つ機能であることを条件にしてもよい。したがって、ステップ４０７は、データ構造の中にコンセプトの識別子と機能との関係を見つけることにより、コンセプトを示す第一のデータに基づいて、バックエンドネットワークサービスによって提供される機能を決定する手段の一例である。ある実施形態において、閾値を超える機能が見つからない場合は、少なくとも一つの機能が閾値を超えるまで、閾値を低くしてもよい。したがってステップ４０７は、コンセプトを示す第一のデータに基づいて、ネットワークサービスによって提供される機能を決定する。コンテクストが考慮に入れられる場合、ステップ４０７は、コンテンツに関連するデバイス（例えばＵＥ１０１）の現在のコンテクストを含むデバイスコンテクストの識別子と機能との関係をデータ構造の中で見つける手段の一例である。
【００７４】
したがって、ステップ４０７は、コンテンツに基づいてメディアタイプの特徴を示すメッセージを受信することに基づいて、デバイスによって提供されるコンテンツに表されているコンセプトを示す第一のデータを決定すると共に、メディアタイプの特徴に基づいてコンセプトを示す第一のデータを決定する手段の一例である。コンテンツのみが送信されるとき、ステップ４０７は、コンテンツを示すメッセージを受信することに基づいて、デバイスによって提供されるコンテンツに表されているコンセプトを示す第一のデータを決定し、ついてコンテンツに基づいてメディアタイプの特徴を決定し、ついてメディアタイプの特徴に基づいてコンセプトを示す第一のデータを決定する手段の一例である。
【００７５】
ステップ４０７が機能の候補を見つけるためにコンテクストをも使用する場合、ステップ４０７は、ＵＥ１０１などのデバイスの現在のコンテクストを示す第二のデータに少なくとも一部基づいて機能を決定することによって、ネットワークサービスにより提供される機能を決定する手段の一例である。
【００７６】
ステップ４０７がクライアントプロセス１１２やユーザオリエンテッドサービス１１０によって遂行される場合、ステップ４０７は、コンテンツや、メディア特性またはコンセプト、及び／又はコンテクストを、機能ルックアップサービス１３０に送信することにより行われる。
【００７７】
ステップ４０９では、少なくとも一つの機能の候補が推薦される。ステップ４０９が機能ルックアップサービス１３０によって遂行される場合、機能の候補は重要度及び推薦モジュール３３７に送られ、ユーザが提供したコンテンツやコンテクストに含まれるコンセプトに基づいて、推奨される最も関連性の高い機能が決定される。この決定は、例えば、コンセプトトークン間や、コンテクストトークン間の、類似度の指標や距離のメトリックに基づいてもよく、これら両方の指標やメトリックに基づいてもよい。ステップ４０９がクライアント１１２やユーザオリエンテッドサービス１１０によって遂行される場合、ステップ４０９は、機能ルックアップサービス１３０へ、コンテンツや、メディア特性またはコンセプト、及び／又はコンテクストを送信することにより行われる。
【００７８】
ステップ４１１では、推薦される機能のユーザの提示が行われる。ステップ４１１が機能ルックアップサービス１３０によって遂行される場合、推薦される機能は、ユーザオリエンテッドサービス１１０又はクライアントプロセス１１２に届けられる。ステップ４１１がユーザオリエンテッドサービス１１０によって遂行される場合、ステップ４１１は、機能ルックアップサービス１３０から受信した推奨機能をクライアントプロセス１１２又はブラウザ１０７に送信することによって行われる。したがって、ステップ４１１は、機能を示すメッセージを送信するという結果を生むアクション（の少なくとも一部）を生じさせる。ステップ４１１がクライアントプロセス１１２によって遂行される場合、ステップ４１１は、機能ルックアップサービス１３０から直接受信した推奨サービスか、ユーザオリエンテッドサービス１１０を介して間接的に受信した推奨サービスに基づいて、ＧＵＩモジュール３１１によって遂行される。したがってステップ４１１は、ＵＥ１０１などのデバイスにおいて、機能の技術を提示するという結果を生むアクションを（少なくとも一部）生じさせる手段の一例である。
【００７９】
ステップ４１３では、推薦された機能の起動が行われる。ステップ４１３が機能ルックアップサービス１３０によって行われる場合、推薦された機能をユーザオリエンテッドサービス１１０かクライアントプロセス１１２に送ることによって、推薦された機能の起動が行われる。ステップ４１３がユーザオリエンテッドサービス１１０によって遂行される場合は、ステップ４１３は、ユーザが推薦された機能の一つを選択したことを示すメッセージを受信することと、次いで入力パラメータの値と共にバックエンドサービスを起動することによって行われる。後者については図５を参照して後に詳述される。ステップ４１３がクライアントプロセス１１２によって遂行される場合、ステップ４１３は、ＧＵＩモジュール３１１を介して受信した入力パラメータの値を使ってバックエンドサービスを起動することによって遂行される。したがってステップ４１３は、ネットワークサービスによって提供された機能を起動する結果を生むアクションを、少なくとも一部生じさせる手段の一例である。
【００８０】
ステップ４１５では、終了条件が満たされたか否かが判断される。満たされたのであれば、処理は終了する。そうでなければ、制御パスはステップ４０１へ戻り、機能−コンセプト−コンテクストデータ構造を更新し、ステップ４０３へ進んでクライアントプロセスによって使用されている次のコンテンツを決定する。
【００８１】
図５は、ある実施形態に従う、機能ルックアップを使用するアプリケーションの処理のフローチャートである。ある実施形態において、ユーザオリエンテッドサービス１１０が処理５００を遂行する。またユーザオリエンテッドサービス１１０は、例えば図８に描かれるような一般的なコンピュータによって実装されることができる。実施形態によっては、クライアントプロセス１１２が処理５００の一つ又は複数のステップを実行する。
【００８２】
ステップ５０１では、クライアントプロセスが使用するコンテンツやそれに関連するコンテクスト（例えばＵＥ１０１のコンテクスト）が決定される。ステップ５０１がユーザオリエンテッドサービス１１０によって実行される実施形態においては、ステップ５０１は、コンテンツを示すメッセージをクライアントから受信することによって遂行される。このメッセージは、コンテンツのメディア特性を示すものであってもよく、一つ又は複数のコンテクストトークンのようなコンテクストを示すものであってもよい。ステップ５０１がクライアントプロセス１１２によって実行される場合、ステップ５０１は、コンテンツを生成モジュール３１５からコンテンツを取得することと、コンテクストエンジンインタフェース３１３からコンテクストを取得することとを含む。コンテンツやコンテクストについてＵＥ１０１のユーザを促すインタフェースについて、図７Ａや７Ｂを参照しながら後に詳述される。
【００８３】
ステップ５０３では、コンテンツに表現されているメディア特性やコンセプトが決定される。このステップがユーザオリエンテッドサービス１１０と共にクライアントプロセス１１２によって実行される実施形態において、ステップ５０３は、メディアタイプ識別子３１７からメディアタイプを取得することと、コンテンツやメディアタイプ、コンテクストをユーザオリエンテッドサービス１１０に送信することとを含む。ステップ５０３が、ユーザオリエンテッドサービス１１０なしにクライアントプロセス１１２によって実行される実施形態においては、このステップは、メディアタイプ識別子３１７からメディアタイプを取得することと、コンテンツやメディアタイプ、コンテクストを機能ルックアップサービス１３０に送信することとを含む。この実施形態の別の実施例では、コンテンツを、適当なメディア特性抽出モジュール３２３に送信することを含む。当該実施形態さらに別の実施例では、コンセプト特定モジュール３２５にメディア特性のリストを送信することを含む。
【００８４】
ステップ５０３がユーザオリエンテッドサービス１１０によって遂行される場合、図示される実施形態において、このステップは、メディアタイプ識別モジュール３１７から（又は実施例によってはクライアントプロセス１１２からのメッセージから）メディアタイプを取得することと、適当なメディア特性抽出モジュール３２３にコンテンツを送信することとを含む。そして、メディア特性のリストはコンセプト特定モジュール３２５に送信される。多くの他の実施形態において、ユーザオリエンテッドサービス１１０は、コンセプト特定モジュール３２５を含まず、コンセプトを決定しない。
【００８５】
ステップ５０５では、コンテクストや特徴のリスト（又はコンセプト識別子）が機能ルックアップサービス１３０へ送信される。これは、例えば、実施形態によってはユーザオリエンテッドサービス１１０から送信され、実施形態によってはクライアントプロセス１１２から直接送信される。実施形態によっては、ユーザオリエンテッドサービス１１０は、機能ルックアップサービス１３０にメディア特性のリストとコンテクストを送信し、メディア特性からコンセプトを決定することをサービス１３０にやらせる。したがって、ステップ５０５は、ネットワークサービスによって提供される機能を決定する手段の一例である。ただし、この決定は、第１のデータ（コンセプトを特定するデータ）を示すメッセージを、サービス（ルックアップサービス１３０）に送信することを含む。また当該サービスは、例えばバックエンドサービス１２０のようなネットワークサービスによって提供される複数の機能のそれぞれについて、コンセプトの識別情報を示すデータとデバイスのコンテクストの識別情報を示すデータを関連づける。この関連付けは、例えば機能−コンセプト−コンテクストデータ構造１３４のなかで行われることができる。
【００８６】
ステップ５０７では、一つ又は複数の推薦された機能であってバックエンドサービス１２０の機能が、機能ルックアップサービス１３０から受信される。実施形態によっては、推薦される機能は、シンプルに、フィールド２０２からのバックエンドサービスIDによって識別され、そうでなければ、フィールド２０４からの機能IDによって識別される。実施形態によっては、推薦される機能を示すデータは、フィールド２０６からの一つ又は複数のAPI IDと、フィールド２０８からのプロトコルと、フィールド１１０からのパラメータと、フィールド２２０からの説明情報と、フィールド２３０からのメディアタイプ情報を含む。実施形態によっては、一つ又は複数のこれらのフィールドの情報は、バックエンドサービスIDをキーとして、サービスレジストリインタフェースモジュール３２８を利用して、サービスレジストリ１２８から得ることができる。
【００８７】
ステップ５０９では、推薦される機能がUE１０１のユーザに提示されることが生じる。これは、例えば、フィールド２２０に格納される機能説明などに基づいて行われることができる。ステップ５０９がクライアントプロセス１１２によって実行される実施形態においては、推薦される機能を示すデータはＧＵＩ３１１を通じて提示される。ステップ５０９がユーザオリエンテッドサービス１１０又は機能ルックアップサービス１３０によって実行される実施形態においては、推薦される機能を示すデータはブラウザ１０７かクライアントプロセス１１２に送信され、ＧＵＩモジュール３１１によって表示される。このようなＧＵＩは、図７Cを参照して後に詳述される。
【００８８】
ステップ５１１では、ユーザが推薦された機能の一つを選択したかどうかが判断される。これは、例えばポインティングデバイスを操作することにより行われることができ、また後に図７Cを参照して詳述される。もしまだ選択されていなければ、制御パスはステップ５０１に戻り、UE１０１において次のコンテンツやコンテクスト、またはこれら両方が決定される。具体的な例を示すと、例えば、コンテンツがトウモロコシ畑のイメージだった場合に、ユーザは、推薦された機能として、"商品の市場価格を判断する"と説明された機能を選択する、のようなことが行われる。
【００８９】
ステップ５１１において、ユーザが選択したことが決定されると、ステップ５１３において、選択された機能のパラメータが決定される。ある実施形態では、パラメータは、ステップ５０７の間に機能ルックアップサービス１３０から提供される。他の様々な実施形態においては、パラメータは、バックエンドサービスIDをキーとしてそれに基づいて、レジストリ１２８から決定されることができる。また存在すれば、ステップ５０７や５１３の間に機能IDに基づいて決定されることができる。具体的な例を示すと、選択された機能の入力パラメータは、"商品の名前"や"地理的位置"，"日付"を含む、のようなことが考えられる。
【００９０】
ステップ５１５では、入力パラメータのための知られている値が決定される。この決定は、例えばコンテクスト情報に基づいて行われることができる。例えば、コンセプト識別子に基づいて、コンテンツが"トウモロコシ"を表すことが知られ、またコンテクストに基づいて、写真が作成されたときのUE１０１のGPS位置が知られる。したがって、三つ全ての入力パラメータが知られることができる。知らない他のパラメータが必要な場合、デフォルト値を用いたり、知らないことをマークしたりすることができる。
【００９１】
ステップ５１９では、入力パラメータの値を訂正するように、ユーザが促される。ステップ５１９がクライアントプロセス１１２によって実行される実施形態では、入力パラメータを示すデータや予め埋められている値が、ＧＵＩモジュール３１１を介して表示される。ステップ５１９がユーザオリエンテッドサービス１１０又は機能ルックアップサービス１３０によって実行される実施形態においては、入力パラメータを示すデータや予め埋められている値は、ブラウザ１０７又はクライアントプロセス１１２に送られ、ＧＵＩモジュール３１１によって表示される。このようなＧＵＩは、後に、図７Dを参照して詳述される。ステップ５１９の間、ユーザは、入力パラメータの一つ又は複数を変更してもよい。例えばユーザは、"知られていない（Unknown）"とマークされたパラメータの値を自分で入力してもよい。具体的な例を示すと、例えば、ユーザは、トウモロコシが実りトウモロコシを販売する契約を結ぶべき未来の日に、写真の日付を変更してもよい。
【００９２】
ステップ５２１では、選択された機能が起動される。例えば、実施形態によっては、ユーザオリエンテッドサービス１１０が、バックエンドサービス１２０に、選択された機能を示す情報を、適切なＡＰＩに従ったパラメータや値と共に、適切なプロトコルでメッセージを送信する。実施形態によっては、クライアントプロセス１１２が、バックエンドサービス１２０に、選択された機能を示す情報を、適切なＡＰＩに従ったパラメータや値と共に、適切なプロトコルでメッセージを送信する。それに応答して、ステップ５２１の間に、起動された機能からの結果が受信される。具体的な例を示すと、例えば、当該結果は、トウモロコシの平均価格やバイヤーのリストを示すデータを含む。
【００９３】
ステップ５２３では、ＵＥ１０１のユーザへの結果の表示が行われる。ステップ５２３がクライアントプロセス１１２によって実行される実施形態では、結果を示すデータは、ＧＵＩモジュール３１１を通じて表示される。ステップ５２３がユーザオリエンテッドサービス１１０又は機能ルックアップサービス１３０によって執行される実施形態では、結果を示すデータはブラウザ１０７又はクライアントプロセス１１２に送られ、ＧＵＩモジュール３１１を通じて表示される。このようなＧＵＩは図７Ｅを参照して後に詳述される。
【００９４】
ステップ５２５では、終了条件が満たされるが否かが判断される。満たされるのであれば処理は終了する。満たされなければ、制御パスはステップ５０１へ戻り、クライアントプロセスによって使用中の次のコンテクストや関連するコンテクストが決定される。
【００９５】
図６は、ある実施形態に従い、機能−コンセプト−コンテクストデータ構造を構築するための処理６００のフローチャートである。実施形態によっては、ルックアップサービス１３０が処理６００を遂行する。またルックアップサービス１３０は、例えば、図９に描かれるようにプロセッサ及びメモリを備えるチップセットとして実装されうる。又は、図８に描かれるような一般的なコンピュータとして実装されうる。
【００９６】
ステップ６０１では、あるバックエンドサービスが、機能−コンセプト−コンテクストストレージデータ構造に追加されることが決定される。例えば、実施形態によっては、一つ又は複数のバックエンドサービスのレジストリが、バックエンドサービスのリストを入手すべく問い合わせを受ける。実施形態によっては、バックエンドサービスの管理者がアップロードを行ったり、これらのバックエンドサービスを示すデータを手動で入力したりすることのできるWebページが利用可能になる。実施形態によっては、各機能やＡＰＩ、プロトコル、パラメータ、説明情報やメディアタイプ、その他これらの組み合わせが、ステップ６０１の間に決定される。
【００９７】
ステップ６０３では、機能−コンセプト−コンテクストストレージデータ構造にまだ追加されていないサービスが、現在のサービスとして選択される。例えば、サービスレジストリ１２８が検索されたバックエンドサービスのリストの次のサービスが、現在のサービスとして選択される。
【００９８】
ステップ６０５では、機能−コンセプト−コンテクストストレージデータ構造にまだ追加されていない機能が、現在の機能として選択される。例えば、実施形態によっては、ＡＰＩの一つ又は複数のパラメータが、バックエンドサービスで利用可能な複数のファンクションのうちの一つに関連付けられる。例えば、商品マーケットのサービスは、商品の価格及びバイヤーを見つけるための一つの営業機能と、それとは別個に、商品の売り手や販売価格を調べるためのバイヤー機能を有する。これらの機能のうちの一つが現在の機能として取り扱われる。
【００９９】
ステップ６０７では、コンセプトデータベース３２７又は語彙集の一つ又は複数のコンセプトが、現在の機能に関連付けられる。例えば、機能の説明のセマンティック解析が、機能が商品に関連することを決定する。セマンティック解析はさらに、商品が特定の文脈的語彙を含んでいること、例えば、石油や石油の副産物、原油、灯油、プロパン、天然ガス、石炭、小麦、オート麦、トウモロコシ、米、大豆、コーヒー、ココア、砂糖、綿、オレンジジュース、牛肉、豚の脇腹肉、豚赤身肉などを含んでいることを決定する。ステップ６０７では、これらのうち、どの単語がコンセプトデータベース等に含まれるコンセプトのコンセプトなのかが決定される。コンセプトデータベース等に含まれるコンセプトは、例えばガスタンクやオレンジ、果樹園、豚などであることができる。これらのコンセプトに含まれるコンセプトやトピックが、ステップ６０７で決定される。商品の場合のように、リストは長くなるかもしれないが、それでもリストは他の多くのコンセプトを除外する。例えば人に関するコンセプト、建築や自動車に関するコンセプトは、商品からは除外される。
【０１００】
ステップ６０９では、コンテクスト語彙集やトピックデータベースの一つ又は複数のコンテクストが現在の機能に関連付けられる。例えば、機能やパラメータの説明のコンテクストセマンティック解析は、当該機能が場所時間に関係し、また売買活動に関連することを決定する。
【０１０１】
ステップ６１１では、機能−コンセプト−コンテクストストレージのためのエントリ２００が生成され格納される。例えば、機能−コンセプト−コンテクストデータ構造１３４に、新しいエントリ２００が追加される。新しいエントリ２００は、フィールド２０２に現在のバックエンドサービスの識別子を含み、フィールド２０４に現在の機能の識別子を含み、フィールド２０６から２３０にも機能の他の情報が適切に格納されている。新しいエントリ２００はまた、関連コンセプトフィールド２４０に、商品の識別子のリストを含み、関連コンテクストフィールド２５０に、場所や時間、販売、購入のためのコンテクスト語彙トークン及び単語を含む。
【０１０２】
ステップ６１３では、現在のサービスに他の機能があるかどうかが判断される。他の機能があるのであれば、制御パスはステップ６０５に戻り、上述のように、サービスの次の機能が現在の機能として決定される。他の機能なければ、リストから、他のバックエンドサービスが存在するかどうかが決定される。存在するのであれば、コントロールパスはステップ６０３に戻り、上述のように、次のバックエンドサービスが現在のサービスとして決定される。
【０１０３】
追加するサービスや機能がなければ、ステップ６１７において、一つ又は複数の検索インデックスが形成される。例えば、コンセプトデータベースの各単語につき、インデックスデータ構造２８０の中にエントリが設けられる。例えば、商品の一つをリストする各コンセプトIDフィールド２６２のために、商品販売機能のサービス識別子や機能識別子がフィールド２６４に追加される。同様に、コンテクスト語彙集の単語やトピックのそれぞれのために、インデックスデータ構造１８０の中にエントリが作成される。例えば、時間や場所、売買といったコンテクストの一つをリストするコンテクストフィールド２７２のそれぞれのために、商品販売機能のサービス識別子や機能識別子がフィールド２７４に追加される。実施形態によっては、インデックスは形成されず、ステップ６１７は省略される。
【０１０４】
ステップ６１９では、終了条件が満たされるか否かが判断される。満たされるのであれば処理が終了する。そうでなければ、制御パスはステップ６０１に戻り、機能−コンセプト−コンテクストストレージデータ構造１３４にまだ追加されていない次のサービスが決定される。
【０１０５】
図７Ａ−７Ｅは、様々な実施形態に従うユーザインタフェースであって、図５の処理で利用されるユーザインタフェースの略図である。グラフィカルユーザインタフェース（ＧＵＩ）は、一つ又は複数のグラフィック要素を含み、これらはそれぞれ表示画面の特定の領域を占めるピクチャ要素（ピクセル）を有する。表示画面は、例えば表示デバイス８１４や１００７として、後に記述される。グラフィック要素は当該領域に関連するユーザ入力を検出する機構を含む場合がある。これらの入力は、例えば、カーソルが当該領域に表示されている間にタッチスクリーン上をタッチしたり、マウスやキーボードのボタンをクリックしたりするなどの、ポインティングデバイスに応答して検出される。なお、マウスやキーボードの例として、入力デバイス８１２やキーボード１０４７が後に例示される。
【０１０６】
図７Ａは、ＵＥ１０１のＧＵＩ７０１の例を示す略図である。このＧＵＩは、使用中のコンテンツを決定するためのものである。現在のコンテンツ表示領域７１０は、ＵＥ１０１の現在のコンテンツの表現を表示する領域である。ＵＥ１０１のコンテンツとしては、例えばカメラビューファインダやウェブブラウザの画像や動画、音声ストリーミング中の音圧や周波数のグラフなどであることができる。コンテンツラベルキャプチャ領域７１２は、領域７１０に現在表示されているコンテンツを、さらなる使用のために選択することをユーザに促すデータを表示する。ボタン７１４は、入力機構のためのグラフィック要素である、ユーザによって選択されると、現在のコンテンツがさらなる使用のために選択される。例えば、現在のコンテンツ表示領域７１０は、デジタルカメラアプリケーションによるトウモロコシ畑の眺めを表示したり、銀行アプリケーションにおけるお札の眺めを表示したり、写真アプリケーションでダウンロードした上海のスカイラインの写真を表示したりする。ＯＫボタン７１４がアクティブにされると、領域７１０に表示されているコンテンツが、さらなる使用のためにキャプチャされ、例えば、ＵＥ１０１の一つ又は複数のファイルにおいて使用される。ボタン７１４のアクティブ化は、例えばタッチスクリーン上のボタンをタッチしたり、バブルに関連付けられたキーボードのキーを押したり、マウスボタンやその他のポインティングデバイスのボタンでクリックしたりすることによって行うことができる。
【０１０７】
図７Ｂは、ＵＥ１０１のＧＵＩ７０２の例を示す略図である。このＧＵＩは、使用するコンテンツをラベリングするためのものである。名前コンテンツ入力領域７２０は、ユーザがテキストを入力するためのテキストボックスや、当該テキストが、キャプチャされたコンテンツのための名前を示すべきものであることを示すプロンプトを含む。プロンプトに応じて、ユーザはコンテンツの名前、例えば写真Ａや写真Ｂ，写真Ｃなどの文字をタイプし、ＯＫボタン７２４ａをアクティブ化する。コンテンツ説明文入力領域７２２は、ユーザがテキストを入力するためのテキストボックスや、当該テキストが、キャプチャされたコンテンツのための説明を与えるものであるべきことを示すプロンプトを含む。このプロンプトに応じて、ユーザは、コンテンツのための説明、例えば所有する土地の調査、上海スカイライン、電気料金の請求書などとタイプし、ＯＫボタン７２４ｂをアクティブ化する。
【０１０８】
図７Ｃは、ＵＥ１０１のＧＵＩ７０３の例を示す略図である。このＧＵＩは、選択された使用するコンテンツのために適切な機能を選択するためのものである。機能選択オプション領域７３０は、使用するコンテンツを操作する機能をユーザが選択すべきことを示すプロンプトを表示するプロンプト領域７３１を含む。また、推薦される機能が、機能説明領域３３４ａ−３３４ｅに説明としてリスト表示される。なお、以下において、機能説明領域３３４ａ−３３４ｅは、まとめて符号３３４で示される場合がある。実施形態によっては、フィールド３３４の機能説明は、機能に適合するコンテンツに関連するコンテンツやコンテクストから見つけられたコンセプトの識別子を含む場合がある。
【０１０９】
機能選択オプション領域７３０に適合可能なさらに多くの機能が、よく知られたグラフィック要素であるスクロールバー７３６を用いて表示されることが可能である。領域７３０において、推薦される機能の説明を上下にスクロールすることができる。個々の機能説明領域３３４に関連してラジオボタン７３８が設けられる。コンテンツを操作するためにユーザが機能を選択するとき、ラジオボタンの中に●が表示される。描かれるＧＵＩにおいては、機能説明領域３３４ｂ及び３３４ｄに説明される機能が、ユーザによって選択されたことが示されている。この選択は、選択ボタン７３２をアクティブ化することにより完了する。
【０１１０】
より具体的な例を示す。"survey owned land"と説明された写真Ａのトウモロコシ畑のイメージと、フィールド２２０に示される上の説明とに基づいて、処理５００は、コンセプト"トウモロコシ"を特定し、機能を特定して推薦する。これらの機能は、トウモロコシの識別子を含み、次のような説明と共に機能説明領域３３４に表示される。
特定の場所の地図を提供する，場所  ＝  写真Ａの場所；
商品の市場売買価格を決定する，商品  ＝  トウモロコシ；
商品の販売店を決定する，商品  ＝  トウモロコシ；
特定の食材を含むレシピを提供する，食材  ＝  トウモロコシ；
【０１１１】
さらに具体的な例を示す。"上海スカイライン"と説明された写真Ｃのイメージと、フィールド２２０における上に説明されるような機能説明例とに基づいて、処理５００はコンセプト"建物"およびコンテクスト"場所＝上海"を特定し、機能を特定して推薦する。これらの機能はコンテクスト位置の識別情報を含み、次のような説明と共に機能説明領域３３４に表示される。
特定の場所の地図を提供する，場所  ＝  上海；
見に行く劇場のショーのチケットを予約する，劇場  ＝  上海の；
目的都市への航空券を予約する，目的都市  ＝  上海；
食べに行くレストランのテーブルを予約する，レストラン  ＝  上海の；
【０１１２】
さらに具体的な例を示す。"電気料金の請求書"と説明された写真Ｃのイメージと、フィールド２２０における上に説明されるような機能説明例とに基づいて、処理５００は、コンセプト"レター"，コンセプト"電気"，コンテクスト"料金支払い"を特定し、機能を特定して推薦する。これらの機能は、"電気"の識別子を含み、次のような説明と共に機能説明領域３３４に表示される。
【０１１３】
商品の市場売買価格を決定する，商品  ＝  電気；
商品の販売店を決定する，商品  ＝  電気；
銀行口座から支払いを実行する；
【０１１４】
図７Ｄは、選択された機能の入力パラメータ値を決定するための、ＵＥ１０１のＧＵＩ７０４の例を示す略図である。選択された機能のパラメータ値入力領域７４０ａ，７４０ｂ，７４０ｃ...が表示されている。（これらはまとめてパラメータ値入力領域７４０と表されることがある。）これらの入力領域は、パラメータの名前やもしあれば単位、選択された機能の一つに入力可能な値の範囲を提示する。既に知られている値は予め入力されており、値が分からないものはそのようにマークされている。例示される実施形態において、選択された一つの機能の全てのパラメータは、領域７４０の一つに表示される。各領域７４０には、対応するＯＫボタン７４４ａ，７４４ｂ，７４４ｃ（以下まとめてＯＫボタン７４４と表されることがある）が設けられる。ユーザは、値が入力されていないものを埋めたり、予め埋められていた値を修正したりすることができる。ＯＫボタン７４４がアクティブ化されると、入力パラメータ値は、サービスを要求するメッセージによって対応するバックエンドサービスに送信される。例えば、上海への飛行機チケットを予約するにおいて、予め入力された出発飛行場は、上海の写真のダウンロードしたときのユーザの位置に最も近い都市の飛行場であったとする。しかしユーザは別の都市から出発したいと考え、パラメータ値入力７４０において出発都市を変更し、ＯＫボタン７４４を押す。
【０１１５】
図７Ｅは、選択された機能の結果を表示するための、ＵＥ１０１のＧＵＩ７０５の例を示す略図である。選択された機能の結果表示領域７５０ａ，７５０ｂ...（以下まとめて結果表示領域７５０と表されることがある）が、選択された機能の結果を示すデータを表示する。例えば、トウモロコシの購入価格や食材にトウモロコシを用いるレシピなどである。
【０１１６】
ここで説明された、コンテンツに基づくネットワーク機能の特定技術は、ソフトウェアやハードウェア、ファームウェアやこれらいずれかは二つ以上の組み合わせによって実装することが有利であろう。例えば、サービスの利用可能性に関連付けられたユーザインタフェース・ナビゲーション情報を含む、本明細書で説明される処理は、一つ又は複数のプロセッサやデジタル信号処理チップ（ＤＳＰ）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などによって実装されることが有利であろう。上に説明された機能を実行するための、このような例示的なハードウェアが以下に説明される。
【０１１７】
図８は、本発明の実施形態が実装されうるコンピュータシステム８００を描いたものである。コンピュータシステム８００は、特定のデバイスや装置を描いているが、ネットワーク要素やサーバなどの図８中の他のデバイスや装置が、システム８００に描かれたハードウェアやコンポーネントを加えることも可能であることが想定されている。コンピュータシステム８００は、コンピュータプログラムコードや命令などによって、ここで説明されたようにコンテンツに基づいてネットワーク機能を特定するようにプログラムされており、バス８１０などの通信機構を有している。通信機構８１０は、コンピュータシステム８００の他の内部及び外部要素との間で情報を流す。「データ」とも呼ばれる「情報」は、物理的に測定可能な現象によって表されることができ、典型的には電圧であるが、実施形態よっては、磁気的、電磁気的、圧力的、化学的、生物学的、分子的、原子的、亜原子的、量子的相互作用、などの現象によって表されることもできる。例えばＮ極及びＳ極の磁極や、ゼロと非ゼロの電圧が、２進数ビットの二つの状態（０，１）を表すことができる。高次の数を表すこともできる他の現象も存在する。量子ビット（qubit）は、測定される前は、複数の量子状態が同時に重なったものである。一つ又は複数の数（digit）のシーケンスはデジタルデータを構成し、数や文字コードを表すことができる。実施形態よっては、アナログデータと呼ばれる情報が、特定の範囲で測定可能な値の連続体に近いものによって表現される。コンピュータシステム８００又はその一部は、コンテンツに基づいてネットワーク機能を特定する一つ又は複数のステップを実行する手段を構成する。
【０１１８】
バス８１０は、一つ又は複数の並行的な情報伝達手段を有する。それによって、バス８１０に組み合わされているデバイスの間で情報が高速に伝達されることができる。情報処理のための一つ又は複数のプロセッサ８０２がバス８１０に組み合わされている。
【０１１９】
プロセッサ（又は複数のプロセッサ）８０２は、コンテンツに基づいてネットワーク機能を特定することに関連するコンピュータプログラムコードによって特定されるように、情報に対して処理のセットを遂行する。コンピュータプログラムコードは命令（instruction）や宣言（statement）のセットであって、プロセッサやコンピュータシステムが特定の機能を実行する処理のための指示を提供する。コードは、例えば、コンピュータプログラム言語で記載することができ、その後プロセッサのネイティブな命令セットにコンパイルされることができる。コードは、ネイティブな命令セット（すなわちマシン語）に直接記載されることもできる。処理のセットは、バス８１０から情報を取り出したり、バス８１０に情報を流したりすることを含む。処理のセットは又は、通常、二つ又はそれ以上の情報ユニットを比較したり、情報ユニットの位置をシフトしたり、二つ又はそれ以上の情報ユニットを結合したりすることを含み、例えば加算や乗算、ＯＲや排他的ＯＲやＡＮＤなどの論理演算を含む。プロセッサにより実行されうる処理のセットの個々の処理は、１つ又は複数のデジット（digit）による処理コードのような、命令と呼ばれる情報によってプロセッサに提示されることができる。処理コードのシーケンスなどの、プロセッサ８０２により実行される処理のシーケンスは、プロセッサ命令を構成し、これはまた、コンピュータシステム命令や、より簡単にコンピュータ命令などと呼ばれる。プロセッサは、機械的、電気的、磁気的、光学的、化学的、量子的、または他の方法で、単独で又はこれらを組み合わせて、実装されることができる。
【０１２０】
コンピュータシステム８００はまた、バス８１０に接続されるメモリ８０４を備える。メモリ８０４は、ランダムアクセスメモリ（ＲＡＭ）や他のダイナミックなストレージデバイスであることができ、コンテンツに基づいてネットワーク機能を特定するためのプロセッサ命令を含む情報を格納する。ダイナミックメモリは、コンピュータシステム８００が格納されている情報を変更することを可能とする。ＲＡＭはメモリアドレスと呼ばれる場所に格納されるべき情報ユニットを格納することを可能とし、また隣接するアドレスの情報とは独立に、当該情報ユニットが読み出しされることを可能とする。メモリ８０４は、プロセッサ８０２によって、プロセッサ命令を実行する間に一時的な値を格納するためにも用いられる。コンピュータシステム８００は、読み出し専用メモリ（ＲＯＭ）８０６や他の静的ストレージデバイスをも備えてもよい。これらもバス８１０に接続されており、コンピュータシステム８００によっては変更されない静的な情報を格納する。あるメモリは、電源供給が失われると格納している情報が消えてしまう揮発性のストレージによって構成される。バス８１２は、非揮発性のストレージデバイス８０８も接続されている。このようなデバイスには、磁気ディスクや光ディスク、フラッシュカードなどが含まれる。このようなデバイスには、コンピュータシステム８００の電源が切られたり、その他の理由で電源を失ったりする場合でも保持されるべき情報（例えば命令など）が格納される。
【０１２１】
コンテンツに基づいてネットワーク機能を特定する命令を含む情報は、人間によって操作される英数字キーを含むキーボードやセンサなどの外部入力装置８１２から、バス８１０に供給されプロセッサによって使用される。センサは、その周辺で生じた条件を検出し、検出結果を、測定可能な現象と互換性のある物理的表現に変換し、コンピュータシステム８００で提示することができるようにする。その他の外部機器もバス８１０に接続され、特に人間とのやりとりのために用いられる。このような外部デバイスには、例えば、ブラウン管（ＣＲＴ）や液晶ディスプレイ（ＬＥＤ）、プラズマスクリーンのような表示装置８１４や、テキストや画像を提示するためのプリンタや、マウスやトラックボールのようなポインティングデバイス、カーソル指示キー、モーションセンサなどがある。モーションセンサは表示装置８１４に表示された小さなカーソルのイメージの位置を制御したりディスプレイ８１４表示されたグラフィック要素に関連する命令を発行したりするために用いられることができる。実施例によっては、例えば、コンピュータシステム８００が、人間の入力なしに全ての機能を自動的に実行する場合があり、外部入力デバイス８１２や表示装置８１４．ポインティングデバイス８１６などの一つ又は複数が省略される場合がある。
【０１２２】
例示される実施形態において、専用の目的をもつハードウェア、例えばＡＳＩＣ（Application Specific Integrated Circuit）８２０がバス８１０に接続されることがある。このような専用の目的をもつハードウェアは、プロセッサ８０２によってはそのような目的が十分に早く遂行されないような処理を実行するように構成される。このようなＡＳＩＣの例として、表示装置８１４上にイメージを生成するグラフィックアクセラレータカードや、ネットワークを介して送信されるメッセージの暗号化や解読を行う暗号化ボード、音声認識装置、また特殊な目的の外部デバイスとのインタフェースなどがある。そのようなインタフェースは、例えば、ロボットアームや医療用スキャン装置など、複雑なシーケンスの動作を繰り返し行うような装置がある。このような動作はハードウェアによってより効率的に実行されることができる。
【０１２３】
コンピュータシステム８００は、さらに、一つ又は複数のインスタンスを有する通信インタフェース８７０を備える。この通信インタフェース８７０もバス８１０に接続される。通信インタフェース８７０は、それぞれ自身のプロセッサを有する様々な外部デバイスに接続されて、一方向又は双方向の通信を提供する。このような外部デバイスとして、プリンタやスキャナ、外部ディスク装置などがある。一般的に、接続はネットワークリンク８７８によって行われ、ネットワークリンク８７８はローカルネットワーク８８０に接続される。ローカルネットワーク８８０には、自身でプロセッサを有する様々な種類の外部デバイスが接続されている。通信インタフェース８７０は、例えば、パーソナルコンピュータのパラレルポートやシリアルポート、ユニバーサルシリアル（ＵＳＢ）ポートであることができる。実施形態によっては、通信インタフェース８７０は、ＩＳＤＮカードやＤＳＬカードや電話モデムなど、対応する種類の電話通信ラインと情報通信接続を確立するようなものであることができる。実施形態によっては、通信インタフェース８７０は、ケーブルモデムであることができ、これは、バス８１０上の信号を、同軸ケーブルを用いた通信接続のための信号や、光ケーブルを用いた通信接続のための光信号に変換する。別の例では、通信インタフェース８７０は、ローカルエリアネットワーク（ＬＡＮ）カードであり、これは、イーサネットなどの互換性のあるＬＡＮとのデータ通信接続を提供する。ワイアレスリンクが用いられる場合もある。ワイアレスリンクとして、通信インタフェース８７０は、例えば電気的、音声的、電磁的な信号を、送信したり受信したり送受信したりする。このような信号には、デジタルデータなどの情報ストリームを運ぶこともできる赤外線や光信号も含まれる。例えば、無線ハンドセットデバイスにおいては、通信インタフェース８７０はＲＦ送受信機と呼ばれる、ＲＦ帯域の電磁波信号の送信機及び受信機を備える。実施形態によっては、通信インタフェース８７０は、ＵＥ１０１においてコンテンツに基づいてネットワーク機能を特定するために、通信ネットワーク１０５との接続を可能にする。
【０１２４】
本明細書で"コンピュータ読み取り可能な媒体"との用語は、プロセッサ８０２に情報（例えば実行命令）を提供しうるいかなる媒体であってもよい。このようなメディアは様々な形態をとりうるものであり、揮発性又は非揮発性のコンピュータ読み取り可能な記憶媒体や、伝送媒体が含まれる。また、これらに限られるものではない。非揮発性の媒体のような非一時的媒体は、例えばストレージデバイス８０８のような光または磁気ディスクを含む。揮発性の媒体は、例えばダイナミックメモリ８０４を含む。伝送媒体は、例えば、同軸ケーブルや銅線、光ファイバーケーブル、ワイヤやケーブルを介さずに空間を伝う搬送波などであることができ、搬送波としては音波や電磁波があり、電磁波には無線電波、可視光、赤外線などがある。人々によって信号に含められる一時的な変化は、振幅、周波数、位相、極性などの物理的性質であり、そのような変化が伝送媒体を通じて送信される。保存コンピュータ読み取り可能な媒体のよく知られた形態は、例えば、フロッピーディスクやフレキシブルディスク、ハードディスク、磁気テープなどの磁気的媒体、CD-ROMやＣＤＲＷ、DVDなどの光媒体、パンチカードや紙テープ、光マークシートなどの、孔によるパターンやその他の光学的認識可能な目印を有する物理媒体、ＲＡＭやＰＲＯＭ、ＥＰＲＯＭ，フラッシュＥＰＲＯＭなどのメモリチップやカートリッジ、搬送波などであり、コンピュータが読み取りを行うことのできる様々な媒体が存在する。コンピュータ読み取り可能な格納媒体との用語は、伝送媒体を除くどのようなコンピュータ読み取り可能な媒体をも指すことができる。
【０１２５】
手に触れることのできる一つまたは複数の媒体に符号化されたロジックは、コンピュータ読み取り可能な記憶媒体及びＡＳＩＣ８２０のような専用目的のハードウェアの一つまたは両方を含む。
【０１２６】
典型的に、ネットワークリンク８７８は、伝送媒体を用いて情報通信をもたらす。一つまたは複数の複数のネットワークを通じて、情報を使用したり処理したりする他のデバイスへと情報通信が行われる。例えばネットワークリンク８７８は、ローカルネットワーク８８０通じてホストコンピューター８８２への接続を提供する。また、インターネットサービスプロバイダ（ＩＳＰ）によって運営される設備８８４への接続を提供してもよい。ＩＳＰ設備８８４も同様に、一般的にインターネットと称される、ワールドワイドな公衆パケット交換通信ネットワーク８９０を通じて、データ通信サービスを提供する。
【０１２７】
インターネットに接続される、サーバホスト８９２と称されるコンピュータは、インターネット通じて受信した情報に応答して、サービスを提供するプロセスをホストする。例えばサーバホスト８９２は、表示装置８１４に提示されるビデオデータを表す情報を提供するプロセスをホストする。なお、システム８００の諸要素は、ホスト８８２やサーバ８９２など他のコンピュータシステムにおいて様々な構成をとり得ることがあることが想定されていることに注意されたい。
【０１２８】
本発明の少なくともある実施形態は、コンピュータシステム８００を、本明細書で説明される一部または全ての技術を実装するために使うことに関している。本発明のある実施形態によると、これらの技術は、メモリ８０４に格納されている一つまたは複数のプロセッサ命令の一つまたは複数のシーケンスをプロセッサ８０２が実行することによって、コンピュータシステム８００により実行される。このような命令は、コンピュータ命令やソフトウェア、プログラムコードなどと呼ばれるが、これはストレージデバイス８０８やネットワーク８７８などの他のコンピュータ読み取り可能な媒体からメモリ８０４に読み込まれる。メモリ８０４に格納されている命令のシーケンスを実行することは、本明細書で説明された方法ステップの一つまたは複数をプロセッサ８０２実行させる結果を生む。別の実施形態では、ＡＳＩＣ８２０のようなハードウェアが、上記の手法の代わり、またはソフトウェアと組み合わされて、本発明を実装するために使用される。このように、本発明の実施形態は、ここで明示的に記載されない限り、ハードウェアやソフトウェアの特定の組み合わせに限定されることは無い。
【０１２９】
通信インタフェース８７０を介して、ネットワークリンク８７８や他のネットワークを伝送される信号は、コンピュータシステム８００対して送受信される情報を運搬する。コンピュータシステム８００は、情報を送受信することができる。このような情報にはプログラムコードが含まれ、とりわけネットワーク８８０や８９０を通って、ネットワークリンクや通信インタフェース８７０を介して、送受信される。インターネット８９０を用いるある実施例では、特定のアプリケーションのためのプログラムコードであって、コンピュータ８００から送信されたメッセージによってリクエストされたプログラムコードをサーバホスト８９２が送信する。この送信は、インターネット８９０やＩＳＰ設備８８４、ローカルネットワーク８８０、通信インタフェース８７０を通じて行われてもよい。受信されたデータは、受信された時にプロセッサ８０２によって実行されてもよい。または後に実行されるために、メモリ８０４やストレージデバイス８０８などの非揮発性媒体に格納されてもよい。実行と格納が両方行われてもよい。このようにして、コンピュータシステム８００は、搬送波上の信号としてプログラムコードを入手することができる。
【０１３０】
様々な形態のコンピュータ読み取り可能な媒体が、プロセッサにより実行される命令やデータの一つまたは複数のシーケンスを運搬するのに使用されることができる。例えば命令やデータは、はじめ、リモートコンピュータの磁気ディスクに担持されてもよい。リモートコンピュータはこれらの命令やデータを、そのダイナミックメモリにロードし、モデムを用いて電話線を介して送信してもよい。コンピュータシステム８００に搭載されるモデムは、電話線上の命令やデータを受信することができ、赤外線送信機を用いて当該命令やデータを変換し、ネットワークリンク８７８に適合する赤外線搬送波上の信号とすることができる。通信インタフェース８７０として機能しうる赤外線検出器は、赤外線で運ばれてきた命令やデータを受信し、これらの命令やデータを表す情報をバス８１０に流す。バス８１０は、情報をメモリ８０４へ運び、プロセッサ８０２はメモリ８０４からこれらの情報を読み出して、上記の命令を実行する。実行の際、上記データのいくつかを上記命令と共に用いてもよい。メモリ８０４で受信された命令やデータがストレージデバイス８０８に格納されるという選択肢があってもよい。格納するのはプロセッサ８０２により実行される前でも後でもよい。
【０１３１】
図９は、本発明の実施形態が実装されうるチップセットやチップ９００を描いたものである。チップセット９００は、本明細書に説明されるように、コンテンツに基づいてネットワーク機能を特定するようにプログラムされており、例えば、図８に関連して説明されたようなプロセッサやメモリを備え、これらが一つ又は複数の物理的パッケージ（すなわちチップ）に組み込まれている。より具体的な例を示すと、物理的パッケージは、一つ又は複数の部材やコンポーネント、及び／又は基板などの構造物アセンブリ上のワイヤなどを含み、物理的強度、サイズの保持、及び／又は電気的相互作用の抑制などを提供する。実施形態によっては、チップセットが単一のチップとして実装される場合があることが想定されている。実施形態によっては、チップセット又はチップ９００が、単一の"システム・オン・チップ"に実装される場合があることが想定されている。また、実施形態によっては、例えば独立のＡＳＩＣが用いられる場合があることも想定されており、本明細書で説明される全ての重要な機能が一つ又は複数のプロセッサで実行される場合があることも想定されている。チップセット又はチップ９００、又はその一部は、サービスの利用可能性に関連付けられたユーザインタフェース・ナビゲーション情報を提供する一つ又はステップを実行する手段の一例を構成する。チップセット又はチップ９００、又はその一部は、コンテンツに基づいてネットワーク機能を特定するステップの一つ又は複数を実行する手段の一例を構成する。
【０１３２】
ある実施形態において、チップセット又はチップ９００は、チップテッド９００の要素間で情報をやり取りするためのバス９０１のような通信機構を備える。プロセッサ９０３は、メモリ９０５などに格納される命令を実行したり情報を処理したりするべく、バス９０１に接続可能に構成される。プロセッサ９０３は一つ又は複数のプロセッシングコアを有することができ、それぞれのコアは独立に実行されるように構成されており。マルチコアプロセッサは単一の物理的パッケージによって複数の処理を行うことを可能とする。マルチコアプロセッサには、２つ、４つ、８つ、又はそれ以上のプロセッシングコアを有するものがある。別の実施例では、又は上記の実施例に加えて、プロセッサ９０３は、一つ又は複数の直列に配されたマイクロプロセッサを備えてもよい。これらのマイクロプロセッサは、独立に命令を実行できてもよく、又はパイプラインとして使われてもよく、又はマルチスレッド処理を行うように使われてもよい。プロセッサ９０３は、一つ又は複数の特定用途の要素を備えてもよい。それらは特定の処理機能やタスクを実行するために用いられる。このような特定用途の要素の例は、一つ又は複数のデジタルシグナルプロセッサ（ＤＳＰ）９０７や、一つ又は複数のＡＳＩＣ（application-specific integrated circuit）９０９である。ＤＳＰ９０７は、通常、プロセッサ９０３とは独立に、音声などの現実世界の信号をリアルタイムで処理するように構成される。同様に、ＡＳＩＣ９０９は、より汎用のプロセッサでは容易に実行することができない特定の機能を実行するように構成されてもよい。本明細書で説明された発明性を有する機能を実行する助けとなりうるその他の特定用途コンポーネントとしては、一つ又は複数のＦＰＧＡ（field programmable gate arrays，図示されていない）や一つ又は複数の特定用途のコンピュータチップがある。
【０１３３】
ある実施形態において、チップセット９００は、一つ又は複数のプロセッサと、これらをサポートする及び／又はこれらに関連するいくつかのソフトウェア及び／又はファームウェアのみを備える。
【０１３４】
プロセッサ９０３及び付随するコンポーネントは、バス９０１を介してメモリ９０５に接続できるように構成される。メモリ９０５はダイナミックメモリとスタティックメモリの両方を有する。ダイナミックメモリの例としては、ＲＡＭや磁気ディスク、書き込み可能な光ディスクなどがあり、スタティックメモリの例としては、ＲＯＭやCD-ROMなどがある。これらのメモリは実行可能命令を格納するために用いられる。これら実行可能命令は、実行されると、コンテンツに基づいてネットワーク機能を特定する、本明細書で説明された発明性を有するステップが遂行される。メモリ９０５はまた、これらの発明性を有するステップの実行に関連するデータや当該ステップの実行により生成されたデータを格納する。
【０１３５】
図１０は、ある実施形態に従う携帯端末の例示的な要素の略図である。この携帯端末は、例えばハンドセットであり、通信機能を有し、図１のシステムで動作する能力を有する。ある実施形態において、携帯端末１００１またはその一部分は、コンテンツに基づいてネットワーク機能を特定する一つまたは複数のステップを実行する手段の一例を構成する。一般的に、無線受信機は、フロントエンドとバックエンドの特性によって定義される。受信機のフロントエンドはＲＦ回路の全て含み、バックエンドはベースバンド処理回路の全てを含む。本願において使用されているように、"回路"という用語は、（１）ハードウェアのみによる実装と、（２）回路及びソフトウェア（及び／又はファームウェア）の組み合わせによる実装とを含む。前者は、アナログ回路のみの実装やデジタル回路のみの実装、またはこれらの両方を含む実装がある。後者は、特定のコンテクストで適用可能である場合は、一つまたは複数プロセッサ（デジタルシグナルプロセッサを含む）やソフトウェア、一つまたは複数のメモリを含み、またはこれらの組み合わせを含み、これらは協働して、携帯電話やサーバなどの装置に様々な機能を実行させる。この"回路"の定義は、本願において「回路」との語句を使う全ての場合において適用される。請求項においても同様である。さらなる例として、本願で使われているように、また特定のコンテクストで適用可能である場合は、"回路"との語句は、プロセッサと付随するソフトウェアやファームウェアのみの実装をもカバーしてもよい。なおプロセッサはマルチプロセッサでもよい。"回路"との語句はまた、特定のコンテクストにおいて適用可能である場合は、例えば、携帯電話のベースバンド集積回路やアプリケーションプロセッサ集積回路をカバーしてもよく、セルラネットワークデバイスやそのネットワークデバイスにおける同様の集積回路をカバーしてもよい。
【０１３６】
電話機の重要な内部コンポーネントには、メインコントロールユニット（ＭＣＵ）１００３，デジタルシグナルプロセッサ（ＤＳＰ）１００５，送受信ユニットがあり、送受信ユニットには、マイク利得制御ユニットやスピーカ利得制御ユニットが含まれる。メインディスプレイユニット１００７は、コンテンツに基づいてネットワーク機能を特定するステップを実行したりサポートしたりする、様々なアプリケーションや携帯端末機能をサポートするための表示をユーザに提供する。ディスプレイ１００７は、携帯電話などの携帯端末のユーザインタフェースの少なくとも一部分を表示するように構成される、ディスプレイ回路を含む。加えてディスプレイ１００７及びディスプレイ回路は、携帯電話の少なくともいくつかの機能をユーザが制御することを容易にする。音声機能回路１００９はマイクロホン１０１１と、マイクロホン１０１１から出力されるスピーチ信号を増幅するマイクロホンアンプとを備える。マイクロホン１０１１から出力されたスピーチ信号を増幅したものは、符号化・復号回路（ＣＯＤＥＣ）１００３に供給される。
【０１３７】
無線セクション１０１５は、信号のパワーを増幅し、アンテナ１０１７を介して基地局と通信するために、周波数変換を行う。基地局は移動通信システムに含まれているものである。パワーアンプ（ＰＡ）１０１９や送信変調回路は、ＭＣＵ１００３に制御されて応答可能である。技術分野でよく知られているように、ＰＡの出力は、デュプレクサ１０２１やサーキュレータ、アンテナスイッチに組み合わされる。ＰＡ１０１９はバッテリインタフェースやパワーコントロールユニット１０２０に組み合わされる。
【０１３８】
使用時において、携帯端末１００１のユーザはマイクロホンに向かって話し、彼又は彼女の声は、拾われたバックグラウンドノイズと共にアナログ電圧に変換される。このアナログ電圧はＡ／Ｄコンバータ（ＡＤＣ）１０２３によってデジタル信号に変換される。コントロールユニット１００３は、このデジタル信号を処理するためにＤＳＰ１００５に供給する。この処理には、音声符号化やチャネル符号化、暗号化、インタリーブなどが含まれる。ある実施形態において、処理された音声信号はセルラ転送プロトコルを用いて符号化される。この符号化は独立した要素として図示されていないユニットによって行われる。符号化方式としては、ＥＤＧＥやＧＳＭ，ＩＭＳ，ＵＭＴＳなどであることができ、いずれかの好適な無線媒体、例えばＷｉＭＡＸやＬＴＥ，ＣＤＭＡ，ＷＣＤＭＡ，ＷｉＦｉ，衛星通信などを用いることができる。
【０１３９】
符号化された信号は、無線伝送中に生じる周波数依存の損傷、例えば位相や振幅の歪みを補償するために、等価器１０２５に送られる。ビットストリームを等価した後、変調機１０２７が当該信号を、ＲＦインタフェース１０２９で生成されたRF信号と結合する。変調機１０２７は、周波数または位相変調により正弦波を生成する。信号を送信準備するため、アップコンバータ１０３１は、変調機１０２７から出力された正弦波をシンセサイザ１０３３により生成された別の正弦波と結合し、送信に望ましい周波数を達成する。この信号はＰＡ１０１９に送られ、信号の強さを適切なレベルまで増幅する。実際のシステムにおいて、ＰＡ１０１９は、ネットワークの基地局から受信した情報に基づいてDSP１００５によって利得が制御される、可変利得増幅器として動作する。信号は、デュプレクサ１０２１でフィルタされ、場合によってはアンテナカプラ１０３号に送られ、インピーダンスが合わされて、最大パワーでの伝送が実現される。最後に信号はアンテナ１０１７からローカルの基地局へ送信される。受信機における最後のステージの利得を制御するために、自動利得制御機構（ＡＧＣ）が提供されてもよい。信号は、そこからリモートの電話機と伝送される。当該リモートの電話機は、公衆交換電話ネットワーク（ＰＳＴＮ）や他の電話ネットワークに接続される、セルラ電話機や他の携帯電話機、固定電話機であってもよい。
【０１４０】
携帯電話機１００１に送信された音声信号は、アンテナ１０１７を介して受信され、直ちに低ノイズアンプ（ＬＮＡ）１０３７によって増幅される。ダウンコンバータ１０３９が搬送周波数を下げ、復調器１０４１がＲＦを取り去ってデジタルビットストリームのみを残す。この信号は等価器１０２５を通された後、DSP１００５によって処理される。その後、Ｄ／Ａコンバータ（ＤＡＣ）１０４３が信号を変換し、その出力はスピーカ１０４５を通じてユーザに届けられる。これらは全てメインコントロールユニット（ＭＣＵ）１００３の制御下にある。ＭＣＵ１００３は、中央演算装置（ＣＰＵ，図示されていない）によって実装されうる。
【０１４１】
ＭＣＵ１００３は様々な信号を受け取るが、その中にはキーボード１０４７からの信号も含まれる。キーボード１０４７及び／又はＭＣＵ１００３は、マイクロホン１０１１など他のユーザ入力要素と共に、ユーザ入力を管理するユーザインタフェース回路を形成する。ＭＣＵ１００３は、ユーザインタフェースソフトウェアを実行し、コンテンツに基づいてネットワーク機能を特定する携帯端末１００１の少なくとも一部の機能をユーザが制御することを容易にする。ＭＣＵ１００３はまた、表示命令や切り替え命令をディスプレイ１００７や音声出力切り替えコントローラにそれぞれ提供する。さらにＭＣＵ１００３は、ＤＳＰ１００５と情報の交換を行い、搭載されている場合があるＳＩＭカード１０４９やメモリ１０５１へアクセスすることも可能である。さらにＭＣＵ１００３は、端末によって必要な各種の制御機能を実行する。ＤＳＰ１００５は、実装に応じて、音声信号についてのよく知られた各種のデジタル処理機能を実行する。さらにＤＳＰ１００５は、マイクロホン１０１１によって検出された信号からローカル環境の背景ノイズレベルを決定し、携帯端末１００１のユーザの声が自然に聞こえるようにマイクロホン１０１１のゲインのレベルを設定する。
【０１４２】
ＣＯＤＥＣ１０１３は、ＡＤＣ１０２３及びＤＡＣ１０４３を含む。メモリ１０５１は、着信音データを含む様々なデータを格納し、また例えばグローバルなインターネットを介して受信した音楽データなどの他のデータを格納する能力を有する。ソフトウェアモジュールは、ＲＡＭメモリやフラッシュメモリ、レジスタなど、技術分野で知られたいかなる形態の書き込み可能な記憶媒体に存在してもよい。メモリデバイス１０５１は、単一のメモリ、CD、DVD、ROM、RAM、ＥＰＲＯＭ、光ストレージなど、デジタルデータを記憶する能力を有する非揮発性のいかなる記憶媒体であってもよい。
【０１４３】
オプションで搭載される場合があるＳＩＭカード１０４９は、例えば、セルラ電話機の番号やキャリアによって提供されたサービス、加入情報の詳細なセキュリティー情報などの重要な情報を担持する。ＳＩＭカード１０４９の主要な役目は、無線ネットワークにおいて移動端末１００１を識別することである。カード１０４９はまた、個人の電話帳やテキストメッセージ、携帯電話のユーザ設定を格納するためのメモリも備える。
【０１４４】
本発明をいくつかの実施形態や実装例を用いて説明してきたが、本発明の範囲はそのように限定されるものではなく、添付の特許請求の範囲に包含される多くの明らかな変形や均等な構成をカバーする。請求項において、本発明の特徴が、ある特定の組み合わせによって表現されているものの、それらはどのような組み合わせや順番に配されてもよい。
【図１】
0005870092.tif 000002
【図２】
0005870092.tif 000003
【図３】
0005870092.tif 000004
【図４】
0005870092.tif 000005
【図５】
0005870092.tif 000006
【図６】
0005870092.tif 000007
【図７Ａ】
0005870092.tif 000008
【図７Ｂ】
0005870092.tif 000009
【図７Ｃ】
0005870092.tif 000010
【図７Ｄ】
0005870092.tif 000011
【図７Ｅ】
0005870092.tif 000012
【図８】
0005870092.tif 000013
【図９】
0005870092.tif 000014
【図１０】
0005870092.tif 000015