JP2013535041A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2013535041A5 JP2013535041A5 JP2013509586A JP2013509586A JP2013535041A5 JP 2013535041 A5 JP2013535041 A5 JP 2013535041A5 JP 2013509586 A JP2013509586 A JP 2013509586A JP 2013509586 A JP2013509586 A JP 2013509586A JP 2013535041 A5 JP2013535041 A5 JP 2013535041A5
- Authority
- JP
- Japan
- Prior art keywords
- function
- service
- context
- user
- concept
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 description 102
- 238000004891 communication Methods 0.000 description 42
- 230000015654 memory Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 28
- 239000000203 mixture Substances 0.000 description 25
- 230000000694 effects Effects 0.000 description 21
- 239000008186 active pharmaceutical agent Substances 0.000 description 19
- 241000209149 Zea Species 0.000 description 17
- 235000002017 Zea mays subsp mays Nutrition 0.000 description 17
- 235000005822 corn Nutrition 0.000 description 17
- 235000005824 corn Nutrition 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 16
- 239000000047 product Substances 0.000 description 15
- 230000003287 optical Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 9
- 230000000875 corresponding Effects 0.000 description 9
- 239000000969 carrier Substances 0.000 description 7
- 230000001413 cellular Effects 0.000 description 6
- 230000005611 electricity Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000000051 modifying Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000003068 static Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000004615 ingredient Substances 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 230000003213 activating Effects 0.000 description 2
- 235000013305 food Nutrition 0.000 description 2
- 235000015277 pork Nutrition 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000001702 transmitter Effects 0.000 description 2
- 244000075850 Avena orientalis Species 0.000 description 1
- 235000007319 Avena orientalis Nutrition 0.000 description 1
- 229920000742 Cotton Polymers 0.000 description 1
- 235000010469 Glycine max Nutrition 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 210000002381 Plasma Anatomy 0.000 description 1
- 241000282887 Suidae Species 0.000 description 1
- 240000000280 Theobroma cacao Species 0.000 description 1
- 235000009470 Theobroma cacao Nutrition 0.000 description 1
- 240000008529 Triticum aestivum Species 0.000 description 1
- 235000015278 beef Nutrition 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 239000003245 coal Substances 0.000 description 1
- 235000016213 coffee Nutrition 0.000 description 1
- 235000013353 coffee beverage Nutrition 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 239000010779 crude oil Substances 0.000 description 1
- 230000003111 delayed Effects 0.000 description 1
- 230000001419 dependent Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000007789 gas Substances 0.000 description 1
- 239000003365 glass fiber Substances 0.000 description 1
- 239000003350 kerosene Substances 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000000670 limiting Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 239000003345 natural gas Substances 0.000 description 1
- 239000003921 oil Substances 0.000 description 1
- 235000015205 orange juice Nutrition 0.000 description 1
- 239000002420 orchard Substances 0.000 description 1
- 230000002093 peripheral Effects 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- ATUOYWHBWRKTHZ-UHFFFAOYSA-N propane Chemical compound CCC ATUOYWHBWRKTHZ-UHFFFAOYSA-N 0.000 description 1
- 239000001294 propane Substances 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000000284 resting Effects 0.000 description 1
- 230000000717 retained Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 235000010384 tocopherol Nutrition 0.000 description 1
- 238000004642 transportation engineering Methods 0.000 description 1
- 235000019731 tricalcium phosphate Nutrition 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 235000021307 wheat Nutrition 0.000 description 1
Description
ワイヤレス技術や携帯電話などのサービスプロバイダやデバイス製造業者は、魅力的なネットワークサービスなどを通じて、顧客に価値や利便性を提供しようと日々努力している。多くのデバイス製造業者は、自社によって製造されるハードウェアプラットフォームのためのソフトウェアアプリケーションを開発するために、外部の組織を引き入れようとしている。これは、例えば、そのプラットフォームの発表後にユーザに短期間の間に多くのソフトウェアを提供しようとする上で役に立つ。これらのアプリケーションは、しばしば、通信ネットワークを介して利用可能なバックエンドサービスに依存している。このようなバックエンドサービスとしては、例えばマップサービス、POI(points of interest;)サービス、電話番号照会サービス、為替レートに関するサービス、画像処理サービス、顔認識サービス、楽曲同定サービスなどがあり、他にも、何千ものバックエンドサービスが存在する。これらのサービスは、通常、通信ネットワークを介してアクセスされる、特定のメッセージプロトコルを通じて、特定のアプリケーションプログラミングインタフェース(API)を用いて呼び出されるようになっている。アプリケーションの開発者にとって、アプリケーションをサポートする適切なバックエンドサービスを同定することは、重要な課題となっている。
このように、ユーザデータに基づいてネットワーク機能を同定するためのアプローチについての必要性が存在する。本明細書において、ユーザデータとは、コンテンツと呼ばれたり、コンテクストに基づくものであったりすることができる。コンテンツとは、例えば、ユーザのデバイスに格納されるサウンドクリップや写真のようなものであることができる。コンテクストとは、ユーザのデバイスで同定された時間や場所、アクティビティのようなものであることができる。
ある実施形態では、方法が、デバイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定することを含む。この方法はまた、前記第一のデータに基づいて、ネットワークサービスにより提供される機能を決定することを含む。
別の実施形態では、装置が、少なくとも一つのプロセッサと、一つ又は複数のプログラムのためのコンピュータプログラムコードを格納する少なくとも一つのメモリとを備える。前記少なくとも一つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも一つのプロセッサと協働して、前記装置に、少なくとも、デバイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定することを実行させる。前記装置はまた、前記第一のデータに基づいて、ネットワークサービスにより提供される機能を決定するようにされる。
別の実施形態では、方法が、少なくとも一つのサービスへのアクセスを可能にする、少なくとも一つのインタフェースへのアクセスを容易にすることを含む。前記少なくとも一つのサービスは、少なくとも、デバイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定することを行うように構成される。前記少なくとも一つのサービスはまた、前記第一のデータに基づいて、異なるネットワークサービスで提供される機能を決定する。
別の実施形態では、コンピュータ読み取り可能な記憶媒体に担持される一つ又は複数の命令の一つ又は複数のシーケンスが、一つ又は複数のプロセッサにより実行されると、装置に、バイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定することを、少なくとも部分的に遂行させる。前記装置はまた、前記第一のデータに基づいて、ネットワークサービスにより提供される機能を決定するようにされる。
別の実施形態では、装置が、デバイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定する手段を備える。前記装置はまた、前記第一のデータに基づいて、ネットワークサービスにより提供される機能を決定する手段を備える。
別の実施形態では、方法が、複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つと関係付けるデータ構造を形成することを含む。
別の実施形態では、装置が、少なくとも一つのプロセッサと、一つ又は複数のプログラムのためのコンピュータプログラムコードを格納する少なくとも一つのメモリとを備える。前記少なくとも一つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも一つのプロセッサと協働して、前記装置に、少なくとも、複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つと関係付けるデータ構造を形成することを実行させる。
別の実施形態では、方法が、少なくとも一つのサービスへのアクセスを可能にする少なくとも一つのインタフェースへのアクセスを容易にすることを含む。前記少なくとも一つのサービスは、複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つと関係付けるデータ構造を形成するように構成される、
別の実施形態では、コンピュータ読み取り可能な記憶媒体により担持される一つ又は複数の命令の一つ又は複数のシーケンスが、一つ又は複数のプロセッサにより実行されるとき、装置に、複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つと関係付けるデータ構造を形成することを遂行させる。
別の実施形態では、コンピュータプログラム製品が、一つ又は複数のプロセッサにより実行されるときに、装置に、上記いずれかに記載の方法のステップを実行させる一つ又は複数の命令の一つ又は複数のシーケンスを含む。
別の実施形態では、装置が、 複数のネットワークサービスにより提供される複数の機能のそれぞれを、コンセプトの識別子の少なくとも一つと関係付けるデータ構造を形成する手段を備える。前記装置はまた、複数のネットワークサービスにより提供される複数の機能のそれぞれを、デバイスコンテクストの識別子の少なくとも一つと関係付けるデータ構造を形成する手段を備える。
本発明の様々な例示的実施形態において、以下のことが適用されてもよい。
(1)データ、及び/又は(2)情報、及び/又は(3)少なくとも一つの信号の処理を容易にすること、及び/又は、前記(1)〜(3)を処理することを含む方法であって、前記(1)データ及び/又は前記(2)情報及び/又は前記(3)少なくとも一つの信号は、その少なくとも一部が、本発明の実施形態に関連して本願に開示された方法やプロセスのいずれかまたはこれらの組み合わせに依存するか、またはその少なくとも一部が上記方法やプロセスのいずれかまたはこれらの組み合わせから導かれる。
本発明の様々な例示的実施形態において、以下のことが適用されてもよい。
少なくとも一つのサービスへのアクセスを可能にするように構成される少なくとも一つのインタフェースへのアクセスを容易にする方法であって、前記少なくとも一つのサービスは、本願に開示されるネットワークやサービスプロバイダによる方法やプロセスのいずれかまたはこれらの組み合わせを実行するように構成される。
本発明の様々な例示的実施形態において、以下のことが適用されてもよい。
(1)少なくとも一つのデバイスユーザインタフェース要素、及び/又は;(2)少なくとも一つのデバイスユーザインタフェース機能;を形成することを容易にすること、及び/又は、変形することを容易にすることを含む方法であって、前記(1)少なくとも一つのデバイスユーザインタフェース要素及び/又は前記(2)少なくとも一つのデバイスユーザインタフェース機能は、その少なくとも一部が、本発明の実施形態に関連して本願に開示された方法やプロセスのいずれかまたはこれらの組み合わせによって得られたデータ及び/又は情報、及び/又は、本発明の実施形態に関連して本願に開示された方法やプロセスのいずれかまたはこれらの組み合わせによって得られた少なくとも一つの信号に基づく。
本発明の様々な例示的実施形態において、以下のことが適用されてもよい。
(1)少なくとも一つのデバイスユーザインタフェース要素、及び/又は;(2)少なくとも一つのデバイスユーザインタフェース機能;を形成すること及び/又は変形することを含む方法であって、前記(1)少なくとも一つのデバイスユーザインタフェース要素及び/又は前記(2)少なくとも一つのデバイスユーザインタフェース機能は、その少なくとも一部が、本発明の実施形態に関連して本願に開示された方法やプロセスのいずれかまたはこれらの組み合わせによって得られたデータ及び/又は情報、及び/又は、本発明の実施形態に関連して本願に開示された方法やプロセスのいずれかまたはこれらの組み合わせによって得られた少なくとも一つの信号に基づく。
様々な例示的実施形態において、方法またはプロセスは、サービスプロバイダや携帯機器の側で実行されてもよく、また、サービスプロバイダと携帯機器とで遂行されるべきアクションをシェアするいかなる方法によっても実行されてもよい。
本発明のさらなる側面や特徴、利点が、以下の詳細説明によって容易に明らかになる。以下の詳細説明では、本発明を実施するための最良の形態であると考えられているものも含め、様々な具体的な実施形態や実装形態が例示される。本発明はまた、さらに多くの様々な異なる実施形態を取りうることができ、そのいくつかのディテールは、本発明の思想や範囲を逸脱することなく、多くの明白な観点から修正可能なものである。本明細書による説明や図面は例示的な性質を有するものと考えられるべきであり、制限的なものとみなされるべきではない。
添付の図面には、本発明の実施形態が例示されている。これらはあくまでも例示を目的とするものであって、限定の目的のためのものではない。
ある実施形態に従うシステムの略図である。このシステムは、ユーザ装置のコンテンツやコンテクストに基づいてネットワーク機能を同定する能力を有する。
図2Aは、一つ又は複数のオブジェクト又はコンテクスト関連する機能を格納するためのデータ構造の略図である。図2Bは、機能−コンセプト−コンテクストデータ構造のためのインデックスを格納するためのデータ構造の略図である。
図3Aは、ある実施形態に従う、クライアントプロセスのモジュールの略図である。このクライアントプロセスは、クライアントにおいてコンテンツやコンテクストに基づいた機能を使う。図3Bは、ある実施形態に従う、ユーザオリエンテッドサービスモジュールの略図である。図3Cは、ある実施形態に従う、機能ルックアップサービスモジュールの略図である。
ある実施形態に従う、機能ルックアップ処理のフローチャートである。
ある実施形態に従う、機能ルックアップを使用するアプリケーションの処理のフローチャートである。
ある実施形態に従う、機能−コンセプト−コンテクストデータ構造を構築するための処理のフローチャートである。
様々な実施形態に従う、図5の処理で利用されるユーザインタフェースの略図である。
様々な実施形態に従う、図5の処理で利用されるユーザインタフェースの略図である。
様々な実施形態に従う、図5の処理で利用されるユーザインタフェースの略図である。
様々な実施形態に従う、図5の処理で利用されるユーザインタフェースの略図である。
様々な実施形態に従う、図5の処理で利用されるユーザインタフェースの略図である。
本発明の実施形態を実装するために使用されうるハードウェアの略図である。
本発明の実施形態を実装するために使用されうるチップセットの略図である。
本発明の実施形態を実装するために使用されうる携帯端末(例えばハンドセット)の略図である。
以下、コンテンツ又はコンテクストに基づいてネットワーク機能を同定する方法や装置、コンピュータプログラムの例が開示される。以下の記述において、説明の目的のために、多くの具体的な詳細な構成が紹介される。これらは、本発明の実施形態を深い理解に資するためのものである。なお、当業者には明らかなことである、本発明の実施形態は、これらの詳細構成がなくとも実施される場合があり、また、均等な構成によって実施される場合もある。よく知られた構成やデバイスが、ブロック図の形で紹介されることがあるが、これは、本発明の実施形態を不必要に不明瞭にすることを避けるためである。
ここで、コンテンツという用語は、いかなるデジタルデータを表してもよい。例えば、人間に知覚されるために提示されるデータを含むことができ、そのようなデータとは、例えば、デジタルサウンド、楽曲、デジタルイメージ、デジタルゲーム、デジタルマップ、POI情報、(音楽ビデオやニュースクリップ、劇場公開ビデオのような)デジタルビデオ、ドキュメント、広告、プログラム命令、データオブジェクトなどであることができる。その他にも、いかなるデジタルデータであってもよく、また、これらの組合せであってもよい。コンテンツは、ファイルやデータベースのような、一つ又は複数のデータ構造の中に格納されることができる。本明細書においては、デジタル写真のために好適なネットワーク機能を同定することについての様々な実施形態が説明される。しかし、本明細書で説明される手法は、他のタイプのコンテンツについても使用されうるものであり、そのように意図されている。他のタイプのコンテンツとは、上述のように、例えば、録音されたサウンドや、録音されたビデオ、ゲームのデータ、ネットワークから検索されたデータなどであることができる。
図1は、ある実施形態に従うシステム100の略図である。システム100は、ユーザ装置のコンテンツやコンテクストに基づいて、ネットワーク機能を同定する能力を有する。ユーザ装置(UE)101は一つ又は複数のユーザオリエンテッドサービス110a−110nに接続しうる。以下、ユーザオリエンテッドサービス110a−110nはまとめてサービス110と称されることがある。サービス110aへの接続は、WWWブラウザ107や通信ネットワーク105を介して通信を行なうクライアントプロセス112のような、一つ又は複数のクライアントプロセスを用いて行われる。UE101はまた、UE101やそのユーザのローカルなコンテクストを決定するコンテクストエンジン103を備える。ローカルなコンテクストとは、例えばローカルタイム、位置決定システムからの地理的位置、外気の温度、気圧、音や光、UE101で実行中のアプリケーション、UE101でレンダリングされているコンテンツ、ユーザインタフェース(UI)を介するユーザ入力などであることができる。
例であるが、システム100の通信ネットワーク105は、一つ又は複数のネットワークを含むことができる。このネットワークは、図示されていないが、例えばデータネットワークや電話ネットワーク、又はこれらを組み合わせたものであることができる。データネットワークは、例えば、ローカルエリアネットワーク(LAN)やメトロポリタン エリア ネットワーク(MAN)、広域ネットワーク(WAN)、公衆データネットワーク(例えばインターネット)、近距離無線ネットワークなどであることができ、また、他の好適なパケット交換ネットワークであることができる。なお、そのようなパケット交換ネットワークには、商業的に利用可能なものもあれば、個人の光ケーブルや光ファイバネットワークのような、私有のパケット交換ネットワークもあり、またこれらを組み合わせたものであってもよい。無線ネットワークは、例えばセルラネットワークであることができ、これは、EDGE(enhanced data rates for global evolution)やGPRS(general packet radio service),GSM(global system for mobile communications),IMS(Internet protocol multimedia subsystem),UMTS(universal mobile telecommunications system)など、様々な技術を利用したものであることができる。また、セルラネットワークで使用されうる無線媒体としては、WiMAX(worldwide interoperability for microwave access)やLTE(Long Term Evolution),CDMA(符号分割多元接続),WCDMA(Wideband Code Division Multiple Access),WiFi,無線LAN(WLAN),Bluetooth(登録商標),IPデータ放送,衛星,モバイルアドホックネットワークなどがあり、またこれらを組み合わせたものであってもよい。
UE101はいかなるタイプの端末であってもよく、移動端末や固定端末、可搬型端末であってもよい。例えば、携帯ハンドセットや局,ユニット,デバイス,マルチメディアコンピュータ,マルチメディアタブレット,インターネットノード,ノートブックコンピュータ,ネットブック,タブレットコンピュータ,携帯情報端末(PDA),音楽やビデオのプレーヤー,デジタルカメラやデジタルビデオカメラ,位置同定機器,テレビ受像機,無線放送受信機,電子ブック機器,ゲーム機器,及びこれらを組み合わせたものであってもよい。さらに、これらのアクセサリーや周辺機器を含んでもよく、またそれらの組合せを含んでもよい。UE101はまた、ユーザに対するとのようなタイプのインタフェースを含んでもよく、例えば、ウェアラブル回路などを含んでもよい。
例であるが、UE101やユーザオリエンテッドサービス110は、互いに通信したり、通信ネットワーク105の他の要素と通信したりすることができる。この通信には、よく知られたプロトコルを用いることができるが、新しいプロトコルや開発中のプロトコルを用いてもよい。これに関連して、プロトコルは、ネットワーク105の各ネットワークノードが、通信リンクを介して送信される情報に基づいて、どのように相互作用するかを定義するルールのセットを含む。プロトコルは、様々なタイプの物理信号の生成や受信から、これらの信号を送信するためのリンクの選択、これらの信号により提示される情報のフォーマット、コンピュータ上で動作しているとのソフトウェアアプリケーションが情報を送受信するかの識別など、各ノードの動作の様々なレイヤにおいて使用される。ネットワーク上で情報交換する複数のプロトコルレイヤのコンセプトが、OSI参照モデルで記述されている。
ネットワークノード間の通信は、通常、パケットに分割したデータを交換することにより実現される。各パケットは、通常、(1)特定のプロトコルに関するヘッダ情報と、(2)ヘッダ情報の次に位置するペイロード情報とを有する。ペイロード情報は、プロトコルによって個々に処理される。プロトコルによっては、(3)ペイロード情報の次に位置するトレーラ情報も有する。この情報は、ペイロード情報の終わりを示す。ヘッダ情報は、パケットの送信元や送信先,ペイロードの長さなど、そのプロトコルで使われる各種の情報を含んでいる。しばしば、あるプロトコルのペイロードに含まれるデータは、OSI参照モデルにおけるより高次のレイヤのプロトコルに関連するヘッダとペイロードを含んでいる。また、あるプロトコルのヘッダには、そのペイロードに含まれている次のプロトコルのタイプに関する情報が含まれている。高次のプロトコルは、低次のプロトコルにカプセル化されていると表現される。パケットに含まれるヘッダは、複数の異なるネットワークで運ばれる。例えばインターネットにおいては、OSI参照モデルで記述されるように、通常、レイヤ1用の物理ヘッダ,レイヤ2用のデータリンクヘッダ,レイヤ3用のインターネットワークヘッダ,レイヤ4用のトランスポートヘッダ,及び、レイヤ5−7の各種アプリケーション用のヘッダが用いられる。
クライアントサーバモデルは、コンピュータ処理の相互関係において広く知られており、また使われている。クライアントサーバモデルによれば、クライアントプロセスは、リクエストを含むメッセージをサーバプロセスに送信し、サーバプロセスは、サービスを提供することによって応答する。サーバプロセスは、応答を含むメッセージをクライアントプロセスに返すこともある。しばしば、クライアントプロセスとサーバプロセスは異なるコンピュータ装置で実行される。このような装置は、例えばホストと呼ばれ、ネットワーク通信のための一つまたは複数のプロトコルを用いてネットワークを介して通信しあう。「サーバ」との用語は、一般的に、サービスを提供するプロセスや、処理が行われるホストコンピュータを言い表すときに使われる。「クライアント」との用語は、一般的に、リクエストを生成するプロセスを表現するときに使われるが、処理が行われるホストコンピュータを表現するときにも使われる。なお、本明細書では、文脈から特に明らかでない限り、「サーバ」や「クライアント」との用語は、ホストコンピュータ表現するよりも、プロセスを表現するためにおもに使用される。サーバによって遂行されるプロセスは、複数のプロセスや複数のホストに分解されることができる。この場合の複数のホストのそれぞれを、ティア(tier)と呼ぶことがある。分解する理由は、例えば、信頼性やスケーラビリティ、冗長性などである。通信ネットワークに接続されているほとんどのノードで利用可能な有名なクライアントプロセスは、WWWクライアントである。これは、ウェブブラウザやブラウザなどと呼ばれ、HTTPに従うフォーマットのメッセージを用いて、ウェブページを提供するWWWサーバと呼ばれる多くのサーバと相互に通信する。例えば、ある実施形態において、ネットワークサービス110はWWWサーバであることができ、UE101はブラウザ107を有することができる。ブラウザ107はこれらのサービスを取得するために用いられることができる。
ユーザオリエンテッドサービス110は、アプリケーションプログラミングインタフェース122a−122nを通じて、バックエンドサービス120a−120nを用いる。なお、以下において、バックエンドサービス120a−120nは、まとめて符号120で表されることがあり、アプリケーションプログラミングインタフェース122a−122nは、まとめてAPI122で表されることがある。多くのバックグラウンドサービスは、それらのネットワークアドレスやAPI、メッセージプロトコルを、サービスレジストリ128において公開する。例えばウェブサービスレジストリはUDDI(Universal Description, Discovery and Integration)を含み、これは、SOAP(ソープ:Simple Object Access Protocol)メッセージによって問い合わせを受け、WSDL(Web Services Description Language)ドキュメントへのアクセスが提供される。WSDLドキュメントには、そのディレクトリにリストされているウェブサービスにアクセスするために必要なプロトコルの要件やメッセージフォーマットが記載されている。
UE101にユーザオリエンテッドアプリケーションを提供するために、アプリケーションの開発者はクライアントプロセス(例えばクライアントプロセス112)を書き、バックエンドサービスを使用する。ここで、当該アプリケーションの開発者は、個人または個人のチームであってもよい。バックエンドサービス120の使用は、直接に行われてもよいし、やはり開発者によって書かれたユーザオリエンテッドサービス110を介して間接的に行われてもよい。アプリケーション開発者は、クライアントプロセスをUE101に提供する。ある場合において、アプリケーション開発者は、ユーザインタフェースとしてUE101のブラウザ107を使用し、一つまたは複数のバックエンドサービス120と相互作用するユーザオリエンテッドサービス110を作成する。作成したユーザオリエンテッドサービス110は、サービス110のリンクを介してUE101に届けられてもよい。全てのバックエンドサービス120及びそれらの対応するAPIやプロトコルについての知識は、しばしば、技術に精通した開発者の非常に多くの経験を必要とする。これら多くのバックエンドサービスを起動することは、UE101やサービス110のホストにおいて、多くのストレージや処理能力を使用することになる。
さらに、あるユーザオリエンテッドアプリケーションにおいて、アプリケーションにおいて何か適切なアクションであるかは、アプリケーションの操作のためにユーザにより選択される特定のコンテンツに依存する。例えば、ユーザが建築物を撮影したのか、トウモロコシ畑を撮影したのか、人物のグループを撮影したのか、などである。起動されるべきバックエンドサービス120は、しばしば、コンテンツによって何が表現されているが依存する。例えば、顔認識サービスや映画のチケットの予約サービスは、ユーザによって提供されたものがトウモロコシ畑の写真であれば、ふさわしくないであろう。ユーザによって適切な全てのバックエンドサービスに提供されるコンテンツやプログラミングインタフェースを予測することは、多くのユーザオリエンテッドアプリケーションにとって、極めて大変で複雑とされており、そのようなアプリケーションの開発や提供は遅れている。このような事情で、バックエンドサービス120の適切な機能を一様に及び/または動的に同定することができれば、ユーザオリエンテッドアプリケーションは利益を得ることができる。
この問題に対応するため、図1のシステム100は、ユーザ装置のコンテンツ又はコンテクストに基づいてネットワーク機能を同定する能力を導入している。図示される実施形態において、この強化された能力は、機能ルックアップサービス130と、機能−コンセプト−コンテクストデータ構造134とを含む。図示される機能ルックアップサービス130は、自身のAPI132と、ゼロ又はそれ以上のインデックス136とを有し、複数のバックエンドサービス120のための単一のゲートウェイとしての役割を果たす。インデックス136は、存在する場合、機能ルックアップサービス130がデータ構造134の中から、ユーザの現在のコンテンツやコンテクストの一方又は両方に関連するバックエンドサービスを効率的に見つけることを可能にする。機能ルックアップサービス130は、一つまたは複数のバックエンドサービス122について、これらがサービスレジストリ128において検索されることを可能にし、また、クライアント112やユーザオリエンテッドサービス110から起動されることを可能にする。この新しい機能ルックアップサービス130は、ユーザに供給されたコンテンツから抽出された特徴を使用して、バックエンドサービス120の適当な機能を提案するが、当該特徴には、機能−コンセプト−コンテクストストレージ134において上級のバックエンドサービス120が関連付けられる。クライアント112やユーザオリエンテッドサービス110は、提供される機能に基づいて、特定のバックエンドサービス120やその機能を特定し、また、バックエンドサービス120に必要なパラメータをための値を決定して、API122や対応するプロトコルに従って送信する。機能−コンセプト−コンテクストデータ構造134及び機能ルックアップサービス130は、広範囲のバックエンドサービスを提供しつつ、クライアント112や(もし存在するなら)対応するユーザオリエンテッドサービス110の処理を簡単にするという効果を達成するための手段の例である。これらのバックエンドサービス2それぞれ明示的にサポートされるクライアントに比べて、クライアントプロセス112は、広範囲のバックエンドサービスの提供するために極めて少ない量のメモリしか消費しない。
図2Aは、一つまたは複数のコンセプト又はコンテクストに関連付けられる機能を格納するデータ構造エントリ200の略図である。図2A及び図2Bにはデータ構造やフィールドが統合されたブロックとして描かれている。また、それらは図示目的のための特定の順番で描かれている。しかし、別の実施形態では、いずれかのデータ構造やフィールドやそれらの部分は、異なる順番に並べられてもよく、一つまたは複数のネットワークノードの一つまたは複数のデータ構造やデータベースに存在してもよく、または省略されていてもよく、または一つまたは複数の追加的なフィールドが加えられてもよく、いくつかのものを結合するなどの方法によりデータ構造が変更されてもよいことに留意されたい。
図示される実施形態において、エントリ200は、サービス識別子(ID)フィールド202、機能識別子(ID)フィールド204、API識別子(ID)フィールド206、プロトコルフィールド208、パラメータフィールド210、記述フィールド220、メディアタイプフィールド230、関連コンセプトフィールド240、関連コンテクストフィールド250を有する。
サービスIDフィールド202は、バックエンドサービス120の一つを示すデータを格納する。シールド102においてバックエンドサービスを識別する方法としては、いかなるもの用いてもよい。例えば、本願の技術分野でよく知られているように、サービスのネットワークアドレスや、バックエンドサービスに関連付けられたサービスレジストリ128のキーを用いることができる。なお、当該ネットワークアドレスとしては、IPアドレスやTCPポート、プロトコルドメイン、ネームディレクトリ、ファイルネームを利用したものであってもよい。機能IDフィールド204は、フィールド202に示されるバックエンドサービスの個々の機能(存在する場合に)を示すデータを格納する。API IDフィールド206は、フィールド204に示される機能のためのAPIを示すデータを格納する。このデータは、例えば、APIが公開されているネットワークアドレスであったり、サービスにおけるAPIセット自身の識別子であったりすることができる。プロトコルフィールド208はフィールド206に示されるAPIでデータを交換するためのメッセージプロトコルを示す。ある実施形態において、API又はプロトコル、またはその両方は、フィールド202に示されるサービスレジストリ128のキーにおいて利用可能である。その場合、フィールド206や208の一方又は両方が省略される場合もある。フィールド206や208の一方又は両方を含めることは、バックエンドサービスの機能を起動するために必要なネットワーク帯域幅を減少させるという効果を達成するための手段の一例である。フィールド206や208の一方又は両方を省略することは、機能−コンセプト−コンテクストデータ構造134の記憶手段のフットプリントを削減するという効果を達成するための手段の一例である。
パラメータフィールド210は、入力パラメータや出力パラメータを示すデータを格納する。入力パラメータには、機能のために値が提供される。出力パラメータには、フィールド202や204に示される機能から値が提供される。例えばパラメータフィールド210は、場合に応じて、入力及び出力パラメータの名前や単位、有効範囲、デフォルト値などのデータを格納することができる。ある実施形態において、パラメータはフィールド202に示されるサービスレジストリ128のキーにおいて利用可能である。この場合、フィールド210は省略されることができる。フィールド210を含めることは、バックエンドサービスの機能を起動するために必要なネットワーク帯域幅を減少させるという効果を達成するための手段の一例である。フィールド210を省略することは、機能−コンセプト−コンテクストデータ構造134の記憶手段のフットプリントを削減するという効果を達成するための手段の一例である。
記述フィールド220はフィールド202や204で特定される機能によって実行される処理を説明するテキストなどのデータを格納することができる。そのようなテキストは、UE101のエンドユーザーによって理解されうるものであってもよい。記述フィールド220は、例えば、"GPS座標に一致する通りの住所を決定する"や、"写真に写っている有名人の顔を判断する"、"行こうとしている劇場のショーのチケットを予約する"、"目的の都市への飛行機のチケットを予約する"、"行こうとしているレストランのテーブルを予約する"、"サウンドサンプルに似た楽曲のタイトルとアーティストを判断する"、"株や債権を市場で売買する際の値段を決定する"、"商品を市場で売買する際の値段を決定する"、"商品を売っている店を決定する"、"料理のレシピを提供する"、"銀行口座に支払を実行する"、などであることができる。ある実施形態において、この記述はフィールド202に示されるサービスレジストリ128のキーにおいて利用可能である。この場合、フィールド220は省略されることができる。フィールド220を含めることは、UE101のユーザにバックエンドサービスの機能を提示するために必要なネットワーク帯域幅を減少させるという効果を達成するための手段の一例である。フィールド220を省略することは、機能−コンセプト−コンテクストデータ構造の記憶手段のフットプリントを削減するという効果を達成するための手段の一例である。
メディアタイプフィールド230は、機能が処理を行うメディアのタイプを示すデータを格納する。メディアのタイプとは、例えば、イメージファイルフォーマット、オーディオファイルフォーマット、ビデオファイルフォーマット、文書処理ドキュメントフォーマット、スプレッドシートフォーマット、マークアップ言語のフォーマット等々であることができる。ある実施形態において、この情報は、ユーザから提供されたコンテンツに対して処理を行わない機能を取り除くための弁別情報として用いられることができる。ある実施形態において、この記述はフィールド202に示されるサービスレジストリ128のキーにおいて利用可能である。この場合、フィールド230は省略されることができる。フィールド230を含めることは、バックエンドサービスの適切な機能を決定するために必要なネットワーク帯域幅を減少させるという効果を達成するための手段の一例である。フィールド230を省略することは、機能−コンセプト−コンテクストデータ構造の記憶手段のフットプリントを削減するという効果を達成するための手段の一例である。
関連コンセプトフィールド240は、コンセプト特定ライブラリのどのコンセプト(例えば物理オブジェクト)が、フィールド202や204で特定される機能に関係するのかを示すデータを格納する。画像や音、テキストで特定可能なコンセプトのコンセプトライブラリは、既に知られている。本明細書において、"コンセプト(concept)"とは、セマンティックライブラリまたはオブジェクトライブラリのエントリであり、触知可能なオブジェクトを表すことができる。そのようなオブジェクトとは、例えば人間であったり車であったりすることができる。"コンセプト(concept)"は、触知可能なオブジェクトを表すこともでき、例えば株や債券、又はスキーや水泳のようなアクションであってもよい。"コンセプト"は、しばしばカテゴリにグループ分けされることができ、例えば、自動車や建築物、水に関するもの、航空機に関するものなどであることもできる。実施形態によっては、関連コンセプトフィールド240に含まれるコンセプトは、特定の機能が適用される特別のコンセプトやコンセプトのカテゴリである場合もある。例えば、"人間"というコンセプトは、顔認識機能や音声認識機能に関連があり(この場合、メディアタイプはそれぞれ画像や音である)、一方、"食材"というコンセプトは、レシピ機能に関連する(この場合、メディアタイプは食材を示すテキストである)。同様に、"建築物"は、チケットの購入やテーブルの予約に関連があり(メディアタイプは建築物を示すテキスト)、"製品"は小売り機能に関連する(メディアタイプは製品を示すテキスト)。実施形態によっては、"コンセプト"は、目的や文脈的な語彙のいずれかまたは両方の用語によって表現される。この点についてさらに説明する。実施形態によっては、"コンセプト"は文脈的な語彙のコンセプトであり、例えば株や債券であることができる。"コンセプト"は、ユーザから提供されたコンテンツの中の、そのデジタル的な表現の外に存在し、またそれとは独立に存在する。フィールド240は、ユーザのコンテンツの中に表現されるコンセプトを、バックエンドシステムの機能に関連付けるという効果を達成するための手段の例である。実施形態によってはフィールド240を省略することができ、その場合、機能はコンテクストだけによって選択され、コンテンツ中に表現されている目的やその他のコンセプトによっては選択されない。
関連コンテクストフィールド250は、フィールド202や204に特定される機能に関連する時間的,空間的,または活動に関する情報を示すデータを格納する。実施形態によっては、"コンテクスト"は、次のように、コンテクストの語彙によって表現される。例えば、月曜日,午前10時,GPS位置,通信中,ドキュメントの操作中,待機中,不在などである。しばしば"コンテクスト"は、コンテクストの語彙のある結合に関連する内容を含む。例えば、仕事中,運動中,睡眠中,食事中,休養中などである。例えば、1日のうちの時間や1週間のうちの曜日は銀行機能にとって重要であり、場所は、小売り機能やチケット購入機能、テーブル予約機能にとって重要であり、1年のうちの季節はレシピ機能にとって重要である。通信アクティビティは、テキスト音声変換や音声テキスト変換機能にとって重要である。フィールド250は、UE101などのユーザのデバイスに関連するコンテクストをバックエンドシステムの機能に関連付けるという効果を達成するための手段の一例である。実施形態によってはフィールド250を省略することもでき、その場合、機能はコンテンツに表現されているコンセプトのみによって選択され、コンテクストによっては選択されない。
フィールド250でコンテクストを示す方法は、どのようなものであってもよい。様々な実施形態において、消費者のコンテクストに関連する単語やトピックを特定するために、コンテクストの語彙集やトポロジが開発されてもよい。コンテクストの語彙集やトポロジを生成するための既存のどのような方法を用いてもよい。例えば、消費者のコンテクストについて検討し記述するためのドキュメントが集められる。例えば、消費者が支払いをしようとしているか、またはその他の義務を遂行しようとしているか、または休んでいるか、現在時刻は平日の夜であるかまたは週末であるか、現在の季節は夏であるか冬であるか、消費者は家にいるか外にいるか、消費者は目的地に着いたかまだ途中であるか、ドキュメントは場所の名前を呼び起こすか人の名前を呼び起こすか、消費者は動かないでいるか移動しているか、またどのような速度でどちらの方向に向かって移動しているか、明るいか暗いか、消費者のユーザ装置においてアプリケーションは使用可能であるか、などのようなドキュメントが集められる。これらのドキュメントは検討されて、消費者のコンテクストに関連する単語を決定したり、コンテクストに関連する単語のコレクションを決定したり、これらの単語に関連する使用法を決定したり、またはこれらの組合せを決定したりするために使われる。実施形態においては、語彙集のトポロジはドキュメント中の用語の相対的な出現によって与えられるか推定されるトピックを含む。例えば、様々な実施形態において、ドキュメントのセットの中の用語からトピックを推定するために、当該分野でよく知られたpLSI(probabilistic latent semantic indexing)やLDA(latent Dirichlet allocation)を用いることができる。これらの方法は、ネットワークサービスの消費者の状況に関連するドキュメントのセットからコンテクストに関連する単語やコンテクストのトピックを導くために用いられることができる。各トピックは比較的多くの単語の集合の中のあるグループに関連付けられるため、トピックと単語を関連付けるトポロジや、サブトピックと高次のレベルのトピックとを関連付けるトポロジが存在する。実施形態によっては、コンテクストの語彙集は手動で構築されることができる。または、ODP(Open Directory Project)などの既存の標準的なトポロジを拡張して構築してもよい。これらの実施形態において、LDAはコンテクスト語彙集の構築には使用されないが、一旦語彙集が構築されると、LDAを用いてドキュメントを解析し、どのようなトピックやコンテクストがドキュメント中に含まれているかを調べることができるようになる。コンテクスト語彙集トポロジはここで説明される様々な実施形態で使用され、UE101やバックエンドサービスのコンテクスト決定するために使用される。
実施形態によっては、コンテクスト語彙集のルートの下に、カテゴリのレベルとして2つだけが存在する。これらはトピック(topic)と単語(word)である。各トピックは単語のセットによって定義される。各単語は特定の範囲の出現確率を有する。このような実施形態のあるものにおいて、V個の単語で表現される語彙は、V次元のベクトルで表現される。そして、全ての単語は、V次元のベクトルと、その単語に対応する位置以外の全ての位置がゼロであることによって表現される。通常、意味があまりない単語、例えば"冠詞"や前置詞、代名詞や常用語は無視される。トピック(T)の各々は、V次元のベクトルと、そのトピックの中の各単語の相対的な出現率によって表される。相対的の出現率は、各単語に対応する位置においてパーセントで表される。全てのトピックはV×Tのマトリクスによって表される。
コンテクスト語彙集からも単語が(例えばバックエンドサービス120を記述する)ドキュメントに発見されるとその単語はその単語を含む複数のトピックが混合したものであると考えられる。それは複数のトピックの各々には、ドキュメント中の単語のパーセンテージに基づいてパーセント確率が割り振られる。この割り振りには、例えばLDAなどのよく知られた方法を用いることができる。このようにして、ドキュメント全体が当該ドキュメントから発見されたトピックのセットによって表現されることができる。この表現には確率のメトリックが使用されており、例えば、T次元のベクトルと、各ベクトルの位置における変動確率とが含まれている。二つのドキュメント、例えばバックエンドサービスの説明とUE101の現在の状態の説明のような二つのドキュメントを比較することができる。この比較は、これらのドキュメントを表す二つのT次元ベクトル(トークン)の類似度を比較することによって行うことができる。例えば、対応する用語の積の和などである。代わりにまたはそれに加えて、これら二つのドキュメントの距離を表すメトリックを計算してもよい。このようなメトリックは、二つのトークンの類似度が下がると値が大きくなる。どのような距離的メトリックを使用してもよく、例えばオーダー0の距離(相違が最も大きくなる座標の絶対値)や、オーダー1の距離(T個の相違の絶対値の和)、オーダー2の距離(T個の相違の二乗の和・・・ユークリッド距離に等しい)、オーダー3の距離(絶対値の三乗の和)などを用いることができる。二つのドキュメントのトークンの類似度が上がるほど、またはこれらのトークンの距離が小さくなるほど、これら二つのドキュメントの関連性は強くなる。以下の説明において、コンテクスト語彙集は既に定義されており、コンテクスト語彙データ構造の中に格納されているものとする。ドキュメントやリソースのコンテクストはコンテクストトークンによって表される。二つのドキュメントのコンテクストトークンの類似度が上がるほど、これらの間に計られる距離は小さくなり、一方のドキュメントによって示される消費者のコンテクストが、もう一方のドキュメントに強く関連することとなる。
コンテクストはユーザのテキストベースを解析することによってのみ得られるわけではなく、デバイスのコンテクストデータから直接得られる場合のほうが多い。このため、実施形態によっては、コンテクストの語彙はコンテクストエンジン103の出力に基づいて定義される。コンテクストエンジン103は、デバイスの側で推定されることが可能な全てのコンテクストを反映することができる。このようなコンテクストとしては、例えば、ユーザの位置、現在のアクティビティ、交通機関の様子(車の中にいるか、バスの中にいるか、運転中であるかなど)、関係性(ソーシャルコンタクト)、だいたいの場所(家や仕事場)などであることができる。
例示のために、コンテクストを記述するために利用可能なコンテクスト語彙データ構造が存在すると考えられてもよい(ただし図示されていない)。さらに、ある言語の全てのコンセプトについて、異なる言語によるセマンティックな語彙のデータ構造が存在すると考えられてもよい(ただし図示されていない)。このようなデータ構造は現代のサーチエンジンで使用されているものである。さらに、ある実施形態においては、オブジェクトは、オブジェクトデータ構造(図示されていない)の中のオブジェクト語彙やトピックによって表現される。このようなオブジェクトデータ構造においては、オブジェクトトークンが定義されている。ある実施形態においては、コンセプトの語彙やトピックと、物理オブジェクトや他のコンセプトを異なるメディアから抽出した特徴に関連づけるデータベース中のコンセプトとの間にマッピングが存在する。この点についてさらに説明される。
ある実施形態において、関連コンセプトフィールド250のデータは、フィールド202や204に示される機能のための一つまたは複数のコンテクストトークンのリストである。同様に、ある実施形態においては、関連コンセプトフィールド240のデータは、フィールド202や204に示される機能のための一つまたは複数のコンテクストトークンのリストである。
図2Bは、機能−コンセプト−コンテクストデータ構造のためのインデックスを格納するデータ構造160の略図である。データ構造260は、データ構造136のインデックスの実施形態の一例である。ユーザが供給するコンテンツの中のコンセプトがUE101において特定されたとき、そのコンセプトのためにデータ構造134の中の各エントリ200を検索することは、コンピュータ資源の観点からはしばしばコストが高いものとなる。そこで、ある実施形態においては、機能−コンセプト−コンテクストエントリ200から、各コンセプトのためにインデックスが導出される。また、コンセプトだけでなく、コンセプトのカテゴリやこれら両方のために、またコンセプトのトピックについてインデックスが導出される。同様に、ある実施形態においては、コンテンツやコンテンツの主題、これらの両方、またコンテンツのトピックのそれぞれのために、機能−コンセプト−コンテクストエントリ200からインデックスが作成される。インデックス260は、既知のコンセプトやコンテクストに関連する機能を発見するための計算コストを削減するという効果を達成するための手段の例である。
図示される実施形態において、データ構造260は複数のインデックスを含む。最初のインデックスは、コンセプト識別子フィールド262および適合する複数の機能IDフィールド264を含む。機能IDフィールド264は、コンセプトデータベースの中の各コンセプト,カテゴリ,またはこれら両方について設けられてもよい(その様子が省略機能で示されている。)コンセプト識別子フィールド262はコンセプトのデータベースや語彙集からのコンセプトIDやカテゴリを示すデータを格納する。適合機能IDフィールド264は、関連コンセプトフィールド240にコンセプトやカテゴリを含む各機能の機能IDをリストするデータを格納する(その様子がフィールド202や204に描かれている)。ある実施形態においては、コンセプトトピックの確率が閾値より大きい機能のみがリストに含まれる。
同様に、2番目のインデックスはコンテクストフィールド272と、適合機能IDフィールド274を含む。適合機能IDフィールド174は、コンテクスト語彙集の中の各コンテクスト用語や主題、またこれらの両方について設けられてもよい。その様子が省略機能で示されている。コンテクストフィールド役得時にはコンテクスト語彙集の単語やコンテクスト語彙集からの主題を示すデータを格納する。適合機能IDフィールド274は、関連コンテクストフィールド250のコンテクストを含む各機能の機能IDをリストするデータを含む(その様子がフィールド202や204に描かれている)。ある実施形態においては、コンテクストトピックの確率が閾値より大きい機能のみがリストに含まれる。
図3Aは、ある実施形態に従って、クライアントのコンテンツやコンテクストに基づいてバックエンド機能を用いるクライアントプロセスのモジュール310の略図である。例示すると、UE101のクライアント112は、機能ルックアップサービスにコンテンツやコンテクストを供給するコンポーネントや、UE101の機能を実装するためにUE101のユーザへ提案する機能を提示するコンポーネントを一つまたは複数有する。これらのコンポーネントの機能は一つまたは複数のコンポーネントによって組み合わせられたり、同様の機能を有する他のコンポーネントによって実行されたりすることがあることが想定されている。このような事態は、例えば、ユーザオリエンテッドサービス110や機能ルックアップサービス130において生じる可能性がある。図示される実施形態において、クライアントモジュール310は、UE101のユーザによって操作されるためのグラフィカルユーザーインターフェイス(GUI)モジュール311や、UE101のコンテクスト天神103と協働するコンテクストエンジンインターフェイスモジュール313、アプリケーションによって使用されるコンテンツを供給するコンテンツ生成モジュール315、モジュール315によって生成されたコンテンツのメディアタイプを決定するメディア識別モジュール317、ユーザオリエンテッドサービス110と協働するサービスインターフェイスモジュール319を備える。
GUIモジュール311は、UE101のディスプレイにグラフィック要素を提示し、タッチスクリーンなどの一つまたは複数の入力デバイスにおけるユーザの操作を検出する。それによって、UE101のユーザがコンテンツ生成器を制御することを可能にし、また、生成されたコンテンツに基づいて特定される機能を選択することを可能とする。コンテクストエンジンインターフェイスモジュール313は、コンテクストエンジン103と協働し、UE101の時間的,空間的,またはアクティビティに関する状態を決定する。ある実施形態において、GUIモジュール311は、ブラウザ107に送られたウェブページのマークアップステートメントやフォームを有する。
コンテンツ生成器315は、UE101のアプリケーションによって用いられるコンテンツを生成する。このようなコンテンツとしては、例えば、サービス110からコンテンツをダウンロードするファイル転送プロセスや、UE101のマイクロホンによって検出された音声からオーディオファイルを生成するオーディオキャプチャプロセス、デジタルカメラから画像ファイルや動画ファイルを生成する画像または動画キャプチャプロセス、ユーザによる一つまたは複数の入力デバイスの操作に基づいてテキストファイルや文書ファイル、スプレッドシートや画像ファイルを作成するユーザ入力キャプチャプロセスなどがある。メディアタイプ識別モジュール317は、コンテンツ生成モジュール315によって作られたコンテンツのメディアタイプを決定する。
ユーザオリエンテッドサービス・インターフェイスモジュール319は、UE101のアプリケーションに関与するユーザオリエンテッドサービス110と協働する。ある実施形態においては、ユーザオリエンテッドサービス110省略され、ユーザオリエンテッドサービスモジュール320は、クライアント112と機能ルックアップサービス130と2分割される。さらに、ユーザオリエンテッドサービス・インターフェイスモジュール319は、機能ルックアップサービス・インターフェイスモジュールに置き換えられる。
インターフェイスモジュール319は一つまたは複数の機能の選択肢を返し、GUIモジュール311はそれをユーザに提示する。ユーザが使う機能を選択すると、クライアント112またはユーザオリエンテッドサービス110は、その機能のために足りない入力パラメータを補う。この処理は、例えば、現在のコンテクストや表現されているコンセプト、またはこれら両方に基づいて行うことができる。パラメータの値を自動で決定することができない場合は、GUIモジュール311は、そのようなパラメータを埋めるようにユーザを促す。全ての必要なパラメータが埋められると、クライアント112またはユーザオリエンテッドサービス110は、リクエストに対応すべく、選択された機能の情報をバックエンドサービス120に伝える。その結果はバックエンドサービス122よってクライアント112直接送られるか、ユーザオリエンテッドサービスや機能ルックアップサービス130を通じてクライアント112に渡される。
図3Bは、ある実施形態に従う、ユーザオリエンテッドサービス110のモジュール320の略図である。例として、ユーザオリエンテッドサービス110は、機能ルックアップサービスにコンテンツやコンテクストを提供し、UE101でアプリケーションを実装するためにUE101のユーザに提案する機能を提示する一つまたは複数のコンポーネントを備える。これらのコンポーネントの機能は一つまたは複数のコンポーネントの中で結合されたり、同様の機能を有する他のコンポーネントによって実行されたりする場合があることが想定されている。そのような他のコンポーネントとして、例えば、クライアントプロセス112や機能ルックアップサービス130がある。ユーザオリエンテッドサービスモジュール320は、クライアントインターフェイスモジュール321,メディア特性抽出モジュール323,コンセプト特徴データ構造327を有するコンセプト特定モジュール325,機能ルックアップサービス・インターフェイス328,サービスレジストリ・インターフェイス329を備える。
クライアントインターフェイスモジュール321は、UE101からコンテンツやコンテクストを受信したり、機能ルックアップサービス1302よって提供される一つまたは複数の機能を提示したりするために、クライアントプロセス112やブラウザ107とのやりとりを制御する。
メディア特性抽出モジュール323は、メディアから一つまたは複数の特徴を抽出する適当なメディアエンジンを使用する。抽出される特徴としては、例えば、統計情報、ヒストグラム、クラスタ情報、フーリエ変換に関する振幅、ウェーブレット変換に関する振幅、主成分分析に関する値、テクスチャに関する値、その他の性質であることができる。特徴のリストがさらに処理され、パターンが抽出され、抽出されたパターンがコンセプト特定モジュール325へ渡される。
コンセプト特定モジュール325は、コンセプト特徴データベース327を利用し、データベース327から、オブジェクトまたは他のコンセプトを特定するための検索やパターン解析を実行する。特定されるオブジェクトやコンセプトは、メディア特性やリストに最もよく一致するものである。そのようなオブジェクトやコンセプトが特定されると、そのオブジェクトやコンセプトのコンセプト識別子がインタフェース328を介して機能ルックアップサービスへと渡される。機能特定モジュールとコンセプト特徴データ構造327は、ユーザによってアプリケーションで作成されたり当該アプリケーションで提供されたりするコンテンツに含まれるコンセプトを自動的に導出するという効果を達成するための手段の一例である。
機能ルックアップサービス・インターフェイス328モジュールは、コンテクスト識別子やコンセプト識別子をコンテンツに基づいてサービス130へ送信したり、機能ルックアップサービス130から提供される一つまたは複数の機能を受信したりするために、機能ルックアップサービス130とのやりとりを制御する。インタフェース328は、クライアントアプリケーションをサポートする全てのユーザオリエンテッドサービス110の各々について機能選択プロセスを受信するということを避けるという効果を達成するための手段の一例である。
サービスレジストリインターフェイスモジュール329は、ユーザオリエンテッドサービス110に対し、機能ルックアップサービス132よって提供される機能の有用なディテールをサービスレジストリ128から見つけることを可能とする。有用なディテールとは、例えば、APIやプロトコル、入力及び出力パラメータ、または説明などである。実施形態によっては、これら全てのディテールがインタフェース328によって機能ルックアップサービス130に提供され、モジュール329は省略される。
図3Cは、ある実施形態に従う、機能ルックアップサービスのモジュール330の略図である。として、機能6アップサービス130は、コンテンツやコンテクストに基づいてバックエンドサービス120の機能を提示するための一つまたは複数のコンポーネントを備える。なお、これらのコンポーネントの機能は、一つまたは複数のコンポーネントの中で結合されたり、同様の機能を有する他のコンポーネント(クライアントプロセス112やユーザオリエンテッドサービス110など)によって実行される場合があることが想定されている。機能ルックアップモジュール330は、図1に描かれるようにAPI132を有する。機能ルックアップモジュール330はまた、機能−コンセプト−コンテクストストレージデータ構造134を有する機能識別子333や、関連度及び推薦モジュール337、構造データベース(DB)338を有する。
API132は、ユーザにより提供されるコンテンツやコンテクストまたはその両方に基づいて、機能を特定するための機能を実行する命令を受信するために用いられる。機能特定モジュール333は、ユーザのコンテンツに基づいて、モジュール325によって特定されるコンセプトに関連するデータ構造134の機能を特定する。ある実施形態において、データ構造134は、UE101のコンテクストにも関連する。API132は、全てのバックエンドサービス120のための全てのAPI122と協働するためのコードを、機能ルックアップサービス130のAPIである単一のAPI132のみと協働する簡単なコードに置き換えるという効果を達成するための手段の一例である。シンプルなコードは、クライアントプロセス112やユーザオリエンテッドサービス110において、ストレージのスペースをあまり消費せず、開発を早めることができる。
関連度及び推薦モジュール337は、いくつの機能及びどのように関連する機能が返されるべきかを決定する。例えばモジュール337は、供給される機能のコンテクスト構造と比較されたUE101のコンテクストを用い、受信したコンテクストデータに基づいて、クライアントに返されるべき最良の機能セットを特定するある実施形態において、モジュール337はまた、各機能についてコンテクスト構造を構築するが、特定のコンテクストフィールドは空にされておいたり使用不能とされておいたりされてもよい。これら選択された機能は、これらに関連するコンテクスト構造と共に、クライアントに返送される。例えばクライアント110に直接返送されてもよいし、ユーザオリエンテッドサービス110を介してクライアント112やブラウザ107に間接的に返送されてもよい。関連度及び推薦モジュール337は、ユーザに提示されるべき最も関連性の高い機能のセットであって小さいセットをクライアントプロセスに送るという効果を達成するための手段の一例である。
バックグラウンドプロセスにおいて、構造DBモジュール338は、図6を参照して後に詳細に説明されるように、機能−コンセプト−コンテクストデータ構造にデータを投入する。ある実施形態において、構造DBモジュール338は、特定のコンセプトやコンテクストコンセプトのために登録されているサービスにサポートされている全ての機能を検索するために、サービスレジストリ128や機能データベースを用いる。ある実施形態において、モジュール338は、バックエンドサービス120によって定義されたコンテクストやコンセプトトークンを検索する。そのようなバックエンドサービス120は、特定の機能を適切なコンテクストに関連づける。
図4は、ある実施形態に従う機能ルックアップのための処理400のフローチャートである。ある実施形態では、例えば図9に示されるようなプロセッサとメモリとを有するチップセットによって実装されたり、図8に描かれるような一般的なコンピュータによって実装されたりする、機能ルックアップサービス130が処理405を実行する。ある実施形態では、ユーザオリエンテッドサービス110が、処理400の一つまたは複数のステップを実行する。図4及び後続の図5及び6のフローチャートには、ひとまとまりのステップが特定の順序で描かれているが、これは例示目的のためであって、他の実施形態では、一つまたは複数のステップや、これらの一部分が別の順番や時間的に重なって実行されたり、順番に実行されたり並行に実行されたり、これらが省略されたりまた別のステップ加えられたり、これらのものは結合されたりして、変更される場合がある。
ステップ401においては、機能−コンセプト−コンテクストデータ構造134が構築され、または更新される。例えば一つまたは複数のデータベースやテーブルに、図2A描かれるフィールドのためのデータが入力される。ステップ401は、図6を参照して後により詳細に説明される。構築されるデータ構造において、バックエンドサービス120などの複数のネットワークサービスによって提供される複数の機能のそれぞれは、少なくとも一つのコンセプトに関する識別子や、少なくとも一つのデバイスコンテクストに関する識別子、またはこれらの両方と関係付けられる。データ構造にコンテクストデータも含められる場合、ステップ401は、複数のネットワークサービスによって提供される複数の機能のそれぞれを、コンテンツに関するデバイスコンテクストに関する少なくとも一つの識別子に関連づける手段の一例である。当該デバイスコンテクストの例は、例えば"UE101において"である。
ステップ403において、クライアントプロセスによって使われているコンテンツやそれに関連するコンテクストが決定される。したがって、ステップ403は、現在のコンテンツを示す第一のデータを決定する手段の一例であり、UE101などのデバイスの現在のコンテクストを示す第二のデータを決定する手段の一例である。例えば、コンテンツは、クライアント112によって、コンテンツ生成器としてのデジタルカメラによって提供されたメタデータを含む画像であると決定される。そしてクライアント112は、メタデータやコンテクストエンジン103の出力、またはこれら両方に基づいて、コンテクストをコンテクストトークンとして決定する。ステップ403がユーザオリエンテッドサービス110によって実行されるとき、コンテンツやコンテクストは、クライアントから送られた画像やコンテクストに基づいて決定される。ステップ403が機能ルックアップサービス130によって実行されるとき、コンテンツやコンテクストは、クライアント112やユーザオリエンテッドサービスから送られてくるコンテンツやメディア特性、コンセプト識別子やコンテクストトークンに基づいて決定される。したがって、ステップ403は、第二のデータを示すメッセージを受信することによりデバイスの現在のコンテクストを示す第二のデータを決定する手段の一例である。
ステップ405では、UE101において使用されているコンテンツに基づいて、コンセプトが決定される。ある実施形態において、コンセプトは、コンセプト特定モジュール325を備える、クライアント112やユーザオリエンテッドサービス110によって決定される。実施形態によっては、コンセプトは、クライアントやユーザオリエンテッドサービス110からのメッセージの中で受信されるコンセプト識別子に基づいて、機能ルックアップサービス130によって決定される。実施形態によっては、コンセプトは、コンセプト特定モジュール325を備える機能ルックアップサービス110によって決定され、クライアント112やユーザオリエンテッドサービス110からのメッセージで受信されるコンテンツやメディア特性に基づいて決定される。実施形態によっては、コンセプトは、少なくともその一部分が、コンテクストに基づいて決定される。例えば、画像に基づいて、コンセプトは建築物であると決定される。そして、関連する場所や、場所と方角の両方を示すコンテクストに基づいて、その建築物が、例えば映画館など、特定の住所を有する特定の建築物であることが決定される。したがってステップ405は、UE101のようなデバイスによって提供されるコンテンツの中に表されているコンセプトを示す第一のデータを決定する。
ステップ407において、機能ルックアップサービス130は、バックグラウンドサービス120の一つまたは複数の機能の候補を決定する。この決定は、関連コンセプトフィールド240や関連コンテクストフィールド250のコンテクストのコンセプト識別子を含む機能を、機能−コンセプト−コンテクストデータ構造134を検索することによって行われる。この場合、ある閾値を上回る確率を持つ機能であることを条件にしてもよい。したがって、ステップ407は、データ構造の中にコンセプトの識別子と機能との関係を見つけることにより、コンセプトを示す第一のデータに基づいて、バックエンドネットワークサービスによって提供される機能を決定する手段の一例である。ある実施形態において、閾値を超える機能が見つからない場合は、少なくとも一つの機能が閾値を超えるまで、閾値を低くしてもよい。したがってステップ407は、コンセプトを示す第一のデータに基づいて、ネットワークサービスによって提供される機能を決定する。コンテクストが考慮に入れられる場合、ステップ407は、コンテンツに関連するデバイス(例えばUE101)の現在のコンテクストを含むデバイスコンテクストの識別子と機能との関係をデータ構造の中で見つける手段の一例である。
したがって、ステップ407は、コンテンツに基づいてメディアタイプの特徴を示すメッセージを受信することに基づいて、デバイスによって提供されるコンテンツに表されているコンセプトを示す第一のデータを決定すると共に、メディアタイプの特徴に基づいてコンセプトを示す第一のデータを決定する手段の一例である。コンテンツのみが送信されるとき、ステップ407は、コンテンツを示すメッセージを受信することに基づいて、デバイスによって提供されるコンテンツに表されているコンセプトを示す第一のデータを決定し、ついてコンテンツに基づいてメディアタイプの特徴を決定し、ついてメディアタイプの特徴に基づいてコンセプトを示す第一のデータを決定する手段の一例である。
ステップ407が機能の候補を見つけるためにコンテクストをも使用する場合、ステップ407は、UE101などのデバイスの現在のコンテクストを示す第二のデータに少なくとも一部基づいて機能を決定することによって、ネットワークサービスにより提供される機能を決定する手段の一例である。
ステップ407がクライアントプロセス112やユーザオリエンテッドサービス110によって遂行される場合、ステップ407は、コンテンツや、メディア特性またはコンセプト、及び/又はコンテクストを、機能ルックアップサービス130に送信することにより行われる。
ステップ409では、少なくとも一つの機能の候補が推薦される。ステップ409が機能ルックアップサービス130によって遂行される場合、機能の候補は重要度及び推薦モジュール337に送られ、ユーザが提供したコンテンツやコンテクストに含まれるコンセプトに基づいて、推奨される最も関連性の高い機能が決定される。この決定は、例えば、コンセプトトークン間や、コンテクストトークン間の、類似度の指標や距離のメトリックに基づいてもよく、これら両方の指標やメトリックに基づいてもよい。ステップ409がクライアント112やユーザオリエンテッドサービス110によって遂行される場合、ステップ409は、機能ルックアップサービス130へ、コンテンツや、メディア特性またはコンセプト、及び/又はコンテクストを送信することにより行われる。
ステップ411では、推薦される機能のユーザの提示が行われる。ステップ411が機能ルックアップサービス130によって遂行される場合、推薦される機能は、ユーザオリエンテッドサービス110又はクライアントプロセス112に届けられる。ステップ411がユーザオリエンテッドサービス110によって遂行される場合、ステップ411は、機能ルックアップサービス130から受信した推奨機能をクライアントプロセス112又はブラウザ107に送信することによって行われる。したがって、ステップ411は、機能を示すメッセージを送信するという結果を生むアクション(の少なくとも一部)を生じさせる。ステップ411がクライアントプロセス112によって遂行される場合、ステップ411は、機能ルックアップサービス130から直接受信した推奨サービスか、ユーザオリエンテッドサービス110を介して間接的に受信した推奨サービスに基づいて、GUIモジュール311によって遂行される。したがってステップ411は、UE101などのデバイスにおいて、機能の技術を提示するという結果を生むアクションを(少なくとも一部)生じさせる手段の一例である。
ステップ413では、推薦された機能の起動が行われる。ステップ413が機能ルックアップサービス130によって行われる場合、推薦された機能をユーザオリエンテッドサービス110かクライアントプロセス112に送ることによって、推薦された機能の起動が行われる。ステップ413がユーザオリエンテッドサービス110によって遂行される場合は、ステップ413は、ユーザが推薦された機能の一つを選択したことを示すメッセージを受信することと、次いで入力パラメータの値と共にバックエンドサービスの起動することによって行われる。後者については図5を参照して後に詳述される。ステップ413がクライアントプロセス112によって遂行される場合、ステップ413は、GUIモジュール311を介して受信した入力パラメータの値を使ってバックエンドサービスを起動することによって遂行される。したがってステップ413は、ネットワークサービスによって提供された機能を起動する結果を生むアクションを、少なくとも一部生じさせる手段の一例である。
ステップ415では、終了条件が満たされたか否かが判断される。満たされたのであれば、処理は終了する。そうでなければ、制御パスはステップ401へ戻り、機能−コンセプト−コンテクストデータ構造を更新し、ステップ403へ進んでクライアントプロセスによって使用されている次のコンテンツを決定する。
図5は、ある実施形態に従う、機能ルックアップを使用するアプリケーションの処理のフローチャートである。ある実施形態において、ユーザオリエンテッドサービス110が処理500を遂行する。またユーザオリエンテッドサービス110は、例えば図8に描かれるような一般的なコンピュータによって実装されることができる。実施形態によっては、クライアントプロセス112が処理500の一つ又は複数のステップを実行する。
ステップ501では、クライアントプロセスが使用するコンテンツやそれに関連するコンテクスト(例えばUE101のコンテクスト)が決定される。ステップ501がユーザオリエンテッドサービス110によって実行される実施形態においては、ステップ501は、コンテンツを示すメッセージをクライアントから受信することによって遂行される。このメッセージは、コンテンツのメディア特性を示すものであってもよく、一つ又は複数のコンテクストトークンのようなコンテクストを示すものであってもよい。ステップ501がクライアントプロセス112によって実行される場合、ステップ501は、コンテンツを生成モジュール315からコンテンツを取得することと、コンテクストエンジンインタフェース313からコンテクストを取得することとを含む。コンテンツやコンテクストについてUE101のユーザを促すインタフェースについて、図7Aや7Bを参照しながら後に詳述される。
ステップ503では、コンテンツに表現されているメディア特性やコンセプトが決定される。このステップがユーザオリエンテッドサービス110と共にクライアントプロセス112によって実行される実施形態において、ステップ503は、メディアタイプ識別子317からメディアタイプを取得することと、コンテンツやメディアタイプ、コンテクストをユーザオリエンテッドサービス110に送信することとを含む。ステップ503が、ユーザオリエンテッドサービス110なしにクライアントプロセス112によって実行される実施形態においては、このステップは、メディアタイプ識別子317からメディアタイプを取得することと、コンテンツやメディアタイプ、コンテクストを機能ルックアップサービス130に送信することとを含む。この実施形態の別の実施例では、コンテンツを、適当なメディア特性抽出モジュール323に送信することを含む。当該実施形態さらに別の実施例では、コンセプト特定モジュール325にメディア特性のリストを送信することを含む。
ステップ503がユーザオリエンテッドサービス110によって遂行される場合、図示される実施形態において、このステップは、メディアタイプ識別モジュール317から(又は実施例によってはクライアントプロセス112からのメッセージから)メディアタイプを取得することと、適当なメディア特性抽出モジュール323にコンテンツを送信することとを含む。そして、メディア特性のリストはコンセプト識別モジュール325に送信される。多くの他の実施形態において、ユーザオリエンテッドサービス110は、コンセプト特定モジュール325を含まず、コンセプトを決定しない。
ステップ505では、コンテクストや特徴のリスト(又はコンセプト識別子)が機能ルックアップサービス130へ送信される。これは、例えば、実施形態によってはユーザオリエンテッドサービス110から送信され、実施形態によってはクライアントプロセス112から直接送信される。実施形態によっては、ユーザオリエンテッドサービス110は、機能ルックアップサービス130にメディア特性のリストとコンテクストを送信し、メディア特性からコンセプトを決定することをサービス130にやらせる。したがって、ステップ505は、ネットワークサービスによって提供される機能を決定する手段の一例である。ただし、この決定は、第1のデータ(コンセプトを特定するデータ)を示すメッセージを、サービス(ルックアップサービス130)に送信することを含む。また当該サービスは、例えばバックエンドサービス120のようなネットワークサービスによって提供される複数の機能のそれぞれについて、コンセプトの識別情報を示すデータとデバイスのコンテクストの識別情報を示すデータを関連づける。この関連付けは、例えば機能−コンセプト−コンテクストデータ構造134のなかで行われることができる。
ステップ507では、一つ又は複数の推薦された機能であってバックエンドサービス120の機能が、機能ルックアップサービス130から受信される。実施形態によっては、推薦される機能は、シンプルに、フィールド202からのバックエンドサービスIDによって識別され、そうでなければ、フィールド204からの機能IDによって識別される。実施形態によっては、推薦される機能を示すデータは、フィールド206からの一つ又は複数のAPI IDと、フィールド208からのプロトコルと、フィールド110からのパラメータと、フィールド220からの説明情報と、フィールド230からのメディアタイプ情報を含む。実施形態によっては、一つ又は複数のこれらのフィールドの情報は、バックエンドサービスIDをキーとして、サービスレジストリインタフェースモジュール328を利用して、サービスレジストリ128から得ることができる。
ステップ509では、推薦される機能がUE101のユーザに提示されることが生じる。これは、例えば、フィールド220に格納される機能説明などに基づいて行われることができる。ステップ509がクライアントプロセス112によって実行される実施形態においては、推薦される機能を示すデータはGUI311を通じて提示される。ステップ509がユーザオリエンテッドサービス110又は機能ルックアップサービス130によって実行される実施形態においては、推薦される機能を示すデータはブラウザ107かクライアントプロセス112に送信され、GUIモジュール311によって表示される。このようなGUIは、図7Cを参照して後に詳述される。
ステップ511では、ユーザが推薦された機能の一つを選択したかどうかが判断される。これは、例えばポインティングデバイスを操作することにより行われることができ、また後に図7Cを参照して詳述される。もしまだ選択されていなければ、制御パスはステップ501に戻り、UE101において次のコンテンツやコンテクスト、またはこれら両方が決定される。具体的な例を示すと、例えば、コンテンツがトウモロコシ畑のイメージだった場合に、ユーザは、推薦された機能として、"商品の市場価格を判断する"と説明された機能を選択する、のようなことが行われる。
ステップ511において、ユーザが選択したことが決定されると、ステップ513において、選択された機能のパラメータが決定される。ある実施形態では、パラメータは、ステップ507の間に機能ルックアップサービス130から提供される。他の様々な実施形態においては、パラメータは、バックエンドサービスIDをキーとしてそれに基づいて、レジストリ128から決定されることができる。また存在すれば、ステップ507や513の間に機能IDに基づいて決定されることができる。具体的な例を示すと、選択された機能の入力パラメータは、"商品の名前"や"地理的位置","日付"を含む、のようなことが考えられる。
ステップ515では、入力パラメータのための知られている値が決定される。この決定は、例えばコンテクスト情報に基づいて行われることができる。例えば、コンセプト識別子に基づいて、コンテンツが"トウモロコシ"を表すことが知られ、またコンテクストに基づいて、写真が作成されたときのUE101のGPS位置が知られる。したがって、三つ全ての入力パラメータが知られることができる。知らない他のパラメータが必要な場合、デフォルト値を用いたり、知らないことをマークしたりすることができる。
ステップ519では、入力パラメータの値を訂正するように、ユーザが促される。ステップ519がクライアントプロセス112によって実行される実施形態では、入力パラメータを示すデータや予め埋められている値が、GUIモジュール311を介して表示される。ステップ519がユーザオリエンテッドサービス110又は機能ルックアップサービス130によって実行される実施形態においては、入力パラメータを示すデータや予め埋められている値は、ブラウザ107又はクライアントプロセス112に送られ、GUIモジュール311によって表示される。このようなGUIは、後に、図7Dを参照して詳述される。ステップ519の間、ユーザは、入力パラメータの一つ又は複数を変更してもよい。例えばユーザは、"知られていない(Unknown)"とマークされたパラメータの値を自分で入力してもよい。具体的な例を示すと、例えば、ユーザは、トウモロコシが実りトウモロコシを販売する契約を結ぶべき未来の日に、写真の日付を変更してもよい。
ステップ521では、選択された機能が起動される。例えば、実施形態によっては、ユーザオリエンテッドサービス110が、バックエンドサービス120に、選択された機能を示す情報を、適切なAPIに従ったパラメータや値と共に、適切なプロトコルでメッセージを送信する。実施形態によっては、クライアントプロセス112が、バックエンドサービス120に、選択された機能を示す情報を、適切なAPIに従ったパラメータや値と共に、適切なプロトコルでメッセージを送信する。それに応答して、ステップ521の間に、起動された機能からの結果が受信される。具体的な例を示すと、例えば、当該結果は、トウモロコシの平均価格やバイヤーのリストを示すデータを含む。
ステップ523では、UE101のユーザへの結果の表示が行われる。ステップ523がクライアントプロセス112によって実行される実施形態では、結果を示すデータは、GUIモジュール311を通じて表示される。ステップ523がユーザオリエンテッドサービス110又は機能ルックアップサービス130によって執行される実施形態では、結果を示すデータはブラウザ107又はクライアントプロセス112に送られ、GUIモジュール311を通じて表示される。このようなGUIは図7Eを参照して後に詳述される。
ステップ525では、終了条件が満たされるが否かが判断される。満たされるのであれば処理は終了する。満たされなければ、制御パスはステップ501へ戻り、クライアントプロセスによって使用中の次のコンテクストや関連するコンテクストが決定される。
図6は、ある実施形態に従い、機能−コンセプト−コンテクストデータ構造を構築するための処理600のフローチャートである。実施形態によっては、ルックアップサービス130が処理600を遂行する。またルックアップサービス130は、例えば、図9に描かれるようにプロセッサ及びメモリを備えるチップセットとして実装されうる。又は、図8に描かれるような一般的なコンピュータとして実装されうる。
ステップ601では、あるバックエンドサービスが、機能−コンセプト−コンテクストストレージデータ構造に追加されることが決定される。例えば、実施形態によっては、一つ又は複数のバックエンドサービスのレジストリが、バックエンドサービスのリストを入手すべく問い合わせを受ける。実施形態によっては、バックエンドサービスの管理者がアップロードを行ったり、これらのバックエンドサービスを示すデータを手動で入力したりすることのできるWebページが利用可能になる。実施形態によっては、各機能やAPI、プロトコル、パラメータ、説明情報やメディアタイプ、その他これらの組み合わせが、ステップ601の間に決定される。
ステップ603では、機能−コンセプト−コンテクストストレージデータ構造にまだ追加されていないサービスが、現在のサービスとして選択される。例えば、サービスレジストリ128が検索されたバックエンドサービスのリストの次のサービスが、現在のサービスとして選択される。
ステップ605では、機能−コンセプト−コンテクストストレージデータ構造にまだ追加されていない機能が、現在の機能として選択される。例えば、実施形態によっては、APIの一つ又は複数のパラメータが、バックエンドサービスで利用可能な複数のファンクションのうちの一つに関連付けられる。例えば、商品マーケットのサービスは、商品の価格及びバイヤーを見つけるための一つの営業機能と、それとは別個に、商品の売り手や販売価格を調べるためのバイヤー機能を有する。これらの機能のうちの一つが現在の機能として取り扱われる。
ステップ607では、コンセプトデータベース327又は語彙集の一つ又は複数のコンセプトが、現在の機能に関連付けられる。例えば、機能の説明のセマンティック解析が、機能が商品に関連することを決定する。セマンティック解析はさらに、商品が特定の文脈的語彙を含んでいること、例えば、石油や石油の副産物、原油、灯油、プロパン、天然ガス、石炭、小麦、オート麦、トウモロコシ、米、大豆、コーヒー、ココア、砂糖、綿、オレンジジュース、牛肉、豚の脇腹肉、豚赤身肉などを含んでいることを決定する。ステップ607では、これらのうち、どの単語がコンセプトデータベース等に含まれるコンセプトのコンセプトなのかが決定される。コンセプトデータベース等に含まれるコンセプトは、例えばガスタンクやオレンジ、果樹園、豚などであることができる。これらのコンセプトに含まれるコンセプトやトピックが、ステップ607で決定される。商品の場合のように、リストは長くなるかもしれないが、それでもリストは他の多くのコンセプトを除外する。例えば人に関するコンセプト、建築や自動車に関するコンセプトは、商品からは除外される。
ステップ609では、コンテクスト語彙集やトピックデータベースの一つ又は複数のコンテクストが現在の機能に関連付けられる。例えば、機能やパラメータの説明のコンテクストセマンティック解析は、当該機能が場所時間に関係し、また売買活動に関連することを決定する。
ステップ611では、機能−コンセプト−コンテクストストレージのためのエントリ200が生成され格納される。例えば、機能−コンセプト−コンテクストデータ構造134に、新しいエントリ200が追加される。新しいエントリ200は、フィールド202に現在のバックエンドサービスの識別子を含み、フィールド204に現在の機能の識別子を含み、フィールド206から230にも機能の他の情報が適切に格納されている。新しいエントリ200はまた、関連コンセプトフィールド240に、商品の識別子のリストを含み、関連コンテクストフィールド250に、場所や時間、販売、購入のためのコンテクスト語彙トークン及び単語を含む。
ステップ613では、現在のサービスに他の機能があるかどうかが判断される。他の機能があるのであれば、制御パスはステップ605に戻り、上述のように、サービスの次の機能が現在の機能として決定される。他の機能なければ、リストから、他のバックエンドサービスが存在するかどうかが決定される。存在するのであれば、コントロールパスはステップ603に戻り、上述のように、次のバックエンドサービスが現在のサービスとして決定される。
追加するサービスや機能がなければ、ステップ617において、一つ又は複数の検索インデックスが形成される。例えば、コンセプトデータベースの各単語につき、インデックスデータ構造280の中にエントリが設けられる。例えば、商品の一つをリストする各コンセプトIDフィールド262のために、商品販売機能のサービス識別子や機能識別子がフィールド264に追加される。同様に、コンテクスト語彙集の単語やトピックのそれぞれのために、インデックスデータ構造180の中にエントリが作成される。例えば、時間や場所、売買といったコンテクストの一つをリストするコンテクストフィールド272のそれぞれのために、商品販売機能のサービス識別子や機能識別子がフィールド274に追加される。実施形態によっては、インデックスは形成されず、ステップ617は省略される。
ステップ619では、終了条件が満たされるか否かが判断される。満たされるのであれば処理が終了する。そうでなければ、制御パスはステップ601に戻り、機能−コンセプト−コンテクストストレージデータ構造134にまだ追加されていない次のサービスが決定される。
図7A−7Eは、様々な実施形態に従うユーザインタフェースであって、図5の処理で利用されるユーザインタフェースの略図である。グラフィカルユーザインタフェース(GUI)は、一つ又は複数のグラフィック要素を含み、これらはそれぞれ表示画面の特定の領域を占めるピクチャ要素(ピクセル)を有する。表示画面は、例えば表示デバイス814や1007として、後に記述される。グラフィック要素は当該領域に関連するユーザ入力を検出する機構を含む場合がある。これらの入力は、例えば、カーソルが当該領域に表示されている間にタッチスクリーン上をタッチしたり、マウスやキーボードのボタンをクリックしたりするなどの、ポインティングデバイスに応答して検出される。なお、マウスやキーボードの例として、入力デバイス812やキーボード1047が後に例示される。
図7Aは、UE101のGUI701の例を示す略図である。このGUIは、使用中のコンテンツを決定するためのものである。現在のコンテンツ表示領域710は、UE101の現在のコンテンツの表現を表示する領域である。UE101のコンテンツとしては、例えばカメラビューファインダやウェブブラウザの画像や動画、音声ストリーミング中の音圧や周波数のグラフなどであることができる。コンテンツラベルキャプチャ領域712は、領域710に現在表示されているコンテンツを、さらなる使用のために選択することをユーザに促すデータを表示する。ボタン714は、入力機構のためのグラフィック要素である、ユーザによって選択されると、現在のコンテンツがさらなる使用のために選択される。例えば、現在のコンテンツ表示領域710は、デジタルカメラアプリケーションによるトウモロコシ畑の眺めを表示したり、銀行アプリケーションにおけるお札の眺めを表示したり、写真アプリケーションでダウンロードした上海のスカイラインの写真を表示したりする。OKボタン714がアクティブにされると、領域710に表示されているコンテンツが、さらなる使用のためにキャプチャされ、例えば、UE101の一つ又は複数のファイルにおいて使用される。ボタン714のアクティブ化は、例えばタッチスクリーン上のボタンをタッチしたり、バブルに関連付けられたキーボードのキーを押したり、マウスボタンやその他のポインティングデバイスのボタンでクリックしたりすることによって行うことができる。
図7Bは、UE101のGUI702の例を示す略図である。このGUIは、使用するコンテンツをラベリングするためのものである。名前コンテンツ入力領域720は、ユーザがテキストを入力するためのテキストボックスや、当該テキストが、キャプチャされたコンテンツのための名前を示すべきものであることを示すプロンプトを含む。プロンプトに応じて、ユーザはコンテンツの名前、例えば写真Aや写真B,写真Cなどの文字をタイプし、OKボタン724aをアクティブ化する。コンテンツ説明文入力領域722は、ユーザがテキストを入力するためのテキストボックスや、当該テキストが、キャプチャされたコンテンツのための説明を与えるものであるべきことを示すプロンプトを含む。このプロンプトに応じて、ユーザは、コンテンツのための説明、例えば所有する土地の調査、上海スカイライン、電気料金の請求書などとタイプし、OKボタン724bをアクティブ化する。
図7Cは、UE101のGUI703の例を示す略図である。このGUIは、選択された使用するコンテンツのために適切な機能を選択するためのものである。機能選択オプション領域730は、使用するコンテンツを操作する機能をユーザが選択すべきことを示すプロンプトを表示するプロンプト領域731を含む。また、推薦される機能が、機能説明領域334a−334eに説明としてリスト表示される。なお、以下において、機能説明領域334a−334eは、まとめて符号334で示される場合がある。実施形態によっては、フィールド334の機能説明は、機能に適合するコンテンツに関連するコンテンツやコンテクストから見つけられたコンセプトの識別子を含む場合がある。
機能選択オプション領域730に適合可能なさらに多くの機能が、よく知られたグラフィック要素であるスクロールバー736を用いて表示されることが可能である。領域730において、推薦される機能の説明を上下にスクロールすることができる。個々の機能説明領域334に関連してラジオボタン738が設けられる。コンテンツを操作するためにユーザが機能を選択するとき、ラジオボタンの中に●が表示される。描かれるGUIにおいては、機能説明領域334b及び334dに説明される機能が、ユーザによって選択されたことが示されている。この選択は、選択ボタン732をアクティブ化することにより完了する。
より具体的な例を示す。"survey owned land"と説明された写真Aのトウモロコシ畑のイメージと、フィールド220に示される上の説明とに基づいて、処理500は、コンセプト"トウモロコシ"を特定し、機能を特定して推薦する。これらの機能は、トウモロコシの識別子を含み、次のような説明と共に機能説明領域334に表示される。
特定の場所の地図を提供する,場所 = 写真Aの場所;
商品の市場売買価格を決定する,商品 = トウモロコシ;
商品の販売店を決定する,商品 = トウモロコシ;
特定の食材を含むレシピを提供する,食材 = トウモロコシ;
特定の場所の地図を提供する,場所 = 写真Aの場所;
商品の市場売買価格を決定する,商品 = トウモロコシ;
商品の販売店を決定する,商品 = トウモロコシ;
特定の食材を含むレシピを提供する,食材 = トウモロコシ;
さらに具体的な例を示す。"上海スカイライン"と説明された写真Cのイメージと、フィールド220における上に説明されるような機能説明例とに基づいて、処理500はコンセプト"建物"およびコンテクスト"場所=上海"を特定し、機能を特定して推薦する。これらの機能はコンテクスト位置の識別情報を含み、次のような説明と共に機能説明領域334に表示される。
特定の場所の地図を提供する,場所 = 上海;
見に行く劇場のショーのチケットを予約する,劇場 = 上海の;
目的都市への航空券を予約する,目的都市 = 上海;
食べに行くレストランのテーブルを予約する,レストラン = 上海の;
特定の場所の地図を提供する,場所 = 上海;
見に行く劇場のショーのチケットを予約する,劇場 = 上海の;
目的都市への航空券を予約する,目的都市 = 上海;
食べに行くレストランのテーブルを予約する,レストラン = 上海の;
さらに具体的な例を示す。"電気料金の請求書"と説明された写真Cのイメージと、フィールド220における上に説明されるような機能説明例とに基づいて、処理500は、コンセプト"レター",コンセプト"電気",コンテクスト"料金支払い"を特定し、機能を特定して推薦する。これらの機能は、"電気"の識別子を含み、次のような説明と共に機能説明領域334に表示される。
商品の市場売買価格を決定する,商品 = 電気;
商品の販売店を決定する,商品 = 電気;
銀行口座から支払いを実行する;
商品の販売店を決定する,商品 = 電気;
銀行口座から支払いを実行する;
図7Dは、選択された機能の入力パラメータ値を決定するための、UE101のGUI704の例を示す略図である。選択された機能のパラメータ値入力領域740a,740b,740c...が表示されている。(これらはまとめてパラメータ値入力領域740と表されることがある。)これらの入力領域は、パラメータの名前やもしあれば単位、選択された機能の一つに入力可能な値の範囲を提示する。既に知られている値は予め入力されており、値が分からないものはそのようにマークされている。例示される実施形態において、選択された一つの機能の全てのパラメータは、領域740の一つに表示される。各領域740には、対応するOKボタン744a,744b,744c(以下まとめてOKボタン744と表されることがある)が設けられる。ユーザは、値が入力されていないものを埋めたり、予め埋められていた値を修正したりすることができる。OKボタン744がアクティブ化されると、入力パラメータ値は、サービスを要求するメッセージによって対応するバックエンドサービスに送信される。例えば、上海への飛行機チケットを予約するにおいて、予め入力された出発飛行場は、上海の写真のダウンロードしたときのユーザの位置に最も近い都市の飛行場であったとする。しかしユーザは別の都市から出発したいと考え、パラメータ値入力740において出発都市を変更し、OKボタン744を押す。
図7Eは、選択された機能の結果を表示するための、UE101のGUI705の例を示す略図である。選択された機能の結果表示領域750a,750b...(以下まとめて結果表示領域750と表されることがある)が、選択された機能の結果を示すデータを表示する。例えば、トウモロコシの購入価格や食材にトウモロコシを用いるレシピなどである。
ここで説明された、コンテンツに基づくネットワーク機能の特定技術は、ソフトウェアやハードウェア、ファームウェアやこれらいずれかは二つ以上の組み合わせによって実装することが有利であろう。例えば、サービスの利用可能性に関連付けられたユーザインタフェース・ナビゲーション情報を含む、本明細書で説明される処理は、一つ又は複数のプロセッサやデジタル信号処理チップ(DSP)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などによって実装されることが有利であろう。上に説明された機能を実行するための、このような例示的なハードウェアが以下に説明される。
図8は、本発明の実施形態が実装されうるコンピュータシステム800を描いたものである。コンピュータシステム800は、特定のデバイスや装置を描いているが、ネットワーク要素やサーバなどの図8中の他のデバイスや装置が、システム800に描かれたハードウェアやコンポーネントを加えることも可能であることが想定されている。コンピュータシステム800は、コンピュータプログラムコードや命令などによって、ここで説明されたようにコンテンツに基づいてネットワーク機能を特定するようにプログラムされており、バス810などの通信機構を有している。通信機構810は、コンピュータシステム800の他の内部及び外部要素との間で情報を流す。「データ」とも呼ばれる「情報」は、物理的に測定可能な現象によって表されることができ、典型的には電圧であるが、実施形態よっては、磁気的、電磁気的、圧力的、化学的、生物学的、分子的、原子的、亜原子的、量子的相互作用、などの現象によって表されることもできる。例えばN極及びS極の磁極や、ゼロと非ゼロの電圧が、2進数ビットの二つの状態(0,1)を表すことができる。高次の数を表すこともできる他の現象も存在する。量子ビット(qubit)は、測定される前は、複数の量子状態が同時に重なったものである。一つ又は複数の数(digit)のシーケンスはデジタルデータを構成し、数や文字コードを表すことができる。実施形態よっては、アナログデータと呼ばれる情報が、特定の範囲で測定可能な値の連続体に近いものによって表現される。コンピュータシステム800又はその一部は、コンテンツに基づいてネットワーク機能を特定する一つ又は複数のステップを実行する手段を構成する。
バス810は、一つ又は複数の並行的な情報伝達手段を有する。それによって、バス810に組み合わされているデバイスの間で情報が高速に伝達されることができる。情報処理のための一つ又は複数のプロセッサ802がバス810に組み合わされている。
プロセッサ(又は複数のプロセッサ)802は、コンテンツに基づいてネットワーク機能を特定することに関連するコンピュータプログラムコードによって特定されるように、情報に対して処理のセットを遂行する。コンピュータプログラムコードは命令(instruction)や宣言(statement)のセットであって、プロセッサやコンピュータシステムが特定の機能を実行する処理のための指示を提供する。コードは、例えば、コンピュータプログラム言語で記載することができ、その後プロセッサのネイティブな命令セットにコンパイルされることができる。コードは、ネイティブな命令セット(すなわちマシン語)に直接記載されることもできる。処理のセットは、バス810から情報を取り出したり、バス810に情報を流したりすることを含む。処理のセットは又は、通常、二つ又はそれ以上の情報ユニットを比較したり、情報ユニットの位置をシフトしたり、二つ又はそれ以上の情報ユニットを結合したりすることを含み、例えば加算や乗算、ORや排他的ORやANDなどの論理演算を含む。プロセッサにより実行されうる処理のセットの個々の処理は、1つ又は複数のデジット(digit)による処理コードのような、命令と呼ばれる情報によってプロセッサに提示されることができる。処理コードのシーケンスなどの、プロセッサ802により実行される処理のシーケンスは、プロセッサ命令を構成し、これはまた、コンピュータシステム命令や、より簡単にコンピュータ命令などと呼ばれる。プロセッサは、機械的、電気的、磁気的、光学的、化学的、量子的、または他の方法で、単独で又はこれらを組み合わせて、実装されることができる。
コンピュータシステム800はまた、バス810に接続されるメモリ804を備える。メモリ804は、ランダムアクセスメモリ(RAM)や他のダイナミックなストレージデバイスであることができ、コンテンツに基づいてネットワーク機能を特定するためのプロセッサ命令を含む情報を格納する。ダイナミックメモリは、コンピュータシステム800が格納されている情報を変更することを可能とする。RAMはメモリアドレスと呼ばれる場所に格納されるべき情報ユニットを格納することを可能とし、また隣接するアドレスの情報とは独立に、当該情報ユニットが読み出しされることを可能とする。メモリ804は、プロセッサ802によって、プロセッサ命令を実行する間に一時的な値を格納するためにも用いられる。コンピュータシステム800は、読み出し専用メモリ(ROM)806や他の静的ストレージデバイスをも備えてもよい。これらもバス810に接続されており、コンピュータシステム800によっては変更されない静的な情報を格納する。あるメモリは、電源供給が失われると格納している情報が消えてしまう揮発性のストレージによって構成される。バス812は、非揮発性のストレージデバイス808も接続されている。このようなデバイスには、磁気ディスクや光ディスク、フラッシュカードなどが含まれる。このようなデバイスには、コンピュータシステム800の電源が切られたり、その他の理由で電源を失ったりする場合でも保持されるべき情報(例えば命令など)が格納される。
コンテンツに基づいてネットワーク機能を特定する命令を含む情報は、人間によって操作される英数字キーを含むキーボードやセンサなどの外部入力装置812から、バス810に供給されプロセッサによって使用される。センサは、その周辺で生じた条件を検出し、検出結果を、測定可能な現象と互換性のある物理的表現に変換し、コンピュータシステム800で提示することができるようにする。その他の外部機器もバス810に接続され、特に人間とのやりとりのために用いられる。このような外部デバイスには、例えば、ブラウン管(CRT)や液晶ディスプレイ(LED)、プラズマスクリーンのような表示装置814や、テキストや画像を提示するためのプリンタや、マウスやトラックボールのようなポインティングデバイス、カーソル指示キー、モーションセンサなどがある。モーションセンサは表示装置814に表示された小さなカーソルのイメージの位置を制御したりディスプレイ814表示されたグラフィック要素に関連する命令を発行したりするために用いられることができる。実施例によっては、例えば、コンピュータシステム800が、人間の入力なしに全ての機能を自動的に実行する場合があり、外部入力デバイス812や表示装置814.ポインティングデバイス816などの一つ又は複数が省略される場合がある。
例示される実施形態において、専用の目的をもつハードウェア、例えばASIC(Application Specific Integrated Circuit)820がバス810に接続されることがある。このような専用の目的をもつハードウェアは、プロセッサ802によってはそのような目的が十分に早く遂行されないような処理を実行するように構成される。このようなASICの例として、表示装置814上にイメージを生成するグラフィックアクセラレータカードや、ネットワークを介して送信されるメッセージの暗号化や解読を行う暗号化ボード、音声認識装置、また特殊な目的の外部デバイスとのインタフェースなどがある。そのようなインタフェースは、例えば、ロボットアームや医療用スキャン装置など、複雑なシーケンスの動作を繰り返し行うような装置がある。このような動作はハードウェアによってより効率的に実行されることができる。
コンピュータシステム800は、さらに、一つ又は複数のインスタンスを有する通信インタフェース870を備える。この通信インタフェース870もバス810に接続される。通信インタフェース870は、それぞれ自身のプロセッサを有する様々な外部デバイスに接続されて、一方向又は双方向の通信を提供する。このような外部デバイスとして、プリンタやスキャナ、外部ディスク装置などがある。一般的に、接続はネットワークリンク878によって行われ、ネットワークリンク878はローカルネットワーク880に接続される。ローカルネットワーク880には、自身でプロセッサを有する様々な種類の外部デバイスが接続されている。通信インタフェース870は、例えば、パーソナルコンピュータのパラレルポートやシリアルポート、ユニバーサルシリアル(USB)ポートであることができる。実施形態によっては、通信インタフェース870は、ISDNカードやDSLカードや電話モデムなど、対応する種類の電話通信ラインと情報通信接続を確立するようなものであることができる。実施形態によっては、通信インタフェース870は、ケーブルモデムであることができ、これは、バス810上の信号を、同軸ケーブルを用いた通信接続のための信号や、光ケーブルを用いた通信接続のための光信号に変換する。別の例では、通信インタフェース870は、ローカルエリアネットワーク(LAN)カードであり、これは、イーサネットなどの互換性のあるLANとのデータ通信接続を提供する。ワイアレスリンクが用いられる場合もある。ワイアレスリンクとして、通信インタフェース870は、例えば電気的、音声的、電磁的な信号を、送信したり受信したり送受信したりする。このような信号には、デジタルデータなどの情報ストリームを運ぶこともできる赤外線や光信号も含まれる。例えば、無線ハンドセットデバイスにおいては、通信インタフェース870はRF送受信機と呼ばれる、RF帯域の電磁波信号の送信機及び受信機を備える。実施形態によっては、通信インタフェース870は、UE101においてコンテンツに基づいてネットワーク機能を特定するために、通信ネットワーク105との接続を可能にする。
本明細書で"コンピュータ読み取り可能な媒体"との用語は、プロセッサ802に情報(例えば実行命令)を提供しうるいかなる媒体であってもよい。このようなメディアは様々な形態をとりうるものであり、揮発性又は非揮発性のコンピュータ読み取り可能な記憶媒体や、伝送媒体が含まれる。また、これらに限られるものではない。非揮発性の媒体のような非一時的媒体は、例えばストレージデバイス808のような光または磁気ディスクを含む。揮発性の媒体は、例えばダイナミックメモリ804を含む。伝送媒体は、例えば、同軸ケーブルや銅線、光ファイバーケーブル、ワイヤやケーブルを介さずに空間を伝う搬送波などであることができ、搬送波としては音波や電磁波があり、電磁波には無線電波、可視光、赤外線などがある。人々によって信号に含められる一時的な変化は、振幅、周波数、位相、極性などの物理的性質であり、そのような変化が伝送媒体を通じて送信される。保存コンピュータ読み取り可能な媒体のよく知られた形態は、例えば、フロッピーディスクやフレキシブルディスク、ハードディスク、磁気テープなどの磁気的媒体、CD-ROMやCDRW、DVDなどの光媒体、パンチカードや紙テープ、光マークシートなどの、孔によるパターンやその他の光学的認識可能な目印を有する物理媒体、RAMやPROM、EPROM,フラッシュEPROMなどのメモリチップやカートリッジ、搬送波などであり、コンピュータが読み取りを行うことのできる様々な媒体が存在する。コンピュータ読み取り可能な格納媒体との用語は、伝送媒体を除くどのようなコンピュータ読み取り可能な媒体をも指すことができる。
手に触れることのできる一つまたは複数の媒体に符号化されたロジックは、コンピュータ読み取り可能な記憶媒体及びASIC820のような専用目的のハードウェアの一つまたは両方を含む。
典型的に、ネットワークリンク878は、伝送媒体を用いて情報通信をもたらす。一つまたは複数の複数のネットワークを通じて、情報を使用したり処理したりする他のデバイスへと情報通信が行われる。例えばネットワークリンク878は、ローカルネットワーク880通じてホストコンピューター882への接続を提供する。また、インターネットサービスプロバイダ(ISP)によって運営される設備884への接続を提供してもよい。ISP設備884も同様に、一般的にインターネットと称される、ワールドワイドな公衆パケット交換通信ネットワーク890を通じて、データ通信サービスを提供する。
インターネットに接続される、サーバホスト892と称されるコンピュータは、インターネット通じて受信した情報に応答して、サービスを提供するプロセスをホストする。例えばサーバホスト892は、表示装置814に提示されるビデオデータを表す情報を提供するプロセスをホストする。なお、システム800の諸要素は、ホスト882やサーバ892など他のコンピュータシステムにおいて様々な構成をとり得ることがあることが想定されていることに注意されたい。
本発明の少なくともある実施形態は、コンピュータシステム800を、本明細書で説明される一部または全ての技術を実装するために使うことに関している。本発明のある実施形態によると、これらの技術は、メモリ804に格納されている一つまたは複数のプロセッサ命令の一つまたは複数のシーケンスをプロセッサ802が実行することによって、コンピュータシステム800により実行される。このような命令は、コンピュータ命令やソフトウェア、プログラムコードなどと呼ばれるが、これはストレージデバイス808やネットワーク878などの他のコンピュータ読み取り可能な媒体からメモリ804に読み込まれる。メモリ804に格納されている命令のシーケンスを実行することは、本明細書で説明された方法ステップの一つまたは複数をプロセッサ802実行させる結果を生む。別の実施形態では、ASIC820のようなハードウェアが、上記の手法の代わり、またはソフトウェアと組み合わされて、本発明を実装するために使用される。このように、本発明の実施形態は、ここで明示的に記載されない限り、ハードウェアやソフトウェアの特定の組み合わせに限定されることは無い。
通信インタフェース870を介して、ネットワークリンク878や他のネットワークを伝送される信号は、コンピュータシステム800対して送受信される情報を運搬する。コンピュータシステム800は、情報を送受信することができる。このような情報にはプログラムコードが含まれ、とりわけネットワーク880や890を通って、ネットワークリンクや通信インタフェース870を介して、送受信される。インターネット890を用いるある実施例では、特定のアプリケーションのためのプログラムコードであって、コンピュータ800から送信されたメッセージによってリクエストされたプログラムコードをサーバホスト892が送信する。この送信は、インターネット890やISP設備884、ローカルネットワーク880、通信インタフェース870を通じて行われてもよい。受信されたデータは、受信された時にプロセッサ802によって実行されてもよい。または後に実行されるために、メモリ804やストレージデバイス808などの非揮発性媒体に格納されてもよい。実行と格納が両方行われてもよい。このようにして、コンピュータシステム800は、搬送波上の信号としてプログラムコードを入手することができる。
様々な形態のコンピュータ読み取り可能な媒体が、プロセッサにより実行される命令やデータの一つまたは複数のシーケンスを運搬するのに使用されることができる。例えば命令やデータは、はじめ、リモートコンピュータの磁気ディスクに担持されてもよい。リモートコンピュータはこれらの命令やデータを、そのダイナミックメモリにロードし、モデムを用いて電話線を介して送信してもよい。コンピュータシステム800に搭載されるモデムは、電話線上の命令やデータを受信することができ、赤外線送信機を用いて当該命令やデータを変換し、ネットワークリンク878に適合する赤外線搬送波上の信号とすることができる。通信インタフェース870として機能しうる赤外線検出器は、赤外線で運ばれてきた命令やデータを受信し、これらの命令やデータを表す情報をバス810に流す。バス810は、情報をメモリ804へ運び、プロセッサ802はメモリ804からこれらの情報を読み出して、上記の命令を実行する。実行の際、上記データのいくつかを上記命令と共に用いてもよい。メモリ804で受信された命令やデータがストレージデバイス808に格納されるという選択肢があってもよい。格納するのはプロセッサ802により実行される前でも後でもよい。
図9は、本発明の実施形態が実装されうるチップセットやチップ900を描いたものである。チップセット900は、本明細書に説明されるように、コンテンツに基づいてネットワーク機能を特定するようにプログラムされており、例えば、図8に関連して説明されたようなプロセッサやメモリを備え、これらが一つ又は複数の物理的パッケージ(すなわちチップ)に組み込まれている。より具体的な例を示すと、物理的パッケージは、一つ又は複数の部材やコンポーネント、及び/又は基板などの構造物アセンブリ上のワイヤなどを含み、物理的強度、サイズの保持、及び/又は電気的相互作用の抑制などを提供する。実施形態によっては、チップセットが単一のチップとして実装される場合があることが想定されている。実施形態によっては、チップセット又はチップ900が、単一の"システム・オン・チップ"に実装される場合があることが想定されている。また、実施形態によっては、例えば独立のASICが用いられる場合があることも想定されており、本明細書で説明される全ての重要な機能が一つ又は複数のプロセッサで実行される場合があることも想定されている。チップセット又はチップ900、又はその一部は、サービスの利用可能性に関連付けられたユーザインタフェース・ナビゲーション情報を提供する一つ又はステップを実行する手段の一例を構成する。チップセット又はチップ900、又はその一部は、コンテンツに基づいてネットワーク機能を特定するステップの一つ又は複数を実行する手段の一例を構成する。
ある実施形態において、チップセット又はチップ900は、チップテッド900の要素間で情報をやり取りするためのバス901のような通信機構を備える。プロセッサ903は、メモリ905などに格納される命令を実行したり情報を処理したりするべく、バス901に接続可能に構成される。プロセッサ903は一つ又は複数のプロセッシングコアを有することができ、それぞれのコアは独立に実行されるように構成されており。マルチコアプロセッサは単一の物理的パッケージによって複数の処理を行うことを可能とする。マルチコアプロセッサには、2つ、4つ、8つ、又はそれ以上のプロセッシングコアを有するものがある。別の実施例では、又は上記の実施例に加えて、プロセッサ903は、一つ又は複数の直列に配されたマイクロプロセッサを備えてもよい。これらのマイクロプロセッサは、独立に命令を実行できてもよく、又はパイプラインとして使われてもよく、又はマルチスレッド処理を行うように使われてもよい。プロセッサ903は、一つ又は複数の特定用途の要素を備えてもよい。それらは特定の処理機能やタスクを実行するために用いられる。このような特定用途の要素の例は、一つ又は複数のデジタルシグナルプロセッサ(DSP)907や、一つ又は複数のASIC(application-specific integrated circuit)909である。DSP907は、通常、プロセッサ903とは独立に、音声などの現実世界の信号をリアルタイムで処理するように構成される。同様に、ASIC909は、より汎用のプロセッサでは容易に実行することができない特定の機能を実行するように構成されてもよい。本明細書で説明された発明性を有する機能を実行する助けとなりうるその他の特定用途コンポーネントとしては、一つ又は複数のFPGA(field programmable gate arrays,図示されていない)や一つ又は複数の特定用途のコンピュータチップがある。
ある実施形態において、チップセット900は、一つ又は複数のプロセッサと、これらをサポートする及び/又はこれらに関連するいくつかのソフトウェア及び/又はファームウェアのみを備える。
プロセッサ903及び付随するコンポーネントは、バス901を介してメモリ905に接続できるように構成される。メモリ905はダイナミックメモリとスタティックメモリの両方を有する。ダイナミックメモリの例としては、RAMや磁気ディスク、書き込み可能な光ディスクなどがあり、スタティックメモリの例としては、ROMやCD-ROMなどがある。これらのメモリは実行可能命令を格納するために用いられる。これら実行可能命令は、実行されると、コンテンツに基づいてネットワーク機能を特定する、本明細書で説明された発明性を有するステップが遂行される。メモリ905はまた、これらの発明性を有するステップの実行に関連するデータや当該ステップの実行により生成されたデータを格納する。
図10は、ある実施形態に従う携帯端末の例示的な要素の略図である。この携帯端末は、例えばハンドセットであり、通信機能を有し、図1のシステムで動作する能力を有する。ある実施形態において、携帯端末1001またはその一部分は、コンテンツに基づいてネットワーク機能を特定する一つまたは複数のステップを実行する手段の一例を構成する。一般的に、無線受信機は、フロントエンドとバックエンドの特性によって定義される。受信機のフロントエンドはRF回路の全て含み、バックエンドはベースバンド処理回路の全てを含む。本願において使用されているように、"回路"という用語は、(1)ハードウェアのみによる実装と、(2)回路及びソフトウェア(及び/又はファームウェア)の組み合わせによる実装とを含む。前者は、アナログ回路のみの実装やデジタル回路のみの実装、またはこれらの両方を含む実装がある。後者は、特定のコンテクストで適用可能である場合は、一つまたは複数プロセッサ(デジタルシグナルプロセッサを含む)やソフトウェア、一つまたは複数のメモリを含み、またはこれらの組み合わせを含み、これらは協働して、携帯電話やサーバなどの装置に様々な機能を実行させる。この"回路"の定義は、本願において「回路」との語句を使う全ての場合において適用される。請求項においても同様である。さらなる例として、本願で使われているように、また特定のコンテクストで適用可能である場合は、"回路"との語句は、プロセッサと付随するソフトウェアやファームウェアのみの実装をもカバーしてもよい。なおプロセッサはマルチプロセッサでもよい。"回路"との語句はまた、特定のコンテクストにおいて適用可能である場合は、例えば、携帯電話のベースバンド集積回路やアプリケーションプロセッサ集積回路をカバーしてもよく、セルラネットワークデバイスやそのネットワークデバイスにおける同様の集積回路をカバーしてもよい。
電話機の重要な内部コンポーネントには、メインコントロールユニット(MCU)1003,デジタルシグナルプロセッサ(DSP)1005,送受信ユニットがあり、送受信ユニットには、マイク利得制御ユニットやスピーカ利得制御ユニットが含まれる。メインディスプレイユニット1007は、コンテンツに基づいてネットワーク機能を特定するステップを実行したりサポートしたりする、様々なアプリケーションや携帯端末機能をサポートするための表示をユーザに提供する。ディスプレイ1007は、携帯電話などの携帯端末のユーザインタフェースの少なくとも一部分を表示するように構成される、ディスプレイ回路を含む。加えてディスプレイ1007及びディスプレイ回路は、携帯電話の少なくともいくつかの機能をユーザが制御することを容易にする。音声機能回路1009はマイクロホン1011と、マイクロホン1011から出力されるスピーチ信号を増幅するマイクロホンアンプとを備える。マイクロホン1011から出力されたスピーチ信号を増幅したものは、符号化・復号回路(CODEC)1003に供給される。
無線セクション1015は、信号のパワーを増幅し、アンテナ1017を介して基地局と通信するために、周波数変換を行う。基地局は移動通信システムに含まれているものである。パワーアンプ(PA)1019や送信変調回路は、MCU1003に制御されて応答可能である。技術分野でよく知られているように、PAの出力は、デュプレクサ1021やサーキュレータ、アンテナスイッチに組み合わされる。PA1019はバッテリインタフェースやパワーコントロールユニット1020に組み合わされる。
使用時において、携帯端末1001のユーザはマイクロホンに向かって話し、彼又は彼女の声は、拾われたバックグラウンドノイズと共にアナログ電圧に変換される。このアナログ電圧はA/Dコンバータ(ADC)1023によってデジタル信号に変換される。コントロールユニット1003は、このデジタル信号を処理するためにDSP1005に供給する。この処理には、音声符号化やチャネル符号化、暗号化、インタリーブなどが含まれる。ある実施形態において、処理された音声信号はセルラ転送プロトコルを用いて符号化される。この符号化は独立した要素として図示されていないユニットによって行われる。符号化方式としては、EDGEやGSM,IMS,UMTSなどであることができ、いずれかの好適な無線媒体、例えばWiMAXやLTE,CDMA,WCDMA,WiFi,衛星通信などを用いることができる。
符号化された信号は、無線伝送中に生じる周波数依存の損傷、例えば位相や振幅の歪みを補償するために、等価器1025に送られる。ビットストリームを等価した後、変調機1027が当該信号を、RFインタフェース1029で生成されたRF信号と結合する。変調機1027は、周波数または位相変調により正弦波を生成する。信号を送信準備するため、アップコンバータ1031は、変調機1027から出力された正弦波をシンセサイザ1033により生成された別の正弦波と結合し、送信に望ましい周波数を達成する。この信号はPA1019に送られ、信号の強さを適切なレベルまで増幅する。実際のシステムにおいて、PA1019は、ネットワークの基地局から受信した情報に基づいてDSP1005によって利得が制御される、可変利得増幅器として動作する。信号は、デュプレクサ1021でフィルタされ、場合によってはアンテナカプラ103号に送られ、インピーダンスが合わされて、最大パワーでの伝送が実現される。最後に信号はアンテナ1017からローカルの基地局へ送信される。受信機における最後のステージの利得を制御するために、自動利得制御機構(AGC)が提供されてもよい。信号は、そこからリモートの電話機と伝送される。当該リモートの電話機は、公衆交換電話ネットワーク(PSTN)や他の電話ネットワークに接続される、セルラ電話機や他の携帯電話機、固定電話機であってもよい。
携帯電話機1001に送信された音声信号は、アンテナ1017を介して受信され、直ちに低ノイズアンプ(LNA)1037によって増幅される。ダウンコンバータ1039が搬送周波数を下げ、復調器1041がRFを取り去ってデジタルビットストリームのみを残す。この信号は等価器1025を通された後、DSP1005によって処理される。その後、D/Aコンバータ(DAC)1043が信号を変換し、その出力はスピーカ1045を通じてユーザに届けられる。これらは全てメインコントロールユニット(MCU)1003の制御下にある。MCU1003は、中央演算装置(CPU,図示されていない)によって実装されうる。
MCU1003は様々な信号を受け取るが、その中にはキーボード1047からの信号も含まれる。キーボード1047及び/又はMCU1003は、マイクロホン1011など他のユーザ入力要素と共に、ユーザ入力を管理するユーザインタフェース回路を形成する。MCU1003は、ユーザインタフェースソフトウェアを実行し、コンテンツに基づいてネットワーク機能を特定する携帯端末1001の少なくとも一部の機能をユーザが制御することを容易にする。MCU1003はまた、表示命令や切り替え命令をディスプレイ1007や音声出力切り替えコントローラにそれぞれ提供する。さらにMCU1003は、DSP1005と情報の交換を行い、搭載されている場合があるSIMカード1049やメモリ1051へアクセスすることも可能である。さらにMCU1003は、端末によって必要な各種の制御機能を実行する。DSP1005は、実装に応じて、音声信号についてのよく知られた各種のデジタル処理機能を実行する。さらにDSP1005は、マイクロホン1011によって検出された信号からローカル環境の背景ノイズレベルを決定し、携帯端末1001のユーザの声が自然に聞こえるようにマイクロホン1011のゲインのレベルを設定する。
CODEC1013は、ADC1023及びDAC1043を含む。メモリ1051は、着信音データを含む様々なデータを格納し、また例えばグローバルなインターネットを介して受信した音楽データなどの他のデータを格納する能力を有する。ソフトウェアモジュールは、RAMメモリやフラッシュメモリ、レジスタなど、技術分野で知られたいかなる形態の書き込み可能な記憶媒体に存在してもよい。メモリデバイス1051は、単一のメモリ、CD、DVD、ROM、RAM、EPROM、光ストレージなど、デジタルデータを記憶する能力を有する非揮発性のいかなる記憶媒体であってもよい。
オプションで搭載される場合があるSIMカード1049は、例えば、セルラ電話機の番号やキャリアによって提供されたサービス、加入情報の詳細なセキュリティー情報などの重要な情報を担持する。SIMカード1049の主要な役目は、無線ネットワークにおいて移動端末1001を識別することである。カード1049はまた、個人の電話帳やテキストメッセージ、携帯電話のユーザ設定を格納するためのメモリも備える。
本発明をいくつかの実施形態や実装例を用いて説明してきたが、本発明の範囲はそのように限定されるものではなく、添付の特許請求の範囲に包含される多くの明らかな変形や均等な構成をカバーする。請求項において、本発明の特徴が、ある特定の組み合わせによって表現されているものの、それらはどのような組み合わせや順番に配されてもよい。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/789,043 US8645554B2 (en) | 2010-05-27 | 2010-05-27 | Method and apparatus for identifying network functions based on user data |
US12/789,043 | 2010-05-27 | ||
PCT/FI2011/050466 WO2011148048A1 (en) | 2010-05-27 | 2011-05-24 | Method and apparatus for identifying network functions based on user data |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014177750A Division JP2015008009A (ja) | 2010-05-27 | 2014-09-02 | ユーザデータに基づいてネットワーク機能を識別する方法及び装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2013535041A JP2013535041A (ja) | 2013-09-09 |
JP2013535041A5 true JP2013535041A5 (ja) | 2014-03-06 |
JP5870092B2 JP5870092B2 (ja) | 2016-02-24 |
Family
ID=45003384
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013509586A Active JP5870092B2 (ja) | 2010-05-27 | 2011-05-24 | ユーザデータに基づいてネットワーク機能を識別する方法及び装置 |
JP2014177750A Pending JP2015008009A (ja) | 2010-05-27 | 2014-09-02 | ユーザデータに基づいてネットワーク機能を識別する方法及び装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014177750A Pending JP2015008009A (ja) | 2010-05-27 | 2014-09-02 | ユーザデータに基づいてネットワーク機能を識別する方法及び装置 |
Country Status (8)
Country | Link |
---|---|
US (2) | US8645554B2 (ja) |
EP (1) | EP2577944B1 (ja) |
JP (2) | JP5870092B2 (ja) |
KR (1) | KR101495980B1 (ja) |
CN (1) | CN102918821A (ja) |
BR (1) | BR112012029828B1 (ja) |
CA (1) | CA2797544C (ja) |
WO (1) | WO2011148048A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060609B2 (en) * | 2008-01-04 | 2011-11-15 | Sling Media Inc. | Systems and methods for determining attributes of media items accessed via a personal media broadcaster |
US8327407B2 (en) | 2009-10-27 | 2012-12-04 | Sling Media, Inc. | Determination of receiving live versus time-shifted media content at a communication device |
US8645554B2 (en) * | 2010-05-27 | 2014-02-04 | Nokia Corporation | Method and apparatus for identifying network functions based on user data |
KR101701151B1 (ko) * | 2010-09-20 | 2017-02-02 | 삼성전자주식회사 | 휴대 단말기를 이용한 통합 메시지 송수신 방법 및 장치 |
CA2775245C (en) | 2011-04-27 | 2020-06-16 | Perspecsys Inc. | System and method of federated authentication with reverse proxy |
CN105488044A (zh) | 2014-09-16 | 2016-04-13 | 华为技术有限公司 | 数据处理的方法和设备 |
US9485721B1 (en) * | 2015-02-11 | 2016-11-01 | Sprint Communications Company L.P. | Discovery of services by mobile communication devices using a service registry indexed by wireless beacons |
JP2016162163A (ja) * | 2015-03-02 | 2016-09-05 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
WO2018164033A1 (ja) * | 2017-03-06 | 2018-09-13 | 日本電気株式会社 | 制御装置、制御システム、制御装置の制御方法及び記録媒体 |
KR102597361B1 (ko) * | 2023-02-17 | 2023-11-07 | (주)시지태테크놀러지 | 애플리케이션 사용량을 분석 및 제시하기 위한 방법 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304753B1 (en) | 1998-07-16 | 2001-10-16 | Openwave Technologies Inc. | Integration of voice and data services provided to a mobile wireless device |
US6662215B1 (en) * | 2000-07-10 | 2003-12-09 | I Novation Inc. | System and method for content optimization |
AU785366B2 (en) * | 2000-09-29 | 2007-02-08 | Sony Corporation | Information management system using agent |
AU2002225822A1 (en) * | 2000-10-31 | 2002-05-15 | Contextweb | Internet contextual communication system |
US20030227476A1 (en) * | 2001-01-29 | 2003-12-11 | Lawrence Wilcock | Distinguishing real-world sounds from audio user interface sounds |
US20020143808A1 (en) * | 2001-01-31 | 2002-10-03 | Rodger Miller | Intelligent document linking system |
JP2002285958A (ja) * | 2001-03-28 | 2002-10-03 | Matsushita Refrig Co Ltd | リニアコンプレッサの制御装置 |
JP2002297656A (ja) | 2001-04-02 | 2002-10-11 | Nippon Telegr & Teleph Corp <Ntt> | コンテンツ提供方法及び装置及びコンテンツ提供プログラム及びコンテンツ提供プログラムを格納した記憶媒体 |
US7363384B2 (en) * | 2001-07-11 | 2008-04-22 | Sony Computer Entertainment America Inc. | Selection of content in response to communication environment |
US7406659B2 (en) | 2001-11-26 | 2008-07-29 | Microsoft Corporation | Smart links |
US20040153373A1 (en) | 2003-01-31 | 2004-08-05 | Docomo Communications Laboratories Usa, Inc. | Method and system for pushing services to mobile devices in smart environments using a context-aware recommender |
JP4661047B2 (ja) * | 2003-05-30 | 2011-03-30 | ソニー株式会社 | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
JP4108016B2 (ja) * | 2003-08-01 | 2008-06-25 | アルパイン株式会社 | ナビゲーション装置およびナビゲーション装置における車両停車時の画面表示方法 |
JP4566679B2 (ja) | 2003-11-13 | 2010-10-20 | キヤノン株式会社 | 画像形成装置および制御方法およびプログラム |
KR20040010457A (ko) | 2003-12-18 | 2004-01-31 | 주식회사 넥스모빌 | 원본 컨텐츠를 사용자의 취향에 맞도록 편집 가공할 수있는 기능을 제공하는 무선인터넷 컨텐츠 서비스 방법 |
JP4413633B2 (ja) * | 2004-01-29 | 2010-02-10 | 株式会社ゼータ・ブリッジ | 情報検索システム、情報検索方法、情報検索装置、情報検索プログラム、画像認識装置、画像認識方法および画像認識プログラム、ならびに、販売システム |
JP4654665B2 (ja) * | 2004-11-25 | 2011-03-23 | 日本電気株式会社 | 情報配信方法、装置及び記憶媒体 |
US7512401B2 (en) * | 2005-04-04 | 2009-03-31 | Nokia Corporation | Method and system for updating capabilities of a device |
US8085808B2 (en) | 2005-05-12 | 2011-12-27 | Verizon Services Corp. | Automatic configuration of network devices for network services |
US20070168499A1 (en) | 2005-07-07 | 2007-07-19 | Acenet Technology Inc. | Configurable Modular Networking System and Method Thereof |
CN101361345A (zh) * | 2005-11-23 | 2009-02-04 | 高通股份有限公司 | 基于用户个人化信息分配内容以及接收选定内容的设备和方法 |
US8001105B2 (en) * | 2006-06-09 | 2011-08-16 | Ebay Inc. | System and method for keyword extraction and contextual advertisement generation |
JP2008077227A (ja) | 2006-09-19 | 2008-04-03 | Access Co Ltd | リンク生成装置、ブラウザプログラム、リンク生成システム |
US8849360B2 (en) * | 2006-10-11 | 2014-09-30 | Avaya Inc. | Systems and methods for communicating with wireless-enabled devices that are capable of responding to changes in operational state |
US8594702B2 (en) * | 2006-11-06 | 2013-11-26 | Yahoo! Inc. | Context server for associating information based on context |
EP2103089A2 (en) * | 2006-12-11 | 2009-09-23 | Hari Prasad Sampath | A method and system for personalized content delivery for wireless devices |
WO2008072093A2 (en) * | 2006-12-13 | 2008-06-19 | Quickplay Media Inc. | Mobile media platform |
US8838079B2 (en) * | 2007-05-22 | 2014-09-16 | Nuance Communications, Inc. | Keyword-based services for mobile device messages |
CA2695194C (en) * | 2007-07-30 | 2014-07-15 | Telcordia Technologies, Inc. | Method and system for presenting a mash-up, or personalized mixture, and associated contextual suggestions to mobile users |
JP2009087099A (ja) * | 2007-09-28 | 2009-04-23 | Fujifilm Corp | 画像サービス実施方法、プログラムおよび装置 |
WO2009084749A1 (en) | 2007-12-28 | 2009-07-09 | Saltlux Inc. | Method for recommending contents with context awareness |
JP5116492B2 (ja) * | 2008-01-15 | 2013-01-09 | 三菱電機株式会社 | アプリケーション実行端末 |
JP5125558B2 (ja) | 2008-02-04 | 2013-01-23 | 日本電気株式会社 | 推薦情報提供装置、推薦情報提供方法、推薦情報提供システムおよび推薦情報提供プログラム |
US20090248670A1 (en) | 2008-03-31 | 2009-10-01 | Trevor Fiatal | Content search engine |
CN101621435A (zh) | 2008-07-04 | 2010-01-06 | 华为技术有限公司 | 一种通用业务架构下业务调用的方法、装置与系统 |
US8135739B2 (en) * | 2008-12-29 | 2012-03-13 | Microsoft Corporation | Online relevance engine |
US8289287B2 (en) * | 2008-12-30 | 2012-10-16 | Nokia Corporation | Method, apparatus and computer program product for providing a personalizable user interface |
US8200757B2 (en) * | 2009-01-27 | 2012-06-12 | Catch, Inc. | Semantic note taking system |
CN101561756B (zh) | 2009-05-26 | 2013-06-19 | 珠海金山软件有限公司 | 通过办公软件获取网络函数结果进行分析的方法及装置 |
US8719713B2 (en) * | 2009-06-17 | 2014-05-06 | Microsoft Corporation | Rich entity for contextually relevant advertisements |
US9335893B2 (en) * | 2009-12-29 | 2016-05-10 | Here Global B.V. | Method and apparatus for dynamically grouping items in applications |
US20110167357A1 (en) * | 2010-01-05 | 2011-07-07 | Todd Benjamin | Scenario-Based Content Organization and Retrieval |
US20120303452A1 (en) * | 2010-02-03 | 2012-11-29 | Nokia Corporation | Method and Apparatus for Providing Context Attributes and Informational Links for Media Data |
US9275376B2 (en) * | 2010-03-25 | 2016-03-01 | Nokia Technologies Oy | Method and apparatus for providing soft reminders |
US20110238608A1 (en) * | 2010-03-25 | 2011-09-29 | Nokia Corporation | Method and apparatus for providing personalized information resource recommendation based on group behaviors |
US8635062B2 (en) * | 2010-04-15 | 2014-01-21 | Nokia Corporation | Method and apparatus for context-indexed network resource sections |
WO2011148213A1 (en) * | 2010-05-26 | 2011-12-01 | Sony Ericsson Mobile Communications Ab | Adaptive media object reproduction based on social context |
US8645554B2 (en) * | 2010-05-27 | 2014-02-04 | Nokia Corporation | Method and apparatus for identifying network functions based on user data |
-
2010
- 2010-05-27 US US12/789,043 patent/US8645554B2/en active Active
-
2011
- 2011-05-24 BR BR112012029828-3A patent/BR112012029828B1/pt active IP Right Grant
- 2011-05-24 KR KR1020127033821A patent/KR101495980B1/ko active IP Right Grant
- 2011-05-24 JP JP2013509586A patent/JP5870092B2/ja active Active
- 2011-05-24 CA CA2797544A patent/CA2797544C/en active Active
- 2011-05-24 CN CN2011800257941A patent/CN102918821A/zh active Pending
- 2011-05-24 EP EP11786189.8A patent/EP2577944B1/en active Active
- 2011-05-24 WO PCT/FI2011/050466 patent/WO2011148048A1/en active Application Filing
-
2013
- 2013-12-26 US US14/141,140 patent/US20140108555A1/en not_active Abandoned
-
2014
- 2014-09-02 JP JP2014177750A patent/JP2015008009A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5870092B2 (ja) | ユーザデータに基づいてネットワーク機能を識別する方法及び装置 | |
US11750683B2 (en) | Computer application promotion | |
JP2013535041A5 (ja) | ||
US9129225B2 (en) | Method and apparatus for providing rule-based recommendations | |
US20180293637A1 (en) | Method and apparatus for collaborative filtering for real-time recommendation | |
US20130007063A1 (en) | Method and apparatus for real-time processing of data items | |
US20110246438A1 (en) | Method and apparatus for context-indexed network resources | |
US20110136542A1 (en) | Method and apparatus for suggesting information resources based on context and preferences | |
US20130262467A1 (en) | Method and apparatus for providing token-based classification of device information | |
US20120117015A1 (en) | Method and apparatus for providing rule-based recommendations | |
US10445797B2 (en) | Method and apparatus for verifying association of users with products and information | |
US20160055256A1 (en) | Systems and methods for directing access to products and services | |
US20110257960A1 (en) | Method and apparatus for context-indexed network resource sections | |
US20160055133A1 (en) | Systems and methods for directing access to products and services | |
JP2013543167A5 (ja) | ||
WO2014000280A1 (en) | Method and apparatus for providing task-based service recommendations | |
US9043333B1 (en) | Systems and methods for directing access to products and services | |
US20170270195A1 (en) | Providing token-based classification of device information | |
US20160012132A1 (en) | Method and apparatus for querying resources thorough search field | |
JP2015079349A (ja) | 情報検索装置、情報検索方法、およびプログラム |