(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスが以下の各ステップを実行することによって実施される方法であって、
データエントリー部分およびアプリケーション識別部分の両方を含むシステムレベル検索ユーザーインターフェースを表示するステップと、
前記データエントリー部分において、ユーザーデータ入力を検索語として表示するステップと、
前記アプリケーション識別部分において、前記検索語を使用して検索され得る前記コンピューティングデバイス上の複数のアプリケーションのうちの１つまたは複数のアプリケーションの各アプリケーションの識別子を表示するステップと、
前記検索語を前記複数のアプリケーションのうちの１つのアプリケーションに、前記１つのアプリケーションが前記検索語に基づいて検索結果を生成し表示するように、供給するステップと、
を含む方法において、
ユーザーデータ入力が受け取られるまで前記データ入力エントリー部分において、前記複数のアプリケーションのうちの現在アクティブなアプリケーションから受け取られたデータ入力キューを表示するステップをさらに含む、
方法。
【請求項２】
コンピューティングデバイスが以下の各ステップを実行することによって実施される方法であって、
データエントリー部分およびアプリケーション識別部分の両方を含むシステムレベル検索ユーザーインターフェースを表示するステップと、
前記データエントリー部分において、ユーザーデータ入力を検索語として表示するステップと、
前記アプリケーション識別部分において、前記検索語を使用して検索され得る前記コンピューティングデバイス上の複数のアプリケーションのうちの１つまたは複数のアプリケーションの各アプリケーションの識別子を表示するステップと、
前記検索語を前記複数のアプリケーションのうちの１つのアプリケーションに、前記１つのアプリケーションが前記検索語に基づいて検索結果を生成し表示するように、供給するステップと
を含む方法において、
前記ユーザーデータ入力の文字を、各文字が受け取られるにつれて、言語的代替案生成モジュールに供給するステップと、
前記文字に関する１つまたは複数の言語的代替案を受け取るステップと、
前記ユーザーデータ入力の前記文字および前記１つまたは複数の言語的代替案の両方を、各文字が受け取られるにつれて、前記複数のアプリケーションのうちの現在アクティブなアプリケーションに供給するステップと、
前記現在アクティブなアプリケーションから、前記ユーザーデータ入力および前記１つまたは複数の言語的代替案に基づいて、１つまたは複数の候補表示される検索語を受け取るステップと、
前記１つまたは複数の候補表示される検索語を表示するステップとをさらに含む、
方法。
【請求項３】
前記アプリケーション識別部分において前記１つまたは複数の識別子のうちの１つの識別子のユーザー選択を受け取るステップをさらに含み、
前記供給するステップは、前記ユーザー選択に応答して、前記検索語を、前記ユーザー選択の識別子によって識別されるアプリケーションに供給するステップを含み、
前記１つのアプリケーションは、前記ユーザー選択の識別子によって識別されるアプリケーションを含む、
請求項１又は２に記載の方法。
【請求項４】
前記アプリケーション識別部分において前記１つまたは複数の識別子のうちの第２の識別子のユーザー選択を受け取るステップと、
前記１つまたは複数の識別子のうちの前記第２の識別子の前記ユーザー選択に応答して、前記検索語を前記１つまたは複数の識別子のうちの前記第２の識別子によって識別されるアプリケーションに、前記１つまたは複数の識別子のうちの前記第２の識別子によって識別されるアプリケーションが前記検索語に基づいて検索結果を生成し表示するように、供給するステップと
をさらに含む請求項３に記載の方法。
【請求項５】
前記ユーザーデータ入力の文字を、各文字が受け取られるにつれて、前記複数のアプリケーションのうちの現在アクティブなアプリケーションに、前記現在アクティブなアプリケーションが、受け取られた前記ユーザーデータ入力の前記文字に基づいて検索結果を生成し表示するように、供給するステップをさらに含む、
請求項１〜４のいずれか一項に記載の方法。
【請求項６】
請求項１〜５のいずれか一項に記載の方法を実行するためのプログラム。
【請求項７】
請求項１〜５のいずれか一項に記載の方法を実行するためのプログラムを記録した記録媒体。
【請求項８】
コンピューティングデバイスであって、
１つまたは複数のプロセッサーと、
前記１つまたは複数のプロセッサーによって実行されると、前記１つまたは複数のプロセッサーに、
ユーザーデータ入力が検索語として表示される第１の部分と、前記検索語を使用して検索され得る前記コンピューティングデバイス上の１つまたは複数のアプリケーションの識別子が表示される第２の部分とを含む検索ユーザーインターフェースを表示させ、
前記検索語を、前記コンピューティングデバイス上の複数のアプリケーションのうちの１つに、前記アプリケーションが、少なくとも前記検索語に基づいて検索結果を表示するように、供給させ、
前記アプリケーションが前記検索結果を表示する間、少なくとも前記第１の部分を含む前記検索ユーザーインターフェースの表示を、現在の表示位置に維持させる
複数の命令を格納している１つまたは複数のコンピューター可読媒体と
を備えるコンピューティングデバイスにおいて、
前記複数のアプリケーションのうちの前記１つのアプリケーションは、前記第２の部分において識別される前記１つまたは複数のアプリケーションのうちのユーザー選択のアプリケーションであり、前記複数の命令はさらに、前記１つまたは複数のプロセッサーに、
前記ユーザーデータ入力の文字を、各文字が受け取られるにつれて、前記複数のアプリケーションのうちの現在アクティブなアプリケーションに供給させ、
前記現在アクティブなアプリケーションから、１つまたは複数の候補表示される検索語を受け取らせ、
前記１つまたは複数の候補表示される検索語を、前記第２の部分において前記１つまたは複数のアプリケーションの前記識別子の前記表示と一緒に表示させる、
コンピューティングデバイス。
【請求項９】
コンピューティングデバイスであって、
１つまたは複数のプロセッサーと、
前記１つまたは複数のプロセッサーによって実行されると、前記１つまたは複数のプロセッサーに、
ユーザーデータ入力が検索語として表示される第１の部分と、前記検索語を使用して検索され得る前記コンピューティングデバイス上の１つまたは複数のアプリケーションの識別子が表示される第２の部分とを含む検索ユーザーインターフェースを表示させ、
前記検索語を、前記コンピューティングデバイス上の複数のアプリケーションのうちの１つに、前記アプリケーションが、少なくとも前記検索語に基づいて検索結果を表示するように、供給させ、
前記アプリケーションが前記検索結果を表示する間、少なくとも前記第１の部分を含む前記検索ユーザーインターフェースの表示を、現在の表示位置に維持させる
複数の命令を格納している１つまたは複数のコンピューター可読媒体と
を備えるコンピューティングデバイスにおいて、
前記複数のアプリケーションのうちの前記１つのアプリケーションは、前記第２の部分において識別される前記１つまたは複数のアプリケーションのうちのユーザー選択のアプリケーションであり、前記複数の命令はさらに、前記１つまたは複数のプロセッサーに、
前記ユーザーデータ入力の文字を、各文字が受け取られるにつれて、言語的代替案生成モジュールに供給させ、
前記文字に関する１つまたは複数の言語的代替案を受け取らせ、
前記ユーザーデータ入力の前記文字および前記１つまたは複数の言語的代替案の両方を、各文字が受け取られるにつれて、前記複数のアプリケーションのうちの現在アクティブなアプリケーションに供給させ、
前記現在アクティブなアプリケーションから、前記ユーザーデータ入力および前記１つまたは複数の言語的代替案に基づいて、１つまたは複数の候補表示される検索語を受け取らせ、さらに
前記１つまたは複数の候補表示される検索語を表示させる
コンピューティングデバイス。
【請求項１０】
前記１つまたは複数のアプリケーションの各アプリケーションに関して、前記アプリケーションの前記識別子は、前記アプリケーションの名前と前記アプリケーションを表すアイコンのうちの一方か、または両方を含む請求項８又は９に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムレベル検索ユーザーインターフェースに関する。
【背景技術】
【０００２】
[0001]コンピューターがますます一般化するにつれ、ユーザーが利用できるようになった電子データの量は、途方もなく増大している。そのような大量の電子データへのアクセスを有することは、ユーザーに非常に有益であり得るが、そのことに問題がないわけではない。１つのそのような問題は、ユーザーは、自分が探している特定の電子データを見つけ出すのが依然として困難なままであることである。例えば、ユーザーは、自分が探している特定の電子データを見つけ出すために、異なる複数のアプリケーションに自らがアクセスしている状況に遭遇し得る。このことは、ユーザーが、それらの異なるアプリケーションが実行されることを要求すること、それらの異なるアプリケーションの検索インターフェースに移動すること、およびそれらの異なるアプリケーションのそれぞれに同一の検索語を入力することを、通常、含む。このことが、ユーザーには面倒で、もどかしい体験をもたらし得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
システムレベル検索ユーザーインターフェースを提供する。
【課題を解決するための手段】
【０００４】
[0002]この「発明の概要」は、「発明を実施するための形態」において後段でさらに説明される選定された概念を、簡略化された形態で概説するように与えられる。この「発明の概要」は、特許請求される主題の重要な特徴、または不可欠な特徴を特定することは意図しておらず、特許請求される主題の範囲を限定するように使用されることも意図していない。
【０００５】
[0003]１つまたは複数の態様によれば、データエントリー部分とアプリケーション識別部分の両方を含むシステムレベル検索ユーザーインターフェースが表示される。検索語としてのユーザーデータ入力が、データエントリー部分において表示され、その検索語を使用して検索され得るコンピューティングデバイス上の複数のアプリケーションのうちの１つまたは複数のアプリケーションのそれぞれの識別子が、アプリケーション識別部分において表示される。検索語は、複数のアプリケーションのうちの１つのアプリケーションに、その１つのアプリケーションが、その検索語に基づく検索結果を生成し表示するように与えられる。
【０００６】
[0004]１つまたは複数の態様によれば、検索ユーザーインターフェースが表示される。この検索ユーザーインターフェースは、検索語としてのユーザーデータ入力が表示される第１の部分と、その検索語を使用して検索され得るコンピューティングデバイス上の１つまたは複数のアプリケーションの識別子が表示される第２の部分とを含む。検索語は、コンピューティングデバイス上の複数のアプリケーションのうちの１つに、そのアプリケーションが、少なくともその検索語に基づく検索結果を表示するように与えられ、少なくとも第１の部分を含む検索ユーザーインターフェースの表示が、そのアプリケーションがそれらの検索結果を表示する間、現在の表示位置に維持される。
【０００７】
[0005]図面全体にわたって同様の特徴を参照するのに同一の参照符号が使用される。
【図面の簡単な説明】
【０００８】
【図１】[0006]１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを実施する例示的なシステムを示す図である。
【図２】[0007]１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む例示的な画面表示を示す図である。
【図３】[0007]１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む例示的な画面表示を示す図である。
【図４】[0007]１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む例示的な画面表示を示す図である。
【図５】[0007]１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む例示的な画面表示を示す図である。
【図６】[0007]１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む例示的な画面表示を示す図である。
【図７】[0008]１つまたは複数の実施形態による例示的なシステムレベル検索モジュールを示すブロック図である。
【図８】[0009]１つまたは複数の実施形態によるシステムレベル検索モジュールにアプリケーションを登録するための例示的な登録プロセスを示す流れ図である。
【図９】[0010]１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む別の例示的な画面表示を示す図である。
【図１０】[0011]１つまたは複数の実施形態による候補表示される検索語に関する言語的代替案（linguistic alternatives）をサポートする例示的なシステムを示すブロック図である。
【図１１】[0012]１つまたは複数の実施形態のよるシステムレベル検索ユーザーインターフェースを使用するための例示的なプロセスを示す流れ図である。
【図１２】[0013]１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースのアプリケーション識別部分においてアプリケーション識別子を表示するための例示的なプロセスを示す流れ図である。
【図１３】[0014]１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを実施するように構成され得る例示的なコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【０００９】
[0015]システムレベル検索ユーザーインターフェースが、本明細書で説明される。このシステムレベル検索ユーザーインターフェース（ＵＩ）は、ユーザーが、検索語を入力し、異なる複数のアプリケーションにおいてその検索語を検索することを可能にする一元化されたＵＩをもたらす。ユーザーがシステムレベル検索ＵＩを使用して検索することができる特定のアプリケーションは、システムレベル検索ＵＩに登録して、それらのアプリケーションに関する様々な情報を供給する。システムレベル検索ＵＩは、この登録情報を使用して、これらの異なるアプリケーションがユーザーに対してどのように特定されるべきか、これらのアプリケーションがどのように、これらのアプリケーションの検索結果表示ビューを示すように起動されるべきかなどを決定する。システムレベル検索ＵＩは、様々な基準に基づいて、これらの異なるアプリケーションの格付けを決定し、この格付けに応じて、これらのアプリケーションの識別子を表示する。次に、ユーザーが、検索語の検索が行われるべき、これらの異なるアプリケーションの１つまたは複数を選択することができ、これに応答して、システムレベル検索ＵＩが、選択されたアプリケーションに検索語を与え、次に、選択されたアプリケーションが、そのアプリケーションの検索結果を表示する。
【００１０】
[0016]図１は、１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを実施する例示的なシステム１００を示す。システム１００は、オプションとして、ネットワーク１０６を介して他の１つまたは複数の（ｘ個）デバイス１０４（１）、…、１０４（ｍ）と通信することができるコンピューティングデバイス１０２を含む。ネットワーク１０６は、インターネット、ローカルエリアネットワーク（ＬＡＮ）、公衆交換電話網もしくは他の電話網、イントラネット、他の公共ネットワークおよび／または専用ネットワーク、ならびに以上の組合せなどを含む、様々な異なるネットワークであり得る。コンピューティングデバイス１０２は、様々な異なるタイプのデバイスであり得る。例えば、コンピューティングデバイス１０２は、デスクトップコンピューター、ノートパッドコンピューターもしくはタブレットコンピューター、ネットブックコンピューターもしくはラップトップコンピューター、サーバコンピューター、移動局、エンターテイメント機器、ディスプレイデバイスと通信状態に結合されたセットトップボックス、テレビ、セルラー電話機もしくは他のワイヤレス電話機、ゲームコンソール、自動車用コンピューターなどであり得る。さらに、単一のデバイス１０２として示されるものの、コンピューティングデバイス１０２の構成要素またはモジュールは、構成要素またはモジュールがシステム内の様々なデバイスにわたって分散配置された、複数のデバイスのシステムとして実施され得ることに留意されたい。
【００１１】
[0017]デバイス１０４は、コンピューティングデバイス１０２と通信することができる様々な異なるコンピューティングデバイスであり得る。コンピューティングデバイス１０２は、後段でより詳細に説明されるとおり、オプションとして、デバイス１０４のうちの１つまたは複数にアクセスして、様々な情報を得ることができる。コンピューティングデバイス１０２の説明と同様に、デバイス１０４は、様々な異なるタイプのデバイスであり得る。デバイス１０４は、コンピューティングデバイス１０２と同一のタイプのデバイスであることも、代替として、異なるタイプのデバイスであることも可能である。システム１００において、コンピューティングデバイス１０２は、ネットワーク１０６を介してデバイス１０４と通信しているものとして例示される。代替として、コンピューティングデバイス１０２は、様々な有線接続および／またはワイヤレス接続（例えば、ユニバーサルシリアルバス（ＵＳＢ）接続、ワイヤレスＵＳＢ接続、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続、ＩＥＥＥ１３９４接続など）などの他のタイプの通信機構または通信接続を介してデバイス１０４と通信し得る。
【００１２】
[0018]コンピューティングデバイス１０２は、オペレーティングシステム１１０と、１つまたは複数のアプリケーション１１２とを含む。オペレーティングシステム１１０は、コンピューティングデバイス１０２上のアプリケーション１１２の起動および実行を管理する。アプリケーション１１２のそれぞれは、生産性アプリケーション（例えば、電子メールアプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、データベースアプリケーションなど）、エンターテイメントアプリケーション（例えば、ゲームアプリケーション、オーディオ再生アプリケーションおよび／またはビデオ再生アプリケーションなど）、ソーシャルネットワーキングアプリケーションなどの、様々な異なるタイプのアプリケーションであり得る。アプリケーション１１２は、ネットワーク１０６を介してデバイス１０４上のデータにアクセスするのではなく、コンピューティングデバイス１０２上（またはコンピューティングデバイス１０２に結合されたストレージデバイス上）のデータにアクセスして、データにローカルでアクセスすることが可能である。例えば、アプリケーション１１２は、データにローカルでアクセスするワードプロセッシングアプリケーションであり得る。データにローカルでアクセスすることに加えて、またはそうする代わりに、アプリケーションは、ネットワーク１０６を介して１つまたは複数のデバイス１０４上のデータにアクセスすることができる。例えば、アプリケーション１１２は、コンピューティングデバイス１０２のユーザーが、そのアプリケーション１１２を介してデバイス１０４からの映画にアクセスすることを可能にして、映画サービスを提供するデバイス１０４のためのインターフェースアプリケーションであり得る。
【００１３】
[0019]オペレーティングシステム１１０は、入力モジュール１１４と、ディスプレイモジュール１１６と、システムレベル検索モジュール１１８とを含む。オペレーティングシステム１１０は、通常、ソフトウェアおよび／またはファームウェアとして実施されるが、オペレーティングシステム１１０の少なくともいくつかの部分は、代替として、ハードウェアとして実施され得る。
【００１４】
[0020]入力モジュール１１４が、コンピューティングデバイス１０２のユーザーかユーザー入力を受け取る。ユーザー入力は、デバイス１０２のキーパッドもしくはキーボードの１つまたは複数のキーを押すこと、デバイス１０２のコントローラー（例えば、遠隔制御デバイス、マウス、トラックパッドなど）の１つまたは複数のキーを押すこと、デバイス１０２のタッチパッドもしくはタッチスクリーンの特定の部分を押すこと、デバイス１０２のタッチパッドもしくはタッチスクリーンの上で特定のジェスチャを行うこと、および／またはデバイス１０２のコントローラー（例えば、遠隔制御デバイス、マウス、トラックパッドなど）上で特定のジェスチャを行うことによるなど、様々な異なる方法で与えられ得る。また、ユーザー入力は、デバイス１０２の任意の部分を軽く叩くこと、（デバイス１０２を振ること、デバイス１０２を回転させることなどの）デバイス１０２の動き検出構成要素によって認識され得るアクションなどの他の物理的なフィードバック入力を介してデバイス１０２に与えられてもよい。また、ユーザー入力は、マイクロフォンに対する可聴の入力を介して、画像キャプチャデバイスによって観察される手または他の身体部分の動きを介してなど、他の方法で与えられてもよい。これらのユーザー入力は、特定の文字もしくはシンボルを入力すること、特定のボタンもしくはメニューオプションを選択すること、様々な記述もしくは画像をドラッグアンドドロップすることなどによって、ユーザーがコンピューティングデバイス１０２と対話することを可能にする。
【００１５】
[0021]表示モジュール１１６が、コンピューティングデバイス１０２の画面のための表示を生成し、管理し、かつ／または出力する。この表示は、アプリケーション１１２によって供給される情報、システムレベル検索モジュール、もしくはオペレーティングシステム１１０の他のモジュールによって供給される情報などの様々な情報を含み得る。ユーザーに表示される情報は、入力モジュール１１４によって受け取られ得るユーザー情報を含み得る。表示モジュール１１６が情報を表示する画面は、液晶ディスプレイ（ＬＣＤ）技術、プラズマ画面技術、画像映写技術などの様々な異なる方法で実施され得る。画面は、コンピューティングデバイス１０２の一部として含められ得、または代替として、表示モジュール１１６が、１つまたは複数の画面を含む他の１つまたは複数のディスプレイデバイスに出力される１つまたは複数の信号を生成することが可能である。本明細書の説明は、１つまたは複数の画面上に情報を表示することについて述べるものの、情報は、代替として、可聴なようになど、他の方法で表示モジュール１１６によってユーザーに提示され得ることを認識されたい。
【００１６】
[0022]システムレベル検索モジュール１１８が、コンピューティングデバイス１０２のユーザーが、検索語を入力し、異なるアプリケーション１１２においてその検索語を検索することを可能にする一元化されたＵＩであるシステムレベル検索ＵＩをもたらす。検索語は、１つまたは複数の語、語の一部分などの、活字、文字、シンボルの任意の組合せであり得る。システムレベル検索ＵＩは、ユーザーが検索語を入力することができるデータエントリー部分と、アプリケーション１１２のうちの様々なアプリケーションが識別され得るアプリケーション識別部分とを含む。アプリケーション識別部分において識別されるアプリケーション１１２のうちの特定のアプリケーションは、後段でより詳細に説明されるとおり、システムレベル検索モジュール１１８に登録しているアプリケーション１１２である。
【００１７】
[0023]システムレベル検索モジュール１１８によってもたらされるシステムレベル検索ＵＩは、コンピューティングデバイス１０２のユーザーが、一元化されたＵＩに所望される検索語を１回、入力し、その後、その検索語を検索するように異なる１つまたは複数のアプリケーション１１２を選択することを可能にする。システムレベル検索ＵＩを介してアプリケーション１１２を選択することに応答して、選択されたアプリケーション１１２にその検索語が与えられ、次に、このアプリケーションが、その検索語に基づいて検索結果を決定し、表示する（表示モジュール１１６を介して）。ユーザーは、単にシステムレベル検索ＵＩを介してアプリケーションを選択することによって、異なるアプリケーション１１２にその同一の検索語を検索させることができる。このため、ユーザーがオペレーティングシステム１１０と対話して、異なるアプリケーション１１２の実行を要求し、それらの異なるアプリケーション１１２の各アプリケーションの検索インターフェースに移動し、それらの異なるアプリケーションの各アプリケーションに同一の検索語を入力するのではなく、ユーザーは、検索語をただ１回、システムレベル検索ＵＩに入力することができる。次に、ユーザーは、アプリケーション１１２のうちの１つまたは複数のを選択して（例えば、キーストローク、タッチスクリーン上でアプリケーション識別子に触れること、アプリケーション識別子を、ポインタまたは他のカーソルがそのアプリケーション識別子上にある際にクリックすることなど単一のユーザー入力を介して）、オペレーティングシステム１１０が、１つまたは複数のアプリケーション１１２を、選択された際、自動的に実行することに依拠し、システムレベル検索モジュール１１８が、選択されたアプリケーション１１２に検索語を与えることに依拠することができる。
【００１８】
[0024]システムレベル検索ＵＩは、異なる時点でアクティブにされ得る。システムレベル検索ＵＩがアクティブにされると、システムレベル検索ＵＩは、表示モジュール１１６によって表示される。システムレベル検索モジュール１１８は、システムレベル検索ＵＩがアクティブにされたままにし、常に表示されたままにすることができる。代替として、システムレベル検索モジュール１１８は、特定の要求（例えば、検索を実行するユーザー要求、検索を実行するアプリケーション１１２からの要求など）に応答してシステムレベル検索ＵＩをアクティブにして、システムレベル検索ＵＩを、アクティブにされるまで隠されたままにすることができる。アプリケーション１１２は、システムレベル検索モジュール１１８を呼び出して、またはモジュール１１８によって既に表示されているシステムレベル検索ＵＩにユーザーを誘導して、システムレベル検索ＵＩを活用することができる。アプリケーション１１２は、システムレベル検索ＵＩに頼ることができるので、アプリケーション独自の検索ユーザーインターフェースを提供しなくてもよい。
【００１９】
[0025]このため、システムレベル検索ＵＩは、様々な様態で使用され得ることに留意されたい。ユーザーが、システムレベル検索ＵＩに或る検索語を入力し、その後、システムレベル検索ＵＩを介して、その検索語を検索すべき１つまたは複数のアプリケーション１１２を選択することができる。代替として、ユーザーが、アプリケーション１１２を介して検索語を入力する要求を入力することができる。これに応答して、システムレベル検索ＵＩが表示され得（またはユーザーが、既に表示されているシステムレベル検索ＵＩに誘導され得）、システムレベル検索ＵＩを介してユーザーが、そのアプリケーション１１２を検索するユーザーの検索語を入力することができる。代替として、ユーザーが、検索語を入力することなしに１つまたは複数のアプリケーション１１２を選択することができ、これに応答して、選択されたアプリケーションが、このユーザー選択を通知され、選択されたアプリケーションが、そのアプリケーションの検索結果表示ビューを表示する。検索結果は、ユーザーが検索語をまだ入力していないため、選択されたアプリケーションによって表示されない可能性がある。しかし、検索語のエントリーの後、選択されたアプリケーションは、そのアプリケーションの検索結果を表示する。
【００２０】
[0026]図２は、１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む例示的な画面表示２０２を示す。画面表示２０２は、ツールバー（またはタスクバー）２０４を含む。ツールバー２０４は、現在時刻（午前１０時１０分として例示される）などの様々な異なる情報を含み得る。
【００２１】
[0027]２つの部分、すなわち、データエントリー部分２０６と、アプリケーション識別部分２０８とを含むシステムレベル検索ＵＩが例示される。ユーザーは、様々な語、字、シンボル、文字などを検索語として入力することができる（例えば、前述のように、図１の入力モジュール１１４を介して）。このユーザー入力は、データエントリー部分２０６において表示される。図示される例において、ユーザーは、「Ｈａ」という文字を入力している。画面表示２０２が例示する時点で、「Ｈａ」が検索語である。しかし、ユーザーは、引き続きさらなる文字を入力して、異なる検索語をもたらすことができることに留意されたい。
【００２２】
[0028]アプリケーション識別部分２０８は、様々なアプリケーションの識別子を含む。これらの識別子が、例示的な表示２０２に「アプリケーション１名前」、「アプリケーション２名前」、「アプリケーション３名前」、「アプリケーション４名前」、および「アプリケーション５名前」として示される。アプリケーション識別部分２０８におけるこれらの識別子のそれぞれは、ユーザーが検索語の検索をデータエントリー部分２０６において表示させるように選択することができるアプリケーションである。ユーザーは、スタイラスまたは指でアプリケーションの識別子に触れること、アプリケーションの識別子の上でポインタを操作し、カーソル制御デバイス（例えば、マウス）のボタンを押すことなどの、様々な異なる方法でアプリケーション識別部分２０８において識別されたアプリケーションのうちの１つを選択することができる（例えば、図１の入力モジュール１１４を介して）。
【００２３】
[0029]アプリケーション識別部分２０８は、ユーザーがデータエントリー部分２０６にデータを入力している際、自動的に表示されることも、または代替として、アプリケーション識別部分２０８を表示するユーザー要求に応答して表示されることもある。例えば、ユーザーが、スタイラスまたは指でメニューアイコン２１０に触れることによって、メニューアイコン２１０上でポインタを操作し、カーソル制御デバイス（例えば、マウス）のボタンを押すことによって、キーボードの特定のキーを押すことによってなど、様々な異なる方法でメニューアイコン２１０を選択することができる（例えば、図１の入力モジュールを介して）。メニューアイコン２１０のユーザー選択に応答して、アプリケーション識別部分２０８が表示される。
【００２４】
[0030]さらに、システムレベル検索ＵＩは、メニューアイコン２１０の選択に類似した、様々な異なる方法で選択され得る（例えば、図１の入力モジュール１１４を介して）検索ボタン２１２を含み得る。検索ボタン２１２のユーザー選択に応答して、データエントリー部分２０６において現在入力されている検索語が、検索のためにアプリケーションに送られる。検索語が送られるアプリケーションは、現在アクティブなアプリケーションであること、アプリケーション識別部分２０８において、現在強調表示されているアプリケーション、アプリケーション識別部分２０８の先頭にリストアップされているアプリケーションなどの、様々な方法で決定され得る。現在アクティブなアプリケーションとは、現在前景で実行されているアプリケーション（例えば、図１のアプリケーション１１２のうちの１つ（オペレーティングシステム以外のアプリケーション））を指し、ユーザーが対話することができるアプリケーションである。複数のアプリケーションが、コンピューティングデバイス上で同時に実行されていることが可能であるものの、１つだけが、現在アクティブなアプリケーションである。アプリケーション識別部分２０８は、通常、現在アクティブなアプリケーションを含まないが、代替として、現在アクティブなアプリケーションを含み得る。
【００２５】
[0031]図に例示されるシステムレベル検索ＵＩのデータエントリー部分２０６およびアプリケーション識別部分２０８の位置は、例であること、およびシステムレベル検索ＵＩは、画面表示２０２上のどこにでも表示され得ることに留意されたい。例えば、データエントリー部分２０６およびアプリケーション識別部分２０８は、画面表示２０２の最上部に、画面表示２０２の左側もしくは右側に沿って、画面表示２０２の中央に、メニューバーの一部として、またはアイコンバーもしくはアイコンドックの一部としてなど、表示され得る。
【００２６】
[0032]図３は、１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む別の例示的な画面表示３０２を示す。画面表示３０２は、図２の画面表示２０２に類似する。しかし、画面表示３０２は、アプリケーション識別部分３０４を、図２のアプリケーション識別部分２０８において例示されるアプリケーション名ではなく、アプリケーションを表すアイコンまたはシンボルを含むものとして示す。これらのアイコンまたはシンボルは、アプリケーション識別部分２０８を参照して前述したアプリケーション名の選択と同様にユーザーによって選択され得る。
【００２７】
[0033]図４は、１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む別の例示的な画面表示４０２を示す。画面表示４０２は、図２の画面表示２０２に類似する。しかし、画面表示４０２は、「映画アプリケーション」と名付けられた、現在アクティブなアプリケーションのためのウインドウ４０４も表示する。ウインドウ４０４は、テキスト（ウインドウ４０４内に水平の線として表示される）や画像（ウインドウ４０４内にボックスとして表示される）などの様々な異なる情報のいずれを表示することも可能である。
【００２８】
[0034]１つまたは複数の実施形態において、アプリケーション識別部分２０８において識別されたアプリケーションは、ウインドウ４０４内に表示された、現在アクティブなアプリケーションを含まない。代替として、アプリケーション識別部分２０８において識別されたアプリケーションは、ウインドウ４０４内に表示された、現在アクティブなアプリケーションを含み得る。
【００２９】
[0035]１つまたは複数の実施形態において、検索ボタン２１２のユーザー選択に応答して、データエントリー部分２０６において現在入力されている検索語（図示される例では、「Ｈａ」）が、現在アクティブなアプリケーションに送られる。ユーザーが検索ボタンを選択するとした場合、これに応答して、データエントリー部分２０６において現在入力されている検索語が、ウインドウ４０４内に表示されたアプリケーションに送られる。ユーザーが、検索ボタン２１２ではなく、アプリケーション識別部分２０８において識別されたアプリケーションのうちの１つを選択するとした場合、これに応答して、データエントリー部分２０６において現在入力されている検索語が、その選択されたアプリケーションに送られる。
【００３０】
[0036]図５は、１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む別の例示的な画面表示５０２を示す。画面表示５０２は、図２の画面表示４０２に類似しており、「映画アプリケーション」と名付けられた現在アクティブなアプリケーションのためのウインドウ４０４を表示している。しかし、画面表示５０２は、検索語が、現在アクティブなアプリケーションに送られた後のウインドウ４０４を示す。ウインドウ４０４は、テキスト（ウインドウ４０４内に水平の線として表示される）や画像などの様々な異なる情報のいずれをも検索結果として表示することも可能である。
【００３１】
[0037]例示的な画面表示５０２において見て取ることができるとおり、検索結果が、検索語を検索するように選択されたアプリケーションによって表示される。さらに、データエントリー部分２０６およびアプリケーション識別部分２０８が、画面表示５０２上に表示されたままである。
【００３２】
[0038]図６は、１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む別の例示的な画面表示６０２を示す。画面表示６０２は、図２の画面表示４０２に類似しており、「映画アプリケーション」と名付けられたアプリケーションのためのウインドウ４０４を表示している。しかし、画面表示６０２は、ウインドウ４０４内に表示されたアプリケーション以外のアプリケーションからの検索結果を含むウインドウ６０４も示す。ウインドウ６０４は、アプリケーション識別部分２０８において識別されたアプリケーションが選択された後に表示される。例えば、「アプリケーション３名前」が、電子書籍（Ｅブック）リーダーアプリケーションを識別するものと想定されたい。「アプリケーション３名前」のユーザー選択に応答して、データエントリー部分２０６において現在入力されている検索語（図示される例では、「Ｈａ」）が、その選択されたアプリケーションに送られる。その選択されたアプリケーションが、起動され（既に実行されているのではない場合）、検索語「Ｈａ」を検索し、検索結果としてウインドウ６０４内に表示されるべき情報を生成する。ウインドウ６０４は、テキスト（ウインドウ４０４内に水平の線として表示される）や画像などの様々な異なる情報のいずれを検索結果として表示することも可能である。
【００３３】
[0039]例示的な画面表示６０２において、ウインドウ６０４内で表示するための情報を生成するアプリケーションは、現在アクティブなアプリケーションである。以前に、現在アクティブなアプリケーションであったアプリケーションに関する情報を表示するウインドウ４０４は、表示されたままである。代替として、部分２０８における「アプリケーション３名前」のユーザー選択に応答して、または選択されたアプリケーションの起動に応答して、ウインドウ４０４は、閉じられる（例えば、さらに、ウインドウ４０４内で情報を表示するアプリケーションがシャットダウンされる）こと、または外観を変更される（例えば、もはや表示されず、縮小されて、タスクバーまたはツールバーの中のアイコンにされる）こともあり得る。
【００３４】
[0040]図７は、１つまたは複数の実施形態による例示的なシステムレベル検索モジュール７００を示すブロック図である。システムレベル検索モジュール７００は、例えば、図１のシステムレベル検索モジュール１１８であり得る。システムレベル検索モジュール７００は、ユーザーインターフェースモジュール７０２と、アプリケーション格付けモジュール７０４と、アプリケーション登録モジュール７０６と、アプリケーション登録ストア７０８とを含む。
【００３５】
[0041]アプリケーション登録モジュール７０６は、システムレベル検索モジュール７００に対するアプリケーションの登録を管理して、登録されたアプリケーションが、システムレベル検索ＵＩのアプリケーション識別部分において表示されることを可能にする。また、この登録は、登録されたアプリケーションがシステムレベル検索ＵＩを使用することを可能にすることとしても述べられる。登録されたアプリケーションに関する情報は、アプリケーション登録ストア７０８の中に保持される。アプリケーション格付けモジュール７０４は、登録されたアプリケーションの格付けを決定し、登録されたアプリケーションは、それらのアプリケーションの格付けに応じてシステムレベル検索ＵＩのアプリケーション識別部分において表示される。ユーザーインターフェースモジュール７０２は、システムレベル検索ＵＩとして表示されるべき情報を生成し、システムレベル検索モジュール７００が配置されているコンピューティングデバイスの表示モジュールに（例えば、図１の表示モジュール１１６に）その情報を供給する。また、ＵＩモジュール７０２は、ユーザー選択のアプリケーションを起動すること、検索語をアプリケーションに通信すること、およびシステムレベル検索ＵＩの一部として表示されるべき情報をアプリケーションから受け取ることを含め、アプリケーション（例えば、図１のアプリケーション１１２）と対話する。
【００３６】
[0042]システムレベル検索ＵＩのアプリケーション識別部分において表示されるように、アプリケーションは、システムレベル検索モジュール７００に登録する。アプリケーション登録モジュール７０６が、アプリケーションと通信し、適切な登録情報をアプリケーション登録ストア７０８の中に保存して、システムレベル検索モジュール７００に関する登録プロセスを管理する。アプリケーションは、アプリケーションが、システムレベル検索モジュール７００と同一のコンピューティングデバイス上にインストールされた際、システムレベル検索モジュール７０７と同一のコンピューティングデバイス上のアプリケーションのアップグレードがインストールされた際、システムレベル検索モジュール７００に登録するユーザーからの要求に応答して、システムレベル検索モジュール７００に登録する別のモジュールまたはデバイスからの要求に応答してなど、様々な時点でシステムレベル検索モジュール７００に登録され得る。
【００３７】
[0043]さらに、アプリケーション自体が、システムレベル検索モジュール７００に自らを登録する登録プロセスを実行することが可能であり、または代替として、別のアプリケーションもしくは別のモジュールが、システムレベル検索モジュール７００にそのアプリケーションを登録する登録プロセスを実行することが可能である。例えば、インストーラーアプリケーションもしくはインストーラーモジュールが、システムレベル検索モジュール７００を含むコンピューティングデバイスにアプリケーションをインストールする際、システムレベル検索モジュール７００にアプリケーションを登録する登録プロセスを実行することが可能である。
【００３８】
[0044]登録プロセスの一環として、登録が行われているアプリケーションに関する登録情報が、アプリケーション登録モジュール７０６に供給される。様々な異なる登録情報が、アプリケーション登録モジュール７０６に供給され得る。１つまたは複数の実施形態において、登録情報は、登録が行われているアプリケーションがＵＩモジュール７０２によってどのように起動されるべきか、および検索語がアプリケーションにどのように供給されるべきかの指示を含む。アプリケーションがＵＩモジュール７０２によってどのように起動されるべきかのこの指示は、アプリケーションごとに異なる可能性があり、例えば、実行されるべき実行可能ファイルの指示、そのファイルを実行することを開始する際に使用されるべき、もしくはアプリケーションが実行されるようになった後にアプリケーションに送られるべき１つまたは複数のパラメータの指示、アプリケーションに１つまたは複数のパラメータを送るために呼び出すべきアプリケーションの１つまたは複数のアプリケーションプログラミングインターフェース（ＡＰＩ）の指示などを含み得る。同様に、モジュール７０２によってアプリケーションにどのように検索語が供給されるべきかの指示は、アプリケーションごとに異なる可能性があり、例えば、アプリケーションを実行することを開始する際にアプリケーションにどのように検索語（および、オプションとして、他のコンテキスト情報）が供給されるべきかの指示、アプリケーションに検索語（および、オプションとして、他のコンテキスト情報）を送るために呼び出すべきアプリケーションの１つまたは複数のＡＰＩの指示などを含み得る。
【００３９】
[0045]他の様々な情報が、登録情報に含められ得る。例えば、登録情報は、アプリケーションが分類される特定のアプリケーションカテゴリー（例えば、ゲーム、音楽、映画、出版物、買い物、生産性、およびソーシャルネットワーキングなど）、アプリケーションがサービスを提供する特定のタイプのコンテンツ（例えば映画、電子書籍、ゲーム、音楽など）、ならびにアプリケーションによって使用されるウェブドメイン（例えば、ネットワークを介してアクセスされるデバイスまたはサービスのウェブドメイン）などの、アプリケーションを記述するメタデータを含み得る。別の例として、登録情報は、アプリケーションが、システムレベル検索ＵＩのアプリケーション識別部分においてどのように識別されるべきかを示す情報（例えば、使用すべき１つまたは複数のアイコン、使用すべき１つまたは複数の名前、使用すべき１つまたは複数の色もしくはフォント、表示すべき１つまたは複数のアニメーションなど）を含み得る。さらに別の例として、登録情報は、アプリケーションの要件を記述する情報（例えば、アプリケーションが、別のデバイスまたは別のサービスに対するインターネットアクセスまたは他のネットワークアクセスに依拠するかどうか）を含み得る。
【００４０】
[0046]また、登録情報は、登録が行われているアプリケーションによって、または代替として、別のデバイス、構成要素、もしくはモジュールによって供給され得ることにも留意されたい。例えば、登録情報の少なくともいくらかが、アプリケーションの販売業者または製造業者によって供給され得る。別の例として、アプリケーションは、登録情報を含む、関連するマニフェストまたは他のメタデータを有することが可能であり、そのアプリケーションのインストールを行っているインストーラーアプリケーションまたはインストーラーモジュールが、そのアプリケーションに代行して登録情報を供給することが可能である。
【００４１】
[0047]アプリケーション登録モジュール７０６は、アプリケーションに関する登録プロセスの一環として受け取られた登録情報をアプリケーション登録ストア７０８の中に格納する。登録情報は、登録情報を、対応するアプリケーション識別子と一緒に格納することなどによって、アプリケーションに関連付けられたものとして、またはアプリケーションに対応するものとして格納される。アプリケーション識別子は、アプリケーション名と製造業者の組合せ、アプリケーション製造業者によって、もしくはシステムレベル検索モジュール７００によってアプリケーションに割り当てられた識別子などの様々な異なる形態をとり得る。アプリケーション登録ストア７０８は、様々なアプリケーションに関する登録情報を格納するデータベース、リスト、または他のデータ構造であり得る。アプリケーション登録ストア７０８は、ユーザーインターフェースモジュール７０２によって、システムレベル検索ＵＩのアプリケーション識別部分の一部として表示されるべきアプリケーションを識別するのに、後にアクセスされ得る。
【００４２】
[0048]アプリケーション格付けモジュール７０４は、アプリケーション登録ストア７０８の中に登録された各アプリケーションに格付けを割り当てる。この格付けは、システムレベル検索ＵＩのアプリケーション識別部分においてアプリケーションが表示される順序を決定するのに使用される。さらに、システムレベル検索ＵＩによって表示され得るより多くのアプリケーションがシステムレベル検索モジュール７００に登録している状況が生じ得る。そのような状況において、この格付けは、いずれのアプリケーションがシステムレベル検索ＵＩによって表示されるべきかを決定するのに使用される。代替として、アプリケーションが表示される順序、および／またはいずれのアプリケーションが表示されるかは、アプリケーション名のアルファベット順に、ランダムに、他の規則もしくは基準に従ってなど、様々な方法で決定され得る。
【００４３】
[0049]アプリケーション格付けモジュール７０４は、アプリケーションを記述する（かつアプリケーションの登録情報として含められる）メタデータ、およびアプリケーションに関する利用状況データ（usage data）などの様々な異なる基準を、アプリケーションを格付けする際に使用することができる。アプリケーション格付けモジュール７０４は、システムレベル検索ＵＩがアクティブにされたこと、システムレベル検索ＵＩのアプリケーション識別部分を表示するユーザー要求（例えば、図２のメニューアイコン２１０を選択することによる）、検索語がユーザーによって入力されることなどの、様々なイベントに応答して格付けを決定することが可能である。代替として、アプリケーション格付けモジュール７０４は、アプリケーションの格付けを事前決定し、システムレベル検索ＵＩのアプリケーション識別部分が表示される際、これらの事前決定された格付けを使用することが可能である。これらの事前決定された格付けは、規則的な間隔で生成されることも、不規則な間隔で生成されることも可能である（例えば、ほぼ毎日もしくは毎週、新たなアプリケーションがアプリケーション登録モジュール７０６に登録した際など）。これらの事前決定された格付けは、アプリケーション登録ストア７０８の中に保持され得（例えば、アプリケーション格付けは、登録情報と一緒に格納され得る）、または代替として、別の場所に格納され得る。
【００４４】
[0050]アプリケーション格付けモジュール７０４によって決定される格付けは、特定のスコア（例えば、１から１００までの範囲内の値）であることが可能であり、または代替として、特定のアプリケーションが、他の任意のアプリケーションと比べて、より高く格付けされるか、またはより低く格付けされるかの判定が、容易に行われ得るように、最高の格付けから最低の格付けまでのアプリケーションの順序付けであることが可能である。より高いスコア、またはより高い格付けを有するアプリケーションが、より低いスコア、またはより低い格付けを有するアプリケーションと比べて、ユーザーによって入力された検索語により関係があると通常、考えられ、ただし、より低いスコア、またはより低い格付けを有するアプリケーションが、より高いスコア、またはより高い格付けを有するアプリケーションと比べて、ユーザーによって入力された検索語により関係があると考えられることも可能である。
【００４５】
[0051]１つまたは複数の実施形態において、特定のアプリケーションの格付けを決定するのに、格付けモジュール７０４は、その特定のアプリケーションの特性を識別する。その特定のアプリケーションの様々な特性が、特定のアプリケーションの格付けを決定するのに使用され得る。複数の特性が、特定のアプリケーションの格付けを決定するのに使用されることも、または代替として、単一の特性が、特定のアプリケーションの格付けを決定するのに使用されることもある。格付けを決定するのに使用されているこれらの特性のそれぞれに関して特定の関連度スコアが生成され、これらの関連度スコアが、１つまたは複数の格付けアルゴリズムに入力される。この１つまたは複数の格付けアルゴリズムが、入力された関連度スコアを組み合わせて（例えば、スコアを足すことによって、関連度スコアのそれぞれに重みを割り当て、重み付けされた関連度スコアを足すことによってなど）、アプリケーションの格付けを生成する。アプリケーションの関連度スコアの組合せが、アプリケーションの格付けであり得る。代替として、登録されたアプリケーションのすべてのアプリケーションの総合関連度スコアが生成され得、それらの登録されたアプリケーションが、それらのアプリケーションの総合関連度スコアに基づいて順序付けされ得（例えば、最高の総合関連度スコアから最低の総合関連度スコアまで）、この順序付けが、アプリケーションの格付けであり得る。
【００４６】
[0052]アプリケーションの格付けを決定するのに使用され得る１つの特性が、アプリケーションを記述するメタデータである。アプリケーションを記述するメタデータは、前述のように、アプリケーションに関する登録情報として供給される。アプリケーション格付けモジュール７０４が、現在アクティブなアプリケーションのアプリケーションカテゴリーを識別する（例えば、現在アクティブなアプリケーションの識別子は、オペレーティングシステムから獲得され、アプリケーション登録ストア７０８の中で、そのアプリケーションに関する登録情報を特定するルックアップとして使用され得る）。アプリケーションが、現在アクティブなアプリケーションと同一のカテゴリーに入っている場合、そのアプリケーションには、より高い関連度スコア（例えば、１という値）が割り当てられ、アプリケーションが、アクティブなアプリケーションと同一のカテゴリーに入っていない場合、そのアプリケーションには、より低い関連度（例えば、０という値）が割り当てられる。
【００４７】
[0053]アプリケーションの格付けを決定するのに使用され得る別の特性が、アプリケーションに関する利用状況データである。アプリケーションの利用状況に関する情報は、システムレベル検索モジュール７００によって監視され、保持され得る。ユーザーが、システムレベル検索モジュール７００を使用して、検索が行われるべきアプリケーション、および検索語を選択すると、システムレベル検索モジュール７００によって、いずれのアプリケーションが、検索が行われるように選択されたかに関する情報、および検索するために入力された検索語が、容易に識別され得、そのようなレコードが、保持され得る。アプリケーションの利用状況に関する情報は、例えば、アプリケーションが、システムレベル検索ＵＩを介して、検索が行われるべきアプリケーションとしてどれだけ頻繁に選択されたか、アプリケーションが、システムレベル検索ＵＩを介して、検索が行われるべきアプリケーションとして選択されたのは、どれだけ現時点から近いか、アプリケーションが、システムレベル検索ＵＩを介して、現在の検索語の検索が行われるべきアプリケーションとしてどれだけ頻繁に選択されたか、アプリケーションが、システムレベル検索ＵＩを介して、現在の検索語の検索が行われるべきアプリケーションとして選択されたのは、どれだけ現時点から近いかなどであり得る。さらに、いくつかのアプリケーションが、システムレベル検索ＵＩとは別に検索が行われ得る検索ユーザーインターフェースをサポートする場合、それらのアプリケーションが、利用状況データを監視し、そのような利用状況データをアプリケーション格付けモジュール７０４にも供給することも可能である。
【００４８】
[0054]利用状況情報は、アプリケーションの関連度スコアである数値を生成するのに使用され得る。例えば、アプリケーションが、システムレベル検索ＵＩを介して、検索が行われるべきアプリケーションとして選択される頻度の数値が、（例えば、前の週、前の月などの何らかの期間にわたって）そのアプリケーションが選択された回数を、アプリケーション選択の合計回数で割ることによって生成され得る。別の例として、アプリケーションが、システムレベル検索ＵＩを介して、現在の検索語の検索が行われるべきアプリケーションとして選択されたのは、どれだけ現時点から近いかの数値が、そのアプリケーションが、システムレベル検索ＵＩを介して、現在の検索語の検索が行われるべきアプリケーションとして前回に選択されたのがどれだけ以前に遡るか（例えば、分単位、時間単位、または日数単位などで）を識別することによって生成され得る。
【００４９】
[0055]アプリケーションの格付けを決定するのに使用され得る別の特性が、アプリケーションのウェブドメインである。アプリケーションのウェブドメインは、前述のように、アプリケーションに関する登録情報として供給される。アプリケーション格付けモジュール７０４が、ユーザーによって入力された現在の検索語をインターネット検索エンジンに転送し、インターネット検索エンジンによって戻された結果を解析し、インターネット検索エンジンによって戻された結果の中でウェブドメインがどこに現れたかに基づいて、アプリケーションに関連度スコアを割り当てることが可能である。アプリケーションのウェブドメインに基づくアプリケーションの関連度スコアである数値は、例えば、インターネット検索エンジンによって戻された結果の中でそのウェブドメインがどれだけ高いか、または早いかを識別することによって、生成され得る。例えば、インターネット検索エンジンによって戻された結果が、そのアプリケーションのウェブドメインを最初の結果としてリストアップする場合、そのアプリケーションの関連度スコアは、１（または代替として、或る特定の値から１を引いた値）である。別の例として、インターネット検索エンジンによって戻された結果が、そのアプリケーションのウェブドメインを一番上から、つまり、最初の検索結果から５番目の結果としてリストアップする場合、そのアプリケーションの関連度スコアは、５（または代替として、或る特定の値から５を引いた値）である。代替として、インターネット検索エンジンによって戻された結果が、そのウェブドメインを含む結果が全く利用できないことを示す場合、そのアプリケーションは、システムレベル検索ＵＩのアプリケーション識別部分において表示されるアプリケーションから除外され得る。例えば、アプリケーション格付けモジュール７０４が、そのアプリケーションが除外されるべきことをユーザーインターフェースモジュール７０２に示すことが可能であり、これに応答して、ユーザーインターフェースモジュール７０２が、システムレベル検索ＵＩのアプリケーション識別部分にそのアプリケーションの識別子を含めない。代替として、アプリケーション格付けモジュール７０４が、そのアプリケーションのウェブドメインを、そのアプリケーションの関連度スコアを戻すウェブサービスに転送することが可能である。このウェブサービスが関連度スコアを決定する方法は、様々であることが可能であり、このウェブサービスによって決定される。
【００５０】
[0056]代替の実施形態において、アプリケーション格付けモジュール７０４が、ユーザーによって指定された（かつ様々な異なる方法で入力され得る）アプリケーションの格付けを保持する。このため、ユーザーは、ユーザーが所望するとおりにアプリケーションの格付けをカスタマイズすることができる。アプリケーション格付けモジュール７０４は、アプリケーションの格付けを決定するのに他のいずれの基準を使用する必要もなく、単に、ユーザーによって指定された格付けを、アプリケーション格付けモジュール７０４によって生成された、または決定された格付けとして使用することができる。アプリケーションの、これらのユーザーによって指定された格付けは、登録されたアプリケーションに関するその他の情報と一緒にアプリケーション登録ストア７０８の中に保持されても、または代替として、別の場所に保持されてもよい。
【００５１】
[0057]ユーザーインターフェースモジュール７０２が、アプリケーション登録ストア７０８の中の情報、およびアプリケーション格付けモジュール７０４によって生成された格付けを使用して、システムレベル検索ＵＩのアプリケーション識別部分に含めるべきアプリケーション、および／またはシステムレベル検索ＵＩのアプリケーション識別部分に含められるアプリケーションの順序付けを決定する。１つまたは複数の実施形態において、システムレベル検索ＵＩのアプリケーション識別部分が、しきい値数を超えないアプリケーションしか表示しないことが可能である。しきい値数を超えるアプリケーションがシステムレベル検索モジュール７００に登録された場合、ユーザーインターフェースモジュール７０２は、システムレベル検索モジュール７００に登録されており、上位の格付け（または代替として、下位の格付け）を有するしきい値数のアプリケーションを選択する。例えば、システムレベル検索ＵＩのアプリケーション識別部分が、５つだけのアプリケーション識別子しか表示できない場合、ユーザーインターフェースモジュール７０２は、格付けが上位の方から５つのアプリケーション（例えば、大きい方から５つの総合関連度スコアを有するアプリケーション、アプリケーションの総合関連度スコアに基づくアプリケーションの順序付けの最初の５つのアプリケーションまたは終わりの５つのアプリケーションなど）を選択し、それらの格付けが上位の方から５つのアプリケーション識別子を、システムレベル検索ＵＩのアプリケーション識別部分に含める。アプリケーションのしきい値数は、オプションとして、システムレベル検索モジュール７００のユーザーまたは管理者によって構成され得る。
【００５２】
[0058]また、ユーザーインターフェースモジュール７０２は、アプリケーション登録ストア７０８の中の情報を使用して、システムレベル検索ＵＩのアプリケーション識別部分に含めるべきアプリケーションを決定することもできる。１つまたは複数の実施形態において、アプリケーションによって供給される登録情報は、前述のように、アプリケーションの要件を含む。ユーザーインターフェースモジュール７０２は、これらの要件が満たされているかどうかを確認し、これらの要件が満たされていない場合、システムレベル検索ＵＩのアプリケーション識別部分にそのアプリケーションを含めない。
【００５３】
[0059]ユーザーインターフェースモジュール７０２が、アプリケーションの要件が満たされているかどうかを判定する方法は、特定の要件に基づいて異なる。例えば、登録情報は、インターネット接続が要求される（例えば、図１のコンピューティングデバイスなどの、遠隔コンピューティングデバイス上のデータストアにアクセスするのに）ことを示し得る。ユーザーインターフェースモジュール７０２は、或る構成要素、または或るモジュール（例えば、システムレベル検索モジュール７００と同一のコンピューティングデバイス上のオペレーティングシステムの）にクエリを行って、そのコンピューティングデバイスが、現在インターネット接続を有するかどうかを判定する。コンピューティングデバイスが、現在インターネット接続を有する場合、その要件は満たされ、そのアプリケーションが、システムレベル検索ＵＩのアプリケーション識別部分に含められ得る。しかし、コンピューティングデバイスが、現在インターネット接続を有さない場合、その要件は満たされず、そのアプリケーションは、システムレベル検索ＵＩのアプリケーション識別部分に含められない。代替として、コンピューティングデバイスが、現在インターネット接続を有さない場合、そのアプリケーションは、アプリケーション識別部分において表示され得るが、異なる外観で（例えば、そのアプリケーションが検索語を検索することができない可能性があることを示すように陰影で覆われて）、またはそのアプリケーションが検索語を検索することができない可能性があるというテキスト、アイコン、または他の何らかの指示を伴って表示される。
【００５４】
[0060]さらに、１つまたは複数の実施形態において、ユーザーインターフェースモジュール７０２は、格付けに基づいて、システムレベル検索ＵＩのアプリケーション識別部分に含められるアプリケーションの順序付けを決定する。アプリケーション識別子は、アプリケーションの格付けによる順序でシステムレベル検索ＵＩのアプリケーション識別部分において表示される。アプリケーション識別子が、アプリケーションの格付けに応じて表示される方法は、実施形態により異なり得る。例えば、アプリケーション識別子は、最高の格付けから最低の格付けの順でシステムレベル検索ＵＩのアプリケーション識別部分において上から下に表示され得る。例えば、図２を参照すると、「アプリケーション３名前」によって識別されるアプリケーションが、「アプリケーション１名前」によって識別されるアプリケーションより高い格付けを有する。別の例として、アプリケーション識別子は、最高の格付けから最低の格付けの順でシステムレベル検索ＵＩのアプリケーション識別部分において左から右に表示され得る。例えば、図３を参照すると、封筒で識別されるアプリケーションが、コーヒーカップで識別されるアプリケーションと比べて、より高い格付けを有するとともに、「Ｍ」という文字で識別されるアプリケーションと比べて、より低い格付けを有する。
【００５５】
[0061]また、ユーザーインターフェースモジュール７０２は、格付けに基づいて、アプリケーション識別子に他の様々な変更を行うことも可能である。例えば、格付けのより高いアプリケーション（例えば、格付けが最上位方から１つまたは複数のアプリケーション、或るしきい値を超えた格付けを有するアプリケーション）のアプリケーション識別子が、異なるフォントで、異なる色で、アニメーションを用いて、より大きいサイズおよびその他で表示され得る。別の例として、アプリケーション識別子は、格付けが上位のアプリケーションのアプリケーション識別子が、格付けが下位のアプリケーションのアプリケーション識別子と比べて、より大きいアイコン、シンボル、フォントサイズなどであるようにして、様々なサイズで表示され得る。
【００５６】
[0062]このように、ユーザーインターフェースモジュール７０２は、アプリケーションの格付けに基づいて、システムレベル検索ＵＩのアプリケーション識別部分においてアプリケーション識別子を表示する。ユーザーインターフェースモジュール７０２によって表示されるアプリケーション識別子は、アプリケーション登録ストア７０８から獲得される（そのアプリケーションに関する登録プロセス中に供給されたとおり）。ユーザーが、特定のアプリケーション識別子を選択すると、ユーザーインターフェースモジュール７０２が、アプリケーション登録ストア７０８にアクセスして、そのアプリケーションをどのように起動すべきかを識別する。ユーザーインターフェースモジュール７０２は、この情報をアプリケーション登録ストア７０８から取り出し、この情報をオペレーティングシステムに供給し、次に、オペレーティングシステムが、選択されたアプリケーションを起動する。さらに、ユーザーインターフェースモジュール７０２が、システムレベル検索ＵＩのデータエントリー部分においてユーザーによって入力された検索語を、選択されたアプリケーションに供給する。次に、選択されたアプリケーションが、その検索語を検索し、適切な結果を表示する。検索語は、選択されたアプリケーションによって前もって供給された登録情報の中でその選択されたアプリケーションによって示された方法で、その選択されたアプリケーションに与えられる。
【００５７】
[0063]また、ユーザーインターフェースモジュール７０２は、検索を実行しているアプリケーション（前述のように、選択されたアプリケーション、または現在アクティブなアプリケーションであり得る）に様々なさらなるコンテキスト情報を供給することも可能である。コンテキスト情報とは、コンピューティングデバイスのユーザー、および／または要求されている検索に関する情報を指す（検索語自体、検索に関するコンテキスト情報と呼ばれ得る）。コンテキスト情報は、例えば、コンピューティングデバイスのユーザーの識別子（例えば、オペレーティングシステムの別の構成要素またはモジュールから獲得された）、ユーザーがコンピューティングデバイスにログインしているという指示（例えば、アプリケーション自体がユーザーを識別することを可能にする）、現在アクティブなアプリケーションの指示、現在アクティブなアプリケーションのカテゴリーの指示、検索語が検索されるようにユーザーが以前に選択した１つまたは複数のアプリケーションの指示、検索語が検索されるようにユーザーが以前に選択した１つまたは複数のアプリケーションの各アプリケーションのカテゴリーの指示などを含み得る。
【００５８】
[0064]検索に関するコンテキスト情報を受け取るアプリケーションは、そのコンテキストを、アプリケーションが所望する任意の方法で使用することが可能であり、そのコンテキスト情報のすべて、またはそのコンテキスト情報のいくらかだけを使用することが可能である。例えば、アプリケーションは、検索語を使用して検索結果を生成するが、検索に関する他のいずれのコンテキスト情報も無視することが可能である。別の例として、アプリケーションは、検索語を使用して検索結果を生成し、検索語が検索されるようにユーザーが以前に選択したアプリケーションのカテゴリーも使用して、同一のカテゴリー（例えば、ユーザーによって以前に検索されたアプリケーションのカテゴリーが映画である場合、映画ファイル）のデータを含む検索結果を生成することが可能である。
【００５９】
[0065]図８は、１つまたは複数の実施形態によるシステムレベル検索モジュールにアプリケーションを登録するための例示的な登録プロセス８００を示す流れ図である。プロセス８００は、ソフトウェアで、ファームウェアで、ハードウェアで、または以上の組合せで実施され得る。図８の左側に示されるプロセス８００の動作は、図７のシステムレベル検索モジュール７００などのシステムレベル検索モジュールによって実行される。図８の右側に示されるプロセス８００の動作は、図１のアプリケーション１１２などのアプリケーションによって、および／またはそのようなアプリケーションに代わって実行される。右側に示されるプロセス８００の動作は、アプリケーション自体によって実行されること、またはアプリケーションに代わって別の構成要素もしくはモジュールによって（例えば、アプリケーションインストーラーによって、アプリケーションの販売業者または製造業者によってなど）実行され得る。プロセス８００は、動作のセットとして示され、様々な動作の作用を実行するために示される順序に限定されない。プロセス８００は、システムレベル検索モジュールにアプリケーションを登録するための例示的なプロセスであり、システムレベル検索モジュールにアプリケーションを登録することのさらなる説明が、様々な図を参照して本明細書に含められる。
【００６０】
[0066]プロセス８００で、アプリケーションに関するシステムレベル検索ＵＩ登録情報が識別される（動作８０２）。システムレベル検索ＵＩ登録情報は、アプリケーションがシステムレベル検索モジュールによってどのように起動されるべきかの指示を含む。また、様々なさらなる情報が、前述のように、システムレベル検索ＵＩ登録情報として識別されることも可能である。
【００６１】
[0067]識別されたシステムレベル検索ＵＩ登録情報は、システムレベル検索モジュールに通信される（動作８０４）。この登録情報は、前述のように、システムレベル検索モジュールのアプリケーション登録モジュールに通信され得る。
【００６２】
[0068]システムレベル検索モジュールは、アプリケーションからシステムレベル検索ＵＩ登録情報を受け取り（動作８０６）、受け取られたシステムレベル検索ＵＩ登録情報を登録ストアに追加する（動作８０８）。
【００６３】
[0069]アプリケーションは、システムレベル検索ＵＩを使用して、検索のために選択され得るアプリケーションとして含められる（動作８１０）。アプリケーションの識別子（アプリケーションによって供給されるシステムレベル検索ＵＩ登録情報の中に含められ得る）が、ユーザーに表示されて、前述のように、１つまたは複数の検索語を検索すべきアプリケーションをユーザーが選択することができるようにすることが可能である。
【００６４】
[0070]図７に戻ると、前述のように、ユーザーインターフェースモジュール７０２が、システムレベル検索ＵＩとして表示されるべき情報を生成し、アプリケーションと対話することも行い、このことは、ユーザー選択のアプリケーションを起動することを含み得る。また、ユーザーインターフェースモジュール７０２は、現在アクティブなアプリケーションを相手にさらなる対話を行って、現在アクティブなアプリケーションに情報を供給するとともに、そのアプリケーションから情報を受け取ることも可能である。現在アクティブなアプリケーションとは、前述のように、前景で現在実行されているアプリケーション（例えば、図１のアプリケーション１１２のうちの１つ）を指し、ユーザーが対話することができるアプリケーションである。現在アクティブなアプリケーションの指示は、オペレーティングシステムのモジュールによって維持され、この指示は、オペレーティングシステムのこのモジュールからユーザーインターフェースモジュール７０２によって獲得され得る。
【００６５】
[0071]現在アクティブなアプリケーションは、ユーザー入力、および／またはコンピューティングデバイス上で実行されている別のアプリケーションもしくはモジュールからの要求に応答して、時とともに変わり得ることに留意されたい。例えば、ユーザーが、システムレベル検索ＵＩのアプリケーション識別部分から或るアプリケーション識別子を選択することが可能であり、これに応答して、選択されたアプリケーション識別子に対応するアプリケーションが、現在アクティブなアプリケーションになる。別の例として、システムレベル検索ＵＩとは別に、ユーザーが、或るアプリケーションを起動することを選択する、または対話するアプリケーションを選択することが可能であり、これに応答して、選択されたアプリケーションが、現在アクティブなアプリケーションとなる。
【００６６】
[0072]１つまたは複数の実施形態において、ユーザーインターフェースモジュール７０２が、ユーザー入力を、受け取られるにつれ、現在アクティブなアプリケーションに供給する。ユーザーによって入力された各文字、または他のシンボルが、その文字またはシンボルが入力されることに応答して、現在アクティブなアプリケーションに供給される。そのユーザー入力に応答して、現在アクティブなアプリケーションは、その入力に基づく１つ以上の候補表示される（suggested）検索語を生成すること、または全く生成しないことが可能である。現在アクティブなアプリケーションは、ユーザーによって入力された以前のデータに基づいて、アプリケーションによって保持される検索可能なデータもしくは辞書に基づいてなど、様々な異なる方法で候補表示される１つ以上の検索語を生成すること、または全く生成しないことが可能である。ユーザーインターフェースモジュール７０２に候補表示される１つ以上の検索語が戻され、または全く戻されず、モジュール７０２は、候補表示される検索語をシステムレベル検索ＵＩの一部として表示する。候補表示される検索語は、システムレベル検索ＵＩのデータ入力部分に隣接するメニュー項目のリストの中などの、様々な場所で表示され得る。ユーザーは、候補表示される検索語のうちの１つを選択することが可能であり、これに応答して、ユーザーインターフェースモジュール７０２が、その候補表示される検索語を、システムレベル検索ＵＩのデータ入力部分において表示する。
【００６７】
[0073]例えば、ユーザーが、或る検索語を入力しており、ユーザーによって入力された最初の文字が、「Ｈ」という活字である場合、ユーザーインターフェースモジュール７０２は、現在アクティブなアプリケーションに、ユーザーによって「Ｈ」という活字が入力されたという指示を送る。現在アクティブなアプリケーションは、候補表示される検索語（例えば、Ｈｏｍｅ、Ｈｏｕｓｅ、Ｈｙｄｒｏｇｅｎ、Ｈｅｌｌｏなど）を全く生成しないか、または１つ以上の候補表示される検索語を生成し、それらの候補表示される検索語をユーザーインターフェースモジュール７０２に戻す。ユーザーインターフェースモジュール７０２は、それらの候補表示される検索語を、システムレベル検索ＵＩの一部として表示する。次に、ユーザーが、それらの候補表示される検索語のうちの１つを、その候補表示される検索語にスタイラスもしくは指で触れること、その候補表示される検索語の上でポインタを操作し、カーソル制御デバイス（例えば、マウス）のボタンを押すことなどの様々な異なる操作で（例えば、図１の入力モジュール１１４を介して）、ユーザーによって所望される検索語の少なくとも一部として選択することができる。候補表示される検索語のユーザー選択に応答して、ユーザーインターフェースモジュール７０２が、システムレベル検索ＵＩのデータエントリー部分において、選択された候補表示される検索語を表示する。
【００６８】
[0074]この例を続けると、ユーザーが、候補表示される検索語のうちの１つを選択せず、代わりに、「ｅ」という活字を入力して、現時点までのユーザーの入力が「Ｈｅ」であるようにする場合、ユーザーインターフェースモジュール７０２は、ユーザーによって「Ｈｅ」という活字が入力されたという指示を現在アクティブなアプリケーションに送る。現在アクティブなアプリケーションは、候補表示される１つ以上の検索語（例えば、Ｈｅｌｐ、Ｈｅｌｌｏ、Ｈｅｎｒｙなど）を全く生成しないか、または候補表示される１つ以上の検索語を生成し、それらの候補表示される検索語をユーザーインターフェースモジュール７０２に戻す。ユーザーインターフェースモジュール７０２は、これらの新たに候補表示される検索語を、システムレベル検索ＵＩの一部として表示する。このプロセスは、ユーザーが入力した検索語を検索すべきアプリケーションをユーザーが選択するまで続くことが可能である。
【００６９】
[0075]候補表示される検索語は、テキスト検索語であるものとして本明細書で説明されるものの、様々な他のコンテンツ、および／または様々な他のタイプのコンテンツが、ユーザーインターフェースモジュール７０２に戻され得る。この他のコンテンツ、および／またはこれらの他のタイプのコンテンツは、戻される、候補表示される検索語に加えて、または代替として、そのような検索語の代わりに、ユーザーインターフェースモジュール７０２によって表示される、またはそれ以外で提示されることもある。例えば、候補表示される１つまたは複数の検索語と関係する１つまたは複数の画像が戻され、表示され得、候補表示される１つまたは複数の検索語と関係するさらなる説明的なテキストが戻され、表示され得、候補表示される１つまたは複数の検索語と関係するオーディオコンテンツが戻され、さらに再生され得るといった具合である。
【００７０】
[0076]図９は、１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを含む別の例示的な画面表示９０２を示す。画面表示９０２は、図４の画面表示４０２に類似する。しかし、画面表示９０２はまた、候補表示される複数の検索語を候補表示リスト９０４としても表示する。図示される例において、ユーザーが、「Ｈａ」という文字を入力しており、現在アクティブなアプリケーションが、Ｈａｎｄｌｅ、Ｈａｒｒｙ、Ｈａｓｔｙ、およびＨａｌｉｂｕｔという候補表示される検索語を与えている。候補表示リスト９０４が、データ入力部分２０６の上に隣接して例示される。しかし、候補表示リスト９０４は、画面表示２０２上のどこにでも（ただし、通常、データ入力部分２０６、アプリケーション識別部分２０８、検索ボタン２１２、またはメニューアイコン２１０を覆わないように）表示され得ることを認識されたい。例えば、候補表示リスト９０４は、画面表示９０２の最上部に、画面表示９０２の左側または右側に沿って、画面表示９０２の中央に、データ入力部分２０６に隣接しない位置になど、表示され得る。
【００７１】
[0077]図７に戻ると、１つまたは複数の実施形態において、ユーザーインターフェースモジュール７０２は、アプリケーション識別部分において識別された１つまたは複数のアプリケーションのそれぞれに関して、１つまたは複数の検索結果を表示することも可能である。ユーザーインターフェースモジュール７０２は、ユーザーによって入力され、検索するためにアプリケーションに送られた検索語を（例えば、図２〜図６、および図９の検索ボタン２１２などの検索ボタンのユーザー選択、またはアプリケーション識別部分における別のアプリケーションの選択に応答して）、アプリケーション識別部分において識別された１つまたは複数のアプリケーションのそれぞれに供給することが可能であり、それらの１つまたは複数のアプリケーションがそれぞれ、その検索語に基づく１つまたは複数の検索結果をモジュール７０２に戻すことが可能である。次に、ユーザーインターフェースモジュール７０２が、アプリケーション識別部分においてそれらの１つまたは複数の検索結果を、それらの検索結果を戻したアプリケーションに関連するものとして（例えば、そのアプリケーションの識別子の下に隣接して、そのアプリケーションの識別子の上に隣接して、そのアプリケーションを識別するアイコンまたはテキストと一緒になど）表示することが可能である。このため、ユーザーには、ユーザーがもしそのプリケーションを選択したとする場合、アプリケーション識別部分におけるアプリケーションが戻すことになる結果のプレビューが与えられ得る。
【００７２】
[0078]代替として、ユーザーインターフェースモジュール７０２は、アプリケーション識別部分において識別された１つまたは複数のアプリケーションのそれぞれに、ユーザーによって入力され、検索するためにアプリケーションに送られた検索語を供給することに加えて、またはそうする代わりに、ユーザー入力を、受け取られるにつれ、アプリケーション識別部分において識別された１つまたは複数のアプリケーションのそれぞれに供給することが可能である。それらの１つまたは複数のアプリケーションのそれぞれが、受け取られたユーザー入力に基づいて、１つまたは複数の検索結果を戻すことが可能であり、それぞれが、その検索語に基づく１つまたは複数の検索結果をモジュール７０２に戻すことが可能である。次に、ユーザーインターフェースモジュール７０２が、前述のように、アプリケーション識別部分においてそれらの１つまたは複数の検索結果を、それらの検索結果を戻したアプリケーションに関連するものとして表示することが可能である。
【００７３】
[0079]さらに、１つまたは複数の実施形態において、ユーザーインターフェースモジュール７０２が、候補表示される検索語を、いくつかの言語に関する言語的代替案（linguistic alternatives）と一緒に表示することをサポートする。東アジアの言語（例えば、日本語、中国語、および朝鮮語）などのいくつかの言語は、キーボードの個々のキーに対応しない多数の文字から成る。ロシア語などの他の言語は、異なる複数のアルファベット（例えば、ロシア語の事例では、ローマ字またはキリル文字）を使用して表され得る。ユーザーインターフェースモジュール７０２は、そのような言語に関して言語的代替案を用いて検索語を表示することをサポートする。
【００７４】
[0080]図１０は、１つまたは複数の実施形態による候補表示される検索語に関する言語的代替案をサポートする例示的なシステム１０００を示すブロック図である。システム１０００は、ユーザーインターフェースモジュール１００２と、アプリケーション１００４と、言語的代替案生成モジュール１００６とを含む。ユーザーインターフェースモジュール１００２は、例えば、図７のユーザーインターフェースモジュール７０２であり得る。アプリケーション１００４は、例えば、図１のアプリケーション１１２であり得る。
【００７５】
[0081]ユーザーインターフェースモジュール１００２がユーザー入力を受け取るにつれ、モジュール１００２は、そのユーザー入力を、受け取られるにつれ、言語的代替案生成モジュール１００６に供給する。言語的代替案生成モジュール１００６は、様々な異なる方法でユーザー入力に関する言語的代替案を識別することが可能であり、それらの言語的代替案をユーザーインターフェースモジュール１００２に戻す。言語的代替案生成モジュール１００６は、通常、ユーザー入力に関する１つまたは複数の言語的代替案を識別し、それらの１つまたは複数の言語的代替案をユーザーインターフェースモジュール１００２に戻す。しかし、言語的代替案生成モジュール１００６は、通常、言語的代替案を戻すことを要求されない（しかし、代替として、要求され得る）ことに留意されたい。したがって、言語的代替案生成モジュール１００６が、特定のユーザー入力に関して全く言語的代替案を識別せず、戻さない状況が生じ得る。
【００７６】
[0082]１つまたは複数の実施形態において、言語的代替案生成モジュール１００６は、ユーザー入力を１つの文字体系から別の文字体系に変換することによって、ユーザー入力に関する言語的代替案を識別する。例えば、ロシア語の事例において、ユーザー入力がローマ字である場合、言語的代替案生成モジュール１００６は、それらのローマ字をキリル文字に変換する。言語的代替案生成モジュール１００６は、ユーザー入力の変換（キリル文字の）を、１つまたは複数の言語的代替案として戻す。
【００７７】
[0083]さらに、１つまたは複数の実施形態において、言語的代替案生成モジュール１００６は、音声的音節によって表され得る１つまたは複数の文字を識別する。一部の東アジアの言語などの一部の状況において、特定の文字を入力するために、ユーザーは、音声的音節を複数のローマ字として入力する。例えば、ユーザーは、異なる複数の漢字に対応し得る、「ｂｅｉ」というローマ字を使用して或る音声的音節を入力することが可能である。言語的代替案生成モジュール１００６は、特定のユーザー入力に対応する、文字を全く識別しないか、または１つ以上の異なる文字を識別し、それらの識別された文字を言語的代替案としてユーザーインターフェースモジュール１００２に戻す。例えば、ユーザー入力が「ｂｅｉ」であった場合、言語的代替案生成モジュール１００６は、「ｂｅｉ」によって表され得る様々な漢字を識別し、それらの漢字を言語的代替案としてユーザーインターフェースモジュール１００２に戻す。別の例として、ユーザー入力が「ｈ」であった場合、言語的代替案生成モジュール１００６は、「ｈ」によって表され得る様々な漢字（「ｈ」で始まる異なる複数の音声的音節を含む）を識別し、それらの漢字を言語的代替案としてユーザーインターフェースモジュール１００２に戻す。
【００７８】
[0084]言語的代替案生成モジュール１００６は、特定の言語のために、または代替として、複数の言語のために構成され得る。例えば、言語的代替案生成モジュール１００６が代替をもたらす言語を識別する構成設定が、システム１０００を含むコンピューティングデバイスのユーザーによって、アプリケーション１００４によって、ユーザーインターフェースモジュール１００２によってなど、与えられ得る。別の例として、異なる言語ごとに、異なる言語的代替案生成モジュール１００６がシステム１００に含められ得る（例えば、ロシア語のために１つのモジュール１００６、中国語のために別のモジュール１００６、日本語のために別のモジュール１００６といった具合に）。ユーザーインターフェースモジュール１００２は、言語的代替案が所望される言語に依存して（例えば、システム１０００を含むコンピューティングデバイスのユーザー、アプリケーション１００４、ユーザーインターフェースモジュール１００２などによって示されるとおり）、これらの異なるモジュール１００６のうちの１つまたは複数にユーザー入力を供給することが可能である。
【００７９】
[0085]ユーザーインターフェースモジュール１００２が、言語的代替案生成モジュール１００６から言語的代替案を受け取り、ユーザー入力と言語的代替案の両方をアプリケーション１００４に供給する。言語的代替案が、言語的代替案生成モジュール１００６から全く受け取られない場合、ユーザーインターフェースモジュール１００２は、ユーザー入力だけをアプリケーション１００４に供給する。次に、アプリケーション１００４は、ユーザー入力または言語的代替案に基づいて、あるいはユーザー入力と言語的代替案またはその両方に基づいて候補表示される１つ以上の検索語を決定すること、または全く決定しないことが可能である。アプリケーション１００４自体が、候補表示される検索語の決定が基づけられるユーザー入力と言語的代替案の特定の組合せを決定する。候補表示される検索語は、ユーザーインターフェースモジュール１００２に戻され、モジュール１００２が、候補表示される検索語を、システムレベル検索ＵＩの一部として表示する。候補表示される検索語は、言語的代替案に基づき得るので、候補表示される検索語は、様々な異なる文字体系および／または言語のものであり得る。例えば、候補表示される検索語には、「ｂｅｉ」で始まる英語の語、および「ｂｅｉ」によって表される漢字が含まれ得る。
【００８０】
[0086]図７に戻ると、候補表示される検索語をもたらすことに加えて、または代替的に候補表示される検索語をもたらすことの代替として、現在アクティブなアプリケーションは、ユーザーによって各文字または他のシンボルが入力されるにつれ、検索結果をもたらし得る。現在アクティブなアプリケーションは、ユーザーによって入力された文字または他のシンボルに基づいて検索結果を生成し、それらの文字またはシンボルを検索語として使用する（ユーザーは、ユーザーが検索語として所望する語をまだ完全には入力していない可能性があるものの）。これらの検索結果が、現在アクティブなアプリケーションによって表示され（例えば、図５のウインドウ４０４内に）、ユーザーによってさらなる文字またはシンボルが入力されるたびに、現在アクティブなアプリケーションによって更新され得る。
【００８１】
[0087]さらに、１つまたは複数の実施形態において、現在アクティブなアプリケーションが、オプションとして、データ入力キューをユーザーインターフェースモジュール７０２に与える。このデータ入力キューは、ユーザーを支援するヘルパテキスト、画像、アニメーションなどであり得る。例えば、データ入力キューは、「ここに検索語を入力してください」または「ここに映画の題名を入力してください」というテキストであり得る。現在アクティブなアプリケーションによって与えられる場合、データ入力キューは、ユーザーが検索語をどこに入力することがでるかを特定する際にユーザーを支援するようにユーザーインターフェースモジュール７０２によって表示される。データ入力キューは、システムレベル検索ＵＩのデータ入力部分において表示され得（例えば、さらにデータ入力キューの表示は、ユーザーが最初の文字またはシンボルを入力すると、終わることが可能である）、または代替として、システムレベル検索ＵＩのデータ入力部分に隣接してなど、別の位置に表示され得る。
【００８２】
[0088]現在アクティブなアプリケーションとユーザーインターフェースモジュール７０２の間の通信は、様々な異なる方法で実施され得る。１つまたは複数の実施形態において、各アプリケーションが、そのアプリケーションとユーザーインターフェースモジュール７０２の間の通信を円滑にするクラスオブジェクトを作成する。アプリケーションによって作成されたクラスオブジェクトは、そのアプリケーションが、ユーザーインターフェースモジュール７０２から通信（例えば、ユーザー入力）を受け取ること、およびユーザーインターフェースモジュール７０２にデータ（例えば、データ入力キュー、候補表示される検索語）を供給することができるようにする。ユーザーインターフェースモジュール７０２は、現在アクティブなアプリケーションのクラスオブジェクトだけにデータを通信し、現在アクティブなアプリケーションのクラスオブジェクトだけからの通信を受け入れる。代替として、現在アクティブなアプリケーションとユーザーインターフェースモジュール７０２の間の通信は、ユーザーインターフェースモジュール７０２とアプリケーションの間にインターフェースを実施すること、ユーザーインターフェースモジュール７０２が、アプリケーションによって呼び出され得るＡＰＩを公開することなどの、そのようなクラスオブジェクトを使用すること以外の、他の従来の方法で実施され得る。
【００８３】
[0089]図１１は、１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを使用するための例示的なプロセス１１００を示す流れ図である。プロセス１１００は、図７のシステムレベル検索モジュール７００のようなシステムレベル検索モジュールによって実行され、ソフトウェアで、ファームウェアで、ハードウェアで、または以上の組合せで実施され得る。プロセス１１００は、動作のセットとして示され、様々な動作の作用を実行するために示される順序に限定されない。プロセス１１００は、システムレベル検索ユーザーインターフェースを使用するための例示的なプロセスであり、システムレベル検索ユーザーインターフェースを使用することのさらなる説明は、様々な図を参照して本明細書に含められる。
【００８４】
[0090]プロセス１１００において、データエントリー部分とアプリケーション識別部分の両方を含むシステムレベル検索ＵＩが表示される（動作１１０２）。システムレベル検索ＵＩは、前述のように、画面表示上の様々な異なる位置に表示され得る。
【００８５】
[0091]ユーザーによって入力されたデータが、システムレベル検索ＵＩのデータエントリー部分において表示される（動作１１０４）。データは、前述のように、様々な異なる方法でユーザーによって入力され得る。
【００８６】
[0092]ユーザーによって入力されたデータを使用して検索され得る１つまたは複数のアプリケーションの識別子が、アプリケーション識別部分において表示される（動作１１０６）。これらの識別子は、前述のように、名前、アイコン、アニメーションなどの様々な異なる形態をとり得る。動作１１０６において表示される識別子は、システムレベル検索ＵＩで使用されるように登録した１つまたは複数のアプリケーションの識別子であり、前述のように、様々な方法で選択され得る。
【００８７】
[0093]ユーザーによって入力されたデータは、システムレベル検索ＵＩを実施するデバイス上の複数のアプリケーションのうちの１つに供給される（動作１１０８）。前述のように、データ入力は、現在アクティブなアプリケーションに供給され得（例えば、前述のように、検索ボタンの選択によって）、またはアプリケーション識別部分において表示され、ユーザー選択のアプリケーション識別子に対応するアプリケーションに供給され得る。
【００８８】
[0094]システムレベル検索ＵＩ表示は、ユーザーによって入力されたデータが供給されるアプリケーションが、ユーザーによって入力されたデータに基づく検索結果を獲得し、表示する間、保持される（動作１１１０）。アプリケーションが、前述のように、検索結果の表示（例えば、アプリケーションのウインドウ内の）を管理する一方で、システムレベル検索ＵＩは、表示されたままである。
【００８９】
[0095]図１２は、１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースのアプリケーション識別部分においてアプリケーション識別子を表示するための例示的なプロセス１２００を示す流れ図である。プロセス１２００は、図７のシステムレベル検索モジュール７００のようなシステムレベル検索モジュールによって実行され、ソフトウェアで、ファームウェアで、ハードウェアで、または以上の組合せで実施され得る。プロセス１２００は、動作のセットとして示され、様々な動作の作用を実行するために示される順序に限定されない。プロセス１２００は、システムレベル検索ユーザーインターフェースのアプリケーション識別部分においてアプリケーション識別子を表示するための例示的なプロセスであり、システムレベル検索ユーザーインターフェースのアプリケーション識別部分においてアプリケーション識別子を表示することのさらなる説明が、様々な図を参照して本明細書に含められる。
【００９０】
[0096]プロセス１２００で、システムレベル検索ＵＩを使用して検索され得る複数のアプリケーションが識別される（動作１２０２）。これらの複数のアプリケーションは、前述のように、システムレベル検索ＵＩを使用するように登録しているアプリケーションである。
【００９１】
[0097]複数のアプリケーションのそれぞれに関する格付けが生成される（動作１２０４）。これらの格付けは、オプションとして、ユーザーによって指定された格付けを使用することを含め、前述のように、様々な異なる方法で生成され得る。これらの格付けは、例えば、前述のように、最高から最低までのアプリケーションの特定のスコアまたは順序付けであり得る。
【００９２】
[0098]システムレベル検索ＵＩにおいて識別されるべき複数のアプリケーションのうちの１つまたは複数が、少なくとも部分的に格付けに基づいて選択される（動作１２０６）。システムレベル検索ＵＩにおいて識別され得るより多くのアプリケーションが存在する場合、それらのアプリケーションのうちの１つまたは複数が、前述のように、それらのアプリケーションの格付けに基づいて選択される。
【００９３】
[0099]選択された１つまたは複数のアプリケーションの識別子が、システムレベル検索ＵＩの一部として格付けに応じて表示される（動作１２０８）。アプリケーション識別子がアプリケーションの格付けに応じて表示される方法は、最高の格付け（一番上の）から最低の格付け（一番下の）まで上から下に順にアプリケーション識別子を表示すること、最高の格付け（左の）から最低の格付け（右の）まで左から右に順にアプリケーション識別子を表示することなど、前述のように、実施形態により異なり得る。
【００９４】
[00100]他のユーザーらに関する連絡先情報、映画、ゲーム、書籍、または他の刊行物などの様々な異なるタイプの情報のいずれも、ユーザーによって検索され得ることに留意されたい。さらに、１つまたは複数の実施形態において、システムレベル検索ＵＩに登録するアプリケーションのうちの１つは、コンピューティングデバイス上のアプリケーションにインデックスを付けるアプリケーションまたはモジュールである。例えば、図１のアプリケーション１１２のうちの１つが、コンピューティングデバイス１０２上の他のアプリケーション１１２を検索することが可能なアプリケーションであり得る。このため、ユーザーは、他のアプリケーション１１２、ならびにそれらのアプリケーション１１２を介して保持される、またはそれ以外でアクセス可能であるコンテンツを検索することができる。
【００９５】
[00101]本明細書の説明において、ユーザー選択のアプリケーションを起動すること、および選択されたアプリケーションが検索語を検索することについて述べた。選択されたアプリケーションが既に実行されており（例えば、背景で）、このため、起動を必要としない状況が生じ得ることに留意されたい。そのような状況において、システムレベル検索モジュール（例えば、図７のモジュール７００）が、検索語を検索する要求を、選択されたアプリケーションに通信する。これに応答して、選択されたアプリケーションが、検索語を検索し、そのアプリケーションの検索結果を表示する。１つまたは複数の実施形態において、アプリケーションは、アプリケーションがシステムレベル検索モジュールに供給する登録情報の一部として、システムレベル検索モジュールが、検索語を検索するようアプリケーションにどのように要求すべきかの指示を含める。例えば、登録情報は、アプリケーションに検索語（および、オプションとして、他のコンテキスト情報）を渡すために呼び出すべきアプリケーションの１つまたは複数のＡＰＩの指示を含み得る。代替として、アプリケーションが実行しはじめる際に、システムレベル検索モジュールが、検索語を検索するようアプリケーションにどのように要求することができるかについて、アプリケーションがシステムレベル検索モジュールに通知することが可能である、システムレベル検索モジュールが、事前確立された通信チャネルを介して、またはアプリケーションとシステムレベル検索モジュールの両方に知られているプロトコルに従って要求を通信することができるなど、他の技術が使用され得る。
【００９６】
[00102]本明細書で説明されるシステムレベル検索ＵＩは、前述のように、ユーザーが、検索語を１回、入力し、その検索語が検索されるべき様々なアプリケーションを選択することを可能にする。個別の各アプリケーションが、そのアプリケーション独自の検索を実行し、検索するためにユーザーによって選択される可能性がある他のアプリケーションについて全く知識を有さなくてもよい（通常、全く知識を有さない）。アプリケーションが検索を実行する方法、および検索を実行する際にアプリケーションによってアクセスされるデータストアは、アプリケーションごとに異なり得る。アプリケーションは、ローカルデータストア（システムレベル検索ＵＩを実施するのと同一のコンピューティングデバイス上に配置されたデータストア）、および／または遠隔データストア（例えば、図１のデバイス１０４のような別のコンピューティングデバイス上に配置されたデータストア）を検索することができる。
【００９７】
[00103]アプリケーションによって生成された検索結果は、それらの検索結果を生成するアプリケーションによって表示される。それらの検索結果は、通常、図５のウインドウ４０４、または図６のウインドウ６０４のような別個のウインドウ内で表示される（しかし、そうでなくてもよい）。このため、各アプリケーションは、そのアプリケーションの検索結果の表示を、そのアプリケーションが所望する任意の様態でカスタマイズすることができる。しかし、検索結果に関するこれらの様々な表示および／または様々なウインドウにもかかわらず、システムレベル検索ＵＩのデータエントリー部分およびアプリケーション識別部分は、同一のままである。システムレベル検索ＵＩは、同一の位置に維持され、外観が検索結果に基づいて変わることはない（ただし、前述のように、データ入力キューおよび候補表示される検索語は、現在アクティブなアプリケーションに基づいて変わり得る）。
【００９８】
[00104]図１３は、１つまたは複数の実施形態によるシステムレベル検索ユーザーインターフェースを実施するように構成され得る例示的なコンピューティングデバイス１３００を示す。コンピューティングデバイス１３００は、例えば、図１のコンピューティングデバイス１０２または１０４であり得る。
【００９９】
[00105]コンピューティングデバイス１３００は、１つまたは複数のプロセッサーもしくは処理ユニット１３０２と、１つまたは複数のメモリおよび／またはストレージ構成要素１３０６を含み得る１つまたは複数のコンピューター可読媒体１３０４と、１つまたは複数の入出力（Ｉ／Ｏ）デバイス１３０８と、様々な構成要素およびデバイスが互いに通信することを可能にするバス１３１０とを含む。コンピューター可読媒体１３０４および／あるいは１つまたは複数のＩ／Ｏデバイス１３０８は、コンピューティングデバイス１３００の一部として含められることが可能であり、または代替として、コンピューティングデバイス１３００に結合されてもよい。バス１３１０は、様々な異なるバスアーキテクチャを使用する、メモリバスもしくはメモリコントローラー、周辺バス、アクセラレーテッドグラフィックスポート、プロセッサーバスもしくはローカルバスなどを含む、いくつかのタイプのバス構造のうちの１つまたは複数を表す。バス１３１０は有線バスおよび／ワイヤレスバスを含むことができる。
【０１００】
[00106]メモリ／ストレージ構成要素１３０６は、１つまたは複数のコンピューター記憶媒体を表す。構成要素１３０６には、揮発性媒体（ランダムアクセスメモリ（ＲＡＭ）などの）、および／または不揮発性媒体（読取り専用メモリ（ＲＯＭ）、フラッシュメモリ、光ディスク、磁気ディスクなどの）が含まれ得る。構成要素１３０６には、固定媒体（例えば、ＲＡＭ、ＲＯＭ、固定ハードドライブなど）、およびリムーバブルメディア（例えば、フラッシュメモリドライブ、リムーバブルハードドライブ、および光ディスクなど）が含まれ得る。
【０１０１】
[00107]本明細書で説明される技法は、命令が１つまたは複数の処理ユニット１３０２によって実行されて、ソフトウェアで実施され得る。様々な命令が、処理ユニット１３０２の中、処理ユニット１３０２の様々なキャッシュメモリの中、デバイス１３００の他のキャッシュメモリ（図示せず）の中、他のコンピューター可読媒体上などの、コンピューティングデバイス１３００の様々な構成要素の中に格納され得ることを認識されたい。さらに、命令がコンピューティングデバイス１３００の中で格納されるロケーションは、時とともに変わり得ることを認識されたい。
【０１０２】
[00108]１つまたは複数の入出力デバイス１３０８は、ユーザーがコンピューティングデバイス１３００にコマンドおよび情報を入力することを可能にし、情報がユーザーおよび／または他の構成要素もしくはデバイスに提示されることも可能にする。入力デバイスの例には、キーボード、カーソル制御デバイス（例えば、マウス）、マイクロフォン、スキャナなどが含まれる。出力デバイスの例には、ディスプレイデバイス（例えば、モニタまたは映写機）、スピーカー、プリンター、およびネットワークカードなどが含まれる。
【０１０３】
[00109]様々な技法が、ソフトウェアモジュールまたはプログラムモジュールの一般的な脈絡において本明細書で説明され得る。概して、ソフトウェアには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。これらのモジュールおよび技法の実施形態は、何らかの形態のコンピューター可読媒体上に格納可能、またはそのようなコンピューター可読媒体を介して伝送可能である。コンピューター可読媒体は、コンピューティングデバイスによってアクセスされ得る任意の１つまたは複数の利用可能な媒体であり得る。例として、限定としてではなく、コンピューター可読媒体は、「コンピューター記憶媒体」と、「通信媒体」とを備え得る。
【０１０４】
[00110]「コンピューター記憶媒体」には、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するために任意の方法または技術で実装される揮発性媒体および不揮発性媒体、リムーバブルメディアおよび非リムーバブルメディアが含まれる。コンピューター記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または所望される情報を格納するのに使用され得るとともに、コンピューターによってアクセスされ得る他の任意の媒体が含まれるが、以上には限定されない。
【０１０５】
[00111]「通信媒体」は、通常、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波などの変調されたデータ信号、または他のトランスポート機構として実現する。また、通信媒体には、任意の情報配信媒体も含まれる。「変調されたデータ信号」という用語は、特性のうちの１つまたは複数が、信号内に情報を符号化するように設定された、または変更された信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接配線ネットワークなどの有線媒体、ならびに音響媒体、ＲＦ媒体、赤外線媒体、およびその他のワイヤレス媒体などのワイヤレス媒体が含まれる。また、以上の媒体のうちの任意の媒体の組合せも、コンピューター可読媒体の範囲に含められる。
【０１０６】
[00112]一般に、本明細書で説明される機能または技法のいずれも、ソフトウェア、ファームウェア、ハードウェア（例えば、固定論理回路）、手動の処理、またはこれらの実施形態の組合せを使用して実施され得る。本明細書で使用される「モジュール」および「構成要素」という用語は、一般に、ソフトウェア、ファームウェア、ハードウェア、または以上の組合せを表す。ソフトウェア実施形態の場合、モジュールまたは構成要素は、プロセッサー（例えば、１つまたは複数のＣＰＵ）上で実行されると、指定されたタスクを実行するプログラムコードを表す。プログラムコードは、さらなる説明を、図１３に関連して見ることができる、１つまたは複数のコンピューター可読メモリデバイスの中に格納され得る。本明細書で説明されるシステムレベル検索ユーザーインターフェース技法の特徴は、プラットフォーム独立であり、つまり、これらの技法は、様々なプロセッサーを有する様々な市販のコンピューティングプラットフォーム上で実施され得ることを意味する。
【０１０７】
[00113]主題は、構造上の特徴および／または方法論的な動作に特有の言い回しで説明されてきたが、添付の特許請求の範囲において規定される主題は、前述した特定の特徴にも、そのような動作にも必ずしも限定されないことを理解されたい。むしろ、前述した特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示される。
【図１】
0005903107.tif 000002
【図２】
0005903107.tif 000003
【図３】
0005903107.tif 000004
【図４】
0005903107.tif 000005
【図５】
0005903107.tif 000006
【図６】
0005903107.tif 000007
【図７】
0005903107.tif 000008
【図８】
0005903107.tif 000009
【図９】
0005903107.tif 000010
【図１０】
0005903107.tif 000011
【図１１】
0005903107.tif 000012
【図１２】
0005903107.tif 000013
【図１３】
0005903107.tif 000014