(57)【特許請求の範囲】
【請求項１】
ソフトキーボードを有するコンピューティングデバイスを動作させる方法であって、
（ｉ）前記ソフトキーボードとのユーザの対話又は（ｉｉ）前記ソフトキーボードのレイアウト、のうちの少なくとも１つについての少なくとも１つの特性を決定するステップと、
前記ソフトキーボード上の複数のキーの各々について確率分布関数を決定するステップであって、前記確率分布関数を、前記少なくとも１つの決定された特性に基づいて決定するステップと、
少なくとも１つの処理回路上で動作する第１のコンポーネントにより、
前記ソフトキーボードを介して受け取られる第１の入力に応答して：
前記確率分布関数に基づいて第１の確率のセットを生成するステップであって、前記第１の確率のセットは、第１のキーが前記第１の入力のターゲットとされた確率を示す第１の指示と、第２のキーが前記第１の入力のターゲットとされた確率を示す第２の指示とを含む、ステップと、
前記ソフトキーボードを介して受け取られた第２の入力に応答して：
前記確率分布関数に基づいて第２の確率のセットを生成するステップであって、前記第２の確率のセットは、第３のキーが前記第２の入力のターゲットとされた確率を示す第３の指示と、第４のキーが前記第２の入力のターゲットとされた確率を示す第４の指示とを含む、ステップと、
前記少なくとも１つの処理回路上で動作する第２のコンポーネントにより、前記第１のキーが前記第１の入力のターゲットとされた確率を示す前記第１の指示と、前記第２のキーが前記第１の入力のターゲットとされた確率を示す前記第２の指示と、前記第３のキーが前記第２の入力のターゲットとされた確率を示す前記第３の指示と、前記第４のキーが前記第２の入力のターゲットとされた確率を示す前記第４の指示とに基づいて、意図された単語を予測するステップと
を含む、方法。
【請求項２】
前記第１のコンポーネントは、ソフトキーボードインタフェースコンポーネントであり、
前記第２のコンポーネントは、テキスト予測コンポーネントであり、
当該方法は、
前記ソフトキーボードインタフェースにより、前記第１の確率のセットを、前記少なくとも１つの処理回路上で動作するテキスト予測エンジンに提供するステップと、
前記ソフトキーボードインタフェースにより、前記第２の確率のセットを、前記少なくとも１つの処理回路上で動作する前記テキスト予測エンジンに提供するステップと、
を更に含む、請求項１に記載の方法。
【請求項３】
前記複数のキーの各々について前記確率分布関数を決定するステップは、タップ間の平均時間又は前記ソフトキーボードのスタイルの少なくとも一方に基づいて前記確率分布関数の平均及び分散を決定するステップを含む、請求項１に記載の方法。
【請求項４】
前記複数のキーの各々について前記確率分布関数を決定するステップは、前記ソフトキーボード上の基準位置に対する前記キーの位置に基づいて前記確率分布関数の平均及び分散を決定するステップを含む、請求項３に記載の方法。
【請求項５】
ソフトキーボードを視覚的に提示するように適合されたディスプレイと、
前記ソフトキーボードのアクティブ化の指示を提供するように構成されるタッチスクリーンコントローラと、
前記ソフトキーボードに関連付けられるタイピング速度をモニタするキーボードインタフェースと、
複数のアクティブ化の各々について、該アクティブ化の位置に隣接する１組のキーの各々について、確率分布関数に基づく確率であって、関連するキーが、特定のアクティブ化のターゲットとされた可能性を個々の確率が表す、確率を提供するように構成されるプロセッサと、
を備え、
前記プロセッサは、
第１のキーが前記アクティブ化のうちの第１のアクティブ化のターゲットとされた第１の可能性と、
第２のキーが前記アクティブ化のうちの前記第１のアクティブ化のターゲットとされた第２の可能性と、
第３のキーが前記アクティブ化のうちの第２のアクティブ化のターゲットとされた第３の可能性と、
第４のキーが前記アクティブ化のうちの前記第２のアクティブ化のターゲットとされた第４の可能性と
に基づいて、意図された単語を予測するように更に構成される、
コンピューティングデバイス。
【請求項６】
前記個々の確率は、前記ソフトキーボードのレイアウトに更に基づく、請求項５に記載のコンピューティングデバイス。
【請求項７】
前記プロセッサは更に、前記ソフトキーボード上の複数のキーの各々について、ある位置において検出されたアクティブ化がそのキーをターゲットとするユーザによって引き起こされた確率を表す、前記確率分布関数を算出するように適合され、
前記プロセッサは、前記確率分布関数に基づいて、前記提供される確率を決定する、請求項５に記載のコンピューティングデバイス。
【請求項８】
前記確率分布関数を算出することは、前記ユーザの前記タイピング速度に基づいてガウス分布のパラメータを選択することを含む、請求項７に記載のコンピューティングデバイス。
【請求項９】
前記個々の確率は、前記ソフトキーボード上の隣接するキー間のガターのサイズに更に基づく、請求項５に記載のコンピューティングデバイス。
【請求項１０】
コンピュータプログラムであって、プロセッサによって実行されると、該プロセッサに、
ソフトウェアキーボードの第１の位置の第１のアクティブ化の指示を受け取るステップと、
確率分布関数に基づいて、前記ソフトウェアキーボードの第１のキーが前記第１のアクティブ化の対象とされた第１の確率を表す第１の指示と、前記ソフトウェアキーボードの第２のキーが前記第１のアクティブ化の対象とされた確率を表す第２の指示を提供するステップと、
前記ソフトウェアキーボードの第２の位置の第２のアクティブ化の指示を受け取るステップと、
前記確率分布関数に基づいて、前記ソフトウェアキーボードの第３のキーが前記第２のアクティブ化の対象とされた確率を表す第３の指示と、前記ソフトウェアキーボードの第４のキーが前記第２のアクティブ化の対象とされた確率を表す第４の指示を提供するステップと、
前記第１の指示と、前記第２の指示と、前記第３の指示と、前記第４の指示とに応じて、意図された単語を予測するステップと、
を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトキーボードインタフェースに関する。
【背景技術】
【０００２】
コンピューティングデバイスは様々な形のヒューマンインタフェースデバイスを使用する。ほとんどのコンピュータは、ユーザに情報を視覚的に提示するための何らかの形のディスプレイを含む。加えて、ほとんどのコンピュータは１つ又は複数のユーザ入力デバイスを有する。キーボード及びマウスは、デスクトップコンピュータに広く使用されている入力デバイスである。
【０００３】
より携帯型のコンピュータでは、出力デバイス及び入力デバイスの機能をタッチセンサー式ディスプレイへと組み込むことができる。そうしたディスプレイは、従来のコンピュータの場合と同様に出力をレンダリングすることができる。加えて、画面の一部分を制御機能と関連付けることができる。ユーザが画面の指定された部分にタッチすると、コンピュータはそのタッチを、その制御をアクティブ化するユーザ入力として解釈する。
【０００４】
タッチセンサー式ディスプレイを用いる多くのコンピュータ、特にユーザ入力を受け取るための別個のキーボードのないコンピュータは、キーボードを表示するように制御されることがある。ユーザが、キーボードのキーが描かれた表示画面上を押すと、コンピュータはその検出された入力を、キーが押されたときに従来のキーボードからの信号を解釈するのと同様に解釈する。タッチセンサー式ディスプレイ上にこのように作り出されるキーボードは、「ソフトキーボード」と呼ばれることがある。
【発明の概要】
【０００５】
コンピューティングデバイスは、キーボードの検出されたアクティブ化が、ユーザがキーボード上のあるキーをターゲットとしたことを指示する確率を決定する。一部の実施形態では、キーボードの近傍におけるタッチスクリーンの検出されたアクティブ化について、各々がキーに関連付けられる複数の確率を決定し、後続の処理のためのキーボード入力として報告してもよい。確率を、ソフトキーボードのキーに関連付けられた確率分布関数に基づいて算出することができる。
【０００６】
確率分布関数を、複数の要因のうちのいずれかに基づいて求めることができる。要因は、コンピューティングデバイスの設計又は表現されるソフトキーボードのパラメータに関連することがある。あるいはまた、コンピューティングデバイスのユーザに関連する要因を、確率分布関数を決定する際に使用してもよい。使用されうる例示的な要因はタイピング速度であり、タイピング速度は、キーストロークを表すタップが検出される平均速度によって表されることがある。
【０００７】
一態様では、本発明は、ソフトキーボードを有するコンピューティングデバイスを動作させる方法に関する。この方法は、（ｉ）ソフトキーボードとのユーザの対話、又は（ｉｉ）ソフトキーボードのレイアウトが決定されること、のうちの少なくとも１つの少なくとも１つの特性を決定することを含む。ソフトキーボード上の複数のキーの各々について、少なくとも１つの決定された特性に基づいて確率分布関数を決定する。少なくとも１つの処理回路を用い、ソフトキーボードを介して受け取られた入力に応答し、確率分布関数に基づいて、ユーザが複数のキーのうちのあるキーをターゲットとした確率が生成される。
【０００８】
別の態様では、本発明は、実行されると、ソフトキーボードからの入力を処理するコンピューティングデバイス内のコンポーネントを動作させる方法を実行するコンピュータ実行可能命令を含む少なくとも１つのコンピュータ読取可能記憶媒体に関する。コンポーネントは、ソフトキーボードの位置でユーザによるアクティブ化の指示を受け取り、出力を提供する。出力は、ソフトキーボード上の複数のキーの各々について、検出されたアクティブ化が、ユーザがそのキーをターゲットとしていることを表す確率を含む。
【０００９】
さらに別の態様では、本発明は、ディスプレイ上の位置でユーザタップの指示を提供するように適合されたディスプレイを備えるコンピューティングデバイスに関する。コンピューティングデバイスは、ディスプレイ上の領域にソフトキーボードをレンダリングし、ソフトキーボードとのユーザ対話のタイピング速度をモニタするように適合された処理回路も含む。領域内の検出されたユーザタップに対し、処理回路は、その位置に隣接した少なくとも１つのキーについて、ユーザがそのキーをターゲットとした確率を提供する。その確率はユーザのタイピング速度に基づくものとすることができる。
【００１０】
以上は、添付の特許請求の範囲によって定義される本発明の非限定的な概要である。
【００１１】
添付の図面は、縮尺どおりに描くことを意図したものではない。図面において、様々な図に例示されている同一の、又はほぼ同一の各構成要素は、同様の数字で表されている。明瞭にするために、必ずしもすべての図面においてすべての構成要素がラベル付けされているとは限らない。
【図面の簡単な説明】
【００１２】
【図１】第１のスタイルのソフトキーボードがタッチスクリーン上にレンダリングされたタッチスクリーンコンピューティングデバイスの略図である。
【図２】代替のスタイルのソフトキーボードがタッチスクリーン上にレンダリングされた図１のコンピューティングデバイスの略図である。
【図３】別の代替のスタイルのソフトキーボードがタッチスクリーン上にレンダリングされた図１のコンピューティングデバイスの略図である。
【図４Ａ】ソフトキーボード上のキーをターゲットとする意図を指示するユーザ入力を示す概念的略図である。
【図４Ｂ】ソフトキーボード上のキーをターゲットとする意図を指示するユーザ入力を示す概念的略図である。
【図５Ａ】ソフトキーボード上のターゲットキーに対する入力位置の確率分布関数を示す概念的略図である。
【図５Ｂ】ソフトキーボード上のターゲットキーに対する入力位置の確率分布関数を示す概念的略図である。
【図６Ａ】動的に決定される要因に基づく確率分布関数の変化を示す概念的略図である。
【図６Ｂ】動的に決定される要因に基づく確率分布関数の変化を示す概念的略図である。
【図７Ａ】第１のタイピング速度におけるソフトキーボード上のキーに関連付けられた確率分布関数を示す概念的略図である。
【図７Ｂ】より早い第２のタイピング速度における、図７Ａに図示された形式のソフトキーボード上のユーザ入力に関連付けられた確率分布関数を示す概念的略図である。
【図８Ａ】キーを分離する第１の幅のガターを有するキーボードと関連付けられた確率分布関数を示す概念的略図である。
【図８Ｂ】図８Ａに例示した実施形態での第１の幅より広い、キーを分離する第２の幅のガターを有するキーボードと関連付けられた確率分布を示す概念的略図である。
【図９】本発明の一部の実施形態による、キーボードインタフェースコンポーネントを動作させる方法のフローチャートである。
【図１０】本発明の実施形態が実施されうるコンピューティングデバイスの概念的ブロック図である。
【発明を実施するための形態】
【００１３】
本発明の発明者らは、ソフトキーボードの性能が不十分であることは、ユーザにコンピューティングデバイスの性能を不十分だと知覚させる一因になりうることを認識し、理解している。ソフトキーボードは、従来のキーボードにおけるキーの機械的な動きから生じうる触覚的フィードバックを欠き、ユーザの意図するキーボードタップのターゲットと、コンピュータシステムがキーボード上の検出されたタップのターゲットとして選択するキーとの不一致のリスクを増大させる。そのような不一致は、ユーザ入力に対する明らかに誤った応答をもたらす可能性があり、ユーザの不満の原因ともなりうる。
【００１４】
キーボードのアクティブ化に対するコンピュータの応答と、意図されるユーザ入力とをより良くに整合させるために、キーボード入力を処理するコンピューティングデバイス内のコンポーネントは、キーボードの検出されたアクティブ化に対して、１つ又は複数のキーがアクティブ化のターゲットであった確率を指示してよい。これらの確率は、ユーザ入力に応答して、コンテキスト上、ユーザによってターゲットとされた可能性の最も高いキーを選択するコンピューティングデバイスの他のコンポーネントによって使用されてよい。選択は、例えば特定のキーストロークが単語又は他の文字列を完成させる確率と組み合わせて行われてもよい。しかし、確率情報は任意の適切なやり方で使用されてよい。
【００１５】
キーボード上で検出される「タップ」などのアクティブ化がキーストロークに対応する確率は、動的要因に基づくものとすることができる。これらの要因は、ユーザに関連するものとしてよく、及び／又はコンピューティングデバイスに関連するものとしてもよい。コンピューティングデバイスに関連する要因の例には、キーボードのスタイル、キーのサイズ及びキー間の間隔、あるいはコンピューティングデバイスの位置、向き又は動きを含む、キーボードのレイアウトが含まれることがある。
【００１６】
ユーザに関連する要因は、コンピュータとのユーザ対話に基づいて決定されることがある。例えば、ユーザのタイピング速度を、ユーザがキーボード上のタップで特定のキーをターゲットとした確率を決定する際に感知して使用することができる。
【００１７】
タイピング速度は、確率の決定に際して任意の適切なやり方で考慮に入れられてよい。平均タイピング速度が増加するにつれて、例えば、すべてのキーの確率分布関数はより大きい分散を有するようになりうる。しかし、タイピング速度は、様々なキーと関連付けられる確率分布関数に異なる影響を及ぼすことがある。例えば、この影響はキーボード上のキーの位置に依存しうることがあり、キーボードの中央により近いキーと関連付けられた分散は中央からより遠いキーの分散よりも増加が少ない。
【００１８】
同様に、タイピング速度などの動的に決定される要因の値が使用の際に変化すると、各キーの確率分布関数の平均も変化することがある。各確率分布関数の平均の変化も同様に、キーボード上のキーの位置に依存しうる。
【００１９】
さらに、要因の間には相互関係が存在する可能性がある。例えば同じキーに関連付けられた確率分布関数は、異なるスタイル又は異なるキーサイズ及びキー間隔を有するキーボードに対して異なって変化しうる。したがって、一部の実施形態では、コンピューティングデバイスのオペレーティングシステム内のキーボードインタフェースコンポーネントは、タッチスクリーン上にレンダリングされるキーボードに関連した要因及び／又は動的に感知される要因に基づいて、キーボード上のキーの確率分布関数を決定し、継続的に更新することがある。
【００２０】
一部の実施形態では、キーの確率分布関数は、確率分布関数のモデルのパラメータの値を供給することによって生成されることがある。具体例として、各確率分布がガウス分布としてモデル化されることがある。キーの確率分布関数を、ガウス分布モデルのオフセット及び分散を定義するパラメータの値から決定することができる。キーボード入力が処理されるとき、キーボードインタフェースコンポーネントは、動的に決定される情報に基づいて確率分布関数を特徴付けるモデルパラメータの値を選択してもよい。しかし、任意の適切な技術を使用してキーの確率分布をモデル化してもよいことを理解すべきであり、ガウス分布が使用されることも、同じモデルがすべてのキーに使用されることも必要条件ではない。キーごとの確率分布関数がどのようにモデル化されるかにかかわらず、タイピング速度及び／又は他の要因を使用して、任意の所与のときに、各キーについてモデルのための適切なパラメータの値を選択してもよい。一部の実施形態では、キーのパラメータの値はキーボード上のキーの位置に依存することがある。例えば分散は、キーボードの周辺にあるキーについて、より大きくなる可能性がある。別の例として、分散は、タイピング速度に応じて増加し、中央付近よりも周辺にあるキーについてより大きな量が増加することがある。
【００２１】
あるいはまた、確率分布関数の平均は、タイピング速度及びキー位置に応じて変化する可能性もある。従来のＱＷＥＲＴＹ配列キーボードでは、キーの確率分布関数の平均は、キーボードの中央に対するオフセットとすることができる。しかし、そのオフセットの量はタイピング速度に依存してもよい。
【００２２】
加えて、コンピューティングデバイスに関連した要因も分布関数に影響を及ぼしうる。これらの要因は、ソフトウェアキーボード自体のパラメータに関連することがある。例えば、コンピューティングデバイスのディスプレイ上にレンダリングされるキー又はキー間のガターのサイズなどの要因は、確率分布関数の平均とオフセットの双方に影響を及ぼすことがある。あるいはまた、キーボードスタイルが確率分布関数に影響を及ぼすこともある。具体例として、分割キーボードのキーと関連付けられた確率分布関数は、タイピング速度に応じて、他のスタイルのキーボードに関連付けられた確率分布関数とは異なることがあり、あるいは異なるように変化することがある。これらの相違を、モデルから確率分布関数を算出するのに使用されるパラメータの異なる値に、又は任意の他の適切なやり方で反映することができる。
【００２３】
あるいはまた、他の要因を、モデルから確率分布関数を定義する際に考慮してもよい。例えば、モデルから確率分布関数を算出することと併せて制限を適用してもよい。具体例として、キーは、本明細書で「アンカ」と呼ばれる、そのキーと関連付けられた領域を有することができる。アンカは一般に、アンカ領域で入力が検出される場合に、ユーザがそのキーをターゲットとすることを意図したことに高い確率が割り当てられるよう、キーの中央に対応しうる。一部の実施形態では、キーボード入力を処理するコンポーネントは、アンカ領域で検出されたユーザ入力に１の確率を割り当ててよい。
【００２４】
あるいはまた、キーの確率分布関数に対する制限を、キーの中央から離れすぎている、検出されたユーザ入力に０の確率が割り当てられるようなものとしてもよい。そのような制限を、複数の適切なやり方のうちの任意のやり方で課すことができる。例えば、キーボード入力を処理するコンポーネントは、キーボード上のキーのサブセットについてのみ非ゼロの確率を返すことがある。このサブセットは、検出された入力のエリア（接触形状）の下又は隣接するキーについてのみ、あるいは打鍵されているキーの下／隣接するキーについてのみ提供されるように選択されてよい。
【００２５】
確率分布関数がどのように定義されるかにかかわらず、確率分布関数を使用してキーボード入力を処理することができる。キーボード入力は、コンピュータシステム内の任意の適切なコンポーネントにおいて任意の適切なやり方で処理されてよい。一部の実施形態において、本明細書で説明される処理が、コンピュータシステムのオペレーティングシステムのカーネルモードコンポーネント内で行われることがある。しかし、具体的な実装は本発明の必要条件ではない。例えば、本明細書で説明される処理は、代替又は追加として、タッチセンサー式ディスプレイ用のコントローラとして働く半導体チップにおいて実装されてもよい。
【００２６】
図１に、本明細書で記載されるこれらの技術の一部又は全部を使用して改善されたユーザ体験を提供するコンピューティングデバイスの一例を提供する。図１は、ユーザインタフェースとしてタッチスクリーン１１２を有するコンピューティングデバイス１１０の略図である。コンピューティングデバイス１１０は、ここでは、スレートフォームファクタを有するものとして図示されている。スレートフォームファクタでは、タッチスクリーン１１２は、コンピューティングデバイス１１０の上面のほぼ全体を占める。しかし、コンピューティングデバイスの特定のフォームファクタは本発明に対する限定事項ではない。
【００２７】
コンピューティングデバイス１１０は、当分野で公知のハードウェアコンポーネントを使用して構築されてよい。それらのコンポーネントは、タッチスクリーン１１２、及びタッチスクリーンコントローラ（図示せず）を含むことがある。それらのコンポーネントは、タッチスクリーン１１２とのユーザ対話を検出するように対話することがある。それらのコンポーネントは、当分野で公知の技術を使用して、タッチスクリーン１１２を介した入力として意図されるユーザジェスチャを検出するように動作することがある。それらのコンポーネントは、例えば、タッチスクリーン１１２の表面に対するユーザの指からの圧力を検出することがある。あるいは、それらのコンポーネントは、接触形状のようなユーザの指と、又はタッチスクリーン１１２に隣接する他のポインティングデバイスと関連付けられた静電容量又は他の測定可能な影響を検出することがある。しかし、任意の適切な技術を使用して、タッチスクリーンを介した入力のユーザ表現によるジェスチャを検出してもよい。
【００２８】
タッチスクリーンを介して入力を示すユーザジェスチャを検出するのに使用される機構にかかわらず、タッチスクリーンコンポーネントは、そのような入力が検出されたことを示す情報を出力してよい。タッチスクリーンコントローラの出力は、コンピューティングデバイス１１０を実行する他のコンポーネント、おそらくはソフトウェアコンポーネントによって解釈されてよい。例えば、コンピューティングデバイス１１０のオペレーティングシステム（図示せず）は、タッチスクリーンインタフェースコンポーネントを含んでいてもよい。タッチスクリーンインタフェースコンポーネントは、タッチスクリーン１１２上に表示された情報に対する入力の位置に基づいて、検出された入力を解釈することができる。
【００２９】
図１の例では、コンピューティングデバイス１１０は、チャット型の信をサポートするアプリケーションをアクティブに実行している。アプリケーションは、表示エリア１３０にレンダリングされるコンテンツを供給している。表示エリア１３０内のタッチスクリーン１１２とのユーザ対話は、そのアプリケーションへのコマンドとして解釈されうる。例えば表示エリア１３０は、テキストを入力することができるフィールドを表す、フィールド１３２を含む。フィールド１３２内のユーザタッチはアプリケーションによって、後に受信される入力が、送信すべきメッセージ用のテキストとして解釈されるべきであることを表すコマンドとして解釈されることがある。
【００３０】
図１に図示される状態では、タッチスクリーン１１２は、ソフトキーボード１２０がレンダリングされる部分も含む。ソフトキーボードは、一部の実施形態において、表示エリア１３０のためのコンテンツを供給するアプリケーションによってレンダリングされることも可能である。しかし、図示される実施形態では、タッチスクリーン１１２は、コンピューティングデバイス１１０のオペレーティングシステム内のタッチスクリーンインタフェースコンポーネントによってレンダリングされる。タッチスクリーンインタフェースコントローラは、表示エリア１３０を制御しているアプリケーションからのコマンドに基づいて、ソフトキーボード１２０をいつどこに表示すべきか決定することができる。しかし、ソフトキーボード１２０の表示を生じさせる具体的なトリガは本発明にとって不可欠ではない。ソフトキーボード１２０がタッチスクリーン１１２上でいつどこに表示されるかにかかわらず、ソフトキーボード１２０が表示されるタッチスクリーン１１２の領域内の検出された入力を、キーボード入力として解釈し、処理のためにソフトキーボードインタフェースコンポーネントに渡すことができる。
【００３１】
図１の例では、ソフトキーボード１２０が占める領域内の入力の処理は、ソフトキーボード１２０のキーのうちのどれが、ユーザ入力の意図されたターゲットであったか判定する処理を伴うことがある。例えば、ソフトキーボード１２０は複数のキーを含み、そのうちのキー１２２に番号が振られている。ソフトキーボードインタフェースコンポーネントの出力は、エリア１３０内のコンテンツを提供するチャットアプリケーションに対し、キー１２２、又は任意の他のキーが、ユーザ入力のターゲットであった可能性が高いことを指示することがある。
【００３２】
一部の実施形態において、タッチスクリーン１１２とのユーザ対話の指示を、ソフトキーボードインタフェースコンポーネント内での処理の前に前処理してもよく、特定のユーザ入力が受け取られたチャット型アプリケーションに指示を提供するのに先行して後処理してもよい。前処理は当分野で公知の技術を使用して行われてよい。例えば、ソフトキーボード１２０上のキーの意図された選択ではなく、タッチスクリーン１１２との意図しない接触の特性を表すタッチスクリーン１１２の表面にわたる動きが除外されてもよい。前処理の別の例として、一部のタッチスクリーンインタフェースでは、タッチスクリーンコントローラがタッチスクリーンとの接触を検出する位置と、ユーザが知覚した接触が提供されるべき位置との間に差が生じうる。一部の実施形態では、これらの差をタッチスクリーンの較正によって修正し、較正時に決定された要因を使用した補正が、ソフトキーボードインタフェースコンポーネントによる処理の前にタッチ入力に適用されることがある。
【００３３】
そのような前処理は、ソフトキーボード制御コンポーネントで受け取られるタッチ入力が、ユーザがキーをアクティブ化することを意図したという指示をより良く表すことを保証することによって、ソフトキーボード制御コンポーネントの動作を改善しうる。本明細書で使用されるとき、ソフトキーボード上のキーをアクティブ化するユーザ意図を指示すると判断される入力は、ソフトキーボード上の「タップ」とみなされてよい。したがって、ソフトキーボード制御コンポーネントは、キーボード上の「タップ」を受け取り、これに応答してよい。
【００３４】
「タップ」は、任意の適切なやり方で定義され、識別されてよい。一部の実施形態では、「タップ」は、ソフトキーボード１２０が占める領域内のタッチスクリーン１１２との短期間の接触によって識別されてよい。しかし、「タップ」が、ソフトキーボード１２０とのそのような短期間の接触によってのみ特徴付けられることは必要条件ではない。可能な代替の一例として、コンピューティングデバイスは、ユーザがタッチスクリーン１１２の表面にわたって指又は他のポインティングデバイスをスライドさせる対話のモードをサポートしてもよい。タッチスクリーン１１２の表面を横切る動きの方向若しくは速度の変化、又はその動きの他の特性が、ソフトキーボード１２０上のキーをアクティブ化するユーザ意図と同等とみなされてもよい。したがって、本発明は、ソフトキーボード１２０上の「タップ」を識別するのに使用される機構によって限定されないことを理解すべきである。
【００３５】
タッチスクリーンを介して受け取られる入力の前処理に加えて、ソフトキーボード制御コンポーネントの出力の後処理をも行われてよい。ユーザがソフトキーボード上のキーをターゲットとすることを意図したという判断の後処理は、当分野で公知の技術を使用して行われてよい。しかし、ソフトキーボード１２０の特定のキーがタップされたことを指示することによってユーザ入力を指定する従来のソフトキーボードインタフェースコンポーネントとは対照的に、本明細書で説明されるソフトキーボードインタフェースコンポーネントは、ソフトキーボード１２０の１つ又は複数のキーと関連付けられた確率を出力することがある。確率の各々は、ユーザが、関連付けられたキーをターゲットとした確率を指示してもよい。これらの確率は、例えば、コンピューティングデバイスの動作を、キーボード上のキーをターゲットとするユーザの意図とより良く一致させるのに使用されてよい。
【００３６】
しかし、本明細書に記載する技術は任意の適切なタイプの後処理とともに用いられてよく、一部の実施形態では、１つ又は複数のキーに関連付けられた確率がテキスト予測エンジンに提供されることがある。テキスト予測エンジンは、報告されたキー及びそれらのキーと関連付けられた確率をトラックし、コンテキストに基づいて最も可能性の高いユーザ入力を決定してよい。具体例として、テキスト予測エンジンは、一連のタップを処理して、ユーザによって意図された可能性の最も高い単語を選択することができる。テキスト予測エンジンは、予測の根拠をソフトキーボードインタフェースコンポーネントによって報告される確率、並びにコンテキスト情報に置くことがある。コンテキスト情報を使用して、キーシーケンスが、意図されるユーザ入力に対応する全体の確率を算出してもよい。
【００３７】
例えば、ソフトキーボード１２０が、英単語が予期されることをコンテキストが示すアプリケーションコンポーネントにテキスト入力を提供しているコンテキストにおいて、最初のタップが同じ確率をキー「ｑ」、「ｗ」、「ａ」及び「ｓ」に関連付ける、一連のタップが受け取られることがある。このタップの後に続いて、キー「ｕ」に関連付けられた高い確率、並びにキー「ｉ」、「ｊ」及び「ｋ」に関連付けられたより低い確率があるタップが受け取られることがある。後処理を通じて、この入力のシーケンスはキーシーケンス「ｑｕ」にマップされてよい。キーシーケンス「ｑｕ」を含む英単語である確率は高い確率であるため、このキーシーケンスは、英単語におけるこのシーケンスの発生確率がターゲット確率と一緒に考慮されるときに、キーシーケンス内のタップの各々に対応する可能なキーから形成することが可能な任意のキーシーケンスについて最高の全体的な確率を有する。しかし、タップの各々と関連付けられた確率の特定の後処理は本発明にとって不可欠ではなく、情報を任意の適切なやり方で使用してよいことを理解されたい。
【００３８】
図２を見ると、コンピューティングデバイス１１０が代替の動作状態で図示されている。図２に例示される状態では、ソフトキーボード２２０がタッチスクリーン１１２上にレンダリングされている。ソフトキーボード２２０はソフトキーボード１２０（図１）と同様である。どちらの場合も、タッチスクリーン１１２の領域を使用してソフトキーボードのキーを表示する。しかし、図２では、ソフトキーボード２２０はキーボード１２０より多くのキーを含む。
【００３９】
キーボード２２０のスタイルは、より複雑な入力、又はより形式的な入力を受け取るように意図されたアプリケーションとともに使用するのに適したものとすることができる。具体例として、ソフトキーボード２２０は番号を表すキーを含み、そのうちのキー２２２に番号が振られている。ソフトキーボード２２０は、例えば従来の物理キーボードに似ていることがある。ソフトキーボード１２０は、簡略化されたスタイルを有するキーボードに対応することがある。キーボード１２０は、チャット型の通信又は他の非公式な対応を容易にするアプリケーションとともに使用するのに適していることがある。これに対し、キーボード２２０（図２）は、ワードプロセッサ、スプレッドシート又はビジネスで使用される他のアプリケーションとともに使用するのにより適したスタイルを有する。領域２３０は、例えばワードプロセッシングアプリケーションのためにインタフェースエリアを表すことがある。したがって、コンピューティングデバイス上に表れるキーボードのスタイルは、ソフトキーボード上において検出されるタップを入力として受け取るアプリケーションからの要求に基づいて、設定されることがある。しかし、ユーザの好み又はコンピューティングデバイスの検出された向きを含め、他の要因を使用して、コンピューティングデバイス上にレンダリングされるソフトキーボードのスタイルを決定してもよく、その結果スタイルが動的に変化することがある。
【００４０】
キーボードスタイルがどのように決定されるかにかかわらず、コンピューティングデバイス１１０内のソフトキーボードインタフェースコンポーネントによって生成される出力は、概念的には同様に作成されてよい。しかし、スタイルは、ユーザがターゲットとするキーを打鍵する正確さに影響を及ぼす可能性がある。したがって、検出されるタップが特定のキーをターゲットとするユーザ意図を示す確率を算出する際に、キーボードスタイルに関する情報を使用してもよい。
【００４１】
図３は、コンピューティングデバイス１１０がサポートしうるさらに別のキーボードスタイルを図示している。図３の例では、キーボードは分割スタイルである。図示のように、ソフトキーボードは、タッチスクリーン１１２上において、キーボード部分３２０Ａ及びキーボード部分３２０Ｂにレンダリングされる。ソフトキーボード１２０及び２２０が、キーが全体として連続した配列として配置される図１及び図２とは対照的に、図３の例におけるソフトキーボードのキーは、タッチスクリーン１１２の両側に沿って集められている。この構成は、コンピューティングデバイス１１０のユーザが、親指だけを使用してキーボード部分３２０Ａ及び３２０Ｂ上でタッチスクリーン１１２にタッチすることを可能にする。そのようなタイピングスタイルは、例えば、コンピューティングデバイス１１０を手で保持しているユーザにとって好都合なことがある。これに対し、ソフトキーボード１２０及び２２０のスタイルは、コンピューティングデバイス１１０をテーブルの上に置き、あたかもそれが物理キーボードであるかのようにソフトキーボードと対話するユーザにとって、より適していることがある。図１及び図２に図示されるスタイルは、１本指でタイプするユーザにも好まれうる。スタイルの違いにかかわらず、ソフトキーボード部分３２０Ａ及び３２０Ｂは、ソフトキーボードインタフェースコンポーネントがソフトキーボード部分３２０Ａ及び３２０Ｂが占める領域と関連付けられたタップを処理して、タップごとに、ユーザがキーをターゲットとすることを意図した１つ又は複数のキーの確率を決定するように処理しうるという点で、キーボード１２０及び２２０と概念的には同様に動作しうる。
【００４２】
キーボードの各スタイルと関連付けられたタッチ入力を同じやり方で処理することができるが、キーボードのスタイル及び他の特性は、ソフトキーボード上のタップを表す検出された入力に割り当てられる、特定の確率に影響を及ぼすことがある。キーボードスタイルに関する情報は任意の適切なやり方で確率を求めるのに使用されてよいが、一部の実施形態では、キーボードスタイルは、確率分布関数を定義するのに使用されるモデルのパラメータの値を選択する際に使用される１つの要因である。このようにして確率分布関数を定義する例示的手法が、図４Ａ、図４Ｂ、図５Ａ、図５Ｂ、図６Ａ及び図６Ｂに示されている。
【００４３】
図４Ａはソフトキーボード４２０を図示している。この例では、ユーザは位置４４０でキーボード４２０を押すものとする。この例において、位置４４０は、文字「Ｗ」のキーに対応するキー４２２Ｗの上にある。しかし、図４Ｂからわかるように、位置４４０はキー４２２Ｗの中央領域ではない。反対に位置４４０は、キー４２２Ｗの境界内ではあるが、キー４２２Ｅ及びキー４２２Ｓと隣接している。位置４４０は、キー４２２Ａ及びキー４２２Ｄなどの他のキーにも近い。さらに離れているが、小型キーボード上では、位置４４０はキー４２２Ｒといったより遠くのキーにも近い可能性がある。よって、ソフトキーボード４２０上のキーのうちのいずれのキーが、位置４４０で検出されたタップによってターゲットとされたのかに関して曖昧さがある。どのキーがターゲットとされたかの曖昧さは、位置４４０で入力を提供するのに使用されたユーザの指のサイズを考慮するときにさらに増大する。領域４４２は、タッチ入力と関連して圧力が検出された位置の境界となる長方形を表している。よって、単一の点で発生するのではなく、位置４４０は、その上でタッチが検出された領域４４２の重心又は他の平均値を表している。この例では、領域４４２は、３つのキー、すなわちキー４２２Ｗ、キー４２２Ｅ及びキー４２２Ｓに重なる。
【００４４】
位置４４０内のタップは、キー４２２Ｗが位置４４０に最も近いため、従来のキーボードの場合と同様に、キー４２２Ｗのユーザ選択として報告されることも可能である。しかし、位置４４０内の検出された入力は、４２２Ｅや４２２Ｓなどの隣接キーをターゲットとするユーザ意図を示す可能性もある。しかし、位置４４０内のタップを単一のキー、この例ではキー４２２Ｗと関連付けることによって、ユーザが、キー４２２Ｅやキー４２２Ｓなどの別のキーをターゲットとした可能性を指示する情報は、コンテキストにおいて最も可能性の高いテキスト入力を選択するのに利用可能でない。したがって、ソフトキーボードインタフェースコンポーネントは、ソフトキーボード上のタップを表す入力ごとに、１つ又は複数のキーについて、検出された入力がそのキーをターゲットとするユーザの意図を示す確率を表す値を算出してよい。これらの確率は次いで、後処理のために他のコンポーネントに提供されてよい。
【００４５】
ユーザが、検出されたタップによりキーをターゲットとすることを意図した確率は、任意の適切なやり方で算出されうる。一部の実施形態において、確率は、複数のキーのうちの各々と関連付けられた空間的確率分布関数に基づいて算出されてよい。各空間的確率分布関数はそれに対応するキーの中央に対して表されてよい。キーの中央に対する検出されたタップの位置に基づいて、キーの空間的確率分布関数は、タップがそのキーをターゲットするユーザ意図を指示する確率を指示してもよい。
【００４６】
例えば位置４４０は、キー４２２１の中央から、第１の方向に距離Ｄ１だけ、及び第２の直交する方向に距離Ｄ２だけオフセットされる。Ｄ１及びＤ２に対応する座標においてキー４２２Ｗと関連付けられた２次元の確率分布関数の値は、位置４４０における入力がキー４２２Ｗをターゲットとするユーザ意図を表す確率を示すことがある。
【００４７】
位置４４０は、４２２Ｅ、４２２Ｓ、４２２Ａ、４２２Ｄ及び４２２Ｒなどの他のキーの中央から異なる量によってオフセットされる。それらのキーの中央と位置４４０との間のオフセットも同様に、それらのキーと関連付けられた確率分布関数から、位置４４０における入力がそれらのキーの各々をターゲットとするユーザ意図を示す確率を求めるのに使用されてよい。
【００４８】
理論上は、タッチスクリーンの任意の位置で検出されるタップが、ソフトキーボード上の任意のキーをターゲットとするユーザ意図を表す確率は、非ゼロでない可能性がある。しかし、一部の実施形態では、キーの各々と関連付けられる確率分布関数の空間的範囲に制限を課すことによって処理が簡略化されてよい。例えば一部の実施形態において、本明細書で「アンカ」と呼ばれるキーの中央部分は、ユーザがそのキーをターゲットとした高い確率を指示する確率と関連付けられてよい。例えばアンカ４２４Ｗ、４２４Ｅ、４２４Ｒ、４２４Ａ、４２４Ｓ及び４２４Ｄは、図４Ｂに示す各キーの中央部分に現れる。
【００４９】
高い確率は任意の適切なやり方で指示されてよい。一部の実施形態では、高い確率は、タップがキーのアンカ内で検出されるときに、１の確率を当該キーに関連付けることによって指示されることがある。あるいはまた、高い確率は、検出されたタップが別のキーのアンカ領域内で発生するときに他のキーの確率情報を抑制する、すなわち０に設定することによって指示されることもある。
【００５０】
したがって、アンカ領域は、キーに関連付けられた確率分布関数に対して更なる制限を提供することがある。一部の実施形態では、キーの各々と関連付けられた確率分布は、検出された入力が別のキーのアンカ内に位置するときに０の値を示すように制限されてよい。あるいはまた、確率分布関数は、キーの中央から任意の方向に、その方向での別のキーの最も近いアンカまでの距離より大きい量だけ変位しているいずれかの位置について、低い値又は０の値を有するように制限されてもよい。しかし、任意の適切な機構を使用して、ユーザがあるキーをターゲットとした低い確率を表してもよい。例えば制限は、単にそのキーについての確率情報を提供しないことによって表現されてもよい。
【００５１】
図５Ａは、ソフトキーボード４２０上に重ね合わされたキー４２２Ｗの２次元の空間的確率分布関数を概念的に図示している。ここで、確率分布関数５６０は、キー４２２Ｗの中央の近傍にピークを有する。確率分布関数の値はキーの中央からの距離が増加するにつれて減少する。
【００５２】
この例では、確率分布関数５６０は、図５Ａの「ｘ」及び「ｙ」とラベル付された２つの方向にのびている。図示された具体例では、キーボード４２０は列として配置されたキーを有し、各列は「ｘ」と指示された方向に平行である。直交する方向は「ｙ」と示されている。図４Ｂに図示されるように、ユーザがキー４２２Ｗをターゲットとすることを意図した確率は、タッチ入力の位置とキー４２２Ｗの中央のとの間の変位から決定されてよい。
【００５３】
図５Ａの例では、確率分布関数５６０は、キーボード４２０の２次元のレイアウトに対応して、二次元に延びている。しかし、説明を簡略化するために、図５Ｂは、確率が、簡略化された１次元表現を使用する確率分布関数に基づいて決定される手法を図示する。図５Ｂは、キーボード４２０上のキーのサブセットを横断面で示している。ここでは、キー４２２Ｑ、キー４２２Ｗ及びキー４２２Ｅが図示されている。確率分布関数５６０Ｗ及び５６０Ｅが示されている。図５Ｂからわかるように、位置４４０において、確率分布関数５６０Ｅは値ＰＥを有する。値ＰＥは、位置４４０で検出されたタップがキー４２２Ｅを打鍵するユーザ意図を指示する確率に対応する。同様に、確率分布関数５６０Ｗも位置４４０において値ＰＷを有する。値ＰＷは、位置４４０で検出されたタップがキー４２２Ｗを打鍵するユーザ意図を指示する確率を指示する。
【００５４】
また図５Ｂは、隣接するアンカまでの距離に基づく確率分布関数への制限の適用も図示している。図からわかるように、確率分布関数５６０Ｗは、キー４２２Ｗの中央からキー４２２Ｅに向かってアンカ４２４Ｅに到達するまで延びる非ゼロの確率を有する。その後、確率分布関数５６０Ｗは０の値を有する。しかし、キーの確率はその制限の境界において０に収束しなくてもよいことに留意すべきである。一部の実施形態では、ガウス関数は、その制限領域外にある値を切られてもよい。同様に、確率分布関数５６０Ｗも、キー５２２Ｗの中央からキー４２２Ｑに向かって延びる非ゼロの値を有する。しかし、確率分布関数５６０Ｗは、アンカ４２４Ｑにぶつかると０の値を有する。確率分布関数５６０Ｅも同様に制限され、アンカ４２４Ｗまで非ゼロの値を有する。
【００５５】
各キーと関連付けられた確率分布関数は、任意の適切なやり方で求められてよい。図５Ｂに例示される実施形態では、確率分布モデルのパラメータの値がまず決定される。そのモデルから生成された分布関数は次いで、アンカの位置に基づいて制限される。しかし、確率分布関数がこのようにしてモデル及び制限を使用して表現されることは必要条件ではない。例えば分布は、制限を課すことなく０の値を有するモデルを使用して定義されてもよい。
【００５６】
しかし、図６Ａ及び図６Ｂは、モデル及び制限を使用して確率分布関数を求める技法が図示している。図６Ａには、ガウス分布としてモデル化された確率分布関数６６０１が例示されている。ガウス分布は限られた数のパラメータによって表されてよい。この例では、ガウス分布は、Ｘ１で指示された平均と、分散とすることができ、ここではσＸ１で指示されている広がりを表す値とを特徴とする。この場合には、確率分布関数６６０１は、図６Ａにアンカ領域６２４１及び６２４２として例示する、隣接するアンカ領域までの距離によって更に制限される。
【００５７】
確率分布関数６６０１は、タップがキー６２２をターゲットとするユーザ意図を示す確率を指示する。図６Ａには、簡略化のために単一次元の確率分布関数６６０１が示されている。しかし、図５Ａ及び図５Ｂと関連して上述したように、２次元キーボード上のキーと関連付けられた確率分布関数が２次元に広がってもよい。
【００５８】
この例では、確率分布関数６６０１の平均Ｘ１はキー６２２の中央に近い。スプレッドσＸ１は概ねキー６２２の幅に対応し、よって、確率分布関数６６０１は、相対的に高い確率をキー６２２と重なるタップに割り当て、他の位置でタップが検出されるときには、ユーザがキー６２２をターゲットすることを意図したことに相対的に低い確率を割り当てる。
【００５９】
本発明の発明者らは、図６Ａに例示される確率分布関数は、いくつかの条件の下でユーザがキー６２２をターゲットとすることを意図した確率を適切に表すことを認識し、理解している。例えば確率分布関数６６０１は、ユーザがソフトキーボードのうちのどのキーを押すべきか慎重に選択しているシナリオに適する可能性がある。そのようなシナリオは、例えば、ユーザが１本指でタイピングしているとき、又はタッチタイピング法を使用しているが、ゆっくり慎重にタイプしているときに生じる可能性がある。
【００６０】
別の条件の下では、異なる確率分布関数が、より適切である可能性もある。図６Ｂは、他の条件の下でキー６２２と関連付けられることがある確率分布関数６６０２を図示している。確率分布関数６６０１の場合と同様に、確率分布関数６６０２も、隣接するアンカによって制限が課されるガウス分布としてモデル化されている。しかし、この分布は、σＸ２で示されるように、より広いスプレッドを有する。加えて、ガウス分布の平均値はＸ２であり、これはキー６２２の中央からのΔＸの量だけのオフセットである。確率分布関数６６０２は、ユーザが速くタイプしているシナリオでキーボードの周辺にあるキーに適切な可能性がある。本件出願人は、そのようなシナリオでは、確率分布関数のスプレッドが増大することを認識し、理解している。加えて、確率分布関数の平均は、キーボードの中央に対するオフセットである。
【００６１】
より一般的には、本発明の発明者らは、キーと関連付けるべき適切な確率分布関数が、複数の要因に依存する可能性があることを認識し、理解している。それらの要因は、ユーザ及び／又はタッチスクリーン上にレンダリングされるソフトキーボードに関連していてよい。したがって、一部の実施形態では、タッチスクリーン上で検出されたタップが特定のキーに対応する確率を提供するために、キーの確率分布関数を、ソフトキーボードのスタイル又は他の構成パラメータ、及びタイピング速度のような動的に決定されるパラメータを含むユーザに関連するパラメータを含む、ランタイムの条件に基づいて決定してもよい。
【００６２】
これらのパラメータは、任意の適切なやり方でモデル化された確率分布関数においてキャプチャされてよい。しかし、確率分布関数が有限個のパラメータによってモデル化される諸実施形態では、ソフトキーボード上の様々なキーについての確率分布関数に影響を及ぼす可能性がある任意の条件に関する情報を使用して、モデルパラメータの値を選択してもよい。任意の適切な機構を使用して、キーの確率分布関数に影響する可能性のあるコンテキスト又は他の要因に関する情報を、モデルパラメータの値に関連付けてもよい。一例として、ソフトキーボードインタフェースコンポーネントは、確率分布モデルを特徴付けるパラメータの値の１つ又は複数の表を記憶していてもよい。ガウス分布が確率分布関数のモデルとして使用される実施形態において、それらのパラメータは、モデルの平均及び分散とすることができる。
【００６３】
これらのパラメータは、任意の適切なやり方で編成されてよい。一部の実施形態では、確率分布関数が求められることになるキーボード上のキーごとに、表が設けられてよい。しかし、他の実施形態では、キーボード上の特定のキーを指示する情報を、確率分布モデルパラメータの適切な値を決定するためのそのような表へのインデックスとして使用してもよい。具体例として、キーボードの中央からのキーの距離を、モデルパラメータの値を読み取るための表へのインデックスとして使用してもよい。
【００６４】
他のパラメータの値も同様に、確率分布モデルのパラメータの値を選択する際に使用されてよい。各パラメータは表へのインデックスとして使用されてもよく、パラメータの値ごとに別個の表が設けられてもよい。  
具体例として、キーボードが、図１から図３の実施形態によって表されるように、フルＱＷＥＲＴＹ配列キーボードか、簡略化されたキーボードか、それとも分割キーボードであるかなど、キーボードスタイルの指示が、確率分布モデルのパラメータの値を選択するためのパラメータとして使用されることがある。一部の実施形態では、キーボードスタイルごとに別個の表が設けられることがあり、ソフトキーボードインタフェースコンポーネントは、レンダリングされているキーボードのスタイルに基づいて、値を読み取るべき適切な表を選択することができる。あるいはまた、一部の実施形態では、未知のデータ（速度、キーサイズ、キーボードサイズ、キー位置、空きサイズ等）の値を補間するために、すべてのパラメータについて適合関数が提供されることがある。適合関数は、多項式関数又は任意の他の適切な関数とすることができる。
【００６５】
確率分布モデルを特徴付けるパラメータの値がどのように決定されるかにかかわらず、ソフトキーボードインタフェースコンポーネントは、キーボード入力を処理する際に、キーボード上の複数のキーの各々と関連付けられた確率分布関数の適切な値を決定することがある。これらの値を使用して、ユーザタップがタッチスクリーンを介して受け取られる位置に隣接したキーについて確率分布関数を定義することができる。これらの確率分布関数は、タップが特定のキーをターゲットとするユーザ入力を表す、隣接キーの各々と関連付けられた確率を決定するのに適用されることがある。キーについての確率分布関数を、任意の適切なときに決定することができる。キーの確率分布関数を決定するのに使用される動作環境のパラメータが、レンダリングされるソフトキーボードの構成によってのみ定められる実施形態では、確率分布関数は、ソフトキーボードがレンダリングされるときに決定されてよい。
【００６６】
しかし、一部の実施形態では、キーの確率分布関数を特徴付ける値を決定するのに使用されるパラメータは、ユーザがキーボードと対話する方法に依存することがある。図７Ａにソフトキーボード７２０を例示する。複数のキーの各々と関連付けられた確率分布関数が図示されている。例えば、「ｗ」キーと関連付けられた確率分布関数７６０１が図示されている。図７Ａにおいて、確率分布関数７６０１は、多次元であるが、確率分布関数の分散に対応する輪郭を示すことによって２次元で図示されている。
【００６７】
図７Ａは、キーボードのユーザがゆっくりタイプしているという動作条件の下で、キー「ｗ」の確率分布関数７６０１と、文字に対応するソフトキーボード７２０上の他のキーの各々の対応する確率分布関数とを図示している。したがって、確率分布関数は、概ねキーの各々を中心とし、概ねキーと同じ範囲のスプレッドを有するものとして図示されている。しかし、キーボード７２０上の様々な位置にある様々なキーが様々な形状の確率分布関数を有することが分かる。
【００６８】
これに対し、図７Ｂは、キーボード７２０のユーザが速くタイプしているときの確率分布関数を図示している。確率分布関数７６０１（図７Ａ）と確率分布関数７６０２（図２Ｂ）との比較から分かるように、より速くタイプすることにより、確率分布関数のスプレッドが増加し、キーボードの中央７８０に向かう確率分布関数のオフセットが生じる。例えば中央７８０に近い確率分布関数７６０ｈは、中央７８０からより遠いキーと関連付けられた確率分布関数７６０ｊよりも小さいバイアスを有する。
【００６９】
確率分布関数７６０ｓと７６０ｚとを比較すると、スプレッドの増加の量は、中央７８０に対するキーの位置に依存しうることが示される。図からわかるように、確率分布関数７６０ｓは確率分布関数７６０ｚよりも小さいスプレッドを有する。本発明の発明者らは、このばらつきのパターンは、図１及び図２に描かれているキーボードスタイルのようなフルＱＷＥＲＴＹ配列キーボードに適しているが、異なるばらつきのパターンが、図３に図示されるキーボードのような分割キーボードによって提示される可能性があることを認識し、理解している。したがって、キーボード上のキーについての確率分布関数をモデル化するのに使用される値は、異なるキーボードスタイル、及び検出されるタイピング速度などの他の要因について提供されてよい。
【００７０】
確率分布関数を特徴付ける値を、任意の適切なやり方で決定することができる。一部の実施形態において、これらの値は、実験的に、ヒューリスティックに、及び／又は適応的に決定されることがある。例えば、一部の実施形態において、オペレーティングシステム又はソフトキーボードインタフェースを提供するアプリケーションの設計者が、複数の潜在的ユーザにタイプすべきサンプルテキストを提供することによって、実験的に情報を収集することがある。予想されるユーザの各々が、サンプルをタイプするのに必要な意図された各キーについてタッチスクリーンを打鍵する、ソフトキーボードに対する位置の分布を記録することによって、確率分布をキーの各々について生成することができるはずである。次いで確率分布モデルを、これらの測定された分布に適合させて、どの値が適切な適合度をもたらすかを判定することができる。このようなテストを、確率分布モデルのパラメータが必要とされる各条件又は条件セットの下で繰り返すことができる。確率分布モデルを特徴付けるパラメータの値が収集されると、これらのパラメータの値を表に記憶してもよく、あるいはそれ以外のやり方でソフトキーボードインタフェースコンポーネントに利用可能にしてもよい。
【００７１】
確率分布関数をヒューリスティックに定義する方法の例として、図７Ａ及び図７Ｂに、分布関数のスプレッドがタイピング速度と共に増加する様子を示す。低速タイピングについてスプレッドを推定し、各キーと概ねと同じ広がりを有する確率分布関数を得ることができる。この確率分布関数をベースラインとして使用し、ルール又は他のヒューリスティックを使用してベースラインの条件から逸脱する条件について調整してもよい。例えば、検出されたタイピング速度に基づいて、低速タイピングのスプレッドをタイピング速度の増加に比例して増減させることによって、確率分布関数の適切なスプレッドを決定してもよい。本明細書で説明される他の要因及び他の適切な要因を含め、確率分布関数に影響を及ぼす他の要因は、確率分布関数を特徴付けるパラメータの値を調整する手法を指示するルールとして表されてよい。
【００７２】
パラメータの値が適応的に決定される方法の一例として、ソフトキーボードインタフェースコンポーネントが動作する際に、予測の正確さに関する情報を収集してもよい。具体例として、テキストの表示に続くユーザ入力が、ユーザが特定の位置におけるタップ入力を、その位置に近い第１のキーから第２のキーに一貫して変更することを指示する場合、それらのキーの確率分布関数は、より高い確率を第２のキーに割り当てることによって、ソフトキーボードインタフェースコンポーネントが同じ位置におけるタップに応答することとなる確率を増加するように調整されることがある。
【００７３】
確率分布関数を特徴付けるパラメータの値が決定する方法にかかわらず、それらの値は、確率分布関数が、動作条件を特徴付ける任意の所望のパラメータに基づいて選択されるよう利用可能である。
【００７４】
図８Ａ及び図８Ｂは、キーボードレイアウトのパラメータがキーについての確率分布関数に影響を及ぼすことを例示する。図８Ａはソフトキーボード８２０１を図示している。文字キーと関連付けられた確率分布関数が、図７Ａと同じ形式を使用して図８Ａに図示されている。これに対し、図８Ｂはソフトキーボード８２０２を図示している。ソフトキーボード８２０１及び８２０２は同じキーボードスタイルである。しかし、キーボード８２０２は隣接キーを分離するガター８７０を含む。本発明の発明者らは、同等のサイズのキーボードにとっても、キーの間に視覚的分離を作り出すガター８７０を設けることは、ユーザがターゲットとするキーを打鍵する際の正確さを高めることがあることを認識し、理解している。
【００７５】
したがって、図８Ｂには、確率分布関数８６０２が確率分布関数８６０１より小さいスプレッドを有することが示されている。図８Ａ及び図８Ｂの対応するキーについて他の確率分布関数を比較すると、他のキーについても同様のパターンが示されている。具体例として、レンダリングされるキーボードレイアウトのパラメータは、タップを解釈するのに使用される確率分布関数を決定する際に使用されてもよい。したがって、ガターサイズ及び／又はキーサイズは、キーについて適切な確率分布関数を決定する際に使用されるキーボードレイアウトのパラメータとすることができる。しかし、任意の他のパラメータを代替又は追加として使用してもよい。
【００７６】
一部の実施形態では、ソフトキーボードインタフェースコンポーネントは、パラメータの組み合わせに対する値に基づいて、ソフトキーボード上の複数のキーの各々について確率分布関数を選択してもよい。一部の実施形態では、これらのパラメータには、タイピング速度、キーボードスタイル、キーサイズ、及びガターサイズが含まれることがある。しかし、任意の適切なパラメータの値を使用してもよいことを理解されたい。
【００７７】
さらに、図８Ａ及び図８Ｂは、確率分布関数が文字キー及びスペースバーと関連付けられることを図示している。ソフトキーボードインタフェースコンポーネントは、確率情報がテキストの処理に使用される実施形態において、これらのキーに対する確率のみを決定することがある。しかし、確率を、これらのキーすべてについて報告すること又はこれらのキーのみについて報告することは、本発明の必要条件ではない。他のキーについて確率が他のキー報告される実施形態も可能である。
【００７８】
ソフトキー上の検出されたタップに応答して確率が報告されるキーにかかわらず、ソフトキーボードインタフェースコンポーネントは、検出された入力に応答して、１つ又は複数のキーの確率を生成するよう動作してもよい。ソフトキーボードインタフェースコンポーネントは、一部の実施形態において、図９に図示される方法９００に従って動作してもよい。
【００７９】
方法９００は複数の動作を含み、そのうちの一部はソフトキーボードの初期レンダリングの際に行われてよい。図９に図示される動作の他の動作は、タップが検出されるときに繰り返し行われてよい。図９の例において、動作９１０、９１２及び９１４は、ソフトキーボードが最初にレンダリングされるとき、又はそうでなくともソフトキーボードの初期化の一部として行われてよい。さらに、一部の実施形態では、動作９１０、９１２及び９１４は、ソフトキーボードインタフェースコンポーネントを実装するプログラムの実行に際して、明確に定義されたステップとして行われなくてもよい。むしろ、動作９１０、９１２及び９１４によって実装される初期化のアクションを、ソフトキーボードインタフェースコンポーネントの一部としてコード化することができる。
【００８０】
コンポーネントが初期化される具体的な方法にかかわらず、方法９００は動作９１０において開始してよい。動作９１０において、キーボードスタイルを決定することができる。一部の実施形態では、コンピューティングデバイス上で実行されているアプリケーションが、好適なキーボードスタイルを指示することがある。例えば、非公式なチャットタイプの通信をサポートするアプリケーションは、限定的な機能のキーボードがレンダリングされるよう要求することがある。しかし、キーボードスタイルに関する情報を任意の適切なやり方で獲得することができる。一部の実施形態では、キーボードスタイルは、ユーザプロファイル又は他の構成情報ソースから読み取ることができる、直接ユーザ入力によって指定されることがある。
【００８１】
キーボードスタイルを決定する方法にかかわらず、処理は次いで動作９１２に進んでよい。動作９１２において、ソフトキーボードインタフェースコンポーネントは、レンダリングされるキーボードパラメータの値を決定することができる。例えばこれらのキーボードパラメータは、キーのサイズ、キーの位置及び／又はキーの間のガターのサイズとすることができる。これらのパラメータの値を任意の適切な方法で決定してよい。パラメータの値は、例えば、ソフトキーボードがレンダリングされているデバイスのタイプ、特に、ディスプレイのサイズやソフトキーボードに割り当てられる表示領域のサイズなどの要因に依存することがある。
【００８２】
動作９１４において、デフォルトの確率分布関数を、確率が返されるべきであるキーの各々について識別することができる。動作９１４においてロードされる確率分布関数は、動作９１０において決定されるキーボードスタイル、及び動作９１２において決定される他のキーボードパラメータの値に基づくものとすることができる。しかし、動作９１４においてロードされる確率分布関数は、ユーザがキーボードと対話し始める前に決定することができる任意の他の適切なパラメータの値に基づいて選択されてもよい。例えば、図９には図示されていないが、一部の実施形態では、コンピューティングデバイスは、コンピューティングデバイスの複数の潜在的ユーザの各々についてプロファイル情報を記憶してもよい。また、アクティブなユーザのプロファイルからの情報を動作９１４において使用して、過去のタイピングパターン又はユーザに関して収集された他の履歴情報に基づいてソフトキーボードのキーについて適切な確率分布関数を識別することもできる。
【００８３】
確率分布関数を決定するのに使用される特定のパラメータにかかわらず、これらの確率分布関数を任意の適切な方法で表すことができる。一部の実施形態において、確率分布関数を、上述のガウス確率分布モデルの平均及び分散などの、確率分布モデルのパラメータの値によって表すことができる。しかし、確率分布関数を特徴付けるための任意の適切な技術を使用することができる。どのように表されるかにかかわらず、それらの確率分布関数を特徴付けるのに使用される情報を、動作９１４の一部としてロードすることができる。確率分布関数が利用可能になると、ソフトキーボードインタフェースコンポーネントは、それらの確率分布関数を使用してキーボード入力を処理することができる。
【００８４】
図９は、キーボード入力を生成するコンポーネント９２０を図示している。コンポーネント９２０は、例えば、タッチスクリーン用のコントローラとすることができる。しかし、コンポーネント９２０は、ソフトキーボードインタフェースコンポーネントに入力を提供する前に、「タップ」を識別するために、タッチスクリーンコントローラによって生成される情報を前処理するコンポーネントを含むコンポーネントの集合を表してもよいことを理解すべきである。キーボード入力のソース及び前処理にかかわらず、ソフトキーボードインタフェースコンポーネントは、これらの入力を動作９２２として受け取ることができる。
【００８５】
動作９２４で、ソフトキーボードインタフェースコンポーネントは、ユーザのタイピング速度の推定値を更新することができる。一部の実施形態では、ソフトキーボードインタフェースコンポーネントは、キーボードタップが検出される平均レートをトラックしてよい。この平均レートは、ユーザがタイプしている速度の指示として使用されてよく、この速度はさらに、ソフトキーボードのキーについて確率分布関数を動的に決定するのに使用されてよい。動作９２４で取得されるタイピング速度の推定値は、任意の適切な方法で取得されてよい。しかし、一例として、タイピング速度の推定値は、キーボードタップを分ける移動平均（ｒｕｎｎｉｎｇ  ａｖｅｒａｇｅ）時間として維持されてよい。
【００８６】
方法９００は次いで動作９２６に進んでよい。動作９２６において、動作９２２で受け取った入力の位置に隣接したキーを識別することができる。動作９２６において選択されるキーを任意の適切な方法で決定することができる。一部の実施形態では、動作９２６の一部として選択されるキーは、動作９２２の一部として受け取られる入力の位置を含む任意のキーを含むことがある。加えて、その入力位置に隣接する任意のキーも、選択に含まれることがある。しかし、その確率値が返されるべきであるキーのサブセットを識別するための任意の適切な技術を使用することができる。一部の実施形態では、キーと関連付けられる確率分布関数に対する制限を、隣接キーを選択するために、明示的に又は暗黙的に使用されてよい。例えば、入力位置において非ゼロである確率分布関数を有する任意のキーが動作９２６の一部として選択されてもよく、タッチ接触形状と交差する任意のキーを使用することもできる。本発明の発明者らは、そのような技術の組み合わせも、様々なアプリケーションン固有の修正及び予測に使用してもよいことを了解している。
【００８７】
隣接キーが選択される方法にかかわらず、動作９２８において、それらの選択されたキーの確率分布関数を更新することができる。確率分布関数がタイピング速度に依存する実施形態では、動作９２８における更新は、動作９２４で決定されるように使用されるときに、動作９１０及び動作９１２において決定された特性を有するキーボードについて適切な確率分布関数を選択することを含んでもよい。確率分布関数の他の選択と同様に、動作９２８における選択は任意の適切な方法で行われてよい。一部の実施形態では、選択は、選択されたキーの各々に関連付けられたルックアップ表にアクセスし、ルックアップ表へのインデックスとして、動作９１０、動作９１２及び動作９２４の一部として決定されたパラメータの値を使用することによって行われてよい。
【００８８】
確率分布関数が決定される方法にかかわらず、それらの確率分布関数を使用して、確率を、動作９２６の一部として選択された隣接キーの各々に関連付けることができる。各キーに対する確率は、ユーザが、動作９２２において受け取った入力でそのキーをターゲットとした確率を指示してもよい。
【００８９】
確率分布関数が、キーに関連付けられたアンカによって定義される制限を受ける実施形態において、方法９００は、判断ブロック９４０において、受け取った入力がアンカ内に入っているかどうかに応じて分岐してよい。受け取った入力がアンカ内にある場合、方法９００は動作９５０に分岐する。動作９５０において、ソフトキーボードインタフェースコンポーネントは、１の確率を、入力が入っているアンカに関連付けられたキーに関連付けることができる。処理は次いで動作９５４に進んでよく、動作９５４において、この確率が報告される。図９に図示された実施形態では、キーボード入力が、あるキーのアンカ内に入っているときには、他のキーについての確率は報告されない。しかし、別の実施形態では、あるキーのアンカ内に入っている入力が任意の適切な方法で報告されてもよい。一部の実施形態で用いられる代替例として、あるキーのアンカ内で検出された入力を、他の隣接キーと関連付けられた確率とは別個に報告してもよく、したがって、ソフトキーボードインタフェースコンポーネントから出力を受け取る後処理コンポーネントは、アンカ内の入力に関する情報を任意の適切な方法で使用するようプログラムされてもよい。
【００９０】
アンカ内の入力を特定する方法にかかわらず、動作９２２の一部として受け取られた入力がアンカ内に入っていない場合には、方法９００は動作９５２に進む。動作９５２において、動作９２６の一部として選択された隣接キーの各々について確率を決定することができる。ブロック９５２において確率を決定することは、それらの隣接キーの各々の基準点に対する受け取った入力の位置に基づいて、それらの隣接キーについて更新された確率分布関数から値を選択することを伴うことがある。図６Ａ及び図６Ｂに関連して説明した実施形態では、各キーの基準点はその中心であるとみなされる。しかし、分割キーボードの実施形態のような他の実施形態では、基準点は、キーボードのエッジ又は他の適切な位置とすることができる。しかし、任意の適切な機構を使用して、各キーに関連付けられた空間的確率分布関数に基づいて特定の位置における入力の確率を決定してよい。
【００９１】
確率が隣接キーの各々について決定される方法にかかわらず、処理は動作９５４に進む。動作９５４において、決定された１つ又は複数の確率を報告することができる。これらの報告は、テキスト予測エンジンなどの後処理コンポーネントに対して行われることがある。しかし、いかなる後処理かにかかわらず、受け取った入力と関連付けられた１つ又は複数のキーを指示する情報を、ソフトキーボードから入力を受け取るアプリケーション又は他のコンポーネントに提供することができる。この入力は、当分野で公知の技術を使用して、又は任意の他の適切な方法で提供されてよい。
【００９２】
本明細書で説明されるソフトキーボードインタフェース技術は、任意の適切なコンピューティングデバイスに統合されてよい。図１０に、本発明が実装されうる適切なコンピューティングシステム環境１０００の例を図示する。コンピューティングシステム環境１０００は、適切なコンピューティング環境の一例にすぎず、本発明の使用又は機能の範囲に関するいかなる限定を示唆するようにも意図されていない。またコンピューティング環境１０００は、例示的動作環境１０００に図示される構成要素の任意の１つ又はそれらの組み合わせに関して、いかなる依存関係又は必要条件を有するようにも解釈されるべきではない。
【００９３】
本発明は、多数の他の汎用又は専用のコンピューティングシステム環境又は構成とともに動作する。本発明とともに使用するのに適した周知のコンピューティングシステム、環境、及び／又は構成の例には、これだけに限られないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップックス、プログラマブル家電、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステム又はデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【００９４】
コンピューティング環境は、プログラムモジュールといったコンピュータ実行可能命令を実行しうる。一般に、プログラムモジュールは、特定のタスクを実行し、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また本発明は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実施されてもよい。分散コンピューティング環境では、プログラムモジュールを、記憶デバイスを含むローカルとリモート双方のコンピュータ記憶媒体に位置することができる。
【００９５】
図１０を参照すると、本発明を実装するための例示的システムは、汎用コンピューティングデバイスをコンピュータ１０１０の形で含んでいる。コンピュータ１０１０の構成要素は、これらに限られないが、処理装置１０２０と、システムメモリ１０３０と、システムメモリを含め、様々なシステムコンポーネントを処理装置１０２０に結合するシステムバス１０２１とを含んでよい。システムバス１０２１は、メモリバス若しくはメモリコントローラ、周辺バス、及び様々なバスアーキテクチャのいずれかを使用したローカルバスを含むいくつかの種類のバス構造のうちの任意のものとすることができる。限定ではなく例として、そのようなアーキテクチャは、産業標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ベサ（ＶＥＳＡ）ローカルバス、及びメザニンバスとしても知られる周辺装置相互接続（ＰＣＩ）を含む。
【００９６】
コンピュータ１０１０は典型的に、様々なコンピュータ読取可能媒体を含む。コンピュータ読取可能媒体は、コンピュータ１０１０によってアクセスすることができる任意の利用可能な媒体とすることができ、揮発性及び不揮発性の双方の媒体、取り外し可能及び取り外し不能の双方の媒体を含む。原例ではなく例として、コンピュータ読取可能媒体は、コンピュータ記憶媒体と通信媒体を含むことが。コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、又は他のデータといった情報を記憶するための任意の方法又は技術において実装された揮発性及び不揮発性の双方、取り外し可能及び取り外し不能の双方の媒体を含む。コンピュータ記憶媒体は、これらに限られないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）若しくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、又は所望の情報を記憶するのに使用することができ、コンピュータ１０１０によってアクセスすることができる任意の他の媒体を含む。通信媒体は典型的に、コンピュータ読取可能命令、データ構造、プログラムモジュール又は他のデータを、搬送波又は他のトランスポート機構のような変調データ信号において具現化し、任意の情報伝達媒体を含む。「変調データ信号」という用語は、その特性のうちの１つ又は複数が、信号内に情報をエンコードするような方法で設定又は変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続のような有線媒体と、音響、ＲＦ、赤外線又は他の無線媒体のような無線媒体とを含む。上記のうちのいずれかの組み合わせもコンピュータ読取可能媒体の範囲内に含まれるべきである。
【００９７】
システムメモリ１０３０は、読取専用メモリ（ＲＯＭ）１０３１やランダムアクセスメモリ（ＲＡＭ）１０３２などの、揮発性及び／又は不揮発性メモリの形のコンピュータ記憶媒体を含む。基本入出力システム１０３３（ＢＩＯＳ）は、始動時などにコンピュータ１０１０内の要素間で情報を転送するのを助ける基本ルーチンを含み、典型的にはＲＯＭ１０３１に記憶されている。ＲＡＭ１０３２は典型的に、処理装置１０２０から即座にアクセス可能であり、及び／又は処理装置１０２０によって現在操作されているデータ及び／又はプログラムモジュールを含む。限定ではなく例として、図１０は、オペレーティングシステム１０３４、アプリケーションプログラム１０３５、他のプログラムモジュール１０３６及びプログラムデータ１０３７を図示している。
【００９８】
またコンピュータ１０１０は、他の取り外し可能／取り外し不能、揮発性／不揮発性コンピュータ記憶媒体も含んでいてよい。例として、図１０は、取り外し不能・不揮発性の磁気媒体との間で読み取り又は書き込みを行うハードディスクドライブ１０４１と、取り外し可能・不揮発性の磁気ディスク１０５２との間で読み取り又は書き込みを行う磁気ディスクドライブ１０５１と、ＣＤ−ＲＯＭ又は他の光学媒体などの取り外し可能・不揮発性の光ディスク１０５６との間で読み取り又は書き込みを行う光ディスクドライブ１０５５とを図示している。例示的動作環境で使用することができる他の取り外し可能／取り外し不能、揮発性／不揮発性コンピュータ記憶媒体には、これだけに限られないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭ等が含まれる。ハードディスクドライブ１０４１は典型的に、インタフェース１０４０などの取り外し不能メモリインタフェースを介してシステムバス１０２１に接続されており、磁気ディスクドライブ１０５１及び光ディスクドライブ１０５５は典型的に、インタフェース１０５０などの取り外し可能メモリインタフェースによってシステムバス１０２１に接続される。
【００９９】
上記で説明し、図１０に図示したドライブ及びこれらのドライブと関連付けられたコンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール及びコンピュータ１０１０のための他のデータのストレージを提供する。図１０では、例えば、ハードディスクドライブ１０４１が、オペレーティングシステム１０４４、アプリケーションプログラム１０４５、他のプログラムモジュール１０４６及びプログラムデータ１０４７を記憶するものとして図示されている。これらのコンポーネントは、オペレーティングシステム１０３４、アプリケーションプログラム１０３５、他のプログラムモジュール１０３６及びプログラムデータ１０３７と同じものとすることも、異なるものとすることもできる。オペレーティングシステム１０４４、アプリケーションプログラム１０４５、他のプログラムモジュール１０４６及びプログラムデータ１０４７は、ここでは、少なくともこれらが異なるコピーであることを示すために異なる番号が与えられている。ユーザは、キーボード１０６２や、一般にマウス、トラックボール又はタッチパッドと呼ばれるポインティングデバイス１０６１などの入力デバイスを介して、コンピュータ１０１０にコマンド及び情報を入力してよい。しかし、タッチスクリーンが入出力デバイスとして使用される実施形態では、このタイプの別個のヒューマンインタフェースデバイスがなくてもよい。これらのコンポーネントの代わりに、又はこれらに加えて提供されることがある他の入力デバイス（不図示）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ等が含まれうる。これら及び他の入力デバイスはしばしば、システムバスに結合されるユーザ入力インタフェース１０６０を介して処理装置１０２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）といった他のインタフェース及びバス構造によって接続されてもよい。モニタ１０９１又は別のタイプのディスプレイデバイスも、ビデオインタフェース１０９０のようなインタフェースを介してシステムバス１０２１に接続される。このディスプレイデバイスは、前述のようなタッチスクリーンであってよく、コンピューティングデバイスの本体に統合されていてもよい。モニタに加えて、コンピュータは、出力周辺装置インタフェース１０９５を介して接続され得る、スピーカ１０９７及びプリンタ１０９６などの他の周辺出力デバイスを含んでいてもよい。
【０１００】
コンピュータ１０１０は、リモートコンピュータ１０８０などの１つ又は複数のリモートコンピュータへの論理接続を使用するネットワーク接続環境において動作することができる。リモートコンピュータ１０８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス又は他の一般的なネットワークノードとすることができ、典型的にはコンピュータ１０１０に関して前述した要素のうちの多く又は全部を含むが、図１０には記憶デバイス１０８１だけが図示されている。図１０に示される論理接続は、ローカルエリアネットワーク（ＬＡＮ）１０７１及び広域ネットワーク（ＷＡＮ）１０７３を含むが、他のネットワークを含んでいてもよい。そのようなネットワーク接続環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット及びインターネットでは一般的である。
【０１０１】
ＬＡＮネットワーク接続環境で使用されるとき、コンピュータ１０１０は、ネットワークインタフェース又はアダプタ１０７０を介してＬＡＮ１０７１に接続される。ＷＡＮネットワーク接続環境で使用されるとき、コンピュータ１０１０は典型的に、インターネットといったＷＡＮ１０７３上で通信を確立するためのモデム１０７２又は他の手段を含む。モデム１０７２は、内蔵であっても外付けであってもよく、ユーザ入力インタフェース１０６０又は他の適切な機構を介してシステムバス１０２１に接続されてよい。ネットワーク接続環境では、コンピュータ１０１０に関連して示されているプログラムモジュール、又はその一部分が、リモートメモリ記憶デバイスに記憶されていてもよい。限定ではなく例として、図１０は、リモートアプリケーションプログラム１０８５が記憶デバイス１０８１上に存在するものとして図示している。図示されたネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段を使用してもよいことが理解されよう。
【０１０２】
以上のように本発明の少なくとも１つの実施形態のいくつかの態様を説明してきたが、当業者には様々な変更、修正及び改善が容易に想起されるであろうことを理解されたい。
【０１０３】
例えば、キーボードのユーザアクティブ化は、「タップ」によって行われると説明した。ユーザ入力は、キーボードを横切る指のドラッグに基づいて検出されてもよい。したがって、ユーザアクティブ化を示す任意の適切なジェスチャを、ユーザ入力として認識し、解釈してもよいことを理解すべきである。
【０１０４】
そのような変更、修正及び改善は、本開示の一部であることが意図されており、本発明の趣旨及び範囲の内にあることが意図されている。さらに、本発明の利点が示されているが、本発明の全ての実施形態が説明された全ての利点を含むことになるとは限らないことも理解されたい。一部の実施形態は、本明細書において一部の例で利点として記載されている任意の特徴を実装しない可能性がある。したがって、以上の説明及び図面は例示にすぎない。
【０１０５】
本発明の上述の実施形態を、多くの方法のうちのいずれかで実現することができる。例えば、これらの実施形態は、ハードウェア、ソフトウェア又はハードウェアとソフトウェアの組み合わせを使用して実装されてよい。ソフトウェアで実装されるとき、ソフトウェアコードを、単一のコンピュータに提供されることもあり複数のコンピュータの間で分散されることもある、任意の適切なプロセッサ又はプロセッサの集合の上で実行することができる。そのようなプロセッサは、集積回路コンポーネント内に１つ又は複数のプロセッサを有する集積回路として実装されてよい。しかし、プロセッサは任意の適切な形式の回路を使用して実装されてよい。
【０１０６】
さらに、コンピュータは、ラックマウント型コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ又はタブレットコンピュータなどのいくつかの形態のうちのいずれで具現化されてもよいことを理解すべきである。加えて、コンピュータは、携帯情報端末（ＰＤＡ）、スマートフォン、又は任意の他の適切な携帯若しくは固定式電子デバイスを含む、一般にコンピュータとはみなされないが適切な処理能力を有する機器において具体化されてもよい。
【０１０７】
また、コンピュータは、１つ又は複数の入出力デバイスも有していてよい。これらの装置は、特に、ユーザインタフェースを提示するのに使用することができる。ユーザインタフェースを提供するのに使用することのできる出力デバイスの例には、出力の視覚的提示のためのプリンタ若しくは表示画面、及び出力の可聴提示のためのスピーカ若しくは他の音発生装置が含まれる。ユーザインタフェースに使用することのできる入力デバイスの例には、キーボード、マウスなどのポインティングデバイス、タッチパッド、及びデジタル化タブレットが含まれる。別の例として、コンピュータは、音声認識によって、又は他の可聴形式で入力情報を受け取ってもよい。
【０１０８】
そのようなコンピュータは、企業ネットワークやインターネットといった、ローカルエリアネットワーク又は広域ネットワークとしてのネットワークを含む、任意の適切な形の１つ又は複数のネットワークによって相互接続されてよい。そのようなネットワークは、任意の適切な技術に基づくものであってよく、任意の適切なプロトコルに従って動作してよく、無線ネットワーク、有線ネットワーク又は光ファイバネットワークを含んでいてよい。
【０１０９】
また、本明細書で概説した様々な方法又はプロセスは、様々なオペレーティングシステム又はプラットフォームのうちのいずれか１つを用いる１つ又は複数のプロセッサ上で実行可能なソフトウェアとしてコード化されてもよい。加えて、そのようなソフトウェアは、いくつかの適切なプログラミング言語及び／又はプログラミングツール若しくはスクリプティングツールのうちのいずれを使用して書かれてもよく、また、フレームワーク又は仮想機械上で実行される実行可能機械語コード又は中間コードとしてコンパイルされてもよい。
【０１１０】
この点に関して、本発明は、１つ又は複数のコンピュータあるいは他のプロセッサ上で実行されると、前述の本発明の様々な実施形態を実施する方法を実行する１つ又は複数のプログラムで符号化される、コンピュータ読取可能記憶媒体（又は複数のコンピュータ読取可能媒体）（例えば、コンピュータメモリ、１つ又は複数のフロッピー(登録商標)ディスク、コンパクトディスク（ＣＤ）、光ディスク、デジタルビデオディスク（ＤＶＤ）、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイ又は他の半導体デバイスにおける回路構成、あるいは他の有形のコンピュータ記憶媒体）として具体化されてよい。前述の例から明らかなように、コンピュータ読取可能記憶媒体は、コンピュータ実行可能命令を非一時的な形で提供するのに十分な時間にわたって情報を保持しうる。そのような１つ又は複数のコンピュータ読取可能記憶媒体は可搬式とすることができ、よって、その媒体上に記憶された１つ又は複数のプログラムを、前述の本発明の様々な態様を実現するために１つ又は複数の異なるコンピュータあるいは他のプロセッサ上にロードすることができる。本明細書で使用されるとき、「コンピュータ読取可能記憶媒体」という用語は、製品（すなわち製造品）又はマシンであるとみなされるコンピュータ読取可能媒体だけを包含する。あるいはまた、本発明は、伝搬信号などの、コンピュータ読取可能記憶媒体以外のコンピュータ読取可能媒体として具体化されてもよい。
【０１１１】
「プログラム」又は「ソフトウェア」という用語は、本明細書では、コンピュータ又は他のプロセッサを、上述の本発明の様々な態様を実現するようにプログラムするのに用いることのできる、任意のタイプのコンピュータコード又はコンピュータ実行可能命令のセットを指す一般的な意味で使用される。加えて、この実施形態の一態様によれば、実行されると本発明の方法を実行する１つ又は複数のコンピュータプログラムは、単一のコンピュータ又はプロセッサ上に置かれる必要はなく、本発明の様々な態様を実現するように複数の異なるコンピュータ又はプロセッサの間でモジュール式に分散されていてもよいことを理解すべきである。
【０１１２】
コンピュータ実行可能命令は、１つ又は複数のコンピュータあるいは他の機器によって実行されるプログラムモジュールなどの多くの形態とすることができる。一般に、プログラムモジュールは、特定のタスクを実行し、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。典型的に、プログラムモジュールの機能は、様々な実施形態において必要に応じて組み合わされても分散されてもよい。
【０１１３】
また、データ構造は、任意の適切な形態でコンピュータ読取可能媒体に記憶されてもよい。説明を簡単にするために、データ構造は、データ構造内の位置決めによって関係付けられるフィールドを有するものとして示されてもよい。そのような関係は、同様に、フィールド間の関係を伝えるコンピュータ読取可能媒体内の位置を有するフィールドについてストレージを割り当てることによって達成されてもよい。しかし、任意の適切な機構を使用してデータ構造のフィールド内の情報間の関係を確立してもよく、これは、ポインタ、タグ、又はデータ要素間の関係を確立する他の機構の使用によるものを含む。
【０１１４】
本発明の様々な態様は、単独で使用されても、組み合わせて使用されても、以上で説明した実施形態において具体的に論じられていない様々な構成で使用されてもよく、したがって、その適用において、以上の説明に記載し、又は図面に例示した構成要素の詳細及び構成だけに限定されるものではない。例えば、一実施形態において説明された態様を、他の実施形態で説明された態様と任意の方法で組み合わせてよい。
【０１１５】
また、本発明は方法として具体化されてもよく、その一例が提供されている。方法の一部として実行される各動作は、任意の適切な方法で順序付けられてよい。したがって、動作が例示のものと異なる順序で実行される実施形態が構築されてよく、例示の実施形態では順次の動作として示されても、いくつかの動作を同時に実行することを含んでいてよい。
【０１１６】
特許請求の範囲において構成要素を修飾するための「第１の」、「第２の」、「第３の」などの序数詞の使用は、それ自体によって、別の構成要素に対するある構成要素の優先順位、優位又は順序も意味するものではなく、また方法の動作が実行される時間的順序も意味するものではない。このような序数詞は、単に、ある名称を有するある構成要素を（序数詞の使用がなければ）同じ名称を有する別の要素と区別するためのラベルとして、それらの構成要素を区別するために使用されるにすぎない。
【０１１７】
また、本明細書で使用される言葉遣い及び用語は説明のためのものであり、限定とみなされるべきではない。本明細書における「含む（ｉｎｃｌｕｄｉｎｇ）」、「備える（ｃｏｍｐｒｉｓｉｎｇ）」、又は「有する（ｈａｖｉｎｇ）」、「包含する（ｃｏｎｔａｉｎｉｎｇ）」、「伴う（ｉｎｖｏｌｖｉｎｇ）」及びこれらの変形の使用は、その後に記載された項目及びそれらの項目の均等物、並びに追加項目を包含することを意図するものである。
【図１】
0005951776.tif 000002
【図２】
0005951776.tif 000003
【図３】
0005951776.tif 000004
【図４Ａ】
0005951776.tif 000005
【図４Ｂ】
0005951776.tif 000006
【図５Ａ】
0005951776.tif 000007
【図７Ａ】
0005951776.tif 000008
【図７Ｂ】
0005951776.tif 000009
【図８Ａ】
0005951776.tif 000010
【図８Ｂ】
0005951776.tif 000011
【図９】
0005951776.tif 000012
【図１０】
0005951776.tif 000013
【図５Ｂ】
0005951776.tif 000014
【図６Ａ】
0005951776.tif 000015
【図６Ｂ】
0005951776.tif 000016