(57)【特許請求の範囲】
【請求項１】
検索エンジンの結果ページ内に目的別アプリケーションを提供する装置であって、
ユーザから検索クエリを受け取る手段と、
前記検索クエリを解析し、解析結果に基づいて、当該検索クエリに関連する１又はそれ以上の動作を選択する手段と、
前記１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択する手段と、
前記選択されたアプリケーションを解析対象となった検索クエリを用いて実行した結果を検索結果ページ内に表示する手段と、
を備えることを特徴とする装置。
【請求項２】
検索エンジンの結果ページ内に目的別アプリケーションを提供する装置であって、
ユーザから検索クエリを受け取る手段と、
前記検索クエリに関連する１又はそれ以上の動作を選択する手段と、
前記１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションであって、アプリケーションに関連するメタデータパラメータに基づいてランク付けされた前記１又はそれ以上のアプリケーションを選択する手段と、
前記１又はそれ以上のアプリケーションを検索結果ページ内に表示する手段と、
を備えることを特徴とする装置。
【請求項３】
前記アプリケーションに関連するメタデータパラメータは、ユーザのコミュニティにおける前記アプリケーションの人気または前記アプリケーションの過去の収益を含む、
ことを特徴とする請求項２に記載の装置。
【請求項４】
検索エンジンの結果ページ内に目的別アプリケーションを提供する装置であって、
ユーザから検索クエリを受け取る手段と、
前記検索クエリにユーザコンテキストを表すデータを追加し、前記検索クエリを解釈する手段と
前記解釈した検索クエリに関連する１又はそれ以上の動作を選択する手段と、
前記１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択する手段と、
前記１又はそれ以上のアプリケーションを検索結果ページ内に表示する手段と、
を備えることを特徴とする装置。
【請求項５】
検索エンジンの結果ページ内に目的別アプリケーションを提供する装置であって、
ユーザから検索クエリを受け取る手段と、
前記検索クエリに関連する１又はそれ以上の動作を選択する手段と、
前記１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択する手段と、
前記１又はそれ以上のアプリケーションを階層に編成して検索結果ページ内に表示する手段と、
を備えることを特徴とする装置。
【請求項６】
検索エンジンの結果ページ内に目的別アプリケーションを提供する装置であって、
ユーザから検索クエリを受け取る手段と、
前記検索クエリに関連する１又はそれ以上の動作を選択する手段と、
前記１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択する手段と、
前記１又はそれ以上のアプリケーションを検索結果ページ内に表示し、最初に提供したアプリケーションとのユーザインタラクションに基づいて後続のアプリケーションを提供する手段と、
を備えることを特徴とする装置。
【請求項７】
検索エンジンの結果ページ内に目的別アプリケーションを提供する方法であって、
ユーザから検索クエリを受け取るステップと、
前記検索クエリを解析し、解析結果に基づいて、当該検索クエリに関連する１又はそれ以上の動作を選択するステップと、
前記１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択するステップと、
前記選択されたアプリケーションを解析対象となった検索クエリを用いて実行した結果を検索結果ページ内に表示するステップと、
を含むことを特徴とする方法。
【請求項８】
検索エンジンの結果ページ内に目的別アプリケーションを提供するためのプログラムであって、
コンピュータに、
ユーザから検索クエリを受け取るステップと、
前記検索クエリを解析し、解析結果に基づいて、当該検索クエリに関連する１又はそれ以上の動作を選択するステップと、
前記１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択するステップと、
前記選択されたアプリケーションを解析対象となった検索クエリを用いて実行した結果を検索結果ページ内に表示するステップと、
を実行させることを特徴とするプログラム。
【請求項９】
検索エンジンの結果ページ内に目的別アプリケーションを提供するためのシステムであって、
ネットワークを介して検索エンジンに結合された、前記検索エンジンに検索クエリを送信する複数のクライアント装置と、
前記検索クエリを受け取る手段と、前記検索クエリを解析し、解析結果に基づいて、当該検索クエリに関連する１又はそれ以上の動作を選択する手段と、前記１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択する手段と、前記選択されたアプリケーションを解析対象となった検索クエリを用いて実行した結果を検索結果ページ内に表示する手段と、を備えるサーバ装置と、
を備えることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
本特許文書の開示部分は、著作権保護の対象内容を含む。著作権の権利所有者は、合衆国特許商標庁の特許ファイル又は記録内に表されるとおりに第三者が特許文書又は特許開示を複製することには異議を唱えないが、それ以外は全ての著作権を留保する。
【０００２】
本明細書で説明する発明は、一般に、検索クエリに応答して、目的別のコンテキストアプリケーションを提供することに関する。より詳細には、本発明は、ユーザクエリを解析し、ユーザコンテキストを識別し、このユーザクエリ及びユーザコンテキストに基づく動作を、保存されたアプリケーションに関連付け、ユーザ装置上に１又は複数のアプリケーションを提示するためのシステム及び方法に関する。
【背景技術】
【０００３】
インターネットが急速に拡がるにつれ、検索エンジンの役割が飛躍的に高まった。膨大な量のインターネットコンテンツを人間のユーザが手動的に利用することは急速に不可能になってきた。従って、インターネットの有用性を高める上で、検索エンジン技術の使用が不可欠なツールになってきた。
【０００４】
検索結果の関連性を高めることは長足の進歩を遂げたが、検索エンジンユーザのコンテキストデータ及び履歴データを考慮することにはそれほど進歩が見られていない。また、検索結果ページインターフェイス内にアプリケーション又はウィジェットを組み入れることはほとんど進歩していない。対照的に、現在の検索エンジンは、一般に、ユーザクエリに応答して単純なハイパーリンクのリストを提供する。従って、ユーザは、自身のクエリに最も関連するリンクを識別して選択する必要がある。さらに、ユーザは、自分が求めている結果を得るためにさらなる段階を踏む必要がある。
【０００５】
ユーザが休暇の計画を立てようとする例が特に顕著である。現在の環境では、ユーザは、「ボストン発ロサンゼルス行きの飛行機」などのクエリを入力することができる。これに応じて、ユーザは、チケットの購入に関する複数のサイトを受け取ることができる。この範例は、多くの理由によって不利益である。第１に、ユーザは、望むものではない可能性があるウェブサイトを多く含む無数の検索結果を依然として検索する必要がある。第２に、現在の検索エンジンは、インスタント検索クエリに関する情報しか提示しない。すなわち、現在の最先端技術では、ボストンからロサンゼルスへの休暇の計画を立てているユーザは、（「ボストン発ロサンゼルス行きの飛行機」という検索に加えて）ホテルを予約し、車をレンタルし、レストランを見つけ、その他の観光を行うために複数の検索を行う必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、現在の最先端技術は、ユーザ検索行動の「全体像」を考えることができない。すなわち、現在の検索エンジン技術は、ユーザのクエリに対して直接的に単純に応答し、ユーザのコンテキスト及び過去の検索履歴を使用することによってクエリの特質を確認しようとはしない。従って、現在の最先端技術では、予想されるユーザの目的に応じて提供されるコンテキストアプリケーションを提供することにより、ユーザ検索体験を高めることが必要とされている。
【課題を解決するための手段】
【０００７】
本発明は、検索エンジンの結果ページ内に目的別アプリケーションを提供するためのシステム及び方法に関する。この方法は、ユーザから検索クエリを受け取って、この検索クエリを解釈する。１つの実施形態では、ユーザ検索クエリを解釈するステップが、検索クエリのトークン化形式を生成するステップを含む。代替の実施形態では、ユーザ検索クエリを解釈するステップが、ユーザプロファイルに記憶されたデータを含むユーザコンテキストを表すデータを検索クエリに追加するステップをさらに含む。代替の実施形態では、ユーザ検索クエリを解釈するステップが、ユーザの過去の検索クエリを含むユーザコンテキストを表すデータを検索クエリに追加するステップをさらに含む。次に、この方法は、まず解釈したクエリを１又はそれ以上の動作テンプレートに対応付け、この解釈したクエリを１又はそれ以上の動作テンプレートに対応付けるステップは、解釈したクエリに関連する１又はそれ以上の動作を選択するステップを含む。
【０００８】
次に、この方法は、解釈したクエリに関連する選択した１又はそれ以上の動作を複数のアプリケーションに対応付け、この１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択する。１つの実施形態では、解釈したクエリに関連する選択した１又はそれ以上の動作を複数のアプリケーションに対応付けるステップが、編集判断を使用するステップを含む。代替の実施形態では、解釈したクエリに関連する選択した１又はそれ以上の動作を複数のアプリケーションに対応付けるステップが、アルゴリズム的に実行される。代替の実施形態では、解釈したクエリに関連する選択した１又はそれ以上の動作を複数のアプリケーションに対応付け、この１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択するステップが、検索クエリ及びユーザコンテキストから抽出されたデータ、及び検索履歴に基づいて、アプリケーションを事前に埋めるステップをさらに含む。
【０００９】
１つの実施形態では、この方法が、１又はそれ以上の選択したアプリケーションをランク付けする。１つの実施形態では、１又はそれ以上の選択したアプリケーションをランク付けするステップが、ユーザのコミュニティにおけるアプリケーションの人気に基づいて上位アプリケーションを選択するステップを含む。代替の実施形態では、１又はそれ以上の選択したアプリケーションをランク付けするステップが、アプリケーションの過去の収益に基づいて上位アプリケーションを選択するステップを含む。最後に、この方法は、これらの１又はそれ以上のアプリケーションを検索結果ページ内に表示する。
【００１０】
本発明はさらに、検索エンジンの結果ページ内に目的別アプリケーションを提供するためのシステムに関する。このシステムは、ネットワークを介して検索エンジンに結合された複数のクライアント装置を備え、これらのクライアント装置は、検索エンジンに検索クエリを送信する。このシステムは、検索クエリを解釈するクエリインタプリタをさらに備える。１つの実施形態では、クエリインタプリタが、検索クエリのトークン化形式をさらに生成する。代替の実施形態では、クエリインタプリタが、ユーザコンテキストを表すデータを検索クエリにさらに追加する。１つの実施形態では、ユーザコンテキストが、ユーザプロファイルに記憶されたデータを含む。代替の実施形態では、ユーザコンテキストが、ユーザの過去の検索クエリを含む。このシステムは、解釈したクエリを１又はそれ以上の動作テンプレートに対応付ける動作推論モジュールを備え、解釈したクエリを１又はそれ以上の動作テンプレートに対応付けるステップは、解釈したクエリに関連する１又はそれ以上の動作を選択するステップを含む。
【００１１】
このシステムは、解釈したクエリに関連する選択した１又はそれ以上の動作を複数のアプリケーションに対応付けるとともに、アプリケーションデータベースに記憶された、１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択するアプリケーションスコアラをさらに備える。１つの実施形態では、解釈したクエリに関連する選択した１又はそれ以上の動作を複数のアプリケーションに対応付けるステップが、編集判断を使用するステップを含む。別の実施形態では、解釈したクエリに関連する選択した１又はそれ以上の動作を複数のアプリケーションに対応付けるステップが、アルゴリズム的に実行される。別の実施形態では、アプリケーションスコアラが、１又はそれ以上の選択したアプリケーションをさらにランク付けする。
【００１２】
さらなる実施形態では、アプリケーションスコアラが、１又はそれ以上の選択したアプリケーションをさらにランク付けすることができる。１つの実施形態では、１又はそれ以上の選択したアプリケーションをランク付けするステップが、ユーザのコミュニティにおけるアプリケーションの人気に基づいて上位アプリケーションを選択するステップを含む。代替の実施形態では、１又はそれ以上の選択したアプリケーションをランク付けするステップが、アプリケーションの過去の収益に基づいて上位アプリケーションを選択するステップを含む。このシステムは、これらの１又はそれ以上のアプリケーションを検索結果ページ内に表示するフロントエンドサーバをさらに備える。
【００１３】
同じ参照符号が同じ又は対応する部分を示す、限定的ではなく例示的であることが意図された添付図面の図に本発明を示す。
【図面の簡単な説明】
【００１４】
【図１】本発明の１つの実施形態による、ユーザコンテキストに基づいてコンテキスト動作を生成するためのシステムを示すブロック図である。
【図２】本発明の１つの実施形態による、ユーザクエリに基づいてコンテキスト動作を生成するためのシステムを示すフロー図である。
【図３】本発明の１つの実施形態による、ユーザコンテキストに基づいてコンテキスト動作を生成する方法を示すフロー図である。
【図４】本発明の１つの実施形態による、検索結果ページ上のコンテキストアプリケーションを示す画面図である。
【図５】本発明の１つの実施形態による、検索結果ページ上のコンテキストアプリケーションを示す画面図である。
【図６】本発明の１つの実施形態による、検索結果ページ上のコンテキストアプリケーションを示す画面図である。
【発明を実施するための形態】
【００１５】
以下の説明では、本明細書の一部を成す添付図面を参照し、図中には本発明を実施できる特定の実施形態を例示として示す。本発明の範囲から逸脱することなく、他の実施形態を利用すること、及び構造的な変更を行うことができると理解されたい。
【００１６】
図１は、本発明の１つの実施形態による、ユーザコンテキストに基づいてコンテキスト動作を生成するためのシステムを示すブロック図である。図１の実施形態に示すように、複数のクライアント装置１０２ａ、１０２ｂ、１０２ｃが、ネットワーク１０４を介して検索エンジン１０６に接続されている。検索エンジン１０６は、フロントエンドサーバ１０８、動作推論モジュール１１０、クエリインタプリタ１１２、アプリケーションスコアラ１１４、アプリケーションパラメータ化モジュール１１６、アプリケーションインデックス１１８及びアプリケーションデータベース１２０を含む複数の構成要素を備える。
【００１７】
クライアント装置１０２ａ、１０２ｂ及び１０２ｃは、中央処理装置、メモリユニット、永久記憶装置、オーディオ／ビデオ出力装置、ネットワークインターフェイスなどを有する汎用コンピュータ装置（パーソナルコンピュータ、テレビセットトップボックス、モバイル装置など）とすることができる。クライアント装置１０２ａ、１０２ｂ及び１０２ｃは、ローカルネットワーク又はインターネットなどのワイドエリアネットワークとすることができるネットワーク１０４を介して通信する。本実施形態では、クライアント装置１０２ａ、１０２ｂ及び１０２ｃが、クライアント／サーバ間でテキスト、画像及びその他のデータを交換するためのＨＴＴＰ、ＷＡＰ又は同様のプロトコルを介して検索エンジン１０６に要求を送信する。
【００１８】
クライアント装置１０２ａ、１０２ｂ及び１０２ｃは、検索結果を求める要求を検索プロバイダ１１０に送信し、これらの検索要求は検索語を含む。この検索語は、ユーザが生成した検索語であっても、又はユーザ支援による、すなわち提案された検索語であってもよい。１つの実施形態では、クライアント装置１０２ａ、１０２ｂ及び１０２ｃが、テキストクエリ文字列を含むＨＴＴＰ要求を送信することができる。例えば、クライアント装置１０２ａ、１０２ｂ及び１０２ｃを操作するユーザは、「ニューヨーク、ｎｙの寿司」などの検索語を含むクエリ文字列を入力し、ＨＴＭＬ形式の要素を介してこのクエリを提出することができる。
【００１９】
検索エンジン１０６は、フロントエンドサーバ１０８を介してクライアント装置からクエリを受け取る。１つの実施形態では、フロントエンドサーバ１０８が、ＡＰＡＣＨＥ  ＨＴＴＰ  ＳＥＲＶＥＲ、ＭＩＣＲＯＳＯＦＴ  ＩＩＳ、又は他のいずれかの好適なウェブサーバソフトウェアなどのウェブサーバソフトウェアを実行する様々なハードウェア構成要素を含むことができる。図示の実施形態では、フロントエンドサーバ１０８が、所与のユーザにより入力された検索要求を受け取る。フロントエンドサーバ１０８は、所与のクエリに応答して、まず検索インデックス（図示せず）から複数の検索結果を取り出すことができる。１つの実施形態では、複数の検索結果が、提出された検索語の１又はそれ以上を少なくとも含む複数のウェブページを含む。図示の実施形態では、当業で公知の様々な方法を使用して、検索インデックス内の複数の検索結果を識別することができる。フロントエンドサーバ１０８はさらに、この検索結果及びアプリケーションをクライアント装置１０２ａ、１０２ｂ及び１０２ｃに送信する。
【００２０】
フロントエンドサーバ１０８は、動作推論モジュール１１０と通信する。図示の実施形態では、フロントエンドサーバ１０８が、受け取ったクエリを動作推論モジュール１１０に送信する。代替の実施形態では、フロントエンドサーバ１０８が、このクエリに関するメタデータを動作推論モジュール１１０にさらに送信する。例えば、フロントエンドサーバ１０８は、ユーザＩＤなどのデータを含む、クエリ提出ユーザに関連するクッキーで情報を送信することができる。図示の実施形態では、動作推論モジュール１１０が、高速検索できるように動作にインデックス付けし、動作を取り出して重み付けするためのメタデータを記憶し、コンテキストに基づいて動作を選択する。
【００２１】
クエリインタプリタ１１２は、クエリを受け取ると、所与のクエリを分析して、ユーザのコンテキストを表すクエリの解釈を提供する。例えば、クエリインタプリタ１１２は、「ｂｏｓ（ボストン）発ｌａｘ（ロサンゼルス）行きの飛行機」というクエリを受け取ることができる。これに応じて、クエリインタプリタ１１２は、この平文クエリを、「＜トークン：飛行機＞＜都市：ボストン＞＜トークン：行き＞＜都市：ロサンゼルス＞」などの構造化フォーマットに翻訳することができる。図示のように、クエリインタプリタ１１２は、受け取ったクエリの特性に基づいて、平文クエリをトークン化バージョンに変換する。前の例では、クエリインタプリタ１１２が、「飛行機」及び「〜行き」という用語をトークンとして、また「ｂｏｓ（ボストン）」及び「ｌａｘ（ロサンゼルス）」という用語を都市として抽出する。代替の実施形態では、クエリインタプリタが、解釈の生成において複数の外部指標を利用することができる。例えば、クエリインタプリタ１１２は、（長期の及び短期の活動を含む）ユーザプロファイルを利用して、概念及びエンティティ又はオブジェクトと元々のユーザクエリとをマッチさせることができる。また、クエリインタプリタ１１２は、アプリケーションとのユーザインタラクションに関する収集した指標を利用することもできる。１つの実施形態では、指標が、アプリケーションを使用したユーザ体験の質を表し、ユーザ行動に基づいて素早く改善される。
【００２２】
クエリインタプリタ１１２は、抽出されたコンテキストを動作推論モジュール１１０に戻す。動作推論モジュール１１０は、この識別されたコンテキストに基づいて動作を選択する。１つの実施形態では、動作推論モジュール１１０が、解釈されたコンテキストを複数のテンプレートと比較する。例えば、動作推論モジュール１１０は、上記の解釈されたコンテキストを、２つのテンプレート動作「＜航空チケットを購入する＞」及び「＜飛行機の到着／出発時間をチェックする＞」にマッチさせることができる。
【００２３】
動作推論モジュール１１０は、識別された動作及び解釈されたコンテキストをアプリケーションスコアラ１１４に送信する。図示の実施形態では、アプリケーションスコアラ１１４が、受け取ったコンテキスト及び動作に基づいてアプリケーションインデックス１１８からアプリケーションを選択する。また、アプリケーションスコアラ１１４は、本明細書で説明するように、これらの識別されたアプリケーションを採点してランク付けすることができる。アプリケーションスコアラモジュール１１４に加え、アプリケーションパラメータ化モジュール１１６が、解釈されたコンテキストから関連パラメータを抽出する。例えば、上記の例では、アプリケーションパラメータ化モジュール１１６が、「ｂｏｓ（ボストン）」及び「ｌａｘ（ロサンゼルス）」という用語を関連パラメータとして抽出することができる。代替の実施形態では、アプリケーションパラメータ化モジュール１１６がさらに、「ｂｏｘ（ボストン）」及び「ｌａｘ（ロサンゼルス）」を「ボストン」及び「ロサンゼルス」に変換すること、又はその他の変換動作を実行することができる。アプリケーションパラメータ化モジュール１１６は、パラメータを識別することに加え、この識別されたパラメータでアプリケーションフィールドを事前に埋めることもできる。所与の例では、アプリケーションパラメータ化モジュール１１６が、到着及び出発時間を提供するアプリケーションなどの識別されたアプリケーションに、ボストン及びロサンゼルスという都市を挿入することができる。
【００２４】
動作推論モジュール１１０及びアプリケーションパラメータ化モジュール１１６は、アプリケーションインデックス１１８を介してアプリケーションにアクセスすることができる。アプリケーションインデックス１１８は、高速検索のためにアプリケーションにインデックスを付ける。図示の実施形態では、アプリケーションインデックス１１８が、アプリケーションの高速索引及びランク付けを支援するためのメタデータを記憶する。アプリケーションインデックス１１８は、高速検索を提供することに加え、アプリケーションデータベース１２０への追加入力をさらに処理することができる。すなわち、アプリケーションインデックス１１８は、開発者から新たなアプリケーション及びデータを受け取り、アプリケーションにインデックスを付けてからアプリケーションデータベース１２０に記憶することができる。検索エンジン１０６は、開発者がアプリケーションを作成するとともに、アプリケーションデータベース１２０に記憶されたアプリケーションを維持できるようにするＡＰＩをさらに提供することができる。
【００２５】
図２は、本発明の１つの実施形態による、ユーザクエリに基づいてコンテキスト動作を生成するためのシステムを示すフロー図である。図示の実施形態では、方法２００が、まずステップ２０２において検索クエリを受け取る。図示の実施形態では、方法２００が、ＨＴＭＬ形式などの検索フォーム又はブラウザツールバーなどの他の入力機構を介してクエリを受け取ることができる。先程の例を説明すると、方法２００は、「ｂｏｓ（ボストン）発ｌａｘ（ロサンゼルス）行きの飛行機」などの平文文字列としてクエリを受け取ることができる。
【００２６】
方法２００は、検索クエリを受け取った後、ステップ２０４においてこのクエリを解析して解釈する。図示の実施形態では、方法２００が、平文文字列をトークン化形式に変換する。例えば、方法２００は、「ｂｏｘ（ボストン）発ｌａｘ（ロサンゼルス）行きの飛行機」という平文文字列を、「＜トークン：飛行機＞＜都市：ボストン＞＜トークン：行き＞＜都市：ロサンゼルス＞」というトークン化した解釈に変換することができる。見て分かるように、方法２００は、「ｂｏｓ（ボストン）」を「＜都市：ボストン＞」というトークンに、「ｌａｘ（ロサンゼルス）」を「＜都市：ロサンゼルス＞」というトークンに翻訳する。１つの実施形態では、方法２００が、様々な用語の綴りや配置が誤っているような場合に、様々なテキスト処理動作を実行してクエリを再フォーマットする。
【００２７】
次に、方法２００は、ステップ２０６において、識別して解釈したクエリを動作テンプレートに対応付ける。図示の実施形態では、方法２００が、トークン化した解釈にマッチする複数の動作テンプレートを識別することができる。例えば、方法２００は、「飛行機」及び「〜行き」というトークンが、ユーザが２地点間を移動していることを示していると識別することができる。この解釈に基づいて、方法２００は、「航空チケットを購入する」動作及び「飛行機の到着／出発時間をチェックする」動作などの複数のテンプレートを識別することができる。１つの実施形態では、各識別された動作が所与の重みを伴う。例えば、「航空チケットを購入する」動作には、「飛行機の到着／出発時間をチェックする」動作よりも高い重みを与えることができる。この動作の重みの決定は、過去のユーザ指標（例えば、ユーザがチケットの購入に関心を持つことが多いこと）、収益指標（例えば、アプリケーション当たりの収益額）、又はこれらの組み合わせに基づくことができる。
【００２８】
次に、方法２００は、ステップ２０８において、これらの動作を複数のアプリケーションに対応付ける。例えば、方法２００は、「航空チケットを購入する」を、ユーザが所望の目的地間の航空チケットを購入できるようにするＯＲＢＩＴＺアプリケーションに対応付けることができ、また「飛行機の到着／出発時間をチェックする」動作を、ＦＬＩＧＨＴＳＴＡＴＳ又は同様のアプリケーション開発者により提供されるような航空機スケジュールアプリケーションに対応付けることもできる。１つの実施形態では、方法２００が、ステップ２０４においてトークン化されたデータでアプリケーションを事前に埋めることができる。例えば、方法２００は、ＯＲＢＩＴＺアプリケーションを、出発都市（ボストン）及び到着都市（ロサンゼルス）で事前に埋めることができる。１つの実施形態では、動作とアプリケーションの間の対応付けが編集判断に基づく。代替の実施形態では、動作とアプリケーションの間の対応付けがアルゴリズム的決定に基づく。
【００２９】
次に、方法２００は、ステップ２１０において、識別されたアプリケーションをランク付けする。アプリケーションのランク付けは、特定タイプのクエリを入力した後でアプリケーションを利用するユーザの数に基づくアプリケーションの人気などの様々な指標を利用することができる。例えば、「ＣＩＴＹ１（都市１）発ＣＩＴＹ２（都市２）行きの飛行機」（この場合、都市１は出発都市を表し都市２は到着都市を表す）という形式のクエリを入力するユーザは、ＦＬＩＧＨＴＳＴＡＴＳアプリケーションよりもＯＲＢＩＴＺアプリケーションを頻繁に利用する可能性がある。アプリケーション又はアプリケーションのコンテナページに埋め込まれた様々なユーザ指標収集装置が、このデータを収集することができる。方法２００は、このデータに基づいて、ＯＲＢＩＴＺアプリケーションを、ＦＬＩＧＨＴＳＴＡＴＳアプリケーションよりも高くランク付けすべきであると判断することができる。代替の実施形態では、方法２００が、アプリケーションが稼いだ広告収益額によるランキングなどの、その他のランキングを使用することができる。これとは別に又はこれと併せて、方法２００は、所定のアプリケーション品質、信頼性、又はアプリケーションに関連する他の様々なメタデータパラメータに基づいてアプリケーションをランク付けすることができる。
【００３０】
方法２００は、アプリケーションをランク付けした後、ステップ２１２において、所望の検索結果とともにアプリケーションを表示する。方法２００は、様々な形で検索結果とともにアプリケーションを表示することができる。１つの実施形態では、方法２００が、図４及び図５に示すように検索結果と並べてアプリケーションを表示する。別の実施形態では、方法２００が、図６に示すように検索結果の下にハイパーリンクとしてアプリケーションを表示する。
【００３１】
図３は、本発明の１つの実施形態による、ユーザコンテキストに基づいてコンテキスト動作を生成する方法を示すフロー図である。図３の実施形態に示すように、方法３００は、まずステップ３０２において検索クエリを受け取る。図示の実施形態では、方法３００が、ＨＴＭＬ形式などの検索フォーム又はブラウザツールバーなどの他の入力機構を介してクエリを受け取ることができる。先程の例を説明すると、方法３００は、「ｂｏｓ（ボストン）発ｌａｘ（ロサンゼルス）行きの飛行機」などの平文文字列としてクエリを受け取ることができる。
【００３２】
方法３００は、検索クエリを受け取った後、ステップ３０４において、ユーザコンテキストが存在するかどうかを判定する。１つの実施形態では、ユーザコンテキストが存在するかどうかを判定するステップが、ユーザプロファイル又は同様の構造をクエリ提出ユーザに関連付けることができるかどうかを判定するステップを伴う。さらに、コンテキストが存在するかどうかを判定するステップは、所与のユーザに関連するさらなる過去のクエリが存在するかどうかを判定するステップを伴うことができる。１つの実施形態では、検索エンジンがコンテキストデータを記憶することができる。代替の実施形態では、コンテキストデータを、クッキー又は同様の機構の形でクライアント装置に記憶することができる。方法３００は、ユーザコンテキストが見つからないと判定した場合、図２に関連して説明したようにクエリに基づいて続行する。
【００３３】
一方、方法３００は、コンテキストが存在すると判定した場合、まずステップ３０６においてクエリを解析して解釈する。クエリを解析して解釈するステップは、図２に関連して説明した方法と事実上同様であり、明確にするために繰り返さない。方法３００は、クエリを解析して解釈した後、ステップ３０８において、クエリにコンテキストデータを追加する。
【００３４】
図２の例を続けると、方法３００は、最初に「ｂｏｓ（ボストン）発ｌａｘ（ロサンゼルス）行きの飛行機」というクエリに対して、「＜トークン：飛行機＞＜都市：ボストン＞＜トークン：行き＞＜都市：ロサンゼルス＞という解釈を生成することができる。方法３００は、このような解釈を生成した後、ユーザの様々な特徴及び過去のクエリなどのコンテキストデータを追加する。例えば、方法３００は、ユーザプロファイルを利用すること、又はユーザの傾向を推定することにより、ユーザが地理的にボストンに位置すること、ＡＭＥＲＩＫＡＮ  ＡＩＲＬＩＮＥＳ（アメリカン航空）のウェブサイトを訪問することが多いこと、ＴＲＡＶＥＬＯＣＩＴＹよりもＯＲＢＩＴＺの方を好むこと、頻繁にレストランのウェブページを見ること、などのユーザの個性の様々な側面をクエリに追加することができる。これらのユーザ行動の例は、ユーザプロファイル、過去のユーザデータ、又はこれらの組み合わせに基づくことができる。また、方法３００は、過去のクエリを利用して、識別された動作を適合させることができる。例えば、方法３００は、ユーザが最近「観光  ロサンゼルス」又は「ホテル  ロサンゼルス」という検索を行ったことを識別することができ、従って航空チケットに関するインスタント検索にも関わらず、観光に関する動作を選択することができる。
【００３５】
方法３００は、解釈されたユーザクエリにコンテキストを追加した後、ステップ３１０において、コンテキストを動作に対応付ける。図示の実施形態では、コンテキストと動作の対応付けを、図２に関連して説明したものと同様に行うことができる。しかしながら、方法３００は、ユーザクエリを単純に使用することに加え、ユーザのコンテキストを利用することもできる。例えば、方法３００は、ユーザがロサンゼルスでの観光を最近検索した場合、このユーザが他人の旅行を観察することではなく旅行することに関心があると推測することができるので、「航空チケットを購入する」動作のみを戻して、「飛行機の到着／出発時間をチェックする」動作を無視することができる。別の例として、方法３００は、観光に関するユーザの検索に基づいて、「車をレンタルする」動作及び／又は「目的地の都市の天気をチェックする」動作を戻すことができる。さらに別の例として、方法３００は、ユーザが観光に関心があることと、ユーザがレストランのウェブサイトを頻繁に訪問していることの組み合わせに基づいて、「目的地の都市でレストランを探す」動作を戻すことができる。
【００３６】
代替の実施形態では、方法３００が、アプリケーションを連鎖させることができ、この場合、後続のアプリケーションは、最初のアプリケーションとのユーザインタラクションに基づいて「連鎖」される。例えば、方法３００は、ユーザが最初にレストランアプリケーションとやりとりしたと判断することができ、その後、この最初のアプリケーションとのやりとりに基づいて、映画アプリケーションなどのさらなるアプリケーションを連鎖させることができる。この実施形態では、方法３００が、レストランアプリケーションと映画アプリケーションを組み合わせた「夜間外出」という目的などの認識された目的に基づいてアプリケーションを連鎖させる。１つの実施形態では、連鎖されたアプリケーションを、ユーザに非同期的に提供することができる。例えば、方法３００は、検索結果ページに（レストランアプリケーションなどの）１つのアプリケーションのみを表示することができ、ユーザがこのアプリケーションとやりとりした場合、（映画アプリケーションなどの）第２の連鎖されたアプリケーションを含むように検索結果ページを更新することができる。対照的に、ユーザがレストランアプリケーションとやりとりしなかった場合、検索結果ページはそのまま変化しない。
【００３７】
方法３００は、複数の動作を決定した後、ステップ３１２において、履歴データに基づいてアプリケーションに動作を対応付け、ステップ３１４において、この動作をランク付けする。図示の実施形態では、履歴データに基づく動作とアプリケーションの対応付けを、図２に関連して説明したものと同様に行うことができる。しかしながら、方法３００は、ユーザのコンテキスト、好み及び過去のクエリに基づいて、個々のユーザとの関連性が高いアプリケーションを戻すことができる。１つの実施形態では、方法３００が、関連するアプリケーションをアプリケーション階層に編成することができる。上記の例を続けると、方法３００は、航空チケットの購入に関する（ＯＲＢＩＴＺ、ＴＲＡＶＥＬＯＣＩＴＹ及びＥＸＰＥＤＩＡアプリケーションなどの）複数のアプリケーションを選択することができる。方法３００は、これらのアプリケーションの優先順位が最も高いことをさらに示すことができ、これらのアプリケーションを最も高い優先順位レベル内に配置するはずである。しかしながら、方法３００は、ユーザがＴＲＡＶＥＬＯＣＩＴＹよりもＯＲＢＩＴＺを使用する頻度の方が高いというコンテキスト情報を利用して、ＯＲＢＩＴＺがこの優先順位レベル内で最も優先順位の高いアプリケーションになるようにアプリケーションをランク付けすることができる。方法３００は、必要なだけ多くの優先順位レベルを決定することができる。例えば、方法３００は、ＨＥＲＴＺレンタカーアプリケーション、ＹＡＨＯＯ  ＷＥＡＴＨＥＲ（天気）アプリケーション、及びＹＥＬＰレストランアプリケーションなどの観光を含む第２の優先順位レベルをさらに作成することができる。図２に関連して説明したように、アプリケーションのランク付けは、特定タイプのクエリの入力時にアプリケーションを利用するユーザの数に基づくアプリケーションの人気などの様々な指標を利用することができる。このデータは、アプリケーション又はアプリケーションのコンテナページ内に埋め込まれた様々なユーザ指標収集装置によって収集することができる。別の実施形態では、方法３００が、過去のユーザ検索を利用して、所与の検索目標を識別することができる。例えば、方法３００は、ユーザが所与の場所における食事の提案及び映画館を検索したことを識別することができる。方法３００は、この検索パターンに基づいて、食事アプリケーションと劇場アプリケーションのバンドリングなどのように、検索履歴に合わせて関連するアプリケーションをバンドリングすることができる。
【００３８】
方法３００は、アプリケーションをランク付けした後、ステップ３１６において、所望の検索結果とともにアプリケーションを表示する。検索結果とアプリケーションの表示は、様々な形で行うことができる。１つの実施形態では、図４及び図５に示すようにアプリケーションが検索結果と並んで表示される。別の実施形態では、図６に示すように検索結果の下にハイパーリンクとしてアプリケーションを表示することができる。
【００３９】
図４は、本発明の１つの実施形態による、検索結果ページ上のコンテキストアプリケーションを示す画面図である。図４の実施形態に示すように、ユーザクエリ４０２（「ｂｏｓ（ボストン）発ｌａ（ロサンゼルス）行きの飛行機」）に応答して、検索エンジンの結果ページが表示される。検索エンジンの結果ページは、最初に検索結果４０４を表示する。検索エンジンの結果ページは、この検索結果に加え、このクエリ提出ユーザのために選択されたアプリケーション４０６を含む。具体的には、検索エンジンの結果ページは、ボストン発ロサンゼルス行きの飛行機というユーザのクエリに応答して戻されたＯＲＢＩＴＺアプリケーションを表示する。また、アプリケーション４０６は、このユーザクエリに基づいて、「Ｆｒｏｍ（発）」フィールド及び「Ｔｏ（行き）」フィールドを埋める。
【００４０】
図５は、本発明の１つの実施形態による、検索結果ページ上のコンテキストアプリケーションを示す画面図である。図５の実施形態に示すように、ユーザは、「住宅ローンの利率」という検索クエリ５０２を入力し、複数の検索結果５０４を受け取る。図５の実施形態には、ユーザプロファイルデータ又は履歴データを使用せずに選択したアプリケーション５０８、及びユーザプロファイルデータに基づいて選択したアプリケーション５０６を示している。
【００４１】
アプリケーション５０８は、主に「住宅ローンの利率」というクエリに基づいてユーザに提示される。従って、検索エンジンは、住宅ローンの利率というクエリが、全国の平均的住宅ローン利率を示すアプリケーションに関連し得ると判断する。対照的に、アプリケーション５０６は、ユーザプロファイル又は同様の機構に基づいてユーザに提示される。図示のように、アプリケーション５０６は、ユーザがその地方の住宅ローン利率を検索できるようにするアプリケーションを表す。検索エンジンは、ユーザプロファイルに基づいて、ユーザプロファイル又は同様の装置に記憶されている可能性のあるユーザ位置でアプリケーションを事前に埋める。また、検索エンジンは、ローン金額、ローンの目的及びローンのタイプも事前に埋める。１つの実施形態では、本発明が、プライバシーの考慮に基づいて、どのフィールドを事前に埋めるべきかを判断することができる。１つの実施形態では、このようなデータを、過去のユーザデータから収集することができる。例えば、検索エンジンは、ユーザが最近、「２００，０００ドル  借り換え」及び「インタレストオンリーローン  ｗｉｋｉｐｅｄｉａ」というクエリを１時間又は２時間以内に互いに入力したことを識別することができる。検索エンジンは、これらのクエリに基づいて、ユーザがインタレストオンリーの２００，０００ドルの借り換えローンに関心を持っていると判断し、アプリケーション５０６をこのコンテキストデータで事前に埋めることができる。
【００４２】
図６は、本発明の１つの実施形態による、検索結果ページ上のコンテキストアプリケーションを示す画面図である。図６に示す実施形態によれば、ユーザは、「ナパのレストラン」という検索クエリ６０２を入力し、複数の検索結果６０４を受け取る。また、ユーザは、複数のアプリケーションハイパーリンク６０６も受け取る。とりわけ、これらのアプリケーションリンクは、「ゲスト」ユーザ６０８に対して提示される。従って、これらのアプリケーションリンクは、「ナパのレストラン」というクエリの解釈に基づいて生成される。図示のように、これらの解釈は、テーブルの予約、レストランの評価、及びレストランを他者と共有することに対応する。
【００４３】
図１から図６は、本発明の説明を可能にする概念的説明図である。本発明の実施形態の様々な態様は、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせに実装できると理解されたい。このような実施形態では、本発明の機能を実施するために、様々な構成要素及び／又はステップを、ハードウェア、ファームウェア、及び／又はソフトウェアに実装することができる。すなわち、ハードウェア、ファームウェア、又はソフトウェアのモジュールの同じ部分が、（構成要素又はステップなどの）図示のブロックの１又はそれ以上を実行することができる。
【００４４】
ソフトウェア実装では、（プログラム又はその他の命令などの）コンピュータソフトウェア及び／又はデータが、コンピュータプログラム製品の一部として機械可読媒体に記憶され、取り外し可能記憶ドライブ、ハードドライブ、又は通信インターフェイスを介してコンピュータシステム又は他の装置又は機械にロードされる。（コンピュータ制御ロジック又はコンピュータ可読プログラムコードとも呼ばれる）コンピュータプログラムが、メインメモリ及び／又は二次メモリに記憶され、（コントローラなどの）１又はそれ以上のプロセッサにより実行されて、本明細書で説明した本発明の機能を１又はそれ以上のプロセッサに実行させる。本明細書では、「機械可読媒体」、「コンピュータプログラム媒体」及び「コンピュータ使用可能媒体」という用語を、一般に、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、（磁気又は光ディスク、又はフラッシュメモリ装置などの）取り外し可能記憶ユニット、ハードディスク、電気、電磁、光、音響、又は（搬送波、赤外線信号、デジタル信号などの）その他の形の伝播信号などの媒体を意味するために使用している。
【００４５】
なお、説明又は図示した要素の一部又は全てを入れ替えることにより他の実施形態が可能となるので、上記の図及び例は、本発明の範囲を単一の実施形態に限定することを意図するものではない。さらに、公知の構成要素を使用して本発明のいくつかの要素を部分的に又は完全に実現できる場合、本発明を曖昧にしないように、このような公知の構成要素の部分については本発明を理解するために必要なもののみを記載しており、これらの公知の構成要素の他の部分については詳細な説明を省いている。本明細書では、特に明示しない限り、単数の構成要素を示す実施形態を、複数の同じ構成要素を含む他の実施形態に必ずしも限定すべきではなく、逆もまた同様である。さらに、出願人は、同様に明示しない限り、明細書又は請求項におけるいずれの用語も非通常的な又は特別な意味を有さないことを意図している。さらに、本発明は、本明細書において例示目的で引用した公知の構成要素の現在知られている同等物及び将来的に知られる同等物を含む。
【００４６】
特定の実施形態についての上述の説明は、（本明細書で引用した、及び引用により本明細書に組み入れた文献の内容を含む）（単複の）関連技術の範囲内の知識を適用することにより、他者が必要以上の実験を伴わずに、本発明の一般的な概念から逸脱することなくこのような特定の実施形態を修正し、及び／又は様々な用途に容易に適応させることができるように、本発明の一般的な性質を十分に明らかにしたものである。従って、このような適応及び修正は、本明細書に示す教示及び手引きに基づいて、開示した実施形態の同等物の意味及び範囲に含まれることが意図される。
【００４７】
本発明の様々な実施形態について上述したが、これらは例示目的で提示したものであり限定的なものではないと理解されたい。（単複の）関連技術における精通者には、本発明の思想及び範囲から逸脱することなく、形式及び詳細の様々な変更を行い得ることが明らかであろう。従って、本発明は、上述の例示的な実施形態のいずれによっても限定されるべきではなく、以下の特許請求の範囲及びこれらの同等物によってのみ定義されるべきである。
【００４８】
なお本発明は、一例として、以下に記載した項目ごとに特許を請求することが可能である。
項目１．
検索エンジンの結果ページ内に目的別アプリケーションを提供する方法であって、
ユーザから検索クエリを受け取るステップと、
前記検索クエリにユーザコンテキストを表すデータを追加するステップを含む、前記検索クエリを解釈するステップと、
前記解釈したクエリに関連する１又はそれ以上の動作を選択するステップを含む、前記解釈したクエリを１又はそれ以上の動作テンプレートに対応付けるステップと、
前記解釈したクエリに関連する前記選択した１又はそれ以上の動作を複数のアプリケーションに対応付け、前記１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択するステップと、
前記１又はそれ以上のアプリケーションを検索結果ページ内に表示するステップと、
を含むことを特徴とする方法。
項目２．
前記ユーザの検索クエリを解釈するステップは、前記検索クエリのトークン化形式を生成するステップを含む、
ことを特徴とする項目１に記載の方法。
項目３．
前記ユーザコンテキストは、ユーザプロファイルに記憶されたデータを含む、
ことを特徴とする項目１に記載の方法。
項目４．
前記ユーザコンテキストは、前記ユーザの過去の検索クエリを含む、
ことを特徴とする項目１に記載の方法。
項目５．
前記１又はそれ以上のアプリケーションを検索結果ページ内に表示するステップは、前記検索クエリに基づく少なくとも１つのアプリケーション、並びに前記検索クエリ及び前記ユーザコンテキストに基づく少なくとも１つのアプリケーションを表示するステップを含む、
ことを特徴とする項目１に記載の方法。
項目６．
前記解釈したクエリに関連する前記選択した１又はそれ以上の動作を複数のアプリケーションに対応付けるステップは、アルゴリズム的に実行される、
ことを特徴とする項目１に記載の方法。
項目７．
前記１又はそれ以上の選択したアプリケーションをランク付けするステップをさらに含む、
ことを特徴とする項目１に記載の方法。
項目８．
前記１又はそれ以上の選択したアプリケーションをランク付けするステップは、ユーザのコミュニティにおける前記アプリケーションの人気に基づいて上位アプリケーションを選択するステップを含む、
ことを特徴とする項目７に記載の方法。
項目９．
前記１又はそれ以上の選択したアプリケーションをランク付けするステップは、前記アプリケーションの過去の収益に基づいて前記上位アプリケーションを選択するステップを含む、
ことを特徴とする項目７に記載の方法。
項目１０．
前記解釈したクエリに関連する前記選択した１又はそれ以上の動作を複数のアプリケーションに対応付け、前記１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択するステップは、前記検索クエリから抽出されたデータに基づいて前記アプリケーションを事前に埋めるステップをさらに含む、
ことを特徴とする項目１に記載の方法。
項目１１．
検索エンジンの結果ページ内に目的別アプリケーションを提供するためのシステムであって、
ネットワークを介して検索エンジンに結合された、前記検索エンジンに検索クエリを送信する複数のクライアント装置と、
前記検索クエリを解釈し、該検索クエリにユーザコンテキストを表すデータを追加するクエリインタプリタと、
前記解釈したクエリを１又はそれ以上の動作テンプレートに対応付ける動作推論モジュールと、
を備え、前記解釈したクエリを１又はそれ以上の動作テンプレートに対応付けるステップは、前記解釈したクエリに関連する１又はそれ以上の動作を選択するステップを含み、
前記解釈したクエリに関連する前記選択した１又はそれ以上の動作を複数のアプリケーションに対応付けるとともに、アプリケーションデータベースに記憶された、前記１又はそれ以上の動作に関連する１又はそれ以上のアプリケーションを選択するアプリケーションスコアラと、
前記１又はそれ以上のアプリケーションを検索結果ページ内に表示するフロントエンドサーバと、
をさらに備えることを特徴とするシステム。
項目１２．
前記クエリインタプリタは、前記検索クエリのトークン化形式をさらに生成する、
ことを特徴とする項目１１に記載のシステム。
項目１３．
前記ユーザコンテキストは、ユーザプロファイルに記憶されたデータを含む、
ことを特徴とする項目１１に記載のシステム。
項目１４．
前記ユーザコンテキストは、前記ユーザの過去の検索クエリを含む、
ことを特徴とする項目１１に記載のシステム。
項目１５．
前記フロントエンドサーバは、前記検索クエリに基づく少なくとも１つのアプリケーション、並びに前記検索クエリ及び前記ユーザコンテキストに基づく少なくとも１つのアプリケーションをさらに表示する、
ことを特徴とする項目１１に記載のシステム。
項目１６．
前記解釈したクエリに関連する前記選択した１又はそれ以上の動作を複数のアプリケーションに対応付けるステップは、アルゴリズム的に実行される、
ことを特徴とする項目１１に記載のシステム。
項目１７．
前記アプリケーションスコアラは、前記１又はそれ以上の選択したアプリケーションをさらにランク付けする、
ことを特徴とする項目１１に記載のシステム。
項目１８．
前記１又はそれ以上の選択したアプリケーションをランク付けするステップは、ユーザのコミュニティにおける前記アプリケーションの人気に基づいて上位アプリケーションを選択するステップを含む、
ことを特徴とする項目１１に記載のシステム。
項目１９．
前記１又はそれ以上の選択したアプリケーションをランク付けするステップは、前記アプリケーションの過去の収益に基づいて前記上位アプリケーションを選択するステップを含む、
ことを特徴とする項目１８に記載のシステム。
項目２０．
前記検索クエリから抽出されたデータに基づいて前記アプリケーションを事前に埋めるアプリケーションパラメータ化モジュールをさらに備える、
ことを特徴とする項目１１に記載のシステム。
【図１】
0006054465.tif 000002
【図２】
0006054465.tif 000003
【図３】
0006054465.tif 000004
【図４】
0006054465.tif 000005
【図５】
0006054465.tif 000006
【図６】
0006054465.tif 000007