(58)【調査した分野】(Int.Cl.,DB名)
前記提案される連絡先情報の選択に対応する入力が、前記エンティティにコンタクトするアプリケーションを呼び出すことを防止することを含む、請求項1に記載の方法。
請求項3に記載の方法であって、前記第2のユーザインタフェースは、選択された場合、前記電子デバイスに、前記第2のユーザインタフェースオブジェクトを表示することを中止させる、前記特定された連絡先情報に関連付けられた第3のユーザインタフェースオブジェクトを含む、方法。
請求項3又は10に記載の方法であって、前記特定された連絡先情報を前記データベースへ追加することに応じて、前記第1のユーザインタフェースオブジェクトの表示を中止することを含む、方法。
【発明を実施するための形態】
【0012】
以下の開示及び実施形態の説明では、実施することができる特定の実施形態が実例として示されている添付の図面を参照する。本開示の範囲から逸脱することなく、他の実施形態及び実施例を実施することができ、変更を行うことができることを理解されたい。
【0013】
上述のように、連絡先及びカレンダーイベントを電子デバイス上で管理することは、ユーザにとって煩わしい場合があるが、それは、連絡先又はカレンダーイベントを追加又は更新することは、時間がかかる幾つかの手作業の工程が必要であるためである。このため、多くのユーザは、アドレス帳及びカレンダーを最新の状態に維持することを容易に怠り、ユーザが特定の連絡先又はイベント情報について、彼らのデバイスを手作業で検索する必要がある時、後により多くの時間がかかってしまう。これにより、ユーザは、苛立たしい経験をし、生産性の損失がもたらされる場合がある。
【0014】
本開示は、ユーザのメッセージに基づいて、ユーザのための連絡先及びカレンダーイベントを自動的に提案する電子デバイスを提供することにより、この課題に取り組むものである。本デバイスは、ユーザのメッセージを、連絡先及びイベント情報に関して分析し、この情報に基づいてユーザのための提案される連絡先及びカレンダーイベントを自動的に生成又は更新することができる。提案される連絡先及びカレンダーイベントは、ユーザにより手入力されたかのように検索可能であり、ユーザは、提案される連絡先及びカレンダーイベントを追加するか、又は無視するかを選択することができる。このように、ユーザの連絡先及びカレンダーイベントを、ユーザの側における労力を必要とせずに、又は最小限の労力により維持することができる。これにより、ユーザの時間を節約することができ、生産性を向上させ、より効率的なヒューマンマシンインタフェースを生成することができる。
1.例示的なデバイス
【0015】
以下において、
図1A、
図1B、
図2、及び
図3は、連絡先及びイベント情報を提案するための技術を実行するための例示的なデバイスの説明を提供する。
図4A、
図4B及び
図6A〜6Gは、連絡先及びイベント情報を提案するための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、
図7A〜
図13のプロセスを含めた、以下で説明されるプロセスを例示するために使用される。
【0016】
以下の説明では、様々な要素を説明するために「第1」、「第2」などの用語が使用されるが、これらの要素はこれらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施形態の範囲から逸脱することなく、第1のタッチは第2のタッチと称することができ、同様に、第2のタッチは第1のタッチと称し得る。第1のタッチと第2のタッチはともにタッチであるが、同じタッチではない。
【0017】
本明細書で説明される様々な実施形態の説明で使用される用語法は、特定の実施形態を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施形態の説明及び添付の特許請求の範囲で使用されるとき、単数形「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用される時に、用語「及び/又は」が、関連する列挙された項目のうちの1つ以上の全ての可能な任意の組み合わせを指し、かつこれを含むことをもまた理解されたい。更に、用語「includes(含む)」、「including(含む)」、「comprises(備える)」、及び/又は「comprising(備える)」は、本明細書で使用される場合、記述される特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらの群の存在若しくは追加を排除するものではないことが理解されるであろう。
【0018】
用語「if(〜場合に)」は、文脈に応じて「when(〜ときに)」、「upon(〜ときに)」、「in response to determining(〜という判定に応じて)」、又は「in response to detecting(〜を検出したことに応じて)」を意味すると解釈することができる。同様に、句「if it is determined(〜と判定される場合に)」又は「if[a stated condition or event]is detected([述べられる条件又はイベント]が検出される場合に)」は、文脈に応じて「upon determining(〜と判定される時に)」、「in response to determining(〜との判定に応じて)」、「upon detecting [the stated condition or event]([述べられる条件又はイベント]の検出時に)」、又は「in response to detecting[the stated condition or event]([述べられる条件又はイベント]の検出に応じて)」を意味すると解釈することができる。
【0019】
電子デバイス、そのようなデバイス用のユーザインタフェース、及びそのようなデバイスを使用するための関連プロセスの、実施形態を説明する。いくつかの実施形態では、このデバイスは、PDA機能及び/又は音楽再生機能などの、他の機能をも含む、モバイル電話機などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態は、限定を伴わずに、California州CupertinoのApple Inc.のiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスを含む。タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えたラップトップ又はタブレットコンピュータなど他のポータブル電子デバイスも、任意選択的に、使用できる。いくつかの実施形態では、このデバイスは、ポータブル通信デバイスではなく、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えたデスクトップコンピュータであることも理解されるであろう。
【0020】
以下の論考では、ディスプレイ及びタッチ感知面を備える電子デバイスを説明する。しかし、この電子デバイスが、物理キーボード、マウス、及び/又はジョイスティックなどの1つ以上の他の物理ユーザインタフェースデバイスを任意選択的に含むことを理解されたい。
【0021】
そのデバイスは、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、ビデオ会議アプリケーション、電子−メールアプリケーション、インスタントメッセージングアプリケーション、トレーニングサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽再生アプリケーション、及び/又はデジタルビデオ再生アプリケーションのうちの1つ以上など、様々なアプリケーションをサポートすることができる。
【0022】
このデバイス上で実行される様々なアプリケーションは、タッチ感知面などの、少なくとも1つの共通の物理ユーザインタフェースデバイスを、任意選択的に使用する。タッチ感知面の1つ以上の機能並びにデバイス上に表示される対応する情報は、1つのアプリケーションから次のアプリケーションへ、及び/又は対応するアプリケーションの中で、任意選択的に、調整、及び/又は変更される。この方式で、そのデバイスの共通の(タッチ感知面などの)物理アーキテクチャは、ユーザにとって直観的かつ透過的なユーザインタフェースを有する様々なアプリケーションを、任意選択的にサポートする。
【0023】
ここで、タッチ感知ディスプレイを備えるポータブルデバイスの実施形態に注意を向ける。
図1Aは、いくつかの実施形態に係る、タッチ感知ディスプレイシステム112を備えたポータブル多機能デバイス100を示すブロック図である。タッチ感知ディスプレイ112は、便宜上「タッチスクリーン」と呼ばれる場合があり、「タッチ感知ディスプレイシステム」として既知であるか、又はそのように呼ばれる場合もある。デバイス100は、メモリ102(任意選択的に、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ122、1つ以上の処理ユニット(CPU)120、周辺機器インタフェース118、RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、入出力(I/O)サブシステム106、その他の入力制御デバイス116、及び外部ポート124を含む。デバイス100は、1つ以上の光センサ164を、任意選択的に含む。デバイス100は、デバイス100(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)上の接触の強度を検出するための、1つ以上の接触強度センサ165を、任意選択的に含む。デバイス100は、デバイス100上に触知出力を生成する(例えば、デバイス100のタッチ感知ディスプレイシステム112又はデバイス300のタッチパッド355などの、タッチ感知面上に触知出力を生成する)ための、1つ以上の触知出力生成器167を、任意選択的に含む。これらの構成要素は、1つ以上の通信バス又は信号ライン103を介して、任意選択的に通信する。
【0024】
本明細書及び特許請求の範囲で使用されるとき、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指接触)の力又は圧力(単位面積当りの力)、あるいはタッチ感知面上の接触の力又は圧力の代替物(代用物)を指す。接触の強度は、少なくとも4つの異なる数値を含み、より典型的には、数百以上の異なる数値(例えば、少なくとも256)を含む、数値の範囲を有する。接触の強度は、様々な方法及び様々なセンサ、又はセンサの組み合わせを使用して、任意選択的に、判定(又は、測定)される。例えば、タッチ感知面の下に又は隣接して配置された1つ以上のセンサは、タッチ感知面上の様々な点における力を測定するために、任意選択的に用いられる。いくつかの実装において、複数の力センサの力測定値を組み合わせて(例えば、加重平均)、接触の推定の力を判定する。同様に、スタイラスの感圧性先端部を任意選択的に使用して、タッチ感知面上のスタイラスの圧力を判定する。別の方法としては、タッチ感知面上で検出される接触領域のサイズ及び/若しくはその変化、接触に近接するタッチ感知面の電気容量及び/若しくはその変化、並びに/又は、接触に近接するタッチ感知面の抵抗及び/若しくはその変化が、タッチ感知面上の接触の力又は圧力の代用物として、任意選択的に用いられる。いくつかの実施形態では、接触の力又は圧力の代替的測定値は、強度閾値を超えているかを判定するために直接に用いられる(例えば、強度閾値は、代替的測定値に対応する単位で記述される)。いくつかの実施形態では、接触の力又は圧力の代替的測定値は、推定される力又は圧力に変換され、この推定される力又は圧力を用いて、強度閾値を超えているか判定される(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。接触の強度をユーザ入力の属性として使用することは、アフォーダンスを(例えば、タッチ感知ディスプレイ上に)表示するため、及び/又はユーザ入力を(例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタンなどの物理的/機械的制御を介して)受信するための面積が制限された、低減されたサイズのデバイスにおいて、ユーザによるアクセスが他の場合に不可能であり得る、追加のデバイス機能へのユーザのアクセスを可能にする。
【0025】
本明細書及び特許請求の範囲で使用される時、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、デバイスの別の構成要素(例えば、筐体)に対する物理的変位、又はデバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況において、物理的変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的特性の認識された変化に相当する触感として、ユーザによって解釈される。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として、任意選択的に解釈される。いくつかの場合、ユーザの移動により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がない時でさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じる。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない時でさえ、タッチ感知面の「粗さ」としてユーザによって、任意選択的に、解釈又は感じられる。このようなユーザによるタッチの解釈は、ユーザの個別の感覚認知によるが、大多数のユーザに共通したタッチの感覚認知が数多くある。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
【0026】
デバイス100は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス100は、示されるものよりも多いか又は少ない構成要素を任意選択的に有するか、2つ以上の構成要素を任意選択的に組み合わせるか、又は構成要素の異なる構成若しくは配置を任意選択的に有することを理解されたい。
図1Aに示される様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの双方の組み合わせの形態で実装される。
【0027】
メモリ102は、1つ以上のコンピュータ可読記憶媒体を含んでもよい。コンピュータ可読記憶媒体は、有形かつ非一時的であってもよい。メモリ102は高速ランダムアクセスメモリを含んでよく、また、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性固体メモリデバイスなどの、不揮発性メモリを含んでもよい。メモリコントローラ122は、デバイス100の他の構成要素によるメモリ102へのアクセスを制御してもよい。
【0028】
周辺機器インタフェース118を使用して、このデバイスの入力及び出力周辺機器を、CPU120及びメモリ102に連結することができる。1つ以上のプロセッサ120は、デバイス100のための様々な機能を実行するため並びにデータ処理を行うために、メモリ102に記憶された様々なソフトウェアプログラム及び/若しくは命令セットを走らせたり、又は実行したりする。いくつかの実施形態では、周辺機器インタフェース118、CPU120、及びメモリコントローラ122はチップ104などの単一チップ上に実装されてもよい。一部の他の実施形態では、それらは、別個のチップ上に実装することができる。
【0029】
RF(無線周波数)回路108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路108は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路108は、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(SIM)カード、メモリなどを含むがこれらに限定されない、上記の機能を実行するための周知の回路を、任意選択的に含む。RF回路108は、インターネット情報検索システム(WWW)とも呼ばれるインターネットなどのネットワーク、セルラー電話ネットワークなどのイントラネット及び/又は無線ネットワーク、無線ローカルエリアネットワーク(LAN)及び/又はメトロポリタンエリアネットワーク(MAN)、及び他のデバイスと無線通信によって、任意選択的に通信する。RF回路108は、近距離無線通信(near field communication、NFC)を、例えば、狭域無線により検出するための周知の回路を任意選択的に含む。無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを、任意選択的に使用し、それらの通信規格、通信プロトコル、及び通信技術としては、移動通信用のグローバルシステム(Global System for Mobile Communications、GSM(登録商標))、拡張データGSM環境(Enhanced Data GSM Environment、EDGE)、高速ダウンリンクパケット接続(high−speed downlink packet access、HSDPA)、高速アップリンクパケット接続(high−speed uplink packet access、HSUPA)、Evolution,Data−Only(EV−DO)、HSPA、HSPA+、2重セルHSPA(Dual−Cell HSPA、DC−HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離無線通信(near field communication、NFC)、広帯域符号分割多元接続(wideband code division multiple access、W−CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth(登録商標)、Bluetooth Low Energy(BTLE)、Wireless Fidelity(Wi−Fi)(登録商標)(例えば、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n、及び/又はIEEE 802.11ac)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol、VoIP)、Wi−MAX、電子−メール用のプロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol、IMAP)及び/又はポストオフィスプロトコル(post office protocol、POP))、インスタントメッセージング(例えば、拡張可能メッセージング及びプレゼンスプロトコル(extensible messaging and presence protocol、XMPP)、インスタントメッセージング及びプレゼンス利用拡張向けセッション開始プロトコル(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions、SIMPLE)、インスタントメッセージング及びプレゼンスサービス(Instant Messaging and Presence Service、IMPS))、及び/又はショートメッセージサービス(Short Message Service、SMS)、あるいは本文書の出願日現在までに未だ開発されていない通信プロトコルを含めた任意の他の好適な通信プロトコルが挙げられるが、これらに限定されない。
【0030】
オーディオ回路110、スピーカ111、及びマイクロフォン113は、ユーザとデバイス100との間のオーディオインタフェースを提供する。音声回路110は、周辺機器インタフェース118から音声データを受信し、音声データを電気信号に変換し、電気信号をスピーカ111に送信する。スピーカ111は、電気信号を人間の可聴音波に変換する。音声回路110は、マイクロフォン113により音波から変換された電気信号も受信する。音声回路110は、電気信号を音声データに変換し、処理するために音声データを周辺機器インタフェース118に送出する。オーディオデータは周辺機器インタフェース118によって、メモリ102及び/又はRF回路機構108から取得され、かつ/あるいはメモリ102及び/又はRF回路機構108に送信されてもよい。いくつかの実施形態では、オーディオ回路110は更にヘッドセットジャック(例えば、
図2の212)を備える。ヘッドセットジャックは、オーディオ回路110と、出力専用ヘッドホン又は出力(例えば、片耳又は両耳用のヘッドホン)及び入力(例えば、マイクロホン)の両方を持つヘッドセットなどの、取り外し可能なオーディオ入出力周辺機器との間のインタフェースを提供する。
【0031】
I/Oサブシステム106は、周辺機器インタフェース118に、タッチスクリーン112及び他の入力制御デバイス116などのデバイス100の入出力周辺機器を連結する。I/Oサブシステム106は、ディスプレイコントローラ156、光センサコントローラ158、強度センサコントローラ159、触覚フィードバックコントローラ161、及び他の入力又は制御デバイス用の1つ以上の入力コントローラ160を、任意選択的に含む。1つ以上の入力コントローラ160は、他の入力制御デバイス116から/へ電気信号を受信/送信する。他の入力制御デバイス116は、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイアル、スライダースイッチ、ジョイスティック、クリックホイールなどを、任意選択的に含む。いくつかの代替的実施形態において、入力コントローラ(1つ又は複数)160は、キーボード、赤外線ポート、USBポート、及びマウスなどのポインタデバイスのうちのいずれかに、任意選択的に連結される(又は、いずれにも連結されない)。1つ以上のボタン(例えば、
図2の208)は、スピーカ111及び/又はマイクロフォン113の音量調節のためのアップ/ダウンボタンを、任意選択的に含む。1つ以上のボタンは、プッシュボタン(例えば、
図2の206)を、任意選択的に含む。
【0032】
2005年12月23日に出願された、米国特許第7,657,849号である米国特許出願第11/322,549号、「Unlocking a Device by Performing Gestures on an Unlock Image」に記載されているように、プッシュボタンの素早い押下により、タッチスクリーン112のロックが解かれるか、又はタッチスクリーン上のジェスチャを用いてデバイスをロック解除する処理が開始されてもよい。同出願はその全体が本明細書において参照により組み込まれている。プッシュボタン(例えば、206)のより長い押下により、デバイス100への電源が入れられるか又は切られてもよい。ユーザは、1つ以上のボタンの機能性をカスタマイズすることが可能であってもよい。タッチスクリーン112は、仮想若しくはソフトボタン並びに1つ以上のソフトキーボードを実現するために用いられる。
【0033】
タッチ感知ディスプレイ112は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ156は、タッチスクリーン112から/へ電気信号を受信し及び/又は送信する。タッチスクリーン112は、ユーザに視覚出力を表示する。この視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ(「グラフィック」と総称される)を含み得る。いくつかの実施形態では、これらの視覚出力の一部又は全てはユーザインタフェースオブジェクトに対応してもよい。
【0034】
タッチスクリーン112は、触覚及び/若しくは触感の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有している。タッチスクリーン112及びディスプレイコントローラ156(メモリ102内の任意の関連モジュール及び/又は命令セットと共に)は、タッチスクリーン112上で接触(及び任意の動作又は接触の中断)を検出し、検出された接触をタッチスクリーン112上に表示されたユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との対話に変換する。ある例示的な実施形態では、タッチスクリーン112とユーザとの間の接触は、ユーザの指に対応する。
【0035】
タッチスクリーン112は、LCD(liquid crystal display、液晶ディスプレイ)技術、LPD(light emitting polymer display、発光ポリマーディスプレイ)技術、又はLED(light emitting diode、発光ダイオード)技術を用いてもよいが、他の実施形態では、その他のディスプレイ技術が使用されてもよい。タッチスクリーン112及びディスプレイコントローラ156は、限定するものではないが、静電容量技術、抵抗性技術、赤外線技術、及び表面超音波技術、並びにタッチスクリーン112との1つ以上の接触点を判定するための、他の近接センサアレイ又は他の要素を含む、現在知られているか若しくは今後開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及びそのあらゆる移動若しくは中断を検出してもよい。例示的な実施形態では、California州CupertinoのApple Inc.からのiPhone及びiPod Touchにおいて見られるものなどの、投影型相互キャパシタンス感知技術が使用されている。
【0036】
タッチスクリーン112のいくつかの実施形態におけるタッチ感知ディスプレイは、以下の米国特許、第6,323,846号(Westermanら)、第6,570,557号(Westermanら)、及び/若しくは第6,677,932号(Westerman)、並びに/又は米国特許出願公開第2002/0015024(A1)号に記載されているマルチタッチ感知タッチパッドに類似していてもよい。これらの文献はそれぞれその全体が本明細書において参照により組み込まれている。ただし、タッチスクリーン112はデバイス100からの視覚出力を表示するのに対して、タッチ感知タッチパッドは視覚出力を提供しない。
【0037】
タッチスクリーン112のいくつかの実施形態におけるタッチ感知ディスプレイは、以下の出願で説明されているとおりであってもよい。(1)米国特許出願第11/381,313号、「Multipoint Touch Surface Controller」、2006年5月2日出願、(2)米国特許出願第10/840,862号、「Multipoint Touchscreen」、2004年5月6日出願、(3)米国特許出願第10/903,964号、「Gestures For Touch Sensitive Input Devices」、2004年7月30日出願、(4)米国特許出願第11/048,264号、「Gestures For Touch Sensitive Input Devices」、2005年1月31日出願、(5)米国特許出願第11/038,590号、「Mode−Based Graphical User Interfaces For Touch Sensitive Input Devices」、2005年1月18日出願、(6)米国特許出願第11/228,758号、「Virtual Input Device Placement On A Touch Screen User Interface」、2005年9月16日出願、(7)米国特許出願第11/228,700号、「Operation Of A Computer With A Touch Screen Interface」、2005年9月16日出願、(8)米国特許出願第11/228,737号、「Activating Virtual Keys Of A Touch−Screen Virtual Keyboard」、2005年9月16日出願、及び(9)米国特許出願第11/367,749号、「Multi−Functional Hand−Held Device」、2006年3月3日出願。これらの出願は全てそれらの全体が本明細書において参照により組み込まれている。
【0038】
タッチスクリーン112は、100dpiを超えるビデオ解像度を有してもよい。いくつかの実施形態において、タッチスクリーンは約160dpiの映像解像度を有する。ユーザは、スタイラス、指などの、任意の好適な物体又は付属物を使用して、タッチスクリーン112に接触してよい。いくつかの実施形態では、ユーザインタフェースは、主として指に基づく接触及びジェスチャで機能するように設計され、タッチスクリーン上の指の接触面積が広いことにより、スタイラスに基づく入力よりも精度が低いことがある。いくつかの実施形態では、デバイスは、粗い指に基づく入力を正確なポインタ/カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
【0039】
いくつかの実施形態では、タッチスクリーンに加えて、デバイス100は、特定の機能をアクティブ化又は停止させるためのタッチパッド(図示せず)を含んでもよい。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知エリアである。タッチパッドは、タッチスクリーン112とは別個のタッチ感知面、又はタッチスクリーンによって形成されるタッチ感知面の拡張部であってもよい。
【0040】
デバイス100はまた、様々な構成要素に電力を供給するための電力システム162をも含む。電力システム162は、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC:alternating current))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイスにおける電力の生成、管理、及び分配に関連付けられる任意の他の構成要素を含んでもよい。
【0041】
デバイス100は1つ以上の光センサ164も含んでもよい。
図1Aは、I/Oサブシステム106内の光センサコントローラ158に結合された光センサを示す。光センサ164は、電荷結合素子(CCD:charge−coupled device)又は相補的金属酸化物半導体(CMOS:complementary metal−oxide semiconductor)フォトトランジスタを含んでもよい。光センサ164は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール143(カメラモジュールとも呼ばれる)と連動して、光センサ164は静止画像又はビデオを取り込んでもよい。いくつかの実施形態では、タッチスクリーンディスプレイを静止画像及び/又はビデオ画像取得のためのビューファインダとして使用することができるように、デバイスの前面のタッチスクリーンディスプレイ112の反対側である、デバイス100の背面に光センサが配置されている。いくつかの実施形態では、ユーザが他のビデオ会議参加者をタッチスクリーンディスプレイ上で見るのと同時に、ユーザの画像をビデオ会議のために得ることができるように、デバイスの前面に光センサが配置されている。いくつかの実施形態では、光センサ164の位置はユーザによって(例えば、デバイス筐体内のレンズ及びセンサを回転させることによって)変更されることができ、それにより、単一の光センサ164をタッチスクリーンディスプレイと共にビデオ会議並びに静止画像及び/若しくはビデオ画像取得のどちらにも用い得るようにしている。
【0042】
デバイス100はまた、1つ以上の接触強度センサ165をも任意選択的に含む。
図1Aは、I/Oサブシステム106内の強度センサコントローラ159に結合された、接触強度センサを示す。接触強度センサ165は、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(又は圧力)を測定するために使用するセンサ)を、任意選択的に含む。接触強度センサ165は、環境から接触強度情報(例えば、圧力情報又は圧力情報のプロキシ)を受信する。いくつかの実施形態において、少なくとも1つの接触強度センサが、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)に併置されているか、又は近接している。いくつかの実施形態において、少なくとも1つの接触強度センサが、デバイス100の前面に配置されたタッチスクリーンディスプレイ112の反対側である、デバイス100の背面に配置されている。
【0043】
デバイス100は1つ以上の近接センサ166を含んでもよい。
図1Aは、周辺機器インタフェース118に連結された近接センサ166を示す。その代わりに、近接センサ166は、I/Oサブシステム106内の入力コントローラ160に結合されてもよい。近接センサ166は、米国特許出願第11/241,839号、「Proximity Detector In Handheld Device」、第11/240,788号、「Proximity Detector In Handheld Device」、同第11/620,702号、「Using Ambient Light Sensor To Augment Proximity Sensor Output」、同第11/586,862号、「Automated Response To And Sensing Of User Activity In Portable Devices」、及び同第11/638,251号、「Methods And Systems For Automatic Configuration Of Peripherals」で説明されているように動作してもよく、これらの文献は、その全体が参照により本明細書に組み込まれる。一部の実施形態では、この多機能デバイスが、ユーザの耳の近くに配置される場合(例えば、ユーザが電話通話を行っている場合)、近接センサは、タッチスクリーン112をオフにして無効化する。
【0044】
デバイス100はまた、1つ以上の触知出力生成器167をも任意選択的に含む。
図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161に結合された、触知出力生成器を示す。触知出力生成器167は、スピーカ又は他の音声構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)などの、エネルギーを直線運動に変換する電気機械デバイスを、任意選択的に含む。接触強度センサ165は、触覚フィードバックモジュール133から触覚フィードバック生成命令を受信し、デバイス100のユーザが感知できる触知出力をデバイス100上で生成する。いくつかの実施形態において、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)と併置されているか、又は近接しており、任意選択的に、タッチ感知面を垂直方向に(例えば、デバイス100の表面の内/外)又は横方向(例えば、デバイス100の表面と同じ平面の前後方向)に移動することによって、触知出力を生成する。いくつかの実施形態において、少なくとも1つの触知出力生成器センサは、デバイス100の前面に配置されたタッチスクリーンディスプレイ112の反対側である、デバイス100の背面に配置されている。
【0045】
デバイス100は更に、1つ以上の加速度計168を備えてもよい。
図1Aは、周辺機器インタフェース118に連結された加速度計168を示す。その代わりに、加速度計168は、I/Oサブシステム106内の入力コントローラ160に結合されてもよい。加速度計168は、米国特許出願公開第20050190059号、「Acceleration−based Theft Detection System for Portable Electronic Devices」、及び米国特許出願公開第20060017692号、「Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer」に記載されているように動作してもよく、これらの文献はどちらも、その全体が参照により本明細書に組み込まれている。いくつかの実施形態において、情報は、1つ以上の加速度計から受信したデータの分析に基づいて、ポートレートビュー又はランドスケープビューでタッチスクリーンディスプレイ上に表示される。デバイス100は、必要に応じて、加速度計(1つ又は複数)168に加えて、磁力計(図示せず)並びにデバイス100の位置及び向き(例えば、ポートレート又はランドスケープ)に関する情報を取得するためのGPS(又はGLONASS又は他のグローバルナビゲーションシステム)受信部(図示せず)を、任意選択的に含む。
【0046】
いくつかの実施形態において、メモリ102に記憶されたソフトウェアコンポーネントは、オペレーティングシステム126、通信モジュール(又は命令セット)128、接触/動きモジュール(又は命令セット)130、グラフィックモジュール(又は命令セット)132、テキスト入力モジュール(又は命令セット)134、全地球測位システム(GPS)モジュール(又は命令セット)135、及びアプリケーション(命令セット)136を含む。更に、いくつかの実施形態において、
図1A及び
図3に示すように、メモリ102(
図1A)又は370(
図3)は、デバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、以下の1つ以上を含む:現在アクティブ状態のアプリケーションがあれば、どのアプリケーションがアクティブかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ112の様々な領域を占領しているかを示す、表示状態、デバイスの様々なセンサ及び入力コントロールデバイス116から得られる情報を含む、センサ状態、並びに、デバイスの位置及び/又は姿勢に関する位置情報。
【0047】
オペレーティングシステム126(例えば、Darwin(登録商標)、RTXC、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、iOS、WINDOWS(登録商標)、又はVxWorks(登録商標)などの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェアコンポーネント及び/又はドライバを含み、様々なハードウェアとソフトウェアコンポーネントとの間の通信を容易にする。
【0048】
通信モジュール128は、1つ以上の外部ポート124を介して他のデバイスとの通信を容易にし、また、RF回路108及び/又は外部ポート124が受信したデータを処理するための様々なソフトウェア構成要素を含む。外部ポート124(例えば、ユニバーサルシリアルバス(USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えば、インターネット、無線LANなど)を介して間接的に他のデバイスに連結するように適合される。いくつかの実施形態において、外部ポートは、iPod(登録商標)(Apple Inc.の商標)デバイス上で使用される30ピンコネクタと同一の、又はこれに類似した及び/若しくは互換性のあるマルチピン(例えば、30ピン)コネクタである。
【0049】
接触/動きモジュール130は、任意選択的に、(ディスプレイコントローラ156に関連して)タッチスクリーン112との接触、及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を検出する。接触/動きモジュール130は、接触が発生したかどうかの判定(例えば、フィンガダウンイベントの検出)、接触の強度(例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代用語)の判定、接触の移動及びタッチ感知面にわたる動きの追跡(例えば、1つ以上のフィンガドラッグイベントの検出)があるかどうかの判定、及び接触が中止したかどうか(例えば、フィンガアップイベント又は接触の中断の検出)の判定などの、接触の検出に関係する様々な動作を実行するための様々なソフトウェア構成要素を含む。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを、任意選択的に含む。これらの動作は、任意選択的に、単一の接触(例えば、1つの指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。いくつかの実施形態において、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッド上の接触を検出する。
【0050】
いくつかの実施形態では、接触/移動モジュール130は、ユーザによって動作が実行されたか否かを判定するための(例えば、ユーザがアイコン上で「クリック」したか否かを判定するための)、1つ以上の強度閾値のセットを使用する。いくつかの実施形態では、少なくとも強度閾値のサブセットが、ソフトウェアパラメータに従って判定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されず、デバイス100の物理ハードウェアを変更することなく調整し得る)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイハードウェアを変更することなく広範囲の既定の閾値のうちのいずれかに設定し得る。加えて、いくつかの実装において、デバイスのユーザには、(例えば、個々の強度閾値を調整することにより、及び/又は「強度」パラメータのシステムレベルのクリックの後すぐに複数の強度閾値を調整することによって)強度閾値のセットのうちの1つ以上を調整するためのソフトウェア設定が提供されている。
【0051】
接触/動きモジュール130は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン(例えば、異なる動き、タイミング、及び/又は検出された接触の強度)を有する。したがって、ジェスチャは、特定の接触パターンを検出することによって、任意選択的に、検出される。例えば、指のタップジェスチャを検出することは、フィンガダウンイベントを検出し、続いて(例えば、アイコンの位置での)そのフィンガダウンイベントと同じ位置(又は、実質的に同じ位置)でフィンガアップ(リフトオフ)イベントを検出することを含む。他の実施例として、タッチ感知面でのフィンガスワイプジェスチャの検出は、フィンガダウンイベントを検出し、続いて1つ以上のフィンガドラッグイベントを検出し、その後、フィンガアップ(リフトオフ)イベントを検出することを含む。
【0052】
グラフィックモジュール132は、表示されるグラフィックの視覚的効果(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性)を変更するための構成要素を含めた、タッチスクリーン112又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々な既知のソフトウェア構成要素を含む。本明細書で使用する時、用語「グラフィック」は、ユーザに対して表示することができる任意のオブジェクトを含み、それらのオブジェクトとしては、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどが挙げられるが、これらに限定されない。
【0053】
いくつかの実施形態において、グラフィックモジュール132は、使用されるグラフィックを表すデータを記憶する。それぞれのグラフィックには、対応するコードが、任意選択的に、割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィックプロパティデータと共に、表示されるグラフィックを指定する1つ以上のコードを受信し、ディスプレイコントローラ156に出力する画面画像データを生成する。
【0054】
触覚フィードバックモジュール133は、デバイス100とのユーザ対話に応じて、デバイス100上の1つ以上の場所で触知出力を生成するために、触知出力生成器(1つ又は複数)167によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
【0055】
テキスト入力モジュール134は、グラフィックモジュール132の構成要素であってもよく、様々なアプリケーション(例えば、連絡先137、電子−メール140、IM141、ブラウザ147、及びテキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するための、ソフトキーボードを提供する。
【0056】
GPSモジュール135は、デバイスの場所を判定し、この情報を、様々なアプリケーションで使用するために(例えば、場所に基づくダイアル発呼で使用するために電話138へ、写真/ビデオのメタデータとしてカメラ143へ、並びに、天気ウィジェット、地域のイエローページウィジェット、及び地図/ナビゲーションウィジェットなどの、場所に基づくサービスを提供するアプリケーションへ)提供する。
【0057】
アプリケーション136は、以下のモジュール(若しくは、命令のセット)、又はそれらの部分集合若しくは上位集合を含んでもよい。
●連絡先モジュール137(時には、アドレス帳又は連絡先リストとも呼ぶ)、
●電話モジュール138、
●ビデオ会議モジュール139、
●電子メールクライアントモジュール140、
●インスタントメッセージング(IM)モジュール141、
●トレーニングサポートモジュール142、
●静止画像及び/又はビデオ画像用のカメラモジュール143、
●画像管理モジュール144、
●ビデオプレーヤモジュール
●音楽プレーヤモジュール
●ブラウザモジュール147、
●カレンダーモジュール148、
●気象ウィジェット149−1、株式ウィジェット149−2、電卓ウィジェット149−3、アラーム時計ウィジェット149−4、辞書ウィジェット149−5、及びユーザが取得した他のウィジェット、並びにユーザ作成ウィジェット149−6のうちの1つ以上を含むことができるウィジェットモジュール149、
●ユーザ作成ウィジェット149−6を作成するためのウィジェット作成モジュール150、
●検索モジュール151、
●ビデオプレーヤモジュール及び音楽プレーヤモジュールを統合した、ビデオ及び音楽プレーヤモジュール152、
●メモモジュール153、
●地図モジュール154、及び/又は
●オンラインビデオモジュール155
【0058】
メモリ102内に記憶されてもよい他のアプリケーション136の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
【0059】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と共に、連絡先モジュール137は、(例えば、メモリ102又はメモリ370内の連絡先モジュール137のアプリケーション内部状態192に記憶された)アドレス帳又は連絡先リストを管理するために使用されてもよく、この管理には、アドレス帳に名前(単数又は複数)を追加すること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類して振り分けること、電話番号又はメールアドレスを提供して、電話138、テレビ会議モジュール139、メール140、若しくはIM141による通信を開始させる及び/又は容易にすること、などが含まれる。
【0060】
RF回路機構108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と共に、電話モジュール138は、電話番号に対応する一連の文字を入力し、連絡先モジュール137内の1つ以上の電話番号にアクセスし、入力されている電話番号を修正し、それぞれの電話番号をダイアルし、会話を遂行し、会話が完了した際に接続を切るか又は電話を切るために、使用されてもよい。上述のように、無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用してもよい。
【0061】
RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチスクリーン112、ディスプレイコントローラ156、光センサ164、光センサコントローラ158、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、連絡先モジュール137、及び電話モジュール138と共に、ビデオ会議モジュール139は、ユーザの指示に従って、ユーザと1人以上の他の参加者との間のビデオ会議を開始し、行い、終了するための、実行可能命令を含む。
【0062】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134に関連して、電子メールクライアントモジュール140は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理するための、実行可能命令を含む。画像管理モジュール144に関連して、電子メールクライアントモジュール140は、カメラモジュール143で撮影された静止画像又はビデオ画像を有する電子メールを作成及び送信することを、非常に容易にする。
【0063】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134に関連して、インスタントメッセージングモジュール141は、インスタントメッセージに対応する文字のシーケンスを入力したり、入力済みの文字を修正したり、それぞれのインスタントメッセージを(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのXMPP、SIMPLE、又はIMPSを使用して)送信したり、インスタントメッセージを受信して、受信したインスタントメッセージを表示したりするための、実行可能な命令を含む。いくつかの実施形態では、送信及び/又は受信されるインスタントメッセージは、MMS及び/又は拡張メッセージングサービス(EMS:Enhanced Messaging Service)でサポートされるような、グラフィック、写真、オーディオファイル、ビデオファイル、及び/又は他の添付ファイルを含んでもよい。本明細書で使用するとき、「インスタントメッセージング」とは、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されるメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE又はIMPSを使用して送信されるメッセージ)の双方を示す。
【0064】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、地図モジュール154、及び音楽再生モジュールに関連して、トレーニングサポートモジュール142は、(例えば、時間、距離、及び/又はカロリー消費目標を有する)トレーニングを生成する、トレーニングセンサ(スポーツデバイス)と通信する、トレーニングセンサデータを受信する、トレーニングをモニタするために使用されるセンサを較正する、トレーニング用の音楽を選択して再生する、並びに、トレーニングデータを表示、記憶、及び送信するための、実行可能命令を含む。
【0065】
タッチスクリーン112、ディスプレイコントローラ156、光センサ(1つ又は複数)164、光センサコントローラ158、接触/動きモジュール130、グラフィックモジュール132、及び画像管理モジュール144に関連して、カメラモジュール143は、静止画像又はビデオ(ビデオストリームを含む)をキャプチャして、メモリ102にそれらを記憶したり、静止画像又はビデオの特徴を変更したり、又はメモリ102から静止画像又はビデオを削除したりするための、実行可能な命令を含む。
【0066】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィクモジュール132、テキスト入力モジュール134、及びカメラモジュール143に関連して、画像管理モジュール144は、静止画像及び/又はビデオ画像を配置し、修正し(例えば、編集し)又は別の方法で操作し、ラベルを付け、削除し、提示し(例えば、デジタルスライドショー又はアルバム内で)、並びに記憶したりするための、実行可能な命令を含む。
【0067】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134に関連して、ブラウザモジュール147は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付及び他のファイルを検索し、リンク付けし、受信し、表示することを含むユーザの指示に従い、インターネットをブラウズするための、実行可能な命令を含む。
【0068】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147に関連して、カレンダーモジュール148は、ユーザの指示に従い、カレンダー及びカレンダーに関連付けられたデータ(例えば、カレンダーの項目、すべきことのリストなど)を作成し、表示し、変更し、記憶するための、実行可能な命令を含む。
【0069】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147に関連して、ウィジェットモジュール149は、ユーザによってダウンロードされ、使用することが可能なミニアプリケーション(例えば、天候ウィジェット149−1、株価ウィジェット149−2、電卓ウィジェット149−3、アラーム時計ウィジェット149−4、及び辞書ウィジェット149−5)、又はユーザによって作成することが可能なミニアプリケーション(例えば、ユーザ作成ウィジェット149−6)である。いくつかの実施形態では、ウィジェットは、HTML(ハイパーテキストマークアップ言語)ファイル、CSS(カスケーディングスタイルシート)ファイル、及びJavaScriptファイルを含む。一部の実施形態では、ウィジェットは、XML(拡張可能マークアップ言語)ファイル及びJavaScript(登録商標)ファイル(例えば、Yahoo!(登録商標)ウィジェット)を含む。ウィジェット)を含む。
【0070】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147に関連して、ウィジェット作成モジュール150は、ウィジェットを作成する(例えば、ウェブページのユーザ指定箇所をウィジェットに変える)ために、ユーザによって使用されてもよい。
【0071】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィクモジュール132、及びテキスト入力モジュール134に関連して、検索モジュール151は、ユーザの指示に従い、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索語句)と一致する、メモリ102内のテキスト、音楽、音、画像、ビデオ、及び/又は他のファイルを検索するための、実行可能な命令を含む。
【0072】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィクモジュール132、オーディオ回路110、スピーカ111、RF回路108、及びブラウザモジュール147と関連して、ビデオ及び音楽再生モジュール152は、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能な命令、並びにビデオを(タッチスクリーン112上又は外部ポート124を介して接続された外部のディスプレイ上に)表示、提示、又は別の方法で再生するための、実行可能な命令を含む。いくつかの実施形態において、デバイス100は、iPod(Apple Inc.の商標)などのMP3プレーヤの機能を、任意選択的に含む。
【0073】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134に関連して、メモモジュール153は、ユーザの指示に従って、メモ、ToDoリストなどを作成及び管理するための、実行可能な命令を含む。
【0074】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、及びブラウザモジュール147に関連して、地図モジュール154は、ユーザの指示に従い、地図及び地図に関連付けられたデータ(例えば、運転方向、特定の位置又はその近くの店舗及びその他の見所のデータ、並びに他の位置ベースのデータ)を受信、表示、変更、及び記憶するのに使用することができる。
【0075】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147に関連して、オンラインビデオモジュール155は、ユーザがH.264などの1つ以上のファイル形式のオンラインビデオにアクセスし、ブラウズし、受信し(例えば、ストリーミング及び/又はダウンロードにより)、再生し(例えば、タッチスクリーン上で又は外部ポート124を介して接続された外部のディスプレイ上で)、特定のオンラインビデオへのリンクを含む電子メールを送信し、別の方法で管理できるようにする命令を含む。いくつかの実施形態においては、電子メールクライアントモジュール140ではなく、インスタントメッセージモジュール141が、特定のオンライン映像へのリンクを送信するために用いられる。2007年6月20日に出願された米国仮特許出願第60/936,562号、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」、及び2007年12月31日に出願された米国特許出願第11/968,067号、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」に、オンラインビデオアプリケーションの追加の説明を見いだすことができる。これらの出願の内容はその全体が本明細書において参照により組み込まれている。
【0076】
上記で識別されたモジュール及びアプリケーションのそれぞれは、1つ以上の上記の機能を実行する実行可能な命令セット及び本出願に記載の方法(例えば、コンピュータにより実行される方法及び本明細書に記載の他の情報処理方法)に対応する。これらのモジュール(例えば、命令のセット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再編成することができる。例えば、ビデオ再生モジュールは、音楽再生モジュールと組み合わせて単一のモジュール(例えば、ビデオ及び音楽再生モジュール152、
図1A)にされてもよい。いくつかの実施形態では、メモリ102は、上記で識別されたモジュール及びデータ構造のサブセットを記憶することができる。更に、メモリ102は、上述されていない追加のモジュール及びデータ構造を記憶してもよい。
【0077】
いくつかの実施形態では、デバイス100は、デバイス上の機能の既定のセットの動作が排他的にタッチスクリーン及び/又はタッチパッドを介して実行されるデバイスである。デバイス100の動作のための主要な入力制御デバイスとしてタッチスクリーン及び/又はタッチパッドを使用することにより、デバイス100上の物理的な入力制御デバイス(プッシュボタン、ダイアル、及び同様のものなど)の数を減らすことができる。
【0078】
排他的にタッチスクリーン及び/又はタッチパッドを介して実行される、既定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされると、デバイス100上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューへデバイス100をナビゲートする。かかる実施形態において、「メニューボタン」はタッチパッドを使って実装される。いくつかの他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理的なプッシュボタン又は他の物理的な入力コントロールデバイスである。
【0079】
図1Bは、いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ102(
図1A)又は370(
図3)は、イベントソータ170(例えば、オペレーティングシステム126内)及び対応するアプリケーション136−1(例えば、上述のアプリケーション137〜151、155、380〜390のいずれか)を含む。
【0080】
イベントソータ170は、イベント情報を受け付け、イベント情報を配布するアプリケーション136−1及びアプリケーション136−1のアプリケーションビュー191を決定する。イベントソータ170は、イベントモニタ171及びイベントディスパッチャモジュール174を含む。いくつかの実施形態において、アプリケーション136−1は、アプリケーションがアクティブ又は実行中の時、タッチ感知ディスプレイ112で上に表示される現在のアプリケーションビュー(1つ又は複数)を示す、アプリケーション内部状態192を含む。いくつかの実施形態では、デバイス/グローバル内部状態157は、いずれのアプリケーションが現在アクティブであるかを判定するために、イベントソータ170によって使用され、アプリケーション内部状態192は、イベント情報の配信先となるアプリケーションビュー191を決定するために、イベントソータ170によって使用される。
【0081】
いくつかの実施形態では、アプリケーション内部状態192は、アプリケーション136−1が実行を再開する際に使用される再開情報、アプリケーション136−1によって情報が表示されているか又は表示の準備が整っていることを示すユーザインタフェース状態情報、ユーザがアプリケーション136−1の以前の状態又はビューに戻ることを可能にするための状態待ち行列、及びユーザが以前に行ったアクションのリドゥ/アンドゥ待ち行列のうちの1つ以上などの、追加情報を含む。
【0082】
イベントモニタ171は、周辺機器インタフェース118からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイ112上でのユーザのタッチ)についての情報を含む。周辺デバイスインタフェース118は、I/Oサブシステム106又は(オーディオ回路機構110を介して)近接センサ166、加速度計(1つ又は複数)168、及び/若しくはマイクロフォン113などのセンサから受信する情報を送信する。周辺機器インタフェース118がI/Oサブシステム106から受け取る情報は、タッチ感知ディスプレイ112又はタッチ感知面からの情報を含む。
【0083】
いくつかの実施形態では、イベントモニタ171は、所定の間隔で周辺機器ンタフェース118に要求を送る。これに応じて、周辺機器インタフェース118は、イベント情報を送出する。他の実施形態において、周辺機器ンタフェース118は、重要なイベント(例えば、所定のノイズ閾値を超える、及び/又は所定時間より長い入力を受け付けること)がある場合にのみイベント情報を送出する。いくつかの実施形態では、イベントソータ170はまた、ヒットビュー判定モジュール172及び/又はアクティブイベント認識部判定モジュール173も含む。
【0084】
ヒットビュー判断モジュール172は、タッチ感知ディスプレイ112が2つ以上のビューを表示した際に、1つ以上のビュー内のどこにおいてサブイベントが発生したかを判断するためのソフトウェア手続きを提供する。ビューは、ユーザがディスプレイ上で見ることができる制御部及び他の要素で構成される。
【0085】
アプリケーションに関連付けられるユーザインタフェースの別の態様は、本明細書では、アプリケーションビュー又はユーザインタフェースウィンドウと呼ばれる場合がある、ビューのセットであり、それらの中で、情報が表示され、タッチに基づくジェスチャが実施される。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応してもよい。例えば、タッチが検出される最低レベルのビューはヒットビューと呼ばれてもよく、適切な入力として認識されるイベントのセットは、少なくとも部分的には、タッチベースのジェスチャを開始する最初のタッチのヒットビューに基づいて判定されてもよい。
【0086】
ヒットビュー判断モジュール172は、タッチベースのジェスチャのサブイベントに関連付けられた情報を受け取る。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール172は、サブイベントを処理するべき階層内の最下位のビューとして、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、最初のサブイベント(例えば、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける最初のサブイベント)が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュール172によって識別されると、ヒットビューは、典型的には、それがヒットビューとして識別された、同じタッチ又は入力ソースに関連する全てのサブイベントを受け付ける。
【0087】
アクティブイベント認識部判定モジュール173は、ビュー階層内のどのビュー(1つ又は複数)がサブイベントの特定のシーケンスを受け取るべきかを判定する。いくつかの実施形態において、アクティブイベント認識部判定モジュール173は、ヒットビューのみがサブイベントの特定のシーケンスを受け取るべきであると判定する。他の実施形態において、アクティブイベント認識部判定モジュール173は、サブイベントの物理的な位置を含む全てのビューはアクティブに関わっているビューであると判定し、したがって、全てのアクティブに関わっているビューは、サブイベントの特定のシーケンスを受け付けるべきであると判定する。他の実施形態では、タッチサブイベントがある特定のビューに関連付けられた領域に完全に限定されたとしても、階層の上位のビューはアクティブに関わっているビューのままであるであろう。
【0088】
イベントディスパッチャモジュール174は、イベント情報をイベント認識部(例えば、イベント認識部180)に送信する。アクティブイベント認識部判定モジュール173を含む実施形態では、イベントディスパッチャモジュール174は、アクティブイベント認識部判定モジュール173により判定されたイベント認識部にイベント情報を配布する。いくつかの実施形態では、イベントディスパッチャモジュール174は、それぞれのイベント受信部182により取得されるイベント情報をイベント待ち行列内に記憶する。
【0089】
いくつかの実施形態では、オペレーティングシステム126は、イベントソータ170を含む。あるいは、アプリケーション136−1が、イベントソータ170を含む。更に他の実施形態では、イベントソータ170は、スタンドアロンモジュール、又は接触/動きモジュール130などのメモリ102に記憶された別のモジュールの一部である。
【0090】
いくつかの実施形態では、アプリケーション136−1は、そのアプリケーションのユーザインタフェースの各ビュー内で発生するタッチイベントを処理する命令をそれぞれが含む、複数のイベントハンドラ190及び1つ以上のアプリケーションビュー191を含む。アプリケーション136−1のそれぞれのアプリケーションビュー191は、1つ以上のイベント認識部180を含む。典型的に、それぞれのアプリケーョンビュー191は、複数のイベント認識部180を含む。他の実施形態では、イベント認識部180のうちの1つ以上は、ユーザインタフェースキット(図示せず)又はアプリケーション136−1が方法及び他の性質を継承する上位レベルのオブジェクトなど、別個のモジュールの一部である。いくつかの実施形態では、それぞれのイベントハンドラ190は、データアップデータ176、オブジェクトアップデータ177、GUIアップデータ178、及び/又はイベントソータ170から受け付けたイベントデータ179のうちの1つ以上を含む。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデータ176、オブジェクトアップデータ177、又はGUIアップデータ178を利用するか又は呼び出してもよい。あるいは、アプリケーションビュー191のうちの1つ以上は、1つ以上のそれぞれのイベントハンドラ190を含む。また、いくつかの実施形態において、データアップデータ176、オブジェクトアップデータ177、及びGUIアップデータ178のうちの1つ以上がそれぞれのアプリケーションビュー191内に含まれている。
【0091】
各イベント認識部180は、イベントソータ170からイベント情報(例えば、イベントデータ179)を受け取って、そのイベント情報からイベントを特定する。イベント認識部180は、イベント受信部182及びイベント比較部184を含む。いくつかの実施形態では、イベント認識部180は更に、メタデータ183及びイベント配信命令188(サブイベント配信命令を含んでいてもよい)の少なくともサブセットを含む。
【0092】
イベント受信部182は、イベントソータ170からイベント情報を受信する。イベント情報は、例えば、タッチ又はタッチの移動などのサブイベントの情報を含む。サブイベントによっては、イベント情報は、サブイベントの位置などの追加情報をもまた含む。サブイベントがタッチの動きに関わる場合には、イベント情報は、サブイベントの速さ及び方向を更に含んでもよい。いくつかの実施形態において、イベントは、ある方向から別の方向へ(例えば、ポートレートの向きからランドスケープの向きへ、又はその逆)のデバイスの回転を含み、イベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ばれる)についての対応する情報を含む。
【0093】
イベント比較部184は、イベント情報を既定のイベント又はサブイベントの定義と比較し、その比較により、イベント又はサブイベントを判定、又はイベント若しくはサブイベントの状態を判定又は更新する。いくつかの実施形態において、イベント比較部184は、イベント定義186を含む。ベント定義186は、例えば、イベント1(187−1)、イベント2(187−2)などの、イベントの定義(例えば、サブイベントの既定のシーケンス)を含む。いくつかの実施形態において、イベント(187)内のサブイベントは、例えば、タッチ開始、タッチ終了、タッチの移動、タッチの中止、及び複数のタッチを含む。ある実施例において、イベント1(187−1)の定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、表示されたオブジェクト上の所定の段階についての第1のタッチ(タッチ開始)、所定の段階についての第1のリフトオフ(タッチ終了)、表示されたオブジェクト上の所定の段階についての第2のタッチ(タッチ開始)、及び所定の段階についての第2のリフトオフ(タッチ終了)を含む。別の実施例において、イベント2(187−2)の定義は、表示されたオブジェクト上のドラッグである。ドラッグは、例えば、表示されたオブジェクト上の所定の段階についてのタッチ(又は接触)、タッチ感知ディスプレイ112にわたるタッチの移動、及びタッチのリフトオフ(タッチ終了)を含む。いくつかの実施形態において、イベントは、1つ以上の関連付けられたイベントハンドラ190についての情報も含む。
【0094】
いくつかの実施形態では、イベント定義186は、それぞれのユーザインタフェースオブジェクト用のイベントの定義を含む。いくつかの実施形態では、イベントコンパレーター184は、サブイベントに関連付けられたユーザインタフェースオブジェクトを判定するヒットテストを実行する。例えば、3つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ112に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイ112上でタッチが検出されると、イベントコンパレーター184は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連付けられているかを判断するためのヒットテストを行う。表示されたそれぞれのオブジェクトが、それぞれのイベントハンドラ190に関連付けられている場合、イベント比較部はヒットテストの結果を用いて、アクティブ化する必要のあるイベントハンドラ190を判定する。例えば、イベント比較部184は、サブイベント及びヒットテストのトリガーとなるオブジェクトに関連付けられたイベントハンドラを選択する。
【0095】
いくつかの実施形態では、各イベント(187)に関する定義はまた、サブイベントのシーケンスがイベント認識部のイベントタイプに対応するか否かが判定されるまで、イベント情報の送付を遅延させる、遅延作用も含む。
【0096】
それぞれのイベント認識部180が、一連のサブイベントがイベント定義186のイベントのいずれとも一致しないと判定した場合、それぞれのイベント認識部180は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチベースのジェスチャの次のサブイベントを無視する。この状況では、もしあれば、ヒットビューについてアクティブのままである他のイベント認識部は、進行中のタッチベースのジェスチャのサブイベントの追跡及び処理を続行する。
【0097】
いくつかの実施形態では、それぞれのイベント認識部180は、イベント配信システムがアクティブに関わっているイベント認識部にどのようにサブイベント配信を実行するかについて示す、構成可能なプロパティ、フラグ、及び/又はリストを持つメタデータ183を含む。いくつかの実施形態において、メタデータ183は、イベント認識部が互いにどのように対話し得るかについて示す構成可能なプロパティ、フラグ、及び/又はリストを含む。いくつかの実施形態において、メタデータ183は、構成可能なプロパティ、フラグ、及び/又はサブイベントがビュー階層又はプログラム階層内の様々なレベルに配布されるかどうかを示すリストを含む。
【0098】
いくつかの実施形態では、それぞれのイベント認識部180は、イベントの1つ以上の特定のサブイベントが認識された時に、イベントに関連付けられたイベントハンドラ190をアクティブ化する。いくつかの実施形態では、それぞれのイベント認識部180は、イベントハンドラ190に、イベントに関連付けられたイベント情報を配布する。イベントハンドラ190をアクティブ化することと、それぞれのヒットビューにサブイベントを送信(及び送信を延期する)することとは、区別される。いくつかの実施形態では、イベント認識部180は、認識されたイベントに関連付けられたフラグをスローし、フラグに関連付けられたイベントハンドラ190はフラグをキャッチし、既定の処理を実行する。
【0099】
いくつかの実施形態では、イベント配信命令188は、イベントハンドラをアクティブ化せずにサブイベントに関するイベント情報を配信するサブイベント配信命令を含む。その代わりに、サブイベント配信命令は、一連のサブイベントに関連付けられたイベントハンドラ又はアクティブに関わっているビューにイベント情報を配布する。一連のサブイベント又はアクティブに関わっているビューに関連付けられているイベントハンドラは、イベント情報を受け付け、所定の処理を実行する。
【0100】
いくつかの実施形態では、データアップデータ176は、アプリケーション136−1で使用されるデータを作成及び更新する。例えば、データアップデータ176は、連絡先モジュール137で使用される電話番号を更新したり、ビデオプレーヤモジュールで使用されるビデオファイルを記憶したりする。いくつかの実施形態において、オブジェクトアップデータ177は、アプリケーション136−1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクトアップデータ177は、新たなユーザインタフェースオブジェクトを作成する、又はユーザインタフェースオブジェクトの位置を更新する。GUIアップデータ178は、GUIを更新する。例えば、GUIアップデータ178は、表示情報を準備し、タッチ感知ディスプレイ上に表示するため、表示情報をグラフィクモジュール132に送信する。
【0101】
いくつかの実施形態では、イベントハンドラ(単数又は複数)190は、データアップデータ176、オブジェクトアップデータ177、及びGUIアップデータ178を含む、又はそれらに対するアクセスを有する。いくつかの実施形態では、データアップデータ176、オブジェクトアップデータ177、及びGUIアップデータ178は、それぞれのアプリケーション136−1又はアプリケーションビュー191の1つのモジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
【0102】
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の論考はまた、入力デバイスを使用して多機能デバイス100を動作させるための他の形態のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではないことが理解されよう。例えば、単一又は複数のキーボードの押下又は保持に任意選択的に合わせたマウスの移動及びマウスボタンの押下、タッチパッド上でのタップ、ドラッグ、スクロールなどの接触移動、ペンスタイラス入力、デバイスの移動、口頭の指示、検出された眼球運動、バイオメトリック入力、及び/又はこれらの任意の組み合わせが、認識対象のイベントを定義するサブイベントに対応する入力として、任意選択的に利用される。
【0103】
図2は、いくつかの実施形態に係る、タッチスクリーン112を有するポータブル多機能デバイス100を示す。タッチスクリーンは、ユーザインタフェース(UI)200内に1つ以上のグラフィックを、任意選択的に、表示する。後述する実施形態並びに本実施形態において、ユーザは、例えば、1本以上の指202(図には、正確な縮尺率では描かれていない)又は1つ以上のスタイラス203(図には、正確な縮尺率では描かれていない)を用いてグラフィック上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択できる。いくつかの実施形態において、ユーザが1つ以上のグラフィックとの接触を断った際に、1つ以上のグラフィックの選択が生じる。いくつかの実施形態において、ジェスチャは、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上方向へ、及び/又は下方向へ)、及び/又はデバイス100と接触した指のローリング(右から左へ、左から右へ、上方向へ、及び/又は下方向へ)を、任意選択的に含む。いくつかの実装又は状況において、グラフィックとの偶発的な接触は、グラフィックを選択しない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスワイプするスワイプジェスチャは、対応するアプリケーションを、任意選択的に、選択しない。
【0104】
デバイス100はまた、「ホーム」又はメニューボタン204などの、1つ以上の物理ボタンも含み得る。前述したように、メニューボタン204は、デバイス100上で実行することができるアプリケーションのセット内の任意のアプリケーション136へのナビゲーションに使用されてもよい。あるいは、いくつかの実施形態において、メニューボタンは、タッチスクリーン112に表示されたGUIにおけるソフトキーとして実装されている。
【0105】
いくつかの実施形態では、デバイス100は、タッチスクリーン112、メニューボタン204、デバイスへの電源をオン/オフし、デバイスをロックするためのプッシュボタン206、音量調整ボタン(単数又は複数)208、加入者識別モジュール(Subscriber Identity Module、SIM)カードスロット210、ヘッドセットジャック212、及びドッキング/充電用外部ポート124を含む。プッシュボタン206は、ボタンを押下して、既定の時間間隔にわたってボタンを押下された状態で保持することによって、デバイス上の電源をオン/オフし、ボタンを押下して、既定の時間間隔が経過する前にボタンを解放することによって、デバイスをロックし、及び/又はデバイスをロック解除する、若しくはロック解除処理を開始するために、任意選択的に使用される。代替的実施形態において、デバイス100はまた、マイクロフォン113を通して、一部の機能をアクティブ化し、又はディアクティブ化するための口頭入力を受け付ける。また、デバイス100は、タッチスクリーン112への接触の強度を検出するための1つ以上の接触強度センサ165及び/又はデバイス100のユーザの触覚出力を生成するための1つ以上の触覚出力生成器167を、任意選択的に含む。
【0106】
図3は、いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を備える例示的な多機能デバイスのブロック図である。デバイス300は、ポータブルでなくてもよい。いくつかの実施形態において、デバイス300は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育的デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、ホーム又は業務用コントローラ)である。デバイス300は、典型的には、1つ以上の処理ユニット(CPU)310と、1つ以上のネットワーク又は他の通信インタフェース360と、メモリ370と、これらの構成要素を相互接続するための1つ以上の通信バス320とを含む。通信バス320は、システム構成要素間の通信を相互接続及び制御する回路(チップセットと称することがある)を、任意選択的に含む。デバイス300は、典型的にはタッチスクリーンディスプレイである、ディスプレイ340を備える入出力(I/O)インタフェース330を含む。I/Oインタフェース330はまた、キーボード及び/又はマウス(又は他のポインティングデバイス)350並びにタッチパッド355、デバイス300上に触知出力を生成するための(例えば、
図1Aを参照して上述された触知出力生成器(1つ又は複数)167と同様の)触知出力生成器357、センサ359(例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、及び/又は
図1Aを参照して上述された接触強度センサ(1又は複数)165と同様の接触強度センサ)も、任意選択的に含む。メモリ370は、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイスなどの、高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性半導体記憶デバイスなどの、不揮発性メモリを含む。メモリ370は、CPU(1つ又は複数)310からは離れて位置する1つ以上の記憶デバイスを、任意選択的に含む。いくつかの実施形態において、メモリ370は、ポータブル多機能デバイス100(
図1A)のメモリ102に記憶されたプログラム、モジュール、及びデータ構造に類似するプログラム、モジュール、及びデータ構造、又はそれらのサブセットを記憶する。更に、メモリ370は、携帯型多機能デバイス100のメモリ102内に存在しない追加プログラム、モジュール、及びデータ構造を記憶し得る。例えば、デバイス300のメモリ370は、描画モジュール380、プレゼンテーションモジュール382、文書作成モジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388、及び/又はスプレッドシートモジュール390を、任意選択的に記憶するが、ポータブル多機能デバイス100(
図1)のメモリ102は、これらのモジュールを、任意選択的に記憶しない。
【0107】
図3の上記で識別された要素のそれぞれは、前述のメモリデバイスの1つ以上に記憶してもよい。上記で識別されたモジュールうちのそれぞれは、上述した機能を実行するための命令セットに対応する。上記で識別されたモジュール若しくはプログラム(例えば、命令セット)は、別個のソフトウェアプログラム、手続き、又はモジュールとして実施される必要はなく、したがって、様々な実施形態において、これらのモジュールの様々なサブセットを組み合わせてもよく、又は別の方法で再配置されてもよい。いくつかの実施形態では、メモリ370は、上記で識別されたモジュール及びデータ構造のサブセットを記憶することができる。更に、メモリ370は、上述されていない追加のモジュール及びデータ構造を記憶してもよい。
【0108】
例えば、ポータブル多機能デバイス100上に実装することができるユーザインタフェースの実施形態に注目を向ける。
【0109】
図4Aは、いくつかの実施形態に係る、ポータブル多機能デバイス100上のアプリケーションのメニューのための例示的なユーザインタフェースを示す。同様のユーザインタフェースが、デバイス300上に実装されてもよい。いくつかの実施形態では、ユーザインタフェース400は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
●セルラー及びWi−Fi信号などの無線通信(1つ又は複数)のための信号強度標識(1つ又は複数)402、
●時間404、
●Bluetooth標識405、
●バッテリ状態標識406、
●下記などの、頻繁に利用されるアプリケーション用のアイコンを含むトレイ408、
○不在着信又は音声メールメッセージの数の標識414を任意選択的に含む、「電話」とラベル付けされる、電話モジュール138用のアイコン416、
○未読電子メールの数の標識410を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール140用のアイコン418、
○「ブラウザ」とラベル付けされた、ブラウザモジュール147用のアイコン420、並びに
○「iPod」とラベル付けされた、iPod(Apple Inc.の商標)モジュール152とも称されるビデオ及び音楽再生モジュール152用のアイコン422、並びに
●下記などの、その他のアプリケーション用のアイコン、
○「メッセージ」とラベル付けされる、IMモジュール141用のアイコン424、
○「カレンダー」とラベル付けされる、カレンダーモジュール148用のアイコン426、
○「写真」とラベル付けされる、画像管理モジュール144用のアイコン428、
○「カメラ」とラベル付けされる、カメラモジュール143用のアイコン430、
○「オンラインビデオ」とラベル付けされる、オンラインビデオモジュール155用のアイコン432、
○「株式」とラベル付けされる、株式ウィジェット149−2用のアイコン434、
○「マップ」とラベル付けされる、地図モジュール154用のアイコン436、
○「天気」とラベル付けされる、天気ウィジェット149−1用のアイコン438、
○「時計」とラベル付けされる、アラーム時計ウィジェット149−4用のアイコン440、
○「トレーニングサポート」とラベル付けされる、トレーニングサポートモジュール142用のアイコン442、
○「メモ」とラベル付けされる、メモモジュール153用のアイコン444、並びに
○デバイス100及びその様々なアプリケーション136に関する設定へのアクセスを提供する、「設定」とラベル付けされる、設定アプリケーション若しくはモジュール用のアイコン446
【0110】
図4Aに示されているアイコンのラベルは、単なる例示であることに留意されたい。例えば、ビデオ及び音楽再生モジュール152用のアイコン422は、任意選択的に、「音楽」又は「音楽プレーヤ」とラベル付けされてもよい。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。いくつかの実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態において、特定のアプリケーションアイコンのラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
【0111】
図4Bは、ディスプレイ450(例えば、タッチスクリーンディスプレイ112)とは別個のタッチ感知面451(例えば、
図3のタブレット又はタッチパッド355)を備えるデバイス(例えば、
図3のデバイス300)上の、例示的なユーザインタフェースを示す。デバイス300はまた、タッチ感知面451上の接触の強度を検出するための、1つ以上の接触強度センサ(例えば、センサ357のうちの1つ以上)、及び/又はデバイス300のユーザに対する触知出力を生成するための、1つ以上の触知出力生成器359を含む。
【0112】
以下の実施例のうちのいくつかは、タッチスクリーンディスプレイ112上の入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して説明されるが、いくつかの実施形態では、デバイスは、
図4Bに示すように、ディスプレイとは別個のタッチ感知面上での入力を検出する。いくつかの実施形態では、このタッチ感知面(例えば、
図4Bでの451)は、ディスプレイ(例えば、450)上の主軸(例えば、
図4Bでの453)に対応する主軸(例えば、
図4Bでの452)を有する。これらの実施形態によれば、デバイスは、ディスプレイ上のそれぞれの場所に対応する場所(例えば、
図4Bでは、460は468に対応し、462は470に対応する)での、タッチ感知面451との接触(例えば、
図4Bでの460及び462)を検出する。この方式で、タッチ感知面がディスプレイとは別個のものである場合、タッチ感知面(例えば、
図4Bでの451)上でデバイスによって検出されたユーザ入力(例えば、接触460及び462、並びにそれらの移動)が、多機能デバイスのディスプレイ(例えば、
図4Bでの450)上のユーザインタフェースを操作するために、デバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに、任意選択的に使用されることを理解されたい。
【0113】
更に加えて、以下の説明は、主に指入力(例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャ)を参照して説明されるが、いくつかの実施形態では、それらの指入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力又はスタイラス入力)で置き換えられることを理解されたい。例えば、スワイプジェスチャは、任意選択的に、(例えば、接触の代わりに)マウスクリックと置換され、その後、(例えば、接触の移動の代わりに)スワイプの経路に沿ってカーソルの移動が行われる。別の実施例として、タップジェスチャは、(例えば、接触の検出に続いて接触の検出を停止する代わりに)カーソルがタップジェスチャの位置上に配置される間、任意選択的に、マウスクリックと置換される。同様に、複数のユーザ入力が同時に検出される時、複数のコンピュータマウスが同時に、任意選択的に用いられ、又はマウスと指接触が同時に用いられることが理解されよう。
【0114】
ここで使用されるとき、用語「アフォーダンス」は、デバイス100、300、及び/又は500(
図1、3、及び5)のディスプレイスクリーン上に表示され得るユーザ対話式のグラフィカルユーザインタフェースオブジェクトを指す。例えば、画像(例えば、アイコン)、ボタン、及びテキスト(例えば、ハイパーリンク)がそれぞれ、アフォーダンスを構成してもよい。
【0115】
本明細書で使用されるとき、用語「フォーカスセレクタ」とは、ユーザが対話しているユーザインタフェースの現在の部分を示す、入力要素を指す。カーソル又は他のロケーションマーカを含むいくつかの実装において、カーソルは、タッチ感知面(例えば、
図3のタッチパッド355、又は
図4Bのタッチ感知面451)上で入力(例えば、押下げ入力)が検出された時に、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウインドウ、スライダ、又は他のユーザインタフェース要素)の上にある間に、「フォーカスセレクタ」として機能し、特定のユーザインタフェース要素が、検出された入力に従って調整される。タッチスクリーンディスプレイ上でのユーザインタフェース要素との直接的な対話を有効にするタッチスクリーンディスプレイ(例えば、
図1Aのタッチ感知ディスプレイシステム112、又は
図4Aのタッチスクリーン112)を含むいくつかの実装において、タッチスクリーン上の検出された接触は、入力(例えば、接触による押下げ入力)が特定のユーザインタフェース要素(例えば、ボタン、ウインドウ、スライダ、又は他のユーザインタフェース要素)の位置にあるタッチスクリーン上で検出された時に、「フォーカスセレクタ」として機能し、特定のユーザインタフェース要素が、検出された入力に従って調整される。いくつかの実装において、(例えば、タブキー又は矢印キーを使ったフォーカスの1つのボタンから別のボタンへの移動により)タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスが、ユーザインタフェースの1つの領域からユーザインタフェースの別の領域に移動される。これらの実装において、フォーカスセレクタは、ユーザインタフェースの異なる領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが取る特定のフォームに関係なく、フォーカスセレクタは、全体的に、ユーザのユーザインタフェースとの意図した(例えば、ユーザが対話したいと思っているユーザインタフェースの要素をデバイスに指示することによる)対話を伝達するように、ユーザによって制御されたユーザインタフェース要素(又は、タッチスクリーンディスプレイ上の接触)である。例えば、押下げ入力がタッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で検出された時にそれぞれのボタンの上にあるフォーカスセレクタ(例えば、カーソル、接触又は選択ボックス)の位置は、(デバイスのディスプレイ上に示されている他のユーザインタフェース要素とは反対に)ユーザが、それぞれのボタンをアクティブ化しようとしていることを指示する。
【0116】
明細書及び特許請求の範囲で使用されるように、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく接触の特性を指す。いくつかの実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、又は既定のイベント(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増加を検出する前若しくは後、及び/又は接触の強度の減少を検出する前若しくは後)に対して所定の時間期間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)内に収集された強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の中間値(mean)、接触の強度の平均値(average)、接触の強度の上位10個のパーセンタイル値、接触の強度の最大値の半分の値、接触の強度の最大値の90パーセントの値などのうちの1つ以上に基づく。いくつかの実施形態では、特性強度を判定するために、接触の期間が使用される(例えば、特性強度が経時的な接触の強度の平均である時)。いくつかの実施形態では、動作がユーザによって実行されたかどうかを判定するために、特性強度が1つ以上の強度閾値のセットと比較される。例えば、1つ以上の強度閾値のセットは、第1の強度閾値及び第2の強度閾値を含んでもよい。この実施例では、第1の閾値を上回らない特性強度を有する接触の結果として第1の動作が実行され、第1の強度閾値を上回り、第2の強度閾値を上回らない特性強度を有する接触の結果として第2の動作が実行され、第2の閾値を上回る特性強度を有する接触の結果として第3の動作が実行される。いくつかの実施形態では、特性強度と1つ以上の閾値との間の比較が、第1の動作又は第2の動作を実行するかを判定するために使用されるのではなく、1つ以上の動作を実行するかどうか(例えば、それぞれの動作を実行するのか、又はそれぞれの動作の実行を省略するのか)を判定するために使用される。
【0117】
いくつかの実施形態では、特性強度を判定する目的で、ジェスチャの一部分が特定される。例えば、タッチ感知面は、接触の強度が増加する、開始位置から遷移して終了位置まで達する連続的なスワイプ接触を受け取ってもよい。この実施例では、終了位置における接触の特性強度は、連続的なスワイプ接触全体ではなく、そのスワイプ接触の一部分(例えば、終了位置におけるスワイプ接触の部分のみ)のみに基づいてもよい。いくつかの実施形態では、接触の特性強度を判定することの前に、平滑化アルゴリズムがスワイプ接触の強度に適用されてもよい。例えば、平滑化アルゴリズムは、任意選択的に、非荷重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズムのうちの1つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的で、スワイプ接触の強度の小幅な上昇又は低下を除外する。
【0118】
タッチ感知面上の接触の強度は、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び/又は1つ以上の他の強度閾値などの1つ以上の強度閾値に対して特徴付けされてもよい。いくつかの実施形態では、軽い押圧強度閾値は、物理マウスのボタン又はトラックパッドのクリックに典型的に関連付けられた動作を、デバイスが実行することになる強度に相当する。いくつかの実施形態では、深い押圧強度閾値は、物理マウスのボタン又はトラックパッドのクリックに典型的に関連付けられた動作とは異なる動作を、デバイスが実行することになる強度に相当する。いくつかの実施形態では、軽い押圧強度閾値を下回る(例えば、かつ、それを下回ると接触がもはや検出されないわずかな接触検出強度閾値を上回る)特性強度で接触が検出される場合、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従って、フォーカスセレクタを移動させることになる。全般的には、特に明記しない限り、これらの強度閾値は、異なるユーザインタフェース図のセット間でも一貫している。
【0119】
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への、接触の特性強度の増大は、「軽い押圧」入力と称される場合がある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への、接触の特性強度の増大は、「深い押圧」入力と称される場合がある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への、接触の特性強度の増大は、タッチ面上の接触の検出と称される場合がある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への、接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と称される場合がある。いくつかの実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値はゼロを上回る。
【0120】
本明細書で説明されるいくつかの実施形態では、1つ以上の動作は、それぞれの押圧入力を含むジェスチャの検出に応答して、又はそれぞれの接触(又は、複数の接触)で実行されるそれぞれの押圧入力の検出に応答して実行され、それらのそれぞれの押圧入力は、少なくとも部分的に、押圧入力強度閾値を上回る接触(又は、複数の接触)の強度の増大の検出に基づいて検出される。いくつかの実施形態では、それぞれの動作は、押圧入力強度閾値を上回る、それぞれの接触の強度の増大(例えば、それぞれの押圧入力の「ダウンストローク」)の検出に応答して、実行される。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る、それぞれの接触の強度の増大、及び後続の押圧入力強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、その後続の押圧入力閾値を下回るそれぞれの接触の強度の減少(例えば、それぞれの押圧入力の「アップストローク」)の検出に応答して、実行される。
【0121】
いくつかの実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある偶発的入力を回避するために、強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関連性を有するヒステリシス強度閾値を、定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもX強度単位低いか、又は、ヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な比率である)。それゆえ、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る、それぞれの接触の強度の増大、及び後続の、押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、そのヒステリシス強度閾値を下回る、後続のそれぞれの接触の強度の減少(例えば、それぞれの押圧入力の「アップストローク」)の検出に応答して、実行される。同様に、いくつかの実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から、押圧入力強度閾値以上の強度への、接触の強度の増大、及び任意選択的に、ヒステリシス強度以下の強度への、後続の接触の強度の減少を検出する場合にのみ、検出され、それぞれの動作は、その押圧入力(例えば、状況に応じて、接触の強度の増大、又は接触の強度の減少)の検出に応答して、実行される。
【0122】
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力に応答して、又はその押圧入力を含むジェスチャに応答して実行される動作の説明は、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び/又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかの検出に応答して、任意選択的にトリガーされる。更に加えて、押圧入力強度閾値を下回る、接触の強度の減少の検出に応じて、動作が実行されるとして説明される実施例では、その動作は、押圧入力強度閾値に対応し、かつ押圧入力強度閾値よりも低い、ヒステリシス強度閾値を下回る、接触の強度の減少の検出に応じて、任意選択的に実行される。
2.構造化された提案
【0123】
本開示の実施形態では、電子デバイスは、ユーザのメッセージからユーザに対して提案される連絡先及びカレンダーイベントを構造化することができる。提案される連絡先及びカレンダーイベントは、ユーザにより手作業で入力されたかのように検索可能であり、ユーザは、提案される連絡先及びカレンダーイベントを追加又は無視する(例えば、拒否する)ことを選択することができる。この方法において、ユーザの連絡先及びカレンダーイベントを、ユーザの側における労力を必要とせず、又は最小限の努力により維持することができる。これにより、ユーザの時間を節約することができ、生産性を向上させることができ、より効率的な人間−機械インタフェースを生成することができる。
2.1 提案される連絡先情報
【0124】
図5Aは、いくつかの実施形態に係る、提案される連絡先についての例示的なデータ構造502Aを示す。
図5Aに示すように、電子デバイス500は、メッセージ510からの連絡先情報520Aを、対応する連絡先530Aに関連付ける(例えば、記憶する)ことができる。メッセージ510としては、デバイス500のユーザにより送信又は受信することができる、例えば、電子メール、インスタントメッセージ、デバイス500上のアプリケーションを介したメッセージなどの、任意の種類のメッセージが挙げられ、メッセージ510への任意の添付を含み得る。
【0125】
連絡先情報520Aは、エンティティの名称、電話番号、アドレス、ビジネスネットワーク又はソーシャルネットワークのハンドル名などの、アドレス帳データベース内の連絡先エントリに典型的に関連付けられる情報を含むことができる。連絡先エントリは、典型的には、エンティティにより、体系化又は索引付けされる。エンティティとしては、個人、グループ、組織、企業などを挙げることができる。連絡先情報520Aは、連絡先モジュール137などのアプリケーションが連絡先情報520Aを処理するために認識することができる、任意の好適なフォーマットで記憶され得る。連絡先情報520はまた、CardDAVプロトコルなどの標準的なプロトコルに従ってフォーマット化されてもよい。これにより、ネットワーク上において、更新又は他のクライアントとの同期が可能となる。
【0126】
いくつかの実施形態では、特定された連絡先情報520Aは、3つの相互排他的な状態−提案状態540、追加状態550、及び拒否状態560のうちいずれか1つで、連絡先530Aに関連付けられることができる。提案状態540は、ユーザが連絡先への連絡先情報520Aの追加を未だに確認又は承認していない状態を示し得る。追加状態550は、ユーザが連絡先への連絡先情報520Aの追加を確認又は承認した状態を示し得る。拒否状態560は、ユーザが連絡先への連絡先情報520Aの追加を拒否した状態を示し得る。連絡先530Aはまた、全ての関連付けられた連絡先情報が同じ状態に属する場合、これらの3つの状態のうち任意の1つに関連付けられることもできる。
【0127】
いくつかの実施形態では、追加状態550は、デバイス500により、デフォルト状態として処理されることができる。デフォルト状態とは、追加状態550にあることを示すために、このような連絡先に関連付けられるべき追加データを必要としないことを意味する。例えば、デバイス500上のユーザにより追加された連絡先は、追加状態550にデフォルト化されることができる。
【0128】
追加状態550がデフォルト状態として処理される実施形態では、デバイス500は、データを、連絡先情報520Aに関連付けて、連絡先情報520Aが提案状態540か又は拒否状態560かのいずれか一方に属することを示すことができる。このデータは、メタデータなどの任意の好適な形態をとることができ、メタデータは、連絡先情報520Aを処理して、連絡先情報520Aが提案状態540か又は拒否状態560かのいずれか一方にあることを認識するアプリケーションにより使用されることができる。デバイス500はまた、データを、連絡先530Aに関連付けて、連絡先530A及び全ての関連付けられた連絡先情報が提案状態540か又は拒否状態560かのいずれか一方に属することを示すこともできる。
【0129】
提案状態540にある連絡先情報520Aを記憶することにより、(例えば、デバイス500上で動作するアプリケーションを介して)デバイス500は、連絡先の検索において提案される連絡先情報を含むことができる。ユーザの混乱を避けるために、デバイス500はまた、ユーザに対して、連絡先情報520Aが、(例えば、ラベル付け又は強調により)視覚的表示を提供することにより、かつ/又は(例えば、ユーザが連絡先情報520Aに対して行動を起こすことを可能にする前に、ユーザに追加的な入力を要求することにより)ユーザが連絡先情報520Aに直接的に行動を起こすことを防止することにより、提案状態540にあることを示すことができる。入力とは、タッチ、マウス、スピーチなどの入力における任意の好適な方法を指すことができる。
【0130】
拒否状態560にある連絡先情報520Aを記憶することにより、デバイス500は、ユーザに対して、再度、連絡先情報を提案しないように、ユーザが拒否した以前に提案された連絡先情報を記憶していることができる。拒否状態560にある連絡先情報520Aは、追加状態550及び提案状態540にある連絡先情報を処理するアプリケーションにより無視され得る。
【0131】
デバイス500は、デバイス500上のローカルに、連絡先情報520Aを記憶することができ、連絡先情報520Aが提案状態540から追加状態550に変更されるまで、連絡先情報520Aをリモートデータベースに同期することを自制することができる。他の実施形態では、連絡先情報520Aは、提案状態540にある間に、リモートデータベースに更新されてもよい。
【0132】
デバイス500は、メッセージ510中の構造化又は非構造化コンテンツから、連絡先情報520Aを特定することができる。構造化コンテンツとは、フライト、ホテル、及び/又は自動車の予約情報を同じ所定の方法で(例えば、同じHTML構造を使用して)レイアウトするオンライン旅行代理店により提供される自動電子メールなどの、所定のフォーマットに従って配置された、形式的な体系又は構造を有するコンテンツを指す。いくつかの実施形態では、連絡先情報520Aを構造化コンテンツから特定するために、デバイス500は、このようなメッセージにより提供された特定のフォーマットにある連絡先情報を認識するように構成されているテンプレートを使用することができる。いくつかの実施形態では、デバイス500は、これらのテンプレートをネットワーク上に追加及び/又は更新することができる。
【0133】
非構造化コンテンツとは、(例えば、誰かが、新しい番号を有していることをメッセージ内で述べるなどの)自然言語コンテンツ及び電子メールの署名などの、形式的な体系又は構造を有さないコンテンツを指す。連絡先情報520Aを非構造化コンテンツから特定するために、デバイス500は、特定のフレーズ、例えば、「新しい番号を取得しました。その番号は、<番号>です」などの、連絡先情報に対する所定の言及を特定するように構成されているデータ検出器を使用することができる。デバイス500はまた、これらのデータ検出器をネットワーク上に追加及び/又は更新することができる。デバイス500は、デバイス500上(例えば、アドレス帳データベース内)の連絡先情報を、デバイス500上(例えば、メッセージ内)のその連絡先情報に関連付けられた言語と相互相関させることにより、データ検出器によって依存される所定の言及を改良することができる。次に、相関された言語を使用して、その後の使用ために所定の言及の精度を上げることができる。デバイス500により分析されたメッセージコンテンツは、デバイス500により認識可能な、メッセージメタデータを含む任意の情報を含むことができる。
【0134】
いくつかの実施形態では、デバイスは、命令(例えば、ユーザのリクエスト)を受け取って、連絡先(例えば、個人又は企業)との通信(例えば、電話、インスタントメッセージ、電子メール)を開始する。デバイスは、連絡先が、デバイスのアドレス帳にないことを判定する。応答において、デバイスは、1つ以上の通信(例えば、インスタントメッセージ、電子メール、カレンダーの項目)に基づく連絡先情報(例えば、電話番号、ユーザ名、電子メールアドレス)の場所を特定する。つまり、デバイスは、可能性のある連絡先のデータベースを検索して、命令において参照された、リクエストされた連絡先を区別する。任意選択的に、デバイスは、適合する可能性のある連絡先の順位付けされたリストを提示し、意図した連絡先を選択するユーザ入力を受け取る。意図した連絡先を選択するユーザ入力に応じて、デバイスは、意図した連絡先との通信(例えば、電話、インスタントメッセージ、電子メール)を開始してもよい。
2.2 提案されるイベント情報
【0135】
図5Bは、いくつかの実施形態に係る、提案されるカレンダーイベントについての例示的なデータ構造502Bを示す。
図5Bに示すように、電子デバイス500は、メッセージ510からのイベント情報520Bを、対応するカレンダーイベント530Bに関連付ける(例えば、記憶する)ことができる。メッセージ510としては、デバイス500のユーザにより送信又は受信され得る、例えば、電子メール、インスタントメッセージ、デバイス上のアプリケーションを介したメッセージなどの、任意の種類のメッセージを挙げられ、メッセージへの任意の添付を含み得る。
【0136】
イベント情報520Bは、時刻、日付、場所などのカレンダーデータベース内のカレンダーの項目に典型的に関連付けられた情報を含むことができる。イベント情報520Bは、カレンダーモジュール148などのアプリケーションがイベント情報520Bを処理するために認識することができる、任意の好適なフォーマットで記憶され得る。イベント情報520Bはまた、CalDAVプロトコルなどの標準的なプロトコルに従ってフォーマット化されてもよい。これにより、ネットワーク上において、更新又は他のクライアントとの同期が可能となる。
【0137】
いくつかの実施形態では、特定されたイベント情報520Bは、3つの相互排他的な状態−提案状態540、追加状態550、及び拒否状態560のうち任意の1つの状態で、カレンダーイベント530Bに関連付けられ得る。提案状態540は、ユーザがカレンダーイベントへのイベント情報520Bの追加を未だに確認又は承認していない状態を示し得る。追加状態550は、ユーザがカレンダーイベントへのイベント情報520Bの追加を確認又は承認した状態を示し得る。拒否状態560は、ユーザがカレンダーイベントへのイベント情報520Bの追加を拒否した状態を示し得る。カレンダーイベント530Bはまた、全ての関連付けられたカレンダーイベント情報が同じ状態に属する場合、これらの3つの状態のうちいずれか1つに関連付けられることもできる。
【0138】
いくつかの実施形態では、追加状態550は、デバイス500により、デフォルト状態として処理されることができる。デフォルト状態とは、追加状態550にあることを示すために、このようなカレンダーイベントに関連付けられるべき追加データを必要としないことを意味する。例えば、デバイス500上にユーザにより追加されたカレンダーイベントは、追加状態550にデフォルト化されることができる。
【0139】
追加状態550がデフォルト状態として処理される実施形態では、デバイス500は、データを、イベント情報520Bに関連付けて、イベント情報520Bが提案状態540又は拒否状態560のいずれか一方に属することを示すことができる。このデータは、メタデータなどの任意の好適な形態をとることができ、メタデータは、イベント情報520Bを処理して、イベント情報520Bが提案状態540又は拒否状態560のいずれか一方にあることを認識するアプリケーションにより使用されることができる。デバイス500はまた、データを、カレンダーイベント530Bに関連付けて、カレンダーイベント530B及び全ての関連付けられたイベント情報が提案状態540又は拒否状態560のいずれか一方に属することを示すこともできる。
【0140】
提案状態540にあるイベント情報520Bを記憶することにより、(例えば、デバイス500上で動作するアプリケーションを介して)デバイス500は、カレンダーイベントの検索において、提案されるイベント情報を含むことができる。ユーザの混乱を避けるために、デバイス500は、ユーザに対して、イベント情報520Bが、(例えば、ラベル付け又は強調により)視覚的表示を提供することにより、かつ/又は(例えば、ユーザがイベント情報520Bに行動を起こすことが可能になる前に、ユーザに追加的な入力を要求することにより)ユーザがイベント情報520Bに直接行動を起こすことを防止することにより、提案状態540にあることをも示すこともできる。入力とは、タッチ、マウス、スピーチなどの入力における任意の好適な方法を指すことができる。
【0141】
拒否状態560にあるイベント情報520Bを記憶することにより、デバイス500は、ユーザに対して、再度、イベント情報を提案しないように、ユーザが拒否した以前に提案されたイベント情報を記憶していることができる。拒否状態560にあるイベント情報520Bは、追加状態550及び提案状態540にあるイベント情報を処理するアプリケーションにより無視され得る。
【0142】
デバイス500は、デバイス500上のローカルに、イベント情報520Bを記憶することができ、イベント情報520Bが提案状態540から追加状態550に変更されるまで、イベント情報520Bをリモートデータベースに同期することを自制することができる。他の実施形態では、イベント情報520Bは、提案状態540にある間に、リモートデータベースに更新されてもよい。
【0143】
デバイス500は、メッセージ510中の構造化又は非構造化コンテンツから、イベント情報520Bを特定することができる。構造化コンテンツとは、フライト、ホテル、及び/又は自動車の予約情報を同じ所定の方法で(例えば、同じHTML構造を使用して)レイアウトするオンライン旅行代理店により提供される自動電子メールなどの、所定のフォーマットに従って配置された、形式的な体系又は構造を有するコンテンツを指す。いくつかの実施形態では、イベント情報520Bを構造化コンテンツから特定するために、デバイス500は、このようなメッセージにより提供された特定のフォーマットにあるイベント情報を認識するように構成されているテンプレートを使用することができる。いくつかの実施形態では、デバイス500は、これらのテンプレートをネットワーク上に追加及び/又は更新することができる。
【0144】
非構造化コンテンツとは、(例えば、誰かが、どこかで特定の時間にあなたに会う予定であることをメッセージ中で言うなどの)自然言語コンテンツ及び電子メールの署名などの、形式的な体系又は構造を有さないコンテンツを指す。イベント情報520Bを非構造化コンテンツから特定するために、デバイス500は、特定のフレーズ、例えば、「<場所>で、<時刻>に私と会う」などの、イベント情報に対する所定の言及を特定するように構成されているデータ検出器を使用することができる。デバイス500はまた、これらのデータ検出器をネットワーク上に追加及び/又は更新することができる。デバイス500は、デバイス500上(例えば、カレンダーデータベース中)のイベント情報を、デバイス500上(例えば、メッセージ中)のそのイベント情報に関連付けられた言語と相互相関させることにより、データ検出器によって依存される所定の言及を改良することができる。次に、相関された言語を使用して、その後の使用ために所定の言及の精度を上げることができる。デバイス500により分析されたメッセージのコンテンツは、デバイス500により認識可能な、メッセージメタデータを含む任意の情報を含むことができる。
【0145】
いくつかの実施例では、デバイスは、カレンダーイベント(例えば、ユーザにより追加されたカレンダーイベント又はユーザにより受け付けられた受信した会合への招待)に関連付けられた1つ以上の通信(例えば、電子メール若しくは他のコンテンツ)を特定する。例えば、デバイスは、通信に同じ又は類似する名称のイベント、同じ又は類似する日付/時刻及び/又は期間のイベント、並びに/又は同じ場所のイベントが記載されている場合、通信がカレンダーイベントに関連付けられていると判定してもよい。別の例について、デバイスは、通信中に使用された同じ又は類似する言語を含むカレンダーイベントに基づいて、通信がカレンダーイベントに関連付けられていると判定してもよい。1つ以上の通信及び関連付けられたカレンダーイベントは、分析及び/又は比較されて、将来のカレンダー入力が作成又は提案されるべきである、候補となる通信をより的確に特定する。例えば、機械学習技術を用いて、(カレンダーイベントを作成するために使用された電子メールのサポートベクターマシーン及びコーパスを使用して)イベントの基礎となる電子メールから訓練する/電子メールを分析することにより、イベント作成のパターンを学習させることができる。
【0146】
例えば、デバイスは、「こんにちは。交換部品を受け取りに、明日部品店までお越しいただけませんか?」という言語を含む、自動車部品店からの電子メール通信を受信することができる。電子メールはまた、部品店の所在地住所を含む電子メールの署名を含んでもよい。次に、ユーザは、「交換部品を受け取りに部品店に立ち寄る」という言語を含むカレンダーイベントを手作業で作成してもよい。カレンダーイベントはまた、カレンダーイベントの場所として、部品店の所在地住所を含んでもよい。電子メール通信及びカレンダーイベントに基づいて、デバイスは、機械学習を使用して、この種の電子メール通信がカレンダー入力に対する提案を必要としていると判定することができる。判定は、電子メール通信内の「交換部品を受け取りに部品店に立ち寄る」とカレンダーイベントとの間の類似性、電子メール通信内の所在地住所とカレンダーイベントとの間の類似性、電子メール通信及びカレンダーイベント内で特定される日付/時刻の類似性、又はこれらの2つ以上の組み合わせに基づいてもよい。
【0147】
いくつかの例では、デバイスは、インスタントメッセージでの会話(例えば、SMS又はテキストメッセージでの会話)から(例えば、同会話中に)、イベント情報を特定する。会話中に、デバイスは、イベントに関連する情報を収集する。会話の関連部分の後(例えば、所定のセットの情報が収集された後)、デバイスは、提案されるカレンダーイベントを生成する。いくつかの実施例では、提案されるカレンダーイベントは、最初に提案されるカレンダーイベントが生成された後に送信又は受信された会話中のメッセージに基づいて更新される。この会話イベント作成技術は、ユーザが、インスタントメッセージでの会話中のメッセージに基づいて、素早くかつ効率的に、イベントをカレンダーに追加することを可能にする。
【0148】
例えば、デバイスは、デバイスのユーザと自動車部品店の代表者との間のインスタントメッセージでの会話を表示していてもよい。会話は、「こんにちは。交換部品を受け取りに、明日部品店までお越しいただけませんか?」という言語を含む、代表者からのメッセージを含んでもよい。会話はまた、部品店の所在地住所を含む、代表者からのメッセージを含んでもよい。ユーザは、「はい。そちらに伺います!」と応答してもよい。会話の関連部分(例えば、「はい。そちらに伺います!」という訪問の確認、又は「明日」という時間及び場所(所在地住所)の受信)に応じて、デバイスは、提案されるカレンダー情報を生成する。更新された時刻(例えば、「実際には、明日はお休みですが、今週の金曜日は営業しております。」)、場所、又は他のイベント成分を示す、代表者からのメッセージをデバイスがその後に受信した場合、デバイスは、提案されるカレンダーイベントを更新してもよい。
【0149】
例示的なデータ構造520A及び520Bは、同一であってもよく、又は異なっていてもよいことを認識されたい。例えば、単独のデータ構造が、提案されるカレンダーイベントに対してと同様に、提案される連絡先に対して使用されてもよい。あるいは、1つのデータ構造が、提案される連絡先に対して使用されてもよい一方で、別の異なるデータ構造が、提案されるカレンダーイベントに対して使用されてもよい。
【0150】
また、メッセージ510は、提案される連絡先に対してのみ、提案されるカレンダーイベントに対してのみ、又は提案される連絡先と提案されるカレンダーイベントの両方に対して、処理されてもよいことも認識されたい。提案される連絡先と提案されるカレンダーイベントの両方に対して処理される場合、メッセージ510は、提案される連絡先と提案されるカレンダーイベントとに対して、連続的に又は平行して処置され得る。例えば、メッセージ510は、まず、提案される連絡先に対して処理され、次いで、提案されるカレンダーイベントに対して処理されてもよい。あるいは、メッセージ510及びメッセージ510のコピーが、提案される連絡先と提案されるカレンダーイベントとに対して、並行して処理されてもよい。
【0151】
いくつかの実施例では、告知又はリマインダが、メッセージ又は他のメディア内の構造化又は非構造化コンテンツから特定されたイベント情報に基づいて、(デバイス500上での視覚的告知、触覚的告知、音声告知、又は1つ以上の告知の組み合わせにより)ユーザに対して提示されてもよい。いくつかの実施例では、告知又はリマインダは、イベント情報が追加状態に関連付けられていなくても、ユーザに提示されてもよい。例えば、デバイスは、近く予定されているキャンプ旅行について受信した電子メールに基づいて、キャンプ旅行がユーザのカレンダーに追加されていなくても、荷物を準備することを、ユーザに思い出させることができる。このため、リマインダは、提案状態にある(例えば、明確に承認又は拒否されていない)カレンダー入力、イベントなどについて提示されてもよい。
3.ユーザインタフェース及び関連プロセス
【0152】
図6A〜
図13は、デバイス500に実装され得るユーザインタフェース(「UI」)及び関連プロセスの実施形態を示す。いくつかの実施形態では、デバイス500は、デバイス100又は300に相当する。
【0153】
図6A及び
図6Gは、いくつかの実施形態に係る、提案される連絡先及びカレンダーイベントを提供するための例示的なユーザインタフェースを示す。
【0154】
特に、
図6Aは、例えば、上述のようにメッセージを処理した後の、提案される連絡先情報(すなわち、提案状態540にある連絡先情報)を含む連絡先に対応する、例えば、ユーザインタフェースの連絡先モジュール137による表示を示す。この例では、連絡先は、個人名であるJohn Appleseedに関連付けられ、企業名(「Any Company Inc.」)、職場番号(「405−555−1234」)、及び携帯電話番号(「405−123−6633」)を含む。企業名及び職場番号は、連絡先情報の確認された項目であり、追加状態550に属する。携帯電話番号は、連絡先情報の提案される項目であり、提案状態540に属する。
【0155】
デバイス500は、ユーザに対して、携帯電話番号が連絡先情報の提案される項目であり、ユーザにより承認されたものではないことを示すために、ユーザインタフェースオブジェクト600(例えば、「提案」という語)を、ユーザインタフェースの中に提供することができる。任意の好適なユーザインタフェースオブジェクトが、この目的で使用され、ユーザインタフェースオブジェクトとしては、携帯電話番号が連絡先情報の提案される項目であることの、ラベル、アイコン、又は他の視覚的表示が挙げられる。同じ連絡先が、提案状態540にある連絡先情報の項目及び追加状態550にある連絡先情報の項目を含む場合、
図6Aの事例におけるように、デバイス500は、提案状態540にある項目を、追加状態550にある全ての項目の下に、又は同項目に対してより低い優先度の位置に表示することができる。
【0156】
デバイス500はまた、ユーザが、この最初のユーザインタフェースから、提案される番号で、John Appleseedに電話を掛けるアプリケーション(例えば、電話モジュール138)を直接呼び出すことを防止することができる。例えば、デバイス500は、提案される番号のユーザによる選択がその番号に直接電話を掛けることとならないことを示すために、連絡先情報の承認された項目と視覚的外観が異なる視覚的外観(例えば、グレーアウトした外観(図示せず))を有する提案された番号に関連付けられたテキスト及び/又は領域を提供することができる。むしろ、ユーザが提案される番号を選択すると、デバイス500は、現在のユーザインタフェースを、ユーザが提案される番号をレビューし、電話を掛けることができる、第2のユーザインタフェースに置き換えてもよい。
【0157】
図6Bに示すように、(「レビュー提案」とラベル付けされる)第2のユーザインタフェースは、提案される番号に関連付けられた(「連絡先に追加」とラベル付けされる)ユーザインタフェースオブジェクト602を含むバナーの形式で提案部分606を含む。ユーザインタフェースオブジェクト602をユーザにより選択することは、デバイス500に、提案される番号を、追加状態550にある連絡先に追加させる(例えば、提案される番号の状態を、提案状態540から追加状態550に変更する)ことができる。この後のユーザインタフェースにおける、携帯電話番号の次に表示される電話のアイコンなどの携帯電話番号又は類似する表示のユーザによる選択に基づいて、デバイス500は、提案される番号でJohn Appleseedに電話を掛けるアプリケーション(例えば、電話モジュール138)を呼び出すことができる。いくつかの実施形態では、デバイス500は、ユーザがユーザインタフェースオブジェクト602を選択しないが、携帯電話番号及び類似する表示を選択する(例えば、ユーザが提案される番号に電話を掛けることが、連絡先に対する、提案される番号の暗黙的な承認として扱われない)場合、携帯電話番号を提案状態540に維持することができる。他の実施形態では、デバイス500は、ユーザがユーザインタフェースオブジェクト602を選択しなかった(例えば、ユーザが提案される番号に電話を掛けることが、連絡先に対する、提案される番号の暗黙的な承認として扱われる)場合であっても、ユーザが携帯電話番号を選択すると、携帯電話番号の状態を、追加状態550に変更することができる。
【0158】
図6Bにおける第2のユーザインタフェースもまた、提案される番号に関連付けられた(「無視」とラベル付けされる)ユーザインタフェースオブジェクト604を含む。ユーザインタフェースオブジェクト604のユーザによる選択により、デバイス500に、ユーザインタフェースオブジェクト602を表示することを中止することができる。この表示の取り止めにより、番号を連絡先に追加する選択肢を排除することができる。ユーザインタフェースオブジェクト604を選択すると、デバイス500は、提案される番号の状態を、提案状態540から拒否状態560に変更することができる。拒否状態560において、デバイス500は、この連絡先との関連において、提案される番号を、もはや表示又は提案しないように構成されてもよい。
【0159】
更に加えて、
図6Bにおける第2のユーザインタフェースは、提案される番号がデバイス500により特定されたメッセージの一部分を含む、(「関連する電子メール」とラベル付けされる)メッセージ部分608を含む。このため、提案される連絡先情報をレビューするためのインタフェースを提供する際、
図6Bのユーザインタフェースは、提案される連絡先情報に関連付けられたメッセージコンテキストを、ユーザに提供することができる。
図6Bに示すように、デバイス500は、携帯電話番号を含む部分に関連する、電子メールの限定的な部分を表示することができる。ユーザがメッセージの表示された部分を選択すると、デバイス500は、メッセージアプリケーション(例えば、電子メールクライアントモジュール140)に、ユーザに対する電子メール全体を開かせることができる。いくつかの実施形態では、電子メール全体は、
図6Dに示したものに相当するユーザインタフェースにおいて、提案される連絡先情報と共に表示されてもよい。
【0160】
図6Cは、
図6Aにおける「編集」のユーザインタフェースオブジェクトをユーザが選択することに応じて表示されるユーザインタフェースを示す。この編集のユーザインタフェースオブジェクトでは、ユーザは、ユーザインタフェースオブジェクト610により表された提案される番号に直接電話を掛けることもできる。ユーザインタフェースオブジェクト610は、番号が提案状態540にあることを示すために、強調(すなわち、ボールドに)されている。任意の好適な視覚的表示を使用して、ユーザインタフェースオブジェクト610が提案状態540にあることを示すことができる。
【0161】
図6Dは、メッセージ内に特定された提案される連絡先情報を有するデバイス500により、デバイス500上でメッセージ(例えば、電子メールクライアントモジュール140により表示される電子メール)を開くと、ユーザが見ることができるスクリーンを示す。
図6Dのユーザインタフェースは、提案部分612及びメッセージ部分614を含む。メッセージ部分614は、デバイス500により受信されたメッセージのコンテンツを含む。提案部分612は、特定されたエンティティ(「John Appleseed」)に対応するユーザインタフェースオブジェクト、特定された連絡先情報(「405−123−6633」)に対応するユーザインタフェースオブジェクト、及び特定された連絡先情報に関連付けられた(「連絡先に追加」とラベル付けされる)ユーザインタフェースオブジェクト618を含む。ユーザインタフェースオブジェクト618は、選択された場合、デバイスに、提案される番号を追加状態550にある連絡先に追加させる。提案部分612は、特定された連絡先情報に関連付けられた(「無視」とラベル付けされる)ユーザインタフェースオブジェクト620を含む。ユーザインタフェースオブジェクト620は、選択されると、デバイス500に、特定された連絡先情報の状態を、提案状態540から拒否状態560に変更させる。拒否状態560において、デバイス500は、この連絡先との関連において、提案される連絡先情報を、もはや表示又は提案しないように構成されてもよい。「無視」及び「連絡先に追加」タイルの上の提案部分612の特定された連絡先情報616を選択することにより、特定されたエンティティに関連付けられた連絡先に対応するユーザインタフェースをもたらすことができる。例えば、デバイス500は、この実施形態において、
図6Aに示したものに相当するユーザインタフェース内に、「John Appleseed」についての連絡先情報を提示することができる。
【0162】
図6Eは、メッセージ内に特定された提案されるイベント情報を有するデバイス500により、デバイス500上でメッセージ(例えば、電子メールクライアントモジュール140により表示される電子メール)を開くと、ユーザが見ることができるスクリーンを示す。
図6Eのユーザインタフェースは、提案部分620及びメッセージ部分622を含む。メッセージ部分622は、デバイス500により受信されたメッセージのコンテンツを含む。提案部分620は、特定されたイベント情報(「夕食」、「寿司屋」、「3月7日金曜日」、又は「午後9:50」)に対応するユーザインタフェースオブジェクトと、特定されたイベント情報に関連付けられた(「カレンダーに追加」とラベル付けされる)ユーザインタフェースオブジェクト626と、を含む。ユーザインタフェースオブジェクト626は、選択された場合、デバイス500に、提案されるイベント情報を追加状態550にあるカレンダーイベントに追加させる。提案部分620は、選択されると、デバイス500に、特定されたイベント情報の状態を、提案状態540から拒否状態560に変更させる、(「無視」とラベル付けされる)ユーザインタフェースオブジェクト628を含む。拒否状態560において、デバイス500は、このカレンダーイベントとの関連において、提案されるイベント情報を、もはや表示又は提案しないように構成されてもよい。「無視」及び「カレンダーに追加」タイルの上の提案部分620の特定されたイベント情報624を選択することにより、提案されるイベント情報を追加状態550にあるカレンダーイベントに追加するために、ユーザがユーザインタフェースオブジェクトを選択することができる、特定されたイベント情報に関連付けられた(例えば、連絡先モジュール137により表示された)カレンダーイベントに対応するユーザインタフェース(図示せず)をもたらすことができる。
【0163】
いくつかの例では、デバイスは、デバイスのカレンダー上に、カレンダーイベントを表示してもよい。この場合、カレンダーイベントは、提案状態540にあるイベント情報に相当する。デバイスのカレンダー上に表示された提案状態540にあるカレンダーイベントは、それらが提案状態540にあることを示すために、任意選択的にグレーアウトされてもよい。デバイスは、(例えば、ユーザがカレンダーイベントに関連付けられたアフォーダンスをアクティブ化する際に)カレンダーイベントの詳細を表示してもよい。カレンダーイベントの詳細としては、イベント情報のソースの少なくとも一部分(例えば、提案されるイベント情報の基礎をなしている、電子メールなどの通信の一部分)が挙げられる。あるいは又は更には、デバイスは、アクティブ化された場合、デバイスに、提案されるイベント情報の基礎をなしている通信(例えば、電子メール)の少なくとも一部分を表示させるアフォーダンスを表示してもよい。提案されるカレンダーイベントの表示された詳細はまた、提案されるカレンダーイベントを無視(若しくは拒否)するか、又は提案されるカレンダーイベントを受諾するアフォーダンスを任意選択的に含んでもよい。このため、ユーザは、デバイスのカレンダー上の提案されるカレンダーイベントを見ることができ、ユーザは、提案されるカレンダーイベントを素早くかつ効率的に拒否又は受諾することができる。
【0164】
図6Fは、メッセージ内に特定された複数の提案される連絡先及び/又はカレンダーイベントを有するデバイス500により、デバイス500上でメッセージ(例えば、電子メールクライアントモジュール140により表示される電子メール)を開くと、ユーザが見ることができるスクリーンを示す。
図6Fのユーザインタフェースは、提案部分630及びメッセージ部分632を含む。メッセージ部分632は、デバイス500により受信されたとおりのメッセージのコンテンツを含む。提案部分630は、選択された場合、デバイス500に、
図6Gに示す特定された連絡先又はイベント情報の複数の事例のリストを有する、後のユーザインタフェースを表示させる、ユーザが選択可能な領域を更に含む。
図6Fの提案部分630を、
図6Fのユーザインタフェース内に
図6Gの提案全てを組み込むよりもむしろ単独のバナーに制限することにより、
図6Fの提案部分が、メッセージ部分におけるメッセージをユーザが見て、読むことを妨げることを防止することができる。
【0165】
図6Gは、
図6Fのユーザインタフェースに関連付けられたメッセージ内で特定された提案される連絡先又はイベント情報のリストを有する、後続のユーザインタフェースを示す。
図6Gに示すように、提案は、種類によって体系化される(例えば、提案されるカレンダーイベントがグループ化され、提案される連絡先がグループ化される)。各提案は、上述の「無視」並びに「連絡先に追加」及び「カレンダーに追加」の機能性を含む。
図6Gのユーザインタフェースはまた、選択された場合、デバイス500に、追加状態550にある対応する連絡先又はカレンダーイベントに、特定された連絡先又はイベント情報の複数の事例のグループ化のそれぞれ(例えば、
図6Gに示す2つの提案されるカレンダーイベント)を追加させる、ユーザインタフェースオブジェクト634(「全て追加」)を含む。
【0166】
図7A及び
図7Bは、いくつかの実施形態に係る、提案される連絡先を生成するための例示的なプロセスのフロー図である。プロセスは、電子デバイス(例えば、デバイス500)において実行され得る。
【0167】
電子デバイスは、メッセージ(例えば、
図6D、メッセージ部分614における電子メール)を受信し(702)、受信したメッセージにおいて、エンティティ(例えば、
図6D、「John Appleseed」)及びエンティティに関連付けられた連絡先情報(例えば、
図6D、「405−123−6633」)を特定することができる(704)。デバイスは、特定されたエンティティに関連付けられた連絡先(例えば、
図5A、連絡先530A)が、データベース(例えば、アドレス帳データベースなどのデバイス500上のストレージ)内の複数の連絡先の中に存在しないことを判定することができる(722)。この判定に応じて(724)、デバイスは、エンティティに関連付けられた連絡先を生成することができる。生成された連絡先は、連絡先情報と、生成された連絡先が(例えば、提案状態540にある)提案される連絡先であることの表示(例えば、メタデータ)と、を含む。デバイスが「John Appleseed」という連絡先を提案される連絡先として生成する場合、連絡先における連絡先情報の各項目は、連絡先情報の提案される項目として示され、提案状態540で記憶され、又は全体として連絡先全体は、提案される連絡先として示され、提案状態540で記憶されることに留意されたい。また、送受信メッセージなどの、デバイス上の任意のメッセージが、開示されたプロセスを使用して分析され得ることにも留意されたい。
【0168】
いくつかの実施形態では、特定されたエンティティは、名称であり、特定された連絡先情報は、電話番号、アドレス、ビジネスネットワーク又はソーシャルネットワークのハンドル名である(706)。
【0169】
いくつかの実施形態では、デバイスは、メッセージ中の署名ブロックを認識することにより、メッセージ中の非構造化コンテンツを特定することができる。例えば、メッセージ中のエンティティ及び関連付けられた連絡先情報を特定するために、デバイスは、メッセージの署名ブロックを特定し、特定された署名ブロックをエンティティ及び連絡先情報について分析することができる(708)。メッセージは、電子メールを含んでもよく、署名ブロックは、電子メールの署名であってもよい(710)。電子メールは、電子メールのスレッドにおいて、1つ以上の以前の電子メールを含むことができ、電子メールの署名を特定することは、電子メールのスレッドにおける1つ以上の以前の電子メールを分析することを含み得る(712)。電子メールの引用レイヤーを展開することより、デバイスは、電子メールのスレッド中の種々の電子メールにおける、連絡先情報の場所を誤って関連付けることを避けることができる。
【0170】
いくつかの実施形態では、デバイスは、データ検出器で決定的なフレーズを検索することにより、メッセージ中の非構造化コンテンツを特定することができる。例えば、メッセージ中のエンティティ及び関連付けられた連絡先情報を特定するために、デバイスは、メッセージにおいて、所定のフレーズの収集に基づいて1つ以上のフレーズを特定し、1つ以上の特定されたフレーズを、エンティティ及び連絡先情報について分析することができる(714)。デバイスは、ネットワークにわたる所定のフレーズの収集を更新することができ(716)、この更新により、デバイスは、正確なフレーズを使用し続けることができる。デバイスはまた、提案される連絡先を拒否するリクエストの結果として、所定のフレーズのうち1つ以上をダウングレードすることができる(718)。つまり、ユーザが、特定のフレーズの使用により特定された提案を拒否し続ける場合、それらのフレーズは不正確であることの表示であってもよい。デバイスはまた、データベース中の連絡先情報を電子デバイス上の連絡先情報に関連付けられた言語(例えば、メッセージ、カレンダーイベントなど)と相互相関させることにより、所定のフレーズのうち1つ以上を生成することができる(720)。このようにして、デバイスは、連絡先情報を含むメッセージ内のどの正確な言語が、例えば、ユーザに、連絡先を連絡先情報により作成又は更新させるかを判定することができる。
【0171】
いくつかの実施形態では、提案される連絡先は、
図5Aのデータ構造の観点から、検索可能である。例えば、デバイスは、(例えば、ユーザが、デバイス上のアプリケーションを介して連絡先を検索することにより)連絡先に対するリクエストを受信し、連絡先に対するリクエストに応じて、提案される連絡先を検索することができる(726)。
【0172】
いくつかの実施形態では、デバイスは、連絡先の生成に応じて、ネットワーク上のリモートデータベース内に、提案される連絡先を記憶することを自制することができる(728)。例えば、提案される連絡先が提案状態540にある場合、デバイスは、連絡先をネットワーク上の複数のクライアントに対して更新することを可能にする、更新又は同期サービス(例えば、デバイス上のアプリケーション)に、連絡先を勧めることを自制することができる。
【0173】
いくつかの実施形態では、デバイスは、提案される連絡先をデータベースに追加するリクエスト(例えば、
図6D、「連絡先に追加」618)を受信し、リクエストに応じて、データベースにおいて、生成された連絡先が提案される連絡先であることを表示することなく、生成された連絡先を記憶する(例えば、連絡先の状態を、提案状態540から追加状態550に変更する)ことができる(730)。提案される連絡先をデータベースに追加するリクエストに応じて、デバイスは、ネットワーク上のリモートデータベースにおいて、例えば、連絡先を更新又は同期サービスに勧めることにより、生成された連絡先が提案される連絡先であることを表示することなく、生成された連絡先を記憶することができる(732)。
【0174】
いくつかの実施形態では、デバイスは、提案される連絡先を拒否するリクエスト(例えば、
図6D、「無視」620)を受信し、提案される連絡先を拒否するリクエストに応じて、エンティティ及び連絡先情報が将来のメッセージにおいて特定される結果として、提案される連絡先が将来、生成されることを防止することができる(734)。これは、拒否状態560にある拒否された連絡先を記憶することにより実現され、デバイスは、既に拒否されているものを知ることができる。
【0175】
図8A及び
図8Bは、いくつかの実施形態に係る、既存の連絡先を連絡先情報の提案される項目により更新するための例示的なプロセスのフロー図である。プロセスは、電子デバイス(例えば、デバイス500)において実行され得る。
【0176】
電子デバイスは、メッセージ(例えば、
図6D、メッセージ部分614内の電子メール)を受信し(802)、受信したメッセージにおいて、エンティティ(例えば、
図6D、「John Appleseed」)及びエンティティに関連付けられた連絡先情報の項目(例えば、
図6D、「405−123−6633」)を特定する(804)。デバイスは、特定されたエンティティに関連付けられた連絡先(例えば、
図5A、連絡先530A)がデータベース内の複数の連絡先の中に存在すること、及び連絡先が連絡先情報の特定された項目を含まないことを判定することができる(822)。この判定に応じて(824)、デバイスは、連絡先情報の項目及び連絡先情報の項目が連絡先情報の(例えば、提案状態540にある)提案される項目であることの表示(例えば、メタデータ)を含むように、連絡先を更新することができる。また、送受信メッセージなどの、デバイス上の任意のメッセージが、開示されたプロセスを使用して分析され得ることにも留意されたい。
【0177】
いくつかの実施形態では、特定されたエンティティは、名称であり、連絡先情報の特定された項目は、電話番号、アドレス、ビジネスネットワーク又はソーシャルネットワークのハンドル名である(806)。
【0178】
いくつかの実施形態では、デバイスは、メッセージ中の署名を認識することにより、メッセージ中の非構造化コンテンツを特定することができる。例えば、メッセージ中のエンティティ及び連絡先情報の関連付けられた項目を特定するために、デバイスは、メッセージの署名ブロックを特定し、特定された署名ブロックをエンティティ及び連絡先情報の項目について分析することができる(808)。メッセージは、電子メールを含んでもよく、署名ブロックは、電子メールの署名であってもよい(810)。電子メールは、電子メールのスレッドにおいて、1つ以上の以前の電子メールを含むことができ、電子メールの署名を特定することは、電子メールのスレッドにおける1つ以上の以前の電子メールを分析することを含むことができる(812)。電子メールの引用レイヤーを展開することより、デバイスは、電子メールのスレッド中の種々の電子メールにおける、連絡先情報の場所を誤って関連付けることを避けることができる。
【0179】
いくつかの実施形態では、デバイスは、データ検出器で決定的なフレーズを検索することにより、メッセージ中の非構造化コンテンツを特定することができる。例えば、メッセージ中のエンティティ及び連絡先情報の関連付けられた項目を特定するために、デバイスは、メッセージにおいて、所定のフレーズの収集に基づいて1つ以上のフレーズを特定し、1つ以上の特定されたフレーズを、エンティティ及び連絡先情報の項目について分析することができる(814)。デバイスは、ネットワークにわたる所定のフレーズの収集を更新することができ(816)、この更新により、デバイスは、正確なフレーズを使用し続けることができる。デバイスはまた、連絡先情報の提案される項目を拒否するリクエストの結果として、所定のフレーズのうち1つ以上をダウングレードすることができる(818)。つまり、ユーザが、特定のフレーズの使用により特定された提案を拒否し続ける場合、それらのフレーズは不正確であることの表示であってもよい。デバイスまた、データベース中の連絡先情報を電子デバイス上の連絡先情報に関連付けられた言語(例えば、メッセージ、カレンダーイベントなど)と相互相関させることにより、所定のフレーズのうち1つ以上を生成することができる(820)。このようにして、デバイスは、連絡先情報を含むメッセージ内のどの正確な言語が、例えば、ユーザに、連絡先を連絡先情報により作成又は更新させるかを判定することができる。
【0180】
いくつかの実施形態では、提案される連絡先は、
図5Aのデータ構造の観点から、検索可能である。例えば、デバイスは、(例えば、ユーザが、デバイス上のアプリケーションを介して連絡先を検索することにより)連絡先に対するリクエストを受信し、連絡先に対するリクエストに応じて、連絡先情報の提案される項目を検索することができる(826)。
【0181】
いくつかの実施形態では、デバイスは、連絡先の更新に応じて、ネットワーク上のリモートデータベース内に、連絡先情報の提案される項目を記憶することを自制することができる(828)。連絡先情報の提案される項目が提案状態540にある場合、デバイスは、連絡先をネットワーク上の複数のクライアントに対して更新することを可能にする、更新又は同期サービス(例えば、デバイス上のアプリケーション)に、連絡先情報の項目を勧めることを自制することができる。
【0182】
いくつかの実施形態では、デバイスは、連絡先情報の提案される項目をデータベースに追加するリクエスト(例えば、
図6B、「連絡先に追加」602)を受信し、リクエストに応じて、データベースにおいて、連絡先情報の項目が連絡先情報の提案される項目であることを表示することなく、更新された連絡先を記憶する(例えば、連絡先情報の状態を、提案状態540から追加状態550に変更する)ことができる(830)。連絡先情報の提案される項目をデータベースに追加するリクエストに応じて、デバイスは、ネットワーク上のリモートデータベースにおいて、例えば、連絡先情報を更新/同期サービスに勧めることにより、連絡先情報の項目が連絡先情報の提案される項目であることを表示することなく、更新された連絡先を記憶することができる(832)。
【0183】
いくつかの実施形態では、デバイスは、連絡先情報の提案される項目を拒否するリクエスト(例えば、
図6B、「無視」604)を受信し、連絡先情報の提案される項目を拒否するリクエストに応じて、エンティティ及び連絡先情報の項目が将来のメッセージにおいて特定される結果として、連絡先が将来、連絡先情報の提案される項目により更新されることを防止することができる(834)。これは、拒否状態560にある拒否された連絡先情報を記憶することにより実現され、デバイスは、既に拒否されているものを知ることができる。
【0184】
図9A及び
図9Bは、いくつかの実施形態に係る、連絡先を提案される連絡先情報と共に表示するための例示的なプロセスのフロー図である。プロセスは、ディスプレイを備える電子デバイス(例えば、デバイス500)において実行され得る。
【0185】
電子デバイスは、メッセージ(例えば、
図6D、メッセージ部分614内の電子メール)を受信し(902)、受信したメッセージにおいて、エンティティ(例えば、
図6D、「John Appleseed」)及びエンティティに関連付けられた連絡先情報(例えば、
図6D、「405−123−6633」)を特定することができる(904)。デバイスは、特定された連絡先情報が、提案される連絡先情報であることの表示(例えば、メタデータ)を生成し(906)、エンティティに関連付けられた連絡先に対応する第1のユーザインタフェース(例えば、
図6A)を表示することができる(908)。第1のユーザインタフェースは、生成された表示に基づき、特定された連絡先情報が、提案される連絡先情報であることを示す、第1のユーザインタフェースオブジェクト(例えば、「提案」)を含むことができる。
【0186】
いくつかの実施形態では、デバイスは、提案される連絡先情報の選択に対応する入力により、エンティティに連絡するアプリケーションを呼び出すことを防止することができる(例えば、
図6A、提案される番号を選択することによって、その番号に電話を掛けない)(910)。
【0187】
いくつかの実施形態では、デバイスは、第1のユーザインタフェースにおける提案される連絡先情報の選択に対応する入力を検出し、検出に応じて、選択された場合、電子デバイスに、特定された連絡先情報をデータベースに追加させる、特定された連絡先情報が関連付けられた第2のユーザインタフェースオブジェクト(例えば、
図6B、「連絡先に追加」602)を含む第2のユーザインタフェース(例えば、
図6B)を表示することができる(912)。第2のユーザインタフェースは、選択された場合、電子デバイスに、第2のユーザインタフェースオブジェクトを表示することを中止させる、特定された連絡先情報に関連付けられた第3のユーザインタフェースオブジェクト(例えば、
図6B、「無視」604)を含むことができる(914)。第2のユーザインタフェースを表示することにより、第1のユーザインタフェースを表示することを中止することができる(916)。デバイスは、特定された連絡先情報のデータベースへの追加に応じて、第1のユーザインタフェースオブジェクトの表示を中止することができる(918)。
【0188】
いくつかの実施形態では、第2のユーザインタフェースは、メッセージの少なくとも一部分(例えば、
図6B、「関連する電子メール」)を表示することができる(920)。デバイスは、表示されたメッセージの選択に対応する入力を検出し、検出に応じて、メッセージ(例えば、
図6D)を開くアプリケーション(例えば、電子メールクライアントモジュール140)を呼び出すことができる(922)。メッセージは、電子メールであってもよく、アプリケーションは、電子メールアプリケーションであってもよい(924)。
【0189】
いくつかの実施形態では、デバイスは、第2のユーザインタフェースにおける提案される連絡先情報の選択に対応する入力を検出し、検出に応じて、特定された連絡先情報を使用して、エンティティにコンタクトするアプリケーション(例えば、電話モジュール138)を呼び出すことができる(926)。第2のユーザインタフェース中の提案される連絡先情報の選択に対応する入力の検出に応じて、デバイスは、特定された連絡先情報をデータベースに追加する(例えば、連絡先情報の状態を、提案状態540から追加状態550に変更する)ことができる(928)。デバイスは、特定された連絡先情報のデータベースへの追加に応じて、第1のユーザインタフェースオブジェクトの表示を中止することができる(918)。
【0190】
図10は、いくつかの実施形態に係る、提案される連絡先情報をメッセージと共に表示するための例示的なプロセスのフロー図を示す。プロセスは、ディスプレイを備える電子デバイス(例えば、デバイス500)において実行され得る。
【0191】
電子デバイスは、メッセージ(例えば、
図6D、メッセージ部分614における電子メール)を受信し(1002)、受信したメッセージにおいて、エンティティ(例えば、
図6D、「John Appleseed」)及びエンティティに関連付けられた連絡先情報(例えば、
図6D、「405−123−6633」)を特定することができる(1004)。メッセージは、電子メールであってもよい(1006)。特定されたエンティティは、名称であってもよく、特定された連絡先情報は、電話番号、アドレス、ビジネスネットワーク又はソーシャルネットワークのハンドル名であってもよい(1008)。
【0192】
デバイスは、受信したメッセージに対応する第1のユーザインタフェース(例えば、
図6D)を表示することができる(1010)。第1のユーザインタフェースは、電子デバイスによって受信されたメッセージのコンテンツを含む第1の部分(例えば、
図6D、メッセージ部分614)と、第2の部分であって、特定されたエンティティに対応する第1のユーザインタフェースオブジェクト(例えば、
図6D、「John Appleseed」)、特定された連絡先情報に対応する第2のユーザインタフェースオブジェクト(例えば、
図6D、「405−123−6633」)、及び選択された場合、電子デバイスに、特定された連絡先情報をデータベースに追加させる(例えば、連絡先情報を連絡先として記憶させる)、特定された連絡先情報に関連付けられた第3のユーザインタフェースオブジェクト(例えば、
図6D、「連絡先に追加」618)、を含む、第2の部分(
図6D、提案部分612)と、を含むことができる。第2の部分は、選択された場合、電子デバイスに、第3のユーザインタフェースオブジェクトを表示することを中止させる、特定された連絡先情報に関連付けられた第4のユーザインタフェースオブジェクト(例えば、
図6D、「無視」620)を含むことができる(1012)。
【0193】
図11A及び
図11Bは、いくつかの実施形態に係る、提案されるカレンダーイベントを生成するための例示的なプロセスのフロー図である。プロセスは、電子デバイス(例えば、デバイス500)において実行され得る。
【0194】
電子デバイスは、メッセージ(例えば、
図6E、メッセージ部分622における電子メール)を受信し(1102)、受信したメッセージにおいて、イベント情報(例えば、
図6E、「夕食」、「寿司屋」、「3月7日金曜日」、又は「午後9:50」)を特定することができる(1104)。デバイスは、特定されたイベント情報に関連付けられたカレンダーイベント(例えば、
図5B、カレンダーイベント530B)を生成することができ(1122)、生成されたカレンダーイベントは、イベント情報と、生成されたカレンダーイベントが提案されるカレンダーイベントである(例えば、提案状態540にある)ことの表示(例えば、メタデータ)と、を含む。
【0195】
いくつかの実施形態では、特定されたイベント情報は、日付及び時刻である(1106)。
【0196】
いくつかの実施形態では、デバイスは、このようなメッセージにより提供された特定のフォーマットの連絡先情報を認識するように構成されているテンプレートを使用することにより、メッセージにおける構造化コンテンツを特定することができる。例えば、メッセージにおけるイベント情報を特定するために、デバイスは、メッセージ内のコンテンツのフォーマットを特定し、メッセージ内のコンテンツのフォーマットでイベント情報を認識するように構成されている所定のテンプレートの収集から、テンプレートを特定し、コンテンツを特定されたテンプレートにより、イベント情報について分析することができる(1108)。メッセージは、電子メールを含んでもよく、コンテンツは、予約を含んでもよい(例えば、
図6E)(1110)。デバイスは、所定のテンプレートの収集をネットワーク上で更新することができ(1112)、この更新により、デバイスは、正確なテンプレートを使用し続けることができる。
【0197】
いくつかの実施形態では、デバイスは、データ検出器でイベント情報に対する言及を検索することにより、メッセージにおける非構造化コンテンツを特定することができる。例えば、メッセージにおけるイベント情報を特定するために、デバイスは、日付及び時刻に対する所定の言及の収集に基づいて、メッセージにおける日付及び時刻に対する1つ以上の言及を特定し、日付及び時刻に対する1つ以上の特定された言及を、イベント情報について分析することができる(1114)。デバイスは、日付及び時刻に対する所定の言及の収集をネットワーク上で更新することができ(1116)、この更新により、デバイスは、正確な言及を使用し続けることができる。デバイスは、提案されるカレンダーイベントを拒否するリクエストの結果として、日付及び時刻に対する所定の言及のうち1つ以上をダウングレードすることができる(1118)。つまり、ユーザが、日付及び時刻に対する特定の言及の使用により特定された提案を拒否し続ける場合、これらの言及は不正確であることの表示であり得る。デバイスは、複数のカレンダーイベントを含むデータベースにおけるイベント情報を、電子デバイス上のイベント情報に関連付けられた言語と相互相関させることにより、日付及び時刻に対する所定の言及のうち1つ以上を生成することができる(1120)。このようにして、デバイスは、イベント情報を含むメッセージ内のどの言語が、例えば、ユーザに、カレンダーイベントを作成又はイベント情報により更新させるかをより的確に判定することができる。
【0198】
いくつかの実施形態では、提案されるカレンダーイベントは、
図5のデータ構造の観点から検索可能である。例えば、デバイスは、(例えば、ユーザが、デバイス上のアプリケーションを介してカレンダーイベントを検索することにより)カレンダーイベントに対するリクエストを受信し、カレンダーイベントに対するリクエストに応じて、提案されるカレンダーイベントを検索することができる(1124)。
【0199】
いくつかの実施形態では、デバイスは、カレンダーイベントの生成に応じて、ネットワーク上のリモートデータベース内に、提案されるカレンダーイベントを記憶することを自制することができる(1126)。例えば、提案されるカレンダーイベントが提案状態540にある場合、デバイスは、カレンダーイベントをネットワーク上の複数のクライアントに対して更新することを可能にする、更新又は同期サービス(例えば、デバイス上のアプリケーション)に、カレンダーイベントを勧めることを自制することができる。
【0200】
いくつかの実施形態では、デバイスは、提案されるカレンダーイベントを複数のカレンダーイベントを含むデータベースに追加するリクエスト(例えば、
図6E、「カレンダーに追加」626)を受信し、リクエストに応じて、データベースにおいて、生成されたカレンダーイベントが提案されるカレンダーイベントであることを表示することなく、生成されたカレンダーイベントを記憶する(例えば、カレンダーイベントの状態を、提案状態540から追加状態550に変更する)ことができる(1128)。提案されるカレンダーイベントをデータベースに追加するリクエストに応じて、デバイスは、ネットワーク上のリモートデータベース内に、例えば、カレンダーイベントを更新又は同期サービスに勧めることにより、生成されたカレンダーイベントが提案されるカレンダーイベントであることを表示することなく、生成されたカレンダーイベントを記憶することができる(1130)。
【0201】
いくつかの実施形態では、デバイスは、提案されるカレンダーイベントを拒否するリクエスト(例えば、
図6E、「無視」628)を受信し、拒否するリクエストに応じて、イベント情報が将来のメッセージにおいて特定される結果として、提案されるカレンダーイベントが将来、生成されることを防止することができる(1132)。これは、拒否状態560にある拒否されたイベントを記憶することにより実現され、デバイスは、既に拒否されているものを知ることができる。
【0202】
図12は、いくつかの実施形態に係る、提案されるイベント情報をメッセージと共に表示するための例示的なプロセスのフロー図を示すである。プロセスは、ディスプレイを備える電子デバイス(例えば、デバイス500)において実行され得る。
【0203】
電子デバイスは、メッセージ(例えば、
図6E、メッセージ部分622における電子メール)を受信し(1202)、受信したメッセージにおいて、イベント情報(例えば、
図6E、「夕食」、「寿司屋」、「3月7日金曜日」、又は「午後9:50」)を特定することができる(1204)。メッセージは、電子メールであってもよい(1206)。特定されたイベント情報は、日付及び時刻でであってもよい(1208)。
【0204】
デバイスは、受信したメッセージに対応する第1のユーザインタフェース(例えば、
図6E)を表示することができる(1210)。第1のユーザインタフェースは、電子デバイスによって受信されたメッセージのコンテンツを含む第1の部分(例えば、
図6E、メッセージ部分622)と、第2の部分であって、特定されたイベント情報に対応する第1のユーザインタフェースオブジェクト(例えば、
図6E、「夕食」、「寿司屋」、「3月7日金曜日」、又は「午後9:50」)、及び選択された場合、電子デバイスに、特定されたイベント情報を複数のカレンダーイベントを含むデータベースに追加させる(例えば、イベント情報をカレンダーイベントとして記憶させる)、特定されたイベント情報に関連付けられた第2のユーザインタフェースオブジェクト(例えば、
図6E、「カレンダーに追加」626)、を含む、第2の部分(例えば、
図6E、提案部分620)と、を含むことができる。第2の部分は、選択された場合、電子デバイスに、第2のユーザインタフェースオブジェクトを表示することを中止させる、特定されたイベント情報に関連付けられた第3のユーザインタフェースオブジェクト(例えば、
図6E、「無視」628)を含むことができる(1212)。
【0205】
図13は、いくつかの実施形態に係る、複数の提案される連絡先又はイベント情報をメッセージと共に表示するための例示的なプロセスのフロー図である。プロセスは、ディスプレイを備える電子デバイス(例えば、デバイス500)において実行され得る。
【0206】
電子デバイスは、メッセージ(例えば、
図6F、メッセージ部分632における電子メール)を受信し(1302)、受信したメッセージにおける連絡先又はイベント情報の複数の事例(例えば、
図6F、添付の旅行計画における「イベント2件、連絡先1件」)を特定することができる(1304)。
【0207】
デバイスは、受信したメッセージに対応する第1のユーザインタフェース(例えば、
図6F)を表示することができる(1306)。第1のユーザインタフェースは、電子デバイスによって受信されたメッセージのコンテンツを含む第1の部分(例えば、
図6F、メッセージ部分632)と、選択された場合、電子デバイスに、特定された連絡先又はイベント情報の複数の事例のリストを含む第2のユーザインタフェース(
図6G)を表示させる第2の部分(例えば、
図6F、提案部分630)と、を含むことができる。
【0208】
いくつかの実施形態では、デバイスは、第1のユーザインタフェースの第2の部分の選択に対応する入力を検出し、検出に応じて、特定された連絡先又はイベント情報の複数の事例のリストと、特定された連絡先又はイベント情報の複数の事例のそれぞれについて、選択された場合、電子デバイスに、特定された情報をデータベースに追加させる(例えば、イベント情報をカレンダーイベントとして、又は、連絡先情報を連絡先として記憶させる)、第1のユーザインタフェースオブジェクト(例えば、
図6G、「カレンダーに追加」又は「連絡先に追加」)と、を含む、第2のユーザインタフェースを表示することができる(1308)。
第2のユーザインタフェースは、特定された連絡先又はイベント情報の複数の事例のそれぞれについて、選択された場合、電子デバイスに、第1のユーザインタフェースオブジェクトを表示することを中止させる、第2のユーザインタフェースオブジェクト(例えば、
図6G、「無視」)を含むことができる(1310)。第2のユーザインタフェースは、選択された場合、電子デバイスに、特定された連絡先又はイベント情報の複数の事例のグループ化(例えば、カレンダーイベント又は連絡先)のそれぞれをデータベースに追加させる、第3のユーザインタフェースオブジェクト(例えば、
図6G、「全てを追加」634)を含むことができる(1312)。第2のユーザインタフェースを表示することにより、第1のユーザインタフェースを表示することを中止することができる(1314)。
【0209】
図7A〜
図13における動作について説明された特定の順序は例示であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の再順序付けをする様々な方法を認識するであろう。簡潔性のために、これらの詳細は、ここでは繰り返さない。更に、プロセス700〜1300(
図7〜
図13)の態様は、互いに組み込まれてもよいことに留意されたい。
【0210】
上述の情報処理プロセスの動作は、汎用プロセッサ又は特定用途向けチップなどの情報処理装置の1つ以上の機能モジュールを実行させることにより実施することができる。これらのモジュール、これらのモジュールの組み合わせ、及び/又はそれらの(例えば、
図1A、
図1B、及び
図3に関して上述されたような)一般的なハードウェアとの組み合わせは全て、本発明の保護の範囲内に含まれる。
【0211】
図14は、いくつかの実施例において、上記で説明された特徴を実行する、電子デバイス1400の例示的な機能ブロックを示す。
図14に示すように、電子デバイス1400は、グラフィカルオブジェクトを表示するよう構成されたディスプレイユニット1402と、ユーザのジェスチャを受信するように構成されたタッチ感知面ユニット1404と、外部電子デバイスを検出し、そのデバイスと通信するように構成された1つ以上のRFユニット1406と、ディスプレイユニット1402、タッチ感知面ユニット1404、及びRFユニット1406に結合された処理ユニット1408と、を含む。
【0212】
いくつかの実施形態では、処理ユニット1408は、1つ以上のアプリケーション1412を実行するオペレーティングシステム1410を支持するように構成されている。いくつかの実施形態では、処理ユニット1408は、無線通信の範囲内にある外部デバイスを代表しているRFユニット1406からデータを受信し、タッチ感知面ユニット1404上でグラフィカルユーザインタフェースアフォーダンスを表示し、表示されたアフォーダンス上の接触を検出するのに応じて、外部デバイス上で実行しているアプリケーションに対応するデバイス1400上のアプリケーションを起動するように構成されている。
【0213】
デバイス1400の機能ブロックは、任意選択的に、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせによって実行される。
図14で説明する機能ブロックが、説明される様々な実施例の原理を実施するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
【0214】
図15は、いくつかの実施例において、上記で説明された特徴を実行する、別の電子デバイス1500の例示的な機能ブロックを示す。
図14に示すように、電子デバイス1500は、グラフィカルオブジェクトを表示するよう構成されたディスプレイユニット1402と、ユーザのジェスチャを受信するように構成されたタッチ感知面ユニット1504と、外部電子デバイスを検出し、そのデバイスと通信するように構成された1つ以上のRFユニット1506と、ディスプレイユニット1502、タッチ感知面ユニット1504、及びRFユニット1506に結合された処理ユニット1508と、を含む。
【0215】
いくつかの実施形態では、処理ユニット1508は、上記で説明された様々な機能を実行する1つ以上のユニット1510〜1520を支持するように構成されている。例えば、受信ユニット1510は、上記で説明された受信機能(例えば、メッセージを受信)のうち1つ以上を実行するように構成されている。特定ユニット1512は、上記で説明された特定機能(例えば、受信したメッセージにおけるエンティティ及びエンティティに関連付けられた連絡先情報を特定するか、受信したメッセージにおけるイベント情報を特定するか、又は受信したメッセージにおける連絡先若しくはイベント情報の複数の事例を特定するか)のうち1つ以上を実行するように構成されている。判定ユニット1514は、上記で説明された判定機能(例えば、特定されたエンティティに関連付けられた連絡先がデータベース内の複数の連絡先の中に存在しないことを判定する機能、特定されたエンティティに関連付けられた連絡先がデータベース内の複数の連絡先の中に存在すること、及び連絡先が連絡先情報の特定された項目を含まないことを判定する機能)のうち1つ以上を実行するように構成されている。生成ユニット1516は、上記で説明された生成すること(例えば、判定に応じて、エンティティに関連付けられた連絡先を生成すること、特定された連絡先情報が、提案される連絡先情報であることの表示を生成すること、及び特定されたイベント情報に関連付けられたカレンダーイベントを生成すること)のうち1つ以上を実行するように構成されている。更新ユニット1518は、上記で説明された更新すること(例えば、判定に応じて、連絡先情報の項目及び連絡先情報の項目が連絡先情報の提案される項目であることの表示を含むように連絡先を更新すること)のうち1つ以上を実行するように構成されている。表示ユニット1520は、上記で説明された表示すること(例えば、エンティティ又は受信したメッセージに関連付けられた連絡先に対応する第1のユーザインタフェースを、例えば、ディスプレイユニット1502に表示すること)のうち1つ以上を実行するように構成されている。
【0216】
デバイス1500の機能ブロックは、任意選択的に、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせによって実行される。
図15で説明する機能ブロックが、説明される様々な実施例の原理を実施するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
【0217】
いくつかの実施形態によれば、
図16は、説明される様々な実施形態の原理に従って構成された、電子デバイス1600の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を遂行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。
図16で説明する機能ブロックが、説明される様々な実施形態の原理を実行するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
【0218】
図16に示すように、電子デバイス1600は、外部電子デバイスと通信するように構成された1つ以上のRFユニット1606と、RFユニット1606と結合された処理ユニット1608と、を含む。いくつかの実施形態では、処理ユニット1608は、受信ユニット1610、特定ユニット1612、判定ユニット1614、生成ユニット1616、分析ユニット1618、更新ユニット1620、ダウングレードユニット1622、検索ユニット1624、記憶中止ユニット1626、記憶ユニット1628、及び防止ユニット1630を含む。
【0219】
処理ユニット1608は、(例えば、受信ユニット1610により)メッセージを受信し、受信したメッセージにおいて、エンティティ及びエンティティに関連付けられた連絡先情報を、(例えば、特定ユニット1612により)特定し、特定されたエンティティに関連付けられた連絡先がデータベース内の複数の連絡先の中に存在しないことを、(例えば、判定ユニット1614により)判定し、判定に応じて、エンティティに関連付けられた連絡先を、(例えば、生成ユニット1616により)生成するように構成されており、生成された連絡先は、連絡先情報と、生成された連絡先が提案される連絡先であることの表示と、を含む。
【0220】
いくつかの実施形態では、特定されたエンティティは、名称を含み、特定された連絡先情報は、電話番号、アドレス、ビジネス、又はソーシャルネットワークのハンドル名を含む。
【0221】
いくつかの実施形態では、特定するために、処理ユニット1608は、メッセージの署名ブロックを、(例えば、特定ユニット1612により)特定し、
特定された署名ブロックをエンティティ及び連絡先情報について、(例えば、分析ユニット1618により)分析するように更に構成されている。
【0222】
いくつかの実施形態では、メッセージは、電子メールを含み、署名ブロックは、電子メールの署名を含む。
【0223】
いくつかの実施形態では、電子メールは、電子メールのスレッドにおいて、1つ以上の以前の電子メールを含み、電子メールの署名を特定するために、処理ユニット1608は、電子メールのスレッドにおける1つ以上の以前の電子メールを、(例えば、分析ユニット1618により)分析するように更に構成されている。
【0224】
いくつかの実施形態では、特定するために、処理ユニット1608は、メッセージにおいて、所定のフレーズの収集に基づいて1つ以上のフレーズを、(例えば、特定ユニット1612により)特定し、1つ以上の特定されたフレーズを、エンティティ及び連絡先情報について、(例えば、分析ユニット1618により)分析するように更に構成されている。
【0225】
いくつかの実施形態では、処理ユニット1608は、所定のフレーズの収集をネットワーク上に、(例えば、更新ユニット1620により)更新するように更に構成されている。
【0226】
いくつかの実施形態では、処理ユニット1608は、提案される連絡先を拒否するリクエストの結果として、所定のフレーズのうち1つ以上を、(例えば、ダウングレードユニット1622により)ダウングレードするように更に構成されている。
【0227】
いくつかの実施形態では、処理ユニット1608は、データベース内の連絡先情報を、電子デバイス上の連絡先情報に関連付けられた言語と相互相関させることにより、所定のフレーズのうち1つ以上を、(例えば、生成ユニット1616により)生成するように更に構成されている。
【0228】
いくつかの実施形態では、処理ユニット1608は、連絡先に対するリクエストを、(例えば、受信ユニット1610により)受信し、連絡先に対するリクエストに応じて、提案される連絡先を、(例えば、検索ユニット1624により)検索するように更に構成されている。
【0229】
いくつかの実施形態では、処理ユニット1608は、連絡先の生成に応じて、ネットワーク上のリモートデータベース内に、提案される連絡先を、(例えば、記憶中止ユニット1626により)記憶することを自制するように更に構成されている。
【0230】
いくつかの実施形態では、処理ユニット1608は、提案される連絡先をデータベースに追加するリクエストを、(例えば、受信ユニット1610により)受信し、提案される連絡先をデータベースに追加するリクエストに応じて、データベースにおいて、生成された連絡先が提案される連絡先であることを表示することなく、生成された連絡先を、(例えば、記憶ユニット1628により)記憶するように更に構成されている。
【0231】
いくつかの実施形態では、処理ユニット1608は、提案される連絡先をデータベースに追加するリクエストに応じて、ネットワーク上のリモートデータベース内に、生成された連絡先が提案される連絡先であることを表示することなく、生成された連絡先を、(例えば、記憶ユニット1628により)記憶するように更に構成されている。
【0232】
いくつかの実施形態では、処理ユニット1608は、提案される連絡先を拒否するリクエストを、(例えば、受信ユニット1610により)受信し、提案される連絡先を拒否するリクエストに応じて、エンティティ及び連絡先情報が将来のメッセージにおいて特定される結果として、提案される連絡先が将来、生成されることを、(例えば、防止ユニット1630により)防止するように更に構成されている。
【0233】
図7A及び
図7Bを参照して上述された動作は、
図1A及び
図1B、又は
図16に示される構成要素によって、任意選択的に実行される。例えば、ブロック702での受信動作、ブロック704での特定動作、ブロック722での判定動作、ブロック724での生成動作、ブロック726での受信動作、及びブロック728での記憶自制動作は、イベントソータ170、イベント認識部180、及びイベントハンドラ190によって実行され得る。イベントソータ170内のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配布する。アプリケーション136−1のそれぞれのイベント認識部180は、イベント情報をそれぞれのイベント定義186と比較し、タッチ感知面上の第1の位置の第1の接触がユーザインタフェース上のアフォーダンスのアクティブ化などの、既定のイベント又はサブイベントに対応するかどうかを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベントハンドラ190をアクティブ化させる。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデータ176若しくはオブジェクトアップデータ177を利用又は呼び出してもよい。いくつかの実施形態において、イベントハンドラ190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUIアップデータ178にアクセスする。同様に、当業者にとって、他の処理が
図1A及び
図1Bに示される構成要素に基づいてどのように実行され得るかは明らかであるだろう。
【0234】
いくつかの実施形態によれば、
図17は、説明される様々な実施形態の原理に従って構成された、電子デバイス1700の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を遂行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。
図17で説明する機能ブロックが、説明される様々な実施形態の原理を実行するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
【0235】
図17に示すように、電子デバイス1700は、外部電子デバイスと通信するように構成された1つ以上のRFユニット1706と、1つ以上のRFユニット1706に結合された処理ユニット1708と、を含む。いくつかの実施形態では、処理ユニット1708は、受信ユニット1710、特定ユニット1712、判定ユニット1714、生成ユニット1716、分析ユニット1718、更新ユニット1720、ダウングレードユニット1722、検索ユニット1724、記憶中止ユニット1726、記憶ユニット1728、及び防止ユニット1730を含む。
【0236】
処理ユニット1780は、メッセージを、(例えば、受信ユニット1710により)受信し、受信したメッセージにおいて、エンティティ及びエンティティに関連付けられた連絡先情報の項目を、(例えば、特定ユニット1712により)特定し、特定されたエンティティに関連付けられた連絡先がデータベース内の複数の連絡先の中に存在すること、及び連絡先が連絡先情報の特定された項目を含まないことを、(例えば、特定ユニット1714により)判定し、判定に応じて、連絡先情報の項目及び連絡先情報の項目が連絡先情報の提案される項目であることの表示を含むように、連絡先を、(例えば、更新ユニット1720により)更新するように構成されている。
【0237】
いくつかの実施形態では、特定されたエンティティは、名称を含み、連絡先情報の特定された項目は、電話番号、アドレス、ビジネスネットワーク又はソーシャルネットワークのハンドル名を含む。
【0238】
いくつかの実施形態では、特定するために、処理ユニット1708は、メッセージの署名ブロックを、(例えば、特定ユニット1712により)特定し、特定された署名ブロックをエンティティ及び連絡先情報の項目について、(例えば、分析ユニット1718により)分析するように更に構成されている。
【0239】
いくつかの実施形態では、メッセージは、電子メールを含み、署名ブロックは、電子メールの署名を含む。
【0240】
いくつかの実施形態では、電子メールは、電子メールのスレッドにおいて、1つ以上の以前の電子メールを含み、電子メールの署名を特定するために、処理ユニット1708は、電子メールのスレッドにおける1つ以上の以前の電子メールを、(例えば、分析ユニット1718により)分析するように更に構成されている。
【0241】
いくつかの実施形態では、特定するために、処理ユニット1708は、メッセージにおいて、所定のフレーズの収集に基づいて1つ以上のフレーズを、(例えば、特定ユニット1712により)特定し、1つ以上の特定されたフレーズを、エンティティ及び連絡先情報の項目について、(例えば、分析ユニット1718により)分析するように更に構成されている。
【0242】
いくつかの実施形態では、処理ユニット1708は、所定のフレーズの収集をネットワーク上に、(例えば、更新ユニット1720により)更新するように更に構成されている。
【0243】
いくつかの実施形態では、処理ユニット1708は、連絡先情報の提案される項目を拒否するリクエストの結果として、所定のフレーズのうち1つ以上を、(例えば、ダウングレードユニット1722により)ダウングレードするように更に構成されている。
【0244】
いくつかの実施形態では、処理ユニット1708は、データベース内の連絡先情報を、電子デバイス上の連絡先情報に関連付けられた言語と相互相関させることにより、所定のフレーズのうち1つ以上を、(例えば、生成ユニット1716により)生成するように更に構成されている。
【0245】
いくつかの実施形態では、処理ユニット1708は、連絡先に対するリクエストを、(例えば、受信ユニット1710により)受信し、連絡先に対するリクエストに応じて、連絡先情報の提案される項目を、(例えば、検索ユニット1724により)検索するように更に構成されている。
【0246】
いくつかの実施形態では、処理ユニット1708は、連絡先の更新に応じて、ネットワーク上のリモートデータベース内に、連絡先情報の提案される項目を、(例えば、記憶中止ユニット1726により)記憶することを自制するように更に構成されている。
【0247】
いくつかの実施形態では、処理ユニット1708は、連絡先情報の提案される項目をデータベースに追加するリクエストを、(例えば、受信ユニット1710により)受信し、連絡先情報の提案される項目をデータベースに追加するリクエストに応じて、データベースにおいて、連絡先情報の項目が連絡先情報の提案される項目であることを表示することなく、更新された連絡先を、(例えば、記憶ユニット1728により)記憶するように更に構成されている。
【0248】
いくつかの実施形態では、処理ユニット1708は、連絡先情報の提案される項目をデータベースに追加するリクエストに応じて、ネットワーク上のリモートデータベース内に、連絡先情報の項目が連絡先情報の提案される項目であることを表示することなく、更新された連絡先を、(例えば、記憶ユニット1728により)記憶するように更に構成されている。
【0249】
いくつかの実施形態では、処理ユニット1708は、連絡先情報の提案される項目を拒否するリクエストを、(例えば、受信ユニット1710により)受信し、連絡先情報の提案される項目を拒否するリクエストに応じて、エンティティ及び連絡先情報の項目が将来のメッセージ内で特定される結果として、連絡先が将来、連絡先情報の提案される項目により更新されることを、(例えば、防止ユニット1730により)防止するように更に構成されている。
【0250】
図8A及び
図8Bを参照して上述された動作は、
図1A及び
図1B、又は
図17に示される構成要素によって、任意選択的に実行される。例えば、ブロック802での受信動作、ブロック804での特定動作、ブロック822での判定動作、及びブロック824での更新動作は、イベントソータ170、イベント認識部180、及びイベントハンドラ190によって実行され得る。イベントソータ170内のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配布する。アプリケーション136−1のそれぞれのイベント認識部180は、イベント情報をそれぞれのイベント定義186と比較し、タッチ感知面上の第1の位置の第1の接触がユーザインタフェース上のアフォーダンスのアクティブ化などの、既定のイベント又はサブイベントに対応するかどうかを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベントハンドラ190をアクティブ化させる。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデータ176若しくはオブジェクトアップデータ177を利用又は呼び出してもよい。いくつかの実施形態において、イベントハンドラ190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUIアップデータ178にアクセスする。同様に、当業者にとって、他の処理が
図1A及び
図1Bに示される構成要素に基づいてどのように実行されることができるかは明らかであるだろう。
【0251】
いくつかの実施形態によれば、
図18は、説明される様々な実施形態の原理に従って構成された、電子デバイス1800の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を遂行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。
図18で説明する機能ブロックが、説明される様々な実施形態の原理を実行するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
【0252】
図18に示すように、電子デバイス1800は、グラフィカルオブジェクトを表示するよう構成されたディスプレイユニット1802と、外部電子デバイスと通信するように構成された1つ以上のRFユニット1806と、ディスプレイユニット1802及び1つ以上のRFユニット1806に結合された処理ユニット1808と、を含む。いくつかの実施形態では、処理ユニット1808は、受信ユニット1810、特定ユニット1812、生成ユニット1814、表示可能化ユニット1816、防止ユニット1818、検出ユニット1820、呼び出しユニット1822、及び追加ユニット1824を含む。
【0253】
処理ユニット1808は、メッセージを、(例えば、受信ユニット1810により)受信し、受信したメッセージにおいて、エンティティ及びエンティティに関連付けられた連絡先情報を、(例えば、特定ユニット1812により)特定し、特定された連絡先情報が、提案される連絡先情報であることの表示を、(例えば、生成ユニット1814により)生成し、エンティティに関連付けられた連絡先に対応する第1のユーザインタフェースの表示を、(例えば、表示可能化ユニット1816により)可能にするように構成されており、第1のユーザインタフェースは、生成された表示に基づき、特定された連絡先情報が、提案される連絡先情報であることを示す第1のユーザインタフェースオブジェクトを含む。
【0254】
いくつかの実施形態では、処理ユニット1808は、提案される連絡先情報の選択に対応する入力がエンティティにコンタクトするアプリケーションを呼び出すことを、(例えば、防止ユニット1818により)防止するように更に構成されている。
【0255】
いくつかの実施形態では、処理ユニット1808は、第1のユーザインタフェースにおいて提案される連絡先情報の選択に対応する入力を、(例えば、検出ユニット1820により)検出し、第1のユーザインタフェースにおいて提案される連絡先情報の選択に対応する入力の検出に応じて、選択された場合、電子デバイスに、特定された連絡先情報をデータベースに追加させる、特定された連絡先情報に関連付けられた第2のユーザインタフェースオブジェクトを含む第2のユーザインタフェースの表示を、(例えば、表示可能化ユニット1816により)可能にするように更に構成されている。
【0256】
いくつかの実施形態では、第2のユーザインタフェースは、選択された場合、電子デバイスに、第2のユーザインタフェースオブジェクトを表示することを中止させる、特定された連絡先情報に関連付けられた第3のユーザインタフェースオブジェクトを含む。
【0257】
いくつかの実施形態では、第2のユーザインタフェースの表示は、第1のユーザインタフェースの表示を中止する。
【0258】
いくつかの実施形態では、第2のユーザインタフェースは、メッセージの少なくとも一部分を表示する。
【0259】
いくつかの実施形態では、処理ユニット1808は、表示されたメッセージの選択に対応する入力を、(例えば、検出ユニット1820により)検出し、表示されたメッセージの選択に対応する入力の検出に応じて、メッセージを開くアプリケーションを、(例えば、呼び出しユニット1822により)呼び出すように更に構成されている。
【0260】
いくつかの実施形態では、メッセージは、電子メールを含み、アプリケーションは、電子メールアプリケーションを含む。
【0261】
いくつかの実施形態では、処理ユニット1808は、第2のユーザインタフェースにおける提案される連絡先情報の選択に対応する入力を、(例えば、検出ユニット1820により)検出し、第2のユーザインタフェースにおける提案される連絡先情報の選択に対応する入力の検出に応じて、特定された連絡先情報を使用して、エンティティにコンタクトするアプリケーションを、(例えば、呼び出しユニット1822により)呼び出すように更に構成されている。
【0262】
いくつかの実施形態では、処理ユニット1808は、第2のユーザインタフェースにおける提案される連絡先情報の選択に対応する入力の検出に応じて、特定された連絡先情報をデータベースに、(例えば追加ユニット1824により)追加するように更に構成されている。
【0263】
いくつかの実施形態では、処理ユニット1808は、特定された連絡先情報のデータベースへの追加に応じて、第1のユーザインタフェースオブジェクトの表示を中止するように更に構成されている。
【0264】
図9A及び
図9Bを参照して上述された動作は、
図1A及び
図1B、又は
図18に示される構成要素によって、任意選択的に実行される。例えば、ブロック902での受信動作、ブロック904での特定動作、ブロック906での生成動作、及びブロック908での表示動作は、イベントソータ170、イベント認識部180、及びイベントハンドラ190によって実行され得る。イベントソータ170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配布する。アプリケーション136−1のそれぞれのイベント認識部180は、イベント情報をそれぞれのイベント定義186と比較し、タッチ感知面上の第1の位置の第1の接触がユーザインタフェース上のアフォーダンスのアクティブ化などの、既定のイベント又はサブイベントに対応するかどうかを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベントハンドラ190をアクティブ化させる。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデータ176若しくはオブジェクトアップデータ177を利用又は呼び出してもよい。いくつかの実施形態において、イベントハンドラ190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUIアップデータ178にアクセスする。同様に、当業者にとって、他の処理が
図1A及び
図1Bに示される構成要素に基づいてどのように実行されることができるかは明らかであるだろう。
【0265】
いくつかの実施形態によれば、
図19は、説明される様々な実施形態の原理に従って構成された、電子デバイス1900の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を遂行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。
図19で説明する機能ブロックが、説明される様々な実施形態の原理を実行するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
【0266】
図19に示すように、電子デバイス1900は、グラフィカルオブジェクトを表示するように構成されたディスプレイユニット1902と、外部電子デバイスと通信するように構成された1つ以上のRFユニット1906と、ディスプレイユニット1902及び1つ以上のRFユニット1906に結合された処理ユニット1908と、を含む。いくつかの実施形態では、処理ユニット1908は、受信ユニット1910、特定ユニット1912、及び表示可能化ユニット1914を含む。
【0267】
処理ユニット1908は、メッセージを、(例えば、受信ユニット1910により)受信し、受信したメッセージにおいて、エンティティ及びエンティティに関連付けられた連絡先情報を、(例えば、特定ユニット1912により)特定し、受信したメッセージに対応する第1のユーザインタフェースの表示を、(例えば、表示可能化ユニット1914により)可能にするように構成されており、第1のユーザインタフェースは、電子デバイスによって受信されたメッセージのコンテンツを含む第1の部分と、第2の部分であって、特定されたエンティティに対応する第1のユーザインタフェースオブジェクト、特定された連絡先情報に対応する第2のユーザインタフェースオブジェクト、及び選択された場合、電子デバイスに、特定された連絡先情報をデータベースに追加させる、特定された連絡先情報に関連付けられた第3のユーザインタフェースオブジェクト、を含む、第2の部分と、を含む。
【0268】
いくつかの実施形態では、第2の部分は、選択された場合、電子デバイスに、第3のユーザインタフェースオブジェクトを表示することを中止させる、特定された連絡先情報に関連付けられた第4のユーザインタフェースオブジェクトを含む。
【0269】
いくつかの実施形態では、メッセージは、電子メールを含む。
【0270】
いくつかの実施形態では、特定されたエンティティは、名称を含み、特定された連絡先情報は、電話番号、アドレス、ビジネスネットワーク又はソーシャルネットワークのハンドル名を含む。
【0271】
図10を参照して上述された動作は、
図1A及び
図1B、又は
図19に示される構成要素によって、任意選択的に実行される。例えば、ブロック1002での受信動作、ブロック1004での特定動作、及びブロック1010での表示動作は、イベントソータ170、イベント認識部180、及びイベントハンドラ190によって実行され得る。イベントソータ170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配布する。アプリケーション136−1のそれぞれのイベント認識部180は、イベント情報をそれぞれのイベント定義186と比較し、タッチ感知面上の第1の位置の第1の接触がユーザインタフェース上のアフォーダンスのアクティブ化などの、既定のイベント又はサブイベントに対応するかどうかを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベントハンドラ190をアクティブ化させる。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデータ176若しくはオブジェクトアップデータ177を利用又は呼び出してもよい。いくつかの実施形態において、イベントハンドラ190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUIアップデータ178にアクセスする。同様に、当業者にとって、他の処理が
図1A及び
図1Bに示される構成要素に基づいてどのように実行されることができるかは明らかであるだろう。
【0272】
いくつかの実施形態によれば、
図20は、説明される様々な実施形態の原理に従って構成された、電子デバイス2000の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を遂行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。
図20で説明する機能ブロックが、説明される様々な実施形態の原理を実行するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
【0273】
図20に示すように、電子デバイス2000は、外部電子デバイスと通信するように構成された1つ以上のRFユニット2006と、1つ以上のRFユニット2006に結合された処理ユニット2008と、を含む。いくつかの実施形態では、処理ユニット2008は、受信ユニット2010、特定ユニット2012、生成ユニット2014、分析ユニット2016、更新ユニット2018、ダウングレードユニット2020、検索ユニット2022、記憶自制ユニット2024、記憶ユニット2026、防止ユニット2028を含む。
【0274】
処理ユニット2008は、メッセージを、(例えば、受信ユニット2010により)受信し、受信したメッセージにおいて、イベント情報を、(例えば、特定ユニット2012により)特定し、特定されたイベント情報に関連付けられたカレンダーイベントを、(例えば、生成ユニット2014により)生成するように構成されており、生成されたカレンダーイベントは、イベント情報と、生成されたカレンダーイベントが提案されるカレンダーイベントであることの表示と、を含む。
【0275】
いくつかの実施形態では、特定されたイベント情報は、日付及び時刻を含む。
【0276】
いくつかの実施形態では、特定するために、処理ユニット2008は、メッセージ中のコンテンツのフォーマットを、(例えば、特定ユニット2012により)特定し、メッセージ中のコンテンツのフォーマットでイベント情報を認識するように構成されている所定のテンプレートの収集から、テンプレートを、(例えば、特定ユニット2012により)特定し、コンテンツを特定されたテンプレートにより、イベント情報について、(例えば、分析ユニット2016により)分析するように更に構成されている。
【0277】
いくつかの実施形態では、メッセージは、電子メールを含み、コンテンツは、予約を含む。
【0278】
いくつかの実施形態では、処理ユニット2008は、所定のテンプレートの収集をネットワーク上に、(例えば、更新ユニット2018により)更新するように更に構成されている。
【0279】
いくつかの実施形態では、特定するために、処理ユニット2008は、日付及び時刻に対する所定の言及の収集に基づいて、メッセージ内の日付及び時刻に対する1つ以上の言及を、(例えば、特定ユニット2012により)特定し、日付及び時刻に対する1つ以上の特定された言及を、イベント情報に対して、(例えば、分析ユニット2016により)分析するように更に構成されている。
【0280】
いくつかの実施形態では、処理ユニット2008は、ネットワーク上の、日付及び時刻に対する所定の言及の収集を、(例えば、更新ユニット2018により)更新するように更に構成されている。
【0281】
いくつかの実施形態では、処理ユニット2008は、提案されるカレンダーイベントを拒否するリクエストの結果として、日付及び時刻に対する所定の言及のうち1つ以上を、(例えば、ダウングレードユニット2020により)ダウングレードするように更に構成されている。
【0282】
いくつかの実施形態では、処理ユニット2008は、複数のカレンダーイベントを含むデータベース内のイベント情報を、電子デバイス上のイベント情報に関連付けられた言語と相互相関させることにより、日付及び時刻に対する所定の言及のうち1つ以上を、(例えば、生成ユニット2014により)生成するように更に構成されている。
【0283】
いくつかの実施形態では、処理ユニット2008は、カレンダーイベントに対するリクエストを(例えば、受信ユニット2010により)受信し、カレンダーイベントに対するリクエストに応じて、提案されるカレンダーイベントを、(例えば、検索ユニット2022により)検索するように更に構成されている。
【0284】
いくつかの実施形態では、処理ユニット2008は、カレンダーイベントの生成に応じて、ネットワーク上のリモートデータベース内の、提案されるカレンダーイベントを、(例えば、記憶中止ユニット2024により)記憶することを自制するように更に構成されている。
【0285】
いくつかの実施形態では、処理ユニット2008は、提案されるカレンダーイベントを、複数のカレンダーイベントを含むデータベースに追加するリクエストを、(例えば、受信ユニット2010により)受信し、提案されるカレンダーイベントをデータベースに追加するリクエストに応じて、データベースにおいて、生成されたカレンダーイベントが提案されるカレンダーイベントであることを表示することなく、生成されたカレンダーイベントを、(例えば、記憶ユニット2026により)記憶するように更に構成されている。
【0286】
いくつかの実施形態では、処理ユニット2008は、提案されるカレンダーイベントをデータベースに追加するリクエストに応じて、ネットワーク上のリモートデータベースにおいて、生成されたカレンダーイベントが提案されるカレンダーイベントであることを表示することなく、生成されたカレンダーイベントを、(例えば、記憶ユニット2026により)記憶するように更に構成されている。
【0287】
いくつかの実施形態では、処理ユニット2008は、提案されるカレンダーイベントを拒否するリクエストを、(例えば、受信ユニット2010により)受信し、提案されるカレンダーイベントを拒否するリクエストに応じて、イベント情報が将来のメッセージ内で特定される結果として、提案されるカレンダーイベントが将来、生成されることを、(例えば、防止ユニット2028により)防止するように更に構成されている。
【0288】
図11A及び
図11Bを参照して上述された動作は、
図1A及び
図1B、又は
図20に示される構成要素によって、任意選択的に実行される。例えば、ブロック1102での受信動作、ブロック1104での特定動作、及びブロック1122での生成動作は、イベントソータ170、イベント認識部180、及びイベントハンドラ190によって実行され得る。イベントソータ170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配布する。アプリケーション136−1のそれぞれのイベント認識部180は、イベント情報をそれぞれのイベント定義186と比較し、タッチ感知面上の第1の位置の第1の接触がユーザインタフェース上のアフォーダンスのアクティブ化などの、既定のイベント又はサブイベントに対応するかどうかを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベントハンドラ190をアクティブ化させる。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデータ176若しくはオブジェクトアップデータ177を利用又は呼び出してもよい。いくつかの実施形態において、イベントハンドラ190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUIアップデータ178にアクセスする。同様に、当業者にとって、他の処理が
図1A及び
図1Bに示される構成要素に基づいてどのように実行されることができるかは明らかであるだろう。
【0289】
いくつかの実施形態によれば、
図21は、説明される様々な実施形態の原理に従って構成された、電子デバイス2100の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を遂行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。
図21で説明する機能ブロックが、説明される様々な実施形態の原理を実行するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
【0290】
図21に示すように、電子デバイス2100は、グラフィカルオブジェクトを表示するように構成されたディスプレイユニット2102と、外部電子デバイスと通信するように構成された1つ以上のRFユニット2106と、ディスプレイユニット2102及び1つ以上のRFユニット2106に結合された処理ユニット2108と、を含む。いくつかの実施形態では、処理ユニット2108は、受信ユニット2110、特定ユニット2112、及び表示可能化ユニット2114を含む。
【0291】
処理ユニット2108は、メッセージを、(例えば、受信ユニット2110により)受信し、受信したメッセージにおいて、イベント情報を、(例えば、特定ユニット2112により)特定し、受信したメッセージに対応する第1のユーザインタフェースの表示を、(例えば、表示可能化ユニット2114により)可能にするように構成されており、第1のユーザインタフェースは、電子デバイスによって受信されたメッセージのコンテンツを含む第1の部分と、第2の部分であって、特定されたイベント情報に対応する第1のユーザインタフェースオブジェクト、及び選択された場合、電子デバイスに、特定されたイベント情報を複数のカレンダーイベントを含むデータベースに追加させる、特定されたイベント情報に関連付けられた第2のユーザインタフェースオブジェクト、を含む、第2の部分と、を含む。
【0292】
いくつかの実施形態では、第2の部分は、選択された場合、電子デバイスに、第2のユーザインタフェースオブジェクトを表示することを中止させる、特定されたイベント情報に関連付けられた第3のユーザインタフェースオブジェクトを含む。
【0293】
いくつかの実施形態では、メッセージは、電子メールを含む。
【0294】
いくつかの実施形態では、特定されたイベント情報は、日付及び時刻を含む。
【0295】
図12を参照して上述された動作は、
図1A及び
図1B、又は
図21に示される構成要素によって、任意選択的に実行される。例えば、ブロック1202での受信動作、ブロック1204での特定動作、及びブロック1210での表示動作は、イベントソータ170、イベント認識部180、及びイベントハンドラ190によって実行され得る。イベントソータ170内のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配布する。アプリケーション136−1のそれぞれのイベント認識部180は、イベント情報をそれぞれのイベント定義186と比較し、タッチ感知面上の第1の位置の第1の接触がユーザインタフェース上のアフォーダンスのアクティブ化などの、既定のイベント又はサブイベントに対応するかどうかを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベントハンドラ190をアクティブ化させる。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデータ176若しくはオブジェクトアップデータ177を利用又は呼び出してもよい。いくつかの実施形態において、イベントハンドラ190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUIアップデータ178にアクセスする。同様に、当業者にとって、他の処理が
図1A及び
図1Bに示される構成要素に基づいてどのように実行されることができるかは明らかであるだろう。
【0296】
いくつかの実施形態によれば、
図22は、説明される様々な実施形態の原理に従って構成された、電子デバイス2200の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を遂行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。
図22で説明する機能ブロックが、説明される様々な実施形態の原理を実行するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
【0297】
図22に示すように、電子デバイス2200は、グラフィカルオブジェクトを表示するように構成されたディスプレイユニット2202と、外部電子デバイスと通信するように構成された1つ以上のRFユニット2206と、ディスプレイユニット2202及び1つ以上のRFユニット2206に結合された処理ユニット2208と、を含む。いくつかの実施形態では、処理ユニット2208は、受信ユニット2210、特定ユニット2212、表示可能化ユニット2214、及び検出ユニット2216を含む。
【0298】
処理ユニット2208は、メッセージを、(例えば、受信ユニット2210により)受信し、受信したメッセージにおいて、連絡先又はイベント情報の複数の事例を、(例えば、特定ユニット2212により)特定し、受信したメッセージに対応する第1のユーザインタフェースの表示を、(例えば、表示可能化ユニット2214により)可能にするように構成されており、第1のユーザインタフェースは、電子デバイスによって受信されたメッセージのコンテンツを含む第1の部分と、選択された場合、電子デバイスに、特定された連絡先又はイベント情報の複数の事例のリストを含む第2のユーザインタフェースを表示させる第2の部分と、を含む。
【0299】
いくつかの実施形態では、処理ユニット2208は、第1のユーザインタフェースの第2の部分の選択に対応する入力を、(例えば、検出ユニット2216により)検出し、第1のユーザインタフェースの第2の部分の選択に対応する入力の検出に応じて、特定された連絡先又はイベント情報の複数の事例のリストと、特定された連絡先又はイベント情報の複数の事例のそれぞれについて、選択された場合、電子デバイスに、特定された情報をデータベースに追加させる、第1のユーザインタフェースオブジェクトと、を含む、第2のユーザインタフェースの表示を、(例えば、表示可能化ユニット2214により)可能にするように更に構成されている。
【0300】
いくつかの実施形態では、第2のユーザインタフェースは、特定された連絡先又はイベント情報の複数の事例のそれぞれについて、選択された場合、電子デバイスに、第1のユーザインタフェースオブジェクトを表示することを中止させる、第2のユーザインタフェースオブジェクトを含む。
【0301】
いくつかの実施形態では、第2のユーザインタフェースは、選択された場合、電子デバイスに、特定された連絡先又はイベント情報の複数の事例のグループ化のそれぞれをデータベースに追加させる、第3のユーザインタフェースオブジェクトを含む。
【0302】
いくつかの実施形態では、第2のユーザインタフェースの表示により、第1のユーザインタフェースの表示を中止させる。
【0303】
図13を参照して上述された動作は、
図1A及び
図1B、又は
図22に示される構成要素によって、任意選択的に実行される。例えば、ブロック1302での受信動作、ブロック1304での特定動作、及びブロック1306での表示動作は、イベントソータ170、イベント認識部180、及びイベントハンドラ190によって実行され得る。イベントソータ170内のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配布する。アプリケーション136−1のそれぞれのイベント認識部180は、イベント情報をそれぞれのイベント定義186と比較し、タッチ感知面上の第1の位置の第1の接触がユーザインタフェース上のアフォーダンスのアクティブ化などの、既定のイベント又はサブイベントに対応するかどうかを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベントハンドラ190をアクティブ化させる。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデータ176若しくはオブジェクトアップデータ177を利用又は呼び出してもよい。いくつかの実施形態において、イベントハンドラ190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUIアップデータ178にアクセスする。同様に、当業者にとって、他の処理が
図1A及び
図1Bに示される構成要素に基づいてどのように実行されることができるかは明らかであるだろう。
【0304】
上述の説明は、説明の目的上、特定の実施形態を参照して説明されている。しかし、上述の例示的説明は、網羅的であること、又は本発明を、開示されている寸分違わない形態に限定することを意図されてはいない。上述の教示を考慮すれば、多くの修正及び変形が可能である。技術原理及びその実際の応用を最も良く説明するために、実施形態が選択され、説明された。これにより、当業者は、技術及び想到される特定の使用に好適である様々な修正を含む様々な実施形態を最適に利用することができる。
【0305】
添付の図面を参照して本開示及び実施例が十分に説明されたが、様々な変更及び修正が当業者には明らかになるであろうということに留意されたい。このような変更及び修正は、特許請求の範囲によって定義されるとおりの本開示及び実施例の範囲内に含まれるものと理解されるべきである。
【0306】
上述のように、本技術の一態様は、魅力的なコンテンツ又はユーザが興味を示す可能性のある任意の他のコンテンツをユーザに対して配信することを改良するための、様々なソースから入手できるデータの収集及び使用である。本開示は、いくつかの例において、この収集されたデータが、特定の人物を独自に特定し、又は同人物にコンタクトをとる若しくは同人物の位置を特定することに使用することができる個人情報データを含む場合があることが想到される。このような個人情報データは、位置依存データ、人口統計データ、電話番号、電子メールアドレス、自宅住所、又は任意の他の特定する情報を含む場合がある。
【0307】
本開示は、本技術において、このような個人情報データを使用してユーザを利することができることを認識するものである。例えば、個人情報データを使用して、ユーザにとってより興味のある目的のコンテンツを配信することができる。したがって、このような個人情報データの使用により、配信されるコンテンツの計数的管理が可能となる。また更に、ユーザを利する個人情報データの他の使用もまた、本開示により想到される。
【0308】
本開示は、このような個人情報データの収集、分析、開示、伝送、保存、又は他の使用を担うエンティティが確立した個人情報保護方針及び/又はプライバシー慣行を遵守するであろうことを更に想到している。特に、このようなエンティティは、個人情報データを内密及び安全に維持するために、産業界又は政府の要件に合致又は同要件を越えるとして一般的に認識される、個人情報保護方針及びプライバシー慣行を実行し、首尾一貫して使用しなければならない。例えば、ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共有又は販売されるべきではない。更には、そのような収集は、ユーザに告知して同意を得た後にのみ実施するべきである。更には、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセスを有する他者が、それらの個人情報保護方針及び手順を遵守することを保証するための、あらゆる必要な措置を講じるものとする。更には、そのようなエンティティは、広く受け入れられている個人情報保護方針及びプライバシーの慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
【0309】
前述のことがらにもかかわらず、本開示はまた、ユーザが、個人情報データの使用又は個人情報データへのアクセスを選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するために、ハードウェア要素及び/又はソフトウェア要素を提供することができると想到している。例えば、広告配信サービスの場合には、この技術は、ユーザが、サービスの登録中に、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするように構成され得る。別の例では、ユーザは、目的のコンテンツ配信サービスについての位置情報を提供しないことを選択することができる。更に別の実施例では、ユーザは、正確な位置情報を提供しないが、位置ゾーン情報の伝送を許可することを選択することができる。
【0310】
それゆえ、本開示は、1つ以上の様々な開示された実施形態を実施するための個人情報データの使用を、広範に網羅するものであるが、本開示は、それらの様々な実施形態がまた、そのような個人情報データにアクセスすることを必要とせずに実施することも可能である点も、また想到している。すなわち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分の欠如により、実施不可能となるものではない。例えば、非個人情報データ又は必要最小限の個人情報(例えば、ユーザに関連するデバイスによりリクエストされているコンテンツ、コンテンツ配信サービスに利用可能な他の非個人情報、又は公衆に利用可能な情報)に基づく選択を推測することにより、コンテンツは、選択され、ユーザに配信することができる。