(58)【調査した分野】(Int.Cl.,DB名)
前記生のコンテンツを表示することは、前記推奨クエリ語リストにおいて前記推奨クエリ語の代わりに前記生のコンテンツを表示することを含む、請求項2に記載のシステム。
前記生のコンテンツを表示することは、前記推奨クエリ語リストにおいて前記推奨クエリ語に隣接して前記生のコンテンツを表示することを含む、請求項2に記載のシステム。
前記推奨クエリ語が注目点(POI)を識別したとき、前記生のコンテンツは、前記POIとクライアントデバイスの最新ロケーションとの間の距離を含む、請求項1に記載のシステム。
【発明を実施するための形態】
【0015】
同じ参照番号は、全体を通じて対応する構成要素を表す。
【0016】
図1は、情報検索システム100におけるリアルタイムフィードバックを提供する例示的な枠組みの概念図である。より詳細には、図は情報検索システム100を構成するクライアントデバイス102(たとえば、セルラー電話、PDA、またはパーソナルコンピュータ)および検索エンジン104を示しており、さらに、クライアントデバイス102と検索エンジン104との間のデータのフロー106と、(それぞれ時間系列状態「A」〜「F」におけるユーザインターフェース108a〜108fと標示された)様々な状態にあるクライアントデバイス102のユーザインターフェース108の両方を示している。電子デバイスの計算能力および記憶容量が増加しており、アプリケーション、デバイスおよびシステム(クライアントデバイス102および検索エンジン104など)の開発者にとって、たとえば後述するリアルタイムフィードバックを提供することによって、より豊かで、より敏感で、より満足でき没頭できる検索体験をユーザに提供するためにこれらの改良を活用する機会が生じている。
【0017】
クライアントデバイス102のユーザは、ユーザインターフェース108の検索ボックス110にクエリ語の一部または1つもしくは複数の完全なクエリ語を入力することによって、公衆ネットワークまたはプライベートネットワークに保存されている情報の検索を開始することができる。クライアントデバイス102はまた、クエリ語を明示的に入力することなく、検索ダイアログを呼び出す制御を選択することによって、情報の検索を開始することができ、この場合、入力済みクエリ語はヌル値として扱われる。簡潔にするために、本明細書はクエリ語の一部分、または完全なクエリ語(それ自体は単一の文字、または1つもしくは複数の部分的もしくは完全な単語、句、一連の文字もしくは表現を含む)を、「ユーザ入力済みクエリ語」または単に「入力済みクエリ語」と呼ぶ。
【0018】
一般に、クライアントデバイス102および検索エンジン104は、クエリおよび応答の手法を使用して対話し、クライアントデバイス102は、(入力済みクエリ語のような)1つまたは複数のクエリ語を含む検索クエリ要求を検索エンジン104に送信し、検索エンジン104は、クエリ語を使用して検索クエリを実行し、1組の検索結果を識別する情報で応答する。この情報は、検索エンジン結果ページを表示するためにクライアントデバイス102が処理するハイパーテキストマークアップ言語(HTML)ドキュメントとしてフォーマットされうる。入力済みクエリ語を使用して、検索エンジン104は、公衆ネットワーク(たとえば、インターネット)またはプライベートネットワーク(たとえば、イントラネットサーバ)に保存されている情報の検索クエリを実行することができる。
【0019】
検索要求を検索エンジン104に送信することに加えて、クライアントデバイス102は、入力済みクエリ語を使用して、連絡先データベース、ローカルファイル、キャッシュ済みデータ、履歴データ、ユーザプロファイル情報、構成設定、もしくは他のデータなど、クライアントデバイス102にローカル保存されている情報を検索すること、またはクエリを受信する能力を有するクライアントデバイス102にインストールされているアプリケーションにクエリを出すこともできる。クライアントデバイス102が検索エンジン104と通信して検索クエリの結果を取得するのと同様に、こうしたアプリケーションは、検索エンジンの代わりに他のサーバと通信して結果を取得することができる。クライアントデバイス102はまた、ローカル保存されている情報の全部もしくは一部、またはローカル保存されている情報のインデックスを検索エンジン104に周期的に送信することができ、それによりこの情報を、要求された検索クエリの実行中に検索エンジン104によって検索すること、および検索クエリの結果で戻すことができる。
【0020】
図1の状態「A」は、ユーザがユーザインターフェース108aの検索ボックス110を選択することによって、検索クエリを要求していることを示している。いくつかの実施形態では、検索クエリを要求する意向は、ユーザがユーザインターフェース108の「検索」ボタンを選択したとき、またはユーザが検索ボックス110(たとえば、Googleデスクトップ検索もしくはツールバー、またはウェブブラウザの検索ボックス)をクリック、利用(tap)、もしくはその他の方法で選択したときに生じる。あるいは、検索ボックス110に入力されたクエリ語に対してプレフィックス検索が実行される場合、検索クエリを要求する意向は、ユーザがクエリ語の1つまたは複数の文字を検索ボックス110に入力し始めたときに生じる。
【0021】
図示の例では、単一の文字「w」が検索ボックス110にクエリ語として入力されている。検索ボックス110に入力されたクエリ語に対してプレフィックス検索が実行される場合、単一の文字「w」は、より長いクエリ語の最初の文字として入力されていることもある。あるいは、ユーザは単一の文字「w」を検索ボックスに入力し、ユーザインターフェース108の「検索」ボタンを選択している場合がある。さらに代替的なケースでは、ユーザは音声インターフェースに「ダブルユー」と話し、次いで検索クエリを要求するために音声コマンドを話している場合がある。いずれの場合でも、クライアントデバイス102は、入力済みクエリ語「w」を含むデータ113を検索エンジン104にネットワーク経由で送信し、検索ボックス110を含むユーザインターフェース108aが表示される。
【0022】
クライアントデバイス102および検索エンジン104は、単独で、または互いに組み合わせて、ユーザ入力済みクエリ語を使用して推奨クエリ語を生成するために使用されうる。クライアントデバイス102または検索エンジン104は、ユーザが完全なクエリ語または句を検索ボックス110に入力した後に、推奨クエリ語をそれぞれ生成することができ、ユーザが検索ダイアログを呼び出した後、ただし文字を入力する前に推奨クエリ語を生成することができ、またはプレフィックス検索の場合、クエリ語または句のプレフィックスを構成する文字をユーザが入力したときに推奨クエリ語を生成することができる。こうした推奨クエリ語は、過去に当該ユーザまたは他のユーザに対し既に推奨され、当該ユーザまたは他のユーザによって選択された語を含むことができる。
【0023】
検索クエリを実行することに加えて、検索エンジン104はクエリ修正モジュールまたはアプリケーションを含み、これは1つまたは複数のクエリ修正戦略を用い、ユーザ入力済みクエリ語を処理して1つまたは複数の推奨クエリ語を生成する。一例では、推奨クエリ語は、ユーザがいくつかの文字を入力した後に、ユーザが入力しようとしていた可能性があると検索エンジン104が判断する語でありうる。たとえば、ユーザが小さなキーボードを使用している場合、検索エンジン104は、ユーザが選択できるよう複数のクエリ語を推奨することによって、ユーザが長いクエリ語または複数のクエリ語を入力する手間を省くことができる。
【0024】
推奨クエリ語はまた、検索エンジン104の他の過去のユーザによって検索クエリを実行するために使用されたときに、検索エンジン104にとって、入力済みクエリ語を使用して生成された検索結果と比較して、そうしたユーザをより満足させるように見えた検索結果を生成した語を含むことができる。状態「B」では、文字「w」のみが検索ボックス110に入力されており、検索エンジン104によって生成される推奨クエリ語は、「weather(気象)」、「Walgreens(ウォルグリーン)」および「Walmart(ウォルマート)」、「walrus(セイウチ)」または他の語を含むことができる。
【0025】
検索エンジン104がプレフィックス検索(または「インクリメンタル検索」)を実施している場合、推奨クエリ語は、ユーザによって入力されている文字と合致する語である。ユーザはプレフィックス検索において、入力される文字が増えるにつれて、また推奨クエリ語の精度が徐々に高まるにつれて、推奨クエリ語の関連性または正確性が高まることに気づく。検索エンジン104は、たとえばユーザインターフェース108bの検索ボックス110の下のドロップダウンリスト116に、ユーザがクエリ語を入力したときに推奨クエリ語を生成して提供することができる。
【0026】
異なるクエリ修正戦略の一例では、検索エンジン104自体が、(たとえば、検索エンジン104によってクエリ結果「Elevation:8,848 meters (29,029 FT)(海抜:8,848メートル(29,029フィート))」を生成するために、クエリ語「what is the height of mount Everest(エベレスト山の高さはどれだけか)」を使用することによって)一定の特別な種類のクエリを直接尋ねるように構成されている場合、検索エンジン104は、入力済みクエリ語を、こうした種類の特別なクエリに対応する所要のスタイル、条件またはフォーマットに合わせた推奨クエリ語を生成して提供することができる。たとえば、検索エンジン104を始動させてユーザの意図する質問内容を直接尋ねる際に質問を表す語「what is(どれだけか)」が必要な場合に、ユーザがクエリ語「height of Mount Everest(エベレスト山の高さ)」のみ入力したときに、検索エンジン104はクエリ語「What is the height of Mount Everest(エベレスト山の高さはどれだけか)」を推奨することができる。別の例では、検索エンジン104を始動させて入力済みクエリ語についての辞書の定義を示すにあたり「define:(定義:)」というフォーマットが必要な場合、ユーザがクエリ語「what does lycanthrope mean(オオカミつきとはどういう意味か)」、「lycanthrope definition(オオカミつきの定義)」または「what is a werewolf(オオカミ人間とは何か)」を入力したときに、検索エンジン104はクエリ語「define:lycanthrope(定義:オオカミつき)」を推奨することができる。
【0027】
別の例では、あるロケーションの最新の気象についてのクエリを直接尋ねるにあたり、検索エンジン104がクエリ語「weather(気象)」およびロケーション名をこの順番で入力することを求めている場合、ユーザがクエリ語「snow nyc(雪 nyc)」、「weather home(気象 自宅)」、「new York weather(ニューヨーク 気象)」、「statue of liberty fog(自由の女神像 霧)」、「weather 10030(気象 10030)」などを入力したとき、検索エンジン104はクエリ語「weather New York(気象 ニューヨーク)」を推奨することができる。「snow nyc」の場合、検索エンジン104は、入力済みの部分的なクエリ語「snow」の拡大版として推奨クエリ語「weather」を生成することができ、入力済みの部分的なクエリ語「nyc」はニューヨークという都市を指す周知の口語的または俗語的な略語または方法であることを示す表にアクセスすることによって、推奨クエリ語「New York」を生成することができる。
【0028】
別のクエリ修正戦略の類似の例では、検索エンジンはクエリ語「wheather new york」に対してスペルチェックを実行することができ、代わりに推奨クエリ語「weather New York」を生成して提供することができる。さらに別の例では、検索エンジン104は、ユーザ入力済みクエリ語「lycanthrope film(オオカミつきの映画)」に基づいて、類義語の推奨クエリ語「werewolf movie(オオカミ人間の映画)」を生成することができる。
【0029】
検索エンジン104は、ユーザ入力済みクエリ語を、ユーザによって過去の検索エンジンクエリで使用されたクエリ語、他のユーザの過去の検索エンジンクエリ、クライアントデバイス102もしくは検索エンジン104でインデックス化されたデータ、ユーザ選好情報、または他のデータと比較することによって、推奨クエリ語を生成することができる。状態「B」では、たとえば、検索エンジン104は、ユーザ入力済みクエリ語「w」に基づいて推奨クエリ語「weather」、「Walgreens」、「Walmart」、および「walrus」を生成し、それらの推奨クエリ語を識別するデータ114をクライアントデバイス102に返信している。検索エンジン104によって識別された特定の推奨クエリ語は、任意の数のクエリ修正戦略を使用して生成されている可能性がある。
【0030】
検索エンジン104は、ユーザの過去の活動または検索エンジン104の他のユーザの活動に基づいて推奨クエリ語を生成することができる。検索エンジン104は、たとえばユーザプロファイルまたはブラウザクッキーに基づいてユーザを認識することができ、当該情報を使用して入力済みクエリ語を、当該ユーザまたは他のユーザが過去に頻繁に入力し、選択し、または関連性を見出しているか満足しているクエリ語または検索結果と照合することができる。図示の例では、検索エンジン104は、推奨クエリ語「weather」、「Walmart」、「Walgreens」または「walrus」を、過去に他のユーザがこれらのクエリ語を使用して取得した検索結果の関連性または推定される満足度に基づいて生成することができる。
【0031】
検索エンジン104から推奨クエリ語を取得することに加えて、またはその代わりに、クライアントデバイス102自体も、ローカル情報(たとえば、最近実行されたローカルアプリケーションもしくは最近使用されたクエリ語のインデックス、連絡先のデータベース、またはクライアントデバイス102で検索される能力を記録しているクライアントデバイス上のアプリケーション)を検索することによって推奨クエリ語を生成することができる。たとえば、ユーザは、1つまたは複数のお気に入りのロケーション、ブックマークされたかお気に入りのウェブページ、連絡先またはPOI(たとえば、図書館、レストラン、以前訪問した、「お気に入りの」またはタグ付きのロケーション)に関する情報を内蔵ハードドライブ、フラッシュメモリ、または他の記憶デバイスに保存することができる。別の例では、ユーザの過去の検索またはブラウジング履歴に関する情報も、クライアントデバイス102に保存して、推奨クエリ語を生成するために使用することができる。検索を要求する意向が生じているが、ユーザがクエリ語を入力していない場合、クライアントデバイス104はこのローカル情報を使用して、クライアントデバイス104で直近にアクセスされたアイテムを識別するクエリ語、クライアントデバイス104で頻度が最も高い入力済みクエリ語、または以前に推奨されたクエリ語を推奨することができる。
【0032】
図示の例では、クライアントデバイス102は、状態「B」では、クエリ語「w」を使用して、連絡先のローカルデータベース内のローカル連絡先「Wally Anderson」を識別し、推奨クエリ語としてその連絡先の名前を推奨することができる。同様に、クライアントデバイスはクエリ語「w」を使用して、最近実行されたか最近インストールされたアプリケーション「Wacky Solitaire」を識別し、推奨クエリ語としてそのアプリケーションの名前を推奨することができる。あるいは、「Wacky Solitaire」は、それ自体が検索可能なものとして記録しているクライアントデバイス102で作動しているアプリケーションによってクエリ語として推奨されている可能性がある。クライアント102とサーバ104との間の図示の通信に加えて、そのようなアプリケーションは、利用可能なソフトウェアのダウンロードに関して別個のサーバにクエリを出す際にクエリ語「W」を使用している可能性があり、この別個のサーバから推奨語「Wacky Solitaire」を受信している可能性がある。
【0033】
ユーザが過去にクエリ語「weather New York」を入力し、検索クエリを要求したときに、クエリ語「weather New York」はユーザの検索履歴に保存され、語「New York」はユーザ選好情報または設定に保存されている可能性がある。このローカルな情報を使用して、クライアントデバイス102は、クエリ語「w」が検索ボックス110に入力されたときにユーザが同じ検索クエリを繰り返そうとしているかもしれないと判断し、「weather New York」という推奨クエリ語111を生成して提供することができる。同様のプロセスを使用して、推奨クエリ語「Weather 92067」を生成することができる。ローカル保存された情報を使用することによって、ユーザとクライアントデバイス102との間の以前の対話に依拠することで、ネットワーク送信遅延なしに迅速に推奨クエリ語を生成してユーザに提供することができる。生のコンテンツの取得中に、かつては生のコンテンツと見なされたこれらの以前に選択されたクエリ語に関連するコンテンツにキャッシュからアクセスして、かかるコンテンツをこれらの語とともに表示することができる。
【0034】
クライアントデバイス102は、検索エンジン104によって生成され、検索エンジン104から受信した推奨クエリ語を使用してローカル情報(たとえば、ユーザ選好、または最近使用されたクエリ語)を検索することによって、他の推奨クエリ語をさらに生成することができる。たとえば、クライアントデバイス102は、ユーザの自宅住所(たとえば、郵便番号92067)などの構成情報または設定を保存しうる。クエリ語「weather」が検索エンジン104によって推奨されているとき、このクエリ語をユーザの自宅住所データと組み合わせて、推奨クエリ語「weather 92067」を形成することができる。別の例では、ユーザは、ユーザが関心を持っている株式表示記号のリストを保存しうる。クライアントデバイス102または検索エンジン104はこの情報を使用して、推奨クエリ語を生成することができ、次いでこの推奨クエリ語を使用して、そうした会社の最新株価に関するクエリを出すことや、かかる株価をユーザに提示することができる。
【0035】
さらなる例では、単一の入力文字「w」は、クライアントデバイス102にとって、ローカル気象情報を取得するためのクエリ語を推奨するのに十分ではないかもしれないが、検索エンジン104がクエリ語「weather」を最初に推奨したときに、クライアントデバイス102はクエリ語「weather New York」または「weather 92067」を推奨することができる。上述の技法に加えて、ユーザが過去に実行した以前の「weather」クエリに基づいて、またはユーザが「New York」もしくは郵便番号「92067」に対応するロケーションに関心を持っているかもしれないことを示すクライアントデバイス102に保存されているローカル情報(たとえば、ユーザ選好情報または最新ロケーション情報)に基づいて、ロケーション「New York」および「92067」を識別することができる。
【0036】
クライアントデバイス102によって推奨されるクエリ語のセットおよび/または検索エンジン104によって推奨されるクエリ語のセットが、ユーザインターフェース108bに示されているように、クライアントデバイス102によって表示される。推奨クエリ語の異なるセットを表示前にマージすること、または別個に表示することができる。ユーザインターフェース108bに示されているように、クライアントデバイス102は、クライアントデバイス102および検索エンジン104によって生成された推奨クエリ語を結合しており、検索ボックス110の下のドロップダウンリスト116に結合された推奨クエリ語リストを表示している。クエリ語のセットを結合することは、重複する推奨クエリ語を削除すること、または特定のクエリ語を他のクエリ語との比較で優先させることもしくは評価することを含みうる。
【0037】
すべての推奨クエリ語について生のコンテンツを取得することや、生のコンテンツを取得しようと試みることが必要なわけではないが、いくつかの実装形態では、試みは、推奨クエリ語のすべてについて生のクエリを作成することによって行われる。状態「C」に示されているように、推奨クエリ語がクライアントデバイス102によって取得されているとき、生のコンテンツに関連しうる推奨クエリ語のサブセットを選択することができ、このサブセットは、クライアントデバイス102および/または検索エンジン104によって生成された推奨クエリ語の全部または全部よりも少ない部分を含む。推奨クエリ語と生のコンテンツとの関連性は、検索エンジン104によってもしくは検索エンジン104で、かつ/またはクライアントデバイス102のユーザによって記録されうる。
【0038】
サブセットについて推奨クエリ語を選択する一例では、語「weather」およびロケーション名または識別子を含むクエリ語(すなわち、「weather New York」および「weather 92067」)が、生のコンテンツとして最新気象情報を取得するために選択されうる。人物の名前(すなわち「Wally Anderson」)を含むクエリ語が、生のコンテンツとして当該人物に関する最新の状態またはロケーションの情報を取得するために選択されうる。たとえば、推奨クエリ語「Wally Anderson」を、ローカルデータベース内の連絡先としてクライアントデバイス102が認識することができ、サブセットの一部として選択することができる。
【0039】
さらに、会社の名前(すなわち、「Walgreens」および「Walmart」)を含むクエリ語が、生のコンテンツとして最新レビュー情報または最新株価情報を取得するために選択されうる。たとえば、検索エンジン104は、株式公開企業のデータベースから推奨クエリ語「Walmart」を認識し、サブセットの一部として当該推奨クエリ語を選択することができる。代替的な一手法では、計算コストを最小限にするため、生のコンテンツとの明確な関連性がない他の推奨クエリ語(すなわち、「Wacky Solitaire」、「walrus」および単一の単語「weather」)について生のコンテンツを取得しようとさらに努力することはしない。あるいは、「デフォルト」処理が生じて、これらの推奨クエリ語について生のコンテンツを取得することが可能であり、たとえばその手段として、これらの推奨クエリ語を使用して最新情報を得るべくウィキペディアまたは百科事典に生のクエリを出す。さらなる代替的なケースでは、特定のクエリ語について生のコンテンツが取得されない場合、キャッシュ済みコンテンツをキャッシュから取得して、これらの推奨クエリ語とともに表示することができる。
【0040】
推奨クエリ語のサブセットは、第三者のサーバまたはサービスのような検索エンジン104の外部から取得された動的情報に基づいて少なくとも部分的に選択されうる。たとえば、ユーザはオンライン連絡先管理サービス(たとえば、Gmail連絡先)またはソーシャルネットワーキングサイト(たとえば、Facebook、Linkedln、MySpace)にリンクされうる。次いで、推奨クエリ語(すなわち、「Wally Anderson」)が連絡先であるか、友人であるか、友人の友人であるか、あるいは別の形でユーザとの結び付きがある人物であるかを判断するために、これらのサイトおよびサービスにクエリを出すことができる。このクエリの結果を使用して、推奨クエリ語のセットまたはサブセットの一部として当該推奨クエリ語を選択すべきか否かを判断することができる。
【0041】
第三者のサーバまたはサービスを使用してサブセットを選択する別の例では、ユーザは、Google Finance、Bloomberg.com、Quicken.com、またはユーザが銀行、貯金、クレジットもしくは投資に関する情報を設定できるその他のサイトなどの金融情報または管理サービスと結び付いていることがある。クライアントデバイス102または検索エンジン104は、推奨クエリ語を、金融情報または管理サービスにおけるユーザのアカウントに関連する情報と比較して、サブセットの一部としてこれらの推奨クエリ語の一部を選択することができる。たとえば、第三者の金融情報または管理サービスに保存されている情報は、ユーザが「MasterCard(マスターカード)」にアカウントを持っており、「Masco Corp.(マスココーポレーション)」(たとえば、表示名「MAS」)の株式を所有していることを示す場合がある。ユーザがクエリ語「mas」を検索ボックスに入力したとき、検索エンジン104は、クエリ語「MasterCard」、「Masco Corp.」および「Massey Ferguson(マッセイファーガソン)」を推奨しうるが、第三者の金融情報または管理サービスに保存されている情報は、ユーザと「Massey Ferguson」とのつながりを反映していないので、サブセットの一部として「MasterCard」および「Masco Corp」のみを選択することができる。
【0042】
推奨クエリ語のサブセットについての生のコンテンツが、サブセット内の選択されたクエリ語を識別するデータを検索エンジン104に提供することによって取得される。生のコンテンツは、推奨クエリ語が検索エンジンによって生成された時点またはその直後に取得される情報である。生のコンテンツは、推奨クエリ語に関連する情報でありうる。生のコンテンツは、推奨クエリ語が生成されたとき、またはその直後に(たとえば、推奨クエリ語の生成から1秒または30秒以内に)、価値が検索エンジンによって事前にインデックス化されていないか、保存されていないデータでありうる。そうではなく生のコンテンツは、ユーザがクエリ語を入力した後に、第三者のコンテンツプロバイダから得られたか、検索エンジンで機動的に更新された情報を含みうる。
【0043】
生のコンテンツを取得するにあたり、デバイスまたはシステムは、推奨クエリ語を生成することに応じて、またはそれと同時に、生のクエリまたは機動的な更新を実行する必要がある。したがってこれは、検索エンジンによる前回の訪問またはクロールの時点で最新であったキャッシュ済みコンテンツのようなコンテンツとは異なるが、ユーザ入力済みクエリ語が受信され、推奨クエリ語が生成された後に当該訪問またはクロールが生じた場合はこの限りでない。たとえば、検索エンジン104は周期的に気象コンテンツプロバイダを訪問し、「直近の」気象情報として特定のロケーションの気象情報を保存することがある。気象情報およびこの特定のロケーションに関係する推奨クエリ語が生成されるとき、保存されている「直近の」気象情報は、推奨クエリ語が生成される前に取得されている場合には生の情報とは見なされない。
【0044】
検索エンジン104自体が推奨クエリ語のサブセットを選択する場合、そうしたクエリ語について生のコンテンツを取得するプロセスは、クライアントデバイス102との間でサブセットを識別するデータを交換することなしにただちに開始しうる。クライアントデバイス102が推奨クエリ語のサブセットの全部または一部を選択したとき、サブセットを識別する情報がクライアントデバイス102から検索エンジン104に送信されて、生のコンテンツを取得するプロセスが開始する。
【0045】
例示的な一実装形態では、推奨クエリ語の全部について生のコンテンツを取得する試みがなされる場合、クライアントデバイス102または検索エンジン104によって推奨クエリ語のサブセットを選択または識別する必要はない。しかしながら、
図1に示す例示的な枠組みは、推奨クエリ語のサブセットがクライアントデバイス102によって少なくとも部分的に選択されることを想定している。この想定の下では、状態「C」に示されているように、推奨クエリ語のサブセット内のクエリ語を識別するデータ118がクライアントデバイス102から検索エンジン104に送信されて、生のクエリを実行して生のコンテンツを取得する。データ118は、たとえば関連する生のコンテンツを取得するのに役立つかもしれないクライアントデバイス102の最新ロケーションまたはクライアントデバイス102のユーザを識別する情報などの他の情報も含むことができる。
【0046】
特定の選択済みクエリ語について生成された生のコンテンツは、クライアントデバイス102のユーザの最新の状況または状態に関係しうる。たとえばユーザの検索履歴または設定によってその他のロケーション情報が推奨されていない場合、クライアントデバイス102の最新ロケーションを使用して生のコンテンツを取得することができ、たとえばそのために、推奨クエリ語「weather」を使用して最新ロケーションにおける最新の気象を判断すること、または推奨語「Walgreens」を使用して最寄りの「Walgreens」ストアまでの最新距離を判断することができる。したがって、サブセットの特定の推奨クエリ語を識別することに加えて、ローカルデバイスはさらに、リアルタイムデータを生成し、このリアルタイムデータをサーバ104に送信して生のクエリで使用して、生のコンテンツを取得することができる。図示の例では、たとえばクライアントデバイスは、その最新ロケーション(「45.116816 lat., 93.433085 lon.(緯度45.116816度、経度93.433085度)」)をセルラータワーもしくはWi-Fi三角測量から、内蔵GPS受信機から、またはユーザ入力から判断することができ、この情報を検索エンジン104に送信されるデータ118に含めることができる。
【0047】
推奨クエリ語がユーザインターフェース108bのドロップダウンリスト116において生成され提供されているとき、サブセットを識別し、サブセットの推奨クエリ語の識別情報をクライアントデバイス102と検索エンジン104との間で通信し、検索エンジン104によって生のクエリを実行して生のコンテンツを取得し、クライアントデバイス102に生のコンテンツを提供して表示するのに追加の時間を要することがある。生のコンテンツを取得する試みがなされていること、および生のコンテンツを短時間だけユーザインターフェース108に提供できることを示すインジケータとして、キャッシュ済みコンテンツおよび/または動的な螺旋矢印120がサブセットの推奨クエリ語に隣接して表示されうる。
【0048】
螺旋矢印120はクライアントデバイス102のユーザに対し、生のコンテンツは取得中であり、間もなく提供されることを示すことができ、そのため、ユーザは生のコンテンツを目にするまで待つか、生のコンテンツを待つ代わりに推奨クエリ語へのリンクを選択するか(すなわち、ユーザは表示される種類の生のコンテンツを知っており、そのようなコンテンツに関心がない)を決めることができる。生のコンテンツが表示されたとき、または(たとえば、所定の時間の経過後、もしくは生のコンテンツについてヌル値が受信された後)特定の推奨クエリ語について生のコンテンツが取得されないとクライアントデバイス102もしくは検索エンジン104が判断したとき、螺旋矢印120は除去される。
【0049】
この図示の例で使用される視覚的キューは動的な螺旋矢印であるが、他の例では、この視覚的キューは静的であることがあり、砂時計や他の進行インジケータであることもある。加えて、生のコンテンツの取得の進行状況は、推奨クエリ語のサブセットを識別するために使用される文字または図形の大きさ、フォント、色、背景またはその他の特性の変化によって視覚的に合図されうる。たとえば、サブセットの要素クエリ語(member query terms)をイタリック体または太字にして、生のクエリを実行するために検索エンジン104にそれらが送信118されているか、その予定であることを示すことができる。他の例では、視覚的キューは示されない。
【0050】
推奨クエリ語は、ユーザが以前のクエリの最中に選択済みの語、および以前取得され、クライアントデバイス102またはサーバ104に現在キャッシュされている生のコンテンツを有する可能性のある語を含むことができる。ユーザが推奨クエリ語「Walmart」を以前選択している場合、その時点でWalmart株の株価が1株33ドルであったことを示す生のコンテンツが取得された可能性がある。今回、ユーザ入力済みクエリ語「w」に応答して、検索エンジン104が推奨クエリ語「Walmart」を再び生成するとき、そのコンテンツはもはや生のコンテンツではあるとは見なされず、キャッシュ済みコンテンツであると見なされる。生のコンテンツの取得中に、キャッシュ済みコンテンツが他の視覚的キューの代わりにまたは当該キューに加えて、推奨クエリ語に隣接して表示されうる。たとえば状態「B」では、最新データの取得中にユーザに対し即座にデータを示すために、推奨クエリ語「Walmart」の隣にキャッシュ済みコンテンツ117(「$33/shr(1株33ドル)」)が表示される。キャッシュ済みコンテンツ117は、生のコンテンツとは異なる外観を有するようにフォーマット可能であり、たとえばその手段として、異なるフォントまたは色を使用し、その結果、ユーザはこのコンテンツを生のコンテンツと混同しなくなる。
【0051】
状態「D」では、検索エンジン104は、生のコンテンツを取得するために実行する生のクエリの種類、生のクエリのターゲット、および生のクエリを作成するのに使用するクエリ語を決定するために推奨クエリ語自体を使用して、サブセットの推奨クエリ語のうちの1つまたは複数について生のコンテンツを取得する。本明細書で使用する「生のクエリ」は、推奨クエリ語が生成された後に生じる生のコンテンツを取得するためのクエリである。
【0052】
生のクエリの種類に関するいくつかの例では、推奨クエリ語が、語「weather」およびロケーション(すなわち、「weather New York」および「weather 92067」)を含む場合、検索エンジン104は、ロケーションをクエリ語として使用して、気象サービスによって実行される生のクエリを作成して、当該ロケーションにおける最新気象予報を取得することができる。推奨クエリ語が人物の名前(すなわち、「Wally Anderson」)を含む場合、検索エンジン104は、その名前をクエリ語として使用して、ソーシャルネットワークプロバイダによって実行される生のクエリを作成して、当該人物の最新状態(たとえば、Facebookの状態、直近のツイート、またはチャットの利用)またはロケーションを取得することができる。クエリ語が会社の名前(すなわち、「Walgreens」および「Walmart」)を含む場合、検索エンジン104は、その会社名をクエリ語として使用して、会社情報サービスによって実行される生のクエリを作成して、最新レビュー情報または最新株価情報を取得することができる。
【0053】
生のクエリの種類に関する他の例では、推奨クエリ語がテレビのショー、歌、映画、または他のメディアコンテンツの名前、タイトルまたは他の識別子を含む場合、検索エンジン104は、名前またはタイトルをクエリ語として使用して、スケジュールサーバ(たとえば、tvguide.com)によって実行される生のクエリを作成して、その名前に対応しうる現地のショーの時間を取得することができる。推奨クエリ語がスポーツチームまたはスポーツ選手の名前を含む場合、検索エンジン104は、その名前をクエリ語として使用して、スポーツニュースサービス(たとえば、espn.com, nfl.com)が実行する生のクエリを作成して、かかるチームまたは選手に関連する直近のスコアまたは統計を取得することができる。推奨クエリ語が、ユーザが取引している銀行またはアカウント提供者の名前を含む場合、検索エンジン104は、ユーザのアカウント情報を使用して、当該銀行のまたは当該アカウント提供者のサーバが実行する生のクエリを作成して、ユーザの最新アカウント残高を取得することができる。
【0054】
ユーザはまた、生のコンテンツを取得するために実行する生のクエリの種類、クエリのターゲット、クエリを作成するために使用するクエリ語を指定することによって、特定の種類の推奨クエリ語について特定の種類の生のコンテンツが取得されることを示すことができる。たとえばユーザは、生のクエリのターゲット(たとえば、gaspricewatch.com)、生のクエリを作成するためのクエリ語(たとえば、「lowest price(最低価格)」および最新ロケーションの郵便番号)および生のコンテンツとして提示される情報の種類(たとえば、最低現地価格測定基準)を指定することによって、ユーザの最新ロケーションの近くにおける現地の燃料価格を取得するためにクエリ語「gas(ガス)」または「fuel(燃料)」を使用することを、クライアントデバイス102または検索エンジン104に保存されるユーザ選好において定めることができる。
【0055】
図1に示す例では、推奨クエリ語「weather New York」および「weather 92067」を検索エンジン104が使用して、クエリ語「New York」および「92067」を使用して気象サービスに生のクエリを出し、それらの推奨クエリ語が生成された時点(またはその直後)のそれぞれニューヨークおよび郵便番号92067における最新の気象を表す生のコンテンツ「55°, partly cloudy(華氏55度、ところにより曇り)」および「76°, sunny(華氏76度、晴れ)」を取得する。推奨クエリ語「Walgreens」および「Walmart」を検索エンジン104が使用して、クエリ語として会社名「Walgreens」および「Walmart」を使用して会社情報サービスに生のクエリを出し、それらの推奨クエリ語が生成された時点(またはその直後)の最新株価情報を取得する。「Walgreens」の場合、株価情報が入手できておらず、会社情報サービスは最新株価「<none>(<なし>)」を返信している。「Walmart」の場合、会社情報サービスは、最新株価「$38 per share(1株38ドル)」を返信している。推奨クエリ語「Wally Anderson」を検索エンジン104が使用して、ソーシャルネットワークにクエリを出しており、ソーシャルネットワークは検索エンジン104に対し、推奨クエリ語が生成された時点(またはその直後)の「Wally Anderson」の状態が「away(外出中)」であることを示す応答を返信している。
【0056】
最後に、
図1は、推奨クエリ語を使用して生のコンテンツを取得する目的で生のクエリを作成するために検索エンジン104を使用することを示しているが、他の例示的な実装形態では、クライアントデバイスが、検索エンジン104の関与なしに、または検索エンジン104によって作成された生のクエリとともに、もしくはかかる生のクエリに加えて、生のクエリのうちの1つまたは複数を作成し、生のコンテンツを取得する。
【0057】
状態「E」に示すように、推奨クエリ語について取得された生のコンテンツは、検索エンジン104からクライアントデバイス102に送信されるデータ122において包含または識別される。たとえばサブセットの推奨クエリ語の全部について生のコンテンツの全部が取得された後に、1つのメッセージでデータ122を送信することができ、または各推奨クエリ語について、もしくは推奨クエリ語のグループについて、生のコンテンツが取得された後に、複数のメッセージでデータを送信することができる。データは生のコンテンツ自体を包含することができ、または検索エンジン104は生のコンテンツを処理して、アイコンなどの生のコンテンツに関係する情報を識別または送信することができる。
【0058】
次いでクライアント102は、生のコンテンツを処理し、各推奨クエリ語について、対応する螺旋矢印120を除去し、生のコンテンツに関係する情報を、ユーザインターフェース108e上に、推奨クエリ語自体に隣接して、または推奨クエリ語自体の代わりに表示することができる。生のコンテンツを処理する際に、クライアントデバイス102は、生のコンテンツの特定の部分または生のコンテンツに含まれる情報を表すアイコンを選択して表示することができる。サブセット内のある推奨クエリ語について生のコンテンツを入手することができない場合、対応する螺旋矢印を除去して、生のコンテンツは目先的に入手できないことをユーザに示す。たとえば、クライアントデバイス102は、「Walgreens」という推奨クエリ語に隣接した螺旋矢印を、その語について生のコンテンツを入手することができないことを示すデータ122を受信したことに基づいて、または検索エンジン104から生のコンテンツを受信せずに所定の時間(たとえば、5秒、30秒、1分)待機したことに基づいて除去する。
【0059】
上記のように、「weather New York」という推奨クエリ語111について検索エンジン104によって取得された生のコンテンツは、「55°, partly cloudy」という情報を含む。クライアントデバイス102または検索エンジン104は、この情報を処理して、代表的アイコン(たとえば、晴天のときは太陽、雪が降っているときは雪片、曇りのときは雲)を選択して表示する。検索エンジン104がアイコンを選択したとき、アイコンまたは生のコンテンツのみをクライアントデバイス102に送信して表示してよく、またはアイコンと生のコンテンツの両方を送信してもよい。
【0060】
別の例では、推奨クエリ語に隣接して生のコンテンツに関係する情報を表示する代わりに、ユーザが推奨クエリ語の辺りでポインタをウロウロさせたときに、生のコンテンツをバルーンダイアログまたはポップアップダイアログボックスとして提示することができる。どの手法を使用して生のコンテンツを表示するかにかかわりなく、多くのユーザが推奨クエリ語の選択またはさらなる検索の開始のためのさらなるアクションを起こすことなく、ドロップダウンリスト116自体の中に求めていた情報を見出すことが予想される。
【0061】
状態「F」に示されているように、生のコンテンツが表示されているか否かにかかわりなく、ユーザはドロップダウンリスト116内の特定の推奨クエリ語を選択して、特定の推奨クエリ語に対応する機能を始動させることができる。推奨クエリ語の選択により、クライアントデバイス102を通じて、選択されたクエリ語を検索エンジン104または別のサーバに送信して、選択されたクエリ語を使用して検索クエリを実行するよう要求することができる。あるいは、特定のクエリ語についてユニフォームリソースロケータ(URL)のような他の情報が保存される場合、クライアントデバイス102は、特定のクエリ語に関連するURLを検索エンジン104に送信することができる。たとえば、推奨クエリ語「Walgreens」についてURL「www.walgreens.com」がクライアントデバイス102に保存される場合、クエリ語「Walgreens」へのリンク118を選択することで、クライアントデバイス102はこのURLを識別するHTTP要求130を検索エンジン104(または別のサーバ)に送信してウェブページを要求することができる。
【0062】
生のコンテンツを含んだ推奨クエリ語をユーザが選択していた場合、クライアントデバイス102は、ユーザが以前に関心を持っていた生のコンテンツへのショートカットとして、当該推奨クエリ語をローカル保存することができる。この点で、次にユーザがクライアントデバイス102で検索ダイアログを開始したときに、ユーザに文字入力を全く要求することなく、これらのショートカットを、更新された生のコンテンツを含め、検索ボックス110の下に表示できる。したがって、生のコンテンツへのショートカットを保存することによって、検索ボックス110は、ほとんどタイプしないか、全くタイプしないで、任意の数の対象について生のコンテンツを表示できる一種の特別な(ad-hoc)ウィジェットとなる。ユーザがショートカットに関連する推奨クエリ語と合致するプレフィックスをタイプし始めると、その生のコンテンツは、検索ボックス110の下のドロップダウンリスト内で上位にランクされる。
【0063】
クライアントデバイスでユーザが選択を行ったときに始動する機能は、ユーザが推奨クエリ語を選択するか、または生のコンテンツを選択するかによって異なることがある。たとえば、ユーザがユーザインターフェース108e上の「Mr. Anderson」という語へのリンクを選択した場合、クライアントデバイス102は、ローカル保存されている連絡先情報を取得して表示することができる。ユーザがユーザインターフェース108e上で「is Away」という語へのリンクを選択した場合、クライアントデバイスは、識別された連絡先についてソーシャルネットワークページを取得して表示することができる。
【0064】
図2は、リアルタイムフィードバックを提供するように適合された例示的な情報検索システム200のブロック図である。システム200は、公衆ネットワークまたはプライベートネットワークでありうるネットワーク205を含む。ネットワーク205は、クライアントデバイス210、検索エンジン250および/またはコンテンツプロバイダ280を通信可能に接続する。
【0065】
いくつかの実装形態では、クライアントデバイス210はモバイルデバイス、たとえばセルラー電話、ポータブルコンピュータ、パーソナルコンピュータ、PDA、ノートブック、ナビゲーションシステム、自動情報科学システム(automotive informatics system)、または他のモバイルシステムもしくは非モバイルシステムでありうる。いくつかの実装形態では、クライアントデバイス210は、デスクトップコンピュータなどの実質的に固定されたシステムでありうる。いくつかの実装形態では、クライアントデバイスは
図1のクライアントデバイス102でありうる。
【0066】
クライアントデバイス210は、インターフェース212を含む。いくつかの実装形態では、インターフェース212は、ネットワークインターフェース、ワイヤレス通信モジュール、通信ポート、またはクライアントデバイスをネットワーク205に通信可能に接続できるその他のモジュールでありうる。プロセッサ214は、ユーザインターフェース216、検索アプリケーション218、入力モジュール220、クエリ生成器222、推奨クエリ語選択器224、生コンテンツモジュール226、またはクライアントデバイス210に含まれうるその他のソフトウェアモジュールに含まれる命令および他のコンピュータコードなどの命令および他のコンピュータコードを実行するために含まれる。
【0067】
ユーザインターフェース216は、ボタン、入力ボックス、制御、ダイアログ、および検索アプリケーション218のようなクライアントデバイス210上で作動するプロセスと対話するためにユーザが操作し閲覧することができるその他の要素を提供する。いくつかの実装形態では、ユーザインターフェース216は、
図1のユーザインターフェース108でありうる。検索アプリケーション218は、クライアントデバイス210または検索エンジン250に位置する情報の検索に関係する機能をユーザに提供する、プロセッサ214によって実行されるソフトウェアアプリケーションである。入力モジュール220は、検索ダイアログの呼び出し、クエリ語の入力、または推奨クエリ語の選択の機構をユーザに提供するために含まれる。
【0068】
クエリ生成器222は、推奨検索語を使用して生のコンテンツを取得するためにクライアントデバイス210によって使用される。推奨クエリ語選択器224は、生のクエリのためにどのクエリ語または推奨クエリ語を選択するかを決定する(たとえば、生のコンテンツに関連しうるクエリ語を決定する)ために含まれる。生コンテンツモジュール226は、サーバ250に対し生のクエリのために選択されているクエリ語を提出し、提出されたクエリ語に関係する生のコンテンツを受信し、サーバ250から受信された生のコンテンツとクエリ語とを関連付けることに関係する機能を実行するために含まれる。
【0069】
GPSモジュール228は、全地球測位システムから信号を受信し、クライアントデバイス210の最新の地理的ロケーションを特定するために含まれる。いくつかの実装形態では、ロケーション情報を生コンテンツモジュール226または他のプロセスが使用して、クライアントデバイス210の物理的ロケーションとクエリ語とを関連付けることができる。
【0070】
クライアントデバイス210は、1組のユーザ選好232、専用検索履歴234または1つもしくは複数の他のアプリケーション236などの電子情報を保存するための記憶媒体230を含む。他のアプリケーション236は、検索されることが可能である場合、この可能性を検索アプリケーション218に記録して、クエリ語が入力されたときに検索され結果を返すようにすることができる。したがって、他のアプリケーション236はまた、推奨クエリ語を提供するために検索する自身のインデックスを含むことができる。
【0071】
こうした他のアプリケーション236はまた、サーバ/ネットワークベースであることもあり、クライアントデバイスのみに構内接続されているとは限らない。たとえば、クライアントデバイス210のブックストアアプリケーションは、ユーザがクエリ語を検索ボックスに入力したときに、別個のサーバでインデックス化された本のカタログを検索することができ、推奨クエリ語として入力済みの語と合致する本を返すことができる。また、協働して、ブックストアアプリケーションおよび別個のサーバは、最新価格、最新販売部数など、この推奨クエリ語に関する生のコンテンツを返すことができる。
【0072】
いくつかの実装形態では、記憶媒体230は、読取り専用メモリ、スタティックランダムアクセスメモリ(たとえば、フラッシュメモリ)、ダイナミックランダムアクセスメモリ、磁気記憶媒体(たとえば、ハードドライブ、フロッピー(登録商標)ディスク)、および光ドライブ、またはこれらのもしくは他の形態のデジタル情報記憶媒体の組合せであってよい。ユーザ選好232は、ユーザによって示される設定である。たとえば、ユーザは、ユーザ選好232の1つとして保存される「自宅」のロケーションまたは場所(たとえば、住所、郵便番号、場所設定)を設定することができる。いくつかの実装形態では、クライアントデバイス210は、ユーザの現在のロケーションについての推奨クエリ語およびユーザの好むロケーションについての推奨クエリ語も表示することができる。たとえば、ユーザが別の都市に移動しており、クエリ語「weather」を入力するシナリオでは、クライアントデバイス210は推奨クエリ語(たとえば、気象状態)を、GPS228によって特定されたポジションについてだけでなく、ユーザの「自宅」のロケーションについても表示することができる。ユーザ選好232の他の例として、人物、場所、事象または他の物(たとえば、スポーツチーム、テレビのショー)、会社、事象またはPOI(たとえば、ATM、骨董店、病院)を識別する情報がある。いくつかの実装形態では、ユーザ選好232は、ユーザが見たいと思う種類の生のコンテンツに関する情報を含むことができる。たとえばユーザ選好232は、ユーザが見たいと思っているのは、推奨クエリ語に含まれる最新のガソリン価格であって、株価ではないことを示すことができる。
【0073】
専用検索履歴234は、クライアントデバイス210との間におけるユーザの過去の活動または対話に関係する情報を含む。いくつかの実装形態では、専用検索履歴234は、ユーザが入力した検索クエリのリスト、またはユーザが選択した推奨クエリ語のリストを保存することができる。いくつかの実装形態では、専用検索履歴234は、最近アクセスされた連絡先、ブラウズされたウェブページ、最近アクセスされたローカルファイル、または他のアプリケーション236などの最近使用されたローカルアプリケーションのリストを含むことができる。
【0074】
記憶媒体230はまた、インデックス238および連絡先データベース240を保存する。いくつかの実装形態では、インデックス238は、情報のクエリおよび記録へのアクセスの実行速度を上げるために使用できる構造化データでありうる。たとえば、個々の連絡先記録は複数のアドレス、電子画像、添付もしくは埋め込みドキュメント、または検索対象となる可能性が低いかもしれないその他のデータを含みうる。これらの記録の各々の大きさまたはそれらの構造が原因で、それらのコンテンツを読み取るプロセスが遅くなることがある。検索可能なデータのインデックスを作成することによって、情報検索速度を上げることができる。たとえば、インデックスが含みうるのは、JPEGファイルに関連するファイル名およびメタデータ(たとえば、日付スタンプ、ジオタグ、シャッター速度)またはMP3ファイルに関連するファイル名およびメタデータ(たとえば、歌の名前、アーティスト、アルバム)であって、それらの実際の画像や音声コンテンツではない。連絡先記録、電子ファイル、または他の情報ソースをインデックス化して、クライアントデバイス210のアプリケーションおよびモジュールが記憶媒体230内の情報の場所を効果的に突き止めるために使用できる情報の宝庫を作成することができる。
【0075】
連絡先データベース240は、人物、場所または会社について記述したデータ記録の集まりである。たとえば、セルラー電話などのクライアントデバイス210の一実施形態では、連絡先データベース240は、電話の電話帳または連絡先リストでありうる。デスクトップコンピュータの一実施形態では、連絡先データベース240は、電子メールプログラム(たとえば、Microsoft Outlook、Lotus Notes)に関連する連絡先リストでありうる。
【0076】
一般に、検索エンジン250は、クライアントデバイス210などのデバイスを介してユーザに情報検索サービスを提供する。検索エンジン250は、コンテンツプロバイダ280などのソースからの情報を分析し、情報をインデックス化し、それにより必要なときに情報を効率的に検索し識別することができる。いくつかの実装形態では、検索エンジンは
図1の検索エンジン104であることもある。いくつかの実装形態では、検索エンジンは、Google検索エンジン、Microsoft Bing検索エンジン、Yahoo検索エンジン、または他のそのようなサービスなどのインターネット検索プロバイダでありうる。
【0077】
検索エンジン250はインターフェース252を含む。いくつかの実装形態では、インターフェース252は、ネットワークインターフェース、ワイヤレス通信モジュール、通信ポート、またはクライアントデバイスをネットワーク205に通信可能に接続できるその他のモジュールでありうる。プロセッサ254は、クエリ修正器256、クエリ生成器258、クエリ語-情報種類マッパー260に含まれている命令および他のコンピュータコードなどの命令および他のコンピュータコードを実行するために含まれる。
【0078】
クエリ修正器256は、入力クエリ語を受け取って、推奨クエリ修正、改良、再作成、スペル訂正、プレフィックス検索、およびユーザの検索クエリを変更できるその他の機能を実施して、ユーザが見つけようとしていたものを検索エンジン250が発見する確率を場合により高めるシステムである。たとえば、スペルの誤った検索語は、正しいスペルと比較して、インデックス264に存在する可能性が低いかもしれず、そのため正しい情報を発見する可能性を低下させうる。クエリ修正器256は、スペルミスを検出し、推奨クエリ語の少なくとも一部として訂正されたスペルを提示することができる。別の例では、ユーザはクエリ語「Doberman lodging near Brownsdale, MN(ミネソタ州ブラウンズデール近くのドーベルマン犬の宿泊施設)」を使用して犬小屋を検索したいと思うことがあるが、このクエリ語は当該地域の犬小屋のサブセットのみを提供することがある(たとえば、犬小屋は一般的にたった1つの品種を対象としているとは限らない)。クエリ修正器256は、一般化されうるクエリ語を検出し、検索語を再作成して、より幅広い、ひいては場合により一段と生産的な検索クエリを推奨することができる。たとえば、語「Doberman(ドーベルマン犬)」は語「dog(犬)」に抽象化することができ、次いでクエリ修正器256を通じて「lodging(宿泊施設)」の類義語「kennel(犬小屋)」を推奨して、推奨クエリ語「dog kennel near Brownsdale, MN(ミネソタ州ブラウンズデール近くの犬小屋)」を作成することができる。
【0079】
生クエリ生成器258を検索エンジン250が使用して、クエリ語-情報種類マッパー260によって提供されるデータに基づく生のコンテンツを取得する。クエリ語-情報種類マッパー260は、様々な種類の推奨クエリ語について、どのような種類の生のコンテンツが求められるかを指定する。たとえば、クエリ語によっては、人名と識別されるものもあり、一般にソーシャルネットワーク情報(たとえば、状態)と結び付くことがある。別の例では、クエリ語によっては、場所の名前または座標と識別されるものもあり、一般に距離、気象状態などと結び付くことがある。
【0080】
いくつかの実装形態では、クエリ語-情報種類マッパー260およびクエリ修正器256は協働してクエリ語を推奨することができる。たとえば、デンバーのユーザが、語「skiing(スキー)」についてクエリを開始することがある。クエリ修正器256は、このクエリを「ski resorts(スキー場)」または「snow conditions(雪の状態)」に修正することができ、一方でクエリ語-情報種類マッパー260はこれらの語の一部または全部を、1つまたは複数の情報種類、たとえば近くのスキー場までの距離、および当該ロケーションの気象状態または雪の深さと結び付けることができる。クエリ語「skiing」の本例では、検索エンジン250は推奨クエリ語「Iron Horse Resort, 65mi, 28 deg F, 66 in(アイアンホースリゾート、65マイル、華氏28度、66インチ)」および「Breckenridge, 82mi, 22 deg F, 102in(ブリッケンリッジ、82マイル、華氏22度、102インチ)」で応答することができる。
【0081】
コンテンツプロバイダ280は、ネットワーク205を介してアクセス可能な情報を提供する。いくつかの例では、コンテンツプロバイダ280は公衆もしくはプライベートのウェブサーバ、ウェブサービス、ファイル共有、またはネットワーク205によってアクセスされうる情報のその他の宝庫でありうる。いくつかの実装形態では、コンテンツプロバイダ280は、気象ニュース、金融情報、スポーツニュース、ソーシャルネットワーク最新情報、映画の上映スケジュール、または他の動的データなどの生のコンテンツのプロバイダでありうる。
【0082】
コンテンツプロバイダはインターフェース282を含む。いくつかの実装形態では、インターフェース282は、ネットワークインターフェース、ワイヤレス通信モジュール、通信ポート、またはクライアントデバイスをネットワーク205に通信可能に接続できるその他のモジュールでありうる。プロセッサ284は、クエリ処理器286に含まれている命令および他のコンピュータコードなどの命令および他のコンピュータコードを実行するために含まれる。クエリ処理器286は、ネットワーク205を介して通信するデバイスからのクエリ、たとえばクライアントデバイス210および検索エンジン250からのHTTP「GET」要求を受信し、当該クエリに対する応答を提供する。
【0083】
コンテンツプロバイダ280は、生のコンテンツ288を保存または生成する。いくつかの実装形態では、生のコンテンツ288は、スポーツのスコア、燃料価格、気象状態、株価、ショーの時間、個人の状態、または他の種類の動的データなど、時間とともに変化する情報でありうる。いくつかの例では、クエリ処理器286は、クライアントデバイス210または検索エンジン250からの要求に対して、応答に生のコンテンツ288の一部または全部を含めることによって応答することができる。たとえば、生のコンテンツ288を、推奨クエリ語との関連で提供し、ユーザインターフェース216でユーザに提示することができる。
【0084】
図3および
図4は、生のコンテンツを取得して提供するための例示的なプロセス300およびプロセス400の流れ図である。プロセス300は、
図1のクライアントデバイス102または
図2のクライアントデバイス210によって実行されうる。プロセス400は、検索エンジン104または検索エンジン250によって実行されうる。一般的に言って、推奨クエリ語または他の静的コンテンツのみを生成して提供する代わりに、プロセス300およびプロセス400は、推奨クエリ語を生成するのと同時またはほぼ同時に、推奨クエリ語が指し示す人物、場所、事象または他の物に関する生のコンテンツを取得して提供するように動作する。
【0085】
生のコンテンツが取得されると、プロセス300およびプロセス400は、推奨クエリ語自体を提示する代わりに、またはそれに加えて、ユーザに生のコンテンツを提示する(またはユーザに提示する生のコンテンツを提供する)ように動作する。たとえば、推奨クエリ語「weather New York」を生成することに応じて、プロセス300および400はクエリを自動的に実行して、推奨クエリ語が生成された時点またはその直後における最新のニューヨークの気象情報を特定することができ、この最新の気象情報を推奨クエリ語とともにユーザに提供することができる。この生のコンテンツはテキストデータ(たとえば、3桁の最新温度表示または最新気象情報を含むXMLドキュメント)を含むことができ、または生のコンテンツは他の種類のデータ(たとえば、最新の気象の状態を示唆する画像もしくはアイコン、または音声による気象報告の音声ファイル)を含むことができる。
【0086】
手短に言えば、プロセス300は、クライアントデバイスによって推奨クエリ語を取得するアクションと、推奨クエリ語に関係する生のコンテンツを取得するためにクエリを開始するアクションと、推奨クエリ語を取得するアクションに応じて生のコンテンツを取得するアクションと、クライアントデバイスのユーザインターフェースに生のコンテンツを表示するアクションとを含む。さらに詳細には、プロセス300が始まると(310)、クライアントデバイスが推奨クエリ語を取得する(320)。推奨クエリ語を取得することは、クライアントデバイスで推奨クエリ語を生成すること、または検索エンジンなどの別のエンティティから推奨クエリ語を識別する情報を受信することを含むことができる。
【0087】
ユーザがクエリ語を検索ボックスに入れたとき、検索エンジンは、任意の数のクエリ修正戦略を使用して、推奨クエリ語を生成して提供することによって応答することができる。一例では、推奨クエリ語は、検索エンジンの他の過去のユーザによって検索クエリを実行するために使用されたときに、入力済みクエリ語を使用して生成された検索結果と比較して、そうしたユーザをより満足させた検索結果を生成した語であることがある。他の例では、推奨クエリ語は、ユーザが検索エンジンの使用に関してより豊富な経験を持っていた場合に、ユーザが所望の検索結果を得るために入力するつもりだった可能性があるか、入力したと思われる語であることがある。
【0088】
クライアントデバイスおよび検索エンジンは、単独で、または互いに組み合わせて、ユーザ入力済みクエリ語を使用して推奨クエリ語を生成するために使用されうる。クライアントデバイスまたは検索エンジンは、ユーザが完全なクエリ語または句を検索ボックスに入力した後に、推奨クエリ語をそれぞれ生成することができ、ユーザが検索ダイアログを呼び出した後、ただし文字を入力する前に推奨クエリ語を生成することができ、またはプレフィックス検索の場合、クエリ語または句のプレフィックスを構成する文字をユーザが入力したときに推奨クエリ語を生成することができる。
【0089】
推奨クエリ語は、検索ボックスにクエリ語を入力することをユーザに要求することなしに、クライアントデバイスまたはサーバによって生成されうる。たとえば、クライアントデバイスは、生のコンテンツへのショートカットとしてユーザによって以前選択された推奨クエリ語をローカル保存することができる。ユーザがクライアントデバイスで検索ダイアログを開始したとき、これらのショートカットを、更新された生のコンテンツを含め、検索ボックスに隣接して自動的に表示することができる。ユーザによって以前選択された推奨クエリ語と合致するプレフィックスをユーザがタイプし始めた場合、そうした推奨クエリ語に関連する生のコンテンツを、検索ボックスの近くに、たとえば検索ボックスの下のドロップダウンリストに目立つように表示することができる。
【0090】
いくつかの実装形態では、推奨クエリ語はユーザ入力クエリ語に基づいて生成される。いくつかの実装態様では、推奨は、ユーザ入力クエリ語の拡大、抽象化、改良、再構成または他の変更に基づくことがある。たとえば、ユーザ入力クエリ語が「plane(飛行機、かんな)」である場合、「aircraft(航空機)」および「woodworking tools(木工具)」のような推奨クエリ語が生成されうる。いくつかの実装形態では、推奨は、ユーザの選好、ロケーション、過去の検索活動または専用検索履歴に基づくことがある。他の実装形態では、推奨クエリ語は、検索エンジンの他の過去のユーザによって検索クエリを実行するために使用されたときに、検索エンジンにとって、他の過去のユーザを満足させるように見える検索結果を生成した語を表すことがある。
【0091】
推奨クエリ語は、HTML、XML、テキスト、2進または他の形式の電子コードとして生成されうる。クライアントデバイスは、推奨クエリ語リストに推奨クエリ語を表示することができる。たとえば、推奨クエリ語をドリップダウンリスト、ポップアップボックス、または文字列のリストもしくは集合を表示できるその他のユーザインターフェース要素に表示することができる。
【0092】
推奨クエリ語を取得することに加えて、クライアントデバイスまたはサーバは、クエリ語に関連しうるキャッシュ済みコンテンツを取得することができる。たとえば、推奨クエリ語は、ユーザが以前のクエリの最中に選択済みの語、および以前に取得され、現在キャッシュされている生のコンテンツを有する可能性のある語を含むことがある。以前に推奨されたクエリ語が再び推奨された場合、生のコンテンツの取得中に、当該クエリ語に関連するキャッシュ済みコンテンツを、その他の視覚的キューの代わりに、またはそれに追加して推奨クエリ語に隣接して表示することができる。その際に、生のコンテンツの取得中に、ユーザに対し即座にデータが示される。キャッシュ済みコンテンツは、生のコンテンツとは異なる外観を有するようにフォーマット可能であり、たとえばその手段として、異なるフォントまたは色を使用し、その結果、ユーザはこのコンテンツを生のコンテンツと混同しなくなる。
【0093】
推奨クエリ語を取得することに応じて、生のクエリが開始される(330)。生のクエリを開始することは、実行する生のクエリを作成すること、または信号を他のエンティティ(たとえば、検索エンジン)に通信して、実行する生のクエリの作成を当該他のエンティティに行わせることを伴うことがある。
【0094】
クライアントデバイスは、推奨クエリ語を使用して生のクエリを開始するか否かを決定することができる。たとえば、推奨クエリ語を、生のコンテンツに関連する人物、場所、会社、事象または他の物として識別することができる。生のクエリが開始されると、生のコンテンツを取得する試みがなされていることを示す視覚的キューが推奨クエリ語の近くに表示されうる。たとえば、砂時計の記号、螺旋矢印、スピニングギア、または進行中の動作を象徴するその他の静止画像もしくは動画が、推奨クエリ語との関連で表示されうる。
【0095】
生のコンテンツを取得するために実行する生のクエリの種類、生のクエリのターゲット、および生のクエリを作成するのに使用するクエリ語を決定するために推奨クエリ語自体を使用して、推奨クエリ語のうちの1つまたは複数について生のコンテンツが取得される(340)。たとえば、最新気象報告情報、最新のソーシャルネットワーク更新情報、最新株価情報、または他の種類の動的情報のような生のコンテンツが、検索エンジンから、または別のコンテンツプロバイダから受信されうる。生のコンテンツを取得することは、生のコンテンツを生成すること、またはコンテンツプロバイダから直接的に、もしくは別のエンティティ(たとえば、検索エンティティ)を介して生のコンテンツを識別する情報を受信することを含むことができる。
【0096】
生のクエリの種類に関するいくつかの例では、推奨クエリ語が、語「weather」およびロケーションを含む場合、検索エンジンまたはクライアントデバイスは、ロケーションをクエリ語として使用して、気象サービスによって実行される生のクエリを作成して、当該ロケーションにおける最新気象予報を取得することができる。推奨クエリ語が人物の名前を含む場合、検索エンジンまたはクライアントデバイスは、その名前をクエリ語として使用して、ソーシャルネットワークプロバイダによって実行される生のクエリを作成して、当該人物の最新の状態またはロケーションを取得することができる。クエリ語が会社の名前を含む場合、検索エンジンまたはクライアントデバイスは、その会社名をクエリ語として使用して、会社情報サービスによって実行される生のクエリを作成して、最新レビュー情報または最新株価情報を取得することができる。推奨クエリ語がテレビのショー、歌、映画または他のメディアコンテンツの名前、タイトルまたは他の識別子を含む場合、検索エンジンまたはクライアントデバイスは、その名前またはタイトルをクエリ語として使用して、スケジュールサーバによって実行される生のクエリを作成して、その名前に対応する現地のショーの時間を取得することができる。推奨クエリ語がスポーツチーム、リーグまたはスポーツ選手の名前を含む場合、検索エンジンまたはクライアントデバイスは、その名前をクエリ語として使用して、スポーツニュースサービス(たとえば、espn.com, nfl.com)によって実行される生のクエリを作成して、かかるチームまたは選手に関連する直近のスコアまたは統計を取得することができる。推奨クエリ語が、ユーザが取引している銀行またはアカウント提供者の名前を含む場合、検索エンジンまたはクライアントデバイスは、ユーザのアカウント情報を使用して、当該銀行のまたは当該アカウント提供者のサーバによって実行される生のクエリを作成して、ユーザの最新アカウント残高を取得することができる。
【0097】
取得されると、クライアントデバイスは生のコンテンツをユーザに表示し(350)、それによりプロセス300を終了させる(360)。生のコンテンツは、未加工データとして、画像、記号として、またはアイコンとして対応する推奨クエリ語に近接して表示されうる。たとえば曇天状態を、あるロケーションに関する推奨クエリ語と同じ線上に雲の画像として表示できる。別の例では、ユーザがある会社名に関する推奨クエリ語の辺りでポインタを止めたときに、文字列として株価を表示できる。検索エンジンがアイコンを選択した場合、アイコンもしくは生のコンテンツのみをクライアントデバイスに送信して表示すること、またはアイコンと生のコンテンツの両方を送信することができる。
【0098】
別の例では、推奨クエリ語に隣接して生のコンテンツに関係する情報を表示する代わりに、ユーザが推奨クエリ語の辺りでポインタをウロウロさせたときに、生のコンテンツをバルーンダイアログまたはポップアップダイアログボックスとして提示することができる。どの手法を使用して生のコンテンツを表示するかにかかわりなく、多くのユーザが推奨クエリ語の選択またはさらなる検索の開始のためのさらなるアクションを起こすことなく、ドロップダウンリスト自体の中に求めていた情報を見出すことが予想される。
【0099】
いくつかの実装形態では、推奨クエリ語の視覚表示を更新することによって、生のコンテンツを表示することができる。たとえば、更新中であることを示すために使用される記号(たとえば、砂時計)を生のコンテンツに置き換えることによって、生のコンテンツを表示することができる。いくつかの実装形態では、表示されている推奨クエリ語全体を、生のコンテンツを含む、更新され、場合により修正された推奨クエリ語に置き換えて表示することができる。
【0100】
ユーザは、ユーザインターフェースに表示される推奨クエリ語または生のコンテンツを選択することができ、クライアントデバイスは、ユーザが以前に関心を持っていた生のコンテンツへのショートカットとして、当該推奨クエリ語をローカル保存することができる。この点で、次にユーザがクライアントデバイスで検索ダイアログを開始したときに、ユーザに文字入力を全く要求することなく、これらのショートカットを、更新された生のコンテンツを含め、検索ボックスの下に表示できる。したがって、生のコンテンツへのショートカットを保存することによって、検索ボックスは、ほとんどタイプしないか、全くタイプしないで、任意の数の対象について生のコンテンツを表示できる一種の特別なウィジェットとなる。ユーザがショートカットに関連する推奨クエリ語と合致するプレフィックスをタイプし始めると、その生のコンテンツは、検索ボックスの下のドロップダウンリスト内で上位にランクされる。
【0101】
図4を参照すると、プロセス400は、検索エンジンによって推奨クエリ語を生成するアクション、推奨クエリ語に関係する生のコンテンツを取得するためにクエリを実行するアクション、推奨クエリ語を生成するアクションに応じて生のコンテンツを取得するアクション、クライアントデバイスに生のコンテンツを提供するアクションを含む。プロセス400が始まると(410)、推奨クエリ語が生成される(420)。検索エンジンによって生成される推奨クエリ語は、検索エンジンの他の過去のユーザによって検索クエリを実行するために使用されたときに、検索エンジンにとって、入力済みクエリ語を使用して生成された検索結果と比較して、そうしたユーザをより満足させるように見えた検索結果を生成した語を含むことができる。
【0102】
推奨クエリ語に関連しうる生のコンテンツを取得するために生のクエリが生成される(430)。生のコンテンツが取得され(440)、クライアントデバイスに提供され(450)、それによりプロセス400は終了する(460)。生のコンテンツを提供することは、生のコンテンツを表示するか他の方法で出力すること、または生のコンテンツを識別するデータを別のエンティティ(たとえば、クライアントデバイス)に送信することを含むことができる。生のコンテンツを表示するためにクライアントデバイス102が処理するHTMLドキュメントに生のコンテンツを含めることができる。
【0103】
図5A〜5Cは、様々な検索コンテキスト依存状態における例示的なユーザインターフェース500を示している。
図5Aの例では、ユーザはキーパッド510でタイプすることによって、検索入力ボックス505に検索クエリ語「pizza(ピザ)」を入力している。前述の方法および技法を使用して、ユーザインターフェース500は、エントリ515〜525に推奨クエリ語リストを表示する。本例では、エントリ515に含まれる推奨クエリ語は、ユーザの現在のロケーションに基づいたもの、たとえば、セルラータワーとの近さによって、またはWi-Fi測位技法によって特定された、GPS受信機から取得されたロケーション情報に基づいたものでありうる。ユーザのロケーションに基づき、エントリ515は近くのピザ屋の名前、アドレス、およびユーザの現在のロケーションとピザ屋との間の距離測定を表示する。エントリ520は、クエリ語「pizza」に関連するマップロケーションを検索する便利な方法をユーザに提供できるマッピングアプリケーションまたはウェブサイトへのリンクを含む。エントリ525は、会社「Pizza Hut(ピザハット)」の検索を実行するためのリンクを含む。
【0104】
図5Bの例では、ユーザは検索入力ボックス505に検索クエリ「weather nyc」を入力している。前述の方法および技法を使用して、ユーザインターフェース500は、エントリ530、545および550に推奨クエリ語のリストを表示する。本例では、クエリ語「weather nyc」が検索エンジンによって分析されて、語「nyc」が「New York, New York(ニューヨーク州ニューヨーク)」を意味すると明確化されている可能性があり、次いで明確化された語を語「weather」との関連で使用してエントリ530、545および550を提供している。エントリ530は、ニューヨーク州ニューヨークの最新気象状態について生のクエリの結果を表示し、最新気象状態(たとえば、雷雨)を象徴する画像535ならびに当日の予想最高気温、予想最低気温および気象予報の文字表示540を含む。エントリ545は、ニューヨーク市の10日間の気象予報へのリンクを含み、エントリ550は、ニューヨーク市の気象予報に関するより一般的な検索へのリンクを含む。
【0105】
図5Cの例では、ユーザは検索入力ボックス505に検索クエリ「adam」を入力している。前述の方法および技法を使用して、ユーザインターフェース500は、エントリ560に推奨クエリ語を表示する。本例では、推奨クエリ語が分析されて、検索クエリ語は人物の名前の一部(たとえば「Adam」)でありうると判断された可能性がある。また、ユーザはたとえば「Adam Hill」という名の人物とのつながりを持っている可能性がある。Adam Hillは、ソーシャルネットワーキングサイト上のユーザの「友人」、インスタントメッセージングの仲間、ユーザの電話帳に記載されている者、またはこのユーザが過去に通信した相手でありうるからである。エントリ560は、「Adam Hill」という名前565および電話番号570を含む。また、エントリ560は、Adam HillのFacebookプロファイルから取得された更新済み写真575のような生のコンテンツ、およびAdam HillのTwitterでの直近の「ツイート」から取得された状態580(たとえば、「is sick today(本日は体調が悪い)」)も含む。
【0106】
図6A〜6Dは、様々な検索コンテキスト依存状態における例示的なユーザインターフェース600を示している。いくつかの実装形態では、検索アプリケーション600は、
図1のユーザインターフェース108でありうる。図示の例では、ユーザは文字「w」を検索ボックス605に入力している。
図6Aは、「weather」という推奨クエリ語615、ユーザ入力済みクエリ語「w」から生成されうるその他の推奨のような検索クエリ推奨のリストを含むドロップダウンリスト610を示している。いくつかの実装形態では、推奨クエリ語リストは、
図2の検索エンジン250のような検索エンジンから取得されうる。いくつかの実装形態では、検索クエリ推奨は、ユーザが検索ボックス605に情報を入力したときに機動的に修正されうる(たとえば、プレフィックス変換)。いくつかの実装形態では、
図6Aはドロップダウンリスト610を、検索エンジンがクエリ語を推奨した後であって、検索エンジンが推奨クエリ語の少なくとも一部について生のコンテンツを提供する前に存在する状態で示すことができる。
【0107】
図6Bは、ドロップダウンリスト610に示された情報をどのように変更して生のコンテンツを表示できるかを示す一例を表している。
図6Bの例では、推奨クエリ語615が説明618および生のコンテンツ620に置き換えられている。説明618および生のコンテンツ620を含むエントリは、推奨クエリ語615よりも広い縦幅を占める。残りの推奨クエリ語625のリストは下に移動して、推奨クエリ語615の縦のサイズと比較して、更新された推奨クエリ語620の縦のサイズが大きくなるように調整されている。
【0108】
図6Cは、ドロップダウンリスト610に示された情報をどのように変更して生のコンテンツを表示できるかを示す一例を表している。
図6Cの例では、第1のエントリは、推奨クエリ語615、推奨クエリ語615に関連する説明630、および生のコンテンツ632を含む。第1のエントリは大きな縦幅を占めるので、残りの推奨クエリ語625のリストは調整措置として下に移動している。
【0109】
図6Dは、ドロップダウンリスト610に示された情報をどのように変更して生のコンテンツを表示できるかを示すさらに別の例を表している。
図6Dの例では、第1のエントリは、推奨クエリ語615およびユーザに関連するロケーション(たとえば、ユーザの現在のロケーション、自宅のロケーション、最近検索されたロケーション)についての生のコンテンツを表すアイコン640を含む。本例では、アイコン640は、追加の縦幅を占めることなく推奨クエリ語615に隣接したロケーションに表示され、したがって残りの推奨クエリ語625を移動させる必要はない。
【0110】
図7は、本明細書で説明する技法で使用できる、一般的なコンピュータデバイス700および一般的なモバイルコンピュータデバイス750の一例を示している。コンピューティングデバイス700は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すように意図されている。コンピューティングデバイス750は、携帯情報端末、セルラー電話、スマートフォン、および他の類似のコンピューティングデバイスなど、様々な形態のモバイルデバイスを表すように意図されている。本明細書で示す構成要素、それらの接続および関係、ならびにそれらの機能は、例を示すことのみが意図されており、本文書で説明および/または特許請求する本発明の実装形態を限定することが意図されているわけではない。
【0111】
コンピューティングデバイス700は、プロセッサ702、メモリ704、記憶デバイス706、メモリ704および高速拡張ポート710に接続している高速インターフェース708、ならびに低速バス714および記憶デバイス706に接続している低速インターフェース712を含む。構成要素702、704、706、708、710および712の各々は、様々なバスを使用して相互接続されており、共通マザーボードに、または適宜他の方法で取り付けられうる。プロセッサ702は、高速インターフェース708に結合されたディスプレイ716のような外部の入力/出力デバイスにGUIのグラフィカル情報を表示するために、メモリ704内または記憶デバイス706上に保存された命令を含む、コンピューティングデバイス700内における実行する命令を処理することができる。他の実装形態では、複数のプロセッサおよび/または複数のバスが適宜、複数のメモリおよび複数の種類のメモリとともに使用されうる。また、複数のコンピューティングデバイス700を接続し、各デバイスが(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の一部分を行うこともできる。
【0112】
メモリ704は、コンピューティングデバイス700内の情報を保存する。一実装形態では、メモリ704は揮発性メモリユニットまたは複数のユニットである。別の実装形態では、メモリ704は不揮発性メモリユニットまたは複数のユニットである。メモリ704は、磁気ディスクまたは光ディスクのような別の形態のコンピュータ可読媒体であってもよい。
【0113】
記憶デバイス706は、コンピューティングデバイス700のために大量記憶を行うことが可能である。一実装形態では、記憶デバイス706は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の類似のソリッドステートメモリデバイス、または一連のデバイス(記憶域ネットワークまたは他の構成のデバイスを含む)などのコンピュータ可読媒体であっても、コンピュータ可読媒体を包含してもよい。コンピュータプログラム製品は、情報担体に明白に具現化できる。コンピュータプログラム製品は、実行されたときに、上述のような1つまたは複数の方法を実施する命令を包含してもよい。情報担体は、メモリ704、記憶デバイス706またはプロセッサ702のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【0114】
高速コントローラ708は、コンピューティングデバイス700の帯域幅集中動作を管理し、低速コントローラ712は、低帯域幅集中動作を管理する。このような機能の割り当ては例にすぎない。一実装形態では、高速コントローラ708はメモリ704、ディスプレイ716(たとえば、グラフィックスプロセッサまたは加速器を経由)に結合されるほか、高速拡張ポート710に結合され、それは様々な拡張カード(不図示)に対応可能である。本実装形態では、低速コントローラ712は、記憶デバイス706および低速拡張ポート714に結合される。低速拡張ポートは、様々な通信ポート(たとえば、USB、ブルートゥース、イーサネット(登録商標)、ワイヤレスイーサネット(登録商標))を含むことができ、たとえばネットワークアダプタを介して、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワーキングデバイスのような1つまたは複数の入力/出力デバイスに結合されうる。
【0115】
コンピューティングデバイス700は、図示されているようにいくつかの異なる形態で実施できる。たとえば、標準サーバ720として、またはそのようなサーバのグループで複数回実施できる。また、ラックサーバシステム724の一部として実施できる。加えて、ラップトップコンピュータ722のようなパーソナルコンピュータで実施できる。あるいは、コンピューティングデバイス700の構成要素を、デバイス750のようなモバイルデバイス(不図示)の他の構成要素と結合することができる。そのようなデバイスの各々は、コンピューティングデバイス700、750のうちの1つまたは複数を含むことができ、システム全体は、互いに通信する複数のコンピューティングデバイス700、750で構成されうる。
【0116】
コンピューティングデバイス750は、プロセッサ752、メモリ764、ディスプレイ754のような入力/出力デバイス、通信インターフェース766、およびトランシーバ768などの構成要素を含む。デバイス750は、追加の記憶を行うためのマイクロドライブまたは他のデバイスなどの記憶デバイスを備えることもできる。構成要素750、752、764、754、766および768の各々は、様々なバスを使用して相互接続されており、構成要素のうちのいくつかは、共通マザーボードに、または適宜他の方法で取り付けられうる。
【0117】
プロセッサ752は、メモリ764に保存されている命令を含むコンピューティングデバイス750内の命令を実行することができる。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップの1チップセットとして実装できる。プロセッサはたとえば、ユーザインターフェースの制御、デバイス750によって実行されるアプリケーション、およびデバイス750によるワイヤレス通信など、デバイス750の他の構成要素との協調が可能である。
【0118】
プロセッサ752は、ディスプレイ754に結合された制御インターフェース758およびディスプレイインターフェース756を通じてユーザと通信することができる。ディスプレイ754はたとえば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)もしくはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術でありうる。ディスプレイインターフェース756は、ユーザにグラフィカル情報および他の情報を提示するためにディスプレイ754を駆動する適切な回路を含むことができる。制御インターフェース758は、ユーザからコマンドを受信し、プロセッサ752に提出するためにコマンドを変換することができる。加えて、外部インターフェース762は、プロセッサ752との通信を行うことができ、それにより、デバイス750は他のデバイスとの近領域通信が可能になる。外部インターフェース762は、たとえば、いくつかの実装形態において有線通信、または他の実装形態においてワイヤレス通信を行うことができ、複数のインターフェースを使用することもできる。
【0119】
メモリ764は、コンピューティングデバイス750内の情報を保存する。メモリ764は、コンピュータ可読媒体、揮発性メモリユニットまたは不揮発性メモリユニットのうちの1つまたは複数として実装できる。また、たとえばSIMM(シングルインラインメモリモジュール)カードインターフェースなど、拡張インターフェース772を介してデバイス750に拡張メモリ774を提供し、接続することができる。このような拡張メモリ774は、デバイス750に追加の記憶スペースを提供することができ、またはデバイス750のアプリケーションもしくは他の情報を保存することもできる。詳細には、拡張メモリ774は、上述のプロセスを実行または補完する命令を含むことができ、または安全な情報を含むこともできる。したがって、たとえば、拡張メモリ774は、デバイス750のセキュリティモジュールとして提供されること、またはデバイス750の安全な使用を許可する命令でプログラムされることがある。加えて、ハッキングできない方法でSIMMカードに識別情報を記録するなど、追加情報とともに、SIMMカードを介して安全なアプリケーションを提供することができる。
【0120】
メモリはたとえば、後述のとおり、フラッシュメモリおよび/またはNVRAMメモリを含むことができる。一実装形態では、コンピュータプログラム製品は、情報担体に明白に具現化される。コンピュータプログラム製品は、実行されたときに、上述のような1つまたは複数の方法を実施する命令を包含する。情報担体は、メモリ764、拡張メモリ774、またはプロセッサ752のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【0121】
デバイス750は通信インターフェース766を介してワイヤレス通信することができ、それは必要に応じてデジタル信号処理回路を含みうる。通信インターフェース766は、GSM(登録商標)音声コール、SMS、EMSまたはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000またはGPRSなどの様々なモジュールまたはプロトコルによる通信を行うことができる。そのような通信は、たとえば無線周波数トランシーバ768を通じて生じうる。加えて、短距離通信がブルートゥース、Wi-Fiまたは他のそのようなトランシーバ(不図示)を使用するなどして生じうる。加えて、GPS(全地球測位システム)受信機モジュール770はデバイス750に追加のナビゲーション関連およびロケーション関連ワイヤレスデータを提供することができ、これはデバイス750で作動しているアプリケーションによって適宜使用されうる。
【0122】
デバイス750はまた、オーディオコーデック760を使用して音声通信することができ、オーディオコーデック760は、ユーザから音声情報を受信し、それを使用可能なデジタル情報に変換することができる。オーディオコーデック760は、たとえばデバイス750のハンドセット内のスピーカー経由などで、ユーザのために可聴音を同様に生成することができる。そのような音は、音声通話からの音を含むことができ、記録された音(たとえば、音声メッセージ、音楽ファイルなど)を含むことができ、デバイス750で動作するアプリケーションによって生成される音を含むこともできる。
【0123】
コンピューティングデバイス750は、図示されているようにいくつかの異なる形態で実施できる。たとえば、セルラー電話780として実施できる。また、スマートフォン782、携帯情報端末または他の類似のモバイルデバイスの一部として実施することもできる。
【0124】
本明細書で説明するシステムおよび技法の様々な実装形態は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実現できる。様々な実装形態は、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスとの間でデータおよび命令を送受信するように結合された、専用または汎用でありうる、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステムで実行可能かつ/または解釈可能である1つまたは複数のコンピュータプログラムでの実装を含むことができる。
【0125】
(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる)これらのコンピュータプログラムは、プログラマブルプロセッサ向けの機械命令を含み、高レベル手続き型および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実施できる。本明細書で使用する用語「機械可読媒体」、「コンピュータ可読媒体」は、機械可読信号として機械命令を受信する機械可読媒体を含む、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD))を指す。用語「機械可読信号」は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
【0126】
ユーザと対話するために、本明細書で説明するシステムおよび技法は、ユーザに情報を表示するためのディスプレイデバイス(たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ)、ならびにユーザがコンピュータに入力を行うことができるキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)を有するコンピュータで実施できる。他の種類のデバイスを使用してユーザと対話することも可能で、たとえば、ユーザに提供されるフィードバックは、任意の形式の知覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバックまたは触覚フィードバック)であってよく、ユーザからの入力は、音響、音声または触覚入力を含む任意の形式で受信できる。
【0127】
本明細書で説明するシステムおよび技法は、(たとえばデータサーバとしての)後置構成要素を含む、またはミドルウェア構成要素(たとえばアプリケーションサーバ)を含む、または前置構成要素(たとえば、本明細書で説明するシステムおよび技法の実施に対してユーザが対話できるグラフィカルユーザインタフェースもしくはウェブブラウザを有するクライアントコンピュータ)を含む、またはかかる後置、ミドルウェアもしくは前置構成要素の任意の組合せを含むコンピューティングシステムで実施できる。システムの構成要素は、任意の形式または媒体によるデジタルデータ通信(たとえば、通信ネットワーク)によって相互接続できる。通信ネットワークの例として、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、およびインターネットがある。
【0128】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に互いに離れており、通常は通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータで稼動し、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【0129】
また、図示された論理フローは、所望の結果を達成するために、示された特定の順序または順次であることを要求しているわけではない。また、説明したフローに他のステップを提供してよく、または説明したフローからステップを除去してよく、説明したシステムに他の構成要素を追加してよく、説明したシステムから他の構成要素を除去してよい。したがって、他の実施形態も、後述の特許請求の範囲内である。