(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-24
(45)【発行日】2024-02-01
(54)【発明の名称】動的スペースバー
(51)【国際特許分類】
G06F 3/04886 20220101AFI20240125BHJP
G06F 3/02 20060101ALI20240125BHJP
【FI】
G06F3/04886
G06F3/02 450
【外国語出願】
(21)【出願番号】P 2021184047
(22)【出願日】2021-11-11
(62)【分割の表示】P 2019538660の分割
【原出願日】2017-10-25
【審査請求日】2021-12-08
(32)【優先日】2017-02-10
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ロバーツ-ホフマン,ケイティ・リー
(72)【発明者】
【氏名】ムーニー,チャールズ・ジマー
【審査官】▲高▼瀬 健太郎
(56)【参考文献】
【文献】米国特許第09019207(US,B1)
【文献】米国特許出願公開第2014/0310213(US,A1)
【文献】特開2014-052864(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/04886
G06F 3/02
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実現される方法であって、
タッチスクリーンキーボードのキーの輪郭
とトラックパッドとして特定される領域とを含むタッチ入力装置
、を備えるコンピューティングデバイスが、前記コンピューティングデバイスのコンテキストを判断するステップを含み、前記コンピューティングデバイスのコンテキストは、前記コンピューティングデバイスのディスプレイが提示するユーザ入力テキストの内容に少なくとも基づき、前記タッチスクリーンキーボードのキーの前記輪郭は、スペースバーの輪郭を含み、前記方法は、さらに、
前記スペースバーの輪郭内のタッチ入力を受け付けるステップと、
前記コンピューティングデバイスが、前記コンピューティングデバイスのコンテキストに基づいて、前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定するステップと、
前記コンピューティングデバイスの前記ディスプレイに出力するために、前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると前記コンピューティングデバイスが特定したことに基づいて、前記トラックパッドの選択の表示を提供するステップとを含む、方法。
【請求項2】
前記コンピューティングデバイスのコンテキストを判断するステップは、不完全な単語がカーソルの位置よりも前にあると判断するステップを含み、
前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定するステップは、不完全な単語が前記カーソルよりも前にあると判断するステップに基づく、請求項1に記載の方法。
【請求項3】
前記コンピューティングデバイスのコンテキストを判断するステップは、前記スペースバーの輪郭内の前記タッチ入力が、タップ操作ではなく、ドラッグ動作であると判断するステップを含み、
前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定するステップは、前記トラックパッドとして特定された前記領域内の前記タッチ入力が、タップ操作ではなく、ドラッグ動作であると判断するステップに基づく、請求項1に記載の方法。
【請求項4】
コンピュータにより実現される方法であって、
タッチスクリーンキーボードのキーの輪郭
とトラックパッドとして特定される領域とを含むタッチ入力装置
、を備えるコンピューティングデバイスが、前記コンピューティングデバイスのコンテキストを判断するステップを含み、前記タッチスクリーンキーボードのキーの前記輪郭は、スペースバーの輪郭を含み、前記コンピューティングデバイスのコンテキストは、前記スペースバーの輪郭および前記トラックパッドとして特定された前記領域の外側における前記タッチ入力装置とのユーザ接触の位置に少なくとも基づき、前記方法は、さらに、
前記スペースバーの輪郭内のタッチ入力を受け付けるステップと、
前記コンピューティングデバイスが、前記コンピューティングデバイスのコンテキストに基づいて、前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定するステップと、
前記コンピューティングデバイスのディスプレイに出力するために、前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると前記コンピューティングデバイスが特定したことに基づいて、前記トラックパッドの選択の表示を提供するステップとを含む、方法。
【請求項5】
前記コンピューティングデバイスのコンテキストを判断するステップは、前記タッチスクリーンキーボードの予め定められた数のホームキーの輪郭の外側にユーザの指がタッチしていると判断するステップを含み、
前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定するステップは、前記タッチスクリーンキーボードの前記予め定められた数のホームキーの輪郭の外側に前記ユーザの指がタッチしていると判断するステップに基づく、請求項4に記載の方法。
【請求項6】
前記コンピューティングデバイスのコンテキストを判断するステップは、前記トラックパッドの輪郭の片側でユーザの手のひらが前記タッチスクリーンキーボードのキーの前記輪郭の外側の一部にタッチしていると判断するステップを含み、
前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定するステップは、前記トラックパッドの輪郭の片側で前記ユーザの手のひらが前記タッチスクリーンキーボードのキーの前記輪郭の外側の一部にタッチしていると判断するステップに基づく、請求項4に記載の方法。
【請求項7】
前記コンピューティングデバイスの前記ディスプレイと前記タッチ入力装置とは別個である、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記スペースバーの輪郭内のタッチ入力を受け付けるステップは、前記トラックパッドとして特定された前記領域内の前記タッチ入力を受け付けるステップを含まない、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記トラックパッドとして特定された前記領域は、前記スペースバーの輪郭の下に隣接している、請求項8に記載の方法。
【請求項10】
前記コンピューティングデバイスのさらなるコンテキストを判断するステップと、
前記スペースバーの輪郭内のさらなるタッチ入力を受け付けるステップと、
前記コンピューティングデバイスが、前記さらなるコンテキストに基づいて、前記スペースバーの輪郭内の前記さらなるタッチ入力が前記スペースバーの選択であると特定するステップと、
前記コンピューティングデバイスの前記ディスプレイに出力するために、前記スペースバーの輪郭内の前記さらなるタッチ入力が前記スペースバーの選択であると前記コンピューティングデバイスが特定したことに基づいて、前記スペースバーの選択の表示を提供するステップとを含む、請求項1~9のいずれか1項に記載の方法。
【請求項11】
前記コンピューティングデバイスのさらなるコンテキストを判断するステップと、
前記トラックパッドとして特定された前記領域内のさらなるタッチ入力を受け付けるステップと、
前記コンピューティングデバイスが、前記さらなるコンテキストに基づいて、前記トラックパッドとして特定された前記領域内の前記さらなるタッチ入力が前記スペースバーの選択であると特定するステップと、
前記コンピューティングデバイスの前記ディスプレイに出力するために、前記トラックパッドとして特定された前記領域内の前記さらなるタッチ入力が前記スペースバーの選択であると前記コンピューティングデバイスが特定したことに基づいて、前記スペースバーの選択の表示を提供するステップとを含む、請求項1~9のいずれか1項に記載の方法。
【請求項12】
前記コンピューティングデバイスのコンテキストを判断するステップは、単語の接頭語がカーソルの前にあると判断するステップを含み、
前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定するステップは、単語の接頭語が前記カーソルの前にあると判断するステップに基づく、請求項1~11のいずれか1項に記載の方法。
【請求項13】
前記スペースバーの輪郭内の前記タッチ入力を受け付けるステップに基づいて、かつ、前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると前記コンピューティングデバイスが特定したことに基づいて、タッチスクリーンジェスチャに関連する操作を行うステップを含む、請求項1~12のいずれか1項に記載の方法。
【請求項14】
1つ以上のコンピュータと、
命令を格納した1つ以上の記憶装置とを備え、前記命令は、前記1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに動作を実行させるよう動作可能であり、前記動作は、
タッチスクリーンキーボードのキーの輪郭
とトラックパッドとして特定される領域とを含むタッチ入力装置
、を備えるコンピューティングデバイスが、前記コンピューティングデバイスのコンテキストを判断することを含み、前記コンピューティングデバイスのコンテキストは、前記コンピューティングデバイスのディスプレイが提示するユーザ入力テキストの内容に少なくとも基づき、前記タッチスクリーンキーボードのキーの前記輪郭は、スペースバーの輪郭を含み、前記動作は、さらに、
前記スペースバーの輪郭内のタッチ入力を受け付けることと、
前記コンピューティングデバイスが、前記コンピューティングデバイスのコンテキストに基づいて、前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定することと、
前記コンピューティングデバイスの前記ディスプレイに出力するために、前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると前記コンピューティングデバイスが特定したことに基づいて、前記トラックパッドの選択の表示を提供することとを含む、システム。
【請求項15】
前記コンピューティングデバイスのコンテキストを判断することは、不完全な単語がカーソルの位置よりも前にあると判断することを含み、
前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定することは、不完全な単語が前記カーソルよりも前にあると判断することに基づく、請求項14に記載のシステム。
【請求項16】
前記コンピューティングデバイスのコンテキストを判断することは、前記トラックパッドとして特定された前記領域内の前記タッチ入力が、タップ操作ではなく、ドラッグ動作であると判断することを含み、
前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定することは、前記トラックパッドとして特定された前記領域内の前記タッチ入力が、タップ操作ではなく、ドラッグ動作であると判断することに基づく、請求項14または15に記載のシステム。
【請求項17】
1つ以上のコンピュータと、
命令を格納した1つ以上の記憶装置とを備え、前記命令は、前記1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに動作を実行させるよう動作可能であり、前記動作は、
タッチスクリーンキーボードのキーの輪郭
とトラックパッドとして特定される領域とを含むタッチ入力装置
、を備えるコンピューティングデバイスが、前記コンピューティングデバイスのコンテキストを判断することを含み、前記タッチスクリーンキーボードのキーの前記輪郭は、スペースバーの輪郭を含み、前記コンピューティングデバイスのコンテキストは、前記スペースバーの輪郭および前記トラックパッドとして特定された前記領域の外側における前記タッチ入力装置とのユーザ接触の位置に少なくとも基づき、前記動作は、さらに、
前記スペースバーの輪郭内のタッチ入力を受け付けることと、
前記コンピューティングデバイスが、前記コンピューティングデバイスのコンテキストに基づいて、前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定することと、
前記コンピューティングデバイスのディスプレイに出力するために、前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると前記コンピューティングデバイスが特定したことに基づいて、前記トラックパッドの選択の表示を提供することとを含む、システム。
【請求項18】
前記コンピューティングデバイスのコンテキストを判断することは、前記トラックパッドの輪郭の片側でユーザの手のひらが前記タッチスクリーンキーボードのキーの前記輪郭の外側の一部にタッチしていると判断することを含み、
前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると特定することは、前記トラックパッドの片側で前記ユーザの手のひらが前記タッチスクリーンキーボードのキーの前記輪郭の外側の一部にタッチしていると判断することに基づく、請求項17に記載のシステム。
【請求項19】
前記動作は、
前記コンピューティングデバイスのさらなるコンテキストを判断することと、
前記スペースバーの輪郭内のさらなるタッチ入力を受け付けることと、
前記コンピューティングデバイスが、前記さらなるコンテキストに基づいて、前記スペースバーの輪郭内の前記さらなるタッチ入力が前記スペースバーの選択であると特定することと、
前記コンピューティングデバイスの前記ディスプレイに出力するために、前記スペースバーの輪郭内の前記さらなるタッチ入力が前記スペースバーの選択であると前記コンピューティングデバイスが特定したことに基づいて、前記スペースバーの選択の表示を提供することとを含む、請求項14~18のいずれか1項に記載のシステム。
【請求項20】
前記動作は、
前記コンピューティングデバイスのさらなるコンテキストを判断することと、
前記トラックパッドとして特定された前記領域内のさらなるタッチ入力を受け付けることと、
前記コンピューティングデバイスが、前記さらなるコンテキストに基づいて、前記トラックパッドとして特定された前記領域内の前記さらなるタッチ入力が前記スペースバーの選択であると特定することと、
前記コンピューティングデバイスの前記ディスプレイに出力するために、前記トラックパッドとして特定された前記領域内の前記さらなるタッチ入力が前記スペースバーの選択であると前記コンピューティングデバイスが特定したことに基づいて、前記スペースバーの選択の表示を提供することとを含む、請求項14~18のいずれか1項に記載のシステム。
【請求項21】
前記動作は、
前記スペースバーの輪郭内の前記タッチ入力を受け付けることに基づいて、かつ、前記スペースバーの輪郭内の前記タッチ入力が前記トラックパッドの選択であると前記コンピューティングデバイスが特定したことに基づいて、タッチスクリーンジェスチャに関連する操作を行うことを含む、請求項14~20のいずれか1項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
分野
本明細書は、コンピュータ入力装置に関する。
【背景技術】
【0002】
背景
ラップトップコンピュータは、ヒンジを介してキーボードに繋がれたスクリーンを備える。ユーザがキーボード上でキー入力すると、対応する文字がスクリーン上に現れる。携帯電話またはタブレット端末など、スクリーンしか備えないデバイスでは、デバイス上で実行中のアプリケーションおよび当該アプリケーションの状態によって異なるタッチキーボードをスクリーンが表示する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
概要
タッチキーボード上でキー入力する場合、キーボードを見ていないときにユーザがキーボード配列を把握できる3次元の機械式のキーをこのキーボードが含まないため、ユーザは間違いを起こしやすいだろう。タッチキーボードでは、ユーザがスペースバーを選択することを意図していても、キーボードを見ておらず、かつ、スペースバーの位置を触って感じることができないため、隣接するトラックパッド(スペースバーの真下に位置する場合もある)を選択してしまう可能性がある。このため、ユーザがスペースバーを選択したと思っているのにもかかわらず、単語の終わりにいるときにカーソルが前進しないため、ユーザは困惑してしまうだろう。トラックパッドを選択したことによってカーソルがスクリーン上のどこかに移動してしまっていた場合、ユーザは、カーソルの位置を正しい位置に直さなければならないだろう。
【課題を解決するための手段】
【0004】
この問題を解決するために、タッチキーボードを有するコンピューティングデバイスは、スペースバーの真下に位置するトラックパッドの一部を含むようにスペースバー有効領域のサイズを動的に調整してもよい。コンピューティングデバイスは、コンピューティングデバイスのコンテキストに基づいてスペースバー有効領域のサイズを調整してもよい。たとえば、ユーザがキー入力中であり、かつ、完全な単語の末尾にいる場合、コンピューティングデバイスは、スペースバー有効領域のサイズを拡大してもよい。この場合、ユーザは、トラックパッドよりもスペースバーを選択する可能性が高くなる。同様に、ユーザがキー入力中であり、かつ、現在の単語が不完全である場合、コンピューティングデバイスは、スペースバー有効領域のサイズを、スペースバーを超えて拡大しなくてもよい。この場合、ユーザは、現在の単語が完全である場合よりもスペースバーを選択する可能性が低くなる。
【0005】
本願に記載の発明の主題の革新的な態様によると、動的スペースバーを実装するための方法は、タッチスクリーンキーボードおよびトラックパッドを含むコンピューティングデバイスが、コンピューティングデバイスのコンテキストを判断する動作と、トラックパッド上のタッチ入力を受け付ける動作と、コンピューティングデバイスが、コンピューティングデバイスの予め判断されたコンテキストに基づいて、トラックパッド上のタッチ入力がタッチスクリーンキーボードのスペースバーの選択であると特定する動作と、コンピューティングデバイスのディスプレイに出力するために、トラックパッド上のタッチ入力がスペースバーの選択であるとコンピューティングデバイスが特定したことに基づいて、ス
ペースバーの選択の表示を提供する動作とを含む。
【0006】
これらのおよびその他の実装形態は、各々、必要に応じて、下記の特徴のうちの1つ以上を含み得る。コンピューティングデバイスのコンテキストを判断する動作は、完全な単語がカーソルの位置よりも前にあると判断することを含む。トラックパッド上のタッチ入力がタッチスクリーンキーボードのスペースバーの選択であると特定する動作は、さらに、完全な単語がカーソルの前にあると判断することに基づく。コンピューティングデバイスのコンテキストを判断する動作は、トラックパッド上のタッチ入力が、ドラッグ操作ではなく、タップ操作であると判断することを含む。トラックパッド上のタッチ入力がタッチスクリーンキーボードのスペースバーの選択であると特定する動作は、さらに、トラックパッド上のタッチ入力が、ドラッグ操作ではなく、タップ操作であると判断することに基づく。コンピューティングデバイスのコンテキストを判断する動作は、タッチスクリーンキーボードの予め定められた数のホームキーにユーザの指がタッチしていると判断することを含む。トラックパッド上のタッチ入力がタッチスクリーンキーボードのスペースバーの選択であると特定する動作は、さらに、タッチスクリーンキーボードの予め定められた数のホームキーにユーザの指がタッチしていると判断することに基づく。
【0007】
コンピューティングデバイスのコンテキストを判断する動作は、トラックパッドの片側でユーザの手のひらがタッチスクリーンキーボードの一部にタッチしていると判断することを含む。トラックパッド上のタッチ入力がタッチスクリーンキーボードのスペースバーの選択であると特定する動作は、さらに、トラックパッドの片側でユーザの手のひらがタッチスクリーンキーボードの一部にタッチしていると判断することに基づく。タッチスクリーンキーボードおよびトラックパッドは、タッチ入力装置上に示される輪郭によって識別される。コンピューティングデバイスのディスプレイとタッチ入力装置とは別個である。タッチスクリーンキーボードは、スペースバーの画像を描画する。トラックパッド上のタッチ入力を受け付ける動作は、描画されたスペースバーの画像内の位置におけるタッチ入力を受け付けないことを含む。描画されたスペースバーの画像は、描画されたスペースバーの画像の下に隣接している。動作は、コンピューティングデバイスのさらなるコンテキストを判断する動作と、トラックパッド上のさらなるタッチ入力を受け付ける動作と、コンピューティングデバイスが、さらなるコンテキストに基づいて、トラックパッド上のさらなるタッチ入力がトラックパッドの選択であると特定する動作と、コンピューティングデバイスのディスプレイに出力するために、トラックパッド上のさらなるタッチ入力がトラックパッドの選択であるとコンピューティングデバイスが特定したことに基づいて、トラックパッドの選択の表示を提供する動作をさらに含む。
【0008】
動作は、スペースバー上の別のタッチ入力を受け付ける動作と、コンピューティングデバイスが、トラックパッド上のさらなるタッチ入力がトラックパッドの選択であると特定することに基づいて、スペースバー上の別のタッチ入力がトラックパッドの選択であると特定する動作と、コンピューティングデバイスのディスプレイに出力するために、スペースバー上の別のタッチ入力がトラックパッドの選択であるとコンピューティングデバイスが特定したことに基づいて、トラックパッドの選択のさらなる表示を提供する動作とをさらに含む。コンピューティングデバイスのコンテキストを判断する動作は、単語の接頭語がカーソルの前にあると判断することを含む。トラックパッド上のさらなるタッチ入力がトラックパッドの選択であると特定する動作は、さらに、単語の接頭語がカーソルの前にあると判断することに基づく。動作は、トラックパッド上のタッチ入力を受け付けることに基づいて、かつ、トラックパッド上のタッチ入力がスペースバーの選択であるとコンピューティングデバイスが特定したことに基づいて、タッチスクリーンジェスチャに関連する操作を行わない動作をさらに含む。
【0009】
この態様のその他の実装形態は、方法に含まれるこれらの動作を実行するように各々が
構成された対応するシステム、装置、およびコンピュータ記憶装置上に記録されたコンピュータプログラムを含む。
【0010】
本願に記載の発明の主題は、下記の利点のうちの1つ以上を有してもよい。コンピューティングデバイスは、意図しないユーザ入力をユーザが提供する可能性が低くなるよう、ユーザがスペースバーを選択する可能性が高いと判断することに応答してスペースバーに対応する有効領域を動的に調整する。動的キーボードは、タッチ面上に位置していてもよく、これによって、キーボードを薄型化することができる。タッチキーボードによって機械コンポーネントの必要性が少なくなり、費用を抑えてデバイスを製造でき、かつ、キーボードが故障しにくくなる。
【0011】
本明細書に記載の発明の主題の1つ以上の実装形態の詳細を、添付の図面および以下の説明に記載する。発明の主題のその他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0012】
【
図1】動的スペースバーを有するコンピューティングデバイスの例を示す図である。
【
図2】動的スペースバーを有するコンピューティングデバイスの例を示す図である。
【
図3】動的スペースバーを実装するためのシステム例を示す図である。
【
図4】動的スペースバーを実装するための処理例を示す図である。
【
図5】コンピューティングデバイスおよびモバイルコンピューティングデバイスの例を示す図である。
【発明を実施するための形態】
【0013】
図面の全体にわたって、同じ参照番号は、対応する部分を表す。
詳細な説明
図1は、動的スペースバーを有する例示的なコンピューティングデバイス105を示す図である。簡潔に言うと、以下により詳細を説明するが、コンピューティングデバイス105は、コンピューティングデバイス105のコンテキストを用いて、スペースバーの近くで行われるタッチ入力が、スペースバーの選択であるか、またはトラックパッドの選択であるかを判断する。
【0014】
図1に示すように、システム100は、コンピューティングデバイス105のインスタンスを2つ含む。コンピューティングデバイス105aおよび105bは、「the quick brown fox jumped over the lazy dog」という文をユーザがキー入力している様子を示している。コンピューティングデバイス105aは、ユーザが単語「over」をキー入力している途中のコンピューティングデバイス105を示している。コンピューティングデバイス105bは、ユーザが単語「over」をキー入力し終えたコンピューティングデバイス105を示している。
【0015】
コンピューティングデバイス105は、ヒンジ式デバイスであり、ヒンジ115の一方側にスクリーン110を備え、ヒンジ115の他方側にキーボード120とトラックパッド125とを備える。ヒンジ115は、閉じられたときにスクリーン110がキーボード120に面するよう、または、スクリーン110およびキーボード125が外に向くよう、360度回転するように構成されてもよい。上下に移動し、ユーザがキーを押下したときに有効になる機械式のキーの代わりに、キーボード120およびトラックパッド125がタッチ面上にあってもよい。タッチ面は、抵抗型タッチ面であってもよく、静電容量型タッチ面であってもよい。単語「fox」をキー入力するために、ユーザは、文字「f」
、「o」、および「x」に対応するタッチ面の領域を押す。
【0016】
いくつかの実装形態では、キーボード120のキーおよびトラックパッド125の位置は、タッチ面上にペイントまたはプリントされてもよい。この例では、キーボード120のレイアウトおよびトラックパッド125は、ユーザがコンピューティングデバイス105とやり取りをするとき、またはコンピューティングデバイス105を折りたたむときに、変化しなくてもよい。ペイントされたキーボード120およびトラックパッド125は、コンピューティングデバイス105の電源が切れても見えたままである。いくつかの実装形態では、キーボード120のキーおよびトラックパッド125の位置は、表示装置を用いてタッチ面上に表示されてもよい。たとえば、タッチ面は、キーボード120のキーおよびトラックパッド125の位置を表示するためのLCDディスプレイを含むタッチスクリーンであってもよい。この例では、電源が入ったときにキーボード120のキーおよびトラックパッド125の位置が現れてもよい。いくつかの実装形態では、キーボード120のキーおよびトラックパッド125の位置は、ヒンジ115の角度が特定の範囲内である場合のみ現れてもよい。スクリーン110がキーボード120に面したときのヒンジの角度が0度であった場合、スクリーン110およびキーボード125が外側に面したときのヒンジの角度が360度であった場合、たとえば、ヒンジ115が10度と270度との間であった場合にのみキーボード120のキーおよびトラックパッド125の位置が現れてもよい。このように、コンピューティングデバイス105は、コンピューティングデバイス105が閉じられておらず、かつ、「タブレット」モードでない場合にのみキーを提示してもよい。
【0017】
キーボード120が機械コンポーネントを含まないので、キーボード120とトラックパッド125とを含むコンピューティングデバイス105の部分は、他のラップトップコンピュータよりも薄くてもよい。これに加えて、機械コンポーネントを排除したことによってキーボード120の機械故障が生じる可能性がなくなったので掃除が簡単になったり、耐水性が向上したりし得る。タッチ面が表示装置を備える場合、キーボード120のレイアウトを簡単に変更することができるだろう。たとえば、コンピューティングデバイス105は、キーボード120のレイアウトを異なる言語用レイアウトに変更したり、その他のデザインを表示させるようディスプレイを変更したりしてもよい。
【0018】
キーボード120が平坦なタッチ面であることによる別の結果として、ユーザの指がどのキーの上に位置しているのかまたは接触しているのかを、ユーザがキーボード120を見ないで判断することができない可能性がある。いくつかの実装形態では、キーボード120は、ユーザが手をキーボード120の上に置いたときに正しい位置に手を置くことができるようにする1つ以上の隆起した要素をキーボード120上に含んでもよい。これに加えて、コンピューティングデバイス120は、キーボード120のキーのサイズまたはトラックパッド125のサイズを、異なるコンテキストに応じて調整できてもよい。この例では、キーボード120の見た目は同じであってもよい。代わりに、選択されると、スペースバー130の選択に相当するまたはスペースバー130の選択をもたらすスペースバー130の領域のサイズが拡大したり縮小したりしてもよい。同様に、コンピューティングデバイス105は、デバイスのコンテキストに基づいてその他のキーまたはトラックパッド125の有効領域を調整してもよい。
【0019】
コンピューティングデバイス105aに図示した例では、ユーザの手135aは、キーボード120aの上に置かれている。ユーザの指140aは、左手については、「a s
d f」、右手については「j k l ;」などのホームキー145aの上に置かれている。本明細書では、「指」は、人差し指、中指、薬指、および小指をまとめて指し、親指は含まれない。ユーザの親指150aは、スペースバー130の上に置かれていてもよい。ユーザの手のひら155aは、パームレスト160aの上に置かれていてもよい。
【0020】
コンピューティングデバイス105aは、文書処理アプリケーションまたは電子メールアプリケーションなど、テキスト入力アプリケーションを実行中である。テキスト入力アプリケーションは、フォアグラウンドで実行中であり、テキスト入力アプリケーションがスクリーン110a上に現れている。システムアプリケーション、および、ブラウザ、写真エディタ、動画エディタ、またはその他の同様のアプリケーションなどその他のユーザアプリケーションなど、その他のアプリケーションがバックグラウンドで実行中であってもよい。コンピューティングデバイス105a上で、ユーザは、テキスト165a「the quick brown fox jumped ov」をキー入力し終えている。コンピューティングデバイス105aは、コンピューティングデバイス105aのコンテキストを判断する。コンテキストは、スクリーン110a上のテキスト165aの一部に基づき得る。
【0021】
コンテキストは、「ov」など不完全な単語の終わりにカーソルが位置していることであってもよい。この例では、ユーザがキー入力中であり、かつ、カーソルが不完全な単語の終わりに位置しているので、ユーザがスペースバー130aを押す可能性がない。コンテキストは、ユーザの指140aの位置に基づいてもよい。ユーザの指140aがホームキー145aの上に置かれているので、ユーザは、キー入力ポジションにある可能性があるので、スペースバー130aを押す可能性が高い。コンテキストは、ユーザの手のひら155aの位置に基づいてもよい。ユーザの手のひら155aがパームレスト160aの上に位置しているので、ユーザは、キー入力ポジションにある可能性があるので、タッチパッドとやり取りを行うよりもスペースバー130aを押す可能性が高い。
【0022】
コンピューティングデバイス105aは、これら上述したコンテキストの各々を重み付けして全体的なコンテキストを判断してもよい。この例では、コンピューティングデバイス105aは、スクリーン上のテキストおよびカーソルの位置に、ユーザの手のひら155aの位置および/またはユーザの指140aの位置よりも重い重み付けをしてもよい。いくつかの実装形態では、キーボード120aがタッチ入力装置であるので、ユーザは、パームレスト160aなど、入力装置の有効領域上にしか手のひら155aを置くことができない。この場合、コンピューティングデバイス105aは、ユーザの指140aの位置を判断できない可能性がある。いくつかの実装形態では、タッチ入力装置は、様々なタッチの圧力を検出できてもよい。この例では、ユーザは、キーを有効にしないで指140aをホームキー145aの上に置くことができてもよい。ユーザは、キーを有効にするために圧力を上げることができてもよい。いくつかの実装形態では、タッチ入力装置は、指、手のひら、またはその他の手の部位の存在を検出できてもよい。この例では、ユーザは、タッチ入力装置を直接タッチしなくてもよく、代わりに、タッチ入力装置がユーザの存在を検出できるタッチ入力装置の閾値距離内にいてもよい。いくつかの実装形態では、タッチによって実現される機能のいずれも、存在によって実現されてもよい。
【0023】
ユーザがキー入力しており、かつ、単語の途中であることにコンピューティングデバイス105aのコンテキストが関連していることに基づいて、コンピューティングデバイス105aは、タッチ入力装置上に輪郭が描かれたスペースバー130aのサイズおよび形状にスペースバー有効領域170aを維持する。この例では、スペースを入力するために、ユーザは、スペースバー130aによって輪郭が描かれた領域内のタッチ面に接触することによって、スペースバー130aを選択する。ユーザが、トラックパッド125aなど、スペースバー130aの外側の領域でタッチ面に接触した場合、コンピューティングデバイス105aは、この入力を、トラックパッド125aの入力と解釈する。
【0024】
コンピューティングデバイス105bは、ユーザが単語「over」をキー入力し終えた後のコンピューティングデバイス105bを示している。この例では、ユーザがキー入
力中であり、かつ、カーソルが完全な単語の終わりに位置しているので、ユーザがスペースバー130bを押す可能性がある。コンテキストは、ユーザの指140bの位置に基づいてもよい。ユーザの指140bがホームキー145bの上に置かれているので、ユーザは、キー入力ポジションにある可能性があるので、ユーザの指140bがホームキーの上に置かれていない場合よりも、スペースバー130bを押す可能性が高い。コンテキストは、ユーザの手のひら155bの位置に基づいてもよい。ユーザの手のひら155bがパームレスト160bの上に位置しているので、ユーザは、キー入力ポジションにある可能性があるので、スペースバー130bを押す可能性が高い。
【0025】
コンピューティングデバイス105bは、これら判断されたコンテキストの各々を異なるように重み付けして全体的なコンテキストを判断してもよい。この例では、コンピューティングデバイス105bは、スクリーン上のテキストおよびカーソルの位置をユーザの手のひら155bの位置および/またはユーザの指140bの位置よりも重く、軽く、または同じに重み付けしてもよい。ユーザがキー入力しており、かつ、単語の終わりにいることにコンピューティングデバイス105bのコンテキストが関連していることに基づいて、コンピューティングデバイス105bは、スペースバー有効領域170bを、タッチ入力装置上に輪郭が描かれたスペースバー130bのサイズおよび形状よりも大きくする。この例では、スペースを入力するために、ユーザは、スペースバー130aおよびトラックパッド125bの一部を含む有効領域170bによって輪郭が描かれた領域を選択する。ユーザが、有効領域170b下のトラックパッド125aの一部など、有効領域170bの外側の領域を選択した場合、コンピューティングデバイス105bは、入力がトラックパッド125bの入力(たとえば、マウスカーソルを移動するまたはマウスカーソル「クリック」を提供することによる)であると解釈する。
【0026】
図2は、動的スペースバーを有する例示的なコンピューティングデバイス205を示す図である。簡潔に言うと、以下により詳細を説明するが、コンピューティングデバイス205は、コンピューティングデバイス205のコンテキストを用いて、スペースバーの近くで行われるタッチ入力がスペースバーの選択であるか、またはトラックパッドの選択であるかを判断する。
【0027】
コンピューティングデバイス205の構成は、コンピューティングデバイス105と同様である。スクリーン210は、キーボード220とトラックパッド225とを備えるタッチ入力装置にヒンジ式で連結されている。スペースバー有効領域270は、動的な領域であり、コンピューティングデバイスのコンテキストとともに変化する。たとえば、コンテキストがカーソルの前に不完全な単語を含む場合、スペースバー有効領域270は、トラックパッド225の一部を含む。コンテキストがカーソルの前に完全な単語を含む場合、スペースバー有効領域270は、スペースバーのみを含む。
【0028】
コンピューティングデバイス205aは、ユーザが完全または不完全な単語「jump」をキー入力した後のコンピューティングデバイス205aを示している。「Jump」には「ed」などの接尾語が続いている可能性があり、「jump」が完全である可能性もある。この例では、コンピューティングデバイス205aは、カーソルの前の単語の完全性だけでなく、それ以上のことに基づいて、トラックパッド225の一部を含むようにスペースバー有効領域170aを調整してもよい。コンテキストを判断するためのさらなる判断要素は、ユーザの指240aがホームキー245a上(または、その判断された距離内)に位置していること、および/またはユーザの手のひら255aがパームレスト260a上に位置していることに基づいてもよい。「jump」が完全であるか不完全であるかが不確定であることと組み合わせてこれらの要素の一方または両方を使用して、コンピューティングデバイス205aは、ユーザがトラックパッド225aの代わりにスペースバー230aを選択する可能性が高いと判断する。したがって、コンピューティングデ
バイス205aは、トラックパッド225aの上部を含むようにスペースバー有効領域270aを拡張してもよい。
【0029】
拡張されたスペースバー有効領域270aでは、ユーザは、トラックパッド225aの上部を選択してもよく、コンピューティングデバイス205aは、この選択をスペースバー230aの選択であると解釈する。この例では、ユーザの親指250aが、トラックパッド225aの下部を選択する。トラックパッド225aの選択が拡張されたスペースバー有効領域270aよりも下で行われたため、コンピューティングデバイス205aは、この選択をトラックパッド225aの選択であると解釈する。スペースバー有効領域270のサイズを判断するために用いられる要素の1つは、最近の入力がトラックパッド225aへの入力であったかどうかであってもよい。このように、トラックパッド225のユーザ選択の後、コンピューティングデバイス205は、トラックパッド225aのユーザ選択の前のスペースバー有効領域270のサイズに対してスペースバー有効領域270のサイズを縮小してもよい。
【0030】
コンピューティングデバイス205bは、ユーザが不完全な単語「th」をキー入力した後のコンピューティングデバイス205bを示している。コンピューティングデバイス205bは、ユーザが「th」など不完全な単語の途中にいる間にスペースバー230bを選択する可能性が少なくなることに基づいて、スペースバー230bのみを含むようにスペースバー有効領域270aを調整してもよい。コンテキストを判断するためのさらなる要素は、ユーザの指240bがホームキー245b上に位置していること、および/またはユーザの手のひら255bがパームレスト260b上に位置していることに基づいてもよい。最近のユーザ入力が不完全な単語「th」を提供したという判断と組み合わせてこれらの要素の一方または両方を使用して、コンピューティングデバイス205bは、スペースバー230bおよびトラックパッド225bを含むキーボード220bの一部をユーザが選択した場合、ユーザがトラックパッド225bを選択するつもりである可能性が高いと判断してもよい。したがって、コンピューティングデバイス205bは、スペースバー230bのみを含むようにスペースバー有効領域270bを設定してもよい(または、スペースバー230bを表すプリントされたまたは仮想グラフィックスによって示される領域よりも小さい)。
【0031】
スペースバー有効領域270bがスペースバー230bのみを含んでいる場合、ユーザは、トラックパッド225bの上部を選択してもよく、コンピューティングデバイス205bは、この選択をトラックパッド225aの選択であると解釈する。この例では、ユーザの親指250bは、トラックパッド225bの上部を選択する。トラックパッド225bの上部は、コンテキストによっては、スペースバー有効領域270bに含まれ得る。この選択はトラックパッド225bの領域内であり、スペースバー有効領域270bはスペースバー230bしか含まないので、コンピューティングデバイス205bは、この選択をトラックパッド225bの選択と解釈する。
【0032】
図3は、動的スペースバーを実装するための例示的なシステム300を示す図である。システム300は、動的スペースバーを有するシステムの様々な構成要素を示している。たとえば、システム300は、
図1のコンピューティングデバイス105または
図2のコンピューティングデバイス205と同様であってもよい。いくつかの実装形態では、システム300は、携帯電話、タブレット、または同様のデバイスなど、タッチスクリーン入力装置を有する任意のデバイスであってもよい。
【0033】
システム300は、タッチ検出部305を含む。タッチ検出部305は、タッチ入力装置によって受け付けられたタッチの位置および圧力を検出するように構成される。タッチ入力装置は、静電容量型タッチデバイスであってもよく、抵抗型タッチデバイスであって
もよい。タッチ検出部305は、タッチイベントごとに、起点と終点とを出力する。これに加えて、タッチ検出部305は、タッチイベントの各位置におけるタッチの圧力を出力する。ユーザがスクリーンの異なる位置を同時にタッチした場合、タッチ検出部305は、位置ごとのタッチデータを出力してもよい。たとえば、ユーザは、タッチ入力装置のある位置をタッチし、指を別の位置にドラッグし、タッチ入力装置から指を離してもよい。この例では、タッチ検出部305は、ユーザの指の進路を示すデータ、および進路に沿ったタッチの圧力を示すデータを出力する。手のひらなど、タッチが指よりも大きい可能性がある場合、タッチ検出部305は、ユーザがタッチ入力装置に接触する領域、およびこの領域内の各位置の圧力を出力してもよい。
【0034】
タッチ検出部は、タッチデータをタッチインタプリタ310に提供する。タッチインタプリタ310は、このタッチデータを解釈し、ユーザインタフェース生成部315が表示のために出力する操作を判断する。タッチインタプリタ310は、いくつかのモジュールからデータを受け付け、これらのモジュールからのデータを用いてタッチデータの解釈を向上させる。
【0035】
また、タッチインタプリタ310は、指位置特定部320および手のひら位置特定部325を利用して、受け付けたタッチデータに基づいて指、親指、および手のひらの位置を判断する。たとえば、タッチ検出部305は、タッチの位置の座標、対応する圧力、およびタッチのサイズを提供してもよい。指位置特定部320は、位置、圧力、およびサイズを、様々なタッチ範囲および閾値と比較して、タッチが指であったかどうか、または親指であったかどうかを判断してもよい。同様に、手のひら位置特定部325は、位置、圧力、およびサイズを様々なタッチ範囲および閾値と比較して、タッチが手のひらであったかどうかを判断してもよい。いくつかの実装形態では、タッチインタプリタ310は、指位置特定部320および手のひら位置特定部325から十分なデータを受け付けて、指、手のひら、および親指の各々を識別することによってユーザの手の位置を特定してもよい。いくつかの実装形態では、タッチインタプリタは、様々な距離範囲および閾値を用いて指、手のひら、および親指の各々を識別してもよい。いくつかの実装形態では、指ラベル、手のひらラベル、および親指ラベルの各々が、たとえば、タッチが親指に対応する可能性を示す信頼スコアを含んでもよい。タッチインタプリタ310は、ユーザインタフェース生成部315に提供する操作および命令を判断する際、信頼スコアを様々な閾値および範囲と比較してもよい。
【0036】
いくつかの実装形態では、指位置特定部320および手のひら位置特定部325は、手および指の位置に加えて、またはその代わりに、手の角度および指の角度を算出してもよい。たとえば、指位置特定部320および手のひら位置特定部325は、中指と手のひらとのペアの各々に交差する軸に沿って計測したときのユーザの手同士の間の角度が60度であると算出してもよい。別の例として、これらの角度の基準線は、右手の手のひらと、右手の中指と、左手の中指とが交差する線、および左手の手のひらと左手の中指とが交差する線によって規定されてもよい。
【0037】
タッチインタプリタ310は、キーボード/トラックパッドレイアウトモジュール330からデータを受け付ける。キーボード/トラックパッドレイアウトモジュール330は、タッチ入力装置上のキーボードのレイアウトおよびトラックパッドに関するデータを提供する。キーボードおよびトラックパッドがタッチ入力装置上にペイントされている場合、キーボード/トラックパッドレイアウトモジュール330は、同一データをタッチインタプリタ310に提供する。キーボードおよびトラックパッドが動的である場合、キーボード/トラックパッドレイアウトモジュール330は、キーボード上のキーの各々の位置およびトラックパッドの位置を示すデータを提供する。この位置データは、キーの各々およびトラックパッドの座標を含んでもよい。また、キーボード/トラックパッドレイアウ
トモジュール330は、キーボードレイアウトが対応する言語を提供してもよい。タッチ入力装置上にキーボードが表示されていない場合、キーボード/トラックパッドレイアウトモジュール330は、そのことを示すデータをタッチインタプリタ310に提供してもよい。
【0038】
タッチインタプリタ310は、コンテキスト識別部335からコンテキストデータを受け付ける。コンテキスト識別部は、システム300のコンテキストを識別する。タッチインタプリタ310は、コンテキストデータ、タッチデータ、およびキーボードデータを分析してユーザインタフェース生成部315に提供する操作および命令を判断する。いくつかの実装形態では、コンテキスト識別部335は、言語モデル340の少なくとも一部に基づいてコンテキストデータを生成してもよい。言語モデル340は、様々な言語の語彙を含む。コンテキスト識別部335は、システム300のスクリーン上のテキストを、語彙に含まれる用語と比較してもよい。ユーザがキー入力中であり、かつ、現在キー入力されている用語が語彙に含まれる用語の接頭語に対応する場合、コンテキスト識別部335は、単語をキー入力していることがコンテキストであると識別してもよい。この例では、単語の接頭語は単語の最初の部分を意味すると解釈されるべきであるが、それ自体が完全な単語ではない。当該別の方法では、単語の接頭語は、単語の一部であり、完全ではない。たとえば、ユーザは、「jum」をキー入力しており、カーソルが「m」の後ろに位置しているかもしれない。コンテキスト識別部335は、用語「jum」を言語モデル340に含まれる語彙と比較してもよい。コンテキスト識別部335は、「jum」が不完全な単語であると判断し、単語をキー入力するというコンテキストがタッチインタプリタ310に提供される。いくつかの実装形態では、システム300の言語が特定の言語に設定されてもよい。この例では、コンテキスト識別部335は、コンテキストデータを生成するために、選択された言語に対応する言語モデルとキー入力された用語を比較するだけでよい。
【0039】
いくつかの実装形態では、コンテキスト識別部335は、システム300上で実行中の現在のプロセス345の少なくとも一部に基づいてコンテキストデータを生成してもよい。現在のプロセス340は、1つ以上のフォアグラウンドプロセス350およびバックグラウンドプロセスを含んでもよい。バックグラウンドのうちのいくつか、および、場合によっては、フォアグラウンドプロセスは、システムプロセスを含んでもよい。フォアグラウンドプロセス350およびバックグラウンドプロセス、のうちのいくつかは、ブラウザアプリケーション、電子メールアプリケーション、文書処理アプリケーション、写真編集アプリケーション、その他の同様のユーザアプリケーションなど、ユーザアプリケーションを含んでもよい。また、これらのプロセスは、ブラウザを介してサーバ上で実行中のウェブプロセスを含んでもよい。コンテキスト識別部335は、現在のプロセス345およびフォアグラウンドプロセス350を調べ、プロセスに基づいてコンテキストデータを生成する。たとえば、コンテキストデータは、フォアグラウンドでウェブ電子メールアプリケーションをブラウザで実行中であり、バックグラウンドで音楽プレーヤを実行中であってもよい。別の例として、コンテキストデータは、写真エディタをフォアグラウンドで実行中であってもよく、または文書処理アプリケーションをフォアグラウンドで実行中であってもよい。
【0040】
また、いくつかの実装形態では、現在のプロセス345およびフォアグラウンドプロセス350は、マウスポインタもしくはカーソル、またはその両方の位置に関するデータを提供してもよい。たとえば、文書処理アプリケーションのカーソル位置は、「jum」の終わりであってもよい。現在のプロセス345は、カーソルの位置が「jum」の後であることを記述したデータをコンテキスト識別部335に提供してもよい。別の例として、マウスポインタは、ブラウザウィンドウのスクロールバーに位置していてもよい。現在のプロセス345は、マウスポインタの位置がブラウザウィンドウのスクロールバーにある
ことを記述したデータを提供してもよい。いくつかの実装形態では、マウスポインタの位置は、座標ペアによって特定されてもよい。
【0041】
コンテキスト識別部335は、タッチインタプリタ310に関するコンテキストデータを提供する。タッチインタプリタ310は、コンテキストデータ、指の位置、手のひらの位置、親指の位置、およびキーボードレイアウトのうちの1つ以上の任意の組合せを評価し、タッチ検出部305からタッチデータを受け付けたことに応答してユーザインタフェース生成部315に提供する操作および命令を判断する。タッチインタプリタ310は、受け付けたデータをルールセットと比較して、適切な操作を決定してもよい。これに代えて、またはこれに加えて、タッチインタプリタ310は、機械学習および/またはニューラルネットワークを利用して、タッチデータに応答する適切な操作を判断してもよい。いくつかの実装形態では、タッチインタプリタ310は、主に、トラックパッド領域に位置し、かつ、スペースバーの閾値距離内のタッチがトラックパッドの選択であるかどうか、またはスペースバーの選択であるかどうかを判断するように構成される。
【0042】
識別された操作に基づいて、タッチインタプリタ310は、この操作を識別するデータをユーザインタフェース生成部315に提供する。ユーザインタフェース生成部315は、識別された操作に基づいてユーザインタフェースを更新する。たとえば、この操作がスペースバーの選択であった場合、ユーザインタフェース生成部315は、カーソルを進める。この操作がトラックパッドの選択であった場合、ユーザインタフェース生成部315は、マウスポインタが指しているオブジェクトを選択し、カーソルをマウスポインタの位置に移動する、または別の適切な操作を行う。
【0043】
いくつかの実装形態では、トラックパッドは、シングルクリックおよびダブルクリックを受け付けるように構成される。ユーザは、トラックパッドの輪郭内のスペースの中をタップすることによってシングルクリックを入力してもよい。ユーザは、トラックパッドの輪郭内のスペースの中を2回タップすることによってダブルクリックを入力してもよい。いくつかの実装形態では、トラックパッドの輪郭内のタッチ入力装置の部分は、スクロールなどの操作を行うためにユーザが有効にし得る特別なクリック領域であってもよい。いくつかの実装形態では、有効なトラックパッドのサイズは、ユーザ入力の間、変化してもよい。キーボードおよびトラックパッドを含むタッチ入力装置が滑らかで連続した面であるので、トラックパッドの輪郭の外をユーザがドラッグできるよう、効果的なトラックパッド領域のサイズが拡大してもよい。たとえば、ユーザは、マウスポインタがスクリーン上のオブジェクトの上に位置しているときにダブルタップすることによって、当該オブジェクトを選択してもよい。ユーザは、2回目のタップの終わりに指を下げたままにしてオブジェクトのドラッグを開始してもよい。ユーザがドラッグ動作を開始すると、タッチ入力装置全体を大体埋めるように効果的なトラックパッド領域が拡大してもよい。ユーザがスクリーンの端から端までオブジェクトをドラッグしている間、ユーザの指は、文字「k」キーまたは別のキーに移動してもよい。ドラッグ動作時にトラックパッドのサイズが拡大するので、文字「k」キーは、有効にならない。その代わりに、ユーザは、指がトラックパッドの輪郭の外側にある場合でも、オブジェクトを移動し続ける。
【0044】
いくつかの実装形態では、システム300は、コンテキストデータへのアクセスを規制するように構成されるプライバシーコントロールモジュールを含む。コンテキスト識別部335がコンテキストを判断する際に特定の種類の情報を考慮しないで済むよう、ユーザは、プライバシーコントロールモジュールの設定を選んでもよい。たとえば、ユーザは、コンテキストを判断する際に、システム300上で実行中のバックグラウンドアプリケーションにコンテキスト識別部335がアクセスしないようにする設定を選択してもよい。別の例として、ユーザは、コンテキストを判断する際にコンテキスト識別部335がキー入力された単語など前回のユーザ入力を使用しないようにする設定を選択してもよい。
【0045】
図4は、動的スペースバーを実装するための例示的な処理400を示す図である。一般に、処理400は、スペースバー上またはスペースバーの近くでのユーザ入力がスペースバーの選択、または、トラックパッドとスペースバーとの間に他のキーが位置しないようにスペースバーの下に隣接して位置するトラックパッドの選択であるかどうかを判断する。処理400は、
図1に示すシステム100、
図2に示すシステム200、または
図3に示すシステム300など、1つ以上のコンピュータを含むコンピュータシステムによって実行されるものとして説明する。
【0046】
タッチキーボードとトラックパッドとを備えるシステムは、システムのコンテキストを判断する(410)。いくつかの実装形態では、タッチキーボードおよびトラックパッドは、1つのタッチ入力装置上に示される輪郭によって識別される。いくつかの実装形態では、コンピューティングデバイスのディスプレイとタッチ入力装置とは別個である。たとえば、ディスプレイとタッチ入力装置とは、ヒンジによって接続されていてもよい。いくつかの実装形態では、キーボードは、スペースバーの画像を含む。いくつかの実装形態では、ディスプレイは、タッチ入力装置である。いくつかの実装形態では、システムは、不完全な単語がカーソルの前にあることがコンテキストであると判断する。たとえば、カーソルは、「ove」の後に位置している可能性がある。いくつかの実装形態では、システムは、完全または不完全な単語がカーソルよりも前にあることがコンテキストであると判断する。たとえば、カーソルは、「jump」の後に位置している可能性がある。
【0047】
システムは、トラックパッド上のタッチ入力を受け付ける(420)。いくつかの実装形態では、システムは、タッチ入力がタップ入力であることがシステムのコンテキストであると判断する。タップ入力とは、ユーザが指でタッチ面と接触し、1ミリ秒など短時間で指を離すことであってもよい。いくつかの実装形態では、タッチ入力は、トラックパッドによってスペースバー下に輪郭が描かれた位置において受け付けられてもよい。トラックパッドは、スペースバーの下に隣接してもよい。いくつかの実装形態では、システムは、ユーザの指がキーボードのホームキーに接触していることがシステムのコンテキストであると判断する。いくつかの実装形態では、システムは、ユーザの手のひらがトラックパッドの片側に位置するパームレストに接触していることがシステムのコンテキストであると判断する。
【0048】
システムは、システムの予め判断されたコンテキストに基づいて、トラックパッド上のタッチ入力がタッチキーボードのスペースバーの選択であると特定する(430)。いくつかの実装形態では、システムは、カーソルの前の完全な単語に基づいて、タッチ入力がスペースバーの選択であると特定する。いくつかの実装形態では、システムは、タッチ入力がタップ入力であることにも基づいて、タッチ入力が(たとえば、少なくとも判断された距離をドラッグする入力ではなく)スペースバーの選択であると特定する。いくつかの実装形態では、ユーザの指がホームキーに接していることに基づいて、システムは、タッチ入力がスペースバーの選択であると特定する。いくつかの実装形態では、システムは、ユーザの手のひらがパームレスト上にあることに基づいて、タッチ入力がスペースバーの選択であると特定する。
【0049】
いくつかの実装形態では、システムは、コンテキストの組合せに基づいて、タッチ入力がスペースバーの選択であると特定する。たとえば、コンテキストは、カーソルが、「jump」など完全または不完全な単語の終わりにあるであってもよい。この例では、システムは、ユーザの指がホームキーに接触していることに基づいて、および/またはユーザの手のひらがパームレスト上に位置していることに基づいて、タッチ入力がスペースバーの選択であると特定してもよい。いくつかの実装形態では、完全または不完全な単語の終わりにあるカーソルと組み合わせたタッチ入力の種類(たとえば、タップ、長押し、ドラ
ッグなど)は、タッチ入力がスペースバーの選択であるか、またはトラックパッドの選択であるかを判断するのに十分なデータではない場合がある。たとえば、各コンテキストは、対応するスコアに関連付けられていてもよく、様々なコンテキストについてのスコアの各々は、重み付けされてから合計され、結果として生じるスコアが閾値を超えるかどうかが判断されてもよい。この閾値では、入力は、スペースバーが表示されている領域の外の位置においてタッチ面に接触しても、スペースバー入力であると判断されることになる。
【0050】
いくつかの実装形態では、システムは、ホームキー上に位置しているユーザの指のサブセットに基づいてタッチ入力の特定を行ってもよい。たとえば、ユーザの8つの指のうち6つの指がホームキー上に位置している場合、システムは、ユーザの指が実質的にホームキー上にあると解釈してもよい。いくつかの実装形態では、6つのキーまたは別の数のキーは、特定のホームキーを含んでもよい。たとえば、左手の指は、「asdf」キー上にあり、右手の指のうち2本は、ユーザの指が効果的にホームキー上にあるとシステムが解釈するためのホームキー上にある。いくつかの実装形態では、いくつかの数のホームキーおよび/または特定のホームキーがユーザの好みで選択されてもよい。
【0051】
システムは、ディスプレイに出力するために、トラックパッド上のタッチ入力がスペースバーの選択であるとシステムが特定したことに基づいて、スペースバーの選択の表示を提供する(440)。たとえば、システムは、カーソルを進めてもよい。いくつかの実装形態では、タッチ入力は、長押しもしくはドラッグ、または、タッチ入力操作とは異なる操作を開始する別の種類のタッチ面ジェスチャであってもよい。この例では、システムは、タッチ面ジェスチャ操作を行わなくてもよい。
【0052】
いくつかの実装形態では、システムは、トラックパッド上のさらなるタッチ入力を受け付ける。システムは、単語の接頭語がカーソルの前にあることがシステムのコンテキストであると判断してもよい。この例では、システムは、スペースバーの閾値距離内のトラックパッドの選択はトラックパッドの選択であると判断してもよい。単語が不完全である場合ユーザがスペースバーを選択する可能性がないので、システムは、タッチ入力がトラックパッドの選択であると判断してもよい。
【0053】
図5は、本明細書に記載の技術を実施するために利用され得るコンピューティングデバイス500およびモバイルコンピューティングデバイス550の例を示す図である。コンピューティングデバイス500は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、およびその他適切なコンピュータなど、様々な形態のデジタルコンピュータを表すよう意図される。モバイルコンピューティングデバイス550は、携帯情報端末、携帯電話、スマートフォン、およびその他同様のコンピューティングデバイスなど、様々な形態のモバイル機器を表すよう意図される。本明細書に示す構成要素、それらの接続および関係、ならびにそれらの機能は、例示に過ぎず、限定ではない。
【0054】
コンピューティングデバイス500は、プロセッサ502と、メモリ504と、記憶装置506と、メモリ504と複数の高速拡張ポート510とをつなぐ高速インタフェース508と、低速拡張ポート514と記憶装置506とをつなぐ低速インタフェース512とを備える。プロセッサ502、メモリ504、記憶装置506、高速インタフェース508、高速拡張ポート510、および低速インタフェース512の各々は、様々なバスを用いて互いに接続されており、共通のマザーボード上に実装されてもよく、またはその他の方法で適宜実装されてもよい。プロセッサ502は、コンピューティングデバイス500内で実行するための命令を処理することができ、命令は、高速インタフェース508に連結されたディスプレイ51など、外付けの入出力装置上のGUIのためのグラフィック情報を表示するためのメモリ504に格納された命令または記憶装置506上に格納され
た命令を含む。その他の実装形態では、複数のプロセッサおよび/または複数のバスが複数のメモリおよび複数種類のメモリとともに適宜利用されてもよい。また、(たとえば、サーババンク、ブレードサーバ群、または多重プロセッサシステムなどとしての)必要な動作の一部を各々が提供する複数のコンピューティングデバイスが接続されてもよい。
【0055】
メモリ504は、コンピューティングデバイス500内の情報を格納する。いくつかの実装形態では、メモリ504は、1つまたは複数の揮発性記憶装置である。いくつかの実装形態では、メモリ504は、1つまたは複数の不揮発性記憶装置である。また、メモリ504は、磁気ディスクまたは光ディスクなど、別の形態のコンピュータ読み取り可能な媒体であってもよい。
【0056】
記憶装置506は、コンピューティングデバイス500用の大容量ストレージを提供することができる。いくつかの実装形態では、記憶装置506は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置、フラッシュメモリもしくは他の同様の固体メモリ装置、または、ストレージエリアネットワークもしくはその他の構成に含まれる装置を含む装置のアレイなど、コンピュータ読み取り可能な媒体であってもよく、または、当該コンピュータ読み取り可能な媒体を含んでもよい。命令が情報担体に格納され得る。この命令は、1つ以上の処理装置(たとえば、プロセッサ502)によって実行されると、上述した方法など、1つ以上の方法を実行する。また、命令は、コンピュータ読み取り可能な媒体または機械読み取り可能な媒体など(たとえば、メモリ504、記憶装置506、またはプロセッサ502上のメモリ)、1つ以上の記憶装置によって格納され得る。
【0057】
高速インタフェース508は、コンピューティングデバイス500用の多くの帯域幅を必要とする動作を管理し、低速インタフェース512は、より低い帯域幅の多くを必要とする動作を管理する。このような機能の割振りは、例示に過ぎない。いくつかの実装形態では、高速インタフェース508は、(たとえば、グラフィックスプロセッサまたはアクセラレータを通じて)メモリ504、ディスプレイ516に連結され、高速拡張ポート510に連結される。高速拡張ポート510は、様々な拡張カードを受け付けてもよい。この実装形態では、低速インタフェース512は、記憶装置506および低速拡張ポート514に連結される。様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、Ethernet(登録商標)、無線Ethernet)を含み得る低速拡張ポート514は、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入出力装置、または、スイッチもしくはルータなどのネットワーク装置に、たとえば、ネットワークアダプタを通じて連結されてもよい。
【0058】
コンピューティングデバイス500は、図示したような複数の異なる形態で実現されてもよい。たとえば、標準的なサーバ520として、または多くの場合、このようなサーバの群で実現されてもよい。これに加えて、ラップトップコンピュータ522など、パーソナルコンピュータで実現されてもよい。また、ラックサーバシステム524の一部として実現されてもよい。これに代えて、コンピューティングデバイス500の構成要素は、モバイルコンピューティングデバイス550など、モバイル機器に含まれるその他の構成要素と組み合わされてもよい。このようなデバイスの各々は、コンピューティングデバイス500およびモバイルコンピューティングデバイス550のうちの1つ以上を含んでよく、互いに通信を行う複数のコンピューティングデバイスによってシステム全体が構成されてもよい。
【0059】
モバイルコンピューティングデバイス550は、特に、プロセッサ552と、メモリ564と、ディスプレイ554などの入出力装置と、通信インタフェース566と、送受信装置568とを備える。モバイルコンピューティングデバイス550には、追加ストレー
ジを提供するためのマイクロドライブまたはその他の装置など、記憶装置が提供されてもよい。プロセッサ552、メモリ564、ディスプレイ554、通信インタフェース566、および送受信装置568の各々は、様々なバスを用いて互いに接続されており、当該構成要素のうちのいくつかは、共通のマザーボード上に実装されてもよく、またはその他の方法で適宜実装されてもよい。
【0060】
プロセッサ552は、メモリ564に格納された命令を含む命令をモバイルコンピューティングデバイス550内で実行できる。プロセッサ552は、別個の複数のアナログプロセッサおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサ552によって、たとえば、ユーザインタフェースの制御、モバイルコンピューティングデバイス550によって実行されるアプリケーション、およびモバイルコンピューティングデバイス550による無線通信など、モバイルコンピューティングデバイス550のその他の構成要素間の協調が可能になってもよい。
【0061】
プロセッサ552は、ディスプレイ554に連結された制御インタフェース558および表示インタフェース556を通じてユーザと通信してもよい。ディスプレイ554は、たとえば、TFT(Thin-Film-Transistor Liquid Crystal Display)ディスプレイもしくはOLED(Organic Light Emitting Diode)ディスプレイ、またはその他の適切なディスプレイ技術であってもよい。表示インタフェース556は、グラフィック情報およびその他の情報をユーザに提示するためにディスプレイ554を駆動するための適切な回路を備えてもよい。制御インタフェース558は、ユーザからコマンドを受け付け、プロセッサ552に実行を依頼するために変換してもよい。これに加えて、外部インタフェース562は、モバイルコンピューティングデバイス550がその他のデバイスと近距離通信可能になるよう、プロセッサ552との通信を提供してもよい。外部インタフェース562によって、たとえば、いくつかの実装形態では有線通信、その他の実装形態では無線通信が可能になってもよく、また、複数のインタフェースが利用されてもよい。
【0062】
メモリ564は、モバイルコンピューティングデバイス550内の情報を格納する。メモリ564は、1つまたは複数のコンピュータ読み取り可能な媒体、1つまたは複数の揮発性記憶装置、または、1つまたは複数の不揮発性記憶装置、のうちの1つ以上として実現され得る。また、拡張メモリ574が拡張インタフェース572を通してモバイルコンピューティングデバイス550に提供および接続されてもよい。拡張インタフェース572は、たとえば、SIMM(Single In Line Memory Module)カードインタフェースを含んでもよい。拡張メモリ574は、モバイルコンピューティングデバイス550のための追加の記憶空間を提供してもよく、または、モバイルコンピューティングデバイス550のためのアプリケーションまたはその他の情報も格納してもよい。具体的には、拡張メモリ574は、上述した処理を実行または補助するための命令を含んでもよく、セキュアな情報も含んでもよい。よって、たとえば、拡張メモリ574は、モバイルコンピューティングデバイス550のためのセキュリティモジュールとして提供されてもよく、モバイルコンピューティングデバイス550のセキュアな使用を可能にする命令がプログラムされていてもよい。これに加えて、セキュアなアプリケーションは、ハッキングできない方法でSIMMカード上にID情報を置くなど、追加情報とともにSIMMカードを介して提供されてもよい。
【0063】
メモリは、たとえば、後述するフラッシュメモリおよび/またはNVRAMメモリ(不揮発性RAM)を含んでもよい。いくつかの実装形態では、命令が情報担体に格納されている。当該命令は、1つ以上の処理装置(たとえば、プロセッサ552)によって実行されると、上述した方法など、1つ以上の方法を実行する。また、命令は、1つ以上のコンピュータ読み取り可能な媒体または機械読み取り可能な媒体(たとえば、メモリ564、
拡張メモリ574、またはプロセッサ552上のメモリ)など、1つ以上の記憶装置によって格納され得る。いくつかの実装形態では、命令は、たとえば、送受信装置568または外部インタフェース562を介して伝播信号で受信され得る。
【0064】
モバイルコンピューティングデバイス550は、通信インタフェース566を通して無線通信を行ってもよい。通信インタフェース566は、必要であれば、デジタル信号処理回路を備えてもよい。通信インタフェース566によって、特に、GSM(登録商標)音声通話(Global System for Mobile communications)、SMS(Short Message Service)、EMS(Enhanced Messaging Service)、or MMSメッセージング(Multimedia Messaging Service)、CDMA(Code Division Multiple Access)、TDMA(Time Division Multiple Access)、PDC(Personal Digital
Cellular)、WCDMA(登録商標)(Wideband Code Division Multiple Access)、CDMA2000、またはGPRS(General Packet Radio サービス)など、様々なモードまたはプロトコル下の通信を可能にし得る。このような通信は、たとえば、無線周波数を利用する送受信装置568によって生じてもよい。これに加えて、Bluetooth、WiFi、またはその他のこのような送受信装置を用いるなどして近距離通信が生じてもよい。これに加えて、追加のナビゲーション関連または位置関連の無線データをGPS(Global Positioning System)受信モジュール570がモバイルコンピューティングデバイス550に提供してもよい。追加のナビゲーション関連または位置関連の無線データは、モバイルコンピューティングデバイス550上で実行するアプリケーションによって適宜利用されてもよい。
【0065】
また、モバイルコンピューティングデバイス550は、オーディオコーデック560を用いて、音声による通信を行ってもよい。オーディオコーデック560は、ユーザからの音声情報を受信し、使用可能なデジタル情報に変換してもよい。同様に、オーディオコーデック560は、たとえば、モバイルコンピューティングデバイス550のハンドセットにおいて、スピーカを通してなど、ユーザのために音を生成してもよい。このような音は、音声電話通話からの音声を含んでもよく、録音音声(たとえば、音声メッセージ、音楽ファイルなど)を含んでもよく、モバイルコンピューティングデバイス550上で動作するアプリケーションによって生成された音も含んでもよい。
【0066】
モバイルコンピューティングデバイス550は、図示したような複数の異なる形態で実現されてもよい。たとえば、携帯電話580として実現されてもよい。また、スマートフォン582、携帯情報端末、または他の同様のモバイル機器の一部として実現されてもよい。
【0067】
本明細書において説明したシステムおよび技術のさまざまな実装形態は、デジタル電子回路、集積回路、専用に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合せで実現することができる。これらのさまざまな実装形態は、プログラム可能なシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムでの実装を含み得る。このシステムは、特定用途プロセッサまたは汎用プロセッサであり得る少なくとも1つのプログラム可能なプロセッサと、ストレージシステムと、少なくとも1つの入力装置と、少なくとも1つの出力装置とを備え、プロセッサは、データおよび命令を送受信するために、ストレージシステム、少なくとも1つ以上の入力装置、および少なくとも1つ以上の出力装置に連結される。
【0068】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラム可能なプロセッサ用の機械命令を含み、高レベルの手続き形言語および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ言語/機械言語で実現できる。本明細書において使用するとき、用語「機械読み取り可能な媒体」および「コンピュータ読み取り可能な媒体」は、機械読み取り可能な信号として機械命令を受け付ける機械読み取り可能な媒体を含むプログラム可能なプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラムプロダクト、装置、および/またはデバイス(たとえば、磁気ディスク、光学ディスク、メモリ、PLD(Programmable Logic Device))を指す。用語「機械読み取り可能な信号」は、プログラム可能なプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
【0069】
ユーザとのやり取りを可能にするために、本明細書に記載のシステムおよび技術は、ユーザに情報を表示するための表示装置(たとえば、ブラウン管(CRT)または液晶ディスプレイ(LCD)モニタ)と、ユーザがコンピュータに入力を行えるキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)とを備えたコンピュータ上に実装され得る。その他の種類のデバイスを使ってユーザとのやり取りを可能にすることもでき、たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であり得、ユーザからの入力は、音響入力、音声入力、触覚入力など、任意の形式で受け付けられ得る。
【0070】
本明細書に記載のシステムおよび技術は、(たとえば、データサーバとしての)バックエンド・コンポーネントを備えるコンピュータシステム、ミドルウェア・コンポーネント(たとえば、アプリケーションサーバ)を備えるコンピュータシステム、フロントエンド・コンポーネント(たとえば、本明細書に記載のシステムおよび技術の実装形態とユーザがやり取りできるグラフィカルユーザーインターフェースまたはウェブブラウザを有するクライアントコンピュータ)を備えるコンピュータシステム、または、このようなバックエンド・コンポーネント、ミドルウェア・コンポーネント、フロントエンド・コンポーネントの任意の組み合わせで実現され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によって互いに接続され得る。通信ネットワークとして、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネットなどが挙げられる。
【0071】
コンピュータシステムは、クライアントとサーバとを含み得る。クライアントおよびサーバは、一般に、互いから離れており、通常、通信ネットワークを通じてやり取りを行う。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し、クライアントとサーバとの関係を互いに有するコンピュータプログラムによって成り立つ。
【0072】
いくつかの実装形態の詳細を上述したが、その他の変更も可能である。たとえば、クライアントアプリケーションは、デリゲート(複数可)にアクセスするものとして説明したが、その他の実装形態では、当該デリゲート(複数可)は、1つ以上のサーバ上で実行されているアプリケーションなど、1つ以上のプロセッサによって実施されるその他のアプリケーションによって採用されてもよい。これに加えて、図に示した論理フローは、所望の結果を実現するために、順次または図示した特定の順序である必要はない。これに加えて、記載のフローにその他の動作が提供されてもよく、動作が排除されてもよく、記載のシステムにその他の構成要素が追加または削除されてもよい。したがって、他の実装形態が添付の特許請求の範囲に含まれる。