(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムにユーザ入力を提供するように構成されたシステムであって、
前記アプリケーションプログラムから独立しており、その各々が、ユーザとの対話に基づいてユーザ入力を受け取るように構成され、ソフトウェア入力メソッドデータベースに格納された入力パネルを有する複数のソフトウェア入力メソッド、および
アプリケーション状態決定機構に関連して、
アプリケーションプログラムから、最初にフォーカスされた１つまたは複数のフィールドに対応する状態情報を受け取る動作と、
前記アプリケーションプログラムから前記状態情報を受け取った後、前記最初にフォーカスされた１つまたは複数のフィールドのいずれかにおいていずれの前記ユーザ入力も受け取る前に、前記アプリケーションプログラムから前記受信した状態情報に基づいて、適切な入力パネルを予測および選択する動作と、
前記最初にフォーカスされた１つまたは複数のフィールドへの最初のユーザ入力を受け取った後に、続いて決定される前記アプリケーションプログラムの状態に基づいて、前記選択された入力パネルを自動的に変更する動作と
を実行するよう構成されたソフトウェア入力メソッドマネジャと
を備えたことを特徴とするシステム。
【請求項２】
前記アプリケーションプログラムは、前記アプリケーション状態決定機構を介して前記状態を前記ソフトウェア入力メソッドマネジャに伝達することを特徴とする請求項１に記載のシステム。
【請求項３】
前記アプリケーションの状態を決定し、前記状態を前記ソフトウェア入力メソッドマネジャに伝達する、前記アプリケーション状態決定機構を処理する前記アプリケーションプログラムの外部にあるコンポーネントを、さらに備えたことを特徴とする請求項１に記載のシステム。
【請求項４】
前記アプリケーションプログラムは、前記１つまたは複数のフィールドに対応するデータを前記ソフトウェア入力メソッドマネジャに伝達し、および前記ソフトウェア入力メソッドマネジャは、前記データに基づいて前記入力メソッドを選択することを特徴とする請求項１に記載のシステム。
【請求項５】
前記アプリケーションプログラムは、表示される１つまたは複数のキー選択を前記ソフトウェア入力メソッドに伝達し、および前記ソフトウェア入力メソッドは、前記表示される１つまたは複数のキー選択に基づいて前記入力パネル上の少なくとも一部のキーを構成することを特徴とする請求項１に記載のシステム。
【請求項６】
前記アプリケーションプログラムは、前記１つまたは複数のキー選択をＸＭＬフォーマットを介して前記ソフトウェア入力メソッドに伝達することを特徴とする請求項５に記載のシステム。
【請求項７】
前記１つまたは複数のキー選択は、ユーザ選択の際にディスプレイに出力される文字全体を含むことを特徴とする請求項５に記載のシステム。
【請求項８】
以前のユーザ入力情報のデータベースをさらに備え、前記ソフトウェア入力メソッドは、前記以前のユーザ入力情報に基づいて前記入力パネル上の少なくとも一部のキーを構成することを特徴とする請求項１に記載のシステム。
【請求項９】
特定のアプリケーションプログラムを開いた後、任意のユーザの選択がなされる前に、１つまたは複数のソフトウェアに基づく入力パネルを動的に決定するためのコンピュータによって実施される方法であって、
１つまたは複数のアプリケーションプログラムから、フォーカスされている１つまたは複数のフィールドの１つまたは複数のフィールド識別子に対応するアプリケーション状態データを受け取るステップであって、前記アプリケーション状態データは、前記１つまたは複数のアプリケーションプログラムおよびソフトウェア入力メソッドマネジャから独立しているアプリケーション状態決定機構を介して前記ソフトウェア入力メソッドマネジャにおいて受け取られ、前記ソフトウェア入力メソッドマネジャは、前記１つまたは複数のアプリケーションプログラムからさらに独立しているステップと、
１つまたは複数のフィールド識別子に対応する前記アプリケーション状態データを受け取った後で、前記フォーカスされている１つまたは複数のフィールドに入力するためのいずれのキーも、ユーザ選択される前に、複数のソフトウェア入力メソッドから前記アプリケーションプログラムのための入力メソッドのデータベースからの入力パネルを自動的に決定するステップであって、各ソフトウェア入力メソッドが前記アプリケーションプログラムから独立しており、前記決定された入力パネルは、前記１つまたは複数のアプリケーションプログラムと共に、ユーザによって使用されるよう構成されているステップと、
少なくとも１つのカスタマイズされ、表示されるキーを有する少なくとも１つの入力パネルとユーザとの対話に対応して、前記アプリケーションプログラムにデータを戻すステップであって、起動されると前記キーに表示されたテキストを少なくとも１つのアプリケーションプログラムに戻すステップと
を備えたことを特徴とする方法。
【請求項１０】
前記１つまたは複数のアプリケーションプログラムのうちの少なくとも１つから、前記選択された入力メソッドに関連する少なくとも１つのキーの選択を受け取るステップと、該少なくとも１つのキーの選択に基づいて前記入力パネル上の少なくとも１つのキーを構成するステップとをさらに備えたことを特徴とする請求項９に記載の方法。
【請求項１１】
請求項９に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１２】
特定のアプリケーションプログラムを開いた後、任意のユーザの選択がなされる前に、１つまたは複数のソフトウェアベースの入力パネルを動的に決定するコンピュータによって実施される方法であって、
（i）１つまたは複数の最初にフォーカスされたフィールドに対応する複数のアプリケーションプログラムの第１のアプリケーションプログラムおよび第２のアプリケーションプログラムから、アプリケーションプログラム状態データを受け取るステップであって、各アプリケーションプログラム状態データは、前記複数のアプリケーションプログラムおよび前記ソフトウェア入力メソッドマネジャから独立しているアプリケーション状態決定機構を介して、ソフトウェア入力メソッドマネジャにおいて受け取られ、前記アプリケーション状態決定機構および前記ソフトウェア入力メソッドマネジャは、前記アプリケーションプログラム状態情報に対応する前記アプリケーションプログラムから独立している受け取るステップと、
（ii）前記アプリケーション状態データを受け取る際、前記１つまたは複数のフォーカスされたいずれかのフィールドへのいずれのユーザも、入力される前に、前記１つまたは複数の最初にフォーカスされたフィールドに対応する前記第１のアプリケーションプログラムおよび前記第２のアプリケーションプログラムの前記アプリケーションプログラム状態データに基づいて、入力パネルのデータベースから１つまたは複数の入力パネルを選択するステップと、
（iii）前記入力パネルにキーを表示して、前記入力パネルとユーザとの対話を可能にするステップと、および
（iv）前記入力パネルとユーザとの対話に対応して、前記アプリケーションプログラムにキーデータを戻すステップと
を備えたことを特徴とする方法。
【請求項１３】
前記アプリケーションプログラムの状態のデータを受け取るステップは、前記アプリケーションプログラムからの通信に対応するデータを受け取るステップを備えたことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記アプリケーションプログラムの状態のデータを受け取るステップは、前記アプリケーションプログラムに対して外部のコンポーネントからの通信に対応するデータを受け取るステップを備えたことを特徴とする請求項１２に記載の方法。
【請求項１５】
前記入力パネルを選択するステップは、入力メソッドをロードするステップを備えたことを特徴とする請求項１２に記載の方法。
【請求項１６】
前記入力パネルを選択するステップは、ロードされた入メソッドに通知するステップを備えたことを特徴とする請求項１２に記載の方法。
【請求項１７】
前記ソフトウェア入力メソッドマネジャが、表示される１つまたは複数のキーを特定するキー構成情報を示すデータを前記アプリケーションプログラムから受け取るステップと、前記ソフトウェア入力メソッドマネジャが、前記アプリケーションプログラムから受け取った前記キー構成情報に基づいて前記入力パネル上の前記キーの少なくとも一部を構成するステップとをさらに備えたことを特徴とする請求項１２に記載の方法。
【請求項１８】
前記キー構成情報を受け取るステップは、前記アプリケーションプログラムから通信に対応するデータを受け取るステップを備えたことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記キー構成情報を受け取るステップは、前記アプリケーションプログラムに対して外部のコンポーネントからの通信に対応するデータを受け取るステップを備えたことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記アプリケーションプログラムに対して外部の前記コンポーネントからの通信に対応するデータを受け取るステップは、データベースにアクセスするステップを備えたことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記アプリケーションプログラムにキーデータを戻すステップは、単一の表示されたキーが起動されるのに応答して少なくとも２文字からなる文字列を戻すステップを備えたことを特徴とする請求項１２に記載の方法。
【請求項２２】
請求項１２に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な媒体。
【請求項２３】
携帯情報端末および格納された前記携帯情報端末においてアプリケーションプログラムによりディスプレイおよびタッチベースによる入力パネルを実装する１つまたは複数のコンピュータ実行可能命令を備えたコンピュータ環境において、任意のユーザ選択から独立して、アプリケーションプログラムを開いた後、所与のアプリケーションプログラムに適している１つまたは複数のカスタマイズされ、タッチパネルによるキーボードを自動的に決定および表示させる方法は、
アプリケーションプログラムを開くために１つまたは複数の要求を受け取るステップと、
最初にフォーカスされた１つまたは複数のフィールドに対応する前記アプリケーションプログラムからの状態データを、ソフトウェア入力メソッドマネジャにおいて受け取るステップと、
前記１つまたは複数の要求および前記状態データを受け取った後、前記１つまたは複数のフィールドへのいずれのユーザの入力も受け取る前に、前記受信した状態データの少なくとも一部を前記携帯情報端末に格納された入力メソッド選択データベース情報と比較するステップであって、前記入力メソッド選択データベース情報は、前記アプリケーションプログラムに共通に入力されたユーザテキストに関する情報と、前記アプリケーションプログラムに対して一意である１つまたは複数のカスタマイズされたキーと、前記アプリケーションプログラムについての１つまたは複数のキー構成とを備える比較するステップと、
前記アプリケーションプログラムに一意であるカスタマイズされたキーボードを前記携帯情報端末を介して表示するステップであって、前記カスタマイズされたキーボードは、前記ユーザにより選択されると、前記携帯情報端末上に表示されるテキストを有する１つまたは複数のカスタマイズされたキーを含む、表示するステップと
を備えたことを特徴とする方法。
【請求項２４】
前記１または複数のカスタマイズされたキー上に表示される前記テキストは、
「ｈｔｔｐ：／／」、「ｗｗｗ」、「．ｃｏｍ」、「．ｎｅｔ」、「．ｏｒｇ」、「．ｇｏｖ」、「．ｂｉｚ」、「．ｅｄｕ」、「．ｍｉｌ」を含むインターネットアドレス略語または拡張子か、
月、日、または年のフルまたは省略されたスペルか
の任意の１つを備えたことを特徴とする請求項２３に記載の方法。
【請求項２５】
１つまたは複数のカスタマイズされたキー上に表示される前記テキストは、前記アプリケーションプログラムの前の使用の間に前記ユーザにより以前に入力された完全な単語を含むことを特徴とする請求項２３に記載の方法。
【請求項２６】
前記予測され選択された入力パネルは、前記ユーザに選択されるとき前記携帯情報端末上に表示されるテキスト文字列を備えている１つまたは複数の複数のカスタマイズされたキー備えたことを特徴とする請求項１に記載のシステム。
【請求項２７】
前記１または複数のカスタマイズされたキー上に表示される前記テキストは、
「ｈｔｔｐ：／／」、「ｗｗｗ」、「．ｃｏｍ」、「．ｎｅｔ」、「．ｏｒｇ」、「．ｇｏｖ」、「．ｂｉｚ」、「．ｅｄｕ」、「．ｍｉｌ」を含むインターネットアドレス略語または拡張子か、
月、日、または年のフルまたは省略されたスペルか
の任意の１つを備えたことを特徴とする請求項２６に記載のシステム。
【請求項２８】
１つまたは複数のカスタマイズされたキー上に表示される前記テキストは、前記アプリケーションプログラムの前の使用の間に前記ユーザにより以前に入力された完全な単語を備えることを特徴とする請求項２６に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にはコンピュータシステムに関し、より詳細にはコンピュータシステムへのデータ入力に関する。
【０００２】
【従来の技術】
ハンドヘルド型およびポケットサイズのコンピュータ、タブレットパーソナルコンピュータなどを含む、携帯情報端末のような小型のモバイルコンピューティングデバイスは、重要でかつ好まれる一般的なユーザツールになりつつある。一般に、消費する電池電力が次第に少なくなる一方、こうしたデバイスは十分小型化されてきわめて便利になり、かつ同時により強力なアプリケーションを実行することが可能になっている。
【０００３】
こうしたデバイスの計算回路のサイズは縮小を続けるが、人の身体的制約のためサイズの限界に達しつつある。例えば、ユーザのデータ入力を可能にする文字用フルキーボードは、あまりに小さくすると人間の指でキーボードの個々のキーを押すことができなくなってしまう。この結果、このようなデバイス(例えばパームサイズのコンピュータ)の多くは物理的なキーボードを避け、代わりにタッチセンシティブなディスプレイにキーボードを描画させている。このため、ユーザは、表示されたキーに対応する位置にスタイラスで触れることによって文字を入力する。言うまでもなく、タッチスクリーンデバイスは物理的なキーボードを有するデバイスと同時に使用することもでき、したがって物理的キーボードのキーを手で押すことによって文字を入力することもできる。
【０００４】
タッチスクリーンデバイスはユーザがデータを入力するための適切な手段を提供するのに役立つが、データ入力パネルとそこに表示されるキーは、通常、非常に小さく、ユーザのデータ入力の速度が落ち、誤ったデータ入力につながる。様々な理由の中でもこれは特に、キー入力を受け取るアプリケーションは、ユーザに入力フィールドなどを表示するために表示領域の一部を使用する必要があるため、キーボードの表示に利用できる領域が制限されることによる。個々のキーを大きくすることが可能な1つの方法は、例えば、あるキーボードは英文字の入力用、あるキーボードは数字の入力用、別のキーボードは句読点記号の入力用にするなど、何らかの論理的区別に従ってユーザが選択できる各種のキーボードにキーを分散するというものである。この方法はキーのサイズを大きくすることにより助けとなりうるが、ユーザがキーボード間で多数の切り替えを行うことが必要となり、また複数のキーボードから必要な文字を探すことが必要になると考えられる。例えば、適切な文章には句読点が含まれるが、表示された単一のキーボードにアルファベットと句読点記号の完全なセットを含めると、一般的なパームサイズのコンピュータのキーは、多くのユーザにとって小さすぎるものになってしまう。したがって、句読点記号の一部またはすべてを、ユーザが手動で選択できる別個のキーボードに入れる場合がある。
【０００５】
【特許文献１】
米国特許出願第08/991,227号
【０００６】
【発明が解決しようとする課題】
一般に、表示領域による制限がある場合には、ユーザの利便性のためにより多くのキーを表示することと、キーのサイズ、したがってキーの使いやすさとの間でトレードオフがある。したがって、使いやすさに大きな影響を与えずに、それよりむしろある程度使いやすさを高めながら、制限された表示領域内で利便性を向上することが絶えず求められている。
【０００７】
【課題を解決するための手段】
要約すると、本発明は、例えばそのときフォーカスされている、データを入力しようとするフィールドに対応する状態など、アプリケーションの状態に基づいて、ソフトウェアの入力メソッドを自動的に選択し、及び／又はあるソフトウェア入力メソッドのソフトウェア入力パネルに表示されるキーを調整する方法およびシステムを提供する。例えば、任意のアプリケーションを実質的に任意の入力メソッドを実質的に互いに取り替えて使用することができるという点で、アプリケーションはソフトウェア入力メソッドとその入力パネルから独立し、したがって、必ずしも相互の特徴や機能についての知識を持たなくとも、種々のアプリケーションと種々の入力メソッドを開発することが可能になる。キーは一個の文字である必要はなく、データの入力時にユーザが必要とする可能性が高い文字列など、文字又はその他の記号の文字列を表現することができる。例えば、ブラウザのアドレスフィールドで編集を行う際は、ユーザが容易に選択できるように、そのユーザが直近にアクセスしたインターネット及び／又はイントラネットのウェブサイトを、頻繁に必要とされる「http://」「www.」及び／又は「.com」などの文字列とともに表示されたキーの上に示すことができる。
【０００８】
一実施態様では、アプリケーションがソフトウェア入力メソッドマネジャと通信して、ソフトウェア入力メソッドマネジャに所望の入力メソッドに関連する情報を提供する。例えば、アプリケーションは、あるフィールド識別子に対応する状態情報を伝えることができ、ソフトウェア入力メソッドマネジャはそれにより、そのフィールドに適した入力メソッドを選択することができる。これは、そのフィールドが最初にフォーカスを受ける時、又は、ユーザが特定の文字または文字列を入力した時など他の何らかの時であることに留意されたい。さらに、アプリケーションは、ソフトウェア入力メソッドマネジャを介するなどして、表示されるキーの選択範囲にあるいくつかをソフトウェア入力メソッドに提供することができる。これにより、キーはユーザの選択のために、例えばお気に入りのリストや直近に使用したリストなど、そのアプリケーションが表示を望むもの、及び／又はそのキーが表すものに、表示されるその内容を表す名前を用いて反映することができる。
【０００９】
この代りに、ある実施態様では、ソフトウェア入力メソッドマネジャが、アプリケーションに対して外部にあるものの、そのアプリケーションでその時点でフォーカスされているフィールドなど、アプリケーションの状態を(例えばそのフィールドのウィンドウクラスやその他の利用可能なデータを介して)決定することができる状態決定機構と通信し、ソフトウェア入力メソッドマネジャは適切な入力メソッドを選択することができる。例えば、状態決定機構は、アプリケーションのあるフィールドの受け取り対象がインターネットまたはイントラネットのアドレスであると判断することができ、したがって、あるフィールド識別子に対応する状態情報をソフトウェア入力メソッドマネジャに伝達することができる。ソフトウェア入力メソッドマネジャはそれを受けて、そのフィールドに適した入力メソッドを選択することができる。
【００１０】
このような方法で、ユーザが所与のアプリケーションの状態に対して必要とする可能性が高いものに基づいて、異なる入力パネルを用いる入力メソッドを自動的に選択することができ、又は、入力メソッドは、その入力パネルを異なる、キーボードレイアウトを用いた及び／又はキーの意味付けを有するパネルに自動的に変更することができる。少なくともキーの一部は入力の可能性の高さに合わせて仕立てられるので、入力システムの利便性及び／又は使いやすさを高めることができる。
【００１１】
この他の利点は、図面と併せて解釈する以下の詳細な説明から明らかになろう。
【００１２】
【発明の実施の形態】
［実施例の動作環境］
図1は、特に画像及び／又はビデオデータの復号のために本発明を実施することが可能な適切な動作環境120の一例を示す。動作環境120は、適切な動作環境の一例に過ぎず、本発明の使用または機能性の範囲に関して何らの制限を示唆するものではない。本発明に使用するのに適すると思われる他のよく知られるコンピューティングシステム、環境、及び／又は構成には、これらに限定しないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な消費者家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスのいずれを含む分散コンピューティング環境などが含まれる。例えば、画像及び／又はビデオ画像データの符号化は、現在のハンドヘルド型のパーソナルコンピュータよりも高い処理能力を有するコンピュータで行われることが多い可能性が高いが、例示的なデバイスで符号化を行うことができない、あるいは復号をより強力なマシンで行うことができない理由はない。
【００１３】
本発明は、1つまたは複数のコンピュータまたはその他のデバイスによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行する、あるいは特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。一般に、プログラムモジュールの機能は、各種の実施形態で必要に応じて組み合わせても分散してもよい。
【００１４】
コンピューティングデバイス120は、一般に、少なくとも何らかの形態のコンピュータ読み取り可能な媒体を含んでいる。コンピュータ読み取り可能な媒体は、コンピューティングデバイス120からアクセスすることのできるいずれの利用可能な媒体でよい。例として、コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体および通信媒体を含むことができるがこれらに限定しない。コンピュータ記憶媒体には、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するために任意の方法または技術に実施された、揮発性および不揮発性の媒体、取り外し可能および取り外し不能の媒体が含まれる。これらに限定しないが、コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、又はその他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、あるいはその他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、またはその他の磁気ストレージデバイス、または所望の情報の記憶に使用することができ、コンピューティングデバイス120からアクセスすることのできる任意の他の媒体が含まれる。通信媒体は、一般に、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータを搬送波やその他の搬送機構などの変調データ信号に実施し、また任意の情報伝達媒体を含む。用語「変調データ信号」とは、情報を信号中に符号化するような方式でその特性の1つまたは複数を設定または変更した信号を意味する。例として、通信媒体には、配線ネットワークや直接配線接続などの配線媒体、および音響、RF、赤外線その他などの無線媒体が含まれるがこれらに限定しない。いずれの上記方式の組合せもコンピュータ読み取り可能な媒体の範囲に含まれる。
【００１５】
図1は、上記のようなハンドヘルドコンピューティングデバイス120の機能構成要素を示し、これにはプロセッサ122、メモリ124、ディスプレイ126、およびキーボード(物理キーボードでも仮想キーボードでもよい)128が含まれる。メモリ124は一般に、揮発性メモリ(例えばRAM)と不揮発性メモリ(例えばROM、PCMCIAカードなど)の両方を含む。Microsoft(登録商標)社製のWindows(登録商標)CEオペレーティングシステムや、別のオペレーティングシステムなどのオペレーティングシステム130はメモリ124内に常駐し、プロセッサ122で実行される。
【００１６】
1つまたは複数のアプリケーションプログラム132はメモリ124にロードされ、オペレーティングシステム130上で実行される。アプリケーションの例には、電子メールプログラム、スケジュール管理プログラム、PIM(個人情報管理)プログラム、ワードプロセッシングプログラム、表計算プログラム、インターネットブラウザプログラムなどが含まれる。ハンドヘルドパーソナルコンピュータ120は、メモリ124にロードされた通知マネジャ134も含むことができ、これはプロセッサ122で実行される。通知マネジャ134は、例えばアプリケーションプログラム132からの通知要求を処理する。
【００１７】
ハンドヘルドパーソナルコンピュータ120は電源136を有し、これは1つまたは複数の電池として実施される。電源136はさらに、ACアダプタや電力が供給される(powered)ドッキングクレードルなど、内蔵電池に代わる(override)又は内蔵電池を再充電する外部電源も含むことができる。
【００１８】
図1に表す例示的なハンドヘルドパーソナルコンピュータ120の図には、3タイプの外部通知機構を示している。すなわち、1つまたは複数の発光ダイオード(LED)140と、オーディオ発生器144である。ハンドヘルドパーソナルコンピュータのプロセッサ122やその他のコンポーネントは電池電力を節減するためにシャットダウンされることがあるが、これらのデバイスは、起動されると通知機構によって指示される時間にわたってオンの状態を保つように電源136に直接結合することができる。LED140は、ユーザが動作を行うまで無期限にオンの状態を保つことが好ましい。現在のバージョンのオーディオ発生器144は、今日のハンドヘルドパーソナルコンピュータの電池に対して使用する電力が多すぎるので、システムの残りの部分がオンになっている時間、又は起動後のいくらかの有限の時間にわたってオフになるように構成することに留意されたい。
【００１９】
［互換性のあるソフトウェア入力メソッド］
本発明では、物理的なキーボードに代えて、主にデバイスのタッチスクリーン126を介して文字、キーベース及びその他ユーザデータの入力を可能にするために設計されたアーキテクチャを使用する。ただし図を簡潔にするために個別には示していないが、理解されるように、所与のコンピュータシステム120は、任意選択で、かつ追加的に物理的なキーボードを含むことも可能である。さらに、下記から明らかになるように、「ソフトウェア入力パネル」は、パネルへの接触または近接を介して直接入力を受け取るように調整された実際のタッチセンシティブパネルである必要はなく、代わりにマイクロフォンなど他の入力装置を介して動作することも可能である。例えば、話された単語をマイクロフォンで受け取って認識し、画面上のウィンドウ、すなわちソフト入力パネルにテキストとして表示することができる。
【００２０】
図2は、本発明の譲受人に譲渡された米国特許出願(例えば、特許文献1参照)にも記載されているように、一般的なソフトウェア入力パネルアーキテクチャを実施するブロック図を示す。図1および2に表すように、コンピュータシステム120(図1)はオペレーティングシステム130を含むが、これはグラフィカルウィンドウ環境200(図2)を組み込むことができる。このグラフィカルウィンドウ環境200は、一般には、図1のキーボード128、ペンまたはマウス(図示せず)、外部デジタイザ(図示せず)などを含む各種デバイスを通じて、ユーザ入力を受け取る働きをする。次に、グラフィカルウィンドウ環境200は、その時点でフォーカスされている入力を有するウィンドウを含むアプリケーションプログラム202(図2)にそうしたユーザ入力を提供することができるが、この場合ユーザ入力は、通常1つまたは複数のキーボード文字事象の形でアプリケーションウィンドウに送られる。コンピュータシステムによって複数のアプリケーション200を実行することができるが、現在実行されている1つのアプリケーションがフォーカスされている入力を有し、一般には別個の入力ウィンドウとして構成されるアプリケーション中の入力フィールドを介するなどして入力を受け取るとされることに留意されたい。さらに「アプリケーションプログラム」とは、従来のユーザ態様アプリケーションを含むが、オペレーティングシステムおよび他のカーネル態様コンポーネント、あるいは実質的にいかなるタイプのソフトウェアモジュールをも含む任意の実行可能なソフトウェアコードを意味することに留意されたい。
【００２１】
好ましいアーキテクチャではソフトウェア入力メソッドマネジャ204を用いて、例えば選択された入力メソッド206など、複数の異なる入力メソッドに対する柔軟性のある単一のインタフェースを提供する。一般に、ソフトウェア入力メソッドマネジャ204は、選択された入力メソッド206からのキーストロークをグラフィカルウィンドウ環境200(例えばWindows(登録商標)CEオペレーティングシステムに組み込まれた)に提供する。キーストロークを受け取ると、グラフィカルウィンドウ環境200は、ユーザ入力データに対応する情報を、そのキーストローク、マウス、またはその他のメッセージの形で、コールを介してアプリケーションに伝達する、又はアプリケーションのウィンドウのメッセージ待ち行列に入れるなどして、そのウィンドウがその時点でフォーカスされている入力を有するアプリケーションプログラム202に送る。この結果、キーボード入力を処理することが可能なアプリケーションはいずれでも、適切に構成された入力メソッド206と併せて使用することができる。
【００２２】
互換性のある入力メソッド206は、例えば、表示可能な各種の異なるキーボード、(ソフトキーボード)、計算機、公式及び／又は数式エディタ、化学記号のテンプレート、音声認識、手書き認識、速記記号認識、又はその他業務に最適化された入力メソッド(例えばバーコードリーダ)を含むことができる。例えば、図4に表すように、ソフトウェア入力メソッドマネジャ204は、ユーザがソフトウェア入力メソッドのウィンドウ(パネル)402を開いた状態と閉じた状態で切り替えられるようにするユーザインタフェース領域400を提供する。ソフトウェア入力メソッドマネジャ204は、利用できる入力メソッドの表示可能リストからユーザが選択することを可能にするユーザインタフェース404も提供する。ユーザインタフェース404で対話するユーザは入力メソッドを選択することができ、それに対して、ソフトウェア入力メソッドマネジャ204は図2の入力メソッド206など選択された入力メソッドをロードし、コールする。
【００２３】
好ましい実施形態では、各入力メソッドは、IInputmethod208およびIIMCallback210として示すCOM(コンポーネントオブジェクトモデル)インタフェースを通じてソフトウェア入力メソッドマネジャ204と通信する。COMオブジェクトは、特別に定義されたインタフェースを通じてアクセスすることが可能な、カプセル化されたメソッドとデータを有するデータ構造を備える。
【００２４】
一般に、選択されたソフトウェア入力メソッドの入力パネル402がユーザによってオンとオフの間で切り替えられると、ソフトウェア入力メソッドマネジャ204は、例えばIInputmethodインタフェース208を介するなどインタフェースを介して、それに応じてパネル402を開く、または閉じるように選択された入力メソッド206に伝える。新しい入力メソッドが選択されると、ソフトウェア入力メソッドマネジャ204は、インタフェース208を通じて、以前に選択されたすべての入力メソッドに終了するように伝え、新しく選択された入力メソッドをロードする。インタフェース208は、ソフトウェア入力メソッドマネジャ204が選択された入力メソッドに固有の情報を入手する際にも使用することができる。
【００２５】
アプリケーション202は、APIコールを介するなどしてソフトウェア入力メソッド206に情報を伝達することができる。IInputMethodインタフェース208は、選択されたソフトウェア入力メソッド206との通信のために、選択されたソフトウェア入力メソッド206によって実施され、それにより、選択されたソフトウェア入力メソッド206に状態の変化を通知する、及び／又は選択されたソフトウェア入力メソッド206に動作および情報を要求する。一般に、コールされたメソッドが成功した場合は成功の結果が戻され、逆にメソッドが失敗した場合は失敗の結果が戻される。次の表に、このIInputMethodインタフェースで利用できるメソッドのコールの一部を挙げる。
【００２６】
【表１】
0004091398.tif 000002
【００２７】
選択されたソフトウェア入力メソッド206は、通例は、Select( )、GetInfo( )、ReceiveSIPInfo( )、およびRegisterCallback( )メソッドのコールを順に受け取ってから、入力パネル402を描画する、あるいはユーザの動作に応答する。入力パネル402が表示されると(すなわちオンになると)ソフトウェア入力メソッドマネジャ204によってShowing( )がコールされ、その後、選択されたソフトウェア入力メソッド206はWM_PAINTメッセージを発行して入力パネル402を描画する。
【００２８】
Select( )メソッドは、選択されるソフトウェア入力メソッド206が選択されたときにコールされる。選択されたソフトウェア入力メソッド206は、一般に、このコールに応じて必要とされる任意の初期化を行う。選択された入力メソッド206は、入力パネル402のクライアント領域全体を描写する役割を担い、したがって、通常はこのコールに応答してそのウィンドウとイメージリスト(カスタマイズされたアイコンなど表示可能なビットマップの集合)を作成する。例えば、入力パネル402のウィンドウハンドルは、このSelect( )メソッドのコールに伴うパラメータとして、選択されたソフトウェア入力メソッド206に提供され、入力メソッドは通常その入力パネル402の子ウィンドウを生成する。選択されたソフトウェア入力メソッド206には、そのメソッドのコールが成功した場合は選択されたソフトウェア入力メソッド206によって非ゼロにセットされ、コールが成功しない場合はゼロにセットされる値へのポインタも提供される。
【００２９】
Deselect( )メソッドは、選択されたソフトウェア入力メソッド206の選択が解除されたときにコールされる。入力パネル402はこのコールに応答して消され、選択されたソフトウェア入力メソッド206は通常この時点で他の任意の入力パネルのクリーンアップを行う。
【００３０】
Showing( )メソッドは、そのコールからの戻り時に入力パネル402を表示させる。入力パネル402はこのコール以前には目に見える状態である必要はなく、また入力パネル402が表示されると、そのウィンドウとその子ウィンドウはペイントメッセージを受け取ることに留意されたい。逆に、Hiding( )メソッドは、そのコールから戻る際に入力パネル402を非表示にする。このため、Showing( )メソッドとHiding( )メソッドは、入力パネル402を開いた状態と閉じた状態の間で切り替えるのに使用される。
【００３１】
GetInfo( )メソッドは、システムが、選択されたソフトウェア入力メソッド206についての情報を要求する際にコールされる。要求される情報には、選択されたソフトウェア入力メソッド206の何らかの特殊なプロパティを示すフラッグ、選択されたソフトウェア入力メソッド206がアクティブであるときにボタン400に表示するマスクビットマップを含んだ2つのイメージリストのハンドル、指定されるイメージリストへの索引、及び選択されたソフトウェア入力メソッド206についての好ましいサイズと配置を示す矩形が含まれる。このコールはパラメータpimiを含み、これは、選択されたソフトウェア入力メソッド206が適切なデータを埋めるべきデータ構造(IMINFO)へのポインタである。このコールはまた、入力メソッドが成功を表す非ゼロと失敗を表すゼロにセットすべき値へのポインタも提供する。
【００３２】
選択された入力メソッド206は、1つまたは複数の文字がキーボードの品揃え、手書き認識、音声認識、公式エディタ、あるいは計算機などを介して生成されるのかに関係なく、IIMCallback機構210を介して、どの1つまたは複数の文字がユーザによって入力されたかなどの情報をソフトウェア入力メソッドマネジャ204に伝達することができる。このような文字入力は、一般にはソフトウェア入力メソッドマネジャ204に渡されるが、ユニコード文字としてソフトウェア入力メソッドマネジャ204に受け取られ(あるいはユニコード文字に変換され)、グラフィカルウィンドウ環境200に出力されることが好ましい。キーボードの「Ctrl」キーなどのコマンドキー情報も、入力メソッド206によりコールバックインタフェース210を介してソフトウェア入力メソッドマネジャ204に提供することができる。この互換性のある入力メソッドとともに動作するようにアプリケーションを構成した(すなわちアプリケーションが「入力メソッド認識型」である)場合は、入力パネル情報やその他入力メソッドに固有の情報も、選択されたソフトウェア入力メソッド206からソフトウェア入力メソッドマネジャ204を通じて、最終的にはフォーカスされているアプリケーションプログラム202に伝達することができる。
【００３３】
一般に、このシステムは、アプリケーションプログラム202が実行されてフォーカスを有し、かつそのプログラムに対して入力メソッド206が選択されると動作する。入力メソッド206はユーザによって選択されても、あるいは入力メソッド206は以前にアプリケーションのために選択された後に残っているメソッドであってもよく、すなわちユーザが各種のアプリケーションを切り替えても特定の入力メソッドが同じままであってもよいことに留意されたい。さらに、下記で本発明との関連で説明するように、アプリケーションの状態を自動的に使用して入力メソッドを選択することができる。いずれの場合も、図4に示すように、入力メソッド206は、選択されると入力パネル(SIPウィンドウと呼ぶこともある)402を表示する。
【００３４】
ユーザがデータを入力すると、IIMCallback機構を介して適切なデータがソフトウェア入力メソッドマネジャ204に渡される。入力メソッド206は受け取ったデータを最初に処理してもよいという点に留意されたい。一例として、ある特定の入力メソッド206はバーコード記号を数字を表すユニコード文字に変換することができ、別の入力メソッドは数学的な入力をユニコードの結果に変換する(例えば「3+6」を入力すると、ソフトウェア入力メソッドマネジャ204に「9」が送られるなど)ことができ、さらに別のメソッドは数式エディタ(例えば、文字「Sqrt」は平方根の記号を表す単一のユニコード値に変換される)であるなどである。このようないずれかの処理を行うと、入力メソッド206はその数字をソフトウェア入力メソッドマネジャ204に渡し、ソフトウェア入力メソッドマネジャ204はその数字をグラフィカルウィンドウ環境200に渡す。すると、アプリケーションは、使用される実際の入力メソッドに関係なく、ユーザが物理的なキーボードでそれらの数字を入力したのと同じようにその文字データをグラフィカルウィンドウ環境200から受け取ることができる。
【００３５】
図4に示すように、入力パネル(SIPウィンドウ)402は、ユーザの(あるいはアプリケーションプログラムの)要求に応じて非表示、又は表示にすることが可能な、入力メソッド206から提供される矩形の領域を備えることが好ましい。目に見えるSIP作動ボタン400はタスクバーなどの上に配置し、ユーザがSIPウィンドウ402を表示または非表示にするためのタッチセンシティブなインタフェースを提供する。このソフト入力パネルを設計することは、図4に示す例とは異なるSIPウィンドウのサイズまたは位置をサポートする。
【００３６】
このように、SIPシステムは指定された入力メソッド206を選択的にインストールすることを可能にし、ここで、利用可能な各入力メソッドは、ユーザがタッチスクリーンディスプレイ(又は何らかの他の入力装置)を介して文字、テキスト、またはその他のユーザデータを提供するための互換性のあるソフトウェアコンポーネントである。より具体的には、ソフトウェア入力メソッドマネジャ204は、入力メソッド206の選択的なインストールを可能にするCOMインタフェースを見せることが好ましい。それでも、入力メソッド206とソフトウェア入力メソッドマネジャ204は、関数コールを受け取り、応答し、生成するなどの何らかの機構を通じて相互に通信することが可能なあらゆるコンポーネントを実質的に含むことができる。
【００３７】
入力メソッド206は、入力パネル402内の描画と、入力パネル402へのユーザ入力に対する応答を行う役割を担う。入力メソッド206はユーザ入力に応答し、その入力を文字に変換し、その文字は開示されたSIP関数を介してソフトウェア入力メソッドマネジャ204に送られる。一例として、ある入力メソッド206は、図4に示すようなデフォルトのQWERTY(アルファベット)配列のキーボードを含む。より詳細には、この入力メソッド206は、キーボードの画像を画面に表示し、そのキーボードへの軽い接触(tap)(画面座標として検知される)を文字に変換し、この文字がソフトウェア入力メソッドマネジャ204に、そしてしたがってシステムに送られる。入力メソッドはアプリケーションベンダによって書くことができ、COMコンポーネントのインストール手順を用いてシステムに追加される。
【００３８】
ユーザは、目に見えるSIPウィンドウ402として顕在化した入力メソッド206と対話してシステム入力を生成する。ユーザは、タスクバーのSIPメニューボタン404を軽く叩くことによりポップアップ式の入力メソッドリストなど(図示せず)を提供させ、その中の利用可能な入力メソッドから手動で選択を行うことにより、手動で別の入力メソッドを選択することができる。ユーザはまた、コントロールパネルアプレット(図示せず)などを介して入力メソッドを選択することもできる。
【００３９】
理解されるように、アプリケーションは、SIPパネル402が現在表示されているかどうかに基づいてそれ自体を調整する(例えばサイズを変更する)など、SIPが実施されていることを認識することができる。それでも、本発明から益を得るのにアプリケーションがSIPシステムを認識する必要はない。実際、アプリケーションはそれが受け取るデータが、キーボードなどのハードウェア入力装置で発生したものか、または、ソフト入力パネルウィンドウ402中のある位置に対応するユーザの動作(例えば画面検知回路によって検知される接触や近接)を介して発生したものかを意識する必要はない。これにより、そのアプリケーションがSIPを認識するかどうかに関係なく、実質的にあらゆるアプリケーションが実質的にあらゆる適切な入力メソッドとともに動作することが可能になる。
【００４０】
［特化されたソフトウェア入力パネル］
本発明の一態様によると、アプリケーションプログラム202の状態が用いられ、入力メソッドを選択する、及び／又は、ユーザがそれとの対話によりアプリケーションプログラム202に入力を提供するためのもの(例えば、表示されるキーやその意味付け)の選択を変更する。一例では、アプリケーションプログラム202の状態は、そのアプリケーションプログラムのどのフィールド(ウィンドウ)がその時点の入力フォーカスを有するかに対応する。一例として、そのアプリケーションが、日付入力フィールド410(図4)など日付を入力できるフィールドを有する場合は、図4に示すアルファベットのQWERTY配列キーボードを提供するものから、図5のような日付入力用キーボード500を提供するものに入力メソッドを自動的に変更することができる。またこれに替えて、入力メソッドを変える必要はなく、アプリケーションプログラムの状態に応じて複数の入力パネルの1つを表示するように単一の入力メソッドを配列(arrange)することもできる。
【００４１】
図2に表す実施態様に戻ると、アプリケーションはグラフィカルウィンドウ環境200、またはその他の適切なインタフェースを介してソフトウェア入力メソッドマネジャ204に情報を渡すことができる。本発明によると、この渡された情報はそのアプリケーションの状態に対応することができ、アプリケーションの状態は、アプリケーションプログラム202がアクティブにしようとする、選択された入力メソッド(または、複数の乃至構成可能なパネルを用いる入力メソッドの、選択された乃至構成された入力パネル)に対応することができる。したがって、上記の日付フィールドの例では、アプリケーションはその現在の状態が日付入力フィールドに対応していることを指定することができる。ソフトウェア入力メソッドマネジャ204は、この状態情報を使用して入力メソッド選択データベース214などに照会することができ、したがって、どの入力メソッド(または複数パネル入力メソッドのどの入力パネルまたは構成)を使用するかを決定することができる。ソフトウェア入力メソッドマネジャ204は、対応するソフトウェア入力メソッド206がそのシステムで使用可能であり、かつロードされていなければ、それをロードする。単一の入力メソッドが複数の入力パネルを提供することができる場合は、ソフトウェア入力メソッドマネジャ204がフィールド情報などをソフトウェア入力メソッド206に通知し、それによりソフトウェア入力メソッド206は適切なパネルを表示することができる。
【００４２】
したがって、例えば、図4および5に示すように、日付フィールド410が編集されていることをアプリケーションが表示すると、日付入力パネル500が表示される。図5に表すように、方眼状のカレンダーと併せて、月、日、年用の日付に関連する大きなキーが提供される。例えば、1回のキーストロークを用いて月の文字列「January」をアプリケーションに送ることができ、日付については1回または2回のキーストローク、そして4桁の年については1回のキーストロークで送ることができる。またこれに替えて、カレンダーの日付上の1回のキーストロークで文字列全体を送ることもできる。また、ユーザは、特別に必要な何かの文字が使用できない場合は、フルキーボード(例えば、図6のキーボード600)を要求することもできる。図6の例示的キーボード600は、「日付(Date)」用のキーボードに戻せるようにするキーを含んでいることに留意されたい。
【００４３】
これらはキーボードの例示的な図に過ぎず、一般には、キーは拡大され、各キーの表現及び／又はそのキーに触れた際の出力、すなわちその意味付けにより、アプリケーションの現在の状態に合わせられることに留意されたい。このようにして、本発明により、汎用キーボードに比べて使いやすさとユーザの利便性の双方を向上することができる。
【００４４】
本発明によると、アプリケーションプログラム202は、そのフィールドに以前に入力されたデータ(例えば以前のユーザ入力)のデータベース216などを含むことが可能である。アプリケーションプログラム202は、ソフトウェア入力メソッドマネジャ204にフィールド情報を渡すとき、又は直後に、選択された入力メソッド206に渡すためカスタマイズなどのリストを提供することもでき、これにより根本的にカスタマイズされるキーボードとなるものが描画される。これは以前にユーザによって入力された情報に限る必要はなく、例えば、別のエンティティから提供されるデフォルトの情報(例えば、最も人気のある10のウェブサイトへのリンクなど)を含むこともできる点に留意されたい。
【００４５】
一例として、図7は、あるアプリケーションのフィールドがユーザの入力するネットワークアドレスなどを受け取るようにされている場合に起動されるような、インターネット向けのキーボード700を表している。有用であると思われる固定キー(「http://」や「www.」など、および例えば「.com」などの一般的な拡張子を表すキー)を、最も頻繁に入力されるアドレス、直近に入力されたアドレス、あるいは両方の何らかの組合せなど、それまでに入力されたアドレスと併せて提供することができる。このために、アプリケーションは、この情報を以前に入力されたデータのデータベース216に保持しておき、ソフトウェア入力メソッドマネジャ204を介してその情報をソフトウェア入力メソッド206に提供することができる。次いで、選択されたソフトウェア入力メソッド206は、そのデータを適切な位置218に記憶する。好ましい一実施態様では、データはXML(eXtensible Markup Language)フォーマットの情報を介して渡されるが、理解されるように、データ自体を渡すのではなく、そのデータを含んでいるバッファなどへのポインタを渡すことが可能である。ネットワークアドレスの場合は、上記のようなカスタマイズ可能な各々のキーに対して、キーに表示する短い文字列とそれに対応する完全なアドレスの文字列(これはユーティリティなどを介してユーザが設定できるようにしてもよい)が提供されることが好ましいことに留意されたい。さらに、表示されるキーよりも多くの情報を提供することができ、ディスプレイに提供されるスクロールボタン702、704などを介してアクセスできるようにして、キーボードをユーザにとってより便利なものにすることも可能である点に留意されたい。別の例として、図8に、電子メールアドレスの入力のためにカスタマイズしたキーボードの形態の、特化されたソフトウェア入力パネルを示す。
【００４６】
入力メソッドおよびパネルはアプリケーションプログラムから独立していることを強調したい。したがって、双方にとって使用可能な同じ入力メソッドの例として、複数のアプリケーションプログラムが、各々日付フィールドなど同じタイプのフィールドの多くを備えることができる。これにより、記憶空間とアプリケーション開発者にとっての開発作業が大幅に節減される一方で、一貫性を備えながらも、各アプリケーションに合わせてある程度カスタマイズできるユーザ体験がユーザに与えられることに留意されたい。
【００４７】
キーが表示されるとユーザはあるキーをアクティブにすることができ、それによりソフトウェア入力メソッド206中のキー決定機構220は、座標からキーへの変換機構222を介してどのキーが押されたのかを把握する。キーが固定された意味付けを有しており、それが表すことになっている事柄をサポートしている場合、キー決定機構220はテーブルなどでそのキーを検索し、適切な文字、文字列、記号、コマンド、あるいはその他の適切なデータの形でその意味付けをアプリケーションプログラム202に戻す。キーが可変の場合は、キー決定機構220はアプリケーションから提供される情報218にアクセスして、以前そのアプリケーションから提供された、戻すべき文字、文字列、記号、コマンド、またはその他の適切なデータを決定する。これに代わる実施態様では、入力メソッドは、必要な際には動的にアプリケーションをコールして、キーの意味付けを調べることもできる点に留意されたい。
【００４８】
ソフトウェア入力メソッドに一般に言えるように、ソフトウェア入力メソッド206はユーザ入力に対して検証などのより複雑な処理も行うことができる。例えば、パスワード変更の入力フィールドは、パスワード全体の入力(一度に1文字ずつアプリケーションに送るのではなく)をユーザに要求する、対応する入力メソッドを有することができ、その入力メソッドにユーザのデータを検証させて、それが強いパスワードの要件(例えば、8文字あるいはそれ以上の文字、1文字の大文字、数字および記号との文字の組合せなど)に確実に従うようにすることができる。入力メソッドはこのような処理を行うことができる。入力メソッドでは、文字または言語の翻訳、手書き文字または音声の認識などの他の概念の処理を実行することができる。
【００４９】
フォーカスされたフィールドを情報の基盤とするのに加えて、アプリケーションおよび入力メソッドは、同意された任意の状態識別コードを情報の基盤とすることができる。例えば、アプリケーションは、数式をワードプロセッシング文書に挿入するためなど、同じフィールドに様々なタイプの入力パネルを必要とすることがあり、あるいはアプリケーションはフィールドを持たない場合もある。いずれの場合も、アプリケーションは何らかの状態データをソフトウェア入力メソッドマネジャ204に伝達して、必要とする入力メソッドをより特化されたソフトウェア入力パネルに変える、また、より特化されたソフトウェア入力パネルから変更する、あるいは入力メソッドの入力パネルを変更することができる。したがって、理解されるように、フィールドのフォーカスを受け取ることは、アプリケーションの状態に基づいて特化された入力パネルを選択するための要件ではなく、また最初のフォーカスの時だけが、アプリケーションが状態を変えることのできる唯一の時ではない。
【００５０】
これに替えて図3に示す実施態様では、アプリケーション300は、本発明による特化された入力パネルの自動的な選択から益を得るのに、本発明の選択可能な入力メソッドを認識する必要はない。これは一般には、アプリケーションの状態についての情報は、例えばアプリケーション状態決定機構302により外部から決定し、その情報を用いて適切なソフトウェア入力パネルを提供することができるからである。
【００５１】
一例として、あるアプリケーションのウィンドウに関する情報の多くは、グラフィカルウィンドウ環境200から判断することができる。したがって、あるアプリケーションのフィールドがフォーカスを受けるときにはいつも、アプリケーション状態決定機構302はオペレーティングシステムに照会して、そのウィンドウクラスはそのフィールドがテキスト編集用のフィールドであることを示すかどうかなど、そのフィールドのプロパティを判断することができる。さらに、ウィンドウのプロパティまたはアプリケーション自体(その表示など)を分析して、日付を要求するフィールド、電話番号を要求するフィールド、アドレスを要求するフィールドなど、テキストフィールドのタイプをより具体的に判断することも可能である。
【００５２】
フォーカスされるフィールドを分類すると、上記で概説したように、それを用いて適切な入力メソッド及び／又は入力メソッドの入力パネルの識別子に(入力メソッド選択データベース214を介して)アクセスすることができる。したがって、一般的に、ソフトウェア入力メソッドマネジャ204が受け取る状態データのソース(例えば外部の機構302、またはアプリケーションプログラム)は重要ではなく、アプリケーションの状態情報(例えばフィールドコード)が受け取られ、入力メソッド/入力パネルを自動的に選択できるということだけが問題となる。
【００５３】
図3にも示すように、(例えばユーザによって)以前に入力されたデータのデータベース304は、ソフトウェア入力メソッドマネジャ204によって保持しても、あるいは特定の入力メソッド(別個には図示せず)によって保持してもよい。この方式により、例えば、電子メールアドレス、ネットワークアドレス、およびその他のユーザ固有のデータなど、直近で使用されたデータ及び／又は最も頻繁に使用されるデータを、図3のマネジャから提供される以前に入力されたデータ306のように、記憶するか、またはその他の形で選択された入力メソッド206からアクセスできるようにすることができる。この場合も、キーに表示し、キーの意味付けとして使用することのできるデータは、実際のユーザ入力及び／又は何らかのデフォルト情報から把握することができる。容易に理解されるように、これにより、互換性のある入力メソッドの機能を全く認識しないアプリケーションにより本発明を実施することが可能になる。
【００５４】
図2および図3に示す実施態様を組み合わせることが可能であることに留意されたい。例えば、アプリケーションは、図2のように入力メソッド/入力パネルの選択に使用される状態情報を直接伝達することができるが、図3のように、マネジャデータベース304のデータをソフトウェア入力メソッドマネジャ204から入力メソッド206に提供することを(通信またはデフォルトにより)指示することも可能である。このようにしてアプリケーションは状態を指定することができるが、以前に入力されたデータを複数のアプリケーションで適宜共用することができ、それにより、(例えば入力フィールドに対応する)同様の状態を有する複数のアプリケーションが個別のデータを保持する必要がなくなり、より一貫性のあるユーザ体験につながると思われる。
【００５５】
これに代わる別のものとして、特定のアプリケーションのフィールドに関連付けるためにユーザに手動で入力メソッドを選択させ、そして、その特定のフィールドがフォーカスされると、システムはそれ以後指定時に選択されている入力メソッドをデフォルトで用いることを(チェックボックスなどを介して)指定させることも可能である。この方式により、ユーザは、指定を行わなかった場合のアプリケーションプログラムまたはソフトウェア入力メソッドマネジャ204の選択内容を無効にすることができる。
【００５６】
要約として、図9に本発明の動作の説明を提供する。図9に示すように、ステップ900で、ソフトウェア入力メソッドマネジャ204は、アプリケーションプログラム202自体(図2)から、または例えばそのウィンドウプロパティを介してアプリケーション300を分析するアプリケーション状態決定機構302(図3)を介して、アプリケーションプログラムの状態を受け取る。ソフトウェア入力メソッドマネジャ204は、この状態情報を用いて、使用すべき対応する入力メソッドを入力メソッド選択データベース214で検索する。
【００５７】
アプリケーションプログラムは、例えば入力メソッド選択データベース214に対応する項目がないなど、対応する入力メソッドが存在しない状態を伝えている場合もあることに留意されたい。ステップ904でこの状況を検知し、それによりプロセスは分岐してステップ906に進む。ステップ906および908でデフォルトの入力メソッド(例えばその入力パネルとして完全な英数字キーボードを有するものなど)をロードするか、またはその状態について何らかの情報が知られているかどうかなど、その状態についての最良の推測された入力メソッドをロードする。例えば、知られていない状態が検知され、ユーザが行う最初の動作が、デフォルトまたは最良の推測によって選択されるものとは異なる入力メソッドを手動で選択することであるときには、その情報を把握して、その状態についてのデフォルト/最良の推測を変更するのに使用することができる。
【００５８】
ステップ904に戻り、その状態に対応する入力メソッドが存在する場合はステップ904からステップ910に分岐し、そこでその特定の入力メソッドがすでにアクティブになっているかどうかを調べる。アクティブである場合プロセスは終了するが、まず入力メソッドに、任意の変更可能なキーをその最初の(例えばスクロールされていない)意味付けおよび外観に戻させることが可能である。アクティブでない場合は、ステップ912を実行して対応する入力メソッドがロード可能であるかどうかを判断する。例えば、任意選択の入力メソッドなどインストールが可能なオブジェクトは多数の方式でシステムから削除することができるが、この際入力メソッド選択データベース214はその削除を反映するように更新されることはない。このような例では、ステップ912からステップ906に分岐して、必要であればステップ908で上記のように代替の入力メソッドをロードする。
【００５９】
このように、あるアプリケーションプログラムの状態に対応する入力メソッドが存在し、まだアクティブになっておらず、かつ使用可能である場合は、そのメソッドがステップ914で自動的に選択(ロードおよびアクティブ化)され、いずれかの構成データがそのメソッドに渡される。この方式により、ユーザは適切で有用な、かつカスタマイズすることができるキー構成を適切な時に自動的に受け取る。
【００６０】
前述の詳細な説明から分かるように、コンピュータシステムにユーザデータを入力するための改良された方法及びシステムが提供される。この方法及びシステムは、アプリケーションの状態に基づいた場合必要とされるキーの数が少ないことからより大きなキーを表示し、しかも所与の状況に適合されたキーを提供することにより、使いやすさと利便性を高めることができる。
【００６１】
本発明は、その各種の修正および代替の構築を受け入れることができるとはいうものの、特定の実証した実施形態を図面に示し、上記で詳細に説明した。ただし、本発明をここに開示した特定の形態に制限する意図はなく、逆に本発明は、本発明の精神および範囲に該当するすべての修正形態、代替構成、および均等な形態を包含するものであることを理解されたい。
【００６２】
【発明の効果】
以上説明したように、本発明によれば、ソフトウェア入力メソッドやソフトウェア入力メソッドマネジャ等、コンピュータシステムにユーザデータを入力するための改良された方法及びシステムを備えたので、アプリケーションの状態に基づいた場合実際に必要とされるキーの数は多くないことから、より大きなキーを表示し、しかもユーザが頻繁に入力パネルを切り替えることなく所与の状況に適合したキーを提供することにより、使いやすさと利便性を高めることが可能となる。
【図面の簡単な説明】
【図１】本発明を組み込むことが可能なコンピュータシステムを示すブロック図である。
【図２】本発明の一態様により、入力メソッドを選択するためにアプリケーションと通信する入力メソッドマネジャを示すブロック図である。
【図３】本発明の一態様により入力メソッドを選択するために状態決定機構と通信する入力メソッドマネジャを示すブロック図である。
【図４】本発明の一態様による、アプリケーション、およびアプリケーション状態に応じて変更される選択された入力メソッドの表示入力パネルを示す図である。
【図５】本発明によりアプリケーションプログラムの状態に基づいて選択することのできるキーボード（日付入力用）の形態で表示される入力パネルを示す図である。
【図６】本発明によりアプリケーションプログラムの状態に基づいて選択することのできるキーボード（フルキーボード）の形態で表示される入力パネルを示す図である。
【図７】本発明によりアプリケーションプログラムの状態に基づいて選択することのできるキーボード（インターネット向け）の形態で表示される入力パネルを示す図である。
【図８】本発明によりアプリケーションプログラムの状態に基づいて選択することのできるキーボード（電子メールアドレス入力用）の形態で表示される入力パネルを示す図である。
【図９】本発明によりアプリケーションの状態に基づいて入力メソッドを選択するための一般的なロジックを示すフローチャートである。
【符号の説明】
120  動作環境(コンピューティングデバイス)
122  プロセッサ
124  メモリ
126  ディスプレイ(タッチスクリーン付き)
128  キーボード
130  オペレーティングシステム
132、202、300  アプリケーションプログラム
134  通知マネジャ
136  電源
140  発光ダイオード(LED)
144  オーディオ発生器
200  グラフィカルウィンドウ環境
204  ソフトウェア入力メソッドマネジャ
206  ソフトウェア入力メソッド
208  Iinputmethodインタフェース
210  IimCallbackインタフェース
214、216、304  データベース
218  アプリケーションから提供される情報
220  キー決定機構
222  座標からキーへの変換機構
302  アプリケーション状態決定機構
306  マネジャから提供されるデータ
400  ユーザインタフェース領域
402  入力パネル
404  メニューボタン
410  日付入力フィールド
500、600、700  キーボード(入力パネル)
702、704  スクロールボタン
【図１】
0004091398.tif 000003
【図２】
0004091398.tif 000004
【図３】
0004091398.tif 000005
【図４】
0004091398.tif 000006
【図５】
0004091398.tif 000007
【図６】
0004091398.tif 000008
【図７】
0004091398.tif 000009
【図８】
0004091398.tif 000010
【図９】
0004091398.tif 000011