(57)【特許請求の範囲】
【請求項１】
装置とのオンスクリーンキーボードを介したインタラクション中にテキストの入力を監視する第一のステップと、
前記オンスクリーンキーボードの文字入力機能に関連付けられたキーに割り当てられたクイックタスクをトリガするように構成されたインタラクションシナリオを認識する第二のステップと、
前記キーに関連付けられた前記文字入力機能を実行する代わりに、前記クイックタスクを適用してテキストを変更する第三のステップと、を含み、
前記第三のステップは、入力されたテキスト文字列が選択されることなく前記第二のステップにおける前記インタラクションシナリオの意味的文脈を利用することにより、前記クイックタスクを適用してテキストを変更するステップを含む、
方法。
【請求項２】
前記第二のステップが、テキスト文字列が選択されたテキストの前記入力の状態を判断するステップを含む、請求項１に記載の方法。
【請求項３】
前記第二のステップが、装置とのインタラクション中に入力されたテキストの意味処理に少なくとも部分的に基づく、請求項１に記載の方法。
【請求項４】
前記クイックタスクが、前記キーの単一の操作に応じて適用される、請求項１に記載の方法。
【請求項５】
前記キーに割り当てられた、前記クイックタスクと前記文字入力機能とを含む複数の機能が、前記インタラクションシナリオに応じて、前記キーの単一の操作により操作可能である、請求項４に記載の方法。
【請求項６】
前記インタラクションシナリオの認識に対応して、カーソルがテキスト入力に対してアクティブであるときに、前記文字入力機能がトリガされて前記キーに対応するテキスト文字が挿入され、前記カーソルがテキスト入力に対して非アクティブであるときに、前記クイックタスクがトリガされる、請求項１に記載の方法。
【請求項７】
処理システムと、命令を格納する１つまたは複数のコンピュータ可読媒体と、を備えるコンピュータ装置であって、
前記命令は、前記処理システムにより実行されたときに、既定の文字入力機能にそれぞれ関連付けられた複数のキーを有する前記コンピュータ装置のオンスクリーンキーボードと、クイックタスクモジュールと、を実施し、
前記クイックタスクモジュールは、
テキスト編集機能を簡素化するように構成された２つ以上のクイックタスクを前記複数のキーに割り当て、
特定のキーの操作を認識し、
前記特定のキーの操作に関連してインタラクションシナリオを決定し、
前記インタラクションシナリオが第１のインタラクションシナリオであると決定することに対応して、前記特定のキーに関連付けられた前記文字入力機能を実行させ、
前記インタラクションシナリオが第２のインタラクションシナリオであると決定することに対応して、前記特定のキーに割り当てられた前記２つ以上のクイックタスクのうち、前記特定のキーの操作に応じて、入力されたテキスト文字列が選択されることなく前記第２のインタラクションシナリオの意味的文脈を利用することによりテキストを再書式設定するように構成されているクイックタスクを実行させる、
ように動作可能である、コンピュータ装置。
【請求項８】
前記第１のインタラクションシナリオが、テキスト入力用のカーソルがアクティブである状態に対応するときに、前記特定のキーの前記文字入力機能が実行され、
前記第２のインタラクションシナリオが、前記カーソルが非アクティブである状態に対応するときに、前記特定のキーの前記クイックタスクが実行される、請求項７に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  携帯電話、ポータブルコンピュータ、タブレットコンピュータ、エンタテインメント装置、携帯型ナビゲーション装置等のコンピュータ装置は、通常、テキスト入力および／またはコンピュータ装置とのその他のインタラクションに利用され得るオンスクリーンキーボード（たとえば、ソフトキーボード）と共に実装される。ユーザがオンスクリーンキーボードを使用してテキストボックス経由でテキスト文字を入力もしくは編集する場合、またはその他の方法でテキストとインタラクションする場合、一部の装置では、入力されたテキストを編集するのが困難であり得る。たとえば、テキストの書式設定、欠落している文字の挿入、および／または入力されたテキスト文字列の変更／翻訳を携帯電話で行うのは、装置およびオンスクリーンキーボードのサイズが限られているため、難しい場合がある。タイプミスした単語に対してテキスト予測候補を提示することは可能だが、テキスト予測は、句読符の欠落、記号の挿入、言語の翻訳等のシナリオには従来から対処していない。よって、これらのテキスト編集タスクを従来のオンスクリーンキーボードを使用して実現するのは、依然として困難である。
【発明の概要】
【０００２】
[0002]  オンスクリーンキーボード用クイックタスクが本明細書で説明される。１つまたは複数の実施形態では、オンスクリーンキーボードは、選択されたテキストを定義された方法で編集するように構成された複数のクイックタスクをサポートすることができる。クイックタスク機能は、オンスクリーンキーボードのキーに、それらのキーの既定の動作または「通常の」文字入力機能に追加して、割り当てることができる。テキストの入力時（たとえば、カーソルがアクティブであるとき）には、キーは通常どおり動作して、対応するテキスト文字の入力など、文字入力関連の機能を実行する。テキストが選択されているとき、または他の指定されたインタラクションシナリオでは、クイックタスクが関連付けられたキーを操作すると、クイックタスクが自動的にトリガされて、選択されたテキストが対応する方法で変更され得る。よって、インタラクションシナリオに応じて、オンスクリーンキーボードの同じキーを利用して、文字入力に関連する機能を開始するか、またはテキストにクイックタスクを適用することができる。
【０００３】
[0003]  本発明の概要は、以下の詳細な説明でさらに詳しく説明する概念から選び出したものを、簡単な形式で紹介するために設けられている。本発明の概要は、特許請求の範囲に記載された主題の重要な特徴または必須の特徴を識別することを意図したものではなく、特許請求の範囲に記載された主題の範囲を判断するための補助として使用されることを意図したものでもない。
【０００４】
[0004]  詳細な説明は、添付の図面を参照しながら説明される。図面において、参照番号の最上位の桁は、それらの参照番号が最初に現れる図面を識別する。説明および図面の異なる箇所で使用されている同じ参照番号は、同様または同一の項目を示し得る。
【図面の簡単な説明】
【０００５】
【図１】[0005]オンスクリーンキーボード用クイックタスクの態様を実装することができる例示的な動作環境を示す図である。
【図２】[0006]１つまたは複数の実装に応じてクイックタスクが適用される例示的な手続きを示す図である。
【図３】[0007]１つまたは複数の実装に応じてクイックタスクをいつ適用するかを判断するロジックを表す例示的な手続きを示す図である。
【図４】[0008]１つまたは複数の実装に応じた例示的なクイックタスクシナリオを示す図である。
【図５】[0009]１つまたは複数の実装に応じたさまざまな例示的クイックタスクを示す図である。
【図６】[0010]１つまたは複数の実装に応じてクイックタスクに関連付けられた複数の変更が選択されたテキストに対して表示される例示的な手続きを示す図である。
【図７】[0011]１つまたは複数の実装に応じて複数の変更に関連付けられたクイックタスクのさまざまな例を示す図である。
【図８】[0012]テキスト予測用の適応言語モデルの１つまたは複数の実装で利用され得る例示的なシステムおよび装置を示す図である。
【発明を実施するための形態】
【０００６】
概要
[0013]  ユーザがオンスクリーンキーボードを使用してテキスト文字をテキストボックスに入力する場合、入力されたテキストの編集は、一部のスモールフォームファクタ装置では難しいことがある。たとえば、テキストの書式設定、欠落している文字の挿入、および／または入力されたテキスト文字列の変更／翻訳を携帯電話で行うのは、装置およびオンスクリーンキーボードのサイズが限られているため、難しい場合がある。
【０００７】
[0014]  オンスクリーンキーボード用クイックタスクが本明細書で説明される。説明される技法に応じて、オンスクリーンキーボードは、選択されたテキストを定義された方法で編集するように構成された複数のクイックタスクをサポートすることができる。クイックタスク機能は、オンスクリーンキーボードのキーに、それらのキーの既定の動作または「通常の」文字入力機能に追加して、割り当てることができる。テキストの入力時（たとえば、カーソルがアクティブであるとき）には、キーは通常どおり動作して、対応するテキスト文字の入力など、文字入力関連の機能を実行する。テキストが選択されているとき、または他の指定されたインタラクションシナリオでは、クイックタスクが関連付けられたキーを操作すると、クイックタスクが自動的にトリガされて、選択されたテキストが対応する方法で変更され得る。よって、インタラクションシナリオに応じて、オンスクリーンキーボードの同じキーを利用して、文字入力に関連する機能を開始するか、またはテキストにクイックタスクを適用することができる。
【０００８】
[0015]  以下の議論では、「動作環境」という節で、オンスクリーンキーボード用クイックタスクの１つまたは複数の実装に応じて利用することができる例示的な環境について説明する。これに続いて、「クイックタスクの詳細」という節で、１つまたは複数の実装に係るクイックタスクの例示的な詳細および手続きについて説明する。最後に、オンスクリーンキーボード用クイックタスクの１つまたは複数の実装に利用できる例示的なシステムおよび装置について説明する「例示的なシステム」という節が設けられている。
【０００９】
動作環境
[0016]  図１は、オンスクリーンキーボード用クイックタスクの実施形態を実装することができる例示的なシステム１００を示す。例示的なシステム１００は、家庭用装置、コンピュータ装置、ポータブル装置、通信装置、ナビゲーション装置、媒体再生装置、娯楽装置、ゲーム装置、タブレット装置、および／または電子装置のいずれかの形態をした据置型装置または携帯装置のいずれか１つまたは組み合わせであり得る、コンピュータ装置１０２を含む。たとえば、コンピュータ装置１０２は、媒体コンテンツを表示するためにディスプレイ装置１１０に接続されたテレビジョンクライアント装置１０４、コンピュータ１０６、および／またはゲームシステム１０８として実装することができる。代替で、コンピュータ装置は、統合型ディスプレイ１１４を含む任意の種類のポータブルコンピュータ、携帯電話、またはポータブル装置１１２であり得る。いずれのコンピュータ装置も、１つまたは複数のプロセッサおよびメモリ装置等の多様な構成部品ならびに、異なる構成部品の任意の組み合わせでも、実装することができる。これについては、図８に示された例示的な装置を参照しながら後述する。
【００１０】
[0017]  コンピュータ装置１０２の統合型ディスプレイ１１４、またはディスプレイ装置１１０は、タッチスクリーンディスプレイに表示されるユーザインターフェイスにおけるユーザ起動の文字入力、キー入力、タイプ入力、またはセレクタ入力等のタッチ入力およびジェスチャ入力を感知するように実装されたタッチスクリーンディスプレイであり得る。代替または追加で、コンピュータ装置の例は、キーボード、マウス、オンスクリーンキーボード、リモート制御装置、ゲームコントローラ、または任意の他の種類のユーザ起動および／またはユーザ選択可能な入力装置等の、他の多様な入力機構および入力装置を含み得る。
【００１１】
[0018]  実装では、コンピュータ装置１０２は、オンスクリーンキーボードの文字入力、タッチ入力およびジェスチャ、カメラに基づくジェスチャ、コントローラ入力、その他のユーザ選択の入力等のさまざまな異なる種類の入力に関連する入力センサデータ１１８を検出および／または認識する入力モジュール１１６を含み得る。入力モジュール１１６は、タッチ入力および／またはジェスチャを識別する機能を表し、タッチ入力および／またはジェスチャに対応する操作を実行させる。たとえば、入力モジュール１１６は、ユーザの手によるタッチスクリーンディスプレイとのインタラクション（たとえば、タッチスクリーン機能の使用）を通じて検出されたジェスチャを認識するように構成され得る。追加または代替で、入力モジュール１１６は、ユーザの手の振り、把持ジェスチャ、腕の位置、その他の定義されたジェスチャなど、カメラにより検出されたジェスチャを認識するように構成され得る。よって、タッチ入力、ジェスチャ、および他の入力は、入力センサデータ１１８を通じて、入力モジュール１１６により認識された異なる入力を区別するために使用することができる属性（たとえば、動き、選択点、位置、速度、配向等）を含むものとして認識され得る。この区別は、その後、入力からジェスチャを識別し、ジェスチャの識別情報に基づいて実行すべき動作を結果的に識別するための基盤として機能し得る。
【００１２】
[0019]  コンピュータ装置は、１つまたは複数のプロセッサにより実行されて本明細書に記載された多様な実施形態を実装するソフトウェアアプリケーションまたはモジュールなどのコンピュータ実行可能命令として実装され得る、キーボード入力モジュール１２０を含む。キーボード入力モジュール１２０は、コンピュータ装置１０２とのキーボードインタラクションのためのオンスクリーンキーボードを提供および管理する機能を表す。キーボード入力モジュール１２０は、テキスト入力ボックス、検索コントロール、またはその他のテキスト入力コントロールがアクティブ化されたとき等の異なるタイミングで、オンスクリーンキーボードの表示を選択的に提示させるように構成され得る。オンスクリーンキーボードは、ディスプレイ装置１１０等の外部ディスプレイまたは統合型ディスプレイ１１４等の統合型ディスプレイで表示するために提供され得る。加えて、ハードウェアキーボード／入力装置で、本明細書に記載される技法に適した少なくともいくつかのソフトキーを有する、適応型の「オンスクリーン」キーボードを実装することも可能であることに留意されたい。たとえば、外部装置として提供され、またはコンピュータ装置１０２に統合される、ハードウェアキーボードは、本明細書に記載されたクイックタスクを実装するために利用できるディスプレイデバイス、タッチキー、および／またはタッチスクリーンを組み込むことができる。この場合、キーボード入力モジュール１２０は、ハードウェアキーボード／入力装置のデバイスドライバの構成部品として提供され得る。
【００１３】
[0020]  キーボード入力モジュール１２０は、文字入力１２４を処理および解釈し、文字入力１２４に対応する単語候補の予測を形成および提供する機能を表す、テキスト予測エンジン１２２を含みまたはそうでなければ利用し得る。たとえば、オンスクリーンキーボードは、テキスト入力ボックス、パスワード入力ボックス、検索コントロール、データフォーム、メッセージスレッド、または文字入力１２４（たとえば、文字、数字、および／またはその他の英数字）のユーザ入力を簡素化するフォーム、ＨＴＭＬページ、アプリケーションＵＩ、ドキュメント等のユーザインターフェイス１２６のその他のテキスト入力コントロールでテキストを入力する異なるインタラクションシナリオで、選択的に用いられ得る。
【００１４】
[0021]  一般的に、テキスト予測エンジン１２２は、入力された文字入力１２４に最も密接に一致する１つまたは複数の考えられる候補を確認する。このように、テキスト予測エンジン１２２は、ユーザにより入力された文字入力１２４に応じて、確認された１つまたは複数の予測単語を提供することにより、テキスト入力を簡素化することができる。たとえば、テキスト予測エンジン１２２により予測された単語は、ユーザによる入力テキストの自動修正、テキスト入力テキストの完了、変更、または修正するための選択候補としての１つまたは複数の単語の提示、予測される単語に対応するオンスクリーンキーボードのキーのタッチヒット領域の自動変更等を実行するために利用され得る。
【００１５】
[0022]  本明細書に記載された技法に応じて、キーボード入力モジュール１２０は、クイックタスクモジュール１２８を上述および後述されるように含みまたは利用するように、構成され得る。一般的に、クイックタスクモジュール１２８は、オンスクリーンキーボード用の複数のクイックタスク１３０をサポートする機能を表す。クイックタスク１３０は、オンスクリーンキーボードを使用して行うことが従来から難しかった編集操作を簡素化するように構成される。対応するクイックタスクが利用可能にされ得る編集操作の種類として、書式設定、句読符、記号の挿入、翻訳、およびそれらの組み合わせがあるが、これらに限定されるわけではない。クイックタスクのさまざまな非限定的な例が、以下の図面に関連して説明される。それぞれが異なる編集操作を実行するように設計された一組のクイックタスク１３０を、オンスクリーンキーボードのキーに、それらのキーの文字入力機能または操作に加えて割り当てることができる。クイックタスクモジュール１２８は、クイックタスク１３０のキーへの割り当て、クイックタスクのアクティブ化および非アクティブ化、カスタマイズされたクイックタスクの作成等を管理するように動作可能であり得る。またクイックタスクモジュール１２８は、クイックタスクに関連するインタラクションシナリオ（たとえば、テキストの選択、カーソル位置、文脈等）を認識し、クイックタスクがトリガされたときに適切なクイックタスクを適用して選択されたテキストを変更するように動作し得る。またクイックタスクモジュール１２８は、既定の機能（たとえば、テキスト文字の挿入）を実行するか、キー操作に対応するキーに割り当てられたクイックタスクを実行するかを判断するロジックを実装し得る。オンスクリーンキーボード用クイックタスクのこれらの態様およびその他の態様に関するさらなる詳細は、以下の図面に関連して見出され得る。
【００１６】
[0023]  クイックタスクの例示的な動作環境について説明したところで、次に、本明細書に記載された１つまたは複数の実装で利用できる例示的な技法および詳細について検討する。
【００１７】
クイックタスクの詳細
[0024]  この節では、クイックタスクを利用する技法の詳細について、図２、図３、および図６の例示的な手続きならびに図４、図５、および図７の例示的な表現を参照しながら説明する。以下の議論の一部では、さまざまな態様が実装され得る図１の例示的な動作環境に参照がなされ得る。以下に説明する各手続きの態様は、ハードウェア、ファームウェア、もしくはソフトウェア、またはそれらの組み合わせで実装され得る。手続きは、１つまたは複数の装置により実行される操作を指定する一組のブロックとして示され、それぞれのブロックにより実行する操作の図示された順序に必ずしも限定されない。少なくとも一部の実装では、手続きは、クイックタスクモジュール１２８または同等の機能を含みまたは利用する図１の例示的なコンピュータ装置１０２等の、適切に構成されたコンピュータ装置により実行され得る。
【００１８】
[0025]  図２は、１つまたは複数の実装形態に応じてクイックタスクが適用される手続き２００を示す。デバイスとのオンスクリーンキーボードを介したインタラクション中に、テキストの入力が監視される（ブロック２０２）。たとえば、テキストは、携帯装置のオンスクリーンキーボードによって入力され得る。本明細書の態様はオンスクリーンキーボードに関連して説明されているが、クイックタスクを適用するための同等の技法を、タッチ感応式キーボード、音声コマンド、またはその他の入力機構を有するハードウェアキーボードを使用して実装できることを理解する必要がある。携帯電話またはその他のコンピュータ装置１０２は、入力を検出および処理して、入力されたテキストを装置を介して出力されるユーザインターフェイス内に表すように構成され得る。加えて、コンピュータ装置１０２は、クイックタスクモジュール１２８を利用して、クイックタスクを適切な状況でトリガすることができる。これを行うために、クイックタスクモジュール１２８は、テキスト入力およびキーストロークを監視し、インタラクションシナリオに応じてクイックタスクを開始するタイミングに関する判断を行うように構成され得る。
【００１９】
[0026]  特に、文字入力機能に関連付けられたオンスクリーンキーボードのキーに割り当てられたクイックタスクをトリガするように構成された入力シナリオが認識される（ブロック２０４）。次に、キーに関連付けられた文字入力機能を実行する代わりに、クイックタスクが適用されて、インタラクションシナリオに関連して選択されたテキストが変更される（ブロック２０６）。上述したように、オンスクリーンキーボードのキーは、文字入力機能とクイックタスク機能の両方に関連付けられ得る。クイックタスクモジュール１２８は、特定のキーの操作に応じて、「通常の」文字入力機能と、特定のキーに対応するクイックタスクを実行するかどうかを判断するように構成され得る。この判断は、現在のインタラクションシナリオの認識に少なくとも部分的に基づき得る。本明細書で使用されるようなインタラクションシナリオは、特定のキーストローク（またはキーストロークのシーケンス）と、インタラクションの状態または文脈とを反映する。インタラクションシナリオは、特定のキーの操作に関連して認識され得る。たとえば、カーソル（たとえば、カレット）がアクティブであるときにオンスクリーンキーボードの「Ｔ」キーを押すと、対応する文字「ｔ」がカーソルの位置に入力され得る。一方、テキスト文字列を選択してから「Ｔ」キーを押すと、この特定のインタラクションシナリオが、選択されたテキストを異なる言語間で自動的に翻訳する翻訳クイックタスク等のクイックタスク機能に関連付けられ得る。よって、クイックタスクモジュール１２８は、クイックタスクに関連付けられているようなインタラクションシナリオを認識し、「Ｔ」キーに関連付けられているクイックタスク機能を開始して、文字「ｔ」を入力する代わりに選択されたテキスト文字列を（たとえば、翻訳により）変更する。したがって、クイックタスクをトリガするインタラクションシナリオを認識する方法の１つは、キーの操作に関連して、カーソルがアクティブであるか、またはテキスト文字列が選択されているかどうかを判断することである。言い換えると、クイックタスクモジュール１２８は、文字入力機能に対応するアクティブカーソル状態と、テキスト文字列がクイックタスクに関連して選択された状態とを少なくとも含む、テキスト入力のさまざまな状態を区別することができる。
【００２０】
[0027]  実装では、クイックタスクモジュール１２８は、入力および／または選択されたテキストの意味処理を実行して、クイックタスクを適合するか、または文字入力機能を実行するかどうかに関する意思決定を通知するように構成され得る。ここで、クイックタスクモジュール１２８は、入力テキストを分析して、単語の組み合わせ／確率、典型的な単語用法のライブラリ／履歴、ユーザ固有の語彙等に基づいて、意図された意味を推測することができる。現在のキーストロークに割り当てられたクイックタスクが、意味処理から派生した意図された意味と一致する場合、クイックタスクモジュール１３０はこれを、クイックタスクを適用する状態と認識する。よって、インタラクションシナリオをクイックタスクのトリガとして認識することは、全体的または部分的に、装置とのインタラクション中に入力されたテキストの意味処理にさらに基づき得る。
【００２１】
[0028]  とりわけクイックタスクモジュール１２８は、キーの組み合わせではなく、単一のキーの操作（たとえば、単一の操作）に基づいて、少なくともいくつかのクイックタスクを適用するように構成される。クイックタスクモジュール１２８は、キーが操作されたときに、そのキーに割り当てられた複数の機能のうちのどれを実行するかを、インタラクションシナリオに基づいて自動的に決定する。各機能は、キーの単一操作（たとえば、単一のキーストローク）により開始され得る。よって、クイックタスクは、一部の従来型のキーボードショートカットで使用されるキーストロークの組み合わせおよび／または修飾キーの組み合わせ（たとえば、alt + A、Ctrl + B等）を使用せずに実装および適用され得る。携帯装置のオンスクリーンキーボードの画面面積は限られている場合があり、キーの組み合わせを小さな画面で実行するのは難しい場合があるため、クイックタスクに利用される単一キー操作のアプローチは、ユーザが編集タスクを簡単に完了できるようにし、全体的なユーザ体験を強化する。さらに、オンスクリーンキーボードは、異なるキーに割り当てられた複数のクイックタスクをサポートすることができ、ユーザが割り当てを変更して、定義済みのクイックタスクのユーザが指定した割り当てを選択されたキーに行うことを可能にする。システムは、ユーザによるカスタムクイックタスクの作成および割り当てを簡素化するようにさらに構成され得る。
【００２２】
[0029]  図３は、１つまたは複数の実装形態に応じてクイックタスクを適用するタイミングを判断するロジックを表す手続き３００を示す。オンスクリーンキーボードに含まれるキーの操作が検出される（ブロック３０２）。これは、図２に関連して論じたように、テキスト入力の監視に基づいて行われ得る。あるアプローチでは、クイックタスクモジュール１２８は、各キーストロールを監視し、インタラクションシナリオに基づいて通常の動作／文字入力を実行するかまたはキーに割り当てられたクイックタスクを実行するかどうかを制御するロジックを実装し得る。例として、選択されたテキスト文字列に下線を設定することによって書式設定を行うように構成されたクイックタスクが、いつ「Ｕ」キーに割り当てられていると仮定する。クイックタスクモジュール１２８は、テキスト入力インタラクション時に、「Ｕ」キーが押されたか、または何らかの方法で操作されたかを検出し、下線クイックタスクを適用するか、または「Ｕ」キーに対応する英数字を挿入するかを決定し得る。
【００２３】
[0030]  特に、クイックタスクがキーに割り当てられているか否かの判断が行われる（ブロック３０４）。たとえば、クイックタスクモジュール１２８は、クイックタスクをキーにマップするテーブルまたは他の適切なデータ構造を参照し得る。上記の例では、クイックタスクモジュール１２８は、下線クイックタスクが「Ｕ」キーに割り当てられていることを認識する。一部のキーについて、クイックタスクモジュール１２８は、クイックタスクがそれらのキーに対して割り当てられていないこと、および／または無効化されていることを判断し得る。
【００２４】
[0031]  ブロック３０４でクイックタスクがキーに割り当てられている場合、インタラクションシナリオが分析されて、インタラクションシナリオがクイックタスクをトリガするように構成されているか否かが判断される（ブロック３０６）。インタラクションシナリオがクイックタスクをトリガする場合、キーに割り当てられたクイックタスクに対応するテキスト編集操作が開始される（ブロック３０８）。一方、クイックタスクモジュール１２８は、ブロック３０４でのクイックタスクがキーに割り当てられていないとの判断および／またはブロック３０６でのインタラクションシナリオがクイックタスクをトリガしないとの判断に応じて、キーの指定された文字入力機能の操作を実行させることができる（ブロック３１０）。
【００２５】
[0032]  たとえば、クイックタスクは、インタラクションの現在の状態に基づいて、選択的にトリガされ得る。これは、カーソルがテキスト入力に対してアクティブであるか非アクティブであるか、または代替的にテキストの選択がユーザによって行われたか否かに基づき得る。入力テキストに関する文脈情報も、キーストロークの操作にどのように対応するかの判断に使用され得る。カーソルがアクティブである場合、キー操作により、指定された文字入力機能が通常の方法で行われ得る。一方、テキストが選択されている（たとえば、強調表示されている）場合、キーに対応するクイックタスクが有効化され、キーの操作により、文字入力機能ではなく、対応するクイックタスクが行われ得る。上記の例では、「Ｕ」キーを操作する前にテキストが選択されている場合、「Ｕ」キーの操作により、選択されたテキストに下線が施される。一方、カーソルがアクティブ状態である通常のテキスト入力モードでは、「Ｕ」キーの操作により、対応する英数字（たとえば、この例ではuまたはU）の挿入がトリガされ得る。
【００２６】
[0033]  図４は、全体的に４００として示された、例示的なインタラクションシナリオに応じてクイックタスクの実行を示す。特に、テキストメッセージングアプリケーション／サービスとインタラクションするように構成されたユーザインターフェイス１２６が、携帯電話装置用のオンスクリーンキーボード４０２を有するものとして図示されている。このインターフェイスは、テキストメッセージ入力ボックスの形式をしたテキスト入力コントロール４０４を含む。図示された例では、ユーザは、テキスト入力コントロール４０４とインタラクションして、「Ｑｕｅ  ｐａｓａ，ａｍｉｇｏ」というテキスト文字を入力している。加えて、ユーザは、インタラクションによってテキスト文字の選択４０６を行っており、よって「Ｑｕｅ  ｐａｓａ，ａｍｉｇｏ」というフレーズが強調表示されている。このシナリオでは、選択４０６は、本明細書に記載された技法に応じてクイックタスクをアクティブ化するのに有効であり得る。
【００２７】
[0034]  図４の例で示されているように、「？」キーの選択に対応するキーストローク４０８により、割り当てられたクイックタスク１３０が実行され得る。このクイックタスクは、選択されたフレーズの前後に、スペイン語の疑問符を挿入する。よって、キーストローク４０８に対応してフレーズ「Ｑｕｅ  ｐａｓａ，ａｍｉｇｏ」の変更４１０が実行され、フレーズが「？Ｑｕｅ  ｐａｓａ，ａｍｉｇｏ？」に変更される。クイックタスクがなければ、フレーズの前後に文字を入力するのは非常に難しい場合があり、携帯装置のオンスクリーンキーボードを使用して行うのは非効率的であり得る。他の外国語の文字を同等の態様で挿入して句読符を設定することも考えられる。加えて、さまざまな種類のクイックタスクおよび個人用クイックタスクをオンスクリーンキーボードによりサポートすることが可能であり得る。そのいくつかの実例が、図５に関連して図示および説明されている。
【００２８】
[0035]  図５は、全体的に５００として示された、オンスクリーンキーボードのキーに割り当てることができるクイックタスクのさまざまな例を示す。たとえば、選択されたフレーズまたは文字列の句読符を自動的に変更する句読符クイックタスク５０２が示されている。ここで、句読符クイックタスク５０２は、クイックタスクが「？」キーではなく「Ｑ」キーに割り当てられているように表されている点を除き、図４の例に対応する。よってこの例は、少なくとも一部のクイックタスクを異なるキーに割り当てることができ、場合によっては、ユーザがキーに対するクイックタスクのマッピングを指定および変更できることを示している。一般的に、クイックタスク１３０は、選択されたテキストフレーズの前後に文字を挿入する句読符操作を実行するように構成され得る。そのような操作の一例は、疑問符を挿入することである。「）」キーまたは「（」キーを使用することによるフレーズの丸括弧での包含、「［」キー、「］」キー、「｛」キー、または「｝」キーを使用することによるフレーズの角括弧での包含、「＞」キーまたは「＜」キーを使用することによるｈｔｍｌタグ、「！」キーを使用することによる先頭および末尾の感嘆符の挿入等を簡素化する、その他の句読符クイックタスクが構成され得る。一部のクイックタスクは、複数のキーに割り当てられ得ることに注目されたい。たとえば、開き丸括弧の「（」キーまたは閉じ丸括弧の「）」キーを押すと、選択されたテキストを丸括弧で囲む、対応するクイックタスクがトリガされる。
【００２９】
[0036]  選択されたテキストに対して異なる種類の書式設定を行う、追加のクイックタスクを実装することができる。書式設定クイックタスクは、特殊文字の挿入（たとえば、時刻、通貨、およびソーシャルネットワーキングの書式設定）、単語またはセンテンスの大文字小文字の切り替え、大文字化の切り替え、フォントの切り替え、斜体や太字などのテキスト効果の設定等を実行するように構成され得る。
【００３０】
[0037]  例として、テキスト文字列の適切な数字を時刻値として書式設定する時刻書式クイックタスク５０４が図５にさらに示されている。図示された例では、時刻書式クイックタスク５０４は、「：」キーに割り当てられている。代替で、ユーザが時刻書式クイックタスク５０４を、「ｔ」キー、専用の時計機能キー、別の選択されたキー等の異なるキーに関連付け、および／または割り当てることができる。適用された場合、時刻書式クイックタスク５０４は、テキスト文字列内の適切な位置に時刻書式の文字を挿入することができる。たとえば、「Ｔｈｅ  ｇａｍｅ  ｉｓ  ａｔ  ５００」というフレーズが、時刻書式クイックタスク５０４の適用に応じて、「Ｔｈｅ  ｇａｍｅ  ｉｓ  ａｔ  ５：００」に変換されていることが示されている。この例では、前の例と異なり、最初のフレーズが選択または強調表示されていないことに注目されたい。これは、クイックタスクモジュール１２８がインタラクションシナリオの意味的文脈を認識および利用し、クイックタスクを自動的に適用できる状況を表すためである。よって、ユーザは、テキストを明示的に選択しなくても、一部のクイックタスクを利用できる場合があり得る。ここでは、例として、クイックタスクモジュール１２８は、ユーザが「ａｔ  ５００」で時間を示すことを意図したと推測することができる。よって、「：」キーが操作されたときに、図示されたカーソル位置に「：」が挿入されるのではなく、時刻書式クイックタスク５０４が自動的に適用される。
【００３１】
[0038]  サポートされ得る書式設定クイックタスクの別の例として、斜体クイックタスク５０６が図示されている。ここでは、テキストを選択してから「ｉ」キーを操作すると、選択されたテキストが斜体フォントに切り替わる。実装では、「ｉ」キーを再び操作すると、選択されたテキストが非斜体フォントに戻り得る。一般的に、本明細書に論じられたクイックタスクは、ユーザが、入力されたテキスト（たとえば、最初のテキストおよび書式）と、クイックタスクを通じて利用可能な１つまたは複数のテキスト変更との間を、クイックタスクが割り当てられたキーを連続して操作することにより循環または前後移動することを可能にする。複数の異なる変更を循環するように構成されたクイックタスクに関する例については、以下で図６および図７を関連させながら論じる。
【００３２】
[0039]  上述した例と同等の多様な書式設定操作を実行するクイックタスクを定義し、選択されたさまざまなキーに割り当てることができる。特定のキーに割り当てることができる書式設定クイックタスクのいくつかの追加の例として、太字テキストの「ｂ」、単語、フレーズ、または選択箇所の大文字小文字／大文字化を切り替える「ｃ」または「ｓｈｉｆｔ」、異なるフォントに変更する「ｆ」、下線を設定する「ｕ」などがあるが、これらに限定されない。
【００３３】
[0040]  別の例として、ソーシャルネットワーキングまたは他の目的に使用され得るタグの自動書式設定がある。タグ設定の一種は、ソーシャルネットワーキングの投稿に「＃」フレーズを使用することである。この種のタグ設定は、ソーシャルネットワーキングサービスだけでなく、電子メール、テキストメッセージ、およびその他の通信でも使用され得る。図５は、「＃」キーに割り当てられ得るソーシャル書式クイックタスク５０８を表している。動作時に、ソーシャル書式クイックタスク５０８は、フレーズを指定された書式のタグに変換するように動作する。図示された例では、入力されたフレーズ「Ａａｒｏｎ  Ｒｏｄｇｅｒｓ  ＭＶＰ」が、クイックタスクにより「＃ＡａｒｏｎＲｏｄｇｅｒｓＭＶＰ」に変換されている。ここでは、タグのインジケータである「＃」が入力フレーズの先頭に挿入され、スペースが削除されている。異なるインジケータやユーザ定義の書式設定操作さえも使用する他の種類のタグも、クイックタスクを通じて実装することができる。
【００３４】
[0041]  図５は、図示された「ｔ」キー、キーボード言語キー、またはその他のキーに割り当てることができる翻訳クイックタスク５１０をさらに示している。翻訳クイックタスク５１０は、フレーズまたは選択されたテキストを、ある言語から別の言語に翻訳するために適用され得る。ここでは、「Ｗｈｅｒｅ  ｉｓ  ｔｈｅ  ｈｏｔｅｌ？」というフレーズが、英語から、「？Ｄｏｎｄｅ  ｅｓｔａ  ｅｌ  ｈｏｔｅｌ？」というスペイン語バージョン等の別の指定された言語に自動的に変換され得る。翻訳は、テキストを選択し、「ｔ」キーまたは翻訳クイックタスク５１０が関連付けられた他のキーを押すことにより発生し得る。ユーザは、翻訳に使用する特定の言語を設定することができる。追加または代替で、翻訳クイックタスク５１０は、複数の言語の順序付きリストを循環するように構成することもできる。その詳細については、以下の図面に関連して論じる。
【００３５】
[0042]  図６は、クイックタスクに関連する複数の変更が適用され得る手続き６００を示す。選択されたテキストに適用する複数の変更が関連付けられたクイックタスクが、オンスクリーンのキーに割り当てられる（ブロック６０２）。クイックタスクを開始するキーの操作が検出される（ブロック６０４）。次に、選択されたテキストの複数の変更が、キーの連続操作に対応して表される（ブロック６０６）。
【００３６】
[0043]  上述したように、クイックタスクモジュール１２８を含みまたは利用するオンスクリーンキーボードは、複数の変更を実装するいくつかのクイックタスクをサポートすることができる。あるアプローチでは、複数の変更は、変更の適用順序を指定するリストまたはデータ構造に応じて定義される。たとえば、翻訳用の言語のリストが翻訳クイックタスクに関連付けられ得、利用可能なフォントのリストがフォント選択クイックタスクに利用され得、時刻書式クイックタスクが利用可能な異なる時刻書式を含み得る。その他のクイックタスクは、入力された未変更のテキストと、そのテキストの特定の変更と、の間で交互に切り替えを行うように動作し得る。複数の異なる変更を提供するクイックタスクが関連付けられたキーを複数回選択すると、システムは変更のリストを次々に循環し、対応するテキストの変更を、キーの連続操作に応じて、ユーザインターフェイスに連続的に表し得る。よって、キーを「押す」たびに、クイックタスクの利用可能な変更のリストの進行に応じて、異なる変更が表され得る。リストのすべての変更が提示された場合、特定のキーを次回選択すると、選択されたテキストが未変更の形式に戻り得る。
【００３７】
[0044]  さらに詳しく説明するために、図７は、複数の変更を実装するクイックタスクが適用されるいくつかの例示的なシナリオを、全体として７００で示している。たとえば、翻訳クイックタスク７０２は、「ｘ」キーに関連付けられているものとして示されている。この例の翻訳クイックタスク７０２は、言語リスト７０４に関連付けられている。言語リスト７０４は、テキストの複数の変更を定義および／または制御し、クイックタスクに関連して変更が適用される順序を指定するのに十分な、クイックタスクの関連データを表す。ここで、言語リスト７０４は、スペイン語、フランス語、ドイツ語、および既定の言語（この場合は英語）への連続的な翻訳を示す。「ｘ」キーを連続して押すと、クイックタスクモジュール１２８は、７０６で示されているように、言語リスト７０４を循環するように動作し、異なる言語への対応する変換を適用し得る。ユーザは、キーを繰り返し押すことによって１つまたは複数の考えられる変更を連続的にスクロールし、明示的な選択、さらなるテキスト入力、および／または非アクティブのタイムアウト期間の終了により、いずれかの変更を維持する変更の１つを選択することができる。
【００３８】
[0045]  複数の変更をサポートする時刻書式クイックタスク７０８の同等の例が、図７にさらに示されている。このシナリオでは、時刻書式クイックタスク７０８は、「ｔ」キーに割り当てられているものとして示されている。時刻書式クイックタスク７０８は、図５に関連して論じた時刻書式クイックタスク５０４と同様に、「：」キーに割り当てることもできる。この例の時刻書式クイックタスク７０８は、時刻書式リスト７１０に関連付けられている。時刻書式リスト７１０は、関連するテキストの時刻書式の連続的な変更を示す。「ｔ」キーを連続して押すと、クイックタスクモジュール１２８は、７１２で示されているように、時刻書式リスト７１０を循環し、対応する変更を適用するように動作し得る。よって、「ｔ」キーの連続的な押下に応じて、テキストの「ａｔ  ５００」の部分が、「ａｔ  ５：００」、「ａｔ  ５：００  ＡＭ」、「ａｔ  ５：００  ＰＭ」、および元の「ａｔ  ５００」へと変化し得る。
【００３９】
[0046]  一般に、クイックタスクのキーへの割り当ては、オンスクリーンキーボードに対して事前に定義され得る。実装では、ユーザ固有の割り当てを行うために、ユーザが割り当てを構成することも可能であり得る。よって、ユーザは、図５のように「ｔ」を翻訳に使用し、「：」を時刻に使用する定義済みの割り当てではなく、図７のように「ｘ」に翻訳クイックタスクを割り当て、「ｔ」に時刻書式クイックタスクを割り当てることを選択することができる。たとえば、クイックタスクモジュール１２８は、利用可能な異なるクイックタスクをキーにマップするマッピングをユーザがインタラクションすることを可能にするインターフェイスを公開し得る。このインターフェイスを通じて、ユーザは、定義済みの割り当てを変更し、および／またはクイックタスクをグローバルもしくは個人ベースで有効化もしくは無効化することができる。またさらに、インターフェイスおよびクイックタスクマッピングは、ユーザがクイックタスク作成ダイアログを通じてカスタムクイックタスクを作成することを可能にするように構成され得る。この作成ダイアログは、適切な構文、メニュー、フィールド、タグ等を使用して、クイックタスクのカスタム文字挿入、書式設定、および／またはトリガの選択を簡素化する。カスタムクイックタスクは、クイックタスク作成ダイアログを介して行われたユーザ選択に応じて定義され得る。カスタムクイックタスクは、ユーザが選択したキーに割り当てられ得る。非限定的な例として、ユーザは、選択されたテキスト文字列を太字、斜体、および下線が設定された変更後の文字列に変換する、太字、斜体、および下線の組み合わせクイックタスクを定義することができる。ユーザは、このカスタムクイックタスクを、「ｚ」キー等のキーに割り当てることができる。別の例として、カスタムクイックタスクは、テキスト文字列内の特定の位置への選択された特殊文字の挿入を簡素化するために作成され得る。たとえば、「Ｈｅｌｌｏ  Ｒｏｂｙｎ」を「＊＊＊Ｈｅｌｌｏ  Ｒｏｂｙｎ＊＊＊」に変更するというように、テキストをアスタリスク内に包含するアスタリスククイックタスクが定義され得る。その他のさまざまな種類のカスタムクイックタスクおよび定義済みクイックタスクも考えられる。
【００４０】
[0047]  クイックタスクに関連するいくつかの例示的な詳細および技法について説明したところで、次に、本明細書に記載された１つまたは複数の実装で利用できる例示的なシステムについて検討する。
【００４１】
例示的なシステムおよび装置
[0048]  図８は、本明細書に記載された多様な技法を実装し得る１つまたは複数のコンピュータシステムおよび／または装置を表す例示的なコンピュータ装置８０２を含む、例示的なシステム８００を示す。コンピュータ装置８０２は、たとえば、サービスプロバイダのサーバ、クライアントに関連付けられた装置（たとえば、クライアント装置）、オンチップシステム、および／または任意の他の適切なコンピュータ装置もしくはコンピュータシステムであり得る。
【００４２】
[0049]  図示されたような例示的なコンピュータ装置８０２は、処理システム８０４と、１つまたは複数のコンピュータ可読媒体８０６と、相互に通信可能に連結された１つまたは複数のＩ／Ｏインターフェイス８０８と、を含む。図示されていないが、コンピュータ装置８０２は、さまざまな構成部品を相互に連結するシステムバスまたは他のデータおよび命令転送システムをさらに含み得る。システムバスは、メモリバスもしくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、および／または多様なバス構造のいずれかを利用するプロセッサバスもしくはローカルバスなど、さまざまなバス構造の任意の１つまたは組み合わせを含み得る。制御回線やデータ回線など、他の多様な例も考えられる。
【００４３】
[0050]  処理システム８０４は、ハードウェアを使用して１つまたは複数の操作を実行する機能を表す。よって、処理システム８０４は、プロセッサや機能ブロック等として構成され得るハードウェア要素８１０を含むものとして図示されている。これは、１つまたは複数の半導体を使用して形成された特定用途向け集積回路またはその他の論理装置としての、ハードウェア内の実装を含み得る。ハードウェア要素８１０は、ハードウェア要素８１０の形成元の材料またはハードウェア要素８１０が利用されている処理機構によって限定されない。たとえば、プロセッサは、半導体および／またはトランジスタ（たとえば、電子集積回路（IC））から成り得る。そのような文脈において、プロセッサが実行可能な命令は、電子的に実行可能な命令であり得る。
【００４４】
[0051]  コンピュータ可読媒体８０６は、メモリ／ストレージ８１２を含むものとして図示されている。メモリ／ストレージ８１２は、１つまたは複数のコンピュータ可読媒体に関連付けられたメモリ／ストレージ容量を表す。メモリ／ストレージ８１２は、揮発性媒体（ランダムアクセスメモリ（RAM）等）および／または不揮発性媒体（読み取りメモリ（ROM）、フラッシュメモリ、光ディスク、磁気ディスク等）を含み得る。メモリ／ストレージ８１２は、固定媒体（RAM、ROM、固定ハードドライブ等）ならびに、リムーバブル媒体（フラッシュメモリ、リムーバブルハードドライブ、光ディスク等）を含み得る。コンピュータ可読媒体８０６は、以下にさらに説明するように、他の多様な方法で構成され得る。
【００４５】
[0052]  入力／出力インターフェイス８０８は、ユーザがコマンドおよび情報をコンピュータ装置８０２に入力できるようにし、さらにユーザおよび／または他の構成部品もしくは装置に多様な入力／出力装置を使用して情報を提示できるようにする機能を表す。入力装置の例として、キーボード、カーソル制御装置（たとえば、マウス）、音声操作用のマイク、スキャナ、タッチ機能（たとえば、物理的なタッチを検出するように構成された容量センサまたはその他のセンサ）、カメラ（たとえば、可視波長または赤外線周波数等の不可視波長を利用して、タッチを含まない動きをジェスチャとして検出できるカメラ）等がある。出力装置の例として、ディスプレイ装置（たとえば、モニタまたはプロジェクタ）、スピーカ、プリンタ、触覚応答装置等がある。コンピュータ装置８０２は、ネットワーク通信用のネットワークインターフェイスカードおよび／または無線通信および／または移動体通信をサポートする多様なアンテナ等を含む、有線および無線の通信を実現するさまざまな構成部品をさらに含み得る。さまざまな異なる種類の好適なアンテナが考えられる。これには、１つまたは複数のＷｉ−Ｆｉアンテナ、全地球航法衛星システム（GNSS）または全地球測位システム（GPS）のアンテナ、セルラーアンテナ、近距離無線通信（NFC）アンテナ、Ｂｌｕｅｔｏｏｔｈアンテナ等が含まれるが、これらに限定されない。よって、コンピュータ装置８０２は、ユーザインタラクションをサポートするために、以下にさらに説明するように、さまざまな方法で構成され得る。
【００４６】
[0053]  本明細書では、さまざまな技法が、ソフトウェア、ハードウェア要素、またはプログラムモジュールの全体的な文脈で説明され得る。一般に、そのようなモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、要素、構成部品、データ構造等を含む。本明細書で使用されるとき「モジュール」、「機能」、および「構成部品」という用語は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを一般的に表す。本明細書に記載された技法の特徴は、プラットフォームに依存しないことである。つまり、これらの技法は、さまざまなプロセッサを備えたさまざまな商用コンピュータプラットフォームで実装され得る。
【００４７】
[0054]  説明されるモジュールおよび技法の実装は、何らかの形式のコンピュータ可読媒体に格納され、またはそれらの媒体を通じて送信され得る。コンピュータ可読媒体は、コンピュータ装置８０２によりアクセスされ得るさまざまな媒体を含み得る。非限定的な例として、コンピュータ可読媒体は、「コンピュータ可読ストレージ媒体」および「通信媒体」を含み得る。
【００４８】
[0055]  「コンピュータ可読ストレージ媒体」とは、単なる信号送信、搬送波、または信号自体とは対照的に、情報を格納することを可能にする媒体および／または装置を指す。よって、コンピュータ可読ストレージ媒体は、信号担持媒体または信号自体を含まない。コンピュータ可読ストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、論理要素／回路、その他のデータ等の情報を格納するのに適した方法または技術で実装される、揮発性および不揮発性のリムーバブルおよび非リムーバブル媒体および／またはストレージ装置等のハードウェアを含む。コンピュータ可読ストレージ媒体の例として、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（DVD）もしくはその他の光学式ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージもしくはその他の磁気ストレージ装置、またはその他のストレージ装置、有形媒体、もしくは所望の情報を格納するのに好適でありコンピュータからアクセス可能である製造品があるが、これらに限定されない。
【００４９】
[0056]  「通信媒体」とは、ネットワーク等を介して、コンピュータ装置８０２のハードウェアに命令を送信するように構成された信号担持媒体を指す。通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波、データ信号、またはその他の搬送機構等の変調データ信号で具体化する。通信媒体は、任意の情報配信媒体をさらに含む。「変調データ信号」という用語は、１つまたは複数の特性が情報を信号内で符号化する態様で設定または変更された信号を意味する。非限定的な例として、通信媒体は、有線ネットワークや直接有線接続等の有線媒体と、音響、ＲＦ、赤外線、およびその他の無線媒体等の無線媒体と、を含む。
【００５０】
[0057]  既に説明したように、ハードウェア要素８１０およびコンピュータ可読媒体８０６は、本明細書に記載された技法の少なくともいくつかの態様を実装するために一部の実施形態で利用され得る、ハードウェア形式で実装された命令、モジュール、プログラム可能装置ロジック、および／または固定装置ロジックを表す。ハードウェア要素は、集積回路またはオンチップシステム、特定用途向け集積回路（ASIC）、フィールドプログラマブルゲートアレイ（FPGA）、複合プログラマブル論理装置（CPLD）、およびシリコンもしくは他のハードウェア装置におけるその他の実装の構成部品を含み得る。この文脈で、ハードウェア要素は、ハードウェア要素ならびにたとえば上述したコンピュータ可読ストレージ媒体等の実行用の命令を格納するために利用されるハードウェア装置により具現化される命令、モジュール、および／またはロジックにより定義されるプログラムタスクを実行する処理装置として動作し得る。
【００５１】
[0058]  上述したものの組み合わせも、本明細書に記載されたさまざまな技法およびモジュールを実装するために利用され得る。よって、ソフトウェア、ハードウェア、もしくはテキスト予測エンジン１２２、クイックタスクモジュール１２８、および他のプログラムモジュールを含むプログラムモジュールは、何らかの形式のコンピュータ可読ストレージ媒体で具現化された１つもしくは複数の命令および／またはロジックとして、および／または１つもしくは複数のハードウェア要素８１０により、実装され得る。コンピュータ装置８０２は、ソフトウェアおよび／またはハードウェアモジュールに対応する特定の命令および／または機能を実装するように構成され得る。よって、コンピュータ装置８０２によりソフトウェアとして実行され得るモジュールとしてのモジュールの実装は、少なくとも部分的にハードウェアで、たとえば処理システムのコンピュータ可読媒体および／またはハードウェア要素８１０の使用を通じて、実現され得る。命令および／または機能は、本明細書に記載された技法、モジュール、および例を実装するために、１つまたは複数の製造品（たとえば、１つまたは複数のコンピュータ装置８０２および／または処理システム８０４）により実行可能／操作可能であり得る。
【００５２】
[0059]  図８でさらに示されているように、例示的なシステム８００は、アプリケーションをパーソナルコンピュータ（PC）、テレビジョン装置、および／または携帯装置で実行したときのシームレスなユーザ体験のためのユビキタス環境を可能にする。サービスおよびアプリケーションは、アプリケーションの利用中、ビデオゲームのプレイ中、ビデオの閲覧中等に、ある装置から別の装置に移行したときに、共通のユーザ体験のために、３つの環境のすべてで実質的に同様に実行される。
【００５３】
[0060]  例示的なシステム８００では、複数の装置が中央のコンピュータ装置を介して相互接続されている。中央のコンピュータ装置は、複数の装置に対してローカルであり得、または複数の装置からリモートに配置され得る。一実施形態では、中央のコンピュータ装置は、ネットワーク、インターネット、または他のデータ通信リンクを介して複数の装置に接続された１つまたは複数のサーバコンピュータのクラウドであり得る。
【００５４】
[0061]  一実施形態では、この相互接続アーキテクチャにより、複数の装置に機能を配信して、共通のシームレスな体験を複数の装置のユーザに提供することができる。複数の装置のそれぞれは、物理的な要件および能力が異なる可能性があり、中央のコンピュータ装置は、各装置に合わせて調整され、かつすべての装置に共通する体験を装置に配信を可能にするために、プラットフォームを使用する。一実施形態では、対象とする装置のクラスが作成され、その汎用クラスに合わせて体験が調整される。装置のクラスは、物理的な特徴、使用の種類、または装置のその他の共通特性により定義され得る。
【００５５】
[0062]  さまざまな実装では、コンピュータ装置８０２は、たとえばコンピュータ８１４、携帯装置８１６、およびテレビジョン８１８などの、さまざまな異なる構成をとり得る。これらの構成のそれぞれは、構造および能力が全体として異なり得る装置を含み、よってコンピュータ装置８０２は、異なる装置クラスの１つまたは複数に応じて構成され得る。たとえば、コンピュータ装置８０２は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック等を含む、コンピュータ８１４の装置クラスとして実装され得る。
【００５６】
[0063]  コンピュータ装置８０２は、携帯電話、ポータブル音楽プレーヤ、ポータブルゲーム装置、タブレットコンピュータ、マルチスクリーンコンピュータ等の携帯装置を含む、携帯装置８１６の装置クラスとしても実装され得る。コンピュータ装置８０２は、カジュアルな視聴環境で一般的に大きな画面を有するか、またはそのような画面に接続された装置を含む、テレビジョン８１８の装置クラスとしても実装され得る。これらの装置は、テレビジョン、セットトップボックス、ゲームコンソール等を含む。
【００５７】
[0064]  本明細書に記載された技法は、コンピュータ装置８０２のこれらの多様な構成によりサポートされ得、本明細書に記載された技法の具体的な例に限定されない。このことは、コンピュータ装置８０２にクイックタスクモジュール１２８が含まれていることにより示されている。クイックタスクモジュール１２８および他のモジュールの機能は、以下に説明するように、たとえば「クラウド」８２０上の分散システムのプラットフォーム８２２を介した使用を通じて、すべてまたは部分的に実装することも可能である。
【００５８】
[0065]  クラウド８２０は、リソース８２４のプラットフォーム８２２を含み、および／または表す。プラットフォーム８２２は、クラウド８２０のハードウェア（たとえば、サーバ）リソースおよびソフトウェアリソースの基盤機能を抽象化する。リソース８２４は、コンピュータ装置８０２からリモートであるサーバでコンピュータ処理が実行されている間に利用することができるアプリケーションおよび／またはデータを含み得る。リソース８２４は、インターネット上および／またはセルラーネットワークやＷｉ−Ｆｉネットワーク等のサブスクライバネットワーク経由で提供されるサービスをさらに含むことができる。
【００５９】
[0066]  プラットフォーム８２２は、コンピュータ装置８０２を他のコンピュータ装置に接続するために、リソースおよび機能を抽象化することができる。プラットフォーム８２２は、プラットフォーム８２２を介して実装されるリソース８２４に対して行われた要求に、対応する規模のリソースを提供するために、リソースの規模拡張を抽象化する役割も果たし得る。よって、装置が相互接続された環境において、本明細書に記載された機能の実装は、システム８００の全体に分散され得る。たとえば、機能は、コンピュータ装置８０２に部分的に実装され得、ならびにクラウド８２０の機能を抽象化するプラットフォーム８２２を介しても実装され得る。
【００６０】
結論
[0067]  以上の説明における技法は、構造的な特徴および／または方法論的な行為に特有の言語で記載されているが、添付の特許請求の範囲の主題は記載された特定の特徴または行為に必ずしも限定されないことが理解されるべきである。むしろ、特定の特徴および行為は、特許請求された主題を実装する例示的な形式として開示されている。
【図１】
0006450768.tif 000002
【図２】
0006450768.tif 000003
【図３】
0006450768.tif 000004
【図４】
0006450768.tif 000005
【図５】
0006450768.tif 000006
【図６】
0006450768.tif 000007
【図７】
0006450768.tif 000008
【図８】
0006450768.tif 000009