(57)【要約】  消費者デバイス内で複数のソフトウェアアプリケーションおよび入力コンテキストにわたって共通の予測的なソフトウェアテキスト入力ウィジェットを共有することによって、ソフトウェアアプリケーションにおける予測テキスト入力をサポートするためのシステムおよび方法。この方法は、ソフトウェアアプリケーションが特定の入力コンテキストでテキスト入力ウィジェットのインスタンスを呼び出すこと、アプリケーションが任意選択で、現在のコンテキストに関連する、許可される記号の記述と予想される記号ストリングの辞書とをウィジェットに提供すること、ウィジェットが、許可される記号および辞書に従って仮想キーボード表示および予測アルゴリズムデータを修正すること、ユーザがウィジェットを介してテキストを入力すること、ウィジェットが、入力されたテキストをアプリケーションに返すこと、ならびに、アプリケーションが任意選択で、入力されたテキストから導出された情報を関連する辞書に含めて、将来の呼出し時のウィジェットの予測能力を向上させることを含む。
2010530561.tif 000002
【特許請求の範囲】
【請求項１】
消費者デバイス(consumer devices)内で複数のソフトウェアアプリケーションおよび入力コンテキストにわたって共通の予測的なソフトウェアテキスト入力コンポーネントを共有する方法であって、
前記入力コンテキストのうちの１つで前記ソフトウェアアプリケーションのうちの１つによってテキスト入力コンポーネントを呼び出す(invoking)ステップと、
前記入力コンテキストのうちの前記１つに関連する(associated with)、許可される記号の記述および予想される記号ストリングの辞書を、前記テキスト入力コンポーネントに提供するステップと、
前記許可される記号の記述および前記予想される記号ストリングの辞書に従って、前記テキスト入力コンポーネントのデフォルトの仮想キーボード表示およびデフォルトの予測アルゴリズムデータを修正するステップと、
前記テキスト入力コンポーネントを介して前記消費者デバイスのユーザによる入力テキストを受け入れるステップと、
前記テキスト入力コンポーネントを終了するステップであって、前記終了により、入力されたテキストが前記呼出し元アプリケーション(calling application)に返されるステップと、
前記入力されたテキストに応答して前記アプリケーションによって前記辞書を修正して、前記入力コンテキストにおける将来の呼出し(invocation)時の前記コンポーネントの予測能力を向上させるステップとを含む方法。
【請求項２】
前記テキスト入力コンポーネントが、前記消費者デバイス上で実行される１つまたは複数のアプリケーションからアクセス可能な動的にリンクされる共有ライブラリ中で提供されるソフトウェア機能、クラス、またはコンポーネントを含む、請求項１に記載の方法。
【請求項３】
前記テキスト入力コンポーネントが、静的にリンクされるライブラリ中で提供されるソフトウェア機能、クラス、コンポーネント、または、前記消費者デバイス上で実行されるアプリケーションのオブジェクトコードに組み込まれたソースコードを含む、請求項１に記載の方法。
【請求項４】
前記辞書が、前記入力コンテキストのうちの前記１つでテキスト入力を必要とする、前記消費者デバイス上で実行される１つまたは複数のアプリケーションからアクセス可能である、請求項１に記載の方法。
【請求項５】
前記テキスト入力コンポーネントの前記仮想キーボード表示および予測アルゴリズムデータの前記修正が、前記消費者デバイスに関連する入力デバイスを使用して前記入力コンテキストで所望のテキストを入力するのに必要とされるキーアクティブ化の回数を削減する、請求項１に記載の方法。
【請求項６】
前記仮想キーボード表示が、現在のストリング表示と、前記許可される記号のセットからの個々の記号に関連する１つまたは複数のキーと、前記テキスト入力コンポーネントの挙動に関連する１つまたは複数の制御キーとを含み、前記キーのちょうど１つがハイライト表示される、請求項１に記載の方法。
【請求項７】
前記仮想キーボード表示がさらに、前記予測アルゴリズムによって予測された前記許可される記号のセットからの記号に関連する１つまたは複数のキーを含む、請求項６に記載の方法。
【請求項８】
前記仮想キーボード表示がさらに、前記予測アルゴリズムによって予測されたストリングに関連する１つまたは複数のキーを含む、請求項６に記載の方法。
【請求項９】
前記消費者デバイスがディジタルテレビジョンを含む、請求項１に記載の方法。
【請求項１０】
前記消費者デバイスがモバイルホンを含む、請求項１に記載の方法。
【請求項１１】
前記消費者デバイスがパーソナルコンピュータを含む、請求項１に記載の方法。
【請求項１２】
前記消費者デバイスがキオスクを含む、請求項１に記載の方法。
【請求項１３】
前記入力デバイスが５キーの方向キーパッドを含む、請求項５に記載の方法。
【請求項１４】
前記５キーの方向キーパッドが、ディジタルテレビジョンを制御できるリモートコントロール上に位置する、請求項１３に記載の方法。
【請求項１５】
前記テキスト入力デバイスがサムホイール／選択スイッチである、請求項５に記載の方法。
【請求項１６】
前記テキスト入力デバイスが、前記仮想キーボードに重なるタッチセンシティブスイッチネットワークである、請求項５に記載の方法。
【請求項１７】
前記テキスト入力デバイスが、ナビゲートするためのタッチアンドドラッグと選択するための専用選択スイッチとを使用するタッチセンシティブマウスパッドである、請求項５に記載の方法。
【請求項１８】
前記テキスト入力デバイスが、マイクロホンと、口頭のナビゲーションコマンドおよび選択コマンドに応答する音声認識ソフトウェアとである、請求項５に記載の方法。
【請求項１９】
前記口頭のナビゲーションコマンドおよび選択コマンドが、上、下、左、右、および入力に対応する、請求項１８に記載の方法。
【請求項２０】
テキストの前記入力が、前記テキスト入力デバイスを使用して、提供されたナビゲーションコマンドを用いて前記仮想キーボード上の所望のキーまでナビゲートすること、および提供された選択コマンドを用いて前記所望のキーを選択することを含む、請求項５に記載の方法。
【請求項２１】
前記予測アルゴリズムデータがトライデータ構造を利用する、請求項１に記載の方法。
【請求項２２】
前記デフォルトの予測アルゴリズムデータが、利用される前記予測アルゴリズムに適合するフォーマットの、記号頻度統計および予想される記号ストリングを含む、請求項１に記載の方法。
【請求項２３】
前記消費者デバイスが電話機であり、前記入力デバイスが１２キーの電話キーパッドを含む、請求項５に記載の方法。
【請求項２４】
消費者デバイス内で複数のソフトウェアアプリケーションおよび入力コンテキストにわたって共通の予測的なソフトウェアテキスト入力コンポーネントを共有するためのシステムであって、
前記入力コンテキストのうちの１つで前記ソフトウェアアプリケーションのうちの１つによってテキスト入力コンポーネントを呼び出すためのモジュールと、
前記入力コンテキストのうちの前記１つに関連する、許可される記号の記述および予想される記号ストリングの辞書を、前記テキスト入力コンポーネントに提供するためのモジュールと、
前記許可される記号の記述および前記予想される記号ストリングの辞書に従って、前記テキスト入力コンポーネントのデフォルトの仮想キーボード表示およびデフォルトの予測アルゴリズムデータを修正するためのモジュールと、
前記テキスト入力コンポーネントを介して前記消費者デバイスのユーザによる入力テキストを受け入れるためのモジュールと、
前記テキスト入力コンポーネントを終了するためのモジュールであって、前記終了により、入力されたテキストが前記呼出し元アプリケーションに返されるモジュールと、
前記入力されたテキストに応答して前記アプリケーションによって前記辞書を修正して、前記入力コンテキストにおける将来の呼出し時の前記コンポーネントの予測能力を向上させるためのモジュールとを含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の参照
本出願は、参照により本明細書にその全体が組み込まれる２００７年５月７日出願の「ＲＩＯＴ」という名称の米国仮出願第６０／９１６，４４８号からの優先権の利益を主張する。
【０００２】
本発明は一般に、ソフトウェアアプリケーションにおける予測テキスト入力をサポートする方法に関する。
【背景技術】
【０００３】
多くの消費者デバイス、例えば、ケーブル、衛星、またはファイバネットワークに接続されたセットトップボックスに取り付けられたディジタルテレビジョンまたはＴＶ；有線またはワイヤレスネットワークに接続された電話機またはＰＤＡ；ＧＰＳナビゲーションシステム；現金自動預け払い機；およびキオスクなどでは、これらのデバイス上で実行されるアプリケーションによってテキスト入力が必要とされることがある。しかし、このようなデバイスはしばしば、例えばデバイスを小型で信頼性があり低コストなものに維持するなど他の設計要件のせいで、パーソナルコンピュータによって通常提供されるような完全なキーボードおよび大きい表示画面を提供しない。その結果、テキスト入力方法は、遅く、エラーを被りやすく、ユーザにあまり受け入れられないことが多い。
【０００４】
いくつかのデバイスは、しばしば小型フォーマットの表示装置または他の代替ユーザフィードバック機構と共に、非キーボードデバイスを使用してテキストの入力を可能にする。ある種の技法は小型フォーマットのキーパッドを使用するが、これは電話機上で見られるような９、１０、または１２キーのパッドであることが最も多く、数字キーは複数の英字にもマッピングする。例えば、数字２、３、４、５、６、７、８、９、および０が、それぞれ文字ＡＢＣ、ＤＥＦ、ＧＨＩ、ＪＫＬ、ＭＮＯ、ＰＱＲＳ、ＴＵＶ、ＷＸＹＺ、および「スペース」にマッピングする。いくらかの専門家が５キーのキーパッドの類似の使用法を探求したが、この場合、４つのキーがそれぞれ６つ以上の文字にマッピングされ、第５のキーがスペース／ネクストキーとして使用される。さらに他の人々が５キーのキーパッドの使用法を研究したが、この場合、４つのキーが、記号のグリッドにわたってカーソル（すなわちハイライト表示される記号）をナビゲートするのに使用され、第５のキーが、現在ハイライト表示されている記号を入力するのに使用される。
【０００５】
入力キーと記号との間に１対１の対応がない場合にテキストをデバイスに入力することの困難は、ユーザが何をタイプ入力しようとしているかを推測してそれにより物理的キーストロークの数を最小限に抑えることを試みるアルゴリズムの使用につながった。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以下の１つまたは複数を提供することのできる予測テキスト入力システムおよび方法が必要とされている。すなわち、（ａ）必要とされるキーアクティブ化の回数を最小限にするか削減するようにして、普及している５キーの方向キーパッドなど単純なテキスト入力デバイスを利用すること、（ｂ）関連のない複数のアプリケーションによって使用可能であること（例えばソフトウェアウィジェット、コンポーネント、クラス、または共有機能として）、（ｃ）ウィジェットの構築時に複数の異なる入力コンテキストがわからなくても、これらの入力コンテキストに対してウィジェットの予測能力を適合させること、および（ｄ）以前に入力されたテキストに関する情報を、同一の入力コンテキストにおける将来の予測に組み込むことにより、異なる各入力コンテキストにおけるウィジェットの予測精度を時の経過に伴って向上させることである。
【課題を解決するための手段】
【０００７】
本開示によるいくつかの実施形態は、前述の問題の１つまたは複数に対処する。例えば、いくつかの実施形態は、消費者デバイス内で複数のソフトウェアアプリケーションおよび入力コンテキストにわたって共通の予測的なソフトウェアテキスト入力ウィジェットまたはコンポーネントを共有するためのシステムおよび方法を提供することによって、前述の問題の１つまたは複数に対処することができる。この方法は、ソフトウェアアプリケーションが特定の入力コンテキストでテキスト入力ウィジェットのインスタンスを呼び出すこと、アプリケーションが任意選択で、現在のコンテキストに関連する、許可される記号の記述と予想される記号ストリングの辞書とをウィジェットに提供すること、ウィジェットが、許可される記号および辞書に従って仮想キーボード表示および予測アルゴリズムデータを修正すること、ユーザがウィジェットを介してテキストを入力すること、ウィジェットが、入力されたテキストをアプリケーションに返すこと、ならびに、アプリケーションが任意選択で、入力されたテキストから導出された情報を関連する辞書に含めて、将来の呼出し時のウィジェットの予測能力を向上させることを含むことができる。適した辞書および予測アルゴリズムデータは、利用される予測アルゴリズムにとって適切なフォーマットで維持された、記号頻度統計および予想される記号ストリングで構成することができる。辞書および許可される記号の選択は、アプリケーションが構築され入力コンテキストが定義されるときに、選択することができる。辞書の記憶、共有、および修正は、アプリケーションによって各入力コンテキストに適切なように実施することができ、テキスト入力ウィジェット自体によって実施されなくてもよい。
【０００８】
テキスト入力ウィジェットは、消費者デバイス上で実行される全てのアプリケーションからアクセス可能な動的にリンクされる共有ライブラリ中で提供されるソフトウェア機能、クラス、またはコンポーネントとすることができ、あるいはこれは、静的にリンクされるライブラリ中で提供されてもよく、あるいは、デバイス上で実行されるアプリケーションのオブジェクトコードに組み込まれたソースコードとして提供されてもよい。辞書は、同じコンテキストでテキスト入力を必要とする、デバイス上で実行される全てのアプリケーションからアクセス可能とすることができる。
【０００９】
仮想キーボードの特徴を開示するが、この仮想キーボードは、様々な種類の入力デバイスと協働して、基礎をなすテキスト予測アルゴリズムの補助で、テキストの入力に必要なキーアクティブ化の回数を最小限に抑えることができる。適した入力デバイスは、５キーの方向キーパッド（例えばＴＶリモートコントロール上に位置するもの）、１２キーの電話キーパッド、ｉＰｏｄ（登録商標）式のサムホイール／選択スイッチ、仮想キーボードに重なるタッチセンシティブスイッチネットワーク、タッチセンシティブマウスパッド、ならびに、口頭のナビゲーションコマンドおよび選択コマンドに応答する音声認識ソフトウェアを伴うマイクロホンを含むことができるが、これらに限定されない。
【００１０】
本発明の方法から利益を得ることのできる消費者デバイスは、ディジタルテレビジョン、モバイルホン、全地球測位システム（「ＧＰＳ」）ナビゲーションデバイス、パーソナルコンピュータ、現金自動預け払い機、およびセルフサービスキオスクを含むことができるが、これらに限定されない。
【００１１】
本発明のより完全な理解を容易にするために、次に添付の図面を参照するが、図面では、同じ要素は同じ番号で参照される。これらの図面は、本開示を限定するものと解釈すべきではなく、例示に過ぎないものとする。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態による消費者デバイスの構成を示す図である。
【図２】本発明の一実施形態による、許可される記号および制御のセットを示す仮想キーボードを示す図である。
【図３】本発明の一実施形態による、許可される記号および制御の別のセットを示す仮想キーボードを示す図である。
【図４】本発明の一実施形態による、上位５つの予測されるストリングおよび上位６つの予測される次の記号を含むように提供されたキーを示す仮想キーボードを示す図である。
【図５】本発明の一実施形態による、仮想キーボードの例示的な使用を示す一連の例示的な画面のうちの第１の画面を示す図である。
【図６】本発明の一実施形態による、仮想キーボードの例示的な使用を示す一連の例示的な画面のうちの第２の画面を示す図である。
【図７】本発明の一実施形態による、仮想キーボードの例示的な使用を示す一連の例示的な画面のうちの第３の画面を示す図である。
【図８】本発明の一実施形態による、仮想キーボードの例示的な使用を示す一連の例示的な画面のうちの第４の画面を示す図である。
【図９】本発明の一実施形態による、仮想キーボードの例示的な使用を示す一連の例示的な画面のうちの第５の画面を示す図である。
【図１０】本発明の一実施形態による、仮想キーボードの例示的な使用を示す一連の例示的な画面のうちの最後の画面を示す図である。
【図１１】本発明の一実施形態による方法を示すフローチャートである。
【図１２】本発明の一実施形態による、予測テキスト入力ウィジェットがユーザ入力を処理して入力ストリングを要求元アプリケーションに返すステップを含む、図１１に示すステップ７４０のサブステップを示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下の記述は、本発明の様々な適用例に関係するいくつかの具体的な実施形態および詳細を提供することによって本発明の理解を伝えるものとする。しかし、本発明はこれらの実施形態および詳細に限定されず、これらの実施形態および詳細は例に過ぎないことを理解されたい。さらに、当業者なら、周知のシステムおよび方法に鑑みて、特定の設計および他の必要性に応じて任意の数の代替実施形態における本発明の意図された目的および利益に関して本発明の使用を認識するであろうことも理解されたい。
【００１４】
次に図１を参照すると、本発明の一実施形態による消費者デバイスの構成を示す図が提供されている。本発明に適切な消費者デバイス１００は、セットトップボックス、モバイルホン、パーソナルディジタルアシスタント、ＧＰＳナビゲーションデバイス、パーソナルコンピュータ、およびセルフサービスキオスクを含むことができるが、これらに限定されない。本発明は、デバイスによって提供されるコンピュータまたは他の電子システム（例えばＣＰＵ（図示せず））を介して実行される、テキスト入力を使用する１つまたは複数のソフトウェアアプリケーション１１０があるときに適用可能とすることができる。このようなアプリケーション１１０は、オンラインイエローページにアクセスすること、天気予報を受信すること、ファンタジースポーツチームを管理すること、オンライン競売に参加すること、投票または世論調査に参加すること、インターネットで検索すること、および電子メールまたはチャットに携わることのためのアプリケーションを含むことができるが、これらに限定されない。消費者デバイス１００内部のコンポーネントは、アプリケーション間および／またはアプリケーション内通信チャネル１４０を介して相互接続することができ、通信チャネル１４０は、例えば、チップ上の物理的な相互接続、コンピュータ回路中の配線、またはコンピュータデバイス間のネットワーク相互接続を含むことができる。ネットワークインタフェース１７５を設けて、アプリケーション１１０が外部ネットワーク１９５上のデータにアクセスするのを可能にすることができる。
【００１５】
テキスト入力ウィジェット１２０は、予測テキスト入力サービスをアプリケーション１１０に提供することのできるソフトウェアである。テキスト入力ウィジェット１２０はテキスト入力コンポーネントと呼ばれることもある。テキスト入力ウィジェット１２０は例えば、アプリケーション１１０内で、またはアプリケーション１１０に静的にリンクされるライブラリ内で、または必要に応じてアプリケーション１１０に動的にリンクされアプリケーション１１０によって共有されるライブラリ１３０内で、またはスタンドアロンのアプリケーションとして実現することができる。テキスト入力ウィジェット１２０は、有線またはワイヤレスの相互接続１５５を介して表示ドライバ１５０に接続された表示デバイス１７０上に、仮想キーボードを表示することができる。表示デバイス１７０は、消費者デバイス１００内に含まれてもよく、あるいは別個のユニットとして提供されてもよい。仮想キーボードの例示的な実施形態を、図２、３、４、６、７、８、および９に示す。テキスト入力ウィジェット１２０は、有線またはワイヤレスの相互接続１６５を介して入力ドライバ１６０に接続された入力デバイス１８０からのキー入力を解釈することができる。入力デバイス１８０は、消費者デバイス１００内に含まれてもよく、あるいは別個のユニットとして提供されてもよい。テキスト入力ウィジェット１２０は、予想されるテキストストリングを含む辞書と、許可される記号の記述とを、各呼出し元アプリケーション１１０から受け取ることができ、辞書および記号記述を使用して、テキスト予測アルゴリズムによって利用されるデフォルトの情報および統計を増強することができる。許可される記号の記述は、例えば、記号のリスト；記号の事前定義済みの名前付きサブセット（例えば英字、数字、記号、大文字の英字など）へのリンク；２の整数乗のコードとして表される名前（特定のコンテキストに適切な記号の全てのサブセットが、ネームコードの合計として渡される）；および、本発明の特定の実施形態に適切な他の実施形態とすることができる。テキスト入力ウィジェット１２０は、ユーザが各記号を入力するのに伴って予測アルゴリズムを適用して、ユーザによって入力される可能性が最も高い次の記号およびストリングを予測することができる。記号および／またはストリングは、ユーザによってアクティブ化しやすいように、テキスト入力ウィジェット１２０によって仮想キーボード上に表示されたキーに割り当てることができる。割当ての例示的な描写を図４に提供するが、この場合、最も可能性の高い５つの予測されるストリング４１０（すなわちオプション１〜オプション５）および最も可能性の高い６つの予測される次の記号４２０が、仮想キーボード２００によって提供される。
【００１６】
入力デバイス１８０は、５キーの方向キーパッド１８５で構成されるかまたはこれを含むものとすることができ、これは、表示されたカーソルまたはハイライトインジケータを仮想キーボード上のキー間で上（ＵＰ）、下（ＤＯＷＮ）、左（ＬＥＦＴ）、または右（ＲＩＧＨＴ）にナビゲートすることに関連する４つの入力キーと、仮想キーボード上のハイライト表示されたアイテムを選択（ＳＥＬＥＣＴ）するための１つのキー（ここでは中央に示す）とを提供することができる。入力デバイス１８０はまた、数字キーパッド１９０で構成されるかまたはこれを含むものとすることができ、これは例えば、数字および記号に関連する４×３グリッドの入力キーを提供することができる。キー２、３、６、８、および５は、５キーの方向キーパッドを実現する別の方法として、ＵＰ、ＬＥＦＴ、ＲＩＧＨＴ、ＤＯＷＮ、およびＳＥＬＥＣＴの機能またはコマンドに関連付けることもできる。本発明に適した他の入力デバイス１８０は、ｉＰｏｄ（登録商標）式のサムホイール／選択スイッチ；仮想キーボードに重なるタッチセンシティブスイッチネットワーク；ナビゲートするためのタッチアンドドラッグと、選択するためのタップおよび／もしくは専用の選択スイッチとを使用するタッチセンシティブマウスパッド；または、ＵＰ、ＤＯＷＮ、ＬＥＦＴ、ＲＩＧＨＴ、およびＥＮＴＥＲのコマンドを認識する関連する音声認識ソフトウェアを伴うマイクロホンを含むことができるが、これらに限定されない。仮想キーボード上のキー間のナビゲーション、およびキー中のハイライト表示されたキーの選択を可能にする任意の入力デバイスが、本発明で開示する予測テキスト入力に適することができる。
【００１７】
他のナビゲーションおよび選択のパラダイムも、本発明の方法に適する場合がある。別の例は、電話機上に設けられた数字キーパッド１９０の使用であり、数字キー２、３、４、５、６、７、８、および９が、追加で英字の文字（例えばそれぞれＡＢＣ、ＤＥＦ、ＧＨＩ、ＪＫＬ、ＭＮＯ、ＰＱＲＳ、ＴＵＶ、およびＷＸＹＺ）でラベル付けされる。この実施形態では、数字キーが続いてアクティブ化されるのをテキスト入力ウィジェット１２０が使用して、最も可能性の高い次の記号およびストリングの予測を行うことができ、この場合、アクティブ化されたキーに関連する３つまたは４つの文字を使用して、ユーザによって選択される可能性が最も高い次の記号およびストリングを予測して表示することができる。この実施形態では、ユーザは、所望のストリングが仮想キーボード上に表示されて選択が行われるまで、数字キーをアクティブ化することができ、あるいはユーザは、数字キーパッド（または他の提供されたキー）上の他のキーを使用して、複数の提案された記号および／またはストリング間でナビゲートして選択することができる。
【００１８】
次に図２、３、および４を参照すると、本発明の一実施形態による、仮想キーボード２００の３つの例示的な実施形態が示されている。図２に示す一実施形態では、例示的なアプリケーション１１０に関係のある許可される記号セットは、図の左および中央のキーグループに含まれるラベル２２０で参照される文字ａ〜ｚ、スペース記号、ならびに数字記号および他の記号を含む。他の図示のキータイプは、例えば、「Ｄｏｎｅ」キー２５０（別法として「ＯＫ」、「Ｃａｎｃｅｌ」、「Ｑｕｉｔ」などの名前が付いていてもよい）、入力モディファイアキー２４０（例えば「Ｃｌｅａｒ」、「Ｄｅｌｅｔｅ」）、および記号変更キー２３０（例えば大文字／小文字Ｓｈｉｆｔ、１２３−ＳＹＭ）を含むことができる。これらは「制御キー」と総称される。ユーザによって入力された現在のテキスト２１０は、テキスト入力表示領域２０５に含まれるものとすることができる。カーソル２１５は、テキスト入力ウィジェット１２０によって新しい記号およびストリングが予測される位置、ならびに、ユーザがＳＥＬＥＣＴキーをアクティブ化したときに、新たにアクティブ化された記号またはストリングを追加できる位置を示すことができる。この例示的な実施形態は、最も可能性の高い複数のストリングおよび記号を含む別々のキーを提供しないものとすることができる。そうではなく、この例示的な実施形態は、表示領域２０５中のカーソル位置２１５でハイライト表示される最も可能性の高い１つの次の記号またはストリングのみを表示することができ、ユーザがＳＥＬＥＣＴ機能をアクティブ化することによってこの提案を選択できるようにすることができるか、あるいは予測された記号またはストリングが正しくない場合にはユーザが所望の記号までナビゲートすることによって他の正当な記号を選択できるようにすることができる。図３に示す本発明の一実施形態による仮想キーボード２００の一実施形態では、例示的なアプリケーション１１０に関係があるであろう許可される記号セットは、ラベル２２０で参照される数字記号および他の記号を含む。（英字記号は、この例で具現されるアプリケーション１１０に関連しないと想定される）。提供できる他のキーは、「Ｄｏｎｅ」２５０（ハイライト表示された状態で示されている）、入力モディファイア「Ｄｅｌｅｔｅ」および「Ｃｌｅａｒ」２４０、ならびに記号変更キー「ＡＢＣ」２３０である。図４に示す仮想キーボード２００の一実施形態では、例示的なアプリケーション１１０に関係のある許可される記号セットは、文字ａ〜ｚおよびスペース文字、ならびに「Ｄｏｎｅ」、「Ｄｅｌｅｔｅ」、「Ｃｌｅａｒ」、「Ｓｈｉｆｔ」、および「１２３−ＳＹＭ」のキーを含むことができる。加えて、この実施形態は、例示的なアプリケーションに関係のある上位５つの予測されるストリング４１０および上位６つの予測される次の記号４２０を含むキーを提供することができる。ユーザは、入力デバイス１８０を使用して対応するキーまでナビゲートしてそのキーをアクティブ化することによって、これらの提案のいずれかを選択することができる。
【００１９】
次に図５〜１０を参照すると、本発明の一実施形態による、仮想キーボード２００の例示的な使用を示す一連の画面が示されている。これらの図は、予測テキスト入力サービスを要求するアプリケーション１１０と、このようなサービスを提供するテキスト入力ウィジェット１２０との間の、ユーザインタフェースから見た対話を示すことができる。この例では、アプリケーション１１０は、ＴＶでイエローページを提供する対話式アプリケーションとすることができる。図５では、本発明の一実施形態により、アプリケーション表示５００の要素が示されており、イエローページ検索を実施するのに使用するための３つのテキスト入力フィールドがユーザに提示される。図では、このようなフィールドの１つであるカテゴリ５１０がハイライト表示されている。ユーザがイエローページカテゴリに関連するテキストを入力する準備ができると、テキスト入力ウィジェット１２０を呼び出すことができる。ユーザには見えないが、イエローページアプリケーションは、パラメータ、例えば、共通イエローページカテゴリ名の辞書および関連する頻度情報と、許可される記号（この場合は英数字）の記述とを含めたパラメータを、テキスト入力ウィジェット１２０に渡したものとすることができる。テキスト入力ウィジェット１２０は、これらのパラメータを受け取ると、許可される記号のセットを表すのに適切な表示フォーマットを選択することができ、提供された辞書から導出された情報を、その内部予測アルゴリズムデータ、例えばトライデータ構造に統合することができる。その後、テキスト入力ウィジェット１２０は、図６に示すように、選択された仮想キーボード２００をユーザに対して提示することができる。テキスト入力領域は最初は空であってよく、全ての適切な（正当な）記号および制御が提供されてよく、提案キー中にストリング提案が提供されなくてよく、イエローページカテゴリ名の中で第１の文字として現れる最も一般的な６つの記号（この場合はｒ、ｓ、ｔ、ｅ、ｌ、およびｎ）が、仮想キーボード２００の上部に沿った記号キーにマッピングされてよい。図７では、ユーザは仮想キーボード中の「ａ」キーをアクティブ化したものとすることができる。このアクティブ化がなされると、テキスト入力ウィジェット１２０は、ユーザが入力したいであろう最も可能性が高いストリングおよび最も可能性が高い第２の記号を計算することができる。これらのストリングおよび記号がそれぞれの提案キーを埋めているのが示されている。この場合、４つのストリング「ａｕｔｏ」、「ａｕｔｏｍｏｂｉｌｅ」、「ａｔｔｏｒｎｅｙ」、および「ａｉｒｃｒａｆｔ」が提案され、３つの次の記号「ｕ」、「ｔ」、および「ｉ」が提案されている。ユーザは、これらの提案キーのうちのどれでも自由にアクティブ化することができ、あるいは、仮想キーボード２００によって提供される記号キーからいずれか他の文字を自由に選択することができる。図８では、ユーザは「ｔ」提案キー４１０を２回アクティブ化したものとすることができる。これにより、テキスト入力領域２０５がテキスト「ａｔｔ」２１０を含んでおり、今や「ａｔｔｏｒｎｅｙ」がストリング提案４２０である。図９では、ユーザが「ａｔｔｏｒｎｅｙ」を含むストリング提案キーをアクティブ化したのが示されており、テキスト「ａｔｔｏｒｎｅｙ」２１０が今やテキスト入力領域２０５に現れることができ、ユーザが「ａｔｔｏｒｎｅｙ」を所望のカテゴリテキストとして今にも入力しようとしていると想定して「Ｄｏｎｅ」キー２５０をハイライト表示することができる。最後に図１０では、ユーザは「Ｄｏｎｅ」キーをアクティブ化したものとすることができ、テキスト入力ウィジェット１２０によって「ａｔｔｏｒｎｅｙ」をＣａｔｅｇｏｒｙフィールド５１０への所望の入力としてイエローページアプリケーション１１０に渡すことができ、したがって「ａｔｔｏｒｎｅｙ」がイエローページアプリケーション表示５００中に現れることができる。予測テキスト入力ウィジェット１２０がユーザ入力を受け取ってアプリケーション１１０に返すことのできる例示的なプロセスのより詳細な記述を、図１２に提供する。
【００２０】
次に図１１を参照すると、本発明の一実施形態による方法を示すフローチャートが示されている。プロセスは、ステップ７００でアプリケーション１１０が実行されることで開始することができる。ステップ７０５で、アプリケーション１１０が終了するかどうかを判定するためのテストが行われる。アプリケーション１１０が終了する場合は、処理は停止する。アプリケーションが終了しない場合は、ステップ７１０を実行することができる。ステップ７１０で、アプリケーション１１０がテキスト入力を必要とするかどうかをテストが判定することができる。このテストが、アプリケーション１１０がテキスト入力を必要としないと判定した場合は、処理はステップ７００で継続することができる。ステップ７１０のテストが、アプリケーション１１０がテキスト入力を必要とすると判定した場合は、ステップ７２０を実行することができる。ステップ７２０で、アプリケーション１１０は、アプリケーション１１０の現在の入力コンテキストで使用するための、１つまたは複数の辞書と、許可される記号の１つまたは複数のセットとを選択することができる。現在の入力コンテキストは、アプリケーション１１０中で現在のフォーカスを有することのできるテキスト入力制御（例えばテキストボックス、ウィンドウなど）を指すことができる。本発明の方法では、このような各コンテキストが、異なる辞書、異なる許可される記号セット、および異なる関連する予測モデルをサポートすることができる。ステップ７３０で、アプリケーション１１０は、選択された辞書および許可される記号を予測テキスト入力ウィジェット１２０に渡すことによって、予測テキスト入力ウィジェット１２０を呼び出すことができる。ステップ７４０で、予測テキスト入力ウィジェット１２０は、ユーザ入力を処理することができ、１つまたは複数の入力されたテキストストリングをアプリケーション１１０に返すことができる。ステップ７５０で、予測テキスト入力ウィジェット１２０の予測能力を向上させることが入力コンテキストで有益であろうかどうかをテストが判定することができる。何が有益であろうかは、アプリケーション１１０が書かれるときに、アプリケーション１１０中の各入力コンテキストにつき事前定義することができる。例えば、入力コンテキストが、州の省略形の入力を必要とするフィールドである場合、関連する辞書は、５０個の固定ストリングのセットで構成することができる。ユーザが何か他のものを入力した場合、それは有益と見なされず、関連する辞書に追加されなくてよい。イエローページアプリケーションの例では、ユーザによって入力された検索ストリングを辞書に記憶させることで、将来の予測を向上させることができる。したがって、このようなストリングを関連する辞書に追加することができ、あるいは、すでに辞書中にある検索ストリングについては頻度統計を修正することができる。同様に、別の例としてＩＭアプリケーションが、入力されたテキストを別々の単語に分解して、新しい単語を辞書に追加したい場合もある。辞書への追加を可能にするかどうか、および何を追加するかに関する決定は、アプリケーションが書かれるときに定義することができ、テキスト入力ウィジェット１２０から独立していてよい。図１１の流れ図を続けるが、ステップ７５０のテストが、予測テキスト入力ウィジェット１２０の予測能力を向上させることが入力コンテキストで有益でないであろうと判定した場合は、処理はステップ７００で継続することができる。予測テキスト入力ウィジェット１２０の予測能力を向上させることが入力コンテキストで有益であろうとテストが判定した場合は、ステップ７６０を実行することができ、アプリケーション１１０は、選択された辞書を、ユーザによって入力されたテキストで更新することができ、処理はステップ７００で継続することができる。
【００２１】
次に図１２を参照すると、本発明の一実施形態による、予測テキスト入力ウィジェットがユーザ入力を処理して入力テキストストリングを要求元アプリケーションに返す図１１のステップ７４０のサブステップを示すフローチャートが示されている。プロセスはステップ８００で開始することができ、予測テキスト入力ウィジェット１２０は、呼出し元アプリケーション１１０によって提供された辞書および許可される記号を受け取ることによって、呼び出されるものとすることができる。ステップ８０５で、予測テキスト入力ウィジェット１２０は、初期仮想キーボード２００を表示デバイス１７０上に描画することができる。ステップ８０７で、ウィジェット１２０は、ユーザが入力デバイス１８０を利用して入力キーをアクティブ化するのを待機することができる。ステップ８１０で、ユーザが入力キーをアクティブ化したかどうかをテストが判定することができる。ユーザが入力キーをアクティブ化していない場合は、処理はステップ８０７で継続することができる。ユーザが入力キーをアクティブ化した場合は、ステップ８１５を実行することができる。ステップ８１５で、入力キーがナビゲーションキー、例えば５キーの方向キーパッド１８５上のＵＰ、ＤＯＷＮ、ＬＥＦＴ、ＲＩＧＨＴのうちの１つであるかどうかを、テストが判定することができる。入力キーがナビゲーションキーである場合は、ステップ８０９を実行することができ、仮想キーボード２００中の新しいキーをハイライト表示することができる。例えば、図２および７に示した例示的な実施形態では、「Ｄｏｎｅ」キー２５０および「ａ」キーがそれぞれハイライト表示されている。次いで処理はステップ８０７で継続することができる。ステップ８１５のテストが、入力キーがナビゲーションキーでないと判定した場合は、ユーザによってアクティブ化された入力キーはＳＥＬＥＣＴキーであったと想定することができ（８２０）、ステップ８３０を実行することができる。ステップ８３０で、テキスト記号キー、例えば図８のキー２２０または４１０が仮想キーボード２００中で選択されたかどうかを、テストが判定することができる。テキスト記号キーが仮想キーボード２００中で選択された場合は、ステップ８５５を実行することができ、ウィジェット１２０は、現在の入力ストリングを更新することができ、必要なら仮想キーボード２００を再描画することができる。次いでステップ８６０を実行することができ、ウィジェット１２０は、現在入力されているテキストに対する予測される記号を更新することができ、必要なら仮想キーボード２００を再描画することができ、処理はステップ８０７で継続することができる。ステップ８３０のテストが、テキスト記号キーが仮想キーボード２００中で選択されなかったと判定した場合は、ステップ８３５を実行することができる。ステップ８３５で、上位予測ストリング（または予想ストリング）のうちの１つに対応するキーのうちの１つ、例えば図４の提案キー４１０のうちの１つが仮想キーボード２００中で選択されたかどうかを、テストが判定することができる。上位予測ストリングのうちの１つに対応するキーのうちの１つが仮想キーボード２００中で選択された場合は、処理はステップ８５５で継続することができる。上位予測ストリングのうちの１つに対応するキーのうちの１つが仮想キーボード２００中で選択されなかった場合は、ステップ８４０を実行することができる。ステップ８４０で、入力モディファイアキー２４０のうちの１つに対応するキーが仮想キーボード２００中で選択されたかどうかをテストが判定することができる。入力モディファイアキー２４０のうちの１つに対応するキーが仮想キーボード２００中で選択された場合は、ステップ８６５を実行することができ、ウィジェット１２０は、選択された入力モディファイアキー２４０に従って現在の入力テキスト２１０を更新することができ、処理はステップ８０７で継続することができる。ステップ８４０のテストが、入力モディファイアキー２４０のうちの１つに対応するキーが仮想キーボード２００中で選択されていないと判定した場合は、ステップ８４５を実行することができる。ステップ８４５で、記号変更キー２３０が仮想キーボード２００中で選択されたかどうかをテストが判定することができる。記号変更キー２３０が仮想キーボード２００中で選択された場合は、ステップ８７０を実行することができ、ウィジェット１２０は、仮想キーボード２００を更新して、選択された記号サブセットを表示することができ、処理はステップ８０７で継続することができる。ステップ８４５のテストが、記号変更キー２３０が仮想キーボード２００中で選択されていないと判定した場合は、ステップ８５０を実行することができ、「Ｄｏｎｅ」キーが仮想キーボード２００中で選択されたものとすることができる。ウィジェット１２０は、仮想キーボード２００を消去することができ、現在の入力テキストを呼出し元アプリケーション１１０に返すことができ、それ自体を終了することができる。
【図１】
2010530561.tif 000003
【図２】
2010530561.tif 000004
【図３】
2010530561.tif 000005
【図４】
2010530561.tif 000006
【図５】
2010530561.tif 000007
【図６】
2010530561.tif 000008
【図７】
2010530561.tif 000009
【図８】
2010530561.tif 000010
【図９】
2010530561.tif 000011
【図１０】
2010530561.tif 000012
【図１１】
2010530561.tif 000013
【図１２】
2010530561.tif 000014
【国際調査報告】
2010530561.tif 000015