(57)【特許請求の範囲】
【請求項１】
言語を入力するための方法であって、
１つ以上のプロセッサと、メモリと、タッチディスプレイとを有する機器において、
前記タッチディスプレイ上のキーボードインタフェースを通じて一連の接触入力を検出することと、ここで前記一連の接触入力の１つの接触入力は前記キーボードインタフェースの第１の位置から第２の位置への接触移動を含み、
前記第１の位置から前記第２の位置への前記接触移動の距離に基づいて、前記１つの接触入力が前記キーボードインタフェースの第１のキーを選択することを意図した入力である確率と、前記１つの接触入力が前記キーボードインタフェースの第２のキーを選択することを意図した入力である確率とを求めることと、ここで、前記第１の位置から前記第２の位置への前記１つの接触移動の距離が増加するにしたがって、前記１つの接触入力が前記キーボードインタフェースの前記第１のキーを選択することを意図した入力である確率が減少するとともに、前記１つの接触入力が前記キーボードインタフェースの前記第２のキーを選択することを意図した入力である確率が増加し、
前記一連の接触入力に対応する複数の候補語を決定することと、
前記１つの接触入力が前記キーボードインタフェースの前記第１のキーを選択することを意図した入力である前記確率と、前記１つの接触入力が前記キーボードインタフェースの前記第２のキーを選択することを意図した入力である前記確率とに基づいて、前記複数の候補語をランク付けすることと、
前記複数の候補語の一部をユーザ選択のために表示することと、を含む方法。
【請求項２】
前記第１のキーが、ある言語の第１の記述記号に対応し、前記第２のキーが、前記言語の第２の記述記号に対応する、請求項１に記載の方法。
【請求項３】
前記複数の候補語が、第１の書記体系の単語と第２の書記体系の単語を含む、請求項１または請求項２に記載の方法。
【請求項４】
前記一連の接触入力に対応する可能性のある複数の文字列を決定することと、
ジオメトリモデルを用いて、前記一連の接触入力が与えられたときの前記複数の文字列の各文字列の確率を求めることと、をさらに有し、前記複数の候補語が、前記一連の接触入力が与えられたときの前記複数の文字列の各文字列の前記確率に基づいて、前記複数の文字列から決定される、請求項１から請求項３のいずれか１項に記載の方法。
【請求項５】
前記複数の候補語が、言語モデルの用語集に基づいて決定される、請求項１から請求項４のいずれか１項に記載の方法。
【請求項６】
前記１つの接触入力が前記キーボードインタフェースの前記第１のキーを選択することを意図した入力である前記確率が、前記第１の位置と前記第１のキーの中心位置との距離に基づいて求められ、
前記１つの接触入力が前記キーボードインタフェースの前記第２のキーを選択することを意図した入力である前記確率が、前記第１の位置と前記第２のキーの中心位置との距離に基づいて求められる、請求項１から請求項５のいずれか１項に記載の方法。
【請求項７】
前記一連の接触入力が与えられたときの各候補語の確率を求めることをさらに有し、前記複数の候補語をランク付けすることが、前記一連の接触入力が与えられたときの各候補語の前記確率に基づく、請求項４に記載の方法。
【請求項８】
前記一連の接触入力が与えられたときの前記複数の候補語の各候補語の前記確率は、前記一連の接触入力が与えられたときの前記複数の文字列のそれぞれの文字列の確率に基づいて求められる、請求項７に記載の方法。
【請求項９】
前記複数の文字列のうち、ある文字列が与えられたときの前記複数の候補語の各候補語の確率を求めることをさらに有し、前記一連の接触入力が与えられたときの前記複数の候補語の各候補語の前記確率が、前記複数の文字列のうち、ある文字列が与えられたときの前記複数の候補語の各候補語の前記確率に基づいて求められる、請求項７または請求項８に記載の方法。
【請求項１０】
前記複数の文字列のうち、ある文字列が与えられたときの前記複数の候補語の各候補語の前記確率は、１つ以上の言語モデルを用いて求められる、請求項９に記載の方法。
【請求項１１】
前記複数の候補語が、トライデータ構造を有する用語集を用いて決定される、請求項１から請求項１０のいずれか１項に記載の方法。
【請求項１２】
前記複数の候補語が、前記第１の位置と前記キーボードインタフェースの各キーの中心位置との距離に基づいてランク付けされる、請求項１から請求項１１のいずれか１項に記載の方法。
【請求項１３】
前記複数の候補語が、前記第１の位置から前記第２の位置への前記接触移動の速度に基づいてランク付けされる、請求項１から請求項１２のいずれか１項に記載の方法。
【請求項１４】
前記複数の候補語が、前記キーボードインタフェースの基準軸に対する前記接触移動の角度に基づいてランク付けされる、請求項１から請求項１３のいずれか１項に記載の方法。
【請求項１５】
前記キーボードインタフェースがテンキーかなキーボードインタフェースである、請求項１から請求項１４のいずれか１項に記載の方法。
【請求項１６】
命令を有するコンピュータプログラムであって、前記命令は１つ以上のプロセッサで実行された際に、前記１つ以上のプロセッサに、
タッチディスプレイ上のキーボードインタフェースを通じて一連の接触入力を検出し、ここで前記一連の接触入力の１つの接触入力は前記キーボードインタフェースの第１の位置から第２の位置への接触移動を含み、
前記第１の位置から前記第２の位置への前記接触移動の距離に基づいて、前記１つの接触入力が前記キーボードインタフェースの第１のキーを選択することを意図した入力である確率と、前記１つの接触入力が前記キーボードインタフェースの第２のキーを選択することを意図した入力である確率とを求め、ここで、前記第１の位置から前記第２の位置への前記１つの接触移動の距離が増加するにしたがって、前記１つの接触入力が前記キーボードインタフェースの前記第１のキーを選択することを意図した入力である確率が減少するとともに、前記１つの接触入力が前記キーボードインタフェースの前記第２のキーを選択することを意図した入力である確率が増加し、
前記一連の接触入力に対応する複数の候補語を決定し、
前記１つの接触入力が前記キーボードインタフェースの第１のキーを選択することを意図した入力である前記確率と、前記１つの接触入力が前記キーボードインタフェースの第２のキーを選択することを意図した入力である前記確率とに基づいて、前記複数の候補語をランク付けし、
前記複数の候補語の一部をユーザ選択のために表示する、
ようにさせるコンピュータプログラム。
【請求項１７】
システムであって、
１つ以上のプロセッサと、
コンピュータ読み取り可能な命令を格納するメモリとを有し、前記命令は、前記１つ以上のプロセッサで実行された際に、前記１つ以上のプロセッサに、
タッチディスプレイ上のキーボードインタフェースを通じて一連の接触入力を検出し、ここで前記一連の接触入力の１つの接触入力は前記キーボードインタフェースの第１の位置から第２の位置への接触移動を含み、
前記第１の位置から前記第２の位置への前記接触移動の距離に基づいて、前記１つの接触入力が前記キーボードインタフェースの第１のキーを選択することを意図した入力である確率と、前記１つの接触入力が前記キーボードインタフェースの第２のキーを選択することを意図した入力である確率とを求め、ここで、前記第１の位置から前記第２の位置への前記１つの接触移動の距離が増加するにしたがって、前記１つの接触入力が前記キーボードインタフェースの前記第１のキーを選択することを意図した入力である確率が減少するとともに、前記１つの接触入力が前記キーボードインタフェースの前記第２のキーを選択することを意図した入力である確率が増加し、
前記一連の接触入力に対応する複数の候補語を決定し、
前記１つの接触入力が前記キーボードインタフェースの第１のキーを選択することを意図した入力である前記確率と、前記１つの接触入力が前記キーボードインタフェースの第２のキーを選択することを意図した入力である前記確率とに基づいて、前記複数の候補語をランク付けし、
前記複数の候補語の一部をユーザ選択のために表示する、
ようにさせるシステム。
【請求項１８】
前記コンピュータ読み取り可能な命令がさらに、前記１つ以上のプロセッサに、
前記一連の接触入力に対応する可能性のある複数の文字列を決定し、
ジオメトリモデルを用いて、前記一連の接触入力が与えられたときの前記複数の文字列の各文字列の確率を求めるようにさせ、前記複数の候補語が、前記一連の接触入力が与えられたときの前記複数の文字列の各文字列の前記確率に基づいて、前記複数の文字列から決定される、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願との相互参照
本願は2015年6月5日出願の米国仮出願第62/171,911号「言語入力の修正」および、2015年9月3日出願の米国非仮出願第14/844,829号「言語入力の修正」の優先権を主張する。また、これら出願の全体をあらゆる目的のために参照によって本明細書に援用する。
【０００２】
本開示は概して言語入力に関し、より具体的には言語入力の修正のための技術に関する。
【背景技術】
【０００３】
ユーザがテキストや他のコンテンツ要素をワードプロセッサドキュメント、メッセージ、または電子メールなどのアプリケーションドキュメントに入力できるように、さまざまなキーボードインタフェースが提供されうる。例えば、タッチインタフェースを有するモバイル機器では、タッチディスプレイを通じてキーボードインタフェースが表示されうる。ユーザタッチ入力はユーザがどのキーの入力を意図していたのかを判定するために処理されることができ、意図されたキーに関連付けられた対応するキャラクタがテキストフィールドに表示されることができる。
【０００４】
モバイル機器におけるキーボードインタフェースの物理的な制限（例えばサイズ）により、ユーザからのタッチ入力はユーザが入力することを意図していなかったキーに対応するものと判定されうる。これはテキスト入力時に重大な不正確性および非効率性の原因となる。さらに、発音ベースの入力（例えば中国語のピンイン、日本語の平仮名など）から予測される候補テキスト（例えば漢字、日本語単語など）への変換に頼る言語に関して、テキスト入力の誤りは多くの無関係な候補の生成の原因となりうる。これはユーザエクスペリエンスおよび生産性を大幅に低下させうる。
【発明の概要】
【０００５】
言語入力修正のためのシステムおよび方法が提供される。方法の一例において、タッチディスプレイ上のキーボードインタフェースを通じて一連の接触入力を検出することができる。一連の接触入力の１つの接触入力は、キーボードインタフェースの第１の位置から第２の位置への接触移動を含むことができる。一連の接触入力に対応する複数の候補語を決定することができる。接触入力がキーボードインタフェースの第１のキーの選択を意図した入力である確率と、接触入力がキーボードインタフェースの第２のキーの選択を意図した入力である確率とに基づいて、複数の候補語をランク付けすることができる。ユーザ選択のために複数の候補語の一部を表示することができる。
【０００６】
記述されるさまざまな実施形態をよりよく理解するためには、以下の発明を実施するための形態の欄を、全図を通じて同様の部分を同様の参照数字で示す以下の図面とともに参照すべきである。
【図面の簡単な説明】
【０００７】
【図１Ａ】一部の実施形態に係るタッチディスプレイを備える携帯型多機能機器を示すブロック図である。
【図１Ｂ】一部の実施形態に係るイベントハンドリングのための例示的な構成要素を示すブロック図である。
【図２】一部の実施形態に係るタッチスクリーンを有する携帯型多機能機器を示す図である。
【図３】一部の実施形態に係るディスプレイおよび接触感知面を備える例示的な携帯型多機能機器を示すブロック図である。
【図４Ａ】一部の実施形態に係る携帯型多機能機器のアプリケーションのメニューのための例示的なユーザインタフェースを示す図である。
【図４Ｂ】一部の実施形態に係るディスプレイとは別に接触感知面を備える携帯型多機能機器のための例示的なユーザインタフェースを示す図である。
【図５Ａ】一部の実施形態に係るパーソナル電子機器を示す図である。
【図５Ｂ】一部の実施形態に係るパーソナル電子機器を示すブロック図である。
【図６Ａ】一部の実施形態に係る縮小キーボードインタフェースを示す電子機器のスクリーンショットの図である。
【図６Ｂ】一部の実施形態に係る縮小キーボードインタフェースを示す電子機器のスクリーンショットの図である。
【図６Ｃ】一部の実施形態に係る縮小キーボードインタフェースを示す電子機器のスクリーンショットの図である。
【図７】一部の実施形態に係る言語入力修正のための例示的な方法を示すフロー図である。
【図８Ａ】一部の実施形態に係る言語入力修正のための例示的な方法のさまざまな段階を示す電子機器のスクリーンショットの図である。
【図８Ｂ】一部の実施形態に係る言語入力修正のための例示的な方法のさまざまな段階を示す電子機器のスクリーンショットの図である。
【図８Ｃ】一部の実施形態に係る言語入力修正のための例示的な方法のさまざまな段階を示す電子機器のスクリーンショットの図である。
【図８Ｄ】一部の実施形態に係る言語入力修正のための例示的な方法のさまざまな段階を示す電子機器のスクリーンショットの図である。
【図９】一部の実施形態に係る例示的な電子機器を示す機能ブロック図である。
【発明を実施するための形態】
【０００８】
以下の記述は例示的な方法、パラメータなどを説明する。しかしながら、そのような記述は本開示の範囲の限定として意図されたものではなく、例示的な説明として提供されているものと理解されねばならない。
【０００９】
本開示は概して言語入力の修正のためのシステムおよび方法に関する。例示的な方法において、キーボードインタフェースを通じて一連の接触入力を検出することができる。一連の接触入力のある接触入力は、キーボードインタフェース上の第１の位置から第２の位置への接触移動を含むことができる。一連の接触入力に対応する複数の候補語を決定することができる。接触入力がキーボードインタフェースの第１のキーの選択を意図した入力である確率と、接触入力がキーボードインタフェースの第２のキーの選択を意図した入力である確率とに基づいて、複数の候補語をランク付けすることができる。複数の候補語の一部をユーザ選択のために表示することができる。キーボードの２つ以上のキーを接触入力の意図された入力として考慮することで、方法はユーザの意図をより正確に反映した候補語を決定並びに表示することができる。さらに、方法は、意図された可能性のある他のキーを考慮することにより、意図されていない接触入力（例えば誤記）を修正することができ、それによって表示される候補語の関連性を高めることができる。これはテキストを入力するための正確性および生産性を向上させることができる。
【００１０】
以下の記述ではさまざまな要素を表現するために「第１」「第２」などの用語を用いるが、これらの用語によって要素が限定されてはならない。これらの用語は単に要素を区別するために用いられているにすぎない。例えば、記述されるさまざまな実施形態の範囲内で、第１のタッチを第２のタッチと称してもよいであろうし、同様に、第２のタッチを第１のタッチと称してもよいであろう。第１のタッチおよび第２のタッチはいずれもタッチであるが、同一のタッチではない。
【００１１】
ここで記述されるさまざまな実施形態の説明に用いられる専門用語は、特定の実施形態を説明することだけを目的としたものであって、限定することは意図されていない。説明されるさまざまな実施形態および添付される特許請求の範囲の技術に用いられる単数形の表現は、文脈がそうでないことを明らかに示していない限り複数形も含むことが意図されている。また、ここで用いられる「および／または」という用語は、列挙された項目のいずれかおよび１つ以上の可能性のある組み合わせの全てに言及しかつ包含すると解される。さらに、用語「含む」「備える」および／または「有する」が本明細書において用いられる場合、記述されている機能、整数(integer)、ステップ、動作、要素、および／または部品の存在を規定するが、他の機能、整数、ステップ、動作、要素、部品の１つ以上、および／またはそれらのグループの存在または追加を排除するものではない。
【００１２】
もし〜であればという記載は、文脈に応じて「〜である場合」「〜すると」「〜との判定に応じて」「〜との検出に応じて」のいずれかを意味するものと解することができる。同様に、「〜と判定されれば」や「（記述された条件またはイベント）が検出されれば」という句は、文脈に応じて「〜と判定されるとすぐに」「〜という判定に応じて」「（記述された条件またはイベント）が検出されるとすぐに」「（記述された条件またはイベント）の検出に応じて」のいずれかと解することができる。
【００１３】
電子機器、そのような機器のためのユーザインタフェース、およびそのような機器を用いるための関連する方法の実施形態を説明する。一部の実施形態において、機器はＰＤＡおよび／またはミュージックプレーヤ機能のような他の機能をも有する、携帯電話機のようなポータブル通信機器である。携帯多機能機器の具体例には、カリフォルニア州クパチーノのアップル社によるiPhone（登録商標）iPod Touch（登録商標）、およびiPad（登録商標）デバイスが含まれるが、これらに限定されない。接触検知面（例えばタッチディスプレイおよび／またはタッチパッド）を有するラップトップまたはタブレットコンピュータのような、他の携帯電子機器が必要に応じて用いられる。一部の実施形態において、機器は携帯通信機器でなく、接触検知面（例えばタッチディスプレイおよび／またはタッチパッド）を有するデスクトップコンピュータである。
【００１４】
以下の検討では、ディスプレイおよび接触検知面を含んだ電子機器が説明される。しかしながら、電子機器は必要に応じて、物理的なキーボード、マウス、および／またはジョイスティックのような１つ以上の他の物理的なユーザインタフェース機器を含む。
【００１５】
機器は、以下の１つ以上のようなさまざまなアプリケーションをサポートすることができる。ドローイングアプリケーション、プレゼンテーションアプリケーション、言語処理アプリケーション、ウェブサイト生成アプリケーション、ディスクオーサリングアプリケーション、表計算アプリケーション、ゲームアプリケーション、電話アプリケーション、テレビ会議アプリケーション、電子メールアプリケーション、インスタントメッセージアプリケーション、ワークアウト支援アプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブ閲覧アプリケーション、デジタル音楽プレーヤアプリケーション、および／またはデジタルビデオプレーヤアプリケーション。
【００１６】
機器で実行されるさまざまなアプリケーションは接触検知面のような一般的な物理的ユーザインタフェース機器を必要に応じて少なくとも１つ用いる。接触検知面の１つ以上の機能、ならびに機能に対応して機器に表示される情報は、必要に応じて、アプリケーションごとに、および／または１つのアプリケーション内で調整および／または変更される。このように、（接触検知面のような）機器の一般的な物理アーキテクチャはユーザに直感的ならびに透過的なユーザインタフェースによって、さまざまなアプリケーションを必要に応じて支援する。
【００１７】
１．言語入力の修正を実行するための例示的な機器
次に、接触検知面を有する携帯機器の実施形態に注目する。図１Ａは一部の実施形態に係るタッチディスプレイシステム１１２を有する携帯型多機能機器１００を示すブロック図である。タッチディスプレイ１１２は便宜上「タッチスクリーン」と呼ばれることもあり、「タッチディスプレイシステム」として知られまたは呼ばれることもある。機器１００はメモリ１０２（必要に応じて１つ以上のコンピュータ読み取り可能な記憶媒体を含む）と、メモリコントローラ１２２と、１つ以上の処理ユニット（ＣＰＵ）１２０と、周辺機器インタフェース１１８と、ＲＦ回路１０８と、音声回路１１０と、スピーカ１１１と、マイク１１３と、入力／出力（Ｉ／Ｏ）サブシステム１０６と、他の入力制御機器１１６と、外部ポート１２４とを含んでいる。機器１００は必要に応じて１つ以上の光学センサ１６４を含む。機器１００は機器１００上の接触強度を検出するための１つ以上の接触強度センサ１６５（例えば機器１００のタッチディスプレイシステム１１２のような接触検知面）を含む。機器１００は、機器１００上に感触出力を生成する（例えば機器１００のタッチディスプレイシステム１１２または機器３００のタッチパッド３５５のような接触検知面上に感触出力を生成する）ための触覚出力生成器１６７を必要に応じて１つ以上含む。これらの構成要素は必要に応じて１つ以上の通信バスまたは信号線１０３を通じて通信する。
【００１８】
本明細書および特許請求の範囲において使用される場合、接触検知面上の接触の「強度(intensity)」は、接触検知面上の接触（例えば指の接触）の力または圧（単位広さあたりの力）、あるいは接触検知面上の接触の力または圧の代わりになるもの（代用物）を意味する。接触強度は少なくとも４つの個別値を、より典型的には数百（例えば少なくとも２５６）の個別値を含む値の範囲を有する。接触強度はさまざまな手法およびさまざまなセンサまたはセンサの組み合わせを用いて必要に応じて決定（または測定）される。例えば、接触検知面の下または近傍の１つ以上の力センサが、接触検知面上のさまざまな点における力を測定するために必要に応じて用いられる。一部の実装では、推定接触力を求めるために、複数の力センサからの力測定結果が合成される（例えば重みづけ平均される）。同様に、接触検知面上のスタイラスの力を求めるために、スタイラスの接触検知端が必要に応じて用いられる。あるいは、接触検知面上で検出された接触エリアの大きさおよび／またはその変化、接触の近くの接触検知面のキャパシタンスおよび／またはその変化、および／または接触の近くの接触検知面の抵抗および／またはその変化が、必要に応じて接触検知面上の接触の力または圧の代替物として用いられる。一部の実装では、接触力または圧に関する代替測定値が、強度閾値を超えているかどうかを直接判定するために用いられる（例えば、強度閾値は代替測定値に対応する単位で記述される）。一部の実装では、接触力または圧に関する代替測定値は、推定力または圧に変換され、強度閾値を超えたか否かの判定のために推定力または圧が用いられる（例えば強度閾値は圧力単位で測定された圧力閾値である）。接触の強度をユーザ入力の属性として用いることにより、（例えばタッチディスプレイ上に）アフォーダンスを表示するための、および／または（例えばタッチディスプレイ、接触検知面、またはノブやボタンといった物理的／機械的コントロールを通じて）ユーザ入力を受信するための面積(real estate)に限りのある小型機器において、そうしない場合にはユーザがアクセスできないであろう更なる機器の機能にユーザがアクセスすることが可能になる。
【００１９】
明細書および特許請求の範囲において用いられる場合、用語「触覚出力(tactile output)」は、ユーザの触覚によってユーザが検知するであろう、機器の過去の位置に対する該機器の物理的な変位、機器の構成要素（例えば接触検知面）の、該機器の他の構成要素（例えば筐体）に対する物理的変位、または、機器の重心に対する構成要素の変位を意味する。例えば、機器または機器の構成要素が、接触を感じるユーザの表面（例えば指、手のひら、またはユーザの手の他の部分）と接している状況において、物理的変位によって生成される触覚出力は、その機器または機器の構成要素の物理特性の知覚される変化に対応する触感覚(tactile sansation)としてユーザに解釈されるであろう。例えば、接触検知面（例えばタッチディスプレイまたはトラックパッド）の動きは、場合により物理的なアクチュエータボタンの「ダウンクリック」または「アップクリック」としてユーザに解釈される。ユーザの動きによって物理的に押圧される（例えば変位させられる）接触検知面に付随する物理的なアクチュエータボタンが移動していない場合でさえ、ユーザは「ダウンクリック」または「アップクリック」のような触感覚を感じることもある。別の例として、接触検知面の滑らかさに変化がない場合でさえ、接触検知面の動きが接触検知面の「ざらつき(roughness)」とユーザに解釈されまたは感じられることもある。ユーザによる触覚のそのような解釈は、ユーザ個々の知覚に影響を受けるが、大半のユーザに共通な接触の知覚が多く存在するであろう。従って、触覚出力がユーザの特定の知覚（例えば「アップクリック」、「ダウンクリック」、「ざらつき」）に対応するものとして記述される場合、そうで無いことが明記されていない限り、生成される触覚出力は、典型的な（または平均的な）ユーザにとって記述される知覚を生成するであろう機器または機器の構成要素の物理的な変位に対応する。
【００２０】
機器１００は携帯型多機能機器の単なる一例であること、また機器１００は図示したよりも多くの又は少ない構成要素を有したり、２つ以上の構成要素が組み合わされたり、構成要素の構成や配置が異なったりする場合もあることを理解すべきである。図１Ａに示される様々な構成要素は、１つ以上の信号処理集積回路および／または特定用途向け集積回路を含む、ハードウェアによって、ソフトウェアによって、またはハードウェアおよびソフトウェアの両方の組み合わせによって実施される。
【００２１】
メモリ１０２は１つ以上のコンピュータ読み取り可能な記憶媒体を含みうる。コンピュータ読み取り可能な記憶媒体は、有形かつ恒久的なものであってよい。コンピュータ読み取り可能な記憶媒体は、以下に記述する手順７００を実行するための命令を格納してもよい。メモリ１０２は高速ランダムアクセスメモリを含んでよく、またさらに、磁気記憶デバイス、フラッシュメモリデバイス、または他の不揮発性半導体メモリデバイスの１つ以上のような不揮発性メモリを含んでもよい。メモリコントローラ１２２は機器１００の他の構成要素によるメモリ１０２のアクセスを制御することができる。
【００２２】
周辺機器インタフェース１１８は機器の入出力周辺機器をＣＰＵ１２０およびメモリ１０２に接続するために用いることができる。１つ以上のプロセッサ１２０は機器１００のための様々な機能を実行したりデータを処理したりするために、メモリ１０２に格納された様々なソフトウェアプログラムおよび／または命令セットを稼働または実行する。一部の実施形態において、周辺機器インタフェース１１８、ＣＰＵ１２０、およびメモリコントローラ１２２はチップ１０４のような単一のチップに実装されてもよい。一部の実施形態ではそれらは個別のチップに実装されてもよい。
【００２３】
ＲＦ（無線周波数）回路１０８は、電磁信号とも呼ばれるＲＦ信号を送信および受信する。ＲＦ回路１０８は電気信号と電磁信号とを相互に変換し、通信ネットワークおよび他の通信機器と電磁信号によって通信する。ＲＦ回路１０８はこれらの機能を実行するために、アンテナシステム、ＲＦ送受信機、１つ以上の増幅器、チューナ、１つ以上の発振器、デジタル信号プロセッサ、コーデックチップセット、加入者識別モジュール（ＳＩＭ）カード、メモリなどを非限定的に含む周知の回路を必要に応じて有する。ＲＦ回路１０８は、ワールドワイドウェブ（ＷＷＷ）とも呼ばれるインターネット、イントラネット、および／または、セルラネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）および／またはメトロポリタンエリアネットワーク（ＭＡＮ）のような無線ネットワーク、および他の機器と、無線通信によって必要に応じて通信する。ＲＦ回路１０８は、近距離通信無線機などによる近接通信（ＮＦＣ）フィールドを検出するために、周知の回路を必要に応じて含む。無線通信は、以下のものを非限定的に含む複数の通信規格、プロトコル、および技術のいずれかを必要に応じて用いる。ＧＳＭ(Global System for Mobile Communications、登録商標)、ＥＤＧＥ(Enhanced Data GSM Environment、ＨＳＤＰＡ(high−speed downlink packet access、ＨＳＵＰＡ(high−speed uplink packet access), ＥＶ−ＤＯ(Evolution, Data−Only)、 ＨＳＰＡ、ＨＳＰＡ＋、ＤＣ−ＨＳＰＤＡ(Dual−Cell HSPA)、ＬＴＥ(long term evolution)、ＮＦＣ(near field communication)、Ｗ−ＣＤＭＡ(wideband code division multiple access)、ＣＤＭＡ(code division multiple access)、ＴＤＭＡ(time division multiple access)、ブルートゥース（Bluetooth、登録商標）、ＢＴＬＥ(Bluetooth Low Energy)、Ｗｉ−Ｆｉ(Wireless Fidelity)（例えばIEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, および／またはIEEE 802.11ac）、ＶｏＩＰ(voice over Internet Protocol)、Ｗｉ−ＭＡＸ、電子メール用プロトコル（例えばＩＭＡＰ(Internet message access protocol)および／またはＰＯＰ(post office protocol)、インスタントメッセージング（例えば ＸＭＰＰ(extensible messaging and presence protocol)、ＳＩＭＰＬＥ(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions)、ＩＭＰＳ(Instant Messaging and Presence Service)、および／またはＳＭＳ(Short Message Service)、または、本文書の提出時において未開発の通信プロトコルを含む、他の任意の好適な通信プロトコル。
【００２４】
音声回路１１０、スピーカ１１１、およびマイク１１３はユーザおよび機器１００との間の音声インタフェースを提供する。音声回路１１０は周辺機器インタフェース１１８から音声データを受信し、音声データを電気信号に変換し、電気信号をスピーカ１１１に送信する。スピーカ１１１は電気信号を人間が聞き取ることのできる音波に変換する。音声回路１１０はさらに、音波からマイクによって変換された電気信号を受信する。音声回路１１０は電気信号を音声データに変換し、処理のために音声データを周辺機器インタフェース１１８に送信する。音声データは周辺機器インタフェース１１８により、メモリ１０２および／またはＲＦ回路１０８から読み出されたり、および／またはメモリ１０２および／またはＲＦ回路１０８に送信されたりしてよい。一部の実施形態において、音声回路１１０はヘッドセットジャック（例えば図２の２１２）をさらに含む。ヘッドセットジャックは音声回路１１０と、出力専用のヘッドホンや、出力（例えば片耳または両耳用のヘッドホン）および入力（例えばマイク）の両方を有するヘッドセットのような、着脱可能な音声入力／出力周辺機器とのインタフェースを提供する。
【００２５】
Ｉ／Ｏサブシステム１０６は、タッチスクリーン１１２および他の入力制御機器１１６のような機器１００上の入力／出力周辺機器を、周辺機器インタフェース１１８に接続する。Ｉ／Ｏサブシステム１０６は、他の入力または制御機器のために、ディスプレイコントローラ１５６、光学センサコントローラ１５８、強度センサコントローラ１５９、触感フィードバックコントローラ１６１、および１つ以上の入力コントローラ１６０を必要に応じて有する。１つ以上の入力コントローラ１６０は他の入力制御機器１１６から電気信号を受信したり、他の入力制御機器１１６へ電気信号を送信したりする。他の入力制御機器１１６は必要に応じて物理的なボタン（例えばプッシュボタン、ロッカーボタンなど）、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを有する。一部の実施形態において、１つ以上の入力コントローラ１６０は必要に応じて以下のいずれかに接続されるか、いずれにも接続されない：キーボード、赤外線ポート、ＵＳＢポート、およびマウスのようなポインティングデバイス。１つ以上のボタン（例えば図２の２０８）は、必要に応じてスピーカ１１１および／またはマイク１１３の音量制御のためのアップ／ダウンボタンを有する。１つ以上のボタンはプッシュボタン（例えば図２の２０６）を必要に応じて含む。
【００２６】
プッシュボタンの素早い押圧は、参照によりその全体を本文書に援用する２００５年１２月２３日出願の米国特許出願第11/322,549号（米国特許第7,657,849号）「ロック解除画像上でジェスチャをすることによる機器のロック解除」に記載されているように、タッチスクリーン１１２のロックを解除させたり、機器のロックを解除するためにタッチスクリーン上のジェスチャを用いる手順を開始させたりしてもよい。プッシュボタン（例えば２０６）のより長い押圧は機器１００の電源をオンまたはオフさせてよい。ユーザは複数のボタンの１つ以上の機能をカスタマイズすることができてよい。タッチスクリーン１１２は仮想またはソフトボタンおよび１つ以上のソフトキーボードを実施するために用いられる。
【００２７】
タッチディスプレイ１１２は機器とユーザとの間の入力インタフェースおよび出力インタフェースを提供する。ディスプレイコントローラ１５６はタッチスクリーン１１２との間で電気信号を送受信する。タッチスクリーン１１２はユーザに視覚的な出力を表示する。視覚的な出力は、グラフィックス、テキスト、アイコン、ビデオ、およびそれらの任意の組み合わせ（これらを「グラフィックス」と総称する）を含んでよい。一部の実施形態において、視覚的な出力の一部または全部はユーザインタフェースオブジェクトに対応してよい。
【００２８】
タッチスクリーン１１２は、触感および／または触覚接触に基づいてユーザから入力を受け付ける接触検知面、センサ、またはセンサ群を有する。タッチスクリーン１１２およびディスプレイコントローラ１５６は（メモリ１０２内の関連モジュールおよび／または命令群とともに）タッチスクリーン１１２上の接触（および任意の動きまたは接触の中止）を検出し、検出された接触を、タッチスクリーン１１２に表示されているユーザインタフェースオブジェクト（例えば１つ以上のソフトキー、アイコン、ウェブページ、または画像）との相互作用(interaction)に変換する。ある例示的な実施形態において、タッチスクリーン１１２とユーザとの接触点は、ユーザの指に対応する。
【００２９】
タッチスクリーン１１２はＬＣＤ（液晶ディスプレイ）技術、ＬＰＤ（発光ポリマーディスプレイ）技術、またはＬＥＤ（発光ダイオード）技術を用いることができるが、他の実施形態では他のディスプレイ技術が用いられてもよい。タッチスクリーン１１２およびディスプレイコントローラ１５６は接触および接触の移動または解除を、既知の、またはこれから開発される（例えば容量、抵抗、赤外線式、および表面弾性波技術を含む）複数の接触検知技術のいずれかと、タッチスクリーン１１２との１つ以上の接点を求めるための他の近接センサアレイまたは他の素子を用いて検出することができる。ある例示的な実施形態においては、カリフォルニア州クパチーノのアップル社のiPhone（登録商標）およびiPod Touch（登録商標）に見られるような相互容量検知技術が用いられる。
【００３０】
タッチスクリーン１１２の一部の実施形態であるタッチディスプレイは、それぞれがその全体を参照によって本文書に援用される、Westermanらに与えられた米国特許第6,323,846号、Westermanらに与えられた米国特許第6,570,557号、Westermanに与えられた米国特許第6,677,932号、および米国特許出願公開第2002/0015024A1の１つ以上に記載されているようなマルチタッチ検知タッチパッドの類似物であってよい。しかしながら、タッチスクリーン１１２は機器１００からの視覚出力を表示するが、接触検知タッチパッドは視覚出力を提供しない。
【００３１】
タッチスクリーン１１２の一部の実施形態におけるタッチディスプレイは以下の出願に記載されるようなものであってよい。(1) 2006年5月2日出願の米国特許出願第11/381,313号、「多点接触面コントローラ」、 (2)2004年5月6日出願の米国特許出願第10/840,862号、「多点タッチスクリーン」、(3) 2004年7月30日出願の米国特許出願第10/903,964号、「接触検知入力デバイスのためのジェスチャ」、(4) 2005年1月31日出願の米国特許出願第11/048,264号、「接触検知入力デバイスのためのジェスチャ」、(5) 2005年1月18日出願の米国特許出願第11/038,590号、「接触検知入力デバイスのためのモードベースのグラフィカルユーザインタフェース」、(6)2005年9月16日出願の米国特許出願第11/228,758号、「タッチスクリーンユーザインタフェース上の仮想入力デバイス配置」、(7) 2005年9月16日出願の米国特許出願第11/228,700号、「タッチスクリーンインタフェースを用いたコンピュータの操作」、(8) 2005年9月16日出願の米国特許出願第11/228,737号、「タッチスクリーン仮想キーボードの仮想キーの有効化」、および(9)2006年3月3日出願の米国特許出願第11/367,749号、「多機能ハンドヘルド機器」。これら全出願の内容の全てを、参照によって本文書に援用する。
【００３２】
タッチスクリーン１１２は１００ｄｐｉを超える映像解像度を有してよい。一部の実施形態において、タッチスクリーンは約１６０ｄｐｉの映像解像度を有する。ユーザは、スタイラス、指などといった適切な物体または付加物のいずれかを用いてタッチスクリーン１１２に接触することができる。一部の実施形態において、ユーザインタフェースは主に指ベースの接触およびジェスチャを用いて機能するように設計されており、指によるタッチスクリーン上の接触はより大きいため、スタイラスベースの入力よりも精度が低くてもよい。一部の実施形態において、機器は粗い指ベースの入力を正確なポインタ／カーソル位置またはユーザが求める動作を実行するためのコマンドに変換する。
【００３３】
一部の実施形態において機器１００は、タッチスクリーンに加え、特定の機能を有効化または無効化するためのタッチパッド（不図示）を含んでもよい。一部の実施形態において、タッチパッドは機器の、タッチスクリーンとは異なり視覚出力を表示しない接触検知エリアである。タッチパッドはタッチスクリーン１１２とは別個であってもよいし、タッチスクリーンによって形成される接触検知面の延長部分であってもよい。
【００３４】
機器１００はまた、様々な構成要素に電源を供給するための電源システム１６２を有する。電源システム１６２は電力計測システム、１つ以上の電源（例えば電池、交流電源(AC)）、充電システム、電源故障検出回路、電力コンバータまたはインバータ、電源ステータスインジケータ（例えば発光ダイオード(LED)）および、携帯型機器内の電力生成、管理および分配に関する他の任意の構成要素を有してよい。
【００３５】
機器１００はまた、１つ以上の光学センサ１６４を有してよい。図１ＡはＩ／Ｏサブシステム１０６内の光学センサコントローラ１５８に接続される光学センサを示している。光学センサ１６４は電荷結合デバイス(CCD)または相補型金属酸化物半導体(CMOS)フォトトランジスタを含んでよい。光学センサ１６４は１つ以上のレンズを通して環境光を受光し、受光した光を画像を表すデータに変換する。画像形成モジュール（カメラモジュールとも呼ばれる）１４３とともに、光センサ１６４は静止画または動画(video)を撮影することができる。一部の実施形態において光学センサは、静止画および／または動画撮影のためのビューファインダとしてタッチスクリーンディスプレイが用いられてよいように、機器１００の正面に配置されたタッチスクリーン１１２と反対側の、機器の背面に配置される。一部の実施形態において光学センサは、ユーザがテレビ会議の他の参加者をタッチスクリーンディスプレイで見ている状態でユーザのテレビ会議用の画像を取得できるように、機器の正面に配置される。一部の実施形態では、１つの光学センサ１６４をタッチスクリーンディスプレイとともに、テレビ会議と、静止画および／または動画撮影との両方のために用いることができるように、光学センサ１６４の位置はユーザによって（例えば機機筐体内のレンズおよびセンサを回転させることにより）変更可能である。
【００３６】
機器１００は必要に応じて１つ以上の接触強度センサ１６５を有してもよい。図１ＡはＩ／Ｏサブシステム１０６内の強度センサコントローラ１５９に接続される接触強度センサを示している。接触強度センサ１６５は、圧電歪みゲージ、容量型力覚センサ、電気型力覚センサ、圧電型力覚センサ、光学型力覚センサ、容量型接触検知面、または他の強度センサ（例えば接触検知面上の接触力（または接触圧）を計測するために用いられるセンサ）の１つ以上を必要に応じて含む。接触強度センサ１６５は接触強度情報（例えば圧力情報または圧力情報の代用物(proxy)）を環境(environment)から受け取る。一部の実施形態において、接触検知面（例えばタッチディスプレイシステム１１２）と一緒に、あるいは近接して、少なくとも１つの接触強度センサが配置される。一部の実施形態において、機器１００の正面に配置されるタッチスクリーンディスプレイ１１２と逆側の、機器１００の背面に、少なくとも１つの接触強度センサが配置される。
【００３７】
機器１００は１つ以上の近接センサ１６６をさらに含んでもよい。図１Ａは周辺機器インタフェース１１８に接続される近接センサ１６６を示している。あるいは、近接センサ１６６はＩ／Ｏサブシステム１０６内の入力コントローラ１６０に接続されてもよい。近接センサ１６６は、参照によってその内容の全てを本文書に援用する、米国特許出願第11/241,839号、「ハンドヘルド機器における近接検出器」、第11/240,788号、「ハンドヘルド機器における近接検出器」、第11/620,702号、「近接センサ出力を補うための環境光センサ利用」、第11/586,862号、「携帯型機器におけるユーザアクティビティに対する自動応答ならびに検知」および、第11/638,251号、「周辺機器の自動設定のための方法およびシステム」に記載されるように動作することができる。一部の実施形態において近接センサは、多機能機器がユーザの耳の近くに置かれている場合（例えばユーザが通話中の場合）、タッチスクリーン１１２をオフするとともに無効化する。
【００３８】
機器１００は必要に応じて１つ以上の触覚出力生成器１６７をさらに含む。図１ＡはＩ／Ｏサブシステム１０６内の触覚フィードバックコントローラ１６１に接続される触覚出力生成器を示している。触覚出力生成器１６７は、スピーカや他のオーディオ部品のような電気音響機器、および／またはモータ、ソレノイド、電気活性高分子、圧電アクチュエータ、静電アクチュエータのようなエネルギーを線形運動に変換する電気機械デバイス、または他の触覚出力生成部品（例えば電気信号を機器上の触覚出力に変換する部品）の１つ以上を必要に応じて含む。接触強度センサ１６５は触感フィードバックモジュール１３３から触感フィードバック生成指示を受信し、機器１００のユーザが感じることのできる機器１００上の触覚出力を生成する。一部の実施形態において、接触検知面（例えばタッチディスプレイシステム１１２）と一緒に、あるいは近接して、少なくとも１つの触覚出力生成器が配置され、必要に応じて接触検知面を垂直に（例えば機機１００の表面の内側／外側に）もしくは側方に（例えば機機１００の表面と同一平面内で行ったり来たり）移動させて、触覚出力を生成する。一部の実施形態において、機器１００の正面に配置されるタッチスクリーンディスプレイ１１２と逆側の、機器１００の背面に、少なくとも１つの触覚出力生成器が配置される。
【００３９】
機器１００は１つ以上の加速度計１６８をさらに含んでもよい。図１Ａは周辺機器インタフェース１１８に接続される加速度計１６８を示している。あるいは、加速度計１６８はＩ／Ｏサブシステム１０６内の入力コントローラ１６０に接続されてもよい。加速度計１６８は、その内容全てを参照によって本文書に援用する、米国特許出願公開第20050190059号、「携帯型電子機器のための加速度に基づく盗難検出システム」、および米国特許出願公開第20060017692号、「加速度計に基づいて携帯型機器を動作させる方法および装置」に記載されるように動作してよい。一部の実施形態において、情報は、１つ以上の加速度計から受信したデータの解析に基づいて、縦方向または横方向にタッチスクリーンディスプレイに表示される。機器１００は１つ以上の加速度計１６８に加え、機器１００の位置および向き（例えば縦方向または横方向）に関する情報を取得するための磁気計（不図示）およびＧＰＳ（またはGLONASSまたは他の全地球ナビゲーションシステム）受信器（不図示）を必要に応じて含む。
【００４０】
一部の実施形態において、メモリ１０２に格納されるソフトウェア部品はオペレーティングシステム１２６、通信モジュール（または命令セット）１２８、接触／動きモジュール（または命令セット）１３０、グラフィックスモジュール（または命令セット）１３２、テキスト入力モジュール（または命令セット）１３４、ＧＰＳ(Global Positioning System)モジュール（または命令セット）１３５、およびアプリケーション（または命令セット）１３６を含む。さらに、一部の実施形態において、メモリ１０２（図１Ａ）または３７０（図３）は、図１Ａおよび図３に示すように、機器／グローバル内部状態１５７を格納する。機器／グローバル内部状態１５７は、現在アクティブなアプリケーションがあれば、どのアプリケーションかを示すアクティブアプリケーション状態と、何のアプリケーション、ビューまたは他の情報がタッチスクリーンディスプレイ１１２の様々な領域を占有しているかを示す表示状態と、機器の様々なセンサおよび入力制御機器１１６から得られる情報を含むセンサ状態、および機器の位置および／または姿勢に関する位置情報の１つ以上を含む。
【００４１】
オペレーティングシステム１２６（例えばDarwin, RTXC, LINUX, UNIX, OS X, iOS, WINDOWSまたはVxWorksのような組み込みオペレーティングシステム）は、一般的なシステムタスク（例えばメモリ管理、記憶機器制御、電源管理など）を制御ならびに管理するための様々なソフトウェア部品および／またはドライバを含み、様々なハードウェアおよびソフトウェア部品間の通信を支援する。
【００４２】
通信モジュール１２８は１つ以上の外部ポート１２４を通じた他の機器との通信を支援するとともに、ＲＦ回路１０８および／または外部ポート１２４によって受信したデータを処理するための様々なソフトウェア部品をさらに含む。外部ポート１２４（例えばＵＳＢ(Universal Serial Bas (USB)、FIREWIREなど）は、他の機器を直接接続したり、ネットワーク（例えばインターネット、無線ＬＡＮなど）を通じて間接的に接続したりするように構成されている。一部の実施形態において、外部ポートは、iPod（アップル社の登録商標）機器に用いられている３０ピンコネクタと同一、類似、および／または互換性を有するマルチピン（例えば３０ピン）コネクタである。
【００４３】
接触／動きモジュール１３０は、必要に応じて、タッチスクリーン１１２との接触を（ディスプレイコントローラ１５６とともに）検知したり、他の接触検知デバイス（例えばタッチパッドや物理クリックホイール）との接触を検知したりする。接触／動きモジュール１３０は、接触が生じたかどうかを判定（例えばフィンガーダウンイベントを検出）したり、接触の強度（例えば接触の力または圧、または接触の力または圧の代用物）を計測したり、接触に動きがあるか否かを判定するとともに接触検知面内で移動を追跡（例えば１つ以上のフィンガードラッグイベントを検出）したり、接触が終了したかどうかを判定（例えばフィンガーアップイベントまたは接触終了を検出）したりといった、接触の検知に関する様々な動作を実行するための様々なソフトウェア部品を含む。接触／動きモジュール１３０は接触検知面から接触データを受信する。一連の接触データで表される接触点の動きの検出は、必要に応じて速さ（大きさ）、速度（大きさおよび方向）および／または加速度（大きさおよび／または方向の変化）の計測を含む。これらの動作は、必要に応じて、１つの接触（例えば１本指の接触）に適用されたり、複数の同時接触（例えば「マルチタッチ」／複数本の指の接触）たりする。一部の実施形態において、接触／動きモジュール１３０およびディスプレイコントローラ１５６は、タッチパッド上の接触を検知する。
【００４４】
一部の実施形態において、接触／動きモジュール１３０は、ユーザによって動作が実施されたかどうかを判定するため（例えばユーザがアイコンを「クリック」したかどうかを判定するため）に、１つ以上の強度閾値のセットを用いる。一部の実施形態において、複数の強度閾値の少なくともサブセットは、ソフトウェアパラメータに従って決定される（例えば強度閾値は特定の物理的アクチュエータのアクティベーション閾値によっては決定されず、機器１００の物理的なハードウェアの変更なしに調整可能である）。例えば、タッチパッドまたはタッチスクリーンディスプレイのマウス「クリック」閾値は、タッチパッドまたはタッチスクリーンディスプレイハードウェアを変更することなしに、予め定められた広範囲の閾値のいずれかに設定することができる。さらに、一部の実施形態において、機器のユーザは強度閾値のセットの１つ以上を（例えば個々の強度閾値を調整することにより、および／またはシステムレベルのクリック「強度」パラメータを用いて複数の強度閾値をまとめて調整することにより）調整するためのソフトウェア設定を提供される。
【００４５】
接触／動きモジュール１３０はユーザが入力したジェスチャを必要に応じて検出する。接触検知面上の異なるジェスチャは異なる接触パターン（例えば検出される接触の異なる動き、タイミング、および／または強度）を有する。そのため、ジェスチャは、必要に応じて、特定の接触パターンの検出によって検出される。例えば、指タップジェスチャの検出は、（例えばアイコン位置での）指ダウンイベントの検出と、それに続く、指ダウンイベントと同一位置（または実質的に同一位置）での指アップ（リフトオフ）イベントの検出とを含む。別の例として、接触検知面上の指スワイプジェスチャの検出は、指ダウンイベントの検出と、それに続く、１つ以上の指ドラッグイベントの検出と、さらに続く指アップ（リフトオフ）イベントの検出とを含む。
【００４６】
グラフィックスモジュール１３２は、タッチスクリーン１１２または他のディスプレイ上にグラフィックスをレンダリングおよび表示するための、表示されているグラフィックスの視覚効果(visual impact)（例えば明るさ、透明度、彩度、コントラスト、または他の視覚的な特性）を変更するための部品を含む、様々な既知のソフトウェア部品を含む。本文書において用いられる場合、単語「グラフィックス」は、テキスト、ウェブページ、（ソフトウェアキーを含むユーザインタフェースオブジェクトのような）アイコン、デジタル画像、動画、アニメーションなどを非限定的な例として含む、ユーザに表示されうるいかなるオブジェクトをも包含する。
【００４７】
一部の実施形態において、グラフィックスモジュール１３２は使用されるグラフィックスを表すデータを格納する。個々のグラフィックは必要に応じて対応するコードに割り当てられる。グラフィックスモジュール１３２はアプリケーションなどから、表示すべきグラフィックスを指定する１つ以上のコードを、必要であれば座標データや他のグラフィック特性データとともに受け取り、ディスプレイコントローラ１５６に出力するための画面画像(screen image)データを生成する。
【００４８】
触感フィードバックモジュール１３３は、機器１００とのユーザインタラクションに応答して触覚出力を機器１００上の１つ以上の位置で生成するために１つ以上の触覚出力生成器１６７によって用いられる命令を生成するための様々なソフトウェア部品を含む。
【００４９】
グラフィックスモジュール１３２の構成要素であってよいテキスト入力モジュール１３４は、様々なアプリケーション（例えば連絡先１３７、電子メール１４０、インスタントメッセージング１４１、ブラウザ１４７、およびテキスト入力を必要とする他のアプリケーション）でテキストを入力するためのソフトキーボードを提供する。例えば、テキスト入力モジュール１３４は、図８Ａ〜図８Ｄに関して以下で記載するキーボードインターフェース８００を提供するための命令を含むことができる。さらに、テキスト入力モジュール１３４は、以下に記載する手順７００を実行するための命令を含むことができる。特に、テキスト入力モジュール１３４は、以下に記載するように、言語入力修正のための１つ以上の配列モデルおよび１つ以上の言語モデルを含むことができる。
【００５０】
ＧＰＳモジュール１３５は、機器の位置を測定し、その情報を様々なアプリケーションで用いるために（例えば位置ベースの通話に用いるために電話１３８に、静止画／動画メタデータとしてカメラ１４３に、天気予報ウィジェット、ローカルイエローページウィジェット、および地図／ナビゲーションウィジェットのような、位置ベースのサービスを提供するアプリケーションに）提供する。
【００５１】
アプリケーション１３６は以下のモジュール（または命令セット）、またはそのサブセットまたはスーパーセットを含んでよい。
・連絡先モジュール１３７（アドレス帳または連絡先リストとも呼ばれる）、
・電話モジュール１３８、
・テレビ会議モジュール１３９、
・電子メールクライアントモジュール１４０、
・インスタントメッセージング（ＩＭ）モジュール１４１、
・ワークアウト支援モジュール１４２、
・静止画および／または動画用のカメラモジュール１４３、
・画像管理モジュール１４４、
・ビデオプレーヤモジュール、
・音楽プレーヤモジュール、
・ブラウザモジュール１４７、
・カレンダーモジュール１４８、
・天気ウィジェット１４９−１、株価ウィジェット１４９−２、計算器ウィジェット１４９−３、目覚まし時計ウィジェット１４９−４、辞書ウィジェット１４９−５、およびユーザが取得した他のウィジェットならびにユーザが生成したウィジェット１４９−６の１つ以上を含んでよいウィジェットモジュール１４９、
・ユーザ作成ウィジェット１４９−６を作るためのウィジェット作成モジュール１５０、
・探索モジュール１５１、
・ビデオプレーヤモジュールと音楽プレーヤモジュールを併合するビデオおよび音楽プレーヤモジュール１５２、
・ノートモジュール１５３、
・地図モジュール１５４、および／または
・オンラインビデオモジュール１５５。
【００５２】
メモリ１０２に格納されうる他のアプリケーション１３６の例には、他のワートプロセッシングアプリケーション、他の画像編集アプリケーション、ドローイングアプリケーション、プレゼンテーションアプリケーション、ＪＡＶＡ対応のアプリケーション、暗号化、デジタルライツ管理、音声認識、および音声応答が含まれる。
【００５３】
タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、テキスト入力モジュール１３４とともに、アドレス帳モジュール１３７は、（例えばメモリ１０２またはメモリ３７０内の連絡先モジュール１３７のアプリケーション内部状態１９２に格納される）アドレス帳または連絡先リストを管理するために用いられてよい。この管理には、１つ以上の名前をアドレス帳に追加すること、１つ以上の名前をアドレス帳から削除すること、１つ以上の電話番号、１つ以上の電子メールアドレス、１つ以上の物理的な住所や他の情報を名前に関連付けること、画像を名前に関連付けること、名前を分類したり並び替えたりすること、電話１３８、テレビ会議モジュール１３９、電子メール１４０、またはＩＭ１４１による通信を開始および／または支援するために電話番号または電子メールアドレスを提供すること、などが含まれる。
【００５４】
ＲＦ回路１０８、音声回路１１０、スピーカ１１１、マイク１１３、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、およびテキスト入力モジュール１３４とともに、電話モジュール１３８は、電話番号に対応する一連の文字を入力したり、連絡先モジュール１３７の１つ以上の電話番号にアクセスしたり、入力された電話番号を修正したり、ある電話番号にダイヤルしたり、会話を行ったり、会話が完了した際に接続を解除または電話を切るために用いられてよい。上述したように、無線通信は複数の通信規格、プロトコル、および技術のいずれかを用いることができる。
【００５５】
ＲＦ回路１０８、音声回路１１０、スピーカ１１１、マイク１１３、タッチスクリーン１１２、ディスプレイコントローラ１５６、光学センサ１６４、光学センサコントローラ１５８、接触／動きモジュール１３０は、グラフィックスモジュール１３２、テキスト入力モジュール１３４、連絡先モジュール１３７、および電話モジュール１３８とともに、テレビ会議モジュール１３９は、ユーザ指示に従ってユーザおよび一人以上の他の参加者との間のテレビ会議を開始、実行、および終了するための実行可能な命令を含む。
【００５６】
ＲＦ回路１０８、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０は、グラフィックスモジュール１３２、およびテキスト入力モジュール１３４とともに、電子メールクライアントモジュール１４０は、ユーザ指示に従って電子メールを作成、送信、受信、および管理するための実行可能な命令を含む。画像管理モジュール１４４とともに、電子メールクライアントモジュール１４０は、カメラモジュール１４３を用いて取得された静止画または動画を用いて電子メールを作成したり送信したりすることをとても容易にする。
【００５７】
ＲＦ回路１０８、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、およびテキスト入力モジュール１３４とともに、インスタントメッセージングモジュール１４１は、インスタントメッセージに対応する一連の文字を入力したり、入力済みの文字を修正したり、（例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)またはマルチメディアメッセージサービス(MMS)プロトコルを用いたり、インターネットベースのインスタントメッセージのためのＸＭＰＰ、ＳＩＭＰＬＥ、またはＩＭＰＳを用いたりして）あるインスタントメッセージを送信したり、インスタントメッセージを受信したり、受信したインスタントメッセージを閲覧したりするための実行可能な命令を含む。一部の実施形態において、送信および／または受信されるインスタントメッセージは、グラフィックス、写真、音声ファイル、動画ファイル、および／または、MMSおよび／または拡張メッセージングサービス(EMS)でサポートされるような他の添付書類を含んでよい。本文書において用いられる場合、「インスタントメッセージング」は、電話ベースのメッセージ（例えばＳＭＳまたはＭＭＳを用いて送信されるメッセージ）およびインターネットベースのメッセージ（例えばＸＭＰＰ、ＳＩＭＰＬＥ、またはＩＭＰＳを用いて送信されるメッセージ）の両方を意味する。
【００５８】
ＲＦ回路１０８、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、テキスト入力モジュール１３４、ＧＰＳモジュール１３５、マップモジュール１５４、および音楽プレーヤモジュールとともに、ワークアウト支援モジュール１４２は、（例えば時間、距離、および／またはカロリー燃焼ゴールを用いて）ワークアウトを生成したり、ワークアウトセンサ（スポーツ機器）と通信したり、ワークアウトセンサデータを受信したり、ワークアウトを監視するために用いられるセンサを較正したり、ワークアウトのための音楽を選択および再生したり、ワークアウトデータを表示、保存、および送信したりするための、実行可能な命令を含む。
【００５９】
タッチスクリーン１１２、ディスプレイコントローラ１５６、１つ以上の光学センサ１６４、光学センサコントローラ１５８、接触／動きモジュール１３０、グラフィックスモジュール１３２、および画像管理モジュール１４４とともに、カメラモジュール１４３は、静止画または動画（動画ストリームを含む）を取り込んで、それらをメモリ１０２に格納したり、静止画または動画の特性を変更したり、静止画または動画をメモリ１０２から削除したりするための実行可能な命令を含む。
【００６０】
タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、テキスト入力モジュール１３４、およびカメラモジュール１４３とともに、画像管理モジュール１４４は、静止画および／または動画を配列、修正（例えば編集）、あるいは何らかの操作を行ったり、ラベル付け、削除、提示（例えばデジタルスライドショーまたはアルバムで）、および保存するための実行可能な命令を含む。
【００６１】
ＲＦ回路１０８、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、およびテキスト入力モジュール１３４とともに、ブラウザモジュール１４７は、ウェブページやその一部ならびにウェブページにリンクされた添付書類や他のファイルを探索したり、リンクしたり、受信したり、表示したり、することを含む、ユーザ指示に従ったインターネットの閲覧のための実行可能な命令を含む。
【００６２】
ＲＦ回路１０８、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、テキスト入力モジュール１３４、電子メールクライアントモジュール１４０、およびブラウザモジュール１４７とともに、カレンダーモジュール１４８は、ユーザ指示に従って、カレンダーやカレンダーに関連付けられたデータ（例えばカレンダーエントリ、to−doリスト、など）を作成、表示、修正、および保存するために実行可能な命令を含む。
【００６３】
ＲＦ回路１０８、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、テキスト入力モジュール１３４、およびブラウザモジュール１４７とともに、ウィジェットモジュール１４９は、ユーザによってダウンロードされて用いられたり（例えば天気ウィジェット１４９−１、株価ウィジェット１４９−２、計算器ウィジェット１４９−３、目覚まし時計ウィジェット１４９−４、および辞書ウィジェット１４９−５）、ユーザによって作成されたりした（例えばユーザ作成ウィジェット１４９−６）ミニアプリケーションである。一部の実施形態において、ウィジェットはＨＴＭＬ(Hypertext Markup Language)ファイル、ＣＳＳ(Cascading Style Sheets)ファイル、およびＪａｖａＳｃｒｉｐｔファイルを含む。一部の実施形態において、ウィジェットはＸＭＬ(Extensible Markup Language)ファイルおよびＪａｖａＳｃｒｉｐｔファイルを含む（例えばYahoo!ウィジェット）。
【００６４】
ＲＦ回路１０８、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、テキスト入力モジュール１３４、およびブラウザモジュール１４７とともに、ウィジェット作成モジュール１５０は、（例えばウェブページのユーザが指定する部分をウィジェットに変えることによって）ウィジェットを作成するためにユーザによって用いられてよい。
【００６５】
タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、およびテキスト入力モジュール１３４とともに、探索モジュール１５１は、１つ以上の探索条件（例えば１つ以上のユーザ指定の探索語）に合致する、メモリ１０２内のテキスト、楽曲、音声、画像、動画、および／または他のファイルをユーザ指示に従って探索するための実行可能な命令を含む。
【００６６】
タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、音声回路１１０、スピーカ１１１、ＲＦ回路１０８、およびブラウザモジュール１４７とともに、ビデオおよび音楽プレーヤモジュール１５２は、ＭＰ３やＡＡＤファイルのような１つ以上のファイルフォーマットで保存された記録済みの楽曲および他の音声ファイルをユーザがダウンロードおよび再生できるようにするための実行可能な命令と、（例えばタッチスクリーン１１２または外部ポート１２４に接続された外部ディスプレイで）ビデオを表示、提示、あるいは何らかの再生をするための実行可能な命令とを含む。一部の実施形態において、機器１００はｉＰｏｄ（アップル社の登録商標）のようなＭＰ３プレーヤの機能を必要に応じて含む。
【００６７】
タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、およびテキスト入力モジュール１３４とともに、ノートモジュール１５３は、ノート、to−doリストなどをユーザ指示に従って作成および管理するための実行可能な命令を含む。
【００６８】
ＲＦ回路１０８、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、テキスト入力モジュール１３４、ＧＰＳモジュール１３５、およびブラウザモジュール１４７とともに、地図モジュール１５４は、地図および地図に関するデータ（例えば進行方向、特定の位置またはその近くの店や他の関心を呼ぶ場所(point of interest)のデータ、および他の位置ベースのデータ）を受信、表示、変更、および保存するために用いられてよい。
【００６９】
タッチスクリーン１１２、ディスプレイコントローラ１５６、接触／動きモジュール１３０、グラフィックスモジュール１３２、音声回路１１０、スピーカ１１１、ＲＦ回路１０８、テキスト入力モジュール１３４、電子メールクライアントモジュール１４０、およびブラウザモジュール１４７とともに、オンラインビデオモジュール１５５は、Ｈ．２６４のような１つ以上のフォーマットのオンラインビデオについて、ユーザがアクセスしたり、閲覧したり、（例えばストリーミングおよび／またはダウンロードによる）受信したり、（例えばタッチスクリーンまたは外部ポート１２４に接続された外部ディスプレイで）再生したり、また特定のオンラインビデオへのリンクを含んだ電子メールを送信したり、何らかの管理をしたりすることを可能にするための命令を含む。一部の実施形態においては、電子メールクライアントモジュール１４０ではなく、インスタントメッセージングモジュール１４１が特定のオンラインビデオへのリンクを送信するために用いられる。オンラインビデオアプリケーションに関するさらなる説明については、参照によりそれぞれの全内容を本文書に援用する2007年7月20日出願の米国仮特許出願第60/936,562号、「オンラインビデオを再生するための携帯型多機能機器、方法、およびグラフィカルユーザーインターフェース」、および2007年12月31日出願の米国特許出願第11/968,067号、「オンラインビデオを再生するための携帯型多機能機器、方法、およびグラフィカルユーザーインターフェース」を参照されたい。
【００７０】
上述したモジュールおよびアプリケーションの各々は、上述した１つ以上の機能および本出願に記載される方法（例えばコンピュータによって実施される方法およびここに記載される他の情報処理方法）を実行するための実行可能な命令セットに対応する。これらのモジュール（例えば命令セット）は、別個のソフトウェアプログラム、手順、またはモジュールとして実施されなくてもよく、従って様々な実施形態において、これらモジュールの様々なサブセットは組み合わされたり再配置されたりしてもよい。例えば、ビデオプレーヤモジュールを音楽プレーヤモジュールと組み合わせて１つのモジュール（例えば図１Ａのビデオおよび音楽プレーヤモジュール１５２）としてもよい。一部の実施形態において、メモリ１０２は上述したモジュールおよびデータ構造のサブセットを格納することができる。さらに、メモリ１０２は上述していない別のモジュールおよびデータ構造を格納してもよい。
【００７１】
一部の実施形態において、機器１００は、機器について予め定められた機能群の動作が、タッチスクリーンおよび／またはタッチパッドだけを通じて実行される機器である。タッチスクリーンおよび／またはタッチパッドを機器１００の動作のための主要な入力制御デバイスとして用いることにより、機器１００の（プッシュボタン、ダイヤルなどのような）物理的な入力制御デバイスの数を削減することができる。
【００７２】
タッチスクリーンおよび／またはタッチパッドを通じてのみ実行される予め定められた機能群は、必要に応じてユーザインタフェース間のナビゲーションを含む。一部の実施形態において、タッチパッドは、ユーザに触れられると、機器１００に表示されているどのユーザインタフェースからでも機器１００をメイン、ホーム、またはルートメニューにナビゲートする。一部の実施形態において、タッチパッドを用いて「メニューボタン」が供給される。一部の実施形態において、メニューボタンはタッチパッドではなく、物理的なプッシュボタンや他の物理的な入力制御デバイスである。
【００７３】
図１Ｂは一部の実施形態に係る、イベント処理用の例示的な構成要素を示すブロック図である。一部の実施形態において、メモリ１０２（図１Ａ）または３７０（図３）は、（例えばオペレーティングシステム１２６内に）イベントソータ１７０および、あるアプリケーション１３６（例えば上述したアプリケーション１３７〜１５１、１５５、３８０〜３９０のいずれか）を含む。
【００７４】
イベントソータ１７０はイベント情報を受信し、イベント情報を配信すべきアプリケーション１３６−１およびアプリケーション１３６−１のアプリケーションビュー１９１を決定する。イベントソータ１７０はイベントモニタ１７１およびイベントディスパッチャモジュール１７４を含む。一部の実施形態において、アプリケーション１３６−１は、アプリケーションがアクティブまたは実行中である際に、タッチディスプレイ１１２に表示されている１つ以上の現在のアプリケーションビューを示すアプリケーション内部状態１９２を含む。一部の実施形態において、どの１つ以上のアプリケーションが現在アクティブなのかを確認するために機器／グローバル内部状態１５７がイベントソータ１７０によって用いられ、イベント情報を配信すべきアプリケーションビューを決定するためにアプリケーション内部状態１９２がイベントソータ１７０によって用いられる。
【００７５】
一部の実施形態において、アプリケーション内部状態１９２は、アプリケーション１３６−１が実行を再開する際に用いられるリジューム情報、アプリケーション１３６−１によって表示中もしくは表示の準備ができている情報を示すユーザインタフェース状態情報、ユーザがアプリケーション１３６−１を以前の状態またはビューに戻すことを可能にするための状態キュー、およびユーザが行った過去の動作のリドゥー／アンドゥーキュー、の１つ以上のような、他の情報を含む。
【００７６】
イベントモニタ１７１は周辺機器インタフェース１１８からイベント情報を受信する。イベント情報はサブイベント（例えばマルチタッチジェスチャの一部としてのタッチディスプレイ１１２上のユーザタッチ）に関する情報を含む。周辺機器インタフェース１１８は、Ｉ／Ｏサブシステム１０６または、近接センサ１６６、１つ以上の加速度計１６８、および／または（音声回路１１０を通じた）マイク１１３のようなセンサから受信した情報を送信する。周辺機器インタフェース１１８がＩ／Ｏサブシステム１０６から受信する情報は、タッチディスプレイ１１２または接触検知面からの情報を含む。
【００７７】
一部の実施形態において、イベントモニタ１７１は予め定められた間隔で周辺機器インタフェース１１８に要求を送信する。それに応答して、周辺機器インタフェース１１８はイベント情報を送信する。一部の実施形態において、周辺機器インタフェース１１８は、重要なイベント（例えば予め定められたノイズ閾値を超える、および／または予め定められた期間を超える入力の受信）がある場合だけ、イベント情報を送信する。
【００７８】
一部の実施形態において、イベントソータ１７０はヒットビュー決定モジュール１７２および／またはアクティブイベント認識器決定モジュール１７３をさらに含む。
【００７９】
ヒットビュー決定モジュール１７２は、タッチディスプレイ１１２が複数のビューを表示している際に、１つ以上のビュー内のどこでサブイベントが発生したかを決定するためのソフトウェア手順を提供する。ビューは、ユーザがディスプレイ上で視認できるコントロールおよび他の要素からなる。
【００８０】
アプリケーションに関するユーザインタフェースの別の態様は、情報が表示され、タッチベースのジェスチャが生じるビューのセットであり、本文書ではアプリケーションビューもしくはユーザインタフェースウィンドウとも呼ばれる。タッチが検知される（あるアプリケーションの）アプリケーションビューは、そのアプリケーションのプログラマチックまたはビューハイアラーキ内のプログラマチックレベルに対応してよい。例えば、タッチが検知された最下レベルビューをヒットビューと呼ぶことができ、正しい入力と認識されるイベントセットは、タッチベースのジェスチャを開始する最初のタッチのヒットビューに少なくとも部分的に基づいて決定されてよい。
【００８１】
ヒットビュー決定モジュール１７２はタッチベースのジェスチャのさぶいベントに関する情報を受信する。アプリケーションが階層的に編成された複数のビューを有する場合、ヒットビュー決定モジュール１７２はヒットビューを、サブイベントを処理すべき、階層の最下ビューとして特定する。ほとんどの状況において、ヒットビューは開始サブイベント（例えばあるイベントまたは潜在的なイベントを形成する一連のサブイベントの最初のイベント）が発生する最下レベルビューである。ヒットビュー決定モジュール１７２がヒットビューを特定すると、ヒットビューは通常、自身がヒットビューとして特定されている同一のタッチまたは入力源に関する全てのサブイベントを受信する。
【００８２】
アクティブイベント認識器決定モジュール１７３は、ビュー階層内のどの１つ以上のビューがサブイベントの特定シーケンスを受信すべきかを決定する。一部の実施形態において、アクティブイベント認識器決定モジュール１７３はヒットビューだけがサブイベントの特定シーケンスを受信すべきと決定する。一部の実施形態において、アクティブイベント認識器決定モジュール１７３は、サブイベントの物理的位置を含む全てのビューを接触的に関与するビューと決定し、従って全ての積極的に関与するビューがサブイベントの特定のシーケンスを受信すべきであると決定する。一部の実施形態において、タッチサブイベントの全体が１つの特定のビューに関するエリアに限定されているとしても、階層においてより高位のビューは依然として積極的に関与するビューのままであろう。
【００８３】
イベントディスパッチャモジュール１７４は、イベント情報をイベント認識器（例えばイベント認識器１８０）に送信する。イベント認識器決定モジュール１７３を含んだ実施形態において、イベントディスパッチャモジュール１７４はアクティブイベント認識器決定モジュール１７３が決定したイベント認識器にイベント情報を配信する。一部の実施形態において、イベントディスパッチャモジュール１７４はイベントキューにイベント情報を格納し、イベント情報はイベント受信器１８２によって読み出される。
【００８４】
一部の実施形態において、オペレーティングシステム１２６はイベントソータ１７０を含む。あるいはアプリケーション１３６−１がイベントソータ１７０を含む。さらに別の実施形態において、イベントソータ１７０は、独立したモジュール、もしくは接触／動きモジュール１３０のような，メモリ１０２に格納される他のモジュールの一部である。
【００８５】
一部の実施形態において、アプリケーション１３６−１は、複数のイベントハンドラ１９０および、それぞれがアプリケーションのユーザインタフェースのビュー内で発生するタッチイベントを処理するための命令を含んだ１つ以上のアプリケーションビュー１９１を含む。アプリケーション１３６−１の各アプリケーションビュー１９１は、１つ以上のイベント認識器１８０を含む。通常、アプリケーションビュー１９１は複数のイベント認識器１８０を含む。一部の実施形態において、１つ以上のイベント認識器１８０はユーザインタフェースキット（不図示）のような１つの独立したモジュールまたは、アプリケーション１３６−１が方法および他のプロパティを引き継ぐ高位レベルオブジェクトの一部である。一部の実施形態において、イベントハンドラ１９０は、データアップデータ１７６、オブジェクトアップデータ１７７、ＧＵＩアップデータ１７８、および／またはイベントソータ１７０から受信されるイベントデータ１７９、の１つ以上を含む。イベントハンドラ１９０は、アプリケーション内部状態１９２を更新するために、データアップデータ１７６、オブジェクトアップデータ１７７、またはＧＵＩアップデータ１７８を用いるか、コールすることができる。あるいは、１つ以上のアプリケーションビュー１９１は１つ以上のイベントハンドラ１９０を含む。さらに、一部の実施形態において、データアップデータ１７６、オブジェクトアップデータ１７７、およびＧＵＩアップデータ１７８の１つ以上は、アプリケーションビュー１９１に含まれる。
【００８６】
イベント認識器１８０はイベント情報（例えばイベントデータ１７９）をイベントソータ１７０から受信し、イベント情報からイベントを特定する。イベント認識器１８０はイベント受信器１８２およびイベント比較器１８４を含む。一部の実施形態において、イベント認識器１８０は、メタデータ１８３および（サブイベント配信命令を含んでもよい）イベント配信命令１８８の少なくともサブセットをさらに含む。
【００８７】
イベント受信器１８２はイベントソータ１７０からイベント情報を受信する。イベント情報はサブイベント、例えばタッチまたはタッチ移動に関する情報を含む。サブイベントに応じて、イベント情報はさらに、サブイベントの位置情報のような追加情報を含む。サブイベントがタッチの動きに関する場合、イベント情報はさらにサブイベントの速さや方向を含んでもよい。一部の実施形態において、イベントはある向きから別の向きへ（例えば横位置から縦位置へ、あるいは逆）の機器の回転を含み、イベント情報は機器の現在の向き（機器姿勢とも呼ばれる）に関する、対応する情報を含む。
【００８８】
イベント比較器１８４はイベント情報を予め定められたイベントまたはサブイベントの定義と比較し、比較に基づいてイベントまたはサブイベントを決定するか、イベントまたはサブイベントの状態を決定もしくは更新する。一部の実施形態において、イベント比較器１８４はイベント定義１８６を含む。イベント定義１８６はイベントの定義（例えば予め定められた一連のサブイベント）、例えばイベント１（１８７−１）およびイベント２（１８７−２）などを含む。一部の実施形態において、あるイベント（１８７）のサブイベントは、例えばタッチ開始、タッチ終了、タッチ移動、タッチキャンセル、およびマルチタッチを含む。一例において、イベント１の定義（１８７−１）は、表示されたオブジェクト上のダブルタップである。ダブルタップは例えば、予め定められた期間(phase)の表示されたオブジェクト上の最初のタッチ（タッチ開始）、予め定められた期間の最初のリフトオフ（タッチ終了）、予め定められた期間の表示されたオブジェクト上の２回目のタッチ（タッチ開始）、および予め定められた期間の２度目のリフトオフ（タッチ終了）からなる。別の例において、イベント２の定義（１８７−２）は、表示されたオブジェクトのドラッグである。ドラッグは例えば、予め定められた期間(phase)の表示されたオブジェクト上のタッチ（または接触）と、予め定められた期間のタッチのタッチディスプレイ１１２上の移動と、そのタッチのリフトオフ（タッチ終了）とからなる。一部の実施形態において、イベントはさらに、１つ以上の関連するイベントハンドラ１９０に関する情報を含む。
【００８９】
一部の実施形態において、イベント定義１８７はユーザインタフェースオブジェクトそれぞれに関するイベントの定義を含む。一部の実施形態において、イベント比較器１８４はどのユーザインタフェースオブジェクトがサブイベントに関連するのかを調べるためにヒットテストを実行する。例えば、タッチディスプレイ１１２に３つのユーザインタフェースオブジェクトが表示されるアプリケーションビューにおいて、タッチディスプレイ１１２上のタッチが検出されると、イベント比較器１８４は３つのユーザインタフェースオブジェクトのうちどれがそのタッチ（サブイベント）に関連するのかを調べるためにヒットテストを実行する。表示されている各オブジェクトがそれぞれのイベントハンドラ１９０に関連する場合、イベント比較器はどのイベントハンドラ１９０をアクティブにすべきか決定するためにヒットテストの結果を用いる。例えば、イベント比較器１８４はサブイベントに関連するイベントハンドラと、ヒットテストをトリガするオブジェクトとを選択する。
【００９０】
一部の実施形態において、それぞれのイベント（１８７）に関する定義は、一連のサブイベントがイベント認識器のイベントタイプに対応するか否かが判定される後までイベント情報の配信を遅らせる遅延動作(delayed action)をさらに含む。
【００９１】
一連のサブイベントがイベント定義１８６内のいずれのイベントにも合致しないとイベント認識器１８０が判定すると、イベント認識器１８０はイベント不能、イベント失敗、またはイベント終了状態に入り、イベント認識器１８０はその後引き続くタッチベースのジェスチャのサブイベントを無視する。この状況において、そのヒットビューに関して依然としてアクティブな他のイベント認識器がある場合、継続中のタッチベースのジェスチャのサブイベントの追跡および処理を継続する。
【００９２】
一部の実施形態において、それぞれのイベント認識器１８０は、イベント配信システムが積極的に関与するイベント認識器に対してどのようにサブイベント配信を実行すべきかを示す、設定可能なプロパティ、フラグ、および／またはリストを有するメタデータを１８３を含む。一部の実施形態において、メタデータ１８３はイベント認識器がどのように相互動作できるか、あるいはどのように相互動作が許されるかを示す、設定可能なプロパティ、フラグ、および／またはリストを含む。一部の実施形態において、メタデータ１８３はサブイベントがビューまたはプログラマチック階層における様々なレベルに配信されるかどうかを示す、設定可能なプロパティ、フラグ、および／またはリストを含む。
【００９３】
一部の実施形態において、各イベント認識器１８０はあるイベントの１つ以上の特定のサブイベントが認識されると、イベントに関連するイベントハンドラ１９０を有効化する。一部の実施形態において、各イベント認識器１８０は、イベントに関連するイベント情報をイベントハンドラ１９０に配信する。イベントハンドラ１９０の有効化は、サブイベントを各ヒットビューに送信（および遅延送信(deferred sending)）することとは異なる。一部の実施形態において、イベント認識器１８０は認識されたイベントに関連するフラグをスローし、フラグに関連するイベントハンドラ１９０はフラグをキャッチして予め定められたプロセスを実行する。
【００９４】
一部の実施形態において、イベント配信命令１８８はサブイベントについてのイベント情報をイベントハンドラを有効化することなく配信するサブイベント配信命令を含む。代わりに、サブイベント配信命令はイベント情報を一連のサブイベントに関連するイベントハンドラもしくは積極的に関与するビューに配信する。一連のサブイベントもしくは積極的に関与するビューに関連するイベントハンドラは、イベント情報を受信し、予め定められたプロセスを実行する。
【００９５】
一部の実施形態において、データアップデータ１７６はアプリケーション１３６−１で用いられるデータを生成および更新する。例えば、データアップデータ１７６は連絡先モジュール１３７で用いられる電話番号を更新するか、ビデオプレーヤモジュールで用いられるビデオファイルを保存する。一部の実施形態において、オブジェクトアップデータ１７７はアプリケーション１３６−１で用いられるオブジェクトを生成および更新する。例えば、オブジェクトアップデータ１７７は新規のユーザインタフェースオブジェクトを生成するか、ユーザインタフェースオブジェクトの位置を更新する。ＧＵＩアップデータ１７８はＧＵＩを更新する。例えば、ＧＵＩアップデータ１７８は表示情報を用意し、タッチディスプレイで表示するために表示情報をグラフィックスモジュール１３２に送信する。
【００９６】
一部の実施形態において、１つ以上のイベントハンドラ１９０はデータアップデータ１７６、オブジェクトアップデータ１７７、およびＧＵＩアップデータ１７８を含むか、それらにアクセス可能である。一部の実施形態において、データアップデータ１７６、オブジェクトアップデータ１７７、およびＧＵＩアップデータ１７８は各アプリケーション１３６−１またはアプリケーションビュー１９１の単一モジュールに含まれる。別の実施形態において、それらは２つ以上のソフトウェアモジュールに含まれる。
【００９７】
ユーザがタッチディスプレイをタッチしたイベント処理に関する先の説明は、入力デバイスを用いて多機能機器１００を操作するための（タッチスクリーンで開始されるもの以外を含む）他の形態のユーザ入力にも当てはまることを理解すべきである。例えば、（場合により１つまたは複数のキーボード押圧または継続押圧と組み合わされる）マウス移動およびマウスボタン押圧、タッチパッド上のタップ、ドラッグ、スクロールなどの接触点の移動、ペンスタイラス入力、機器の移動、口頭指示、検出された目の動き、バイオメトリック入力、および／またはそれらの任意の組み合わせが、認識すべきイベントを規定するサブイベントに対応する入力として必要に応じて用いられる。
【００９８】
図２は一部の実施形態に係るタッチスクリーン１１２を有する携帯型多機能機器１００を示す図である。タッチスクリーンは必要に応じて１つ以上のグラフィクスをユーザインタフェース(UI)２００の中に表示する。以下に記述する他の実施形態と同様、この実施形態においてユーザは、例えば、１本以上の指２０２（図での縮尺は正確ではない）または１本以上のスタイラス２０３（図での縮尺は正確でない）を用いてグラフィックス上でジェスチャをすることにより１つ以上のグラフィックスを選択することができる。一部の実施形態において、１つ以上のグラフィックスはユーザがその１つ以上のグラフィックスとの接触を止めると選択される。一部の実施形態において、ジェスチャは必要に応じて、１つ以上のタップ、１つ以上のスワイプ（左から右、右から左、上方向、および／または下方向）、および／または機器１００との接触する指の回転（右から左、左から右、上方向、および／または下方向）を含む。一部の実装もしくは状況において、グラフィックスとの無意識な接触はそのグラフィックスを選択しない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコン上を素早く通るスワイプジェスチャは対応するアプリケーションを選択しないこともある。
【００９９】
機器１００は、「ホーム」またはメニューボタン２０４のような１つ以上の物理的ボタンをさらに含んでよい。先に述べたように、メニューボタン２０４は機器１００で実行されうるアプリケーション群の任意のアプリケーション１３６へナビゲートするために用いられてよい。あるいは、一部の実施形態において、メニューボタンはタッチスクリーン１１２に表示されるＧＵＩ内のソフトキーとして実施される。
【０１００】
一部の実施形態において、機器１００は、タッチスクリーン１１２、メニューボタン２０４、機器の電源をオン／オフしたり機器をロックしたりするためのプッシュボタン２０６、１つ以上の音量調節ボタン２０８、加入者識別モジュール（ＳＩＭ）カードスロット２１０、ヘッドホンジャック２１２、およびドック／充電外部ポート１２４を含む。プッシュボタン２０６は、ボタンを押圧してその状態を所定時間維持することによって機器の電源をオン／オフしたり、ボタンを押圧して所定時間経過する前に離すことによって機器をロックしたり、および／または機器のロックを解除あるいはロック解除処理を開始したりするために必要に応じて用いられる。代替実施形態において、機器１００はマイク１１３を通じて一部の機能の有効化または無効化のための口頭入力をさらに受け付けてもよい。機器１００はさらに必要に応じて、タッチスクリーン１１２上の接触の強度を検出するための１つ以上の接触強度センサ１６５、および／または機器１００のユーザのための触覚出力を生成するための１つ以上の触覚出力生成器１６７を含む。
【０１０１】
図３は一部の実施形態に係る、ディスプレイおよび接触検知面を備える例示的な多機能機器のブロック図である。機器３００は携帯型でなくてもよい。一部の実施形態において、機器３００はラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディア機器、ナビゲーション機器、（知育玩具のような）教育機器、ゲームシステム、または制御機器（例えば家庭用もしくは産業用コントローラ）である。機器３００は通常、１つ以上の処理ユニット（ＣＰＵ）３１０と、１つ以上のネットワークまたは他の通信インタフェース３６０と、メモリ３７０と、これらの構成要素を相互接続するための１つ以上の通信バス３２０とを含む。通信バス３２０は、システム構成要素間の通信を相互接続ならびに制御する回路（チップセットとも呼ばれる）を必要に応じて含む。機器３００は、一般的にタッチディスプレイであるディスプレイ３４０を備える入力／出力（Ｉ／Ｏ）インタフェース３３０を含む。Ｉ／Ｏインタフェース３３０はまた、キーボードおよび／またはマウス（あるいは他のポインティングデバイス）３５０およびタッチパッド３５５、機器３００上に触覚出力を生成するための、（図１Ａに関して上述した触覚出力生成器１６７と類似の）触覚出力生成器３５７、センサ３５９（例えば光学、加速度、近接、接触検知、および／または図１Ａに関して上述した１つ以上の接触強度センサ１６５）を必要に応じて含む。メモリ３７０はＤＲＡＭ、ＳＲＡＭ、ＤＤＲ ＲＡＭのような高速ランダムアクセスメモリや他のランダムアクセス半導体メモリデバイスを含み、また必要に応じてさらに、磁気ディスク記憶デバイス、光学ディスク記憶デバイス、フラッシュメモリデバイス、または他の不揮発性半導体記憶デバイスの１つ以上のような不揮発性メモリを含む。メモリ３７０は１つ以上のＣＰＵ３１０から離れて配置された１つ以上の記憶装置を必要に応じて含む。一部の実施形態において、メモリ３７０は、携帯型多機能機器１００（図１Ａ）のメモリ１０２に格納されるプログラム、モジュール、およびデータ構造と類似したプログラム、モジュール、およびデータ構造を格納する。さらに、メモリ３７０は必要に応じて、携帯型多機能機器１００のメモリ１０２に存在しない、追加のプログラム、モジュール、およびデータ構造を格納する。例えば、機器３００のメモリ３７０は、ドローイングモジュール３８０、プレゼンテーションモジュール３８２、ワードプロセッシングモジュール３８４、ウェブサイト作成モジュール３８６、ディスクオーサリングモジュール３８８、および／またはスプレッドシートモジュール３９０を必要に応じて格納するが、携帯型多機能機器１００（図１Ａ）のメモリ１０２はこれらのモジュールを格納しないこともある。
【０１０２】
図３において特定した各要素は、先に述べた記憶デバイスの１つ以上に格納されてよい。上述のモジュールのそれぞれは、上述した機能を実行するための命令セットに対応する。上述したモジュールまたはプログラム（例えば命令セット）は、別個のソフトウェアプログラム、手順、またはモジュールとして実施されなくてもよく、従って様々な実施形態において、これらモジュールの様々なサブセットは組み合わされたり再配置されたりしてもよい。一部の実施形態において、メモリ３７０は上述したモジュールおよびデータ構造のサブセットを格納することができる。さらに、メモリ３７０は上述していない別のモジュールおよびデータ構造を格納してもよい。
【０１０３】
次に、例えば携帯型多機能機器１００で実施されうる、ユーザインタフェースの実施形態について説明する。
【０１０４】
図４Ａは一部の実施形態に係る携帯型多機能機器１００のアプリケーションのメニューのための例示的なユーザインタフェースを示す図である。類似のユーザインタフェースを機器３００で実施してもよい。一部の実施形態において、ユーザインタフェース４００は以下の要素、あるいはそのサブセットまたはスーパセットを含む。
●セルラ信号やＷｉ−Ｆｉ信号のような１つ以上の無線通信のための１つ以上の信号強度インジケータ４０２、
●時刻４０４、
●ブルートゥースインジケータ４０５、
●ブルートゥース状態インジケータ４０６、
●次に挙げる様な頻繁に用いられるアプリケーションのためのアイコンを含んだトレー４０８、
・「電話」とラベル付けされた電話モジュール１３８のためのアイコン４１６。アイコン４１６は必要に応じて、応答できなかった通話またはボイスメールメッセージの数のインジケータ４１４を含む。
・「メール」とラベル付けられた電子メールクライアントモジュール１４０のためのアイコン４１８。アイコン４１８は必要に応じて、未読電子メールの数のインジケータ４１０を含む。
・「ブラウザ」とラベル付けされたブラウザモジュール１４７のためのアイコン４２０。
・「ｉＰｏｄ」とラベル付けされた、（ｉＰｏｄ（アップル社の商標）モジュールとも呼ばれる）ビデオおよび音楽プレーヤモジュール１５２のためのアイコン４２２。
●以下の様な他のアプリケーションのためのアイコン。
・「メッセージ」とラベル付けされたＩＭモジュール１４１のためのアイコン４２４。
・「カレンダー」とラベル付けされたカレンダーモジュール１４８のためのアイコン４２６。
・「写真」とラベル付けされた画像管理モジュール１４４のためのアイコン４２８。
・「カメラ」とラベル付けされたカメラモジュール１４３のためのアイコン４３０。
・「オンラインビデオ」とラベル付けされたオンラインビデオモジュール１５５のためのアイコン４３２。
・「株価」とラベル付けされた株価モジュール１４９−２のためのアイコン４３４。
・「地図」とラベル付けされた地図モジュール１５４のためのアイコン４３６。
・「天気」とラベル付けされた天気ウィジェット１４９−１のためのアイコン４３８。
・「時計」とラベル付けされた時計ウィジェット１４９−４のためのアイコン４４０。
・「ワークアウト支援」とラベル付けされたワークアウト支援モジュール１４２のためのアイコン４４２。
・「ノート」とラベル付けされたノートモジュール１５３のためのアイコン４４４。
・「設定」とラベル付けされた、機器１００およびその様々なアプリケーション１３６の設定へのアクセスを提供する設定アプリケーションまたはモジュールのためのアイコン４４６。
【０１０５】
図４Ａに図示されるアイコンラベルは単なる例示であることに留意すべきである。例えば、ビデオおよび音楽プレーヤモジュール１５２のためのアイコン４２２は「音楽」や「音楽プレーヤ」とラベル付けされてもよい。様々なアプリケーションアイコンのために他のラベルが必要に応じて用いられる。一部の実施形態において、各アプリケーションアイコンのためのラベルは、各アプリケーションアイコンに対応するアプリケーションの名前を含む。一部の実施形態において、ある特定のアプリケーションアイコンは、その特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
【０１０６】
図４Ｂは、ディスプレイ４５０（例えばタッチスクリーン１１２）とは別個の接触検知面４５１（例えばタブレットまたは図３のタッチパッド３５５）を有する機器（例えば図３の機器３００）上の例示的なユーザインタフェースを示す。機器３００はさらに必要に応じて、接触検知面４５１上の接触の強度を検出するための１つ以上の接触強度センサ（例えば１つ以上のセンサ３５７）、および／または機器３００のユーザのための触覚出力を生成するための１つ以上の触覚出力生成器３５９を含む。
【０１０７】
以下の例の一部は、（接触検知面とディスプレイとが組み合わされた）タッチディスプレイ１１２上の入力に関するものであるが、一部の実施形態において、機器は図４Ｂに示すような、ディスプレイとは別個の接触検知面上の入力を検出する。一部の実施形態において、接触検知面（例えば図４Ｂの４５１）は、ディスプレイ（例えば４５０）上の主軸（例えば図４Ｂの４５３）と合致する主軸（例えば図４Ｂの４５２）を有する。これらの実施形態に従って、機器は、接触検知面４５１との接触（図４Ｂの４６０および４６２）を、ディスプレイ上のそれぞれの位置に対応する位置（例えば図４Ｂにおいて、４６０は４６８に対応し、４６２は４７０に対応する）で検出する。このようにして、接触検知面（例えば図４の４５１）上で機器が検出したユーザ入力（例えば接触４６０および４６２、ならびにそれらの移動）は、接触検知面がディスプレイと別個の場合、多機能機器のディスプレイ（例えば図４Ｂの４５０）上のユーザインタフェースを操作するために機器によって用いられる。なお、本文書に記載された他のユーザインタフェースに対しても同様の方法が必要に応じて用いられることを理解すべきである。
【０１０８】
さらに、以下の例は主に指入力（例えば指接触、指タップジェスチャ、指スワイプジェスチャ）に関するものであるが、一部の実施形態において、１つ以上の指入力は他の入力デバイス（例えばマウスに基づく入力やスタイラス入力）からの入力に置換されることを理解すべきである。例えば、スワイプジェスチャは、（例えば接触の代わりの）マウスクリックと、（例えば接触の移動の代わりの）それに続くスワイプの経路に沿ったカーソル移動とに置換されることもある。別の例として、タップジェスチャは、（例えば接触を検出した後その接触の検出を終了することの代わりの）タップジェスチャの位置上にカーソルが位置する状態でのマウスクリックに置換されることもある。同様に、複数のユーザ入力が同時に検出される場合、複数のコンピュータマウスが同時に用いられたり、マウスと指入力が同時に用いられたりすることもあることを理解すべきである。
【０１０９】
図５Ａは例示的なパーソナル電子機器５００を示す。機器５００は本体５０２を含む。一部の実施形態において、機器５００は機器１００および３００（例えば図１Ａ〜図４Ｂ）に関して記載した機能の一部または全てを含むことができる。一部の実施形態において、機器５００はタッチディスプレイスクリーン５０４（以下、タッチスクリーン５０４）を有する。タッチスクリーン５０４の代わりに、あるいはそれとは別に、機器５００はディスプレイおよび接触検知面を有する。機器１００および３００と同様、一部の実施形態において、タッチスクリーン５０４（または接触検知面）は与えられている接触（例えばタッチ）の強度を検出するための１つ以上の接触強度センサを有してもよい。タッチスクリーン５０４（または接触検知面）の１つ以上の強度センサは、接触の強度を表す出力データを供給することができる。機器５００のユーザインタフェースは接触の強度に基づいて応答することができる。すなわち、強度の異なる接触は機器５００での異なるユーザインタフェース動作を呼び出すことができる。
【０１１０】
接触強度を検出および処理するための技術に関しては、例えば、その内容の全体を参照により本文書に援用する以下の関連出願を参照されたい：2013年5月8日出願の国際特許出願第PCT/US2013/040061号、「アプリケーションに対応するユーザインタフェースオブジェクトを表示するための機器、方法、およびグラフィカルユーザーインターフェース」、および2013年11月11日出願の国際特許出願第PCT/US2013/069483号、「タッチ入力−表示出力関係間の遷移のための機器、方法、およびグラフィカルユーザーインターフェース」。
【０１１１】
一部の実施形態において、機器５００は１つ以上の入力機構５０６および５０８を有する。入力機構５０６および５０８が含まれる場合、物理的なものであってよい。物理的な入力機構の例には、プッシュボタンおよび回転可能な機構が含まれる。一部の実施形態において、機器５００は１つ以上の取り付け機構を有する。そのような取り付け機構が含まれる場合、取り付け機構は機器５００を例えば、防止、眼鏡、イヤリング、ネックレス、シャツ、ジャケット、時計バンド、チェーン、ズボン、ベルト、靴、財布、バックパックなどに取り付けることを可能にする。これらの取り付け機構は機器５００をユーザが身につけることを可能にしてもよい。
【０１１２】
図５Ｂは例示的なパーソナル電子機器５００を表す。一部の実施形態において、機器５００は図１Ａ、図１Ｂ、および図３に関して記載した構成要素の一部または全てを含むことができる。機器５００は、Ｉ／Ｏ部５１４を、１つ以上のコンピュータプロセッサ５１６およびメモリ５１８と動作可能に接続するバス５１２を有する。Ｉ／Ｏ部５１４は、接触検知要素５２２と、必要に応じてさらに接触強度検知要素５２４とを有することのできるディスプレイ５０４に接続されてよい。さらに、Ｉ／Ｏ部５１４は、アプリケーションおよびオペレーティングシステムデータをＷｉ−Ｆｉ、ブルートゥース、近接通信（ＮＦＣ）、セルラ、および／または他の無線通信技術を用いて受信するための通信部５３０と接続されてよい。機器５００は入力機構５０６および／または５０８を含むことができる。入力機構５０６は例えば、回転可能な入力デバイス、または押圧および回転可能な入力デバイスであってよい。入力機構５０８は一部の例においてはボタンであってよい。
【０１１３】
入力機構５０８は一部の例においてはマイクであってよい。パーソナル電子機器５００は、ＧＰＳセンサ５３２、加速度計５３４、方位センサ５４０（例えばコンパス）、ジャイロスコープ５３６、モーションセンサ５３８、および／またはそれらの組み合わせなどの様々なセンサを含むことができ、それらの全てはＩ／Ｏ部５１４に動作可能に接続されてよい。
【０１１４】
パーソナル電子機器５００のメモリ５１８は、１つ以上のコンピュータプロセッサ５１６によって実行された際に、例えば手順７００（例えば図７）を含む、以下に説明する技法をコンピュータプロセッサに実行させるコンピュータが実行可能な命令、を格納するためのコンピュータ読み取り可能な恒久的な記憶媒体であってよい。コンピュータが実行可能な命令はさらに、コンピュータを用いたシステム、プロセッサを含んだシステム、または命令実行システム、装置、または機器から命令を取得し、その命令を実行することが可能な他のシステムのような、命令実行システム、装置、または機器によって用いられる、またはそれらと共に用いられる、いかなるコンピュータ読み取り可能な恒久的記憶媒体に保存および／または転送されてもよい。本文書において、「コンピュータ読み取り可能な恒久的記憶媒体」は、命令実行システム、装置、または機器によって（あるいはそれらとともに）用いるためのコンピュータが実行可能な命令を有形的に格納または保存することが可能ないかなる媒体であってもよい。コンピュータ読み取り可能な恒久的記憶媒体は、磁気、光学、および／または半導体記憶装置を含むことができるが、これらに限定されない。そのような記憶装置の例には、磁気ディスク、ＣＤ、ＤＶＤ、またはＢｌｕ−Ｒａｙ技術に基づく光ディスク、並びにフラッシュ、半導体ドライブ（ＳＳＤ）などのような固定半導体メモリが含まれる。パーソナル電子機器５００は図５Ｂの構成要素および構成に限定されず、様々な構成において別の、あるいは更なる構成要素を含むことができる。
【０１１５】
本文書で用いられる場合、用語「アフォーダンス」は、機器１００、３００、および／または５００（図１、図３、図５）の表示画面に表示されうるユーザインタラクティブなグラフィカルユーザーインターフェースオブジェクトを意味する。例えば、画像（例えばアイコン）、ボタン、およびテキスト（例えばハイパーリンク）はそれぞれアフォーダンスを構成しうる。
【０１１６】
本文書で用いられる場合、用語「フォーカスセレクタ」は、ユーザが操作中のユーザインタフェースの現在参照されている部分(current part)を示す入力要素を意味する。一部の実施形態において、フォーカスセレクタはカーソルまたは他の位置マーカを含み、カーソルが特定のユーザインタフェース要素（例えばボタン、ウィンドウ、スライダ、または他のユーザインタフェース要素）の上にある際に接触検知面（例えば図３のタッチパッド３５５または図４Ｂの接触検知面４５１）上で入力（例えば押圧入力）が検出されると、検出された入力に従ってその特定のユーザインタフェース要素が調整されることから、カーソルは「フォーカスセレクタ」として機能する。タッチスクリーンディスプレイ上のユーザインタフェース要素の直接操作が可能なタッチスクリーンディスプレイ（例えば図１Ａのタッチディスプレイシステム１１２または図４Ａのタッチスクリーン１１２）を含んだ一部の実施形態において、特定のユーザインタフェース要素（例えばボタン、ウィンドウ、スライダ、または他のユーザインタフェース要素）の位置でタッチスクリーン上の入力（例えば接触による押圧入力）が検出されると、検出された入力に従ってその特定のユーザインタフェース要素が調整されることから、検出されたタッチスクリーン上の接触は「フォーカスセレクタ」として機能する。一部の実施形態において、フォーカスは、カーソル移動やタッチスクリーンディスプレイ上の接触の移動と対応することなく（例えば、タブキーや矢印キーを用いてフォーカスをあるボタンから別のボタンに移動させることにより）ユーザインタフェースのある領域からそのユーザインタフェースの別の領域へ移動される。これらの実装において、フォーカスセレクタはユーザインタフェース内の異なる領域間でのフォーカス移動に従って移動する。フォーカスセレクタが有する特定の形態とは無関係に、通常、フォーカスセレクタは、（例えばユーザが操作しようとしているユーザインタフェースの要素を機器に対して指示することにより）ユーザが意図するユーザインタフェースとの操作を通信するためにユーザによって制御されるユーザインタフェース要素（またはタッチスクリーンディスプレイ上の接触）である。例えば、押圧入力が接触検知面（例えばタッチパッドまたはタッチスクリーン）上で検出されている間の、あるボタン上のフォーカスセレクタ（例えばカーソル、接触、または選択ボックス）の位置は、ユーザが（機器のディスプレイ上に表示されれる他のユーザインタフェース要素ではなく）そのボタンの有効化を意図していることを示すであろう。
【０１１７】
明細書および特許請求の範囲において用いられる場合、接触の「特徴的な強度」という用語は、その接触の１つ以上の強度に基づくその接触の特性を意味する。一部の実施形態において、特徴的な強度は複数の強度サンプルに基づく。特徴的な強度は、必要に応じて、予め定められたイベント（例えば接触検知後、接触のリフトオフ検出前、接触の移動開始の検出前または後、接触の終了の検出前、接触強度の増加の検出前または後、および／または接触強度の減少の検出前または後）に関して予め定められた複数の強度サンプル、または予め定められた期間（０．０５、０．１、０．２、０．５、１、２、５、１０秒）中に収集された強度サンプル群に基づく。接触の特徴的な強度は、接触強度の最大値、接触強度の中間値(mean value)、接触強度の平均値(average value)、接触強度のトップ１０％値、接触強度の最大値の半値、接触強度の９０％最大値などの１つ以上に必要に応じて基づく。一部の実施形態において、特徴的な強度を決定するために接触期間が用いられる（例えば特徴的な強度がある期間にわたる接触強度の平均である場合）。一部の実施形態において、特徴的な強度は、ユーザによって操作が行われたか否かを確認するために１つ以上の強度閾値のセットと比較される。例えば、１つ以上の強度閾値のセットは、第１の強度閾値と第２の強度閾値とを含んでよい。この例において、第１の閾値を超えない特徴的な強度を有する接触は第１の操作、第１の閾値を超え、第２の閾値を超えない特徴的な強度を有する接触は第２の操作、第２の閾値を超える特徴的な強度を有する接触は第３の操作をもたらす。一部の実施形態において、特徴的な強度と１つ以上の閾値との比較は、第１の動作または第２の動作を実行すべきかどうかの決定に用いられるのではなく、１つ以上の動作を実行すべきか否か（例えば、ある動作を実行すべきか、その動作を実行しないべきか）を決定するために用いられる。
【０１１８】
一部の実施形態では、特徴的な強度を測定する目的でジェスチャの一部が特定される。例えば、接触検知面は、開始位置から遷移して終了位置に達し、接触強度が終了位置で増加する連続的なスワイプ接触を受けるかもしれない。この例において終了位置での接触の特徴的な強度は、連続的なスワイプ接触の全体ではなく、一部（例えばスワイプ接触の終了位置部分）にだけ基づくものであろう。一部の実施形態では、接触の特徴的な強度を決定する前に、スワイプ接触の強度に対して平滑化アルゴリズムを適用してもよい。例えば平滑化アルゴリズムは、単純移動平均(unweighted sliding−average)平滑化アルゴリズム、三角(triangular)平滑化アルゴリズム、メディアンフィルタ平滑化アルゴリズム、および／または指数平滑化アルゴリズムの１つ以上を必要に応じて含む。環境によっては、これらの平滑化アルゴリズムが、特徴的な強度を決定するためにスワイプ接触の強度の狭いスパイクやディップを除去する。
【０１１９】
接触検知面上の接触の強度は、接触検出強度閾値、弱押圧強度閾値、強押圧強度閾値、および／または他の強度閾値の１つ以上のような、１つ以上の強度閾値に関して特徴付けられてよい。一部の実施形態において、弱押圧強度閾値は、一般的に物理的なマウスまたはトラックパッドのクリックに関連付けられた動作を機器が実行する強度に対応する。一部の実施形態において、強押圧強度閾値は、一般的に物理的なマウスまたはトラックパッドのクリックに関連付けられた動作とは異なる動作を機器が実行する強度に対応する。一部の実施形態において、弱押圧強度閾値未満の（例えば、かつ、それ未満では接触を検知しない最小の接触検出強度を超える）特徴的強度とともに接触が検出されると、機器は、弱押圧強度閾値や強押圧強度閾値に関連付けられた動作を実行することなく、接触検知面上の接触の移動に従ってフォーカスセレクタを移動させるであろう。一般に、そうでないと記載されていないかぎり、これらの強度閾値は、ユーザインタフェース図の異なるセットに共通している。
【０１２０】
接触の特徴的強度の、弱押圧強度閾値未満の強度から、弱押圧強度閾値と強押圧強度閾値との間の強度への増加は、「弱押圧」入力と呼ばれることがある。接触の特徴的強度の、強押圧強度閾値未満の強度から、強押圧強度閾値を超える強度への増加は、「強押圧」入力と呼ばれることがある。接触の特徴的強度の、接触検出強度閾値未満の強度から、接触検出強度閾値と弱押圧強度閾値との間の強度への増加は、接触検知面上の接触の検出と呼ばれることがある。接触の特徴的強度の、接触検出強度閾値を超える強度から、接触検出強度閾値未満の強度への減少は、接触検知面からの接触のリフトオフの検出と呼ばれることがある。一部の実施形態において、接触検出強度閾値は０である。一部の実施形態において、接触検出強度閾値は０より大きい。
【０１２１】
ここで説明した一部の実施形態では、押圧入力を含んだジェスチャの検出に応答して、あるいは接触（または複数の接触）とともに実行される押圧入力の検出に応答して（ここで、押圧入力は、押圧入力強度閾値を超える接触（または複数の接触）の強度の増加の検出に少なくとも部分的に基づいて検出される）、１つ以上の動作が実行される。一部の実施形態において、動作は、押圧入力強度閾値を超える強度への接触強度の増加の検出（例えば、押圧入力の「ダウンストローク」）に応答して実行される。一部の実施形態において、押圧入力は、押圧入力強度閾値を超える強度への接触強度の増加と、それに続く、押圧入力強度閾値未満への接触強度の減少を含み、動作は、後者の、押圧入力強度閾値未満への接触強度の減少（例えば、押圧入力の「アップストローク」）の検出に応答して実行される。
【０１２２】
一部の実施形態において、機器は、「ジッタ」とも呼ばれる予期しない入力を回避するため、強度ヒステリシスを用いる。具体的には、機器は、押圧入力強度閾値との予め定められた関係を有するヒステリシス強度閾値を規定または選択する（例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもＸ強度単位低いか、ヒステリシス強度閾値は、押圧入力強度閾値の７５％、９０％、あるいはなんらかの合理的な割合である）。従って、一部の実施形態において、押圧入力は、押圧入力強度閾値を超える強度への接触強度の増加と、それに続く、押圧入力強度閾値に対応するヒステリシス強度閾値未満への接触強度の減少を含み、動作は、後者の、ヒステリシス強度閾値未満への接触強度の減少（例えば、押圧入力の「アップストローク」）の検出に応答して実行される。同様に、一部の実施形態において、押圧入力は、ヒステリシス強度閾値以下から押圧入力強度閾値を超える強度への接触強度の増加（必要に応じて、それに続く、ヒステリシス強度閾値以下への接触強度の減少）を機器が検出した場合にだけ検出され、動作は、押圧入力（例えば、状況に応じて、接触強度の増加もしくは接触強度の減少）の検出に応答して実行される。
【０１２３】
説明の簡単さのために、押圧入力強度閾値に関する押圧入力に応答して、または押圧入力を含んだジェスチャに応答して実行される動作の説明は、必要に応じて以下のいずれかの検出に応答してトリガされる：接触強度の押圧入力強度閾値を超える強度への増加、接触強度の、ヒステリシス強度閾値未満の強度から押圧入力強度閾値を超える強度への増加、接触強度の、押圧入力強度閾値未満への減少、および／または接触強度の、押圧入力強度閾値に対応するヒステリシス強度閾値未満への減少。さらに、接触強度が押圧入力強度閾値未満へ減少したことの検出に応じて動作が実行されるものとして記載した例において、動作は、必要に応じて、接触強度が、押圧入力強度閾値に対応し、かつ押圧入力強度閾値より低いヒステリシス強度閾値未満に減少したことの検出に応答して実行される。
【０１２４】
２．縮小キーボードインタフェース
電子機器（例えば機機１００、３００、または５００）でテキスト入力を提供するために、縮小キーボードインタフェースを用いることができる。図６Ａ〜図６Ｃは、日本語テキストを入力するための例示的な縮小キーボードインタフェース６００を示している。縮小キーボードインタフェース６００は、１０キーかなキーボードインタフェースと呼ぶこともできる。縮小キーボードインタフェース６００は、電子機器のタッチスクリーン（例えばタッチスクリーン１１２）に表示することができる。図示の通り、縮小キーボードインタフェース６００は、日本語のひらがなを入力するための（例えば、あ、か、さ、た、な、は、ま、や、ら、および、わとラベル付けされた）１０個の主文字キー６０２と、発音区別符号および句読点をそれぞれ追加するための２つの付加キー６０４、６０６とを含むことができる。主文字キー６０２の各々は、１つ以上の副文字キーへのアクセスを提供するように構成することができる。特に、図６Ｂに示すように、文字「な」に関連付けられた主文字キー６０２−１へのタッチコンタクトの提供は、文字「に」「ぬ」「ね」「の」にそれぞれ関連付けられた４つの副文字キー６０８、６１０、６１２、６１４を表示させることができる。したがって、この例では、１０個の主文字キー６０２を用いて５０個の文字キーを入力に用いることができる。
【０１２５】
縮小キーボードインタフェース６００はユーザから接触入力を受け付けるように構成されるとともに、それぞれのひらがなが機器に入力されるようにすることができる。主文字キー６０２に関連付けられたひらがなを入力するために、主文字キー６０２にシングルタップ入力を与えることができる。例えば、図６Ｂに関して、文字「な」を入力するために主文字キー６０２−１へシングルタップ入力を与えることができる。シングルタップ入力は、主文字キーへのタッチコンタクトと、それに続く主文字キーからの接触の解除または中止とを含むことができる。さらに、タッチコンタクト中の横移動は、予め定められた閾値量未満であってよい。
【０１２６】
副文字キーに関連付けられたひらがなを入力するために、主文字キー６０２にフリック入力を与えることができる。例えば、図６Ｂ〜図６Ｃに示すように、副文字キー６０８を用いて文字「に」を入力するために、主文字キー６０２に第１の方向（例えば矢印６１６で表される方向）のフリック入力を与えることができる。図６Ｃに示すように、フリック入力に応答して、縮小キーボードインタフェース６００は、副文字キー６０８を通じて文字「に」の入力が受け付けられたことを示すために、副文字キー６０８を強調することができる。フリック入力は、縮小キーボードインタフェース６００上における、第１の位置６１７（例えば主文字キー６０２−１）から第２の位置６１９（例えば副文字キー６０８）への接触移動を含むことができる。特にこの例では、フリック入力は主文字キー６０２−１へのタッチコンタクトを開始することと、第１の位置６１７から第２の位置６１９への接触移動を与えること、および副文字キー６０８から第２の位置６１９でタッチコンタクトを解除することを含むことができる。フリック入力は、最初のタッチコンタクトからタッチコンタクトの解除まで、縮小言語入力インタフェース６００との接触が継続されるように与えられてよい。
【０１２７】
あるいは、副文字キーに関連付けられたひらがなは、主文字キー６０２にマルチタップ入力を与えることによって入力されてもよい。特に、副文字キーの各々は、予め定められたマルチタップ入力パターンに関連付けられてよい。例えば、文字「に」を入力するために、主文字キー６０２−１への第１のタッチコンタクトと、それに続く主文字キー６０２−１への第２のタッチコンタクトを含んだ、予め定められた入力パターンを受け付けることができる（例えば、ダブルタップ入力）。タッチコンタクトの中止または解除は、第１のタッチコンタクトと第２のタッチコンタクトとの間で発生することができる。さらに、第１のタッチコンタクトと第２のタッチコンタクトは予め定められた時間内で発生することができる。同様に、文字「ぬ」は、主文字キー６０２−１への３回のタッチコンタクトを含む予め定められたマルチタップ入力パターン（例えばトリプルタップ入力）を用いて入力することができる。
【０１２８】
本例では縮小キーボードインタフェース６００が日本語テキストを入力するために構成されていたが、他の例では、縮小キーボードインタフェースが他の言語のテキストを入力するために構成されてもよいことを理解すべきである。特に、各主文字キーおよび副文字キーは言語の記述記号(written symbol)に対応することができる。さらに、主文字キーの数および、各主文字キーを通じてアクセス可能な副文字キーの数は変化しうることを理解すべきである。
【０１２９】
３．言語入力修正手順
図７は、様々な例に係る言語入力修正のための手順７００を示すフローチャートである。図８Ａ〜図８Ｄは、様々な例に係る言語入力修正のための例示的な手順のさまざまな段階を示す電子機器の例示的なスクリーンショットである。手順７００はタッチディスプレイ（例えばタッチスクリーン１１２）を備える機器（例えば機機１００、３００、または５００）で実行することができる。以下、図７および図８Ａ〜図８Ｄを同時に参照して手順７００を説明する。なお、手順７００におけるいくつかの動作が組み合わされたり、いくつかの動作の順序が変更されたり、いくつかの動作が省略されたりされてもよいことを理解すべきである。
【０１３０】
手順７００のブロック７０２で、タッチディスプレイ（例えばタッチスクリーン１１２）上のキーボードインタフェースを通じて、一連の接触入力を検出することができる。キーボードインタフェースはテキスト入力のための任意のキーボードインタフェースであってよい。例えば、キーボードインタフェースは図６Ａ〜図６Ｃに関して上述した縮小キーボードインタフェース６００と類似した、あるいは同一のものであってよい。一部の例において、キーボードインタフェースは日本文字入力用の１０キーかなキーボードインタフェースであってよい。一連の接触入力は、キーボードインタフェースの１つ以上の文字キーに対する１つ以上のシングルタップ入力、フリック入力、またはマルチタップ入力を含むことができる。ブロック７０４〜７１８の１つ以上は、ブロック７０２で一連の接触入力を検出したことに応答して実施することができる。
【０１３１】
テキストを入力するためにフリック入力が用いられる例（例えば日本語のひらがな入力）において、一連の接触入力に含まれる接触入力は、キーボードインタフェースの第１の位置から第２の位置への接触の動き（例えば図６Ｂ〜図６Ｃに関して上述したフリック入力）を含むことができる。例えば、図８Ａに示すように、一連の接触入力はひらがな文字列「あした」（例えば第１の文字列８１８）を入力するものと検出されてよい。一連の接触入力は主文字キー８０２−１への第１の接触入力、主文字キー８０２−３への第２の接触入力、および主文字キー８０２−４への第３の接触入力を含むことができる。この例では、第１の接触入力および第３の接触入力はそれぞれシングルタップ入力であってよい。特に、第１の接触入力と第３の接触入力はキーボードインタフェース８００上で主文字キー８０２−１および８０２−４をそれぞれ選択することを意図したものであってよい。第１の接触入力および第３の接触入力の結果として、対応する文字「あ」および「た」がそれぞれ入力されてよい。さらに、第２の接触入力はフリック入力であってよい。特に、図８Ｂに関し、第２の接触入力はキーボードインタフェース８００上の第１の位置８０６から第２の位置８０８への、矢印８１０で示される方向への接触の動きであってよい。第２の接触入力は副文字キー８０４−１を選択することを意図したものであってよい。したがって、第２の接触入力の結果として、対応する文字「し」が入力されてよい。
【０１３２】
フリック入力の例において、第２の接触入力の接触の動きは、接触の動きに対応する意図された文字キーに関連する様々な特性を含むことができる。特に、接触の動きは、接触の動きの第１の位置８０６と第２の位置８０８とのフリック距離、もしくは接触の動きの第１の位置８０６から第２の位置８０８へのフリックの速さに関連付けられてよい。さらに、第２の接触入力の接触の動きは、キーボードインタフェース８００の基準軸（例えば基準軸８１４）に対するフリック角度（例えば角度８１２）に関連付けられてよい。
【０１３３】
テキスト入力にマルチタップ入力が用いられる例において、一連の接触入力に含まれる接触入力は、キーボードインタフェースのあるキーに対する第１の接触と、キーボードインタフェースの同じキーに対する第２の接触とを含むことができる（例えばダブルタップ入力）。第１の接触および第２の接触は、予め定められた時間内で発生することができる。さらに、接触入力は第１の接触と第２の接触との間の中断を含むことができる。図８Ａに示す例に戻って、ひらがな文字列「あした」を入力するための一連の接触入力は、マルチタップ入力を含むことができる。具体的には、一連の接触入力の第１の接触入力および第３の接触入力はそれぞれ、主文字キー８０２−１および８０２−３のそれぞれへのシングルタップ入力を含むことができる。一連の接触入力の第２の接触入力は、主文字キー８０２−３への第１のタッチ入力と、それに続く主文字キー８０２−３への第２のタッチ入力とを含むことができる。第１のタッチ入力および第２のタッチ入力は予め定められた時間内で発生することができる。さらに、タッチコンタクトの中断が、第１のタッチコンタクトと第２のタッチコンタクトとの間で発生することができる。
【０１３４】
マルチタップ入力例において、接触入力は、その接触入力に対応する文字キーを判定するための様々な特性を含むことができる。これら特定の一部は、例えば各文字キーの中央位置に対する各タップ入力の位置のような、フリック入力の特性と類似したものであってよい。他の特性はフリック入力の特性とは異なってもよい。例えば、マルチタップの第１の接触と第２の接触はそれぞれ接触強度（例えば接触検知面上の接触強度）および接触持続時間（例えば接触検知面上での各接触の持続時間）と関連付けられてもよい。接触入力は、第１の接触と第２の接触との間の時間間隔（例えば第１の接触が解除されてから第２の接触が開始するまでの時間間隔）をさらに含むことができる。接触強度、接触持続時間、および時間間隔のそれぞれは、接触入力に対応する文字キーを判定するために用いられてよい。
【０１３５】
手順７００のブロック７０４で、一連の接触入力に対応する可能性のある複数の文字列を決定することができる。特に、一連の接触入力のそれぞれの接触入力を、可能性のあるいくつかの文字キーの１つの選択として解釈することができ、したがっていくつかの文字列に対応させることができる。図８Ａに示した例に戻って、主文字キー８０２−１を入力することを意図した第１の接触入力は、周囲の主文字キー８０２−２、８０２−４、８０２−５の１つを入力することを意図した可能性があると判定されてよい。図示の通り、主文字キー８０２−１、８０２−２、８０２−４、８０２−５は日本語のひらがな「あ」「か」「た」「な」にそれぞれ対応しており、したがって第１の接触入力は文字「あ」「か」「た」「な」の１つに対応するものと判定されてよい。同様に、主文字キー８０２−４を入力することを意図した第３の接触入力は、周囲の主文字キー８０２−１、８０２−５、８０２−７の１つを入力することを意図した可能性があると判定されてよい。したがって、第３の接触入力は文字「た」「あ」「な」「ま」の１つに対応するものと判定されてよい。
【０１３６】
さらに、副文字キー８０４−１を入力することを意図した第２の接触入力は、他の文字キーを入力することを意図した可能性があると判定されてよい。特に、フリック入力の位置によって、第２の接触入力は隣接する文字キーに対するフリック入力と解釈されうる。例えば、第２の接触入力が主文字キー８０２−３ではなく隣接する主文字キー８０２−２から開始されたフリック入力であると解釈され、第２の接触入力が図８Ｃの副文字キー８１６−１（例えば文字「き」）を入力するものの可能性があると判定されうる。さらに、フリック入力の速さや距離によって、第２の接触入力は主文字キー８０２−３（例えば文字「し」）へのフリック入力ではなく、主文字キー８０２−３（例えば文字「さ」）へのタップ入力と解釈可能な場合もあるかもしれない。したがって、この例において、第２の接触入力は文字「し」「き」「さ」の１つに対応することができる可能性がある。
【０１３７】
一連の接触入力に対応する可能性のある複数の文字列は、第１、第２、および第３の接触入力に対応する可能性のある文字のあらゆる組み合わせを含んでもよい。具体的には、図８Ａ〜図８Ｃの例において、複数の文字列には、第１の文字列「あした」（明日）および第２の文字列「あきた」（地名）を含むことができる。第１および第２の文字列は、一連の接触入力の同一部分に対応することができる。この例において、第１の文字列「あした」は、第２の接触入力の接触の動きの解釈の１つに対応する第１の文字「し」を含んでいる。第２の文字列「あきた」は、第２の接触入力の接触の動きの別の解釈に対応する第２の文字「き」を含んでいる。
【０１３８】
マルチタップ入力を受ける例において、同様に各マルチタップ入力は２つ以上の文字キー、従って２つ以上の文字に対応することができる。例えば、意図されたダブルタップ入力は、各タップの持続時間または強度によって、より少ない数のタップを有するもの（例えばシングルタップ入力）もしくはより多くのタップを有するもの（例えばトリプルタップ入力）と解釈されうる。さらに、各タップの位置またはタップ間の時間間隔によって、ダブルタップ入力は同一文字キーまたは２つの文字キーへの２つのシングルタップ入力と解釈されうる。図８Ａの例に戻って、一連の接触入力の第２の接触入力は、主文字キー８０２−３への第１のタッチ入力と、それに続く主文字キー８０２−３への第２のタッチ入力とを含むことができる。この例において、第２の接触入力は、第１の文字「し」に対応する主文字キー８０２−３への第１の予め定められた入力パターン（例えばダブルタップ入力）と解釈できる可能性がある。さらに、第２の接触入力は、第３の文字「さ」に対応する主文字キー８０２−３への第２の予め定められた入力パターン（例えばシングルタップ入力）と解釈できる可能性がある。この例において、一連の接触入力に対応する可能性のある複数の文字列は、第１の文字列「あした」（明日）と、第３の文字列「あさた」（あさだ：名字）とを含むことができる。この例において、第１の文字列「あした」は、第２の接触入力の解釈の１つに対応する第１の文字「し」を含んでいる。第３の文字列「あさた」は、第２の接触入力の別の解釈に対応する第３の文字「さ」を含んでいる。
【０１３９】
さらに、上述したように、ダブルタップ入力は、各タップの位置またはタップ間の時間間隔によって、同一文字キーまたは２つの文字キーへの２つのシングルタップ入力と解釈されうる。したがって、この例において、第２の接触入力は、（例えば入力文字「ささ」「さか」「さな」「さは」に対応しうる）主文字キー８０２−３および隣接する主文字キー８０２−２、８０２−５、８０２−６のいずれかに対する２つの独立したシングルタップ入力に対応するものと解釈できる可能性がある。そのため、本例において、複数の文字列は、「あささた」「あさかた」「あさなた」「あさはた」を含むことができる。なお、文字入力の別の組み合わせによって得られる別の文字列も想定可能であることを理解すべきである。
【０１４０】
上述した例においては、複数の文字列の決定に、隣接する文字キーの一部しか考慮しなかったが、任意数の（主または副）文字キーを考慮することができることを理解すべきである。
【０１４１】
手順７００のブロック７０６において、一連の接触入力が与えられたときの複数の文字列の各文字列の確率を求めることができる。特に、一連の接触入力が与えられたときの文字列の各文字に関連付けられた各文字キーを入力する確率を１つ以上のジオメトリモデルを用いて求めることができる。ジオメトリモデルは、キーボードインタフェース上の一連の接触入力から計算される、可能性のある各文字キーを選択することの確率を符号化することができる。そして各文字列の確率は、一連の接触入力が与えられたときの文字列の各文字に関連付けられた各文字キーを入力することの確率の組み合わせに基づいて求めることができる。
【０１４２】
第１の文字列「あした」に関する一例において、第１の接触入力（例えばタップ入力）が主文字キー８０２−１（例えば文字「あ」に対応する）を選択することを意図した入力である確率、第２の接触入力（例えば位置８０６から位置８０８へのフリック入力）が副文字キー８０４−１（例えば文字「し」に対応する）を選択することを意図した入力である確率、および第３の接触入力が主文字キー８０２−４（例えば文字「た」に対応する）を選択することを意図した入力である確率のそれぞれを、１つ以上のジオメトリモデルを用いて求めることができる。したがって、一連の接触入力が与えられたときの第１の文字列「あした」の確率は、上で求めた各確率の組み合わせに基づいて求めることができる。一連の接触入力が与えられたときの第２の文字列「あきた」の確率および、一連の接触入力が与えられたときの第３の文字列「あさた」の確率も同様の方法によって求めることができる。
【０１４３】
接触入力がある特定の文字キーを選択することを意図した入力である確率は、接触入力に関するいくつかのファクタに基づくことができる。タップ入力に関するそのようなファクタとしては、各文字キーの中心位置に関するタップ入力の位置、タップ入力の強度、またはタップ入力の持続時間（例えばキーボードインタフェースと接触が持続していた期間）を含むことができる。特に、タップ入力とある特定の文字キーの中心位置との距離が短いほど、タップ入力の強度が高いほど、またタップ入力が長く持続するほど、高い確率を関連付けることができる。
【０１４４】
フリック入力について、接触入力が特定の文字キーを選択することを意図した入力である確率は、上述したタップ入力に関するものと類似のファクタに基づくことができる。加えて、確率はフリック入力距離（例えば図８Ｂにおける接触移動の第１の位置８０６と第２の位置８０８との距離）、フリック入力速度（例えば第１の位置８０６から第２の位置８０８への接触移動の速度）、またはフリック入力角度（例えば図８Ｂにおける角度８１２）に基づくことができる。特に、フリック距離が長いほど、あるいはフリック速度が遅いほど、高い確率を関連付けることができる。フリック角度に関し、確率は、フリック角度が特定の文字キーの位置にどれくらい対応しているかに基づくことができる。例えば図８Ｂに関して、位置８０６から位置８０８へのフリック入力が副文字キー８０４−１の入力を意図したものである確率は、角度８１２が基準軸８１４に対して９０度に近いほど、０度に近い場合よりも高くなってよい。
【０１４５】
一部の例において、接触入力が文字キーの選択を意図した入力である確率を求める際に、タップ入力の位置を考慮するためにジオメトリモデルが実施されてよい。これらの例において、確率質量は、２次元ガウス分布に基づいて、可能性のあるキーのそれぞれに分配されてよい。具体的には、位置ｐでの接触入力が主文字キーｋの入力を意図したものである確率は、以下の様に表すことができる。
【数１】
0006404267.tif 000002
ここで、Ｚ＝Σk exp [ − (|p − c(k)| / D)2]であり、Σkは可能性のある主文字キー全てにわたる総和、Dは減衰因子、c(k)は文字キーkの中心である。上式からわかるように、位置ｐ（例えば図８Ａの位置８０１）での接触入力が主文字キーｋ（例えば図８Ａの主文字キー８０２−１）の入力を意図したものである確率は、位置ｐと文字キーｋの中心位置との距離（|p − c(k)|）が小さいほど高くなるように決定することができる。
【０１４６】
さらに、一部の例において、フリック距離およびフリック入力の初期位置を考慮するためにジオメトリモデルを実施してもよい。これらの例において、フリック距離ｘに閾値距離θを設定することができ、その場合、フリック距離が閾値距離θよりも大きい場合だけ接触入力がフリック入力と解釈される。さらに、フリック入力の初期位置ｐ（例えば図８Ｂの第１の位置８０６）は、上述したガウス分布に従ってモデル化することができる。例えば、図８Ｂに関して、フリック距離ｘ（例えば位置８０６と位置８０８との距離）が閾値距離θ以上であれば、主文字キーｋ0（例えば主文字キー８０２−３）の位置ｐ（例えば位置８０６）で開始され、フリック距離ｘを有する接触入力が、副文字キーｋ1（例えば副文字キー８０４−１）の選択を意図したフリック入力である確率は、P(k1|p,x) = P(k0|p) * (G / (G + exp [ − x2 / E2]))と表すことができ、主文字キーｋ0（例えば主文字キー８０２−３）の位置ｐ（例えば位置８０６）で開始され、フリック距離ｘを有する接触入力が、主文字キーｋ0（例えば副文字キー８０２−３）の選択を意図したタップ入力である確率はP(k0|p,x) = P(k0|p) * (exp [( − x2) / E2] / (G+exp [ − x2 / E2]))と表すことができる（ＥとＧは定数）。さらに、フリック距離ｘ（例えば位置８０６と位置８０８との距離）が閾値距離θ未満であれば、主文字キーｋ0（例えば主文字キー８０２−３）の位置ｐ（例えば位置８０６）で開始され、フリック距離ｘを有する接触入力が、副文字キーｋ1（例えば副文字キー８０４−１）の選択を意図したフリック入力である確率は、P(k1|p,x) = P(k0|p) * (exp [ − F / x] / (H + exp [ − F / x]))と表すことができ、主文字キーｋ0（例えば主文字キー８０２−３）の位置ｐ（例えば位置８０６）で開始され、フリック距離ｘを有する接触入力が、主文字キーｋ0（例えば副文字キー８０２−３）の選択を意図したタップ入力である確率はP(k0|p,x) = P(k0|p) * (H / (H + exp [ − F / x]))と表すことができる（ＦとＨは定数）。
【０１４７】
ジオメトリモデルを用いることにより、接触入力が特定の文字キーを選択することを意図した入力である確率を、接触入力の位置および／またはフリック距離に基づいて求めることができる。例えば、図８Ｂにおいて位置８０６から位置８０８への接触移動を含んだ第２の接触入力に関し、第２の接触入力は副文字キー８０４−１の選択を意図したフリック入力、副文字キー８１６−１（図８Ｃ）の選択を意図したフリック入力、主文字キー８０２−３の選択を意図したタップ入力、または副文字キー８０２−２（図８Ｃ）の選択を意図したタップ入力として解釈されうる。第２の入力がこれら文字キーのそれぞれの入力を意図したものである確率を求めるため、位置８０６、主文字キー８０２−２および８０２−３の中心位置、および位置８０６と８０８との距離に基づいて、上述したジオメトリモデルを用いることができる。フリック距離および／または接触位置を考慮するためのジオメトリモデルの特定の例について述べたが、異なる分配を実施する他のジオメトリモデルも考えられることを理解すべきである。さらに、先に述べたもの以外のファクタもまた、接触入力で与えられる特定の文字キーの入力の確率を求めるために、１つ以上のジオメトリモデルを用いてモデル化することができる。例えば、接触強度、接触持続時間、フリック速度、またはフリック角度を１つ以上のジオメトリモデルにモデル化することができる。さらに、マルチタップ入力について、各タップの接触強度、各タップの接触位置、各タップの接触持続時間、および連続するタップ間の時間間隔のような１つ以上のファクタを考慮するために、類似のジオメトリモデルを実施可能であることも考えられる。
【０１４８】
一部の例において、一連の接触入力のうちの接触入力が第１の予め定められた入力パターンを含む確率を求めることができる。例えば、第１の文字列「あした」に関して、第２の接触入力は文字「し」を入力するためのマルチタップ入力となりうる。この例において、第１の予め定められた入力パターンは、主文字キー８０２−３への２つの連続するタップ入力（例えば、第１のタップ入力のあと、中断を挟んで第２のタップ入力が続く）を含むことができ、かつ文字「し」に対応することができる。従って、一連の接触入力が与えられたときの第１の文字列「あした」の確率は、一連の接触入力の第２の接触入力が第１の予め定められた入力パターンを含む確率に基づいて求めることができる。同様に、第３の文字列「あさた」について、一連の接触入力の第２の接触入力が第２の予め定められた入力パターンを含む確率を求めることができる。この例において、第２の予め定められた入力パターンは、主文字キー８０２−３へのシングルタップ入力（例えば第１のタッチ入力のあとに接触が中断する）を含むことができ、かつ文字「さ」に対応することができる。従って、一連の接触入力が与えられたときの第２の文字列「あさた」の確率は、一連の接触入力の第２の接触入力が第２の予め定められた入力パターンを含む確率に基づいて求めることができる。
【０１４９】
接触入力が第１の予め定められた入力パターンまたは第２の予め定められた入力パターンを含む確率は、接触入力に関するいくつかのファクタに基づくことができる。上述したように、そのようなファクタは、各文字キーの中心位置に対する、キーボードインタフェース上の各タップ入力の位置、各タップ入力の接触強度、各タップ入力の接触持続時間、およびマルチタップ入力の連続するタップ入力間の時間間隔を含むことができる。特に、マルチタップ入力の各タップ入力は、各タップの位置が文字キーの中心位置に近いほど、各タップ入力の接触強度が大きいほど、または各回の接触持続時間が長いほど、高信頼度で検出することができる。さらに、２回の連続するタップ入力は、各タップ入力間の時間間隔が下方閾値より大きく上方閾値より小さい場合に高信頼度で検出することができる。これらファクタの１つ以上を考慮するために上述したものと類似のジオメトリモデルを実施可能であること、また接触入力が第１の予め定められた入力パターンまたは第２の予め定められた入力パターンを含む確率を求めるためにジオメトリモデルを用いることができることを理解すべきである。
【０１５０】
手順７００のブロック７０８で、一連の接触入力に対応する第１の文字列を、タッチスクリーンディスプレイ（例えばタッチスクリーン１１２）上のテキストフィールドに表示することができる。一部の例において、第１の文字列は、一連の接触入力が与える複数の文字列のうち、最も高い確率に関連付けられることができる。例えば、図８Ｂに示すように、第１の文字列８１８「あした」が、テキストフィールド８２０に表示される。図示の通り、第１の文字列８１８「あした」は、第１の文字８２２「し」を含んでいる。上述の通り、第１の文字８２２「し」は、副文字キー８０４−１を選択するフリック入力（例えば図８Ｂにおける位置８０６から位置８０８への接触移動）に対応することができる。あるいは、第１の文字列８２２「し」は、主文字キー８０２−３へのダブルタップ入力（例えば主文字キー８０２−３への第１および第２タッチコンタクトを含む接触入力）に対応することができる。この例において、第１の文字列８１８「あした」はブロック７０６で、一連の接触入力が与える複数の文字列の中で最も高い確率を有するものと決定されることができる。
【０１５１】
手順７００のブロック７１０で、一連の接触入力に対応する複数の候補語を決定することができる。複数の候補語はブロック７０６の複数の文字列から決定することができる。一部の例において、用語集(lexicon)を探索することにより、複数の文字列の各々に関するワードマッチングを実行することができる。用語集の探索は、複数の文字列に対応する候補語を特定することができる。一部の実施形態において、ワードマッチングを実行するために、トライデータ構造を有する用語集を用いることができる。特に、効率的なスタックベースの探索アルゴリズムをトライデータ構造用語集とともに用いることができる。そのような探索の実施は用語集の全体に渡るコンピューテーショナルパスの各々に対して多数の語がマッチすることを可能にする。そのため、より少ないコンピューテーショナルパスを用いて複数の文字列に対応する候補語の決定を効率よく達成でき、計算時間およびコストが大幅に削減される。
【０１５２】
複数の候補語は１つ以上の書記体系（例えばひらがな、カタカナ、または漢字）の単語を含むことができる。特に、複数の候補語は第１の書記体系の語と第２の書記体系の単語を含むことができる。例えば、第１の文字列「あした」は、候補語「あした」（例えばひらがな候補語）、「明日」（例えば漢字候補語）、および「アシタ」（例えばカタカナ候補語）に対応すると決定することができ、第２の文字列「あきた」は、候補語「あきた」、「秋田」、および「アキタ」に対応すると決定することができ、第３の文字列「あさた」は候補語「あさた」、「浅田」、および「アサダ」に対応すると決定することができる。この例から明らかなように、一連の接触入力は複数の文字列から決定された多数の候補語に対応することができる。図７に示すように、ブロック７１０はブロック７１２〜７１４を含むことができる。
【０１５３】
手順７００のブロック７１２で、複数の文字列のそれぞれの文字列が与える各候補語の確率を求めることができる。例えば、第１の文字列「あした」に関して、第１の文字列「あした」が候補語「明日」を与える確率を求めることができる。確率は１つ以上の言語モデルを用いて用いることができる。特に、言語モデルはテキストのコーパスを用いて訓練することができ、第１の文字列がある候補語を与える確率は、テキストのコーパスにおいてその候補語が現れる確率に基づくことができる。さらに、またはその代わりに、文脈情報を考慮して確率を求めてもよい。特に、各候補語の確率は、例えば、周囲の文脈、アプリケーションのタイプ、テキストのタイプ、時刻または時期などのようなさまざまな文脈情報に基づくことができる。
【０１５４】
一部の例において、ある文字列が与える各候補語の確率を求めるために、クラスに基づく言語モデル（例えばクラスバイグラム言語モデル）をｎグラム言語モデル（例えばトリグラム言語モデル）とともに用いることができる。特に、クラスバイグラム言語モデルは、トリグラム言語モデルよりも計算量を少なくできる。従って、初期確率はクラスバイグラム言語モデルを用いて求めることができ、閾値未満の確率を有する単語は複数の候補語から除外することができる。文字列が与える各候補語の最終的な確率を求めるために、その後、残りの候補語をトリグラム言語モデルを用いて処理することができる。このように、より素早くかつ効率的に、決定を実行することができる。
【０１５５】
手順７００のブロック７１４で、一連の接触入力が与える複数の候補語の各候補語の確率を求めることができる。一連の接触入力が与える各候補語の確率は、（例えばブロック７１２で求められる）各文字列が与える各候補語の確率および（例えばブロック７０６で求められる）一連の接触入力が与えるそれぞれの文字列の確率の組み合わせに基づいて求めることができる。それぞれの文字列が与える各候補語の確率および一連の接触入力が与えるそれぞれの文字列の確率に、適切な重み因子を適用することができる。一部の実施形態において、それぞれの文字列が与える各候補語の確率および一連の接触入力が与えるそれぞれの文字列の確率の線形補間を行うことができる。
【０１５６】
一連の接触入力が与える複数の候補語の各候補語の確率は、一連の接触入力が与えるそれぞれの文字列の確率に基づいて求めることができるため、一連の接触入力が与える各候補語の確率はブロック７０６で述べた、１つ以上のジオメトリモデルにモデル化されたさまざまなファクタに依存しうることを理解すべきである。特に、一連の接触入力が与える複数の候補語の各候補語の確率は、各キーの中心位置に対する接触入力の位置、フリック距離、フリック速度、フリック角度、接触強度、接触持続時間、およびマルチタップ入力の連続するタップ入力間の時間間隔といったファクタに基づくことができる。
【０１５７】
一部の例において、複数の候補語は一連の接触入力が与える複数の候補語の各候補語の確率に基づいて求めることができる。例えば、予め定められた閾値未満の確率を有する候補語を、決定される複数の候補語から除外することができる。
【０１５８】
手順７００のブロック７１６で、ブロック７１０の複数の候補語がランク付けされる。ランク付けは、一連の接触入力が与える複数の候補語の各候補語の確率に従って実行することができる。具体的には、複数の候補語を最高確率から最低確率の順にランク付けすることができる。一例において、第１の候補語「明日」および第２の候補語「秋田」は、一連の接触入力が第１の候補語「明日」を与える確率と、一連の接触入力が第２の候補語「秋田」を与える確率とに基づいてランク付けすることができる。上述の通り、一連の接触入力が第１の候補語「明日」を与える確率および一連の接触入力が第２の候補語「秋田」を与える確率はそれぞれ、一連の接触入力が第１の文字列「あした」を与える確率および一連の接触入力が第２の文字列「あきた」を与える確率に基づくことができる。そして、一連の接触入力が第１の文字列「あした」を与える確率および一連の接触入力が第２の文字列「あきた」を与える確率はそれぞれ、一連の接触入力のうちの接触入力が副文字キー８０４−１（図８Ｂ）の選択を意図した入力である確率および一連の接触入力のうちの接触入力が副文字キー８１６−１（図８Ｃ）の選択を意図した入力である確率に基づくことができる。
【０１５９】
複数の候補語は、一連の接触入力が与えられたときの各候補語の確率に基づいてランク付けされるので、ランク付けはブロック７０６で述べた、１つ以上のジオメトリモデルにモデル化されたさまざまなファクタに基づくことができることを理解すべきである。具体的には、ランク付けは、各キーの中心位置に対する接触入力の位置、フリック距離、フリック速度、フリック角度、接触強度、接触持続時間、およびマルチタップ入力の連続するタップ入力間の時間間隔といったファクタに基づくことができる。
【０１６０】
手順７００のブロック７１８で、ユーザ選択用の複数の候補語の一部をユーザ選択のために表示することができる。表示される一部は、ブロック７１０〜７１６で決定されランク付けされた複数の候補語のサブセットを含むことができる。一部の例において、複数の候補語の一部は、トップからＮ番目までのランクの候補語（Ｎは予め定められた整数）を含むことができる。複数の候補語の一部は第１の候補語および第２の候補語を含むことができる。第１の候補語および第２の候補語は、一連の接触入力に基づいて決定された異なる文字列に対応することができる。
【０１６１】
図８Ｄに関して、候補語「あした」「明日」「秋田」「浅田」および「アシタ」を単語選択インタフェース８２４に表示することができる。これらの候補語は一連の接触入力が与えられたときの複数の候補語のうち、上位４つの確率を有する候補語であってよい。具体的には、ユーザは特定の候補語を入力するために、単語選択インタフェース８２４を用いて、表示された候補語の１つを選択することができる。図示の通り、表示される候補語は第１の候補語８２６「明日」、第２の候補語８２８「秋田」、および第３の候補語８３０「浅田」を含んでいる。特にこの例では、表示される候補語が異なる文字列から決定された単語を含んでいる。具体的には、上述の通り、第１の候補語８２６「明日」、第２の候補語８２８「秋田」、および第３の候補語８３０「浅田」はそれぞれ、第１の文字列「あした」、第２の文字列「あきた」、および第３の文字列「あさた」に基づいて決定することができる。これら文字列の各々は、一連の接触入力の各接触入力に対応する、可能性のある様々な意図された入力を考慮することによって決定することができる。従って、候補語を１つの文字列（例えば第１の文字列「あした」）だけに基づいて決定する言語入力方法とは対照的に、手順７００は一連の接触入力に対応する様々な可能性のある文字列に基づいて、より広範な候補語を決定することができる。このようにして、ユーザの意図に一層対応した単語をユーザ選択のために表示することができる。さらに、手順は、意図された可能性のある接触入力に対応する候補語を決定ならびに表示することにより、意図しない接触入力（例えばタイプミス）を訂正できる。
【０１６２】
上述の例において、手順７００を日本語かなキーボード、日本語ひらがな文字列、および日本語候補単語列（例えばひらがな、カタカナ、漢字語）に関して説明したが、手順７００を他のキーボードインタフェースおよび書記体系（例えば中国語、韓国語など）にも実施可能であることを理解すべきである。さらに、手順７００を１つの言語のテキストを入力して別の言語に翻訳されたテキストを得るために実施することができることも想定できる。
【０１６３】
４．例示的な電子機器
一部の実施形態に従って、図９は上述した様々な実施形態の原理に合うように構成された電子機器９００の例示的な機能ブロック図を示している。一部の実施形態に従って、電子機器９００の機能ブロックは上述した手法を実行するように構成されている。機器９００の機能ブロックは、上述した様々な例の原理を実行するために、必要に応じてハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせによって実現される。上述した様々な原理を実施するために、図９に記載された機能ブロックが必要に応じて組み合わされたり複数のサブブロックに分割されたりすることは、本技術分野に属する当業者が理解するところである。従って、ここでの説明は、ここで説明する機能ブロックに関する、可能性のあるいかなる組み合わせ、分割、またはさらなる定義を必要に応じてサポートする。
【０１６４】
図９に示すように、電子機器９００は、グラフィカルユーザーインターフェース（例えばテキストフィールド、単語選択インタフェース、キーボードインタフェースなど）を表示するように構成された表示ユニット９０２と、必要に応じて、接触を受け付ける接触検知面ユニット９０４と、表示部９０２（および必要に応じて接触検知面ユニット９０４）に接続される処理ユニット９０６とを含んでいる。一部の実施形態において、表示ユニット９０２および接触検知面ユニット９０４は１つのユニット（例えば接触検知表示ユニット）であってよい。一部の実施形態において、処理ユニット９０６は、検出ユニット９０８、決定ユニット９１０、ランク付けユニット９１２、および表示ユニット９１４を含む。
【０１６５】
処理ユニット９０６は、表示ユニット９０２および／または接触検知面ユニット９０４上のキーボードインタフェースを通じて一連の接触入力を（例えば検出ユニットを用いて）検出するように構成される。一連の接触入力のある接触入力は、キーボードインタフェース上の第１の位置から第２の位置への接触移動を含む。処理ユニット９０６は、一連の接触入力に対応する複数の候補語を（例えば決定ユニット９１０を用いて）決定するようにさらに構成される。処理ユニット９０６は、接触入力がキーボードインタフェースの第１のキーを意図した入力である確率と、接触入力がキーボードインタフェースの第２のキーを意図した入力である確率とに基づいて複数の候補語を（例えばランク付けユニット９１２を用いて）ランク付けするようにさらに構成される。処理ユニット９０６は、複数の候補語の一部をユーザ選択のために（例えば表示ユニット９１４を用いて）表示ユニット９０２によって表示するようにさらに構成される。
【０１６６】
一部の実施形態において、第１のキーはある言語の第１の記述記号に対応し、第２のキーはその言語の第２の記述記号に対応する。一部の実施形態において、複数の候補語は第１の書記体系の単語と第２の書記体系の単語を含むことができる。
【０１６７】
一部の実施形態において、処理ユニット９０６は、一連の接触入力に対応する可能性のある複数の文字列を（例えば決定ユニット９１０を用いて）決定するようにさらに構成される。処理ユニット９０６は、ジオメトリモデルを用い、一連の接触入力が与えられたときの複数の文字列の各文字列の確率を（例えば決定ユニット９１０を用いて）求めるようにさらに構成され、複数の候補語は、一連の接触入力が与えられたときの複数の文字列の各文字列の確率に基づく複数の文字列から決定される。
【０１６８】
一部の実施形態において、複数の候補語は言語モデルの用語集に基づいて決定される。一部の実施形態において、接触入力がキーボードインタフェースの第１のキーを意図した入力である確率は、第１の位置と第１のキーの中心位置との距離に基づいて求められ、接触入力がキーボードインタフェースの第２のキーを意図した入力である確率は、第１の位置と第２のキーの中心位置との距離に基づいて求められる。
【０１６９】
一部の実施形態において、接触入力がキーボードインタフェースの第１のキーを意図した入力である確率および接触入力がキーボードインタフェースの第２のキーを意図した入力である確率はそれぞれ、接触移動の第１の位置と第２の位置との距離に基づいて求められる。
【０１７０】
一部の実施形態において、処理ユニット９０６は、一連の接触入力が与えられたときの各候補語の確率を（例えば決定ユニット９１０を用いて）求めるようにさらに構成され、複数の候補語のランク付けは一連の接触入力が与えられたときの各候補語の確率に基づく。
【０１７１】
一部の実施形態において、一連の接触入力が与えられたときの複数の候補語の各候補語の確率は、一連の接触入力が与えられたときの複数の文字列のそれぞれの文字列の確率に基づく。
【０１７２】
一部の実施形態において、処理ユニット９０６は、複数の文字列のある文字列が与えられたときの複数の候補語の各候補語の確率を（例えば決定ユニット９１０を用いて）求めるようにさらに構成され、一連の接触入力が与えられたときの複数の候補語の各候補語の確率は、複数の文字列のそれぞれの文字列が与えられたときの複数の候補語の各候補語の確率に基づいて求められる。
【０１７３】
一部の実施形態において、複数の文字列のうちある文字列が与えられたときの複数の候補語の各候補語の確率は、１つ以上の言語モデルを用いて求められる。
【０１７４】
一部の実施形態において、複数の候補語はトライデータ構造を有する用語集を用いて決定される。
【０１７５】
一部の実施形態において、複数の候補語は、第１の位置と、キーボードインタフェース上の各キーの中心位置との距離に基づいてランク付けされる。一部の実施形態において、複数の候補語は、接触移動の第１の位置と第２の位置との距離に基づいてランク付けされる。一部の実施形態において、複数の候補語は、第１の位置から第２の位置への接触移動の速度に基づいてランク付けされる。一部の実施形態において、複数の候補語は、キーボードインタフェースの基準軸に対する接触移動の角度に基づいてランク付けされる。一部の実施形態において、キーボードインタフェースはテンキーかなキーボードインタフェースである。
【０１７６】
一部の実施形態において、処理ユニット９０６は、表示ユニット９０２および／または接触検知面ユニット９０４上のキーボードインタフェースを通じて一連の接触入力を（例えば検出ユニットを用いて）検出するように構成される。一連の接触入力の、ある接触入力は、キーボードインタフェース上の第１の位置から第２の位置への接触移動を含む。処理ユニット９０６は、一連の接触入力に対応する第１の文字列を、表示ユニット９０２を通じてテキストフィールドに（例えば表示ユニット９１４を用いて）表示するようにさらに構成される。第１の文字列は、接触移動に対応する第１の文字を含む。処理ユニット９０６は、一連の接触入力に対応する複数の候補語を（例えば決定ユニット９１０を用いて）決定するようにさらに構成される。複数の候補語は第１の候補語および第２の候補語を含む。第１の候補語は第１の文字列に基づき、第２の候補語は一連の接触入力に対応する第２の文字列に基づく。第２の文字列は、接触移動に対応する第２の文字を含む。処理ユニット９０６は、複数の候補語の一部をユーザ選択のために（例えば表示ユニット９１４を用いて）表示ユニット９０２によって表示するようにさらに構成される。この一部は、第１の候補語および第２の候補語を含む。
【０１７７】
一部の実施形態において、第１の文字はキーボードインタフェースの第１のキーに対応し、第２の文字はキーボードインタフェースの（第１のキーと異なる）第２のキーに対応する。一部の実施形態において、第１の文字列および第２の文字列はそれぞれ第１の書記体系の文字を含み、複数の候補語は第１の書記体系の単語と第２の書記体系の単語を含む。
【０１７８】
一部の実施形態において、処理ユニット９０６は、一連の接触入力に対応する複数の文字列を（例えば決定ユニット９１０を用いて）決定するようにさらに構成され、複数の文字列は第１の文字列および第２の文字列を含む。処理ユニット９０６は、ジオメトリモデルを用い、一連の接触入力が与えられたときの複数の文字列の各文字列の確率を（例えば決定ユニット９１０を用いて）求めるようにさらに構成され、複数の候補語は、一連の接触入力が与えられたときの複数の文字列の各文字列の確率に基づいて決定される。
【０１７９】
一部の実施形態において、一連の接触入力が与えられたときの複数の文字列の各文字列の確率は、第１の位置とキーボードインタフェース上の各キーの中心位置との距離に基づいて求めるられる。一部の実施形態において、一連の接触入力が与えられたときの複数の文字列の各文字列の確率は、接触移動の第１の位置と第２の位置との距離に基づいて求められる。
【０１８０】
一部の実施形態において、一連の接触入力が与えられたときの複数の文字列の各文字列の確率は、第１の位置から第２の位置への接触移動の速度に基づいて求められる。一部の実施形態において、一連の接触入力が与えられたときの複数の文字列の各文字列の確率は、キーボードインタフェースの基準軸に対する接触移動の角度に基づいて求められる。
【０１８１】
一部の実施形態において、処理ユニット９０６は、複数の文字列のある文字列が与えられたときの複数の候補語の各候補語の確率を（例えば決定ユニット９１０を用いて）求めるようにさらに構成され、複数の候補語は、複数の文字列のある文字列が与えられたときの複数の候補語の各候補語の確率に基づいて決定される。
【０１８２】
一部の実施形態において、複数の候補語はトライデータ構造を有する用語集を用いて決定される。一部の実施形態において、キーボードインタフェースはテンキーかなキーボードインタフェースである。
【０１８３】
一部の実施形態において、処理ユニット９０６は、表示ユニット９０２および／または接触検知面ユニット９０４上のキーボードインタフェースを通じて一連の接触入力を（例えば検出ユニットを用いて）検出するように構成される。一連の接触入力の、ある接触入力は、キーボードインタフェースのあるキーへの第１の接触と、キーボードインタフェースの同じキーへの第２の接触とを含む。処理ユニット９０６は、一連の接触入力に対応する第１の文字列を、表示ユニット９０２上のテキストフィールドに（例えば表示ユニット９１４を用いて）表示するようにさらに構成され、第１の文字列は接触入力に対応する第１の文字を含む。処理ユニット９０６は、一連の接触入力に対応する複数の候補語を（例えば決定ユニット９１０を用いて）決定するようにさらに構成される。複数の候補語は第１の候補語および第２の候補語とを含み、第１の候補語は第１の文字列に基づき、第２の候補語は一連の接触入力に対応する第２の文字列に基づく。第２の文字列は、接触入力に対応する第２の文字を含む。処理ユニット９０６は、複数の候補語の一部をユーザ選択のために（例えば表示ユニット９１４を用いて）表示ユニット９０２によって表示するようにさらに構成される。この一部は、第１の候補語および第２の候補語とを含む。
【０１８４】
一部の実施形態において、接触入力はさらに、第１の接触と第２の接触との間に接触の中断を有する。一部の実施形態において、第１の文字列および第２の文字列はそれぞれ第１の書記体系の文字を含み、複数の候補語は第１の書記体系の単語と第２の書記体系の単語を含む。
【０１８５】
一部の実施形態において、処理ユニット９０６は、一連の接触入力に対応する可能性のある複数の文字列を（例えば決定ユニット９１０を用いて）決定するようにさらに構成され、複数の文字列は第１の文字列および第２の文字列を含む。処理ユニット９０６は、ジオメトリモデルを用い、一連の接触入力が与えられたときの複数の文字列の各文字列の確率を（例えば決定ユニット９１０を用いて）求めるようにさらに構成され、複数の候補語は、一連の接触入力が与えられたときの複数の文字列の各文字列の確率に基づいて決定される。
【０１８６】
一部の実施形態において、第１の文字はキーボードインタフェースのキーに対する予め定められた第１の入力パターンに対応し、第２の文字はキーボードインタフェースのキーに対する予め定められた第２の入力パターンに対応する。
【０１８７】
一部の実施形態において、処理ユニット９０６は、接触入力が予め定められた第２の入力パターンを含む確率を（例えば決定ユニット９１０を用いて）求めるようにさらに構成され、一連の接触入力が与えられたときの複数の文字列の各文字列の確率は、接触入力が予め定められた第２の入力パターンを含む確率に基づいて求められる。
【０１８８】
一部の実施形態において、接触入力が予め定められた第２の入力パターンを含む確率は、第１の接触または第２の接触の強度に基づいて求められる。一部の実施形態において、接触入力が予め定められた第２の入力パターンを含む確率は、第１の接触または第２の接触の持続時間に基づいて求められる。一部の実施形態において、接触入力が予め定められた第２の入力パターンを含む確率は、キーの中心位置と、第１の接触または第２の接触の位置との距離に基づいて求められる。一部の実施形態において、接触入力が予め定められた第２の入力パターンを含む確率は、第１の接触と第２の接触との時間間隔に基づいて求められる。
【０１８９】
一部の実施形態において、処理ユニット９０６は、複数の文字列のある文字列が与えられたときの複数の候補語の各候補語の確率を（例えば決定ユニット９１０を用いて）求めるようにさらに構成され、複数の候補語は、一連の接触入力が与えられたときの複数の候補語の各候補語の確率に基づいて決定される。
【０１９０】
一部の実施形態において、複数の候補語はトライデータ構造を有する用語集を用いて決定される。一部の実施形態において、キーボードインタフェースはテンキーかなキーボードインタフェースである。
【０１９１】
図７に関して上述した動作は、必要に応じて図１Ａ〜図１Ｂまたは図９に示した構成要素によって実施される。例えば、検出動作７０２、決定動作７０４、７０６、７１０、７１２、７１４、ランク付け動作７１６、および表示動作７０８、７１８はテキスト入力モジュール１３４によって実施することができる。テキスト入力モジュール１３４は、タッチディスプレイ１１２に表示されたキーボードインタフェースを通じて一連の接触入力を検出することができる。テキスト入力モジュール１３４は、一連の接触入力に対応する可能性のある複数の文字列を決定することができる。テキスト入力モジュール１３４は、一連の接触入力が与えられたときの各文字列の確率を（例えばテキスト入力モジュール１３４のジオメトリモデルを用いて）求めることができる。テキスト入力モジュール１３４は、タッチディスプレイ１１２に表示されたテキストフィールドに複数の文字列の第１の文字列を表示することができる。テキスト入力モジュール１３４は、一連の接触入力に対応する複数の候補語を決定することができる。テキスト入力モジュール１３４は、複数の文字列のうち、ある文字列が与えられたときの各候補語の確率を（例えばテキスト入力モジュール１３４の言語モデルを用いて）求めることができる。テキスト入力モジュール１３４は、一連の接触入力が与えられたときの各候補語の確率を求めることができる。テキスト入力モジュール１３４は、接触入力がキーボードインタフェースの第１のキーを意図した入力である確率と、接触入力がキーボードインタフェースの第２のキーを意図した入力である確率とに基づいて複数の候補語をランク付けすることができる。テキスト入力モジュール１３４は、複数の候補語の一部をユーザ選択のためにタッチディスプレイ１１２に表示することができる。同様に、図１Ａ〜図１Ｂに記載された構成要素に基づいて他の手順をどのように実施できるかは、本技術分野に属する当業者には明らかであろう。
【０１９２】
ここまで、説明を目的として、特定の実施形態に関して記述してきた。しかし、ここまでの具体的な記述は、本発明を網羅したり、開示された形態そのものに本発明を限定したりすることを意図していない。ここでの教示に鑑みて多くの変形物および派生物が可能である。実施形態は、手法の原理およびその実際的な用途をもっとも適切に説明するために選択され、また記述されたものである。従って、本技術分野に属する当業者は、想定される特定の用途に適したように様々な変更を加えることにより、手法および様々な実施形態を適切に利用することが可能である。
【０１９３】
開示および例示を添付図面に関して十分に説明してきたが、本技術分野に属する当業者には、様々な変更や修正が明らかになるであろうことに留意されたい。そのような変更や修正は、特許請求の範囲に規定されるように、本開示および例示の範囲に含まれるものと解されるべきである。
【図１Ａ】
0006404267.tif 000003
【図１Ｂ】
0006404267.tif 000004
【図２】
0006404267.tif 000005
【図３】
0006404267.tif 000006
【図４Ａ】
0006404267.tif 000007
【図４Ｂ】
0006404267.tif 000008
【図５Ａ】
0006404267.tif 000009
【図５Ｂ】
0006404267.tif 000010
【図６Ａ】
0006404267.tif 000011
【図６Ｂ】
0006404267.tif 000012
【図６Ｃ】
0006404267.tif 000013
【図７】
0006404267.tif 000014
【図８Ａ】
0006404267.tif 000015
【図８Ｂ】
0006404267.tif 000016
【図８Ｃ】
0006404267.tif 000017
【図８Ｄ】
0006404267.tif 000018
【図９】
0006404267.tif 000019