JP7478304B2 - 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法 - Google Patents

関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法 Download PDF

Info

Publication number
JP7478304B2
JP7478304B2 JP2023200086A JP2023200086A JP7478304B2 JP 7478304 B2 JP7478304 B2 JP 7478304B2 JP 2023200086 A JP2023200086 A JP 2023200086A JP 2023200086 A JP2023200086 A JP 2023200086A JP 7478304 B2 JP7478304 B2 JP 7478304B2
Authority
JP
Japan
Prior art keywords
electronic device
application
touch
user interface
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2023200086A
Other languages
English (en)
Other versions
JP2024026183A (ja
Inventor
ダニエル, シー. グロス,
パトリック, エル. コフマン,
リチャード, アール. デリンジャー,
クリストファー, ピー. フォス,
ジェイソン, ジェー. ガウチ,
アリア, ディー. ハギギ,
キュロス, ディー. イラニ,
ブロンウィン, エー. ジョーンズ,
ガウラブ カプーア,
ステファン, オー. ルメイ,
コリン, シー. モリス,
マイケル, アール. シラクーサ,
ローレンス, ワイ. ヤング,
ブレント, ディー. ラマース,
ジェローム, アール. ベルガーダ,
ジャネス, ジー. エー ドルフィン,
ジュリア, エム. パガーロ,
シン ワン,
ジュン ハトリ,
アレクサンダー, アール. モハ,
ソフィアン トウジー,
ケビン, ディー. クラーク,
カール, クリスチャン コールシュエッター,
ジェスパー, エス. アンデルセン,
ハーフィド アラス,
アレクサンダー カルリアン,
トーマス デニオー,
マチュー, ジェー. マルテル,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2024026183A publication Critical patent/JP2024026183A/ja
Priority to JP2024068589A priority Critical patent/JP7524497B1/ja
Application granted granted Critical
Publication of JP7478304B2 publication Critical patent/JP7478304B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/0418Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
    • G06F3/04186Touch location disambiguation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/247Telephone sets including user guidance or feature selection means facilitating their use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Calculators And Similar Devices (AREA)
  • Traffic Control Systems (AREA)
  • Telephone Function (AREA)
  • Instructional Devices (AREA)
  • Navigation (AREA)

Description

本明細書に開示される実施形態は、全般的に、タッチ感知ディスプレイを有する電子デバイスに関し、より具体的には、関連コンテンツを先見的に特定し、ディスプレイ及びタッチ感知面と通信する電子デバイス上に表面化させるためのシステム及び方法に関する。
タッチ感知ディスプレイを有するハンドヘルド型電子デバイスは広く普及している。これらの広く普及しているハンドヘルド型電子デバイスのユーザは、現在、自身のデバイスに多数のアプリケーションをインストールし、これらのアプリケーションを使用して自身の日々の活動をより効率的に行っている。しかしながら、これらアプリケーションにアクセスするためには、ユーザは、通常、自身のデバイスをロック解除し、所望のアプリケーションの場所を特定し(例えば、ホームスクリーンをあちこち見て所望のアプリケーションと関連付けられたアイコンの場所を特定することにより、又は検索インタフェース内で所望のアプリケーションを検索することにより)、次いで、また、所望のアプリケーション内で所望の機能の場所を特定しなければならない。したがって、ユーザは、所望のアプリケーションを単に即座に(例えば、シングルタッチ入力によって)実行できる及び/又は所望の機能を実行できる代わりに、所望のアプリケーション及びこれらのアプリケーション内の所望の機能の場所を特定するのに多大な量の時間を費やすことが多い。
更に、多数のアプリケーションがインストールされていることでユーザに連続的な情報の流れが押し寄せるため、全てを即座に閲覧することはできない。このため、ユーザは、多くの場合、前に気づいた特定の情報を後で戻って閲覧すること、又は特定の情報を後で使用することを所望する。しかしながら、しばしば、ユーザは特定の情報の場所を特定することができない、又は特定の情報の場所をどう特定するかを憶えることができない。
このため、関連コンテンツ(例えば、特定の情報)を先見的に特定し、ディスプレイ及びタッチ感知面と通信する電子デバイス上に表面化させるための、直感的かつ使用が簡単なシステム並びに方法を提供することが望ましい。
したがって、アプリケーション及びこれらのアプリケーション内の所望の機能に迅速にアクセスするためのより速くより効率的な方法並びにインタフェースを有する電子デバイス対する需要がある。更に、関連情報(例えば、連絡先、近くの場所、アプリケーション、ニュース記事、住所、及びデバイス上で入手可能な他の情報)を、この情報がユーザにより明示的に要求される前に先見的に特定し、提供することにより、ユーザが日々受信する連続的な情報の流れの管理に関してユーザを支援する電子デバイスに対する需要がある。このような方法及びインタフェースは、任意選択的に、アプリケーションにアクセスするための従来の方法を補完する、又はそれらに取って代わる。このような方法及びインタフェースにより、ユーザが所望の情報の場所を特定するのに必要とする入力が少なくなることによって、より効率的なヒューマンマシンインタフェースが生じる。電池駆動式デバイスの場合、このような方法及びインタフェースにより、電力が節約され、電池充電の時間間隔が延びる(例えば、種々の機能を実行するために必要なタッチ入力の回数が少なくなることにより)。更に、このような方法及びインタフェースによって必要とするタッチ入力の回数が少なくなることにより(例えば、所望の情報の場所を特定するためにタッチ感知ディスプレイを連続的にかつ目的なくタップしなければならない代わりに、本明細書に開示される方法及びインタフェースがこの情報を、ユーザ入力を必要とすることなく先見的に提供する)タッチ感知ディスプレイの寿命が延びる。
タッチ感知面を備える電子デバイス用のユーザインタフェースに関連する上記の欠陥及び他の問題は、開示されるデバイスによって対処される。一部の実施形態では、本デバイスは、デスクトップコンピュータである。一部の実施形態では、このデバイスは、ポータブル(例えば、ノートブックコンピュータ、タブレットコンピュータ、又はハンドヘルドデバイス)である。一部の実施形態では、このデバイスは、タッチパッドを有する。一部の実施形態では、本デバイスは、タッチ感知ディスプレイ(「タッチスクリーン」又は「タッチスクリーンディスプレイ」としても知られる)を有する。一部の実施形態では、このデバイスは、グラフィカルユーザインタフェース(GUI)、1つ以上のプロセッサ、メモリ、及び複数の機能を実行するためにメモリに記憶された1つ以上のモジュール、プログラム、又は命令セットを有する。一部の実施形態では、ユーザは主にタッチ感知面上でのスタイラス並びに/又は指の接触及びジェスチャによってGUIと相互作用する。一部の実施形態では、機能は、画像編集、描画、プレゼンティング、ワードプロセッシング、ウェブサイト作成、ディスクオーサリング、スプレッドシートの作成、ゲームプレイ、電話をかけること、ビデオ会議、電子メール送信、インスタントメッセージング、フィットネスサポート、デジタル写真撮影、デジタルビデオ撮影、ウェブブラウジング、デジタル音楽の再生、及び/又はデジタルビデオの再生を任意選択的に、含む。これらの機能を実行する実行可能命令は、任意選択的に、非一時的コンピュータ可読記憶媒体又は1つ以上のプロセッサによって実行されるように構成された他のコンピュータプログラム製品に含まれる。
(A1)一部の実施形態では、方法が、タッチ感知ディスプレイ(タッチスクリーン112、図1C)を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、電子デバイスのユーザからの命令に応じて、電子デバイス上でアプリケーションを実行することを含む。当該方法は、アプリケーションを実行している間、使用データを収集することを更に含む。使用データは、アプリケーション内でユーザが実行した1つ以上のアクション(又はアクションの種類)を少なくとも含む。当該方法は、また、(i)収集した使用データに基づいて、自動的に、かつ人の介入なしに、少なくとも1つのトリガー条件を取得することと、(ii)少なくとも1つのトリガー条件を、アプリケーション内でユーザが実行した1つ以上のアクションのうち特定のアクションと関連付けることと、を含む。当該方法は、少なくとも1つのトリガー条件が満たされたと判定すると、ユーザに対し、トリガー条件と関連付けられた特定のアクションが利用可能であるというインジケーションを提供することを含む。
(A2)A1に記載の方法の一部の実施形態では、少なくとも1つのトリガー条件を取得することは、電子デバイスからリモートに位置する1つ以上のサーバに使用データを送信することと、1つ以上のサーバから少なくとも1つのトリガー条件を受信することと、を含む。
(A3)A1又はA2に記載の方法の一部の実施形態では、インジケーションを提供することは、タッチ感知ディスプレイのロックスクリーン上に、トリガー条件と関連付けられた特定のアクションに対応するユーザインタフェースオブジェクトを表示することを含む。
(A4)A3に記載の方法の一部の実施形態では、ユーザインタフェースオブジェクトは、トリガー条件と関連付けられた特定のアクションの説明を含む。
(A5)A4に記載の方法の一部の実施形態では、ユーザインタフェースオブジェクトは、アプリケーションと関連付けられたアイコンを更に含む。
(A6)A3からA5のいずれか1つに記載の方法の一部の実施形態では、当該方法は、ユーザインタフェースオブジェクトにおいて第1のジェスチャを検出することを更に含む。第1のジェスチャを検出したことに応じて、(i)タッチ感知ディスプレイ上にアプリケーションを表示し、(ii)当該方法は、アプリケーションを表示している間、トリガー条件と関連付けられた特定のアクションを実行することを含む。
(A7)A6に記載の方法の一部の実施形態では、第1のジェスチャは、ユーザインタフェースオブジェクト上におけるスワイプジェスチャである。
(A8)A3からA5のいずれか1つに記載の方法の一部の実施形態では、当該方法は、ユーザインタフェースオブジェクトにおいて第2のジェスチャを検出することを更に含む。第2のジェスチャを検出したことに応じて、かつタッチ感知ディスプレイ上にロックスクリーンを表示し続けている間、トリガー条件と関連付けられた特定のアクションを実行する。
(A9)A8に記載の方法の一部の実施形態では、第2のジェスチャは、ユーザインタフェースオブジェクトの既定のエリアにおけるシングルタップである。
(A10)A3からA9のいずれか1つに記載の方法の一部の実施形態では、ユーザインタフェースオブジェクトは、ロックスクリーンの既定の中央部に表示される。
(A11)A1に記載の方法の一部の実施形態では、ユーザに対し、トリガー条件と関連付けられた特定のアクションが利用可能であるというインジケーションを提供することは、特定のアクションを実行することを含む。
(A12)A3に記載の方法の一部の実施形態では、ユーザインタフェースオブジェクトはアプリケーションと関連付けられたアイコンであり、ユーザインタフェースオブジェクトは、実質的に、タッチ感知ディスプレイのロックスクリーンの隅に表示される。
(A13)A1からA12のいずれか1つに記載の方法の一部の実施形態では、当該方法は、ユーザから、電子デバイスをロック解除する命令を受信することを更に含む。当該方法は、命令の受信に応じて、タッチ感知ディスプレイ上に、電子デバイスのホームスクリーンを表示することを含む。当該方法は、また、ホームスクリーン上に、ユーザに対し、トリガー条件と関連付けられた特定のアクションが利用可能であるというインジケーションを提供することを含む。
(A14)A13に記載の方法の一部の実施形態では、ホームスクリーンは、(i)電子デバイス上で利用可能なアプリケーションの第1セットを起動するための1つ以上のユーザインタフェースページを含む第1部分と、(ii)第1部分に隣接して表示される、電子デバイス上で利用可能なアプリケーションの第2セットを起動するための第2部分と、を含む。第2部分は、第1部分に含まれる全てのユーザインタフェースページ上に表示され、ホームスクリーン上にインジケーションを提供することは、インジケーションを第2部分上に表示することを含む。
(A15)A14に記載の方法の一部の実施形態では、アプリケーションの第2セットはアプリケーションの第1セットとは異なり、かつアプリケーションの第1セットよりも小さい。
(A16)A1からA15のいずれか1つに記載の方法の一部の実施形態では、少なくとも1つのトリガー条件が満たされたと判定することは、電子デバイスが、電子デバイスとは異なる第2のデバイスと結合されたと判定することを含む。
(A17)A1からA16のいずれか1つに記載の方法の一部の実施形態では、少なくとも1つのトリガー条件が満たされたと判定することは、電子デバイスが、ユーザと関連付けられた自宅又は職場に対応する住所に到着したと判定することを含む。
(A18)A17に記載の方法の一部の実施形態では、電子デバイスが、ユーザと関連付けられた自宅又は職場に対応する住所に到着したと判定することは、電子デバイスの加速度計からのモーションデータを監視することと、監視されたモーションデータに基づいて、電子デバイスが閾値時間量を超えて移動していないと判定することと、を含む。
(A19)A1からA18のいずれか1つに記載の方法の一部の実施形態では、使用データは、アプリケーションの実行を継続している間に、ユーザからバーチャルアシスタントアプリケーションに提供される口頭命令を更に含む。少なくとも1つのトリガー条件は、更に、バーチャルアシスタントアプリケーションに提供される口頭命令に基づく。
(A20)A19に記載の方法の一部の実施形態では、口頭命令は、アプリケーションの現在の状態に対応するリマインダを作成することの要求を含み、現在の状態は、口頭命令が提供されたときのアプリケーションの状態に対応する。
(A21)A20に記載の方法の一部の実施形態では、口頭命令が提供されたときのアプリケーションの状態は、口頭命令が提供されたときにアプリケーション内に表示されるページ、口頭命令が提供されたときにアプリケーション内で再生されているコンテンツ、口頭命令が提供されたときにアプリケーション内に表示される通知、及び口頭命令が提供されたときにアプリケーション内に表示されるページのアクティブ部分からなる群より選択される。
(A22)A20に記載の方法の一部の実施形態では、口頭命令は、アプリケーションの現在の状態に関する「この(this)」という語を含む。
(A23)別の態様では、方法が、1つ以上の電子デバイス(例えば、ポータブル多機能デバイス100(図5)及び1つ以上のサーバ502(図5))において実行される。当該方法は、第1の電子デバイスのユーザからの命令に応じて、1つ以上の電子デバイスのうちの第1の電子デバイス上でアプリケーションを実行することを含む。当該方法は、アプリケーションを実行している間、自動的に、かつ人の介入なしに、使用データを収集することを含み、使用データは、アプリケーション内でユーザが実行した1つ以上のアクション(又はアクションの種類)を少なくとも含む。当該方法は、収集した使用データに基づいて、自動的に、かつ人の介入なしに、少なくとも1つのトリガー条件を設けることを更に含む。当該方法は、少なくとも1つのトリガー条件を、アプリケーション内でユーザが実行した1つ以上のアクションのうち特定のアクションと関連付けることを更に含む。当該方法は、少なくとも1つのトリガー条件が満たされたと判定すると、ユーザに対し、トリガー条件と関連付けられた特定のアクションが利用可能であるというインジケーションを提供することを含む。
(A24)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリとを含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは電子デバイスにA1からA22のいずれか1つに記載の方法を実行させる。
(A25)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知ディスプレイと、A1からA22のいずれか1つに記載の方法を実行するための手段と、を含む。
(A26)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知ディスプレイを有する電子デバイスによって実行されると、実行可能命令は電子デバイスにA1からA22のいずれか1つに記載の方法を実行させる。
(A27)更なる一態様では、タッチ感知ディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、A1からA22のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。
(A28)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット4201、図42)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット4203、図42)と、処理ユニット(例えば、処理ユニット4205、図42)と、を含む電子デバイスが提供される。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(すなわち、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図42は、電子デバイス4200に一体化されているとしてディスプレイユニット4201及びタッチ感知面ユニット4203を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。処理ユニットは、タッチ感知面ユニット及びディスプレイユニットと結合されている。一部の実施形態では、タッチ感知面ユニット及びディスプレイユニットは1つのタッチ感知ディスプレイユニット(本明細書では、タッチ感知ディスプレイとも称される)に一体化されている。処理ユニットは、実行ユニット(例えば、実行ユニット4207、図42)と、収集ユニット(例えば、収集ユニット4209、図42)と、取得ユニット(例えば、取得ユニット4211、図42)と、関連付けユニット(例えば、関連付けユニット4213、図42)と、提供ユニット(例えば、提供ユニット4215、図42)と、送信ユニット(例えば、送信ユニット4217、図42)と、受信ユニット(例えば、受信ユニット4219、図42)と、表示ユニット(例えば、表示ユニット4221、図42)と、検出ユニット(例えば、検出ユニット4223、図42)と、実施ユニット(例えば、実施ユニット4225、図42)と、判定ユニット(例えば、判定ユニット4227、図42)と、監視ユニット(例えば、監視ユニット4229、図42)と、を含む。処理ユニット(又はユニット4207から4229などのその1つ以上の構成要素)は、電子デバイスのユーザからの命令に応じて電子デバイス上でアプリケーションを実行し(例えば、実行ユニット4207によって)、アプリケーションを実行している間、使用データであって、を収集し(例えば、収集ユニット4209によって)、使用データは、アプリケーション内でユーザが実行した1つ以上のアクションを少なくとも含む、使用データを収集し、収集した使用データに基づいて、自動的に、かつ人の介入なしに、少なくとも1つのトリガー条件を取得し(例えば、取得ユニット4211によって)、少なくとも1つのトリガー条件を、アプリケーション内でユーザが実行した1つ以上のアクションのうち特定のアクションと関連付け(例えば、関連付けユニット4213によって)、少なくとも1つのトリガー条件が満たされたと判定すると、ユーザに対し、トリガー条件と関連付けられた特定のアクションが利用可能であるというインジケーションを提供する(例えば、提供ユニット4215によって)ように構成されている。
(A29)A28に記載の電子デバイスの一部の実施形態では、少なくとも1つのトリガー条件を取得することは、電子デバイスからリモートに位置する1つ以上のサーバに使用データを送信すること(例えば、送信ユニット4217によって)と、1つ以上のサーバから少なくとも1つのトリガー条件を受信すること(例えば、受信ユニット4219によって)と、を含む。
(A30)A28又はA29に記載の電子デバイスの一部の実施形態では、インジケーションを提供することは、タッチ感知ディスプレイユニットのロックスクリーン上に、トリガー条件と関連付けられた特定のアクションに対応するユーザインタフェースオブジェクトを表示すること(例えば、表示ユニット4217及び/又はディスプレイユニット4201によって)を含む。
(A31)A30に記載の電子デバイスの一部の実施形態では、ユーザインタフェースオブジェクトは、トリガー条件と関連付けられた特定のアクションの説明を含む。
(A32)A31に記載の電子デバイスの一部の実施形態では、ユーザインタフェースオブジェクトは、アプリケーションと関連付けられたアイコンを更に含む。
(A33)A30からA32のいずれか1つに記載の電子デバイスの一部の実施形態では、処理ユニットは、ユーザインタフェースオブジェクトにおいて第1のジェスチャを検出する(例えば、検出ユニット4223及び/又はタッチ感知面ユニット4203によって)ように更に構成されている。第1のジェスチャを検出したことに応じて、(i)タッチ感知ディスプレイユニット上にアプリケーションを表示し(例えば、表示ユニット4217及び/又はディスプレイユニット4201によって)、(ii)アプリケーションを表示している間、トリガー条件と関連付けられた特定のアクションを実行する(例えば、実施ユニット4225によって)。
(A34)A33に記載の電子デバイスの一部の実施形態では、第1のジェスチャは、ユーザインタフェースオブジェクト上におけるスワイプジェスチャである。
(A35)A30からA33のいずれか1つに記載の電子デバイスの一部の実施形態では、処理ユニットは、ユーザインタフェースオブジェクトにおいて第2のジェスチャを検出する(例えば、検出ユニット4223及び/又はタッチ感知面ユニット4203によって)ように更に構成されている。第2のジェスチャを検出したことに応じて、かつタッチ感知ディスプレイユニット上にロックスクリーンを表示し続けている間、処理ユニットは、トリガー条件と関連付けられた特定のアクションを実行する(例えば、実施ユニット4225によって)ように構成されている。
(A36)A35に記載の電子デバイスの一部の実施形態では、第2のジェスチャは、ユーザインタフェースオブジェクトの既定のエリアにおけるシングルタップである。
(A37)A30からA36のいずれか1つに記載の電子デバイスの一部の実施形態では、ユーザインタフェースオブジェクトは、ロックスクリーンの既定の中央部に表示される。
(A38)A28に記載の電子デバイスの一部の実施形態では、ユーザに対し、トリガー条件と関連付けられた特定のアクションが利用可能であるというインジケーションを提供することは、特定のアクションを実行すること(例えば、実施ユニット4225によって)を含む。
(A39)A30に記載の電子デバイスの一部の実施形態では、ユーザインタフェースオブジェクトはアプリケーションと関連付けられたアイコンであり、ユーザインタフェースオブジェクトは、実質的に、タッチ感知ディスプレイユニットのロックスクリーンの隅に表示される。
(A40)A28からA39のいずれか1つに記載の電子デバイスの一部の実施形態では、処理ユニットは、ユーザから、電子デバイスをロック解除する命令を受信する(例えば、受信ユニット4219によって)ように更に構成されている。命令の受信に応じて、処理ユニットは、タッチ感知ディスプレイユニット上に、電子デバイスのホームスクリーンを表示する(例えば、表示ユニット4217及び/又はディスプレイユニット4201によって)ように構成されている。処理ユニットはまた、ホームスクリーン上に、ユーザに対し、トリガー条件と関連付けられた特定のアクションが利用可能であるというインジケーションを提供する(例えば、提供ユニット4215によって)ように構成されている。
(A41)A40に記載の電子デバイスの一部の実施形態では、ホームスクリーンは、(i)電子デバイス上で利用可能なアプリケーションの第1セットを起動するための1つ以上のユーザインタフェースページを含む第1部分と、(ii)第1部分に隣接して表示される、電子デバイス上で利用可能なアプリケーションの第2セットを起動するための第2部分と、を含む。第2部分は、第1部分に含まれる全てのユーザインタフェースページ上に表示され、ホームスクリーン上にインジケーションを提供することは、インジケーションを第2部分上に表示すること(例えば、表示ユニット4217及び/又はディスプレイユニット4201によって)を含む。
(A42)A41に記載の電子デバイスの一部の実施形態では、アプリケーションの第2セットはアプリケーションの第1セットとは異なり、かつアプリケーションの第1セットよりも小さい。
(A43)A28からA42のいずれか1つに記載の電子デバイスの一部の実施形態では、少なくとも1つのトリガー条件が満たされたと判定することは、電子デバイスが、電子デバイスとは異なる第2のデバイスと結合されたと判定すること(例えば、判定ユニット4227によって)を含む。
(A44)A28からA43のいずれか1つに記載の電子デバイスの一部の実施形態では、少なくとも1つのトリガー条件が満たされたと判定することは、電子デバイスが、ユーザと関連付けられた自宅又は職場に対応する住所に到着したと判定すること(例えば、判定ユニット4227によって)を含む。
(A45)A44に記載の電子デバイスの一部の実施形態では、電子デバイスが、ユーザと関連付けられた自宅又は職場に対応する住所に到着したと判定することは、電子デバイスの加速度計からのモーションデータを監視すること(例えば、監視ユニット4229によって)と、監視されたモーションデータに基づいて、電子デバイスが閾値時間量を超えて移動していないと判定すること(例えば、判定ユニット4227によって)と、を含む。
(A46)A28からA45のいずれか1つに記載の電子デバイスの一部の実施形態では、使用データは、アプリケーションの実行を継続している間に、ユーザからバーチャルアシスタントアプリケーションに提供される口頭命令を更に含む。少なくとも1つのトリガー条件は、更に、バーチャルアシスタントアプリケーションに提供される口頭命令に基づく。
(A47)A46に記載の電子デバイスの一部の実施形態では、口頭命令は、アプリケーションの現在の状態に対応するリマインダを作成することの要求を含み、現在の状態は、口頭命令が提供されたときのアプリケーションの状態に対応する。
(A48)A47に記載の電子デバイスの一部の実施形態では、口頭命令が提供されたときのアプリケーションの状態は、口頭命令が提供されたときにアプリケーション内に表示されるページ、口頭命令が提供されたときにアプリケーション内で再生されているコンテンツ、口頭命令が提供されたときにアプリケーション内に表示される通知、及び口頭命令が提供されたときにアプリケーション内に表示されるページのアクティブ部分からなる群より選択される。
(A49)A46に記載の電子デバイスの一部の実施形態では、口頭命令は、アプリケーションの現在の状態に関する「この(this)」という語を含む。
(B1)一部の実施形態では、方法が、タッチ感知ディスプレイ(タッチスクリーン112、図1C)を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、電子デバイスのユーザと関連付けられた使用データに基づく少なくとも1つのトリガー条件を取得することを含み、使用データは、アプリケーションが電子デバイス上で実行されている間、アプリケーション内でユーザが実行した1つ以上のアクション(又はアクションの種類)を含む。当該方法は、また、少なくとも1つのトリガー条件を、アプリケーション内でユーザが実行した1つ以上のアクションのうち特定のアクションと関連付けることを含む。当該方法は、少なくとも1つのトリガー条件が満たされたと判定すると、ユーザに対し、トリガー条件と関連付けられた特定のアクションが利用可能であるというインジケーションを提供することを含む。
(B2)B1に記載の方法の一部の実施形態では、当該方法は、A2からA22のいずれか1つに記載の方法を更に含む。
(B3)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは電子デバイスにB1又はB2に記載の方法を実行させる。
(B4)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知ディスプレイと、B1又はB2に記載の方法を実行するための手段と、を含む。
(B5)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知ディスプレイを有する電子デバイスによって実行されると、実行可能命令は電子デバイスにB1又はB2に記載の方法を実行させる。
(B6)更なる一態様では、タッチ感知ディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、B1又はB2に記載の方法に従って表示されるユーザインタフェースを含む。
(B7)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット4201、図42)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット4203、図42)と、処理ユニット(例えば、処理ユニット4205、図42)と、を含む電子デバイスが提供される。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(すなわち、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図42は、電子デバイス4200に一体化されているとしてディスプレイユニット4201及びタッチ感知面ユニット4203を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。処理ユニットは、実行ユニット(例えば、実行ユニット4207、図42)と、収集ユニット(例えば、収集ユニット4209、図42)と、取得ユニット(例えば、取得ユニット4211、図42)と、関連付けユニット(例えば、関連付けユニット4213、図42)と、提供ユニット(例えば、提供ユニット4215、図42)と、送信ユニット(例えば、送信ユニット4217、図42)と、受信ユニット(例えば、受信ユニット4219、図42)と、表示ユニット(例えば、表示ユニット4221、図42)と、検出ユニット(例えば、検出ユニット4223、図42)と、実施ユニット(例えば、実施ユニット4225、図42)と、判定ユニット(例えば、判定ユニット4227、図42)と、監視ユニット(例えば、監視ユニット4229、図42)と、を含む。処理ユニット(又はユニット4207から4229などのその1つ以上の構成要素)は、電子デバイスのユーザと関連付けられた使用データであって、使用データは、アプリケーションが電子デバイス上で実行されている間、アプリケーション内でユーザが実行した1つ以上のアクションを含む、使用データに基づく少なくとも1つのトリガー条件を取得し(例えば、取得ユニット4211によって)、少なくとも1つのトリガー条件を、アプリケーション内でユーザが実行した1つ以上のアクションのうち特定のアクションと関連付け(例えば、関連付けユニット4213によって)、少なくとも1つのトリガー条件が満たされたと判定すると、ユーザに対し、トリガー条件と関連付けられた特定のアクションが利用可能であるというインジケーションを提供する(例えば、提供ユニット4215によって)ように構成されている。
(B8)B7に記載の電子デバイスの一部の実施形態では、少なくとも1つのトリガー条件を取得することは、電子デバイスからリモートに位置する1つ以上のサーバに使用データを送信すること(例えば、送信ユニット4217によって)と、1つ以上のサーバから少なくとも1つのトリガー条件を受信すること(例えば、受信ユニット4219によって)と、を含む。
(B9)B7又はB8に記載の電子デバイスの一部の実施形態では、インジケーションを提供することは、タッチ感知ディスプレイのロックスクリーン上に、トリガー条件と関連付けられた特定のアクションに対応するユーザインタフェースオブジェクトを表示すること(例えば、表示ユニット4217及び/又はディスプレイユニット4201によって)を含む。
(B10)B9に記載の電子デバイスの一部の実施形態では、ユーザインタフェースオブジェクトは、トリガー条件と関連付けられた特定のアクションの説明を含む。
(B11)B10に記載の電子デバイスの一部の実施形態では、ユーザインタフェースオブジェクトは、アプリケーションと関連付けられたアイコンを更に含む。
(B12)B9からB11のいずれか1つに記載の電子デバイスの一部の実施形態では、処理ユニットは、ユーザインタフェースオブジェクトにおいて第1のジェスチャを検出する(例えば、検出ユニット4223及び/又はタッチ感知面ユニット4203によって)ように更に構成されている。第1のジェスチャを検出したことに応じて、(i)タッチ感知ディスプレイ上にアプリケーションを表示し(例えば、表示ユニット4217及び/又はディスプレイユニット4201によって)、(ii)アプリケーションを表示している間、トリガー条件と関連付けられた特定のアクションを実行する(例えば、実施ユニット4225によって)。
(B13)B12に記載の電子デバイスの一部の実施形態では、第1のジェスチャは、ユーザインタフェースオブジェクト上におけるスワイプジェスチャである。
(B14)B9からB12のいずれか1つに記載の電子デバイスの一部の実施形態では、処理ユニットは、ユーザインタフェースオブジェクトにおいて第2のジェスチャを検出する(例えば、検出ユニット4223及び/又はタッチ感知面ユニット4203によって)ように更に構成されている。第2のジェスチャを検出したことに応じて、かつタッチ感知ディスプレイ上にロックスクリーンを表示し続けている間、処理ユニットは、トリガー条件と関連付けられた特定のアクションを実行する(例えば、実施ユニット4225によって)ように構成されている。
(B15)B14に記載の電子デバイスの一部の実施形態では、第2のジェスチャは、ユーザインタフェースオブジェクトの既定のエリアにおけるシングルタップである。
(B16)B9からB15のいずれか1つに記載の電子デバイスの一部の実施形態では、ユーザインタフェースオブジェクトは、ロックスクリーンの既定の中央部に表示される。
(B17)B7に記載の電子デバイスの一部の実施形態では、ユーザに対し、トリガー条件と関連付けられた特定のアクションが利用可能であるというインジケーションを提供することは、特定のアクションを実行すること(例えば、実施ユニット4225によって)を含む。
(B18)B9に記載の電子デバイスの一部の実施形態では、ユーザインタフェースオブジェクトはアプリケーションと関連付けられたアイコンであり、ユーザインタフェースオブジェクトは、実質的に、タッチ感知ディスプレイのロックスクリーンの隅に表示される。
(B19)B7からB18のいずれか1つに記載の電子デバイスの一部の実施形態では、処理ユニットは、ユーザから、電子デバイスをロック解除する命令を受信する(例えば、受信ユニット4219によって)ように更に構成されている。命令の受信に応じて、処理ユニットは、タッチ感知ディスプレイ上に、電子デバイスのホームスクリーンを表示する(例えば、表示ユニット4217及び/又はディスプレイユニット4201によって)ように構成されている。処理ユニットはまた、ホームスクリーン上に、ユーザに対し、トリガー条件と関連付けられた特定のアクションが利用可能であるというインジケーションを提供する(例えば、提供ユニット4215によって)ように構成されている。
(B20)B19に記載の電子デバイスの一部の実施形態では、ホームスクリーンは、(i)電子デバイス上で利用可能なアプリケーションの第1セットを起動するための1つ以上のユーザインタフェースページを含む第1部分と、(ii)第1部分に隣接して表示される、電子デバイス上で利用可能なアプリケーションの第2セットを起動するための第2部分と、を含む。第2部分は、第1部分に含まれる全てのユーザインタフェースページ上に表示され、ホームスクリーン上にインジケーションを提供することは、インジケーションを第2部分上に表示すること(例えば、表示ユニット4217及び/又はディスプレイユニット4201によって)を含む。
(B21)B20に記載の電子デバイスの一部の実施形態では、アプリケーションの第2セットはアプリケーションの第1セットとは異なり、かつアプリケーションの第1セットよりも小さい。
(B22)B7からB21のいずれか1つに記載の電子デバイスの一部の実施形態では、少なくとも1つのトリガー条件が満たされたと判定することは、電子デバイスが、電子デバイスとは異なる第2のデバイスと結合されたと判定すること(例えば、判定ユニット4227によって)を含む。
(B23)B7からB22のいずれか1つに記載の電子デバイスの一部の実施形態では、少なくとも1つのトリガー条件が満たされたと判定することは、電子デバイスが、ユーザと関連付けられた自宅又は職場に対応する住所に到着したと判定すること(例えば、判定ユニット4227によって)を含む。
(B24)B23に記載の電子デバイスの一部の実施形態では、電子デバイスが、ユーザと関連付けられた自宅又は職場に対応する住所に到着したと判定することは、電子デバイスの加速度計からのモーションデータを監視すること(例えば、監視ユニット4229によって)と、監視されたモーションデータに基づいて、電子デバイスが閾値時間量を超えて移動していないと判定すること(例えば、判定ユニット4227によって)と、を含む。
(B25)B7からB24のいずれか1つに記載の電子デバイスの一部の実施形態では、使用データは、アプリケーションの実行を継続している間に、ユーザからバーチャルアシスタントアプリケーションに提供される口頭命令を更に含む。少なくとも1つのトリガー条件は、更に、バーチャルアシスタントアプリケーションに提供される口頭命令に基づく。
(B26)B25に記載の電子デバイスの一部の実施形態では、口頭命令は、アプリケーションの現在の状態に対応するリマインダを作成することの要求を含み、現在の状態は、口頭命令が提供されたときのアプリケーションの状態に対応する。
(B27)B26に記載の電子デバイスの一部の実施形態では、口頭命令が提供されたときのアプリケーションの状態は、口頭命令が提供されたときにアプリケーション内に表示されるページ、口頭命令が提供されたときにアプリケーション内で再生されているコンテンツ、口頭命令が提供されたときにアプリケーション内に表示される通知、及び口頭命令が提供されたときにアプリケーション内に表示されるページのアクティブ部分からなる群より選択される。
(B28)B26に記載の電子デバイスの一部の実施形態では、口頭命令は、アプリケーションの現在の状態に関する「この(this)」という語を含む。
(C1)一部の実施形態では、方法が、タッチ感知ディスプレイ(タッチスクリーン112、図1C)を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、タッチ感知ディスプレイ上の、電子デバイスのユーザの検索アクティブ化ジェスチャを検出することを含む。当該方法は、検索アクティブ化ジェスチャを検出したことに応じて、タッチ感知ディスプレイ上に検索インタフェースを表示させること、を含み、検索インタフェースは、(i)検索エントリ部分と、(ii)検索エントリ部分において何らかのユーザ入力を受信する前に表示される予測部分と、を含む。予測部分は、(a)複数の以前連絡を取った人物のうちの人物に連絡するための少なくとも1つのアフォーダンスであって、人物は、複数の以前連絡を取った人物の中から、少なくとも一部、現在時刻に基づいて自動的に選択される、少なくとも1つのアフォーダンスと、(b)電子デバイス上で利用可能な複数のアプリケーションのうちのアプリケーション内で、予測されたアクションを実行するための少なくとも1つのアフォーダンスであって、予測されたアクションは、少なくとも一部、電子デバイスのユーザと関連付けられたアプリケーション利用履歴に基づいて自動的に選択される、少なくとも1つのアフォーダンスと、の1つ以上でポピュレートされる。
(C2)C1に記載の方法の一部の実施形態では、人物は更に、少なくとも一部、電子デバイスに対応する位置データに基づいて選択される。
(C3)C1又はC2に記載の方法の一部の実施形態では、アプリケーション利用履歴及び人物に対する連絡先情報が電子デバイスのメモリから取り出される。
(C4)C1又はC2に記載の方法の一部の実施形態では、アプリケーション利用履歴及び人物に対する連絡先情報が、電子デバイスからリモートに位置するサーバから取り出される。
(C5)C1からC4のいずれか1つに記載の方法の一部の実施形態では、予測部分は、予測されたアプリケーションを実行するための少なくとも1つのアフォーダンスで更にポピュレートされ、予測されたアプリケーションは、少なくとも一部、アプリケーション利用履歴に基づいて自動的に選択される。
(C6)C1からC5のいずれか1つに記載の方法の一部の実施形態では、予測部分は、予測された場所(又は近くの場所)カテゴリの少なくとも1つのアフォーダンスで更にポピュレートされ、予測された場所カテゴリは、少なくとも一部、現在時刻、及び電子デバイスに対応する位置データの1つ以上に基づいて自動的に選択される。
(C7)C1からC6のいずれか1つに記載の方法の一部の実施形態では、当該方法は、予測部分をスクロールするためのユーザ入力を検出することを更に含む。当該方法は、予測部分をスクロールするためのユーザ入力を検出したことに応じて、予測部分をユーザ入力に従ってスクロールすることを含む。当該方法は、スクロールに応じて、予測されたニュース記事の少なくとも1つのアフォーダンスを予測部分に顕示化させることを含む(例えば、予測されたニュース記事はユーザが関心を持つことが予想されるものである)。
(C8)C7に記載の方法の一部の実施形態では、予測されたニュース記事は、少なくとも一部、電子デバイスに対応する位置データに基づいて自動的に選択される。
(C9)C1からC8のいずれか1つに記載の方法の一部の実施形態では、当該方法は、予測されたアクションをアプリケーション内で実行するための少なくとも1つのアフォーダンスの選択を検出することを更に含む。当該方法は、選択を検出したことに応じて、タッチ感知ディスプレイ上にアプリケーションを表示し、予測されたアクションをアプリケーション内で実行することを含む。
(C10)C3又はC4に記載の方法の一部の実施形態では、当該方法は、人物に連絡するための少なくとも1つのアフォーダンスの選択を検出することを更に含む。当該方法は、選択を検出したことに応じて、人物に対する連絡先情報を用いて人物に連絡することを含む。
(C11)C5に記載の方法の一部の実施形態では、当該方法は、予測されたアプリケーションを実行するための少なくとも1つのアフォーダンスの選択を検出することを更に含む。当該方法は、選択を検出したことに応じて、タッチ感知ディスプレイ上に予測されたアプリケーションを表示することを含む。
(C12)C6に記載の方法の一部の実施形態では、当該方法は、予測された場所カテゴリの少なくとも1つのアフォーダンスの選択を検出することを更に含む。当該方法は、選択を検出したことに応じて、(i)少なくとも1つの近くの場所に対応するデータを受信することと、(ii)タッチ感知ディスプレイ上に、少なくとも1つの近くの場所に対応する受信データを表示することと、を更に含む。
(C13)C7に記載の方法の一部の実施形態では、当該方法は、予測されたニュース記事の少なくとも1つのアフォーダンスの選択を検出することを更に含む。当該方法は、選択を検出したことに応じて、タッチ感知ディスプレイ上に、予測されたニュース記事を表示することを含む。
(C14)C1からC13のいずれか1つに記載の方法の一部の実施形態では、検索アクティブ化ジェスチャは少なくとも2つの異なるユーザインタフェースから利用可能であり、少なくとも2つの異なるユーザインタフェースのうちの第1のユーザインタフェースは、一連のホームスクリーンページのうちの対応するホームスクリーンページをタッチ感知ディスプレイ上に表示することに対応する。
(C15)C14に記載の方法の一部の実施形態では、対応するホームスクリーンページが一連のホームスクリーンページのうちの最初のホームスクリーンページである場合、検索アクティブ化ジェスチャは以下、すなわち、(i)電子デバイスのユーザに対して実質的に下方向に移動するジェスチャ、又は(ii)ユーザに対して実質的に左から右の方向にかつ下方向に実質的に直角に移動する連続的なジェスチャ、のうちの1つを含む。
(C16)C15に記載の方法の一部の実施形態では、対応するホームスクリーンページが一連のホームスクリーンページのうちの第2のホームスクリーンページである場合、検索アクティブ化ジェスチャは、電子デバイスのユーザに対して実質的に下方向に移動する連続的なジェスチャを含む。
(C17)C14に記載の方法の一部の実施形態では、少なくとも2つの異なるユーザインタフェースのうちの第2のユーザインタフェースは、アプリケーション切替インタフェースをタッチ感知ディスプレイ上に表示することに対応する。
(C18)C17に記載の方法の一部の実施形態では、検索アクティブ化ジェスチャは、タッチ感知ディスプレイ上の、アプリケーション切替インタフェースの既定の検索アクティブ化部分における接触を含む。
(C19)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは、電子デバイスにC1からC18のいずれか1つに記載の方法を実行させる。
(C20)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知ディスプレイと、C1からC18のいずれか1つに記載の方法を実行するための手段と、を含む。
(C21)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知ディスプレイを有する電子デバイスによって実行されると、実行可能命令は、電子デバイスにC1からC18のいずれか1つに記載の方法を実行させる。
(C22)更なる一態様では、タッチ感知ディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、C1からC18のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。
(C23)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット4301、図43)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット4303、図43)と、処理ユニット(例えば、処理ユニット4305、図43)と、を含む電子デバイスが提供される。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(すなわち、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図43は、電子デバイス4300に一体化されているとしてディスプレイユニット4301及びタッチ感知面ユニット4303を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。処理ユニットは、表示ユニット(例えば、表示ユニット4309、図43)と、検出ユニット(例えば、検出ユニット4307、図43)と、取り出しユニット(例えば、取り出しユニット4311、図43)と、ポピュレーティングユニット(例えば、ポピュレーティングユニット4313、図43)と、スクローリングユニット(例えば、スクローリングユニット4315、図43)と、顕示化ユニット(例えば、顕示化ユニット4317、図43)と、選択ユニット(例えば、選択ユニット4319、図43)と、連絡ユニット(例えば、連絡ユニット4321、図43)と、受信ユニット(例えば、受信ユニット4323、図43)と、実行ユニット(例えば、実行ユニット4325、図43)と、を含む。処理ユニット(又はユニット4307から4225などのその1つ以上の構成要素)は、タッチ感知ディスプレイ上の、電子デバイスのユーザの検索アクティブ化ジェスチャを検出し(例えば、検出ユニット4307及び/又はタッチ感知面ユニット4303によって)、検索アクティブ化ジェスチャを検出したことに応じて、タッチ感知ディスプレイ上に検索インタフェースを表示する(例えば、表示ユニット4309及び/又はディスプレイユニット4301によって)ように構成されており、検索インタフェースは、(i)検索エントリ部分と、(ii)検索エントリ部分において何らかのユーザ入力を受信する前に表示される予測部分と、を含む。予測部分は、(a)複数の以前連絡を取った人物のうちの人物に連絡するための少なくとも1つのアフォーダンスであって、人物は、複数の以前連絡を取った人物の中から、少なくとも一部、現在時刻に基づいて自動的に選択される(例えば、選択ユニット4319によって)、少なくとも1つのアフォーダンスと、(b)電子デバイス上で利用可能な複数のアプリケーションのうちのアプリケーション内で、予測されたアクションを実行するための少なくとも1つのアフォーダンスであって、予測されたアクションは、少なくとも一部、電子デバイスのユーザと関連付けられたアプリケーション利用履歴に基づいて、自動的に選択される(例えば、選択ユニット4319によって)、少なくとも1つのアフォーダンスと、の1つ以上でポピュレートされる。
(C24)C23に記載の電子デバイスの一部の実施形態では、人物は更に、少なくとも一部、電子デバイスに対応する位置データに基づいて選択される(例えば、選択ユニット4319によって)。
(C25)C23又はC24に記載の電子デバイスの一部の実施形態では、アプリケーション利用履歴及び人物に対する連絡先情報が電子デバイスのメモリから取り出される(例えば、取り出しユニット4311によって)。
(C26)C23又はC24に記載の電子デバイスの一部の実施形態では、アプリケーション利用履歴及び人物に対する連絡先情報が電子デバイスからリモートに位置するサーバから取り出される(例えば、取り出しユニット4311によって)。
(C27)C23からC26のいずれか1つに記載の電子デバイスの一部の実施形態では、予測部分は、予測されたアプリケーションを実行するための少なくとも1つのアフォーダンスで更にポピュレートされ(例えば、ポピュレーティングユニット4313によって)、予測されたアプリケーションは、少なくとも一部、アプリケーション利用履歴に基づいて自動的に選択される(例えば、選択ユニット4319によって)。
(C28)C23からC27のいずれか1つに記載の電子デバイスの一部の実施形態では、予測部分は、予測された場所カテゴリの少なくとも1つのアフォーダンスで更にポピュレートされ(例えば、ポピュレーティングユニット4313によって)、予測された場所カテゴリは、少なくとも一部、現在時刻、及び電子デバイスに対応する位置データの1つ以上に基づいて自動的に選択される(例えば、選択ユニット4319によって)。
(C29)C23からC28のいずれか1つに記載の電子デバイスの一部の実施形態では、処理ユニットは、予測部分をスクロールするためのユーザ入力を検出する(例えば、検出ユニット4307及び/又はタッチ感知面ユニット4303によって)ように更に構成されている。予測部分をスクロールするためのユーザ入力を検出したことに応じて、処理ユニットは、予測部分をユーザ入力に従ってスクロールする(例えば、スクローリングユニット4319によって)ように構成されている。スクロールに応じて、処理ユニットは、予測されたニュース記事の少なくとも1つのアフォーダンスを予測部分に顕示化する(例えば、顕示化ユニット4317によって)ように構成されている(例えば、予測されたニュース記事はユーザが関心を持つことが予想されるものである)。
(C30)C7に記載の電子デバイスの一部の実施形態では、予測されたニュース記事は、少なくとも一部、電子デバイスに対応する位置データに基づいて自動的に選択される(例えば、選択ユニット4319によって)。
(C31)C23からC30のいずれか1つに記載の電子デバイスの一部の実施形態では、処理ユニットは、予測されたアクションをアプリケーション内で実行するための少なくとも1つのアフォーダンスの選択を検出する(例えば、検出ユニット4307及び/又はタッチ感知面ユニット4303によって)ように更に構成されている。選択を検出したことに応じて、処理ユニットは、タッチ感知ディスプレイ(例えば、ディスプレイユニット4301)上にアプリケーションを表示し(例えば、表示ユニット4309によって)、予測されたアクションをアプリケーション内で実行する(例えば、実行ユニット4325によって)ように構成されている。
(C32)C25又はC26に記載の電子デバイスの一部の実施形態では、処理ユニットは、人物に連絡するための少なくとも1つのアフォーダンスの選択を検出する(例えば、検出ユニット4307及び/又はタッチ感知面ユニット4303によって)ように更に構成されている。選択を検出したことに応じて、処理ユニットは、人物に対する連絡先情報を用いて人物に連絡する(例えば、連絡ユニット4321によって)ように構成されている。
(C33)C27に記載の電子デバイスの一部の実施形態では、処理ユニットは、予測されたアプリケーションを実行するための少なくとも1つのアフォーダンスの選択を検出する(例えば、検出ユニット4307及び/又はタッチ感知面ユニット4303によって)ように更に構成されている。選択を検出したことに応じて、処理ユニットは、タッチ感知ディスプレイ(例えば、ディスプレイユニット4301によって)上に予測されたアプリケーションを表示する(例えば、表示ユニット4307によって)ように構成されている。
(C34)C28に記載の電子デバイスの一部の実施形態では、処理ユニットは、予測された場所カテゴリの少なくとも1つのアフォーダンスの選択を検出する(例えば、検出ユニット4307及び/又はタッチ感知面ユニット4303によって)ように更に構成されている。選択を検出したことに応じて、処理ユニットは、(i)少なくとも1つの近くの場所に対応するデータを受信し(例えば、受信ユニット4323によって)、(ii)タッチ感知ディスプレイ(例えば、ディスプレイユニット4301)上に少なくとも1つの近くの場所に対応する受信データを表示する(例えば、表示ユニット4307によって)ように構成されている。
(C35)C29に記載の電子デバイスの一部の実施形態では、処理ユニットは、予測されたニュース記事の少なくとも1つのアフォーダンスの選択を検出する(例えば、検出ユニット4307及び/又はタッチ感知面ユニット4303によって)ように更に構成されている。選択を検出したことに応じて、処理ユニットは、タッチ感知ディスプレイ(例えば、ディスプレイユニット4301)上に予測されたニュース記事を表示する(例えば、表示ユニット4307によって)ように構成されている。
(C36)C23からC35のいずれか1つに記載の電子デバイスの一部の実施形態では、検索アクティブ化ジェスチャは少なくとも2つの異なるユーザインタフェースから利用可能であり、少なくとも2つの異なるユーザインタフェースのうちの第1のユーザインタフェースは、一連のホームスクリーンページのうちの対応するホームスクリーンページをタッチ感知ディスプレイ上に表示することに対応する。
(C37)C36に記載の電子デバイスの一部の実施形態では、対応するホームスクリーンページが一連のホームスクリーンページのうちの最初のホームスクリーンページである場合、検索アクティブ化ジェスチャは以下、すなわち、(i)電子デバイスのユーザに対して実質的に下方向に移動するジェスチャ、又は(ii)ユーザに対して実質的に左から右の方向にかつ下方向に実質的に直角に移動する連続的なジェスチャ、のうちの1つを含む。
(C38)C37に記載の電子デバイスの一部の実施形態では、対応するホームスクリーンページが一連のホームスクリーンページのうちの第2のホームスクリーンページである場合、検索アクティブ化ジェスチャは、電子デバイスのユーザに対して実質的に下方向に移動する連続的なジェスチャを含む。
(C39)C36に記載の電子デバイスの一部の実施形態では、少なくとも2つの異なるユーザインタフェースのうちの第2のユーザインタフェースは、アプリケーション切替インタフェースをタッチ感知ディスプレイ上に表示することに対応する。
(C40)C39に記載の電子デバイスの一部の実施形態では、検索アクティブ化ジェスチャは、タッチ感知ディスプレイ上の、アプリケーション切替インタフェースの既定の検索アクティブ化部分における接触を含む。
したがって、ディスプレイと、タッチ感知面と、任意選択的に、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を有する電子デバイスは、アプリケーションに先見的にアクセスし、アプリケーション内で機能を先見的に実行するためのより速くより効率的な方法及びインタフェースが提供され、それにより、このようなデバイスにおける効果、効率及びユーザの満足度が高まる。このような方法及びインタフェースは、アプリケーションにアクセスするための従来の方法及びこの方法に関連する機能を補完してもよく又はそれらに置き換わってもよい。
(D1)一部の実施形態では、方法が、タッチ感知面(例えば、タッチ感知面195、図1D)と、ディスプレイ(例えば、ディスプレイ194、図1D)とを有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、ディスプレイ上に、電子デバイス上で実行されているアプリケーションと関連付けられたコンテンツを表示することを含む。当該方法は、タッチ感知面を介して、検出されると電子デバイスにアプリケーションとは異なる検索モードへと移行させるスワイプジェスチャを検出することを更に含む。当該方法は、また、スワイプジェスチャを検出したことに応じて、検索モードに移行することを含み、検索モードは、ディスプレイ上に表示される検索インタフェースを含む。検索モードに移行することと併せて、当該方法は、少なくとも一部、コンテンツと関連付けられた情報に基づいて、少なくとも1つの提案された検索クエリを判定することを含む。当該方法は、検索インタフェースにおいて何らかのユーザ入力を受信する前に、表示された検索インタフェースを少なくとも1つの提案された検索クエリでポピュレートすることを含む。このようにして、情報を憶えて検索インタフェースに再入力しなければならない代わりに、デバイスがユーザに対し、ユーザが見ているアプリケーションコンテンツに基づく関連の提案を提供し、ユーザは提案のうちの1つを選択する必要があるだけで、何もタイプする必要はない。
(D2)D1に記載の方法の一部の実施形態では、スワイプジェスチャを検出することは、現在表示されているコンテンツの少なくとも一部上のスワイプジェスチャを検出することを含む。
(D3)D1又はD2に記載の方法の一部の実施形態では、当該方法は、スワイプジェスチャを検出する前に、電子デバイスのホームスクリーンを見ることの要求に対応する入力を検出することと、入力を検出したことに応じて、アプリケーションと関連付けられたコンテンツを表示するのを停止し、電子デバイスのホームスクリーンの対応するページを表示することと、を更に含む。一部の実施形態では、対応するページは一連のホームスクリーンページのうちの初期ページであり、スワイプジェスチャは、ホームスクリーンの初期ページがディスプレイ上に表示されている間に検出される。
(D4)D1からD3のいずれか1つに記載の方法の一部の実施形態では、検索インタフェースはアプリケーションに半透明に重なって表示される。
(D5)D1からD4のいずれか1つに記載の方法の一部の実施形態では、当該方法は、コンテンツがテキストコンテンツを含むという判定に従って、少なくとも一部、テキストコンテンツに基づいて、少なくとも1つの提案された検索クエリを判定することを更に含む。
(D6)D5に記載の方法の一部の実施形態では、少なくとも一部、テキストコンテンツに基づいて、少なくとも1つの提案された検索クエリを判定することは、テキストコンテンツを分析して、少なくとも1つの提案された検索クエリを判定するために使用された1つ以上の定義済みのキーワードを検出することを含む。
(D7)D1からD6のいずれか1つに記載の方法の一部の実施形態では、少なくとも1つの提案された検索クエリを判定することは、複数の提案された検索クエリを判定することを含み、検索インタフェースをポピュレートすることは、検索インタフェースを複数の提案された検索クエリでポピュレートすることを含む。
(D8)D1からD7のいずれか1つに記載の方法の一部の実施形態では、当該方法は、タッチ感知面を介して、現在表示されている新たなコンテンツ上の新たなスワイプジェスチャを検出することと、新たなスワイプジェスチャを検出したことに応じて、検索モードに移行することであって、検索モードに移行することは、ディスプレイ上に検索インタフェースを表示することを含む、ことと、検索モードに移行することと併せて、かつ新たなコンテンツがテキストコンテンツを含まないという判定に従って、検索インタフェースを、電子デバイスのユーザによる、選択された過去の検索クエリのセットに基づいて提案された検索クエリでポピュレートすることと、を更に含む。
(D9)D8に記載の方法の一部の実施形態では、アプリケーションとは異なる第2のアプリケーションにより提供される位置情報に基づいて、検索インタフェースは対象地点と共に表示される。
(D10)D8又はD9のいずれか1つに記載の方法の一部の実施形態では、検索インタフェースは1つ以上の提案されたアプリケーションを更に含む。
(D11)D8からD10のいずれか1つに記載の方法の一部の実施形態では、過去の検索クエリのセットは、少なくとも一部、最近の検索クエリの頻度に基づいて選択される。
(D12)D1からD11のいずれか1つに記載の方法の一部の実施形態では、当該方法は、検索モードに移行することと併せて、電子デバイス上で利用可能な1つ以上のアクセシビリティ機能を使用することにより、コンテンツと関連付けられた情報を取得することを更に含む。
(D13)D12に記載の方法の一部の実施形態では、1つ以上のアクセシビリティ機能を使用することは、(i)アプリケーション内に現在表示されているテキストコンテンツに自然言語処理アルゴリズムを適用すること、及び(ii)自然言語処理アルゴリズムから取得したデータを使用してコンテンツを説明する1つ以上のキーワードを判定することであって、少なくとも1つの提案された検索クエリが1つ以上のキーワードに基づいて判定される、こと、により、1つ以上のアクセシビリティ機能を使用してコンテンツと関連付けられた情報を生成することを含む。
(D14)D13に記載の方法の一部の実施形態では、コンテンツを説明する1つ以上のキーワードを判定することは、(i)アプリケーション内に現在表示されている非テキストコンテンツに対応するメタデータを取り出すこと、及び(ii)自然言語処理アルゴリズムから取得したデータに加えて、取り出したメタデータを使用して1つ以上のキーワードを判定することも含む。
(D15)D1からD14のいずれか1つに記載の方法の一部の実施形態では、検索インタフェースは1つ以上のトレンドクエリを更に含む。
(D16)D15に記載の方法の一部の実施形態では、検索インタフェースは、電子デバイスのユーザが関心を持つことが予想される1つ以上のアプリケーションを更に含む。
(D17)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは電子デバイスにD1からD16のいずれか1つに記載の方法を実行させる。
(D18)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、D1からD16のいずれか1つに記載の方法実行するための手段と、を含む。
(D19)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知面及びディスプレイを有する電子デバイスによって実行されると、実行可能命令は電子デバイスにD1からD16のいずれか1つに記載の方法を実行させる。
(D20)更なる一態様では、タッチ感知面及びディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、D1からD16のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。更なる一態様では、タッチ感知面及びディスプレイを含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、D1からD16のいずれか1つに記載の方法を実行するための手段を含む。
(D21)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット4401、図44)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット4403、図44)と、処理ユニット(例えば、処理ユニット4405、図44)と、を含む電子デバイスが提供される。処理ユニットは、タッチ感知面ユニット及びディスプレイユニットと結合されている。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(すなわち、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図44は、電子デバイス4400に一体化されているとしてディスプレイユニット4401及びタッチ感知面ユニット4403を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。一部の実施形態では、タッチ感知面ユニット及びディスプレイユニットは1つのタッチ感知ディスプレイユニット(本明細書では、タッチ感知ディスプレイとも称される)に一体化されている。処理ユニットは、検出ユニット(例えば、検出ユニット4407、図44)と、表示ユニット(例えば、表示ユニット4409、図44)と、取り出しユニット(例えば、取り出しユニット4411、図44)と、検索モード移行ユニット(例えば、検索モード移行ユニット4412、図44)と、ポピュレーティングユニット(例えば、ポピュレーティングユニット4413、図44)と、取得ユニット(例えば、取得ユニット4415、図44)と、判定ユニット(例えば、判定ユニット4417、図44)と、選択ユニット(例えば、選択ユニット4419、図44)と、を含む。処理ユニット(又はユニット1007から1029などのその1つ以上の構成要素)は、ディスプレイユニット(例えば、ディスプレイユニット4407)上に、電子デバイス上で実行されているアプリケーションと関連付けられたコンテンツを表示し(例えば、表示ユニット4407によって)、タッチ感知面ユニット(例えば、タッチ感知面ユニット4403)を介して、検出されると電子デバイスにアプリケーションとは異なる検索モードへと移行させるスワイプジェスチャを検出し(例えば、検出ユニット4407によって)、スワイプジェスチャを検出したことに応じて、検索モードはディスプレイユニット(例えば、ディスプレイユニット4407)上に表示される検索インタフェースを含む、検索モードに移行し(例えば、検索モード移行ユニット4412によって)、検索モードに移行することと併せて、少なくとも一部、コンテンツと関連付けられた情報に基づいて、少なくとも1つの提案された検索クエリを判定し(例えば、判定ユニット4417によって)、検索インタフェースにおいて何らかのユーザ入力を受信する前に、表示された検索インタフェースを少なくとも1つの提案された検索クエリでポピュレートする(例えば、ポピュレーティングユニット4413によって)ように構成されている。
(D22)D21に記載の電子デバイスの一部の実施形態では、スワイプジェスチャを検出することは、現在表示されているコンテンツの少なくとも一部上のスワイプジェスチャを検出すること(例えば、検出ユニット4407によって)を含む。
(D23)D21又はD22に記載の電子デバイスの一部の実施形態では、処理ユニットは、スワイプジェスチャを検出する前に、電子デバイスのホームスクリーンを見ることの要求に対応する入力を検出し(例えば、検出ユニット4407によって)、入力の検出(例えば、検出ユニット4407によって)に応じて、アプリケーションと関連付けられたコンテンツを表示するのを停止し、電子デバイスのホームスクリーンの対応するページを表示する(例えば、表示ユニット4409によって)ように更に構成されており、対応するページは一連のホームスクリーンページのうちの初期ページであり、スワイプジェスチャは、ホームスクリーンの初期ページがディスプレイユニット上に表示されている間に検出される(例えば、検出ユニット4407によって)。
(D24)D21からD23のいずれか1つに記載の電子デバイスの一部の実施形態では、検索インタフェースはアプリケーションに半透明に重なって表示される(例えば、表示ユニット4409及び/又はディスプレイユニット4401)。
(D25)D21からD24のいずれか1つに記載の電子デバイスの一部の実施形態では、処理ユニットは、コンテンツがテキストコンテンツを含むという判定に従って、少なくとも一部、テキストコンテンツに基づいて、少なくとも1つの提案された検索クエリを判定する(例えば、判定ユニット4417によって)ように更に構成されている。
(D26)D25に記載の電子デバイスの一部の実施形態では、少なくとも一部、テキストコンテンツに基づいて、少なくとも1つの提案された検索クエリを判定することは、テキストコンテンツを分析して、少なくとも1つの提案された検索クエリを判定する(例えば、判定ユニット4417によって)ために使用された1つ以上の定義済みのキーワードを検出する(例えば、検出ユニット4407によって)ことを含む。
(D27)D21からD26のいずれか1つに記載の電子デバイスの一部の実施形態では、少なくとも1つの提案された検索クエリを判定することは、複数の提案された検索クエリを判定すること(例えば、判定ユニット4417によって)を含み、検索インタフェースをポピュレートすることは、検索インタフェースを複数の提案された検索クエリでポピュレートすること(例えば、ポピュレーティングユニット4413によって)を含む。
(D28)D21からD27のいずれか1つに記載の電子デバイスの一部の実施形態では、処理ユニットは、タッチ感知面ユニット(例えば、タッチ感知面ユニット4403によって)を介して、現在表示されている新たなコンテンツ上の新たなスワイプジェスチャを検出し(例えば、検出ユニット4407によって)、新たなスワイプジェスチャを検出したことに応じて、検索モードに移行することは、ディスプレイユニット上に検索インタフェースを表示する(例えば、ディスプレイユニット4409によって)ことを含む、検索モードに移行し(例えば、検索モード移行ユニット4412によって)、検索モードに移行することと併せて、かつ新たなコンテンツがテキストコンテンツを含まないという判定に従って、検索インタフェースを、電子デバイスのユーザによる、選択された過去の検索クエリのセットに基づいて提案された検索クエリでポピュレートする(例えば、ポピュレーティングユニット4413によって)ように更に構成されている。
(D29)D28に記載の電子デバイスの一部の実施形態では、アプリケーションとは異なる第2のアプリケーションにより提供される位置情報に基づいて、検索インタフェースに対象地点が表示される(例えば、表示ユニット4409)。
(D30)D28又はD29に記載の電子デバイスの一部の実施形態では、検索インタフェースは1つ以上の提案されたアプリケーションを更に含む。
(D31)D28からD30のいずれか1つに記載の電子デバイスの一部の実施形態では、過去の検索クエリのセットは、少なくとも一部、最近の検索クエリの頻度に基づいて選択される(例えば、選択ユニット4419によって)。
(D32)D21からD31のいずれか1つに記載の電子デバイスの一部の実施形態では、処理ユニットは、検索モードに移行することと併せて、電子デバイス上で利用可能な1つ以上のアクセシビリティ機能を使用することにより、コンテンツと関連付けられた情報を取得する(例えば、取得ユニット4415によって)ように更に構成されている。
(D33)D32に記載の電子デバイスの一部の実施形態では、1つ以上のアクセシビリティ機能を使用することは、(i)アプリケーション内に現在表示されているテキストコンテンツに自然言語処理アルゴリズムを適用すること、及び(ii)自然言語処理アルゴリズムから取得した(例えば、取得ユニット4415によって)データを使用してコンテンツを説明する1つ以上のキーワードを判定すること(例えば、判定ユニット4417によって)であって、少なくとも1つの提案された検索クエリが1つ以上のキーワードに基づいて判定される(例えば、判定ユニット4417によって)こと、により、1つ以上のアクセシビリティ機能を使用してコンテンツと関連付けられた情報を生成することを含む。
(D34)D33に記載の電子デバイスの一部の実施形態では、コンテンツを説明する1つ以上のキーワードを判定することは、(i)アプリケーション内に現在表示されている非テキストコンテンツに対応するメタデータを取り出すこと(例えば、取り出しユニット4411によって)、及び(ii)自然言語処理アルゴリズムから取得したデータに加えて、取り出したメタデータを使用して1つ以上のキーワードを判定すること(例えば、判定ユニット4417によって)、も含む。
(D35)D21からD34のいずれか1つに記載の電子デバイスの一部の実施形態では、検索インタフェースは1つ以上のトレンドクエリを更に含む。
(D36)D35に記載の電子デバイスの一部の実施形態では、検索インタフェースは、電子デバイスのユーザが関心を持つことが予想される1つ以上のアプリケーションを更に含む。
(E1)一部の実施形態では、方法が、タッチ感知面(例えば、タッチ感知面195、図1D)と、ディスプレイ(例えば、ディスプレイ194、図1D)とを有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、タッチ感知面を介して、ユーザインタフェース上のスワイプジェスチャを検出することを含み、スワイプジェスチャは、スワイプジェスチャが検出されると、電子デバイスに検索モードへと移行させる。当該方法は、スワイプジェスチャを検出したことに応じて、検索モードに移行することを更に含み、検索モードに移行することは、検索インタフェース内で何らかのユーザ入力を受信する前に、ユーザインタフェースとは異なる検索インタフェースを、第1のコンテンツアイテムでポピュレートすることを含む。一部の実施形態では、ユーザインタフェースが、アプリケーションを呼び出すための選択可能なアイコンを含むホームスクリーンとは異なるアプリケーションと関連付けられたコンテンツを含むという判定に従って、検索インタフェースを第1のコンテンツアイテムでポピュレートすることは、検索インタフェースを、少なくとも一部、アプリケーションと関連付けられたコンテンツに基づく少なくとも1つの提案された検索クエリでポピュレートすることを含み、ユーザインタフェースがホームスクリーンのページと関連付けられているという判定に従って、検索インタフェースを第1のコンテンツアイテムでポピュレートすることは、検索インタフェースを、電子デバイスの現在位置の閾値距離内の少なくとも1つの対象地点の選択可能な説明を含むアフォーダンスでポピュレートすることを含む。
(E2)E1に記載の方法の一部の実施形態では、検索インタフェースをアフォーダンスでポピュレートすることは、検索インタフェースの検索エントリ部分をタッチ感知面上に表示することを含み、当該方法は、検索エントリ部分における入力を検出することと、検索エントリ部分における入力を検出したことに応じて、アフォーダンスを表示するのを停止し、少なくとも1つの提案された検索クエリを検索インタフェース内に表示することを更に含む。
(E3)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは電子デバイスにE1又はE2に記載の方法を実行させる。
(E4)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、E1又はE2に記載の方法を実行するための手段と、を含む。
(E5)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知面及びディスプレイを有する電子デバイスによって実行されると、実行可能命令は電子デバイスにE1又はE2に記載の方法を実行させる。
(E6)更なる一態様では、タッチ感知面及びディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、E1又はE2に記載の方法に従って表示されるユーザインタフェースを含む。更なる一態様では、タッチ感知面及びディスプレイを含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、E1又はE2に記載の方法を実行するための手段を含む。
(E7)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット4501、図45)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット4503、図45)と、処理ユニット(例えば、処理ユニット4505、図45)と、を含む電子デバイスが提供される。処理ユニットは、タッチ感知面ユニット及びディスプレイユニットと結合されている。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(すなわち、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図45は、電子デバイス4500に一体化されているとしてディスプレイユニット4501及びタッチ感知面ユニット4503を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。一部の実施形態では、タッチ感知面ユニット及びディスプレイユニットは1つのタッチ感知ディスプレイユニット(本明細書では、タッチ感知ディスプレイとも称される)に一体化されている。処理ユニットは、検出ユニット(例えば、検出ユニット4507、図45)と、表示ユニット(例えば、表示ユニット4509、図45)と、ポピュレーティングユニット(例えば、ポピュレーティングユニット4511、図45)と、検索モード移行ユニット(例えば、検索モード移行ユニット4513、図45)と、を含む。処理ユニット(又はユニット4507から4513などのその1つ以上の構成要素)は、タッチ感知面ユニット(例えば、タッチ感知面ユニット4503)を介して、ユーザインタフェース上のスワイプジェスチャであって、スワイプジェスチャは、スワイプジェスチャが検出されると、電子デバイスに検索モードへと移行させる、スワイプジェスチャを検出し(例えば、検出ユニット4507によって)、スワイプジェスチャを検出したことに応じて、検索モードに移行する(例えば、検索モード移行ユニット4513によって)、ように構成されており、検索モードに移行することは、検索インタフェース内で何らかのユーザ入力を受信する前に、ユーザインタフェースとは異なる検索インタフェースを、第1のコンテンツアイテムでポピュレートする(例えば、ポピュレーティングユニット4511によって)含む。一部の実施形態では、ユーザインタフェースが、アプリケーションを呼び出すための選択可能なアイコンを含むホームスクリーンとは異なるアプリケーションと関連付けられたコンテンツを含むという判定に従って、検索インタフェースを第1のコンテンツアイテムでポピュレートすることは、検索インタフェースを、少なくとも一部、アプリケーションと関連付けられたコンテンツに基づく少なくとも1つの提案された検索クエリでポピュレートする(例えば、ポピュレーティングユニット4511によって)ことを含み、ユーザインタフェースがホームスクリーンのページと関連付けられているという判定に従って、検索インタフェースを第1のコンテンツアイテムでポピュレートすることは、検索インタフェースを、電子デバイスの現在位置の閾値距離内の少なくとも1つの対象地点の選択可能な説明を含むアフォーダンスでポピュレートすること(例えば、ポピュレーティングユニット4511によって)を含む。
(E8)E7に記載の電子デバイスの一部の実施形態では、検索インタフェースをアフォーダンスでポピュレートすることは、検索インタフェースの検索エントリ部分を表示すること(例えば、表示ユニット4507及び/又はディスプレイユニット4501によって)を含み、処理ユニットは、検索エントリ部分における入力を検出し(例えば、検出ユニット4507によって)、検索エントリ部分の入力を検出したことに応じて、アフォーダンスを表示する(例えば、表示ユニット4507及び/又はディスプレイユニット4501によって)のを停止し、少なくとも1つの提案された検索クエリを検索インタフェース内に表示する(例えば、表示ユニット4507及び/又はディスプレイユニット4501によって)ように更に構成されている。
(F1)一部の実施形態では、方法が、位置センサと、タッチ感知面(例えば、タッチ感知面195、図1D)と、ディスプレイ(例えば、ディスプレイ194、図1D)と、を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、自動的にかつユーザからの命令なしに、電子デバイスのユーザが地理的位置において停止した車両内にいると判定することと、地理的位置においてユーザが車両から離れたと判定すると、地理的位置を特定するために位置センサから取り出された位置情報が精度基準を満たすかどうかを判定することと、を含む。当該方法は、位置情報が精度基準を満たさないと判定すると、ユーザに対し、地理的位置に関する情報を入力するというプロンプトを提供することを更に含む。当該方法は、また、プロンプトの提供に応じて、ユーザから地理的位置についての情報を受信し、この情報を車両位置情報として記憶することを含む。
(F2)F1に記載の方法の一部の実施形態では、当該方法は、位置情報が精度基準を満たすと判定すると、自動的にかつユーザからの命令なしに、この位置情報を車両位置情報として記憶することを更に含む。
(F3)請求項F2に記載の方法の一部の実施形態では、当該方法は、ユーザが地理的位置に向かっているという判定に従って、車両位置情報を含むユーザインタフェースオブジェクトを表示することを更に含む。
(F4)請求項F3に記載の方法の一部の実施形態では、ユーザインタフェースオブジェクトは、ユーザの現在位置に関する識別子と地理的位置に関する別の識別子とを含む地図オブジェクトである。
(F5)請求項F4に記載の方法の一部の実施形態では、ユーザインタフェースオブジェクトは電子デバイスのロックスクリーン上に表示される。
(F6)請求項F4に記載の方法の一部の実施形態では、ユーザインタフェースオブジェクトは、電子デバイスに検索モードへと移行させるスワイプジェスチャに応じて表示される。
(F7)請求項F6に記載の方法の一部の実施形態では、ユーザが地理的位置に向かっているかどうかを判定することは、スワイプジェスチャの受信に応じて実行される。
(F8)F1からF7のいずれか1つに記載の方法の一部の実施形態では、プロンプトは、電子デバイスを介して利用可能なバーチャルアシスタントによって提供される音声プロンプトであり、ユーザから情報を受信することは、ユーザから、地理的位置を特定する口頭での説明を受信することを含み、ユーザインタフェースオブジェクトを表示することは、選択されると、デバイスに口頭での説明を再生させる選択可能なアフォーダンスを表示することを含む。
(F9)F1からF7のいずれか1つに記載の方法の一部の実施形態では、プロンプトは電子デバイスのディスプレイ上に表示され、ユーザから情報を受信することは、ユーザから、地理的位置を特定するテキストでの説明を受信することを含み、ユーザインタフェースオブジェクトを表示することは、ユーザからのテキストでの説明を表示することを含む。
(F10)F1からF7のいずれか1つに記載の方法の一部の実施形態では、ユーザが地理的位置に向かっているかどうかを判定することは、位置センサから受信した新たな位置情報を使用して、電子デバイスが地理的位置に向かって移動していると判定することを含む。
(F11)F10に記載の方法の一部の実施形態では、ユーザが地理的位置に向かっているかどうかを判定することは、(i)電子デバイスが異なる地理的位置に閾値時間を超えて留まっていると判定すること、及び(ii)新たな位置情報が、電子デバイスが異なる地理的位置から離れ、地理的位置の方に向かっていることを示していると判定すること、を含む。
(F12)F1からF11のいずれか1つに記載の方法の一部の実施形態では、地理的位置において停止した車両内にユーザがいると判定することは、(i)電子デバイスが閾値速度超で移動していると判定することによりユーザが車両内にいると判定することと、(ii)(a)電子デバイスが閾値時間を超えて地理的位置に留まっていると判定すること、(b)電子デバイスと車両との間の通信リンクが切断されたと判定すること、及び(c)地理的位置が駐車場内の位置に対応すると判定すること、のうちの1つ以上によって、車両が地理的位置において停止したと判定することを含む。
(F13)請求項F12に記載の方法の一部の実施形態では、車両が地理的位置において停止したと判定することは、電子デバイスが閾値時間を超えて地理的位置に留まっていると判定することを含む。
(F14)F12又はF13に記載の方法の一部の実施形態では、車両が地理的位置において停止したと判定することは、電子デバイスと車両との間の通信リンクが切断されたと判定することを含む。
(F15)F12からF14のいずれか1つに記載の方法の一部の実施形態では、車両が地理的位置において停止したと判定することは、地理的位置が駐車場内の位置に対応すると判定することを含む。
(F16)F1からF15のいずれか1つに記載の方法の一部の実施形態では、精度基準は、位置情報と関連付けられたGPS読取値の精度が精度の閾値レベルを超える場合に満たされる基準を含む。
(F17)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、位置センサと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは、電子デバイスにF1からF16のいずれか1つに記載の方法を実行させる。
(F18)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、位置センサと、F1からF16のいずれか1つに記載の方法を実行するための手段と、を含む。
(F19)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令が、タッチ感知面と、ディスプレイと、位置センサと、を有する電子デバイスによって実行されると、実行可能命令は、電子デバイスにF1からF16のいずれか1つに記載の方法を実行させる。
(F20)更なる一態様では、タッチ感知面と、ディスプレイと、位置センサと、を有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、F1からF16のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。更なる一態様では、タッチ感知面と、ディスプレイと、位置センサと、を含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、F1からF16のいずれか1つに記載の方法を実行するための手段を含む。
(F21)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット4601、図46)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット4603、図46)と、位置センサユニット(例えば、位置センサユニット4607、図46)と、処理ユニット(例えば、処理ユニット4605、図46)と、を含む電子デバイスが提供される。処理ユニットは、タッチ感知面ユニット、ディスプレイユニット、及び位置センサユニットと結合されている。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(すなわち、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図46は、電子デバイス4600に一体化されているとしてディスプレイユニット4601及びタッチ感知面ユニット4603を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。一部の実施形態では、タッチ感知面ユニット及びディスプレイユニットは1つのタッチ感知ディスプレイユニット(本明細書では、タッチ感知ディスプレイとも称される)に一体化されている。処理ユニットは、表示ユニット(例えば、表示ユニット4609、図46)と、取り出しユニット(例えば、取り出しユニット4611、図46)と、判定ユニット(例えば、判定ユニット4613、図46)と、記憶ユニット(例えば、記憶ユニット4615、図46)と、特定ユニット(例えば、特定ユニット4617、図46)と、選択ユニット(例えば、選択ユニット4619、図46)と、受信ユニット(例えば、受信ユニット4621、図46)と、提供ユニット(例えば、提供ユニット4623、図46)と、再生ユニット(例えば、再生ユニット4625、図46)と、を含む。処理ユニット(又はユニット4607から4625などのその1つ以上の構成要素)は、自動的にかつユーザからの命令なしに、電子デバイスのユーザが地理的位置において停止した車両内にいると判定し(例えば、判定ユニット4613によって)、地理的位置においてユーザが車両から離れたと判定すると、地理的位置を特定する(例えば、特定ユニット4617によって)ために位置センサユニット(例えば、位置センサユニット4607)から取り出された(例えば、取り出しユニット4611によって)位置情報が精度基準を満たすかどうかを判定し(例えば、判定ユニット4613によって)、位置情報が精度基準を満たさないと判定する(例えば、判定ユニット4613によって)と、ユーザに対し、地理的位置に関する情報を入力するというプロンプトを提供し(例えば、提供ユニット4623によって)、プロンプトの提供に応じて、ユーザから地理的位置についての情報を受信し(例えば、受信ユニット4621によって)、この情報を車両位置情報として記憶する(例えば、記憶ユニット4615によって)ように構成されている。
(F22)F21に記載の電子デバイスの一部の実施形態では、処理ユニットは、位置情報が精度基準を満たすと判定すると、自動的にかつユーザからの命令なしに、この位置情報を車両位置情報として記憶する(例えば、記憶ユニット4615によって)ように更に構成されている。
(F23)F22に記載の電子デバイスの一部の実施形態では、処理ユニットは、ユーザが地理的位置に向かっているという判定に従って、車両位置情報を含むユーザインタフェースオブジェクトを表示する(例えば、ディスプレイユニット4601と併せて表示ユニット4609によって)ように更に構成されている。
(F24)F23に記載の電子デバイスの一部の実施形態では、ユーザインタフェースオブジェクトは、ユーザの現在位置に関する識別子と地理的位置に関する別の識別子とを含む地図オブジェクトである。
(F25)F24に記載の電子デバイスの一部の実施形態では、ユーザインタフェースオブジェクトは電子デバイスのロックスクリーン上に表示される(例えば、ディスプレイユニット4601と併せて表示ユニット4609によって)。
(F26)F24に記載の電子デバイスの一部の実施形態では、ユーザインタフェースオブジェクトは、電子デバイスに検索モードへと移行させるスワイプジェスチャに応じて表示される(例えば、ディスプレイユニット4601と併せて表示ユニット4609によって)。
(F27)F26に記載の電子デバイスの一部の実施形態では、ユーザが地理的位置に向かっているかどうかを判定することは、スワイプジェスチャの受信に応じて実行される。
(F28)F21からF27のいずれか1つに記載の電子デバイスの一部の実施形態では、プロンプトは、電子デバイスを介して利用可能なバーチャルアシスタントによって提供される音声プロンプトであり、ユーザから情報を受信することは、ユーザから、地理的位置を特定する口頭での説明を受信すること(例えば、受信ユニット4621によって)を含み、ユーザインタフェースオブジェクトを表示することは、選択されると(例えば、選択ユニット4619によって)、デバイスに口頭での説明を再生させる(例えば、再生ユニット4625によって)選択可能なアフォーダンスを表示する(例えば、ディスプレイユニット4601と併せて表示ユニット4609によって)ことを含む。
(F29)F21からF27のいずれか1つに記載の電子デバイスの一部の実施形態では、プロンプトは電子デバイスのディスプレイ上に表示され(例えば、ディスプレイユニット4601と併せて表示ユニット4609によって)、ユーザから情報を受信することは、ユーザから、地理的位置を特定するテキストでの説明を受信すること(例えば、受信ユニット4621によって)を含み、ユーザインタフェースオブジェクトを表示することは、ユーザからのテキストでの説明を表示することを含む。
(F30)F21からF27のいずれか1つに記載の電子デバイスの一部の実施形態では、ユーザが地理的位置に向かっているかどうかを判定することは、位置センサユニット(例えば、位置センサユニット4607)から受信した(例えば、受信ユニット4621によって)新たな位置情報を使用して、電子デバイスが地理的位置に向かって移動していると判定する(例えば、判定ユニット4613によって)ことを含む。
(F31)F30に記載の電子デバイスの一部の実施形態では、ユーザが地理的位置に向かっているかどうかを判定することは、(i)電子デバイスが異なる地理的位置に閾値時間を超えて留まっていると判定すること(例えば、判定ユニット4613によって)、及び(ii)新たな位置情報が、電子デバイスが異なる地理的位置から離れ、地理的位置の方に向かっていることを示していると判定すること(例えば、判定ユニット4613によって)を含む。
(F32)F21からF31のいずれか1つに記載の電子デバイスの一部の実施形態では、地理的位置において停止した車両内にユーザがいると判定することは、(i)電子デバイスが閾値速度超で移動していると判定すること(例えば、判定ユニット4613によって)によりユーザが車両内にいると判定することと、(ii)(a)電子デバイスが閾値時間を超えて地理的位置に留まっていると判定すること(例えば、判定ユニット4613によって)、(b)電子デバイスと車両との間の通信リンクが切断されたと判定すること(例えば、判定ユニット4613によって)、及び(c)地理的位置が駐車場内の位置に対応すると判定すること(例えば、判定ユニット4613によって)、のうちの1つ以上によって、車両が地理的位置において停止したと判定することと、を含む。
(F33)F32に記載の電子デバイスの一部の実施形態では、車両が地理的位置において停止したと判定することは、電子デバイスが閾値時間を超えて地理的位置に留まっていると判定すること(例えば、判定ユニット4613によって)を含む。
(F34)F32又はF33に記載の電子デバイスの一部の実施形態では、車両が地理的位置において停止したと判定することは、電子デバイスと車両との間の通信リンクが切断されたと判定すること(例えば、判定ユニット4613によって)を含む。
(F35)F32からF34のいずれか1つに記載の電子デバイスの一部の実施形態では、車両が地理的位置において停止したと判定することは、地理的位置が駐車場内の位置に対応すると判定すること(例えば、判定ユニット4613によって)を含む。
(F36)F21からF35のいずれか1つに記載の電子デバイスの一部の実施形態では、精度基準は、位置情報と関連付けられたGPS読取値の精度が精度の閾値レベルを超える場合に満たされる基準を含む。
(G1)一部の実施形態では、方法が、位置センサと、タッチ感知面(例えば、タッチ感知面195、図1D)と、ディスプレイ(例えば、ディスプレイ194、図1D)と、を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、位置センサを使用して、電子デバイスの地理的位置を監視することを含む。当該方法は、監視された地理的位置に基づいて、電子デバイスが既定の種類の対象地点の閾値距離内にあると判定することを更に含む。当該方法は、また、電子デバイスが対象地点の閾値距離内にあると判定したことに従って、対象地点において現在人気のある少なくとも1つのアクティビティを特定し、対象地点に関する情報を取り出すことを含み、対象地点において現在人気のある少なくとも1つのアクティビティに関する情報を取り出すことを含む。当該方法は、タッチ感知面を介して、検出されると電子デバイスに検索モードへと移行させる第1の入力を検出することと、第1の入力を検出したことに応じて、検索モードに移行することであって、検索モードに移行することは、検索インタフェースにおいて何らかのユーザ入力を受信する前に、ディスプレイを介して、(i)少なくとも1つのアクティビティに関する情報と、(ii)少なくとも1つのアクティビティが対象地点において現在人気があると特定されたというインジケーションと、を含むアフォーダンスを提示することを含む、ことと、を更に含む。
(G2)請求項G1に記載の方法の一部の実施形態では、当該方法は、第2の入力を検出することと、第2の入力を検出したことに応じて、対象地点とは異なる第2の対象地点における現在のアクティビティに関する利用可能な情報を含むようにアフォーダンスを更新することと、を含み、対象地点は電子デバイスの閾値距離の範囲内である。
(G3)G1又はG2に記載の方法の一部の実施形態では、アフォーダンスは対象地点の選択可能なカテゴリを更に含み、当該方法は、対応する選択可能なカテゴリの選択を検出することと、選択を検出したことに応じて、デバイスの第2の閾値距離の範囲内に位置する追加の対象地点に関する情報を含むようにアフォーダンスを更新することと、を更に含む。
(G4)G1からG3のいずれか1つに記載の方法の一部の実施形態では、対象地点は遊園地であり、取り出される情報は、遊園地の乗り物の現在の待ち時間を含む。
(G5)請求項G4に記載の方法の一部の実施形態では、取り出される情報は、電子デバイスの既定の距離の範囲内に位置する乗り物の待ち時間に関する情報を含む。
(G6)G1からG3のいずれか1つに記載の方法の一部の実施形態では、対象地点はレストランであり、取り出される情報は、レストランの人気のメニュー項目に関する情報を含む。
(G7)請求項G6に記載の方法の一部の実施形態では、取り出される情報は、電子デバイスのユーザと関連付けられたソーシャルネットワークから取り出される。
(G8)G1からG3のいずれか1つに記載の方法の一部の実施形態では、対象地点は映画館であり、取り出される情報は、映画館の上映時間に関する情報を含む。
(G9)請求項G8に記載の方法の一部の実施形態では、取り出される情報は、電子デバイスのユーザと関連付けられたソーシャルネットワークから取り出される。
(G10)G1からG9のいずれか1つに記載の方法の一部の実施形態では、電子デバイスのロック解除後、アフォーダンスは、電子デバイスのホームスクリーンの初期ページ上における実質的に水平方向のスワイプに応じて利用可能である。
(G11)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、位置センサと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは、電子デバイスにG1からG10のいずれか1つに記載の方法を実行させる。
(G12)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、位置センサと、G1からG10のいずれか1つに記載の方法を実行するための手段と、を含む。
(G13)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令が、タッチ感知面と、ディスプレイと、位置センサと、を有する電子デバイスによって実行されると、実行可能命令は、電子デバイスにG1からG10のいずれか1つに記載の方法を実行させる。
(G14)更なる一態様では、タッチ感知面と、ディスプレイと、位置センサと、を有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、G1からG10のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。更なる一態様では、タッチ感知面と、ディスプレイと、位置センサと、を含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、G1からG10のいずれか1つに記載の方法を実行するための手段を含む。
(G15)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット4701、図47)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット4703、図47)と、位置センサユニット4707と、処理ユニット(例えば、処理ユニット4705、図47)と、を含む電子デバイスが提供される。処理ユニットは、タッチ感知面ユニット、ディスプレイユニット、及び位置センサユニットと結合されている。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(すなわち、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図47は、電子デバイス4700に一体化されているとしてディスプレイユニット4701及びタッチ感知面ユニット4703を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。一部の実施形態では、タッチ感知面ユニット及びディスプレイユニットは1つのタッチ感知ディスプレイユニット(本明細書では、タッチ感知ディスプレイとも称される)に一体化されている。処理ユニットは、検出ユニット(例えば、検出ユニット4709、図47)と、表示ユニット(例えば、表示ユニット4711、図47)と、取り出しユニット(例えば、取り出しユニット4713、図47)と、判定ユニット(例えば、判定ユニット4715、図47)と、特定ユニット(例えば、特定ユニット4717、図47)と、ロック解除ユニット(例えば、ロック解除ユニット4719、図47)と、検索モード移行ユニット(例えば、検索モード移行ユニット4721、図47)と、を含む。処理ユニット(又はユニット4709から4721などのその1つ以上の構成要素)は、電子デバイスのユーザから何ら命令を受信することなく、位置センサユニット(例えば、位置センサユニット4707)を使用して、電子デバイスの地理的位置を監視し、監視された地理的位置に基づいて、電子デバイスが既定の種類の対象地点の閾値距離内にあると判定し(例えば、判定ユニット4715によって)、電子デバイスが対象地点の閾値距離内にあると判定したことに従って、対象地点において現在人気のある少なくとも1つのアクティビティを特定し(例えば、特定ユニット4717によって)、対象地点において現在人気のある少なくとも1つのアクティビティに関する情報を取り出すことを含む、対象地点に関する情報を取り出し(例えば、取り出しユニット4713によって)、タッチ感知面ユニット(例えば、タッチ感知面ユニット4703)を介して、検出されると電子デバイスに検索モードへと移行させる第1の入力を検出し(例えば、検出ユニット4709によって)、第1の入力を検出したことに応じて、検索モードに移行する(例えば、検索モード移行ユニット4721によって)ように構成されており、検索モードに移行することは、検索インタフェースにおいて何らかのユーザ入力を受信する前に、ディスプレイユニット(例えば、ディスプレイユニット4701)を介して、(i)少なくとも1つのアクティビティに関する情報と、(ii)少なくとも1つのアクティビティが対象地点において現在人気があると特定されたというインジケーションと、を含むアフォーダンスを提示すること(例えば、表示ユニット4711によって)を含む。
(G16)G15に記載の電子デバイスの一部の実施形態では、処理ユニットは、第2の入力を検出し(例えば、検出ユニット4709によって)、第2の入力を検出したことに応じて、対象地点とは異なる第2の対象地点における現在のアクティビティに関する利用可能な情報を含むようにアフォーダンスを更新する(例えば、表示ユニット4711によって)ように更に構成されており、対象地点は電子デバイスの閾値距離の範囲内である。
(G17)G15又はG16に記載の電子デバイスの一部の実施形態では、アフォーダンスは対象地点の選択可能なカテゴリを更に含み、処理ユニットは、対応する選択可能なカテゴリの選択を検出し(例えば、検出ユニット4709によって)、選択を検出したことに応じて、デバイスの第2の閾値距離の範囲内に位置する追加の対象地点に関する情報を含むようにアフォーダンスを更新する(例えば、表示ユニット4711によって)ように更に構成されている。
(G18)G15からG17のいずれか1つに記載の電子デバイスの一部の実施形態では、対象地点は遊園地であり、取り出される情報は、遊園地の乗り物の現在の待ち時間を含む。
(G19)G18に記載の電子デバイスの一部の実施形態では、取り出される情報は、電子デバイスの既定の距離の範囲内に位置する乗り物の待ち時間に関する情報を含む。
(G20)G15からG17のいずれか1つに記載の電子デバイスの一部の実施形態では、対象地点はレストランであり、取り出される情報は、レストランの人気のメニュー項目に関する情報を含む。
(G21)G20に記載の電子デバイスの一部の実施形態では、取り出される情報は、電子デバイスのユーザと関連付けられたソーシャルネットワークから取り出される。
(G22)G15からG17のいずれか1つに記載の電子デバイスの一部の実施形態では、対象地点は映画館であり、取り出される情報は、映画館の上映時間に関する情報を含む。
(G23)G22に記載の電子デバイスの一部の実施形態では、取り出される情報は、電子デバイスのユーザと関連付けられたソーシャルネットワークから取り出される。
(G24)G15からG23のいずれか1つに記載の電子デバイスの一部の実施形態では、電子デバイスのロック解除(例えば、ロック解除ユニット4719によって)後、アフォーダンスは、電子デバイスのホームスクリーンの初期ページ上における実質的に水平方向のスワイプに応じて利用可能である。
(H1)一部の実施形態では、方法が、タッチ感知面及びディスプレイ(タッチスクリーン112、図1Cにおいて示されるように、一部の実施形態では、タッチ感知面とディスプレイとは一体化されている)を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、音声通信の少なくとも一部(例えば、10秒以下の生通話又は録音済みボイスメール)を受信することを含み、音声通信の一部は、電子デバイスのユーザとは異なるリモートデバイスのリモートユーザによって提供されるスピーチを含む。当該方法は、また、コンテンツアイテムを、少なくとも一部、リモートデバイスのリモートユーザによって提供されるスピーチに基づいて抽出することを含む。当該方法は、コンテンツアイテムが電子デバイス上で現在利用可能かどうかを判定することを更に含む。当該方法は、コンテンツアイテムが電子デバイス上で現在利用可能でないという判定に従って、(i)コンテンツアイテムと関連付けられたアプリケーションを特定することと、(ii)コンテンツアイテムの選択可能な説明をディスプレイ上に表示することと、を含む。当該方法は、選択可能な説明の選択を検出したことに応じて、コンテンツアイテムを、特定されたアプリケーションで提示するために記憶すること(例えば、コンテンツアイテムを、特定されたアプリケーションによる提示のために利用できるように記憶すること)を含む。このようにして、ユーザは、音声通信で言及された又は話されたコンテンツアイテムを記憶することができ、話された」詳細の全てを憶え、後にこれら詳細を入力して適切なコンテンツアイテムを作成する必要はない。その代わり、電子デバイスが、種々の対応するコンテンツアイテムを説明するスピーチに基づいてコンテンツアイテムを検出及び抽出し、その後、ユーザが選択できるコンテンツアイテムの選択可能な説明を提供し、対応するコンテンツアイテムを電子デバイスに記憶することができる。
(H2)H1に記載の方法の一部の実施形態では、コンテンツアイテムは新たなイベントである。
(H3)H1に記載の方法の一部の実施形態では、コンテンツアイテムは、電子デバイス上のカレンダアプリケーションと現在関連付けられているイベントの新たなイベント詳細である。
(H4)H1に記載の方法の一部の実施形態では、コンテンツアイテムは新たな連絡先である。
(H5)H1に記載の方法の一部の実施形態では、コンテンツアイテムは、電子デバイス上の電話アプリケーションと関連付けられた既存の連絡先の新たな連絡先情報である。
(H6)H1からH5のいずれか1つに記載の方法の一部の実施形態では、音声通信は生通話である。
(H7)H1からH5のいずれか1つに記載の方法の一部の実施形態では、音声通信は生FaceTime通話である。
(H8)H1からH5のいずれか1つに記載の方法の一部の実施形態では、音声通信は録音済みボイスメールである。
(H9)H1からH8のいずれか1つに記載の方法の一部の実施形態では、選択可能な説明を表示することは、ユーザインタフェース内に、電話アプリケーションを使用して行った最近の通話を含む選択可能な説明を表示することを含む。このようにして、ユーザは、最近の通話を含む、ユーザインタフェースから直接、抽出されたコンテンツアイテム(例えば、対応する音声通信の最中に抽出されたもの)に簡単かつ便利にアクセスすることができる。
(H10)H9に記載の方法の一部の実施形態では、選択可能な説明は、コンテンツアイテムが音声通信と関連付けられているというインジケーションと共に表示される。
(H11)H9に記載の方法の一部の実施形態では、選択を検出することは、最近の通話を含むユーザインタフェースが表示されている間に選択を受信することを含む。
(H12)H1からH11のいずれか1つに記載の方法の一部の実施形態では、当該方法は、コンテンツアイテムの選択可能な説明を表示することと併せて、電子デバイスのユーザに対し、コンテンツアイテムが検出されたというフィードバックを提供すること(例えば、電子デバイスにより発生する触覚フィードバック又は第2のデバイス上のユーザインタフェースオブジェクトの提示。これにより、ユーザは通話中に自身の耳から電話を離す必要はない)を更に含む。このようにして、音声通信中、コンテンツアイテムが検出された/抽出されたという簡潔なインジケーションがユーザに提供され、その後、ユーザはコンテンツアイテムを記憶するかどうかを決定することができる。
(H13)H12に記載の方法の一部の実施形態では、フィードバックを提供することは、電子デバイスの近傍にある異なる電子デバイス(例えば、ラップトップコンピュータ、テレビモニタ、スマートウォッチ等)にコンテンツアイテムの検出に関する情報を送信することを含む。このようにして、ユーザは音声通信を中断する必要はなく、それでも、検出された/抽出されたコンテンツアイテムに関する詳細を異なるデバイスで閲覧することができる。
(H14)H1からH13のいずれか1つに記載の方法の一部の実施形態では、当該方法は、音声通信が第1の物理的位置に関する情報(例えば、通話中に述べられた住所又は通話中に話されたレストラン名等。更なる詳細は以下に記載する)を含むと判定することを更に含む。当該方法は、また、入力を検出することと、入力を検出したことに応じて位置データを受け付けることができるアプリケーションを開き、このアプリケーションを、第1の物理的位置に関する情報でポピュレートすることと、を含む。このようにして、電子デバイスは、イベント及び連絡先情報を検出し、抽出することに加えて、音声通信で話された位置情報を抽出し、この位置情報をユーザに適切なアプリケーションで提供することができる(例えば、このため、通話で話された特定の位置詳細、特にユーザになじみのない可能性のある新たな詳細を憶える負担をユーザにかけず、デバイスがこれらの位置詳細を抽出し、これらをユーザによる使用のために表示する)。
(H15)H14に記載の方法の一部の実施形態では、アプリケーションは地図アプリケーションであり、地図アプリケーションを、第1の物理的位置に関する情報でポピュレートすることは、地図アプリケーション内に表示される地図を、第1の物理的位置に対応する位置識別子でポピュレートすることを含む。このようにして、ユーザは、新たに抽出された位置詳細を簡単に使用し、新たな目的地へと移動することができ、特定の位置がどれほど離れているかを閲覧することができると共に、地図アプリケーションによって提供される他の機能を簡単に使用することができる。
(H16)H1からH13のいずれか1つに記載の方法の一部の実施形態では、当該方法は、音声通信が第1の物理的位置に関する情報を含むと判定することを更に含む。当該方法は、また、入力(例えば、スワイプジェスチャなどの検索アクティブ化ジェスチャ。以下詳細に記載する)を検出することと、入力を検出したことに応じて、検索インタフェースを、第1の物理的位置に関する情報でポピュレートすることと、を含む。このようにして、位置情報をユーザに対し、特定のアプリケーションで使用するために提供することに加えて(又は、その代わりとして)、電子デバイスはまた、位置情報を、検索インタフェースで使用するために(例えば、関連対象地点を検索するために、又は電話番号、メニュー等などの第1の物理的位置に関する追加の詳細を検索するために)提供することができる。
(H17)H1からH16のいずれか1つに記載の方法の一部の実施形態では、コンテンツアイテムを抽出することは、既定の種類のコンテンツの検出のために音声通信の一部を分析することを含み、分析は、電子デバイスと通信しているオーディオシステムを介して音声通信を出力している間に実行される(例えば、音声通信は、音声通信が電子デバイスのユーザに出力されている間にリアルタイムで分析される)。
(H18)H17に記載の方法の一部の実施形態では、音声通信を分析することは、(i)リモートデバイスのリモートユーザによって提供されるスピーチをテキストに変換することと、(ii)テキストが1つ以上の定義済みのキーワードを含むかどうかを判定するためにテキストに自然言語処理アルゴリズムを適用することと、(iii)テキストが対応する定義済みのキーワードを含むという判定に従って、音声通信が、コンテンツアイテムを説明するスピーチを含むと判定することと、を含む。
(H19)H1からH18のいずれか1つに記載の方法の一部の実施形態では、音声通信の少なくとも一部を受信することは、電子デバイスのユーザから、音声通信の一部が分析されるべきであるというインジケーションを受信することを含む。
(H20)H19に記載の方法の一部の実施形態では、インジケーションは、ハードウェアボタンの選択に対応する(例えば、ユーザは、音声通信がオーディオシステムにより出力されている間にハードウェアボタンを選択し、既定の秒数(例えば、前の10、15、又は20秒)の音声通信が分析されるべきであるということを示す)。一部の実施形態では、ボタンはまた、ユーザの選択用に電子デバイスのディスプレイ上に提示されるボタン(例えば、音声通信中に表示される、「ここをタップしてこの音声通信の新たなコンテンツを分析する」というボタン)であってもよい。
(H21)H19に記載の方法の一部の実施形態では、インジケーションは、電子デバイスのユーザからの、「ヘイSiri(hey Siri)」という言葉を含むコマンドに対応する。したがって、ユーザは、電子デバイスに対し、音声通信の一部の分析を開始し、音声通信で話されたコンテンツアイテム(イベント、連絡先情報、及び物理的位置に関する情報など)を検出するように簡単に指示することができる。
(H22)H1からH21のいずれか1つに記載の方法の一部の実施形態では、当該方法は、音声通信の第2部分を受信することを更に含む。第2部分は、リモートデバイスのリモートユーザによって提供されるスピーチと、電子デバイスのユーザによって提供されるスピーチと、を含む(例えば、音声通信は生通話であり、第2部分はユーザとリモートユーザとの間の会話を含む)。当該方法は、また、第2のコンテンツアイテムを、少なくとも一部、リモートデバイスのリモートユーザによって提供されるスピーチ、及び電子デバイスのユーザによって提供されるスピーチに基づいて抽出することを含む。当該方法は、第2のコンテンツアイテムが電子デバイス上で現在利用可能でないという判定に従って、(i)第2のコンテンツアイテムと関連付けられた第2のアプリケーションを特定することと、(ii)第2のコンテンツアイテムの第2の選択可能な説明をディスプレイ上に表示することと、を含む。当該方法は、第2の選択可能な説明の選択を検出したことに応じて、第2のコンテンツアイテムを、特定された第2のアプリケーションで提示するために記憶することを含む。
(H23)H22に記載の方法の一部の実施形態では、電話アプリケーションを使用して行った最近の通話を含む、選択可能な説明及び第2の選択可能な説明がユーザインタフェース内に表示される。このようにして、ユーザに対し、いくつかの音声通信(例えば、いくつかの通話、ボイスメール、又は通話及びボイスメール)で検出されたコンテンツアイテムを便利に含む1つのインタフェースが提供される。
(H24)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは、電子デバイスにH1からH23のいずれか1つに記載の方法を実行させる。
(H25)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、H1からH23のいずれか1つに記載の方法を実行するための手段と、を含む。
(H26)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知面及びディスプレイを有する電子デバイスによって実行されると、実行可能命令は、電子デバイスにH1からH23のいずれか1つに記載の方法を実行させる。
(H27)更なる一態様では、タッチ感知面及びディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、H1からH23のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。
(H28)更なる一態様では、タッチ感知面及びディスプレイを含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、H1からH23のいずれか1つに記載の方法を実行するための手段を含む。
(H29)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット4801、図48)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット4803、図48)と、処理ユニット(例えば、処理ユニット4805、図48)と、を含む電子デバイスが提供される。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(例えば、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図48は、電子デバイス4800に一体化されているとしてディスプレイユニット4801及びタッチ感知面ユニット4803を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。処理ユニットは、音声通信受信ユニット(例えば、音声通信受信ユニット4807、図48)と、コンテンツアイテム抽出ユニット(例えば、コンテンツアイテム抽出ユニット4809、図48)と、利用可能性判定ユニット(例えば、利用可能性判定ユニット4811、図48)と、アプリケーション特定ユニット(例えば、アプリケーション特定ユニット4813、図48)と、表示ユニット(例えば、表示ユニット4815、図48)と、コンテンツアイテム記憶ユニット(例えば、コンテンツアイテム記憶ユニット4817、図48)と、フィードバック提供ユニット(例えば、フィードバック提供ユニット4819、図48)と、入力検出ユニット(例えば、入力検出ユニット4821、図48)と、アプリケーションオープンユニット(例えば、アプリケーションオープンユニット4823、図48)と、ポピュレーティングユニット(例えば、ポピュレーティングユニット4825、図48)と、音声通信分析ユニット(例えば、音声通信分析ユニット4827、図48)と、を含む。処理ユニット(又はユニット4807から4827などのその1つ以上の構成要素)は、音声通信の少なくとも一部を受信する(例えば、音声通信受信ユニット4807によって)ように構成されており、音声通信の一部は、電子デバイスのユーザとは異なるリモートデバイスのリモートユーザによって提供されるスピーチを含む。処理ユニットは、コンテンツアイテムを、少なくとも一部、リモートデバイスのリモートユーザによって提供されるスピーチに基づいて抽出し(例えば、コンテンツアイテム抽出ユニット4809によって)、このコンテンツアイテムが電子デバイス上で現在利用可能であるかどうかを判定する(例えば、利用可能性判定ユニット4811によって)ように更に構成されている。コンテンツアイテムが電子デバイス上で現在利用可能でないという判定に従って、処理ユニットは、(i)コンテンツアイテムと関連付けられたアプリケーションを特定し(例えば、アプリケーション特定ユニット4813によって)、(ii)コンテンツアイテムの選択可能な説明をディスプレイ上に表示させる(例えば、表示ユニット4815及び/又はディスプレイユニット4801によって)ように更に構成されている。選択可能な説明の選択の検出(例えば、入力検出ユニット4821及び/又はタッチ感知面ユニット4803によって)に応じて、処理ユニットは、コンテンツアイテムを、特定されたアプリケーションで提示するために記憶する(例えば、コンテンツアイテム記憶ユニット4817によって)ように構成されている。
(H30)H29に記載の電子デバイスの一部の実施形態では、処理ユニット(又はユニット4907から4927などのその1つ以上の構成要素)は、H2からH23のいずれか1つに記載の方法を実行するように更に構成されている。
(I1)一部の実施形態では、方法が、タッチ感知面及びディスプレイ(一部の実施形態では、タッチスクリーン112、図1Cにおいて示されるように、タッチ感知面とディスプレイとは一体化されている)を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、音声通信の少なくとも一部を受信することを含み、音声通信の一部(例えば、生通話、録音済みボイスメール)は、電子デバイスのユーザとは異なるリモートデバイスのリモートユーザによって提供されるスピーチを含む。当該方法は、また、音声通信が物理的位置を特定するスピーチを含むと判定することを含む。当該方法は、音声通信が物理的位置を特定するスピーチを含むと判定したことに応じて、物理的位置に関する情報が検出されたというインジケーションを提供すること(例えば、ユーザに触覚フィードバックを提供すること、ユーザインタフェースオブジェクトを物理的位置に関する情報と共に表示すること、又は物理的位置に関する情報を近くのデバイスに送信し、その近くのデバイスで表示させること)を含む。当該方法は、タッチ感知面を介して入力を検出することを更に含む。当該方法は、入力を検出したことに応じて、(i)地理的位置データを受け付けるアプリケーションを開くことと、(ii)アプリケーションを、物理的位置に関する情報でポピュレートすることと、を含む。このようにして、ユーザは、音声通信で言及された又は話された物理的位置に関する情報を記憶することができ、話された詳細の全てを憶え、後にこれら詳細を適切なアプリケーションで入力する必要はない。その代わり、電子デバイスが、物理的位置に関する情報を、物理的位置を説明する(例えば、レストラン、物理的位置への運転指示等の説明)スピーチに基づいて検出及び抽出し、その後、対応する物理的位置に関する情報が検出されたというインジケーションを提供することができる。
(I2)I1に記載の方法の一部の実施形態では、音声通信は生通話である。
(I3)I1に記載の方法の一部の実施形態では、音声通信は生FaceTime通話である。
(I4)I1に記載の方法の一部の実施形態では、音声通信は録音済みボイスメールである。
(I5)I1からI4のいずれか1つに記載の方法の一部の実施形態では、インジケーションを提供することは、ユーザインタフェース内に、電話アプリケーションを使用して行った最近の通話を含む物理的位置の選択可能な説明を表示することを含む。
(I6)I5に記載の方法の一部の実施形態では、選択可能な説明は、コンテンツアイテムが音声通信と関連付けられていることを示す。
(I7)I5又はI6に記載の方法の一部の実施形態では、入力を検出することは、最近の通話を含むユーザインタフェースが表示されている間に、選択可能な説明上における入力を検出することを含む。
(I8)I1からI7のいずれか1つに記載の方法の一部の実施形態では、インジケーションを提供することは、電子デバイスのユーザに触覚フィードバックを提供することを含む。
(I9)I1からI8のいずれか1つに記載の方法の一部の実施形態では、インジケーションを提供することは、電子デバイスの近傍にある異なる電子デバイスに物理的位置に関する情報を送信することを含む。
(I10)I1からI9のいずれか1つに記載の方法の一部の実施形態では、音声通信が物理的位置を説明するスピーチを含むと判定することは、物理的位置に関する情報を検出するために音声通信の一部を分析することを含み、分析は、電子デバイスと通信しているオーディオシステムを介して音声通信を出力している間に実行される。
(I11)I1からI10のいずれか1つに記載の方法の一部の実施形態では、音声通信の少なくとも一部を受信することは、電子デバイスのユーザから、音声通信の一部が分析されるべきであるという命令を受信することを含む。
(I12)I11に記載の方法の一部の実施形態では、命令は、ハードウェアボタンの選択に対応する。一部の実施形態では、ボタンはまた、ユーザの選択用に電子デバイスのディスプレイ上に提示されるボタン(例えば、音声通信中に表示される、「ここをタップしてこの音声通信の新たなコンテンツを分析する」というボタン)であってもよい。
(I13)I11に記載の方法の一部の実施形態では、命令は、電子デバイスのユーザからの、「ヘイSiri(hey Siri)」という言葉を含むコマンドに対応する。
(I14)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは、電子デバイスにI1からI13のいずれか1つに記載の方法を実行させる。
(I15)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、I1からI13のいずれか1つに記載の方法を実行するための手段と、を含む。
(I16)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知面及びディスプレイを有する電子デバイスによって実行されると、実行可能命令は、電子デバイスにI1からI13のいずれか1つに記載の方法を実行させる。
(I17)更なる一態様では、タッチ感知面及びディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、I1からI13のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。
(I18)更なる一態様では、タッチ感知面及びディスプレイを含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、I1からI13のいずれか1つに記載の方法を実行するための手段を含む。
(I19)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット4901、図49)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット4903、図49)と、処理ユニット(例えば、処理ユニット4905、図49)と、を含む電子デバイスが提供される。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(例えば、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図49は、電子デバイス4900に一体化されているとしてディスプレイユニット4901及びタッチ感知面ユニット4903を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。処理ユニットは、音声通信受信ユニット(例えば、音声通信受信ユニット4907、図49)と、コンテンツアイテム抽出ユニット(例えば、コンテンツアイテム抽出ユニット4909、図49)と、インジケーション提供ユニット(例えば、インジケーション提供ユニット4911、図49)と、入力検出ユニット(例えば、入力検出ユニット4913、図49)と、アプリケーションオープンユニット(例えば、アプリケーションオープンユニット4915、図49)と、アプリケーションポピュレーティングユニット(例えば、アプリケーションポピュレーティングユニット4917、図49)と、フィードバック提供ユニット(例えば、フィードバック提供ユニット4919、図49)と、音声通信分析ユニット(例えば、音声通信分析ユニット4921、図49)と、を含む。処理ユニット(又はユニット4907から4921などのその1つ以上の構成要素)は、音声通信の少なくとも一部を受信するように構成されており、音声通信の一部は、電子デバイスのユーザとは異なるリモートデバイスのリモートユーザによって提供される(例えば、音声通信受信ユニット4907によって)スピーチを含む。処理ユニットは、音声通信が物理的位置を特定するスピーチを含むと判定する(例えば、コンテンツアイテム抽出ユニット4909によって)ように更に構成されている。音声通信が物理的位置を特定するスピーチを含むと判定したことに応じて、処理ユニットは、物理的位置に関する情報が検出されたというインジケーションを提供する(例えば、コンテンツアイテム抽出ユニット4909によって)ように構成されている。処理ユニットはまた、タッチ感知面ユニットを介して入力を検出する(例えば、入力検出ユニット4911によって)ように構成されている。入力を検出したことに応じて、処理ユニットは、(i)地理的位置データを受け付けるアプリケーションを開き(例えば、アプリケーションオープンユニット4913によって)、(ii)アプリケーションを、物理的位置に関する情報でポピュレートする(例えば、アプリケーションポピュレーティングユニット4915によって)ように構成されている。
(I20)I19に記載の電子デバイスの一部の実施形態では、処理ユニット(又はユニット4907から4921などのその1つ以上の構成要素)は、I2からI13のいずれか1つに記載の方法を実行するように更に構成されている。
(J1)一部の実施形態では、方法が、タッチ感知面及びディスプレイ(一部の実施形態では、タッチスクリーン112、図1Cにおいて示されるように、タッチ感知面とディスプレイとは一体化されている)を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、ディスプレイ上のメッセージアプリケーションにおいて、テキスト入力フィールド及び会話記録を提示することを含む。当該方法は、また、メッセージアプリケーションがディスプレイ上に提示されている間に、電子デバイスのユーザからの次の可能性のある入力が物理的位置に関する情報であると判定することを含む。当該方法は、テキスト入力フィールド及び会話記録と関連付けられたコンテンツを分析して、少なくとも一部、分析されたコンテンツの一部に基づいて、提案された物理的位置を判定することを更に含む。当該方法は、ディスプレイ上のメッセージアプリケーション内に、提案された物理的位置を特定する選択可能なユーザインタフェース要素を提示することと、選択可能なユーザインタフェース要素の選択を受信することと、を更に含む。当該方法は、選択を受信したことに応じて、テキスト入力フィールド内に、提案された物理的位置の表現を提示することを含む。このようにして、電子デバイスのユーザに対し、必要とするコンテンツが便利に提供され、ユーザは何もタイプする必要はなく、コンテンツを検索する必要はない(例えば、ユーザは選択可能なユーザインタフェース要素を選択するだけで自身の現在地を入力することができ、自身の正確な位置を明らかにするために地図アプリケーションにアクセスし、メッセージアプリケーションに戻り、位置情報を送信するために明示的な入力を行う必要はない)。
(J2)J1に記載の方法の一部の実施形態では、メッセージアプリケーションはバーチャルキーボードを含み、選択可能なユーザインタフェース要素は、バーチャルキーボードに隣接しかつバーチャルキーボードの上にある提案部分に表示される。
(J3)J1又はJ2に記載の方法の一部の実施形態では、電子デバイスのユーザからの次の可能性のある入力が物理的位置に関する情報であると判定することは、会話トランスクリプションがユーザの現在位置に関する質問を含むことを検出するために、テキスト入力フィールド及び会話記録と関連付けられたコンテンツを処理することを含む。このようにして、ユーザに対し、会話トランスクリプション内の説明に直接関連する、提案された物理的位置が提供される(例えば、「どこにいますか」という第2のユーザの質問に応じて、ユーザに、選択されるとデバイスにユーザの現在位置に関する情報を第2のユーザに送信させるユーザインタフェースオブジェクトが提示される)。
(J4)J3に記載の方法の一部の実施形態では、コンテンツを処理することは、質問(例えば、「どこにいますか」又は「あなたの住所はどこですか」)を形成する1つ以上の定義済みのキーワードを検出するために自然言語処理アルゴリズムを適用することを含む。
(J5)J3又はJ4に記載の方法の一部の実施形態では、質問は、ユーザとは異なる第2のユーザから受信するメッセージに含まれる。
(J6)J1からJ5のいずれか1つに記載の方法の一部の実施形態では、電子デバイスのユーザからの次の可能性のある入力が物理的位置に関する情報であると判定することは、メッセージアプリケーションのテキスト入力部分においてユーザから受けるタイピング入力を監視することを含む。
(J7)J1からJ6のいずれか1つに記載の方法の一部の実施形態では、当該方法は、ユーザがタイピングしており、かつ選択可能なユーザインタフェース要素を選択していないという判定に従って、選択可能なユーザインタフェース要素の提示を停止することを更に含む。このようにして、ユーザがオブジェクトの選択に関心がないと判定され得る場合、デバイスは、選択可能なユーザインタフェースオブジェクトを提示し続けることはない。
(J8)J1からJ7のいずれか1つに記載の方法の一部の実施形態では、当該方法は、ユーザが選択可能なユーザインタフェース要素を選択しないことを示す追加の入力をユーザが提供したという判定に従って、選択可能なユーザインタフェース要素の提示を停止することを更に含む。このようにして、ユーザがオブジェクトの選択に関心がないと判定され得る場合、デバイスは、選択可能なユーザインタフェースオブジェクトを提示し続けることはない。
(J9)J1からJ5のいずれか1つに記載の方法の一部の実施形態では、提案された物理的位置の表現は、電子デバイスの現在の地理的位置を特定する情報を含む。
(J10)J1からJ9のいずれか1つに記載の方法の一部の実施形態では、提案された物理的位置の表現は住所である。
(J11)J1からJ9のいずれか1つに記載の方法の一部の実施形態では、提案された物理的位置は提案された物理的位置に関する識別子を含む地図オブジェクトである。
(J12)J1からJ11のいずれか1つに記載の方法の一部の実施形態では、提案された物理的位置は、メッセージアプリケーション以外のアプリケーションにおいてユーザが最近閲覧した位置に対応する。
(J13)J1からJ12のいずれか1つに記載の方法の一部の実施形態では、メッセージアプリケーションは電子メールアプリケーションである。
(J14)J1からJ12のいずれか1つに記載の方法の一部の実施形態では、メッセージアプリケーションはテキストメッセージアプリケーションである。
(J15)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは、電子デバイスにJ1からJ14のいずれか1つに記載の方法を実行させる。
(J16)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、J1からJ14のいずれか1つに記載の方法を実行するための手段と、を含む。
(J17)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知面及びディスプレイを有する電子デバイスによって実行されると、実行可能命令は、電子デバイスにJ1からJ14のいずれか1つに記載の方法を実行させる。
(J18)更なる一態様では、タッチ感知面及びディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、J1からJ14のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。
(J19)更なる一態様では、タッチ感知面及びディスプレイを含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、J1からJ14のいずれか1つに記載の方法を実行するための手段を含む。
(J20)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット5001、図50)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット5003、図50)と、処理ユニット(例えば、処理ユニット5005、図50)と、を含む電子デバイスが提供される。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(例えば、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図50は、電子デバイス5000に一体化されているとしてディスプレイユニット5001及びタッチ感知面ユニット5003を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。処理ユニットは、提示ユニット(例えば、提示ユニット5007、図50)と、次の入力判定ユニット(例えば、次の入力判定ユニット5009、図50)と、コンテンツ分析ユニット(例えば、コンテンツ分析ユニット5011、図50)と、選択受信ユニット(例えば、選択受信ユニット5013、図50)と、タイピング入力監視ユニット(例えば、タイピング入力監視ユニット5015、図50)と、提示終了ユニット(例えば、提示終了ユニット5017、図50)と、を含む。処理ユニット(又はユニット5007から5017などのその1つ以上の構成要素)は、ディスプレイ上のメッセージアプリケーションにおいて、テキスト入力フィールド及び会話記録を提示する(例えば、提示ユニット5007及び/又はディスプレイユニット5001によって)ように構成されている。メッセージアプリケーションがディスプレイ上に提示されている間に、処理ユニットはまた、電子デバイスのユーザからの次の可能性のある入力が物理的位置に関する情報であると判定する(例えば、次の入力判定ユニット5009によって)ように構成されている。処理ユニットは、テキスト入力フィールド及び会話記録と関連付けられたコンテンツを分析して、少なくとも一部、分析されたコンテンツの一部に基づいて、提案された物理的位置を判定し(例えば、コンテンツ分析ユニット5011によって)、ディスプレイ上のメッセージアプリケーション内に、提案された物理的位置を特定する選択可能なユーザインタフェース要素を提示し(例えば、提示ユニット5007によって)、選択可能なユーザインタフェース要素の選択を受信し(例えば、選択受信ユニット5013及び/又はタッチ感知面ユニット5003によって)、選択を受信したことに応じて、テキスト入力フィールド内に、提案された物理的位置の表現を提示する(例えば、提示ユニット5007によって)ように更に構成されている。
(J21)J20に記載の電子デバイスの一部の実施形態では、処理ユニット(又はユニット5007から5017などのその1つ以上の構成要素)は、J2からJ14のいずれか1つに記載の方法を実行するように更に構成されている。
(K1)一部の実施形態では、方法が、タッチ感知面及びディスプレイ(一部の実施形態では、タッチスクリーン112、図1Cにおいて示されるように、タッチ感知面とディスプレイとは一体化されている)を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、第1のアプリケーションを表示している間に、第1のアプリケーションでユーザが閲覧した第1の物理的位置(例えば、地元企業の検索を可能にするアプリケーションでユーザが検索したレストラン)を特定する情報を取得することを含む。当該方法は、また、第1のアプリケーションを終了することと、第1のアプリケーションの終了後、ユーザから、第1のアプリケーションとは異なる第2のアプリケーションを開くことの要求を受信することと、を含む。一部の実施形態では、要求は、第1のアプリケーションにおいて何ら入力を受信することなく受信される(例えば、要求は、第1のアプリケーション内のリンク又はボタンをクリックすることを含んでいない)。要求の受信に応じて、かつ第2のアプリケーションが地理的位置情報を受け付けることができるという判定に従って、当該方法は、第2のアプリケーションを提示することを含み、第2のアプリケーションを提示することは、第2のアプリケーションを、少なくとも一部、第1の物理的位置を特定する情報に基づく情報でポピュレートすることを含む。このようにして、ユーザが、情報を2つの異なるアプリケーション間において手動で移す必要はない。その代わり、デバイスが、第2のアプリケーションが地理的位置情報を受け付けることができることを知的に判定し、次いで、第1のアプリケーションで閲覧した物理的位置に関する情報を直接第2のアプリケーションをポピュレートする(例えば、物理的位置に関する識別子を含むように地図オブジェクトを第2のアプリケーションをポピュレートする)。
(K2)K1に記載の方法の一部の実施形態では、第2のアプリケーションを開くことの要求を受信することは、第1のアプリケーションの終了後、第2のアプリケーションのアフォーダンス上において入力を検出することを含む。換言すると、要求は、第1のアプリケーション内のリンクをクリックすることに対応せず、その代わり、ユーザが第2のアプリケーションを開くことを明示的かつ直接的に要求し、次いで、デバイスが、第2のアプリケーションを、ユーザがこの、前に閲覧した物理的位置を第2のアプリケーションで更に調査又は検討することができるように、前に閲覧した(異なる第1のアプリケーションで前に閲覧した)物理的位置に関する情報でポピュレートすることを決定する。
(K3)K2に記載の方法の一部の実施形態では、第2のアプリケーションのアフォーダンスは、電子デバイスのホームスクリーン内に表示されるアイコンである。一部の実施形態では、ホームスクリーンはオペレーティングシステムのシステムレベルコンポーネントであり、電子デバイス上で利用可能なアプリケーションを呼び出すためのアイコンを含む。
(K4)K2に記載の方法の一部の実施形態では、入力を検出することは、(i)物理的なホームボタンにおけるダブルタップを検出することと、(ii)ダブルタップを検出したことに応じて、アプリケーション切替ユーザインタフェースを表示することと、(iii)アプリケーション切替ユーザインタフェース内からのアフォーダンスの選択を検出することと、を含む。
(K5)K1からK4のいずれか1つに記載の方法の一部の実施形態では、第2のアプリケーションをポピュレートすることは、少なくとも一部、第1の物理的位置を特定する情報に基づく情報を含むユーザインタフェースオブジェクトを表示することを含む。
(K6)K5に記載の方法の一部の実施形態では、ユーザインタフェースオブジェクトは、第1のアプリケーションにおいて第1の物理的位置を最近閲覧したことをユーザに知らせるテキストでの説明を含む。
(K7)K6に記載の方法の一部の実施形態では、ユーザインタフェースオブジェクトは第2のアプリケーション内に表示される地図であり、第2のアプリケーションをポピュレートすることは、第1の物理的位置の識別子を含むように地図をポピュレートすることを含む。
(K8)K6又はK7に記載の方法の一部の実施形態では、第2のアプリケーションはバーチャルキーボードと共に提示され、ユーザインタフェースオブジェクトはバーチャルキーボードの上方に表示される。
(K9)K6からK8のいずれか1つに記載の方法の一部の実施形態では、情報を取得することは、第2の物理的位置に関する情報を取得することを含み、ユーザインタフェースオブジェクトを表示することは、第2の物理的位置に関する情報を有するユーザインタフェースオブジェクトを表示することを含む。
(K10)K1からK9のいずれか1つに記載の方法の一部の実施形態では、第2のアプリケーションが地理的位置情報を受け付けることができるという判定は、(i)第2のアプリケーションが、地理的位置データを受け付け、処理することができる入力受け取りフィールドを含むと判定すること、(ii)第2のアプリケーションが地図上に地理的位置情報を表示することができると判定すること、(iii)第2のアプリケーションが、経路案内を容易にするために地理的位置情報を使用できると判定すること、及び(iv)第2のアプリケーションが、輸送サービスを位置特定し、提供するために地理的位置情報を使用できると判定することの1つ以上を含む。
(K11)K10に記載の方法の一部の実施形態では、第2のアプリケーションが地理的位置情報を受け付けることができるという判定は、第2のアプリケーションが、地理的位置データを受け付け、処理することができる入力受け取りフィールドを含むと判定することを含み、入力受け取りフィールドは、第2のアプリケーション内に表示される地図内での検索を可能にする検索ボックスである。
(K12)K1からK11のいずれか1つに記載の方法の一部の実施形態では、当該方法は、要求の受信に応じて、ユーザのアプリケーション利用履歴に基づいて、第2のアプリケーションが第1のアプリケーションと関連付けられている(例えば、第1のアプリケーションを開いた後、閾値回数開かれた)かどうかを判定することを更に含む。
(K13)K12に記載の方法の一部の実施形態では、当該方法は、第2のアプリケーションを提示する前に、第2のアプリケーションに対し、第1の物理的位置を特定する情報へのアクセスを提供することを更に含み、アクセスが提供される前、第2のアプリケーションは第1の物理的位置を特定する情報へのアクセスを有しない。このようにして、第2のアプリケーションは、第1のアプリケーションにおいてユーザが行ったアクションに関する情報を受信することができ、その後、ユーザに、この情報を第2のアプリケーション内で使用する手法が提供される(例えば、第1の物理的位置に関する更なる情報を検索するために、又は第1の物理的位置を、第2のアプリケーションを通じて利用可能な、ライドシェアサービスなどの何らかのサービスに使用するために)。
(K14)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは、電子デバイスにK1からK13のいずれか1つに記載の方法を実行させる。
(K15)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、K1からK13のいずれか1つに記載の方法を実行するための手段と、を含む。
(K16)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知面及びディスプレイを有する電子デバイスによって実行されると、実行可能命令は、電子デバイスにK1からK13のいずれか1つに記載の方法を実行させる。
(K17)更なる一態様では、タッチ感知面及びディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、K1からK13のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。
(K18)更なる一態様では、タッチ感知面及びディスプレイを含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、K1からK13のいずれか1つに記載の方法を実行するための手段を含む。
(K19)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット5101、図51)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット5103、図51)と、処理ユニット(例えば、処理ユニット5105、図51)と、を含む電子デバイスが提供される。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(例えば、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図51は、電子デバイス5100に一体化されているとしてディスプレイユニット5101及びタッチ感知面ユニット5103を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。処理ユニットは、情報取得ユニット(例えば、情報取得ユニット5107、図51)と、アプリケーション終了ユニット(例えば、アプリケーション終了ユニット5109、図51)と、要求受信ユニット(例えば、要求受信ユニット5111、図51)と、アプリケーション性能判定ユニット(例えば、アプリケーション性能判定ユニット5113、図51)と、アプリケーション提示ユニット(例えば、アプリケーション提示ユニット5115、図51)と、アプリケーションポピュレーティングユニット(例えば、アプリケーションポピュレーティングユニット5117、図51)と、入力検出ユニット(例えば、入力検出ユニット5119、図51)と、アプリケーション切替ユーザインタフェース表示ユニット(例えば、アプリケーション切替ユーザインタフェース表示ユニット5121、図51)と、アプリケーション関連付け判定ユニット(例えば、アプリケーション関連付け判定ユニット5123、図51)と、アクセス提供ユニット(例えば、アクセス提供ユニット5125、図51)と、を含む。処理ユニット(又はユニット5107から5125などのその1つ以上の構成要素)は、第1のアプリケーションを表示している間に、第1のアプリケーションでユーザが閲覧した第1の物理的位置を特定する情報を取得する(例えば、情報取得ユニット5107によって)ように構成されている。処理ユニットはまた、第1のアプリケーションを終了し(例えば、アプリケーション終了ユニット5109によって)、第1のアプリケーションの終了後、ユーザから、第1のアプリケーションとは異なる第2のアプリケーションを開くことの要求を受信する(例えば、要求受信ユニット5111によって)ように構成されている。要求の受信に応じて、かつ第2のアプリケーションが地理的位置情報を受け付けることができるという判定(例えば、アプリケーション性能判定ユニット5113により処理又は実行される判定)に従って、第2のアプリケーションを提示し(例えば、アプリケーション提示ユニット5115によって)、第2のアプリケーションを提示することは、第2のアプリケーションを、少なくとも一部、第1の物理的位置を特定する情報に基づく情報でポピュレートすることを含む(例えば、アプリケーションポピュレーティングユニット5117によって)。
(K20)K19に記載の電子デバイスの一部の実施形態では、処理ユニット(又はユニット5107から5125などのその1つ以上の構成要素)は、K2からK13のいずれか1つに記載の方法を実行するように更に構成されている。
(L1)一部の実施形態では、方法が、タッチ感知面及びディスプレイ(一部の実施形態では、タッチスクリーン112、図1Cにおいて示されるように、タッチ感知面とディスプレイとは一体化されている)を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、第1のアプリケーションにおいてユーザが閲覧した第1の物理的位置を特定する情報を取得し、第1の入力を検出することを含む。当該方法は、第1の入力を検出したことに応じて、(i)地理的位置情報を受け付けることができる第2のアプリケーションを特定することと、(ii)ディスプレイの少なくとも一部分上に、第1のアプリケーションとは異なる、第1の物理的位置に関する情報を有する第2のアプリケーションを開く提案を有するアフォーダンスを提示することと、を含む。当該方法は、また、アフォーダンスにおいて第2の入力を検出することを含む。アフォーダンスにおいて第2の入力を検出したことに応じて、(i)第2のアプリケーションを開くことと、(ii)少なくとも一部、第1の物理的位置を特定する情報に基づく情報を含むように、第2のアプリケーションをポピュレートすることと。
上記K1に関連する操作と比較して、L1に関連する操作では、第1の物理的位置に関する情報を有する第2のアプリケーションを開く提案をユーザに提供する前には、第2のアプリケーションを開くための特定の要求をユーザから受信しない。このようにして、上記K1及びL1の両方(並びにこれら方法それぞれのいくつかの処理工程を使用するこれらの組み合わせ)に関連する操作を提供することにより、電子デバイスは、地理的位置情報を受け付けることができるアプリケーションをユーザが開く前又は後のいずれかにおいて位置データを予測的に使用することを可能にする効率的なユーザ経験を提供することができる。加えて、L1によって、第2のアプリケーションが地理的位置情報を受け付けることができるという判定が第2のアプリケーションを開く前でも行われ、このようにして、入力がアプリケーション切替ユーザインタフェースを開くことの要求に対応するL1の実施形態では、アプリケーション切替ユーザインタフェースは、アプリケーションが位置データを受け付けることができることが既知である場合、第1の物理的位置に関する情報を有するアプリケーション(例えば、第2のアプリケーション)を開く提案を単に表示する。
(L2)L1に記載の方法の一部の実施形態では、第1の入力は、アプリケーション切替ユーザインタフェースを開くことの要求に対応する(例えば、第1の入力は電子デバイスの物理的なホームボタン上のダブルタップである)。
(L3)L2に記載の方法の一部の実施形態では、アフォーダンスはアプリケーション切替ユーザインタフェース内に提示される。
(L4)L3に記載の方法の一部の実施形態では、アフォーダンスを提示することは、アフォーダンスを提示することと併せて、アプリケーション切替ユーザインタフェース内に、電子デバイス上で実行されているアプリケーションの表現(例えば、アプリケーションのアプリケーションコンテンツのスナップショット)を提示することと、アプリケーションの表現の下方に位置するディスプレイの領域内にアフォーダンスを提示することと、を含む。
(L5)L1に記載の方法の一部の実施形態では、第1の入力は、電子デバイスのホームスクリーンを開くことの要求に対応する(例えば、第1の入力は電子デバイスの物理的なホームボタン上のシングルタップである)。
(L6)L5に記載の方法の一部の実施形態では、アフォーダンスは、ホームスクリーンの一部分上に提示される。
(L7)L1からL6のいずれか1つに記載の方法の一部の実施形態では、提案は、第2のアプリケーションと関連付けられた種類に固有のテキストでの説明を含む。
(L8)L1からL7のいずれか1つに記載の方法の一部の実施形態では、第2のアプリケーションをポピュレートすることは、少なくとも一部、第1の物理的位置を特定する情報に基づく情報を含むユーザインタフェースオブジェクトを表示することを含む。
(L9)L8に記載の方法の一部の実施形態では、ユーザインタフェースオブジェクトは、第1のアプリケーションにおいて第1の物理的位置を最近閲覧したことをユーザに知らせるテキストでの説明を含む。
(L10)L9に記載の方法の一部の実施形態では、ユーザインタフェースオブジェクトは第2のアプリケーション内に表示される地図であり、第2のアプリケーションをポピュレートすることは、第1の物理的位置の識別子を含むように地図をポピュレートすることを含む。
(L11)L9又はL10に記載の方法の一部の実施形態では、第2のアプリケーションはバーチャルキーボードと共に提示され、ユーザインタフェースオブジェクトはバーチャルキーボードの上方に表示される。
(L12)L1からL11のいずれか1つに記載の方法の一部の実施形態では、地理的位置情報を受け付けることができる第2のアプリケーションを特定することは、(i)第2のアプリケーションが、地理的位置データを受け付け、処理することができる入力受け取りフィールドを含むと判定すること、(ii)第2のアプリケーションが地図上に地理的位置情報を表示することができると判定すること、(iii)第2のアプリケーションが、経路案内を容易にするために地理的位置情報を使用できると判定すること、及び(iv)第2のアプリケーションが、輸送サービスを位置特定し、提供するために地理的位置情報を使用できると判定すること、の1つ以上を含む。
(L13)L12に記載の方法の一部の実施形態では、第2のアプリケーションが地理的位置情報を受け付けることができることを特定することは、第2のアプリケーションが、地理的位置データを受け付け、処理することができる入力受け取りフィールドを含むと判定することを含み、入力受け取りフィールドは、第2のアプリケーション内に表示される地図内での検索を可能にする検索ボックスである。
(L14)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは、電子デバイスにL1からL13のいずれか1つに記載の方法を実行させる。
(L15)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、L1からL13のいずれか1つに記載の方法を実行するための手段と、を含む。
(L16)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知面及びディスプレイを有する電子デバイスによって実行されると、実行可能命令は、電子デバイスにL1からL13のいずれか1つに記載の方法を実行させる。
(L17)更なる一態様では、タッチ感知面及びディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、L1からL13のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。
(L18)更なる一態様では、タッチ感知面及びディスプレイを含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、L1からL13のいずれか1つに記載の方法を実行するための手段を含む。
(L19)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット5201、図52)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット5203、図52)と、処理ユニット(例えば、処理ユニット5205、図52)と、を含む電子デバイスが提供される。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(例えば、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図52は、電子デバイス5200に一体化されているとしてディスプレイユニット5201及びタッチ感知面ユニット5203を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。処理ユニットは、情報取得ユニット(例えば、情報取得ユニット5207、図52)と、入力検出ユニット(例えば、入力検出ユニット5209、図52)と、アプリケーション特定ユニット(例えば、アプリケーション特定ユニット5211、図52)と、アフォーダンス提示ユニット(例えば、アフォーダンス提示ユニット5213、図52)と、アプリケーションオープンユニット(例えば、アプリケーションオープンユニット5215、図52)と、アプリケーションポピュレーティングユニット(例えば、アプリケーションポピュレーティングユニット5217、図52)と、アプリケーション切替ユーザインタフェース提示ユニット(例えば、アプリケーション切替ユーザインタフェース提示ユニット5219、図52)と、アプリケーション性能判定ユニット(例えば、アプリケーション性能判定ユニット5221、図52)と、を含む。処理ユニット(又はユニット5207から5221などのその1つ以上の構成要素)は、第1のアプリケーションにおいてユーザが閲覧した第1の物理的位置を特定する情報を取得し(例えば、情報取得ユニット5207によって)、第1の入力を検出する(例えば、入力検出ユニット5209によって)ように構成されている。第1の入力を検出したことに応じて、処理ユニットは、(i)地理的位置情報を受け付けることができる第2のアプリケーションを特定し(例えば、アプリケーション特定ユニット5209によって)、(ii)ディスプレイの少なくとも一部分上に、第1のアプリケーションとは異なる、第1の物理的位置に関する情報を有する第2のアプリケーションを開く提案を有するアフォーダンスを提示する(例えば、アフォーダンス提示ユニット5213によって)ように構成されている。処理ユニットはまた、アフォーダンスにおいて第2の入力を検出する(例えば、入力検出ユニット5209によって)ように構成されている。アフォーダンスにおいて第2の入力を検出したことに応じて、処理ユニットは、(i)第2のアプリケーションを開き(例えば、アプリケーションオープンユニット5215によって)、(ii)少なくとも一部、第1の物理的位置を特定する情報に基づく情報を含むように、第2のアプリケーションをポピュレートする(例えば、アプリケーションポピュレーティングユニット5217によって)ように構成されている。
(L20)L19に記載の電子デバイスの一部の実施形態では、処理ユニット(又はユニット5207から5221などのその1つ以上の構成要素)は、L2からL13のいずれか1つに記載の方法を実行するように更に構成されている。
(M1)一部の実施形態では、方法が、タッチ感知面及びディスプレイ(一部の実施形態では、タッチスクリーン112、図1Cにおいて示されるように、タッチ感知面とディスプレイとは一体化されている)を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、電子デバイス上で実行されている第1のアプリケーションにおいてユーザが閲覧した第1の物理的位置を特定する情報を取得することを含む。当該方法は、また、ユーザが車両に入ったと判定することを含む。ユーザが車両に入ったと判定したことに応じて、ユーザに対し、第1の物理的位置を経路案内の目的地として使用するというプロンプトを提供する。当該方法は、プロンプトの提供に応じて、ユーザから、第1の物理的位置を経路案内の目的地として使用する命令を受信することを含む。当該方法は、第1の物理的位置への経路案内を容易にすることを更に含む。このようにして、ユーザに、電子デバイス上のアプリケーションで以前見ていた物理的位置に基づいて、目的地の経路設定の提案が便利に提供される。
(M2)M1に記載の方法の一部の実施形態では、当該方法は、メッセージが第2の物理的位置を特定する情報を含むことを検出することを含む、電子デバイスがメッセージを受信したことを検出することと、検出したことに応じて、ユーザに対し、第2の物理的位置を経路案内の新たな目的地として使用するという新たなプロンプトを提供することと、を更に含む。このようにして、メッセージ(例えば、テキスト、電子メール、ボイスメール等)に含まれる情報に基づいて、ユーザは動的に、中間地点を追加する又は経路案内の新たな目的地を追加することができる。
(M3)M2に記載の方法の一部の実施形態では、当該方法は、ユーザから、第2の物理的位置を新たな目的地として使用する命令を受信したことに応じて、第2の物理的位置への経路案内を容易にすることを更に含む。
(M4)M2又はM3に記載の方法の一部の実施形態では、メッセージが第2の物理的位置を特定する情報を含むことを検出することは、電子デバイス上で利用可能なバーチャルアシスタントが、電子デバイスと通信しているオーディオシステムを介してユーザに対しメッセージを読み上げている間、検出を実行することを含む。このようにして、オーディオシステムにより(例えば、電子デバイスを介して利用可能なパーソナルアシスタントを介して)読み上げられるメッセージをユーザが聞いているとき、電子デバイスは第2の物理的位置を特定する情報を検出し、この検出された情報を使用して、第2の物理的位置を新たな目的地として使用することを提案する。したがって、ユーザは運転中に道路から注意をそらす必要がなく、それでも、経路案内の設定及び目的地を動的に調整することができる。
(M5)M2からM4のいずれか1つに記載の方法の一部の実施形態では、ユーザが車両に入ったと判定することは、電子デバイスが車両との通信リンクを確立したことを検出することを含む。
(M6)M2からM5のいずれか1つに記載の方法の一部の実施形態では、経路案内を容易にすることは、電子デバイスのディスプレイを介して経路案内を提供することを含む。
(M7)M2からM5のいずれか1つに記載の方法の一部の実施形態では、経路案内を容易にすることは、車両に、第1の物理的位置を特定する情報を送信することを含む。
(M8)M2からM7のいずれか1つに記載の方法の一部の実施形態では、経路案内を容易にすることは、電子デバイスと通信しているオーディオシステム(例えば、車のスピーカ又はデバイス自身の内蔵スピーカ)によって経路案内を提供することを含む。
(M9)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは、電子デバイスにM1からM8のいずれか1つに記載の方法を実行させる。
(M10)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、M1からM8のいずれか1つに記載の方法を実行するための手段と、を含む。
(M11)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知面及びディスプレイを有する電子デバイスによって実行されると、実行可能命令は、電子デバイスにM1からM8のいずれか1つに記載の方法を実行させる。
(M12)更なる一態様では、タッチ感知面及びディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、M1からM8のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。
(M13)更なる一態様では、タッチ感知面及びディスプレイを含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、M1からM8のいずれか1つに記載の方法を実行するための手段を含む。
(M14)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット5301、図53)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット5303、図53)と、処理ユニット(例えば、処理ユニット5305、図53)と、を含む電子デバイスが提供される。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(例えば、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図53は、電子デバイス5300に一体化されているとしてディスプレイユニット5301及びタッチ感知面ユニット5303を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。処理ユニットは、情報取得ユニット(例えば、情報取得ユニット5307、図53)と、車両エントリ判定ユニット(例えば、車両エントリ判定ユニット5309、図53)と、プロンプト提供ユニット(例えば、プロンプト提供ユニット5311、図53)と、命令受信ユニット(例えば、命令受信ユニット5313、図53)と、経路案内容易化ユニット(例えば、経路案内容易化ユニット5315、図53)と、メッセージ検出ユニット(例えば、メッセージ検出ユニット5317、図53)と、を含む。処理ユニット(又はユニット5307から5317などのその1つ以上の構成要素)は、電子デバイス上で実行されている第1のアプリケーションにおいてユーザが閲覧した第1の物理的位置を特定する情報を取得する(例えば、情報取得ユニット5307によって)ように構成されている。処理ユニットはまた、ユーザが車両に入ったと判定する(例えば、車両エントリ判定ユニット5309によって)ように構成されている。ユーザが車両に入ったと判定したことに応じて、処理ユニットは、ユーザに対し、第1の物理的位置を経路案内の目的地として使用するというプロンプトを提供する(例えば、プロンプト提供ユニット5311によって)ように構成されている。プロンプトの提供に応じて、ユーザから、第1の物理的位置を経路案内の目的地として使用する命令を受信する(例えば、命令受信ユニット5313によって)。処理ユニットは、第1の物理的位置への経路案内を容易にする(例えば、経路案内容易化ユニット5307によって)ように更に構成されている。
(M15)M14に記載の電子デバイスの一部の実施形態では、処理ユニット(又はユニット5307から5317などのその1つ以上の構成要素)はに、M2からM8のいずれか1つに記載の方法を実行するように更に構成されている。
(N1)一部の実施形態では、方法が、タッチ感知面及びディスプレイ(一部の実施形態では、タッチスクリーン112、図1Cにおいて示されるように、タッチ感知面とディスプレイとは一体化されている)を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、第1のアプリケーションにおいてコンテンツを提示することを含む。当該方法は、また、ユーザから、第1のアプリケーションとは異なる第2のアプリケーションを開くことの要求を受信することを含み、第2のアプリケーションは入力受け取りフィールドを含む。当該方法は、要求の受信に応じて、第2のアプリケーションに入力受け取りフィールドを提示することを含む。当該方法は、入力受け取りフィールドにおいて何らかのユーザ入力を受信する前に、ユーザがコンテンツの少なくとも一部を入力受け取りフィールドに貼り付けることを可能とするための選択可能なユーザインタフェースオブジェクトを提供することを含む。当該方法は、選択可能なユーザインタフェースオブジェクトの選択を検出したことに応じて、コンテンツの一部を入力受け取りフィールドに貼り付けることを含む。このようにして、ユーザに対し、第1のアクションで前に閲覧した第2のアプリケーションベースのコンテンツにおいて先見的な貼り付けアクションが提供される(例えば、これにより、ユーザが、第1のアプリケーションを再度開き、明示的なコピーアクションを実行し、第2のアプリケーションを再度開き、その後、コピーされたコンテンツを第2のアプリケーションに貼り付けることを明示的に要求する必要なく、コンテンツを第2のアプリケーションに貼り付けることを可能にする)。
(N2)N1に記載の方法の一部の実施形態によれば、当該方法は、選択可能なユーザインタフェースオブジェクトを提供する前に、入力受け取りフィールドを、コンテンツの一部を受け付けることができるフィールドとして特定することを含む。
(N3)N2に記載の方法の一部の実施形態によれば、入力受け取りフィールドを、コンテンツの一部を受け付けることができるフィールドとして特定することは、入力受け取りフィールドの選択を検出に応じて実行される。
(N4)N1からN3のいずれか1つに記載の方法の一部の実施形態によれば、コンテンツの一部は画像に対応する。
(N5)N1からN3のいずれか1つに記載の方法の一部の実施形態によれば、コンテンツの一部はテキストコンテンツに対応する。
(N6)N1からN3のいずれか1つに記載の方法の一部の実施形態によれば、コンテンツの一部はテキストコンテンツ及び画像に対応する。
(N7)N1からN6のいずれか1つに記載の方法の一部の実施形態によれば、第1のアプリケーションはウェブブラウズアプリケーションであり、第2のアプリケーションはメッセージアプリケーションである。
(N8)N1からN6のいずれか1つに記載の方法の一部の実施形態によれば、第1のアプリケーションは写真ブラウズアプリケーションであり、第2のアプリケーションはメッセージアプリケーションである。
(N9)N1からN8のいずれか1つに記載の方法の一部の実施形態によれば、当該方法は、第2のアプリケーションを開くことの要求を受信する前に、コンテンツの少なくとも一部をコピーすることの要求を受信することを含む。
(N10)N1からN9のいずれか1つに記載の方法の一部の実施形態によれば、選択可能なユーザインタフェースオブジェクトは、コンテンツの一部を第1のアプリケーションにおいて最近閲覧したというインジケーションと共に表示される。このようにして、ユーザに、貼り付けの提案がなぜ行われたかに関する明確なインジケーションが提供される。
(N11)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは、電子デバイスにN1からN10のいずれか1つに記載の方法を実行させる。
(N12)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、N1からN10のいずれか1つに記載の方法を実行するための手段と、を含む。
(N13)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知面及びディスプレイを有する電子デバイスによって実行されると、実行可能命令は、電子デバイスにN1からN10のいずれか1つに記載の方法を実行させる。
(N14)更なる一態様では、タッチ感知面及びディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、N1からN10のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。
(N15)更なる一態様では、タッチ感知面及びディスプレイを含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、N1からN10のいずれか1つに記載の方法を実行するための手段を含む。
(N16)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット5401、図54)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット5403、図54)と、処理ユニット(例えば、処理ユニット5405、図54)と、を含む電子デバイスが提供される。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(例えば、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図54は、電子デバイス5400に一体化されているとしてディスプレイユニット5401及びタッチ感知面ユニット5403を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。処理ユニットは、提示ユニット(例えば、提示ユニット5407、図54)と、要求受信ユニット(例えば、要求受信ユニット5409、図54)と、ユーザインタフェースオブジェクト提供ユニット(例えば、ユーザインタフェースオブジェクト提供ユニット5411、図54)と、先見的な貼り付けユニット(例えば、先見的な貼り付けユニット5413、図54)と、性能判定ユニット(例えば、性能判定ユニット5415、図54)と、を含む。処理ユニット(又はユニット5407から5415などのその1つ以上の構成要素)は、第1のアプリケーションにおいてコンテンツを提示し(例えば、提示ユニット5407及び/又はディスプレイユニット5401によって)、ユーザから、第1のアプリケーションとは異なる第2のアプリケーションを開くことの要求を受信し(例えば、要求受信ユニット及び/又はタッチ感知面ユニット5403によって)、第2のアプリケーションは入力受け取りフィールドを含み、要求の受信に応じて、第2のアプリケーションに入力受け取りフィールドを提示し(例えば、提示ユニット5407及び/又はディスプレイユニット5401によって)、入力受け取りフィールドにおいて何らかのユーザ入力を受信する前に、ユーザがコンテンツの少なくとも一部を入力受け取りフィールドに貼り付けることを可能とするための選択可能なユーザインタフェースオブジェクトを提供し(例えば、ユーザインタフェースオブジェクト提供ユニット5411及び/又はディスプレイユニット5401によって)、選択可能なユーザインタフェースオブジェクトの選択を検出したことに応じて、コンテンツの一部を入力受け取りフィールドに貼り付ける(例えば、先見的な貼り付けユニット5413によって)ように構成されている。
(N17)N16に記載の電子デバイスの一部の実施形態では、処理ユニット(又はユニット5407から5415などのその1つ以上の構成要素)は、N1からN10のいずれか1つに記載の方法を実行するように更に構成されている。
(O1)一部の実施形態では、方法が、タッチ感知面及びディスプレイ(一部の実施形態では、タッチスクリーン112、図1Cにおいて示されるように、タッチ感知面とディスプレイとは一体化されている)を有する電子デバイス(例えば、コンピューティングデバイスAからD(図1E)のいずれか1つに従って構成されたポータブル多機能デバイス100(図1A))において実行される。当該方法は、ディスプレイ上に、アプリケーションと関連付けられたテキストコンテンツを提示することを含む。当該方法は、また、テキストコンテンツの一部が(i)位置、(ii)連絡先、又は(iii)イベントに関連すると判定することを含む。当該方法は、テキストコンテンツの一部が位置に関連すると判定すると、電子デバイス上の位置センサから位置情報を取得し、取得した位置情報を予測されたコンテンツアイテムとして表示するために準備することを含む。当該方法は、テキストコンテンツの一部が連絡先に関連すると判定すると、電子デバイス上で、テキストコンテンツの一部に関連する連絡先情報について検索を行うことと、検索により取り出した、少なくとも1つの連絡先と関連付けられた情報を、予測されたコンテンツアイテムとして表示するために準備することと、を含む。当該方法は、テキストコンテンツの一部がイベントに関連すると判定すると、電子デバイス上で、テキストコンテンツの一部に関連するイベント情報について新たな検索を行い、少なくとも一部、新たな検索により取り出した少なくとも1つのイベントに基づく情報を、予測されたコンテンツアイテムとして表示するために準備することを含む。当該方法は、アプリケーション内に、予測されたコンテンツアイテムを含むアフォーダンスを表示することと、タッチ感知面を介して、アフォーダンスの選択を検出することと、選択を検出したことに応じて、予測されたコンテンツアイテムと関連付けられた情報を、ディスプレイ上に、テキストコンテンツに隣接して表示することと、を更に含む。このようにして、ユーザに対し、文を完成する(又は例えば、メッセージアプリケーション内で他のユーザにより寄せられた質問に答える)ために使用できる予測されたコンテンツアイテムが便利に提供され、ユーザは何もタイプする必要はなく、所望の情報を捜すために電子デバイス上で利用可能な情報を調べる必要はない。例えば、電子デバイスは、電話番号、現在位置、新たなイベントをスケジューリングするための空き、現在のイベントに関連する詳細を全て、ユーザによる明示的な要求又は余計な労力を全く必要とすることなく提供するため、時間が節約される一方でなお、ユーザに所望の情報が効率的に提供されるようにする。
(O2)O1に記載の方法の一部の実施形態によれば、テキストコンテンツの一部は、アプリケーション内に最も最近提示されたテキストコンテンツに対応する。
(O3)O1又はO2に記載の方法の一部の実施形態によれば、アプリケーションはメッセージアプリケーションであり、テキストコンテンツの一部は、メッセージアプリケーション内で電子デバイスとは異なるリモートデバイスのリモートユーザから受信した質問である。
(O4)O1又はO2に記載の方法の一部の実施形態によれば、テキストコンテンツの一部は、アプリケーション内の入力受け取りフィールドにおいて電子デバイスのユーザにより提供される入力である。
(O5)O1に記載の方法の一部の実施形態によれば、テキストコンテンツの一部は、テキストコンテンツの一部を含むユーザインタフェースオブジェクトを選択するユーザ入力に応じて特定される。
(O6)O5に記載の方法の一部の実施形態によれば、アプリケーションはメッセージアプリケーションであり、ユーザインタフェースオブジェクトは、メッセージアプリケーション内に表示される会話におけるメッセージ用吹き出しである。
(O7)O5又はO6に記載の方法の一部の実施形態によれば、当該方法は、第2のユーザインタフェースオブジェクトの選択を検出することと、選択を検出したことに応じて、(i)アフォーダンスを予測されたコンテンツアイテムと共に表示するのを停止し、第2のユーザインタフェースオブジェクトと関連付けられたテキストコンテンツが位置、連絡先、又はイベントに関連すると判定することと、判定に従って、アプリケーション内に新たな予測されたコンテンツアイテムを表示することと、を更に含む。このようにして、ユーザは容易にメッセージの会話に戻り、以前に受信したメッセージを選択することができると共に、なお、適切に予測されたコンテンツアイテムが提供され得る。
(O8)O1からO7のいずれか1つに記載の方法の一部の実施形態によれば、アフォーダンスは、アプリケーション内のバーチャルキーボードに隣接する入力受け取りフィールド内に表示される。
(O9)O8に記載の方法の一部の実施形態によれば、入力受け取りフィールドは、バーチャルキーボードにおいて受けたタイピング入力を表示するフィールドである。
(O10)O1からO9のいずれか1つに記載の方法の一部の実施形態によれば、判定することは、テキストコンテンツをアプリケーションで受信した際にパースし、連絡先、イベント及び/又は位置に関連することが知られている記憶されたパターンを検出することを含む。
(O11)別の態様では、電子デバイスが提供される。一部の実施形態では、電子デバイスは、タッチ感知面と、ディスプレイと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリと、を含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、1つ以上のプログラムは、電子デバイスにO1からO10のいずれか1つに記載の方法を実行させる。
(O12)更に別の態様では、電子デバイスが提供され、電子デバイスは、タッチ感知面と、ディスプレイと、O1からO10のいずれか1つに記載の方法を実行するための手段と、を含む。
(O13)更に別の態様では、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は実行可能命令を記憶し、実行可能命令がタッチ感知面及びディスプレイを有する電子デバイスによって実行されると、実行可能命令は、電子デバイスにO1からO10のいずれか1つに記載の方法を実行させる。
(O14)更なる一態様では、タッチ感知面及びディスプレイを有する電子デバイス上のグラフィカルユーザインタフェースが提供される。一部の実施形態では、グラフィカルユーザインタフェースは、O1からO10のいずれか1つに記載の方法に従って表示されるユーザインタフェースを含む。
(O15)更なる一態様では、タッチ感知面及びディスプレイを含む電子デバイスで使用するための情報処理装置が提供される。情報処理装置は、O1からO10のいずれか1つに記載の方法を実行するための手段を含む。
(O16)更なる一態様では、ディスプレイユニット(例えば、ディスプレイユニット5501、図55)と、タッチ感知面ユニット(例えば、タッチ感知面ユニット5503、図55)と、処理ユニット(例えば、処理ユニット5505、図55)と、を含む電子デバイスが提供される。一部の実施形態では、電子デバイスは、図1Eに示されるコンピューティングデバイスのいずれか1つ(例えば、コンピューティングデバイスAからD)に従って構成されている。説明を容易にするため、図55は、電子デバイス5500に一体化されているとしてディスプレイユニット5501及びタッチ感知面ユニット5503を示すが、一部の実施形態では、これらユニットの1つ又は両方は、ユニットが電子デバイスから物理的に離れたままであっても、電子デバイスと通信する。処理ユニットは、提示ユニット(例えば、提示ユニット5507、図55)と、判定ユニット(例えば、判定ユニット5509、図55)と、取得ユニット(例えば、取得ユニット5511、図55)と、検索実施ユニット(例えば、検索実施ユニット5513、図55)と、情報準備ユニット(例えば、情報準備ユニット5515、図55)と、アフォーダンス表示ユニット(例えば、アフォーダンス表示ユニット5517、図55)と、検出ユニット(例えば、検出ユニット5519、図55)と、を含む。処理ユニット(又はユニット5507から5519などのその1つ以上の構成要素)は、ディスプレイ上に、アプリケーションと関連付けられたテキストコンテンツを提示し(例えば、提示ユニット5507及び/又はディスプレイユニット5501によって)、テキストコンテンツの一部が(i)位置、(ii)連絡先、又は(iii)イベントに関連すると判定し(例えば、判定ユニット5509によって)、テキストコンテンツの一部が位置に関連すると判定すると、電子デバイス上の位置センサから位置情報を取得し(例えば、取得ユニット5511によって)、取得した位置情報を予測されたコンテンツアイテムとして表示するために準備し(例えば、情報準備ユニット5515によって)テキストコンテンツの一部が連絡先に関連すると判定すると、電子デバイス上でテキストコンテンツの一部に関連する連絡先情報について検索を行い(例えば、検索実施ユニット5513によって)、検索により取り出した、少なくとも1つの連絡先と関連付けられた情報を、予測されたコンテンツアイテムとして表示するために準備し(例えば、情報準備ユニット5515によって)、テキストコンテンツの一部がイベントに関連すると判定すると、電子デバイス上でテキストコンテンツの一部に関連するイベント情報について新たな検索を行い(例えば、検索実施ユニット5513によって)、少なくとも一部、新たな検索により取り出した少なくとも1つのイベントに基づく情報を、予測されたコンテンツアイテムとして表示するために準備し(例えば、情報準備ユニット5515によって)、アプリケーション内に、予測されたコンテンツアイテムを含むアフォーダンスを表示し(例えば、アフォーダンス表示ユニット5517及び/又はディスプレイユニット5501によって)、タッチ感知面を介して、アフォーダンスの選択を検出し(例えば、検出ユニット5519によって)、選択を検出したことに応じて、予測されたコンテンツアイテムと関連付けられた情報を、ディスプレイ上に、テキストコンテンツに隣接して表示する(例えば、提示ユニット5507及び/又はディスプレイユニット5501によって)ように構成されている。
(O17)O16に記載の電子デバイスの一部の実施形態では、処理ユニット(又はユニット5507から5519などのその1つ以上の構成要素)は、O1からO10のいずれか1つに記載の方法を実行するように更に構成されている。
上で(及び以下により詳細に)記載するように、本技術の一態様は、ユーザが関心を持つ可能性のあるコンテンツのユーザへの配布を向上するための、種々のソース(例えば、音声通信中に提供されるスピーチに基づく)から入手可能なデータの収集及び使用である。本開示は、いくつかの例においては、この収集されたデータが、特定の人物を固有に識別する、又は特定の人物と連絡を取る若しくは特定の人物を位置特定するために使用され得る個人情報データを含んでもよいと考える。そのような個人情報データは、人口統計上のデータ、場所ベースのデータ、電話番号、電子メールアドレス、家の住所、又は任意の他の身元特定可能な情報を含んでもよい。
本開示は、本技術で、そのような個人情報データの使用がユーザへの利益のために使用され得ることを認識している。例えば、よりユーザの興味を引く対象コンテンツを配信するために、個人情報データが使用されてもよい。したがって、そのような個人情報データの使用は、配信されるコンテンツの意図的な制御を可能にする。更に、ユーザに利益をもたらす個人情報データの他の使用目的が、本開示によって想到される。
本開示は、そのような個人情報データの収集、分析、開示、転送、記憶、又は他の使用目的の責任を負うエンティティが、適切に規定されたプライバシーのポリシー及び/又はプライバシーの慣行に準拠すると更に想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための業界又は政府の要件を満たすか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実行し常に使用すべきである。例えば、ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共有又は販売されるべきではない。更に、そのような収集は、ユーザに告知して同意を得た後にのみ実行するべきである。更に、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセスを有する他者が、それらのプライバシーのポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じ得る。更に、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
前述のことがらにもかかわらず、本開示はまた、ユーザが、個人情報データの使用又は個人情報データへのアクセスを選択的に阻止する実施形態も企図している。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するために、ハードウェア要素及び/又はソフトウェア要素を提供することができると想到する。例えば、音声通信を監視する、又はアプリケーション内でユーザが実行するアクションを監視する場合、本技術は、ユーザがサービスの登録中に個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするよう構成することができる。別の実施例では、ユーザは、対象のコンテンツ配信サービスに対して位置情報を提供しないことを選択してもよい。更に別の実施例では、ユーザは、正確な位置情報を提供しないが位置のゾーン情報の転送は許可することを選択してもよい。
したがって、本開示は、1つ以上の様々な開示された実施形態を実行するための個人情報データの使用を広範に網羅しているが、本開示は、それらの様々な実施形態がまた、そのような個人情報データにアクセスすることを必要とせずに実行されることも可能であることも企図している。即ち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分の欠如により、実施不可能となるものではない。例えば、ユーザに関連付けられたデバイスによって要求されるコンテンツなどの非個人情報データ若しくは必要最小限の個人情報、コンテンツ配信サービスが入手可能な他の非個人情報、又は公的に入手可能な情報に基づいて嗜好を推測することによって、コンテンツを選択し、ユーザへ配信することができる。
上述の種々の実施形態は本明細書に記載される任意の他の実施形態と組み合わせることができることに留意されたい。本明細書に記載される特徴及び利点は包括的ではなく、特に、当業者には、図面、明細書及び請求項に鑑み、多くの更なる特徴及び利点が明らかとなろう。更に、本明細書において使用される文言は、専ら読みやすさ及び説明の目的で選択されたものであり、本発明の主題を画定又は制限するために選択されたものではない点には留意されたい。
説明される様々な実施形態を良好に理解するため、以下の図面と併せて、以下の「発明を実施するための形態」セクションを参照されたい。ここで、類似の参照番号は、それらの図にわたって、対応する部分を指す。
一部の実施形態に係る、タッチ感知ディスプレイを備えるコンピューティングデバイスの高レベルブロック図である。
一部の実施形態に係る、イベント処理のための構成要素例のブロック図である。
一部の実施形態に係る、タッチ感知ディスプレイを有するポータブル多機能デバイスの概要である。
一部の実施形態に係る、ディスプレイとは別個のタッチ感知面を備えるコンピューティングデバイスを示すために使用される概要である。
一部の実施形態に係る、アプリケーションのメニューのためのユーザインタフェースを示すために使用されるタッチスクリーンの概要である。
一部の実施形態に係る、アプリケーション使用データを記憶するためのデータ構造を示すブロック図である。 一部の実施形態に係る、アプリケーション使用データを記憶するためのデータ構造を示すブロック図である。
一部の実施形態に係る、トリガー条件を記憶するためのデータ構造を示すブロック図である。 一部の実施形態に係る、トリガー条件を記憶するためのデータ構造を示すブロック図である。
一部の実施形態に係る、トリガー条件確立システムの一例を示すブロック図である。
一部の実施形態に係る、タッチ感知ディスプレイを備える電子デバイス上にて関連コンテンツを先見的に特定し、表面化(例えば、ユーザ選択のために表面化)させる方法を示すフローチャートである。 一部の実施形態に係る、タッチ感知ディスプレイを備える電子デバイス上にて関連コンテンツを先見的に特定し、表面化(例えば、ユーザ選択のために表面化)させる方法を示すフローチャートである。
一部の実施形態に係る、関連コンテンツを先見的に特定し、表面化させるためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、関連コンテンツを先見的に特定し、表面化させるためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、タッチ感知ディスプレイを備える電子デバイス上にて関連コンテンツを先見的に特定し、表面化(例えば、ユーザ選択のために表面化)させる方法を示すフローチャートである。 一部の実施形態に係る、タッチ感知ディスプレイを備える電子デバイス上にて関連コンテンツを先見的に特定し、表面化(例えば、ユーザ選択のために表面化)させる方法を示すフローチャートである。
一部の実施形態に係る、関連コンテンツを先見的に特定し、表面化させるためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、関連コンテンツを先見的に特定し、表面化させるためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、関連コンテンツを先見的に特定し、表面化させるためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、関連コンテンツを先見的に特定し、表面化させるためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、タッチ感知ディスプレイを備える電子デバイス上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案する方法を示すフローチャートである。 一部の実施形態に係る、タッチ感知ディスプレイを備える電子デバイス上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案する方法を示すフローチャートである。 一部の実施形態に係る、タッチ感知ディスプレイを備える電子デバイス上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案する方法を示すフローチャートである。
一部の実施形態に係る、タッチ感知ディスプレイ上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、タッチ感知ディスプレイ上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、タッチ感知ディスプレイ上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、タッチ感知ディスプレイ上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、タッチ感知ディスプレイ上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、タッチ感知ディスプレイ上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、タッチ感知ディスプレイ上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、タッチ感知ディスプレイ上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、タッチ感知ディスプレイ上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、タッチ感知ディスプレイ上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、ヒューリスティックに基づいて検索モードへと移行する方法を示すフローチャートである。
一部の実施形態に係る、ヒューリスティックに基づいて検索モードへと移行するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、ヒューリスティックに基づいて検索モードへと移行するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、タッチ感知ディスプレイを備える電子デバイス上にて車両位置を先見的に提供する方法を示すフローチャートである。
一部の実施形態に係る、車両位置を先見的に提供するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、車両位置を先見的に提供するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、検索クエリに対する近隣の対象地点(POI)情報を先見的に提供する方法を示すフローチャートである。 一部の実施形態に係る、検索クエリに対する近隣の対象地点(POI)情報を先見的に提供する方法を示すフローチャートである。
一部の実施形態に係る、検索クエリに対する近隣の対象地点(POI)情報を先見的に提供するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、検索クエリに対する近隣の対象地点(POI)情報を先見的に提供するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、検索クエリに対する近隣の対象地点(POI)情報を先見的に提供するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、検索クエリに対する近隣の対象地点(POI)情報を先見的に提供するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、検索クエリに対する近隣の対象地点(POI)情報を先見的に提供するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、音声通信からコンテンツアイテムを抽出し、その抽出したコンテンツアイテムと相互作用する方法を示すフローチャートである。 一部の実施形態に係る、音声通信からコンテンツアイテムを抽出し、その抽出したコンテンツアイテムと相互作用する方法を示すフローチャートである。
一部の実施形態に係る、音声通信から抽出されたコンテンツアイテムを表示し、相互作用するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、音声通信から抽出されたコンテンツアイテムを表示し、相互作用するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、音声通信から抽出されたコンテンツアイテムを表示し、相互作用するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、音声通信から抽出されたコンテンツアイテムを表示し、相互作用するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、音声通信から抽出されたコンテンツアイテムを表示し、相互作用するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、音声通信から抽出されたコンテンツアイテムを表示し、相互作用するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、音声通信が物理的位置を特定するスピーチを含むと判定し、アプリケーションを、その物理的位置についての情報でポピュレートする方法を示すフローチャートである。
一部の実施形態に係る、音声通信が物理的位置を特定するスピーチを含むと判定し、アプリケーションを、その物理的位置についての情報でポピュレートするためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、音声通信が物理的位置を特定するスピーチを含むと判定し、アプリケーションを、その物理的位置についての情報でポピュレートするためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、メッセージアプリケーションにて使用するための物理的位置を先見的に提案する方法を示すフローチャートである。 一部の実施形態に係る、メッセージアプリケーションにて使用するための物理的位置を先見的に提案する方法を示すフローチャートである。
一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案する方法を示すフローチャートである。
一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする方法を示すフローチャートである。 一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする方法を示すフローチャートである。
一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする(例えば、ライドシェアアプリケーションを、レビューアプリケーション内でユーザにより閲覧された位置についての情報で、ポピュレートする)ためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする(例えば、ライドシェアアプリケーションを、レビューアプリケーション内でユーザにより閲覧された位置についての情報で、ポピュレートする)ためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする(例えば、ライドシェアアプリケーションを、レビューアプリケーション内でユーザにより閲覧された位置についての情報で、ポピュレートする)ためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする(例えば、ライドシェアアプリケーションを、レビューアプリケーション内でユーザにより閲覧された位置についての情報で、ポピュレートする)ためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする(例えば、ライドシェアアプリケーションを、レビューアプリケーション内でユーザにより閲覧された位置についての情報で、ポピュレートする)ためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする(例えば、ライドシェアアプリケーションを、レビューアプリケーション内でユーザにより閲覧された位置についての情報で、ポピュレートする)ためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする(例えば、ライドシェアアプリケーションを、レビューアプリケーション内でユーザにより閲覧された位置についての情報で、ポピュレートする)ためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする(例えば、ライドシェアアプリケーションを、レビューアプリケーション内でユーザにより閲覧された位置についての情報で、ポピュレートする)ためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする(例えば、ライドシェアアプリケーションを、レビューアプリケーション内でユーザにより閲覧された位置についての情報で、ポピュレートする)ためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、先見的にポピュレートする(例えば、ライドシェアアプリケーションを、レビューアプリケーション内でユーザにより閲覧された位置についての情報で、ポピュレートする)ためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、第2のアプリケーションでの使用のために、第1のアプリケーション内でユーザにより以前に閲覧された情報を先見的に提案する方法を示すフローチャートである。 一部の実施形態に係る、第2のアプリケーションでの使用のために、第1のアプリケーション内でユーザにより以前に閲覧された情報を先見的に提案する方法を示すフローチャートである。
一部の実施形態に係る、車両での経路案内のための目的地として使用するための物理的位置を先見的に提案する方法を示すフローチャートである。
一部の実施形態に係る、車両での経路案内のための目的地として使用するための物理的位置を先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、貼り付けアクションを先見的に提案する方法を示すフローチャートである。
一部の実施形態に係る、貼り付けアクションを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、貼り付けアクションを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、貼り付けアクションを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。 一部の実施形態に係る、貼り付けアクションを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。
一部の実施形態に係る、モバイルデバイスの動的調整を実行するよう構成されたモバイルデバイスを示す。
一部の実施形態に係る、ヒューリスティックプロセスを呼び出すためのプロセス例を示す。
一部の実施形態に係る、ヒューリスティックプロセスを使用してモバイルデバイスの設定を調整するためのプロセスを示す。
一部の実施形態に係る、アプリケーションのバックグラウンドフェッチ更新を実行するためのシステム例を示す。
一部の実施形態に係る、モバイルデバイス100上のアプリケーションに対するユーザ呼び出しの蓋然性を判定するためのピア予想を示す。
一部の実施形態に係る、アプリケーションを予測的に起動してバックグラウンド更新を実行するためのプロセス例のフロー図である。
一部の実施形態に係る、モバイルデバイス上でアプリケーションをいつ起動するかを判定するためのプロセス例のフロー図である。
一部の実施形態に係る、トレンドテーブルへの入力のための状態遷移を示すフロー図である。
一部の実施形態に係る、プッシュ通知をモバイルデバイスに提供するためのシステムを示すブロック図である。
一部の実施形態に係る、プッシュ通知サーバにてノンウェイキングプッシュを実行するためのプロセス例のフロー図である。
一部の実施形態に係る、低優先プッシュ通知に応じて、アプリケーションのバックグラウンド更新を実行するためのプロセス例のフロー図である。
一部の実施形態に係る、高優先プッシュ通知に応じて、アプリケーションのバックグラウンド更新を実行するためのプロセス例のフロー図である。
一部の実施形態に係る、モバイルデバイス上にてデータのバックグラウンドダウンローディング及び/又はアップローディングを実行するためのシステム例のブロック図である。
一部の実施形態に係る、バックグラウンドダウンロード及びアップロードを実行するためのプロセス例のフロー図である。
一部の実施形態に係る、モバイルデバイス上のアプリケーションに対するバックグラウンド更新を有効及び/又は無効にするためのグラフィカルユーザインタフェース(GUI)例を示す。
一部の実施形態に係る、ピアデバイス間でデータをシェアするためのシステム例を示す。
一部の実施形態に係る、ピアデバイス間でデータをシェアするためのプロセス例を示す。
一部の実施形態に係る、入力されたクエリプレフィックスに基づく検索結果を返すシステムの一実施形態のブロック図である。
一部の実施形態に係る、入力されたクエリプレフィックスに基づくクエリ補完及び関連結果を判定するプロセスの一実施形態のフローチャートである。
一部の実施形態に係る、アグリゲータ及び複数の検索ドメインの一実施形態のブロック図である。
一部の実施形態に係る、クエリ補完検索ドメインに対する一実施形態の図である。
地図検索ドメインの一実施形態の図である。 一部の実施形態に係る、複数の検索ドメインからのクエリ補完を判定するプロセスの一実施形態のフローチャートである。
一部の実施形態に係る、判定されたクエリ補完から、複数の検索ドメインにわたる関連結果を判定するプロセスの一実施形態のフローチャートである。
一部の実施形態に係る、ユーザフィードバックをフィードバック検索インデックスに組み込むシステムの一実施形態のブロック図である。
一部の実施形態に係る、ユーザフィードバックを引用検索インデックスに組み込むプロセスの一実施形態のフローチャートである。
一部の実施形態に係る、ユーザ検索セッション中にユーザフィードバックを収集するプロセスの一実施形態のフローチャートである。
一部の実施形態に係る、ユーザフィードバックをフィードバックインデックスに組み込むプロセスの一実施形態のフローチャートである。
一部の実施形態に係る、ユーザフィードバックを使用して結果キャッシュを更新するプロセスの一実施形態のフローチャートである。
一部の実施形態に係る、特徴付けられたクエリ補完を使用してマルチドメイン検索を実行するフェデレータの一実施形態のブロック図である。
一部の実施形態に係る、語彙サービスを使用して関連結果を判定するプロセスの一実施形態のフローチャートである。
一部の実施形態に係る、クエリ補完を特徴付けるプロセスの一実施形態のフローチャートである。
一部の実施形態に係る、複数の検索ドメインからのクエリ補完を判定する補完モジュールの一実施形態のブロック図である。
一部の実施形態に係る、判定されたクエリ補完から複数の検索ドメインにわたる関連結果を判定する結果モジュールの一実施形態のブロック図である。
一部の実施形態に係る、ユーザ検索セッション中にユーザフィードバックを収集するフィードバック収集モジュールの一実施形態のブロック図である。
一部の実施形態に係る、ユーザフィードバックをフィードバックインデックスに組み込むフィードバック処理モジュールの一実施形態のブロック図である。
一部の実施形態に係る、ユーザフィードバックを使用して結果キャッシュを更新するクエリ結果更新モジュールの一実施形態のブロック図である。
一部の実施形態に係る、ユーザフィードバックをフィードバックインデックスに組み込むフィードバック処理モジュールの一実施形態のブロック図である。
一部の実施形態に係る、ユーザフィードバックを使用して結果キャッシュを更新するクエリ結果更新モジュールの一実施形態のブロック図である。
従来技術に既知のコンピューティングデバイス上のローカル検索サブシステム及びリモート検索サブシステムを、ブロック図の形態にて示す。
一部の実施形態に係る、コンピューティングデバイス上のリモート検索アプリケーションから返された結果を改善するために使用され得るローカル学習機能を有するローカル検索サブシステムを、ブロック図の形態にて示す。
一部の実施形態に係る、ローカル検索クエリ、ローカル結果、及び、ローカル結果に基づくローカルフィードバックを使用する、クエリ特徴をローカルにて学習する方法を、ブロック図の形態にて示す。
一部の実施形態に係る、ローカル検索クエリ及びリモート検索クエリの両方から返された検索結果、並びにローカル及びリモート検索クエリ結果の両方におけるローカルフィードバックを使用する、クエリ特徴をローカルにて学習する方法を、ブロック図の形態にて示す。
一部の実施形態に係る、リモートサービスに渡されたクエリに応じて、リモートサービスによりローカルデバイスに送信されたクエリ特徴をローカルにて学習する方法を、ブロック図の形態にて示す。
一部の実施形態に係る、新たな特徴を受信又は判定し、ローカルにてトレーニングし、使用する方法を、ブロック図の形態にて示す。
一部の実施形態に係る、本発明の一部の実施形態にて使用可能なソフトウェアスタックの例示的実施形態を示す。
一部の実施形態に係る、提案された連絡先のための例示的データアーキテクチャのブロック図を示す。
一部の実施形態に係る、提案されたカレンダーイベントのための例示的データアーキテクチャのブロック図を示す。
一部の実施形態に係る、提案された連絡先及びカレンダーイベントを提供するための例示的ユーザインタフェースを示す。図1A~1B、2、及び3は、本セクションに記載の連絡先及びイベント情報を提案するための技術を実行するための例示的デバイスの説明を提供する。図34-6Aは、連絡先及びイベント情報を提案するための例示的ユーザインタフェース示す。これらの図内のユーザインタフェースはまた、図34-7A~図34-13に示すプロセスを含む、以下に説明するプロセスを示すために使用される。 一部の実施形態に係る、提案された連絡先及びカレンダーイベントを提供するための例示的ユーザインタフェースを示す。図1A~1B、2、及び3は、本セクションに記載の連絡先及びイベント情報を提案するための技術を実行するための例示的デバイスの説明を提供する。図34-6Bは、連絡先及びイベント情報を提案するための例示的ユーザインタフェース示す。これらの図内のユーザインタフェースはまた、図34-7A~図34-13に示すプロセスを含む、以下に説明するプロセスを示すために使用される。 一部の実施形態に係る、提案された連絡先及びカレンダーイベントを提供するための例示的ユーザインタフェースを示す。図1A~1B、2、及び3は、本セクションに記載の連絡先及びイベント情報を提案するための技術を実行するための例示的デバイスの説明を提供する。図34-6Cは、連絡先及びイベント情報を提案するための例示的ユーザインタフェース示す。これらの図内のユーザインタフェースはまた、図34-7A~図34-13に示すプロセスを含む、以下に説明するプロセスを示すために使用される。 一部の実施形態に係る、提案された連絡先及びカレンダーイベントを提供するための例示的ユーザインタフェースを示す。図1A~1B、2、及び3は、本セクションに記載の連絡先及びイベント情報を提案するための技術を実行するための例示的デバイスの説明を提供する。図34-6Dは、連絡先及びイベント情報を提案するための例示的ユーザインタフェース示す。これらの図内のユーザインタフェースはまた、図34-7A~図34-13に示すプロセスを含む、以下に説明するプロセスを示すために使用される。 一部の実施形態に係る、提案された連絡先及びカレンダーイベントを提供するための例示的ユーザインタフェースを示す。図1A~1B、2、及び3は、本セクションに記載の連絡先及びイベント情報を提案するための技術を実行するための例示的デバイスの説明を提供する。図34-6Eは、連絡先及びイベント情報を提案するための例示的ユーザインタフェース示す。これらの図内のユーザインタフェースはまた、図34-7A~図34-13に示すプロセスを含む、以下に説明するプロセスを示すために使用される。 一部の実施形態に係る、提案された連絡先及びカレンダーイベントを提供するための例示的ユーザインタフェースを示す。図1A~1B、2、及び3は、本セクションに記載の連絡先及びイベント情報を提案するための技術を実行するための例示的デバイスの説明を提供する。図34-6Fは、連絡先及びイベント情報を提案するための例示的ユーザインタフェース示す。これらの図内のユーザインタフェースはまた、図34-7A~図34-13に示すプロセスを含む、以下に説明するプロセスを示すために使用される。 一部の実施形態に係る、提案された連絡先及びカレンダーイベントを提供するための例示的ユーザインタフェースを示す。図1A~1B、2、及び3は、本セクションに記載の連絡先及びイベント情報を提案するための技術を実行するための例示的デバイスの説明を提供する。図34-6Gは、連絡先及びイベント情報を提案するための例示的ユーザインタフェース示す。これらの図内のユーザインタフェースはまた、図34-7A~図34-13に示すプロセスを含む、以下に説明するプロセスを示すために使用される。
一部の実施形態に係る、提案された連絡先を生成するための例示的プロセスのフロー図を示す。 一部の実施形態に係る、提案された連絡先を生成するための例示的プロセスのフロー図を示す。
一部の実施形態に係る、既存の連絡先を、提案された連絡先情報のアイテムと共に更新するための例示的プロセスのフロー図を示す。 一部の実施形態に係る、既存の連絡先を、提案された連絡先情報のアイテムと共に更新するための例示的プロセスのフロー図を示す。
一部の実施形態に係る、連絡先を、提案された連絡先情報と共に表示するための例示的プロセスのフロー図を示す。 一部の実施形態に係る、連絡先を、提案された連絡先情報と共に表示するための例示的プロセスのフロー図を示す。
一部の実施形態に係る、提案された連絡先情報を、メッセージと共に表示するための例示的プロセスのフロー図を示す。
一部の実施形態に係る、提案されたカレンダーイベントを生成するための例示的プロセスのフロー図を示す。 一部の実施形態に係る、提案されたカレンダーイベントを生成するための例示的プロセスのフロー図を示す。
一部の実施形態に係る、提案されたイベント情報を、メッセージと共に表示するための例示的プロセスのフロー図を示す。
一部の実施形態に係る、複数の提案された連絡先又はイベント情報を、メッセージと共に表示するための例示的プロセスのフロー図を示す。
一部の実施形態に係る電子デバイスの機能ブロック図である。
一部の実施形態に係る電子デバイスの機能ブロック図である。
一部の実施形態に係る、検出されたイベントに基づいてアプリケーションを提案する方法35_100のフローチャートである。
一部の実施形態に係るセグメンテーションプロセス35_200を示す。
一部の実施形態により生成されてよい決定木35_300を示す。
一部の実施形態に係る、アプリケーションを、コンピューティングデバイスのユーザに、イベントに基づいて提案する方法35_400のフローチャートである。
一部の実施形態に係る、様々な正確な数値及び不正確な数値に対する二項分布例のプロットを示す。 一部の実施形態に係る、様々な正確な数値及び不正確な数値に対する二項分布例のプロットを示す。 一部の実施形態に係る、様々な正確な数値及び不正確な数値に対する二項分布例のプロットを示す。 一部の実施形態に係る、様々な正確な数値及び不正確な数値に対する二項分布例のプロットを示す。
一部の実施形態に係る、セグメンテーションに起因する親モデル及びサブモデルを示す。 一部の実施形態に係る、セグメンテーションに起因する親モデル及びサブモデルを示す。
一部の実施形態に係る、1つ以上のアプリケーションとの相互作用のためのユーザインタフェースをユーザに提供するためのアーキテクチャ例35_700を示す。
一部の実施形態に係る、トリガーイベントに基づいてアプリケーションを特定する方法のフローチャートである。
一部の実施形態に係る、トリガーイベントを判定するためのシステムのブロック図を示す。
一部の実施形態に係る、トリガーイベントに基づいて、ユーザに対するアプリケーションを特定するためのシステムのブロック図を示す。
一部の実施形態に係る、複数の予測モデルを用いてアプリケーションを特定するためのシステムのブロック図を示す。
一部の実施形態に係る、デバイスでのトリガーイベントに基づいてアプリケーションを特定する方法のフローチャートである。
一部の実施形態に係る、音楽アプリケーションのためのユーザインタフェースを有するデバイスの簡易図である。
一部の実施形態に係る、特定されたアプリケーションをユーザインタフェースから消去する方法のフローチャートである。 一部の実施形態に係る、特定されたアプリケーションをユーザインタフェースから消去する方法のフローチャートである。
一部の実施形態に係る、検出されたイベントに基づいて、宛先を提案する方法100のフローチャートである。
一部の実施形態に係る、トリガーイベントを判定するためのシステムのブロック図を示す。
一部の実施形態に係る、トリガーイベントに基づいて、宛先を特定するためのシステムのブロック図を示す。
一部の実施形態に係る、電子メールアプリケーションのためのユーザインタフェース内に、宛先を提案する一例を示す。
一部の実施形態に係る、検索アプリケーションのためのユーザインタフェース内に、宛先を提案する一例を示す。
一部の実施形態に係る、イベントに基づいて、コンピューティングデバイスのユーザに受領者を提案する方法37-600のフローチャートである。
一部の実施形態に係る、宛先を提案するためのデータフロー例を示す。
一部の実施形態に係る、相互作用モジュールのブロック図を示す。
一部の実施形態に係る、宛先を提案するためのユーザインタフェースをユーザに提供するためのアーキテクチャ例37-900を示す。
一部の実施形態に係る、本明細書に記載の様々な技術を実施するよう構成されたモバイルコンピューティングデバイスの異なる構成要素のブロック図を示す。
一部の実施形態に係る、図38-1のアプリケーション予測エンジンにより実行される方法を示す。
一部の実施形態に係る、図1の検索アプリケーションにより実行される方法を示す。
一部の実施形態に係る、図38-1の検索アプリケーションのユーザインタフェース例の概念図を示す。
一部の実施形態に係る、本明細書に記載の様々な技術を実施するよう構成されたモバイルコンピューティングデバイスの異なる構成要素のブロック図を示す。
一部の実施形態に係る、図39-1(又は、図1A)に示すモバイルコンピューティングデバイスの特定の構成要素のより詳細なブロック図を示す。
一部の実施形態に係る、予測エンジンの高レベルな初期化及び動作の方法を示す。
一部の実施形態に係る、予測エンジンでの予測を同期して提供する方法を示す。
一部の実施形態に係る、予測エンジンでの予測を非同期に提供する方法を示す。
一部の実施形態に係る、予測を同期して受信することを要求する消費者向けアプリケーションの方法を示す。
一部の実施形態に係る、予測を非同期に受信するよう登録する消費者向けアプリケーションの方法を示す。
一部の実施形態に係る、予測エンジンセンターにて予測エンジン登録を管理する方法を示す。
一部の実施形態に係る、予測エンジンセンターにて消費者向けアプリケーションに予測を同期して提供する方法を示す。
一部の実施形態に係る、予測エンジンセンターにて消費者向けプリケーションに予測を非同期に提供する方法を示す。
一部の実施形態に係る、コンピューティングデバイスの現在のコンテキストにおける変化を監視し、予測し、コンテキストクライアントに通知するためのシステム例のブロック図である。
一部の実施形態に係る、現在のコンテキストを構成し得るコンテキストアイテムの一例を示す。
一部の実施形態に係る、現在のコンテキストに加えられている新たなコンテキストアイテムの一例を示す。
一部の実施形態に係る、コールバック述語データベース例を示す。
一部の実施形態に係る、コンテキストアイテムに関連付けられた、経時による状態変化例を示すグラフである。
一部の実施形態に係る、コンテキストアイテムに関連付けられたイベントストリーム例を示すグラフである。
一部の実施形態に係る、過去イベントストリームデータベース例を示す。
一部の実施形態に係る、コンテキストコールバック通知を要求クライアントに提供するためのシステム例のブロック図である。
一部の実施形態に係る、終了した要求クライアントを再開始することを示すシステム例のブロック図である。
一部の実施形態に係る、終了した要求クライアントを再開始することを示すシステム例のブロック図である。
一部の実施形態に係る、終了したコンテキストデーモンを再開始することを示すシステム例のブロック図である。
一部の実施形態に係る、終了したコンテキストデーモンを再開始することを示すシステム例のブロック図である。
一部の実施形態に係る、終了したコンテキストデーモン及び要求クライアントを再開始することを示すシステム例のブロック図である。
一部の実施形態に係る、終了したコンテキストデーモン及び要求クライアントを再開始することを示すシステム例のブロック図である。
一部の実施形態に係る、起動デーモンにより受信されたデバイス状態情報に基づいて、クライアント及び/又はコンテキストデーモンを再開始するよう構成されたシステム例のブロック図である。
一部の実施形態に係る、起動デーモンを使用してコンテキストデーモンを再開始することを示すシステム例のブロック図である。
一部の実施形態に係る、起動デーモンを使用してコンテキストデーモンを再開始することを示すシステム例のブロック図である。
一部の実施形態に係る、起動デーモンを使用して要求クライアントを再開始することを示すシステム例のブロック図である。
一部の実施形態に係る、起動デーモンを使用して要求クライアントを再開することを示すシステム例のブロック図である。
一部の実施形態に係る、将来のイベントを予測するスロットワイズ平均化(slot-wise averaging)の一例を示すグラフである。
一部の実施形態に係る、スロット重み付け(slot weighting)を示すグラフ例を示す。
一部の実施形態に係る、将来のコンテキストを予測する方法例を示すグラフである。
一部の実施形態に係る、スロットワイズ確率(slot-wise probabilities)を確率曲線に変換する方法例を示すグラフである。
一部の実施形態に係る、予測された将来のイベントを含むイベントストリーム例を示す。
一部の実施形態に係る、コンピューティングデバイス上のコンテキスト変化をクライアントに通知するためのプロセス例のフロー図である。
一部の実施形態に係る、コンテキストデーモンを再開始してコールバック要求をサービスするためのプロセス例のフロー図である。
一部の実施形態に係る、コールバッククライアントを再開始してコールバック通知を受信するためのプロセス例のフロー図である。
一部の実施形態に係る、過去コンテキスト情報に基づいて将来のイベントを予測するためのプロセス例のフロー図である。
一部の実施形態に係る、スリープコンテキストコールバック要求をサービスするためのプロセス例のフロー図である。
ローカルデバイス検索インデックスでの使用のためにアプリケーション状態のインデックスを付けるシステムの一実施形態のブロック図である。
オンデバイスアプリケーション状態検索インデックスを使用してアプリケーション状態を検索するシステムの一実施形態のブロック図である。
他のクエリ結果中の、アプリケーション状態クエリ結果を表示するユーザインタフェースの実施形態のブロック図である。
デバイス上の複数の異なるアプリケーションから受信したアプリケーション状態にインデックスを付けるプロセスの一実施形態のフロー図である。
アプリケーション状態インデックスを使用して、クエリに対するクエリ結果を判定するプロセスの一実施形態のフロー図である。
アプリケーション状態を受信し、クエリ結果の一部として提示するプロセスの一実施形態のフロー図である。
リモート検索インデックスでの使用のために、アプリケーション状態にインデックスを付けるシステムの一実施形態のブロック図である。
リモートアプリケーション状態検索インデックスを使用して、アプリケーション状態を検索するシステムの一実施形態のブロック図である。
アプリケーション状態をアプリケーション状態インデックスに加えるプロセスの一実施形態のフロー図である。
アプリケーション状態をアプリケーション状態インデキシングサービスにエクスポートするプロセスの一実施形態のフロー図である。
アプリケーション状態インデックスを使用して、クエリ検索を実行するプロセスの一実施形態のフローチャートである。
アプリケーション状態を受信し、クエリ結果の一部として提示するプロセスの一実施形態のフロー図である。
リモート検索インデックスでの使用のために、アプリケーション状態ビューにインデックスを付けるシステムの一実施形態のブロック図である。
アプリケーションビューの一実施形態のブロック図である。
アプリケーション状態を使用して、アプリケーション状態ビューを生成するプロセスの一実施形態のフローチャートである。
アプリケーション状態ビューを含むアプリケーション状態を受信し、クエリ結果の一部として提示するプロセスの一実施形態のフローチャートである。
一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。
上記のように、そして以下に詳述するように、アプリケーション及びそれらのアプリケーション内の所望する機能に素早くアクセスするための、より迅速でより効率的な方法及びインタフェースを備える電子デバイスの要望が高まっている。特に、繰り返しタスクを排除し、ユーザが明示的に関連情報を要求する前にそれを特定して提供することで、先見的なアシスタンスを提供するようユーザを補助するデバイスへの要望が高まっている。更に、アプリケーション及びそれらのアプリケーション内の所望する機能に、特定の期間(例えば、毎朝起床後にカレンダーアプリケーションにアクセスする)及び特定の場所(例えば、ジムで音楽アプリケーションにアクセスする)などにて素早くアクセスするという要望が高まっている。本明細書に開示するものは、それらの要望に対処し、アプリケーションと、それらのアプリケーション内の機能に、それらの特定の場所及び期間などにて素早くアクセスする方法をユーザに提供する新たな方法及びインタフェースである。このような方法及びインタフェースは任意選択的に、アプリケーションにアクセスするための既存の方法を補完又は置き換える。このような方法及びインタフェースは、ユーザの認識的負担を軽減し、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作デバイスの場合、このような方法及びインタフェースは、電力を節約し、バッテリを充電する間隔を延長する。更に、このような方法及びインタフェースは、必要な入力数を減らすことにより、タッチ感知ディスプレイの寿命を延ばすよう補助する(例えば、連続的にかつ漫然とタッチ感知ディスプレイをタップして所望する情報を特定する代わりに、本明細書に開示する方法及びインタフェースは、ユーザ入力を必要とすることなく、情報を先見的に提供する)。
以下、図1A~1E、及び2は、デバイス例の説明を提供する。図10及び11は、電子デバイス例の機能ブロック図を提供する。図3A~3B及び4A~4Bは、関連コンテンツを先見的に特定し、表面化させるために使用されるデータ構造例のブロック図である(これらのデータ構造は、図6A~6Bに関連して説明される方法及び図8A~8Bを参照して説明される方法にて使用される)。図5は、関連コンテンツを先見的に特定し、表面化させるために使用されるトリガー条件を確立するためのシステム例を示すブロック図である(このシステム例は、図6A~6Bに関連して説明される方法及び図8A~8Bを参照して説明される方法にて使用される)。図6A~6Bは、関連コンテンツを先見的に特定し、表面化させる方法を示すフローチャートである。図7A~7Bは、関連コンテンツを先見的に特定し、表面化させるユーザインタフェース及びジェスチャ例を示すために使用されるタッチ感知ディスプレイの概要である。図8A~8Bは、関連コンテンツを先見的に特定し、表面化させる方法を示すフローチャートである。図9A~9Dは、関連コンテンツを先見的に特定し、表面化させるための追加ユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。図3A~3B、4A~4B、5、及び7A~7Bは、図6A~6Bの方法及び/又はプロセスを示すために使用される。図3A~3B、4A~4B、5、及び9A~9Dは、図8A~8Bの方法及び/又はプロセスを示すために使用される。
図10A~10Cは、タッチ感知ディスプレイを備える電子デバイス上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案する方法を示すフローチャートである。図11A~11Jは、タッチ感知ディスプレイ上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。図11A~11Jは、図10A~10Cの方法及び/又はプロセスを示すために使用される。
図12は、ヒューリスティックに基づいて検索モードへと移行する方法を示すフローチャートである。図13A~13Bは、ヒューリスティックに基づいて検索モードへと移行するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。図13A~13Bは、図12の方法及び/又はプロセスを示すために使用される。
図14は、一部の実施形態に係る、タッチ感知ディスプレイを備える電子デバイス上にて車両位置を先見的に提供する方法を示すフローチャートである。図15A~15Bは、一部の実施形態に係る、車両位置を先見的に提供するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。図15A~15Bは、図14の方法及び/又はプロセスを示すために使用される。
図16A~16Bは、一部の実施形態に係る、検索クエリに対する近隣の対象地点(POI)情報を先見的に提供する方法を示すフローチャートである。図17A~17Eは、一部の実施形態に係る、検索クエリに対する近隣の対象地点(POI)情報を先見的に提供するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。図16A~16Bは、図17A~17Eの方法及び/又はプロセスを示すために使用される。
図18A~18Bは、一部の実施形態に係る、音声通信からコンテンツアイテムを抽出し、その抽出したコンテンツアイテムと相互作用する方法を示すフローチャートである。図19A~19Fは、一部の実施形態に係る、音声通信から抽出されたコンテンツアイテムを表示し、相互作用するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。図19A~19Fは、図18A~18Bの方法及び/又はプロセスを示すために使用される。
図20は、一部の実施形態に係る、音声通信が物理的位置を特定するスピーチを含むと判定し、アプリケーションを、その物理的位置についての情報でポピュレートする方法を示すフローチャートである。図21A~21Bは、一部の実施形態に係る、音声通信が物理的位置を特定するスピーチを含むと判定し、アプリケーションを、その物理的位置についての情報でポピュレートするためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。図19A~19F及び21A~21Bは、図20の方法及び/又はプロセスを示すために使用される。
図22A~22Bは、一部の実施形態に係る、メッセージアプリケーションにて使用するための物理的位置を先見的に提案する方法を示すフローチャートである。図23A~23Oは、一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案するため(例えば、ユーザによる容易な選択、及び、メッセージアプリケーション内での含有のため)のユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。図23A~23Oは、図22A~22Bの方法及び/又はプロセスを示すために使用される。
図22Cは、一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案する方法を示すフローチャートである。図23A~23Oは、図22Cの方法及び/又はプロセスを示すために使用される。
図24A~24Bは、一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、前もって先見的にポピュレートする方法を示すフローチャートである。図25A~25Jは、一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、前もって先見的にポピュレートする(例えば、ライドシェアアプリケーションを、レビューアプリケーション内でユーザにより閲覧された位置についての情報で、ポピュレートする)ためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。図25A~25Jは、図24A~24Bの方法及び/又はプロセスを示すために使用される。
図26A~26Bは、一部の実施形態に係る、第2のアプリケーションでの使用のために、第1のアプリケーション内でユーザにより以前に閲覧された情報を先見的に提案する方法を示すフローチャートである。図25A~25Jは、図26A~26Bの方法及び/又はプロセスを示すために使用される。
図27は、一部の実施形態に係る、車両での経路案内のための目的地として使用するための物理的位置を先見的に提案する方法を示すフローチャートである。図28は、一部の実施形態に係る、車両での経路案内のための目的地として使用するための物理的位置を先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。図28は、図27の方法及び/又はプロセスを示すために使用される。
図29は、一部の実施形態に係る、貼り付けアクションを先見的に提案する方法を示すフローチャートである。図30A~30Dは、一部の実施形態に係る、貼り付けアクション先見的に提案するためのユーザインタフェースを示すために使用されるタッチ感知ディスプレイの概要である。図30A~30Dは、図29の方法及び/又はプロセスを示すために使用される。
「発明を実施するための追加形態」セクション内のセクション1~11は、図1A~30Dに関連して提供される説明を補完する追加詳細を説明する。
ここで、添付図面に実施例が示される実施形態を、詳細に参照する。以下の詳細な説明では、説明されている様々な実施形態の完全な理解を提供するために数多くの具体的な詳細が記載されている。しかしながら、説明されている様々な実施形態は、これらの具体的な詳細を伴わずとも実践し得ることが、当業者には明らかであろう。他の例においては、周知の、方法、手続き、構成要素、回路、及びネットワークは、実施形態の態様を不必要に不明瞭なものとしないよう、詳細には説明されていない。
本明細書では、第1、第2などの用語は、一部の実施例で、様々な要素を説明するために使用されるが、これらの要素は、それらの用語によって限定されるべきではないことも理解されるであろう。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施形態の範囲から逸脱することなく、第1の接触は、第2の接触と称することができ、同様に、第2の接触は、第1の接触と称し得る。第1の接触及び第2の接触は両方とも接触であるが、それらは同じ接触ではない。
本明細書で説明される様々な実施形態の説明で使用される用語は、特定の実施形態を説明することのみを目的とするものであって、限定することを意図するものではない。様々な記載の実施形態、及び添付の特許請求の範囲で使用される時に、単数形「a」、「an」、及び「the」は、文脈が別途明確に示さない限り、複数形も同様に含むことが意図されている。本明細書で使用する時、用語「及び/又は」は、関連する列挙されたアイテムのうちの1つ以上の任意の全ての可能な組み合わせを指し、かつこれを含むことをもまた理解されたい。用語「includes(含む)、「including(含む)」、「comprises(含む)」及び/又は「comprising(含む)」は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらの群、の存在又は追加を除外しないことが更に理解されるであろう。
本明細書で使用する時、用語「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)((述べられる条件又はイベント)の検出に応じて)」を意味するものと、任意選択的に、解釈する。
本明細書の開示は、特定のユーザインタフェース要素又はタッチ感知ディスプレイの特定の一部上での、にての、にわたる、の上での、又は、の実質的にそれ以内でのタッチ入力の検出を互換的に引用する。本明細書で使用する時、特定のユーザインタフェース要素「にて」検出されたタッチ入力はまた、コンテキストによっては、同じユーザインタフェース要素「上で」、「にわたって」、「の上で」、又は、「の実質的にそれ以内で」検出されたタッチ入力であり得る。一部の実施形態では、及び、以下に詳述するように、タッチ入力を検出するための所望する感度レベルは、電子デバイスのユーザにより構成される(例えば、タッチ入力が完全にユーザインタフェース要素内である場合にのみ、そのタッチ入力は検出されるべきであると、ユーザは決定し得る(及び、電子デバイスを構成して操作し得る))。
電子デバイス、このようなデバイス用のユーザインタフェース、及びこのようなデバイスを使用するための関連処理、の実施形態を説明する。一部の実施形態では、このデバイスは、PDA機能及び/又は音楽プレーヤ機能などの、他の機能も含む、モバイル電話機などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態としては、限定を伴わずに、California州CupertinoのAPPLE Inc.のIPHONE(登録商標)、IPOD TOUCH(登録商標)、及びIPAD(登録商標)デバイスが挙げられる。タッチ感知面(例えば、タッチ感知ディスプレイ及び/又はタッチパッド)を備えるラップトップ又はタブレットコンピュータなどの他のポータブル電子デバイスも、任意選択的に、使用される。また、一部の実施形態では、このデバイスはポータブル通信デバイスではなく、タッチ感知面(例えば、タッチ感知ディスプレイ及び/又はタッチパッド)を備えるデスクトップコンピュータであることを理解されたい。
以下の説明では、ディスプレイ及びタッチ感知面を備える電子デバイスについて説明する。しかし、この電子デバイスは、物理キーボード、マウス、及び/又はジョイスティックなどの1つ以上の他の物理ユーザインタフェースデバイスを任意選択的に含むことを理解されたい。
本デバイスは、一般的に、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、テレビ会議アプリケーション、電子メールアプリケーション、インスタントメッセージアプリケーション、ヘルス/フィットネスアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウズアプリケーション、デジタル音楽プレーヤアプリケーション及び/又はデジタルビデオプレーヤアプリケーションのうちの1つ以上などの様々なアプリケーションをサポートする。
このデバイス上で実行される様々なアプリケーションは、タッチ感知面などの、少なくとも1つの共通の物理ユーザインタフェースデバイスを、任意選択的に使用する。タッチ感知面の1つ以上の機能、並びにデバイス上に表示される対応する情報は、アプリケーションごとに、及び/又は対応するアプリケーション内で、任意選択的に、調整及び/又は変更される。このように、デバイスの共通の(タッチ感知面などの)物理アーキテクチャは、ユーザにとって直観的かつ透過的なユーザインタフェースを有する様々なアプリケーションを、任意選択的にサポートする。
次に、タッチ感知ディスプレイを備えるポータブル電子デバイスの実施形態に注意を向ける。図1Aは、一部の実施形態に係る、タッチ感知ディスプレイ112を備えるポータブル多機能デバイス100(本明細書ではまた、互換的に、電子デバイス100又はデバイス100とも呼ぶ)を示すブロック図である。タッチ感知ディスプレイ112は、便宜上「タッチスクリーン」と呼ばれる場合があり、タッチ感知ディスプレイシステムとして、知られる場合又は呼ばれる場合もある。デバイス100は、(任意選択的に、1つ以上のコンピュータ可読記憶媒体を含む)メモリ102、コントローラ120、1つ以上の処理ユニット(CPU)122、周辺機器インタフェース118、RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、入出力(I/O)サブシステム106、他の入力又は制御デバイス116、及び外部ポート124を含む。デバイス100は、1つ以上の光センサ164を任意選択的に含む。デバイス100は、デバイス100(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)上の接触の強度を検出するための、1つ以上の強度センサ165を任意選択的に含む。デバイス100は、デバイス100上にタクタイル出力を生成する(例えば、デバイス100のタッチ感知ディスプレイシステム112又はデバイス100のタッチパッドなどの、タッチ感知面上にタクタイル出力を生成する)ための、1つ以上のタクタイル出力生成器167を任意選択的に含む。これらの構成要素は、1つ以上の通信バス又は信号ライン103を介して任意選択的に通信する。
本明細書及び特許請求の範囲で使用されるとき、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指接触)の力又は圧力(単位面積当りの力)、あるいはタッチ感知面上の接触の力又は圧力の代替物(代用物)を指す。接触の強度は、少なくとも4つの別個の値を含み、より典型的には、何百もの異なる値(例えば、少なくとも256)を含む、値の範囲を有する。接触の強度は、様々な方法及び様々なセンサ、又はセンサの組み合わせを使用して、任意選択的に、判定(又は、測定)される。例えば、タッチ感知面の下に又は隣接して配置された1つ以上の力センサは、タッチ感知面上の様々な点における力を測定するために、任意選択的に使用される。一部の実装において、複数の力センサの力測定値を組み合わせて(例えば、加重平均)、接触力の推定値を判定する。同様に、タッチ感知面上のスタイラスの圧力を判定するために、スタイラスの圧力感知チップが、任意選択的に用いられる。あるいは、タッチ感知面上で検出される接触領域のサイズ及び/若しくはその変化、接触に近接するタッチ感知面の電気容量及び/若しくはその変化、並びに/又は、接触に近接するタッチ感知面の抵抗及び/若しくはその変化が、タッチ感知面上の接触の力又は圧力の代替物として、任意選択的に用いられる。一部の実装では、接触の力又は圧力の代替的測定値は、強度閾値を超えているか否かを判定するために直接に用いられる(例えば、強度閾値は、代替的測定値に対応する単位で記述される)。一部の実装では、接触の力又は圧力の代替的測定値は、推定される力又は圧力に変換され、この推定される力又は圧力を用いて、強度閾値を超えているか否かを判定する(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。
本明細書及び特許請求の範囲で使用される時、用語「タクタイル出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、デバイスの別の構成要素(例えば、筐体)に対する物理的変位、又はデバイスの重心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況において、物理的変位によって生成されたタクタイル出力は、デバイス又はデバイスの構成要素の物理的特性の認識された変化に相当する触感として、ユーザによって解釈される。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として任意選択的に解釈される。一部の場合には、ユーザの動作により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がない時でさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じるであろう。別の実施例として、タッチ感知面の運動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるものではあるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。従って、タクタイル出力が、ユーザの特定の感覚認知(例えば、「アップクリック」、「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成されたタクタイル出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
デバイス100は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス100は、示されるものよりも多いか又は少ない構成要素を任意選択的に有するか、2つ以上の構成要素を任意選択的に組み合わせるか、又は構成要素の異なる構成若しくは配置を任意選択的に有することを理解されたい。図1Aに示される様々な構成要素は、1つ以上の信号処理回路、及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせで実装される。
メモリ102は、任意選択的に、高速ランダムアクセスメモリ(例えば、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイス)を含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの、不揮発性メモリを含む。メモリ102は、プロセッサ(単数又は複数)122からリモートに位置する1つ以上の記憶デバイスを任意選択的に含む。CPU122及び周辺機器インタフェース118などの、デバイス100の他の構成要素によるメモリ102へのアクセスは、コントローラ120により任意選択的に制御される。
周辺機器インタフェース118を使用して、本デバイスの入力及び出力周辺機器を、CPU122及びメモリ102に連結することができる。1つ以上のプロセッサ122は、デバイス100のための様々な機能を実行するため並びにデータを処理するために、メモリ102に記憶された様々なソフトウェアプログラム及び/若しくは命令セットを動作させる、又は実行する。
一部の実施形態では、周辺機器インタフェース118、CPU122、及びコントローラ120は、任意選択的に、チップ104などの単一チップ上に実装される。一部の他の実施形態では、これらは、任意選択的に、個別のチップ上に実装される。
RF(無線周波数)回路108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路108は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路108は、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(SIM)カード、メモリなどを含むがこれらに限定されない、これらの機能を実行するための周知の回路を、任意選択的に含んでいる。RF回路108は、ワールドワイドウェブ(WWW)とも呼ばれるインターネット、イントラネット、並びに/又は、セルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)及び/若しくは、メトロポリタンエリアネットワーク(MAN)、などの無線ネットワーク、及び他のデバイスと無線通信によって、任意選択的に通信する。無線通信は、任意選択的に、Global System for Mobile Communications(GSM)(登録商標)、Enhanced Data GSM Environment(EDGE)(登録商標)、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、Evolution、Data-Only(EV-DO)、HSPA、HSPA+、Dual-Cell HSPA(DC-HSPDA)、ロングタームエボリューション(LTE)、近距離無線通信(NFC)、広帯域符号分割多元接続(W-CDMA)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth(登録商標)、及び/又はワイヤレスフィデリティ(Wi-Fi)(登録商標)(例えば、IEEE802.1 la、IEEE802.1 lb、IEEE802.1 lg、及び/又はIEEE802.1ln)を含むが、これらに限定されない複数の通信規格、プロトコル及び技術のいずれかを用いる。
オーディオ回路110、スピーカ111、及びマイクロフォン113は、ユーザとデバイス100との間のオーディオインタフェースを提供する。オーディオ回路110は、周辺機器インタフェース118からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ111に送信する。スピーカ111は、電気信号を人間の可聴音波に変換する。オーディオ回路110は、マイクロフォン113により音波から変換された電気信号もまた受信する。オーディオ回路110は、電気信号をオーディオデータに変換し、このオーディオデータを処理のために周辺機器インタフェース118に送信する。オーディオデータは、周辺機器インタフェース118によって任意選択的に、メモリ102及び/若しくはRF回路108から取り出され、並びに/又はメモリ102及び/若しくはRF回路108へ送信される。一部の実施形態では、オーディオ回路110はヘッドセットジャックを更に備える。ヘッドセットジャックは、オーディオ回路110と、出力専用ヘッドホン又は出力(例えば、片耳又は両耳用のヘッドホン)及び入力(例えば、マイクロフォン)の両方を有するヘッドセットなどの、取り外し可能なオーディオ入出力周辺機器と、の間のインタフェースを提供する。
I/Oサブシステム106は、周辺機器インタフェース118に、タッチスクリーン112及び他の入力制御デバイス116などのデバイス100の入出力周辺機器を接続する。I/Oサブシステム106は、任意選択的に、ディスプレイコントローラ156、光センサコントローラ158、強度センサコントローラ159、触覚フィードバックコントローラ161、及び他の入力若しくは制御デバイスのための1つ以上の入力コントローラ160を含む。1つ以上の入力コントローラ160は、他の入力又は制御デバイス116から電気信号を受信し、それらへ電気信号を送信する。他の入力制御デバイス116は、任意選択的に、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。一部の代替的な実施形態では、入力コントローラ(単数又は複数)160は、キーボード、赤外線ポート、USBポート、及びマウスなどのポインタデバイスのうちのいずれかに、任意選択的に連結される(又は、いずれにも連結されない)。1つ以上のボタンは、スピーカ111及び/又はマイクロフォン113の音量調整のためのアップ/ダウンボタンを任意選択的に含む。1つ以上のボタンは、プッシュボタンを任意選択的に含む。
タッチ感知ディスプレイ112は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ156は、タッチスクリーン112から電気信号を受信し、及び/又はそれへ電気信号を送信する。タッチスクリーン112は、ユーザに視覚出力を表示する。視覚出力は、グラフィック、テキスト、アイコン、映像、及びこれらの任意の組み合わせ(総称して「グラフィック」と称する)を任意選択的に含む。一部の実施形態では、視覚出力の一部又は全ては、ユーザインタフェースオブジェクトに対応する。
タッチスクリーン112は、触覚及び/若しくは触感の接触に基づくユーザからの入力を受け入れるタッチ感知面、センサ、又はセンサのセットを有する。タッチスクリーン112及びディスプレイコントローラ156は(メモリ102内の任意の関連モジュール及び/又は命令セットと共に)、タッチスクリーン112上で接触(及び任意の接触の移動又は中断)を検出し、検出された接触をタッチスクリーン112上に表示されたユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ又は画像)との相互作用に変換する。例示的な実施形態では、タッチスクリーン112とユーザとの間の接触点は、ユーザの指下のエリアに対応する。
タッチスクリーン112は任意選択的に、LCD(液晶ディスプレイ)技術、LPD(発光ポリマーディスプレイ)技術又はLED(発光ダイオード)技術若しくはOLED(有機発光ダイオード)技術を使用するが、他の実施形態では、他のディスプレイ技術が使用される。タッチスクリーン112及びディスプレイコントローラ156は、静電容量技術、抵抗性技術、赤外線技術、及び表面弾性波技術、並びに、タッチスクリーン112との1つ以上の接触点を判定するための他の近接センサアレイ又は他の要素を含むが、これらに限定されない、現在公知の若しくは後日に開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及び接触のあらゆる移動又は中断を任意選択的に検出する。ある実施形態例では、California州CupertinoのAPPLE Inc.からのIPHONE(登録商標)、IPOD TOUCH(登録商標)、及びIPAD(登録商標)などにおいて見られるような、投影された相互キャパシタンス感知技術が使用されている。
タッチスクリーン112は、任意選択的に、400dpiを超えるビデオ解像度を有する。一部の実施形態では、タッチスクリーン112は少なくとも600dpiのビデオ解像度を有する。他の実施形態では、タッチスクリーン112は少なくとも1000dpiのビデオ解像度を有する。ユーザは、スタイラス、指などの任意の好適な物体又は指を使用して、タッチスクリーン112と任意選択的に接触する。一部の実施形態では、ユーザインタフェースは、指に基づく接触及びジェスチャにて主に機能するよう設計されている。一部の実施形態では、デバイスは、指に基づく入力を正確なポインタ/カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
一部の実施形態では、タッチスクリーンに加えて、デバイス100は、特定の機能をアクティブ又は非アクティブにさせるためのタッチパッド(図示せず)を、任意選択的に含む。一部の実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知領域である。タッチパッドは、任意選択的に、タッチスクリーン112とは別個のタッチ感知面、又はタッチスクリーンによって形成されたタッチ感知面の延長である。
デバイス100はまた、様々な構成要素に電力を供給するための電力システム162も含む。電力システム162は、任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイス内での電力の生成、管理、及び分配に関連付けられた任意の他の構成要素を含む。
デバイス100はまた、1つ以上の光センサ164を任意選択的に含む。図1Aは、I/Oサブシステム106内の光センサコントローラ158に連結された光センサを示す。光センサ164は、電荷結合デバイス(CCD)又は相補的金属酸化物半導体(CMOS)フォトトランジスタを任意選択的に含む。光センサ164は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表現するデータに変換する。撮像モジュール143(カメラモジュールとも称する)と併せて、光センサ164は、静止画像又は映像を任意選択的にキャプチャする。一部の実施形態では、タッチ感知ディスプレイを静止画像及び/又は映像取得のためのビューファインダとして有効化するように、光センサは、デバイスの前面のタッチスクリーン112の反対側である、デバイス100の背面に配置されている。一部の実施形態では、ユーザがタッチ感知ディスプレイ上で他のテレビ会議参加者を見ている間に、ユーザの画像を、テレビ会議のために任意選択的に、得るように、別の光センサがデバイスの前面に配置される。
デバイス100はまた、1つ以上の接触強度センサ165も任意選択的に含む。図1Aは、I/Oサブシステム106内の強度センサコントローラ159に連結された接触強度センサを示す。接触強度センサ165は、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(又は圧力)を測定するために使用するセンサ)を、任意選択的に含む。接触強度センサ165は、環境から接触強度情報(例えば、圧力情報又は圧力情報の代用物)を受信する。一部の実施形態では、少なくとも1つの接触強度センサが、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)に配置されているか、又は、それに近接している。一部の実施形態では、少なくとも1つの接触強度センサが、デバイス100の前面に配置されたタッチスクリーン112の反対側である、デバイス100の背面に配置されている。
デバイス100は、1つ以上の近接センサ166をも任意選択的に含む。図1Aは、周辺機器インタフェース118と連結された近接センサ166を示す。あるいは、近接センサ166は、I/Oサブシステム106内の入力コントローラ160に連結される。一部の実施形態では、多機能デバイスがユーザの耳の近くに配置されている場合(例えば、ユーザが電話通話を行っている場合)、近接センサがオフになり、タッチスクリーン112が無効になる。
デバイス100はまた、1つ以上のタクタイル出力生成器167も任意選択的に含む。図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161に連結されたタクタイル出力生成器を示す。タクタイル出力生成器167は、スピーカ又は他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他のタクタイル出力生成構成要素(例えば、デバイス上で電気信号をタクタイル出力に変換する構成要素)などの、エネルギを直線運動に変換する電気機械デバイスを、任意選択的に含む。接触強度センサ165は、触覚フィードバックモジュール133から触覚フィードバック生成命令を受信し、デバイス100のユーザが感知できるタクタイル出力をデバイス100上で生成する。一部の実施形態では、少なくとも1つのタクタイル出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)に配置されているか、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス100の表面の内/外)に、又は横方向(例えば、デバイス100の表面と同じ平面内の前後)に動かすことによって、タクタイル出力を生成する。一部の実施形態では、少なくとも1つのタクタイル出力生成器センサが、デバイス100の前面に配置されたタッチ感知ディスプレイ112の反対側である、デバイス100の背面に配置されている。
デバイス100はまた、1つ以上の加速度計168も任意選択的に含む。図1Aは、周辺機器インタフェース118に連結された加速度計168を示す。あるいは、加速度計168は、I/Oサブシステム106内の入力コントローラ160に、任意選択的に、連結される。一部の実施形態では、情報は、1つ以上の加速度計から受信したデータの分析に基づいて、縦長表示又は横長表示でタッチ感知ディスプレイ上に表示される。デバイス100は、加速度計(単数又は複数)168に加えて、磁気計(図示せず)並びにデバイス100の位置及び向き(例えば、縦長又は横長)に関する情報を取得するためのGPS(又はGLONASS又は他のグローバルナビゲーションシステム)受信部(図示せず)を任意選択的に含む。
一部の実施形態では、メモリ102に記憶されたソフトウェア構成要素は、オペレーティングシステム126、プロアクティブモジュール163(任意選択的に、1つ以上のアプリケーション使用データテーブル335、トリガー条件テーブル402、トリガー確立モジュール163-1、及び/又は使用データ収集モジュール163-2、を含む)、通信モジュール(又は命令セット)128、接触/動きモジュール(又は命令セット)130、グラフィックモジュール(又は命令セット)132、テキスト入力モジュール(又は命令セット)134、全地球測位システム(GPS)モジュール(又は命令セット)135、及びアプリケーション(又は命令セット)136を含む。更に、一部の実施形態では、図1Aに示すように、メモリ102はデバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、以下の1つ以上を含む。現在アクティブ状態のアプリケーションがある場合、どのアプリケーションがアクティブかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチ感知ディスプレイ112の様々な領域を占有しているかを示す、表示状態、デバイスの様々なセンサ及び入力制御デバイス116から得られる情報を含む、センサ状態、及び、デバイスの位置及び/又は姿勢に関する位置情報(例えば、デバイスの向き)。
オペレーティングシステム126(例えば、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、WINDOWS(登録商標)、又はVxWorks(登録商標)などの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。
通信モジュール128は、1つ以上の外部ポート124を介して他のデバイスとの通信を容易にし、RF回路108及び/又は外部ポート124が受信したデータを処理するための様々なソフトウェア構成要素を含む。外部ポート124(例えば、ユニバーサルシリアルバス(USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えば、インターネット、無線LANなど)を通して間接的に、他のデバイスに連結するように適応している。一部の実施形態では、外部ポートは、APPLE Inc.からのIPODデバイスの一部の実施形態上にて使用される30ピンコネクタと同じ、又は類似の、及び/若しくは互換するマルチピン(例えば、30ピン)コネクタである。他の実施形態では、外部ポートは、APPLE Inc.からのLIGHTNINGコネクタにて使用される8ピンコネクタと同じ、又は類似の、及び/若しくは互換するマルチピン(例えば、8ピン)コネクタである。
接触/動きモジュール130は、任意選択的に、(ディスプレイコントローラ156と併せて)タッチスクリーン112及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を検出する。接触/動きモジュール130は、接触が生じたか否かを判定すること(例えば、指を下ろすイベントを検出すること)、接触の強度(例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代替物)を判定すること、接触の移動が存在するか否かを判定し、タッチ感知面を横断する移動を追跡すること(例えば、指をドラッグする1つ以上のイベントを検出すること)、及び接触が停止したか否かを判定すること(例えば、指を上げるイベント又は接触の中断を検出すること)などの、接触の検出に関する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを任意選択的に含む。これらの動作は、任意選択的に、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。一部の実施形態では、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッド上の接触を検出する。
一部の実施形態では、接触/動きモジュール130は、ユーザによって動作が実行されたか否かを判定するための(例えば、ユーザがアフォーダンス上で選択したか否か又は「クリック」したか否かを判定するための)、1つ以上の強度閾値のセットを使用する。一部の実施形態では、少なくとも強度閾値のサブセットが、ソフトウェアパラメータに従って判定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されず、デバイス100の物理ハードウェアを変更することなく調整し得る)。例えば、トラックパッド又はタッチ感知ディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチ感知ディスプレイのハードウェアを変更することなく広範囲の既定閾値のうちのいずれかに設定することができる。更に、一部の実装では、デバイスのユーザには、(例えば、個々の強度閾値を調整することにより、及び/又は、システムレベルのクリック「強度」パラメータにより、一度に複数の強度閾値を調整することによって)強度閾値のセットのうちの1つ以上を調整するためのソフトウェア設定が提供される。
接触/動きモジュール130は任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン(例えば、異なる動き、タイミング、及び/又は検出される接触の強度)を有する。従って、ジェスチャは、特定の接触パターンを検出することによって、任意選択的に検出される。例えば、指のタップジェスチャを検出することは、(例えば、アイコンの位置での)指を下ろすイベントを検出し、続いてその指を下ろすイベントと同じ位置(又は、実質的に同じ位置)で指を上げる(リフトオフ)イベントを検出することを含む。別の実施例として、タッチ感知面上での指のスワイプジェスチャを検出することは、指を下ろすイベントを検出し、続いて、1つ以上の、指をドラッグするイベントを検出し、その後、一部の実施形態では、続いて指を上げる(リフトオフ)イベントを検出することを含む。
グラフィックモジュール132は、表示されるグラフィックの視覚的効果(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性)を変更するための構成要素を含めた、タッチスクリーン112又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々な既知のソフトウェア構成要素を含む。本明細書で使用する時、用語「グラフィック」は、ユーザに対して表示することができる任意のオブジェクトを含み、これらのオブジェクトとしては、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどが挙げられるが、これらに限定されない。
一部の実施形態では、グラフィックモジュール132は、使用されるグラフィックを表すデータを記憶する。各グラフィックには、対応するコードが、任意選択的に割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ156に出力する画面の画像データを生成する。
触覚フィードバックモジュール133は、デバイス100とのユーザ相互作用に応じて、デバイス100上の1つ以上の場所でタクタイル出力を生成するために、タクタイル出力生成器(単数又は複数)167によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
テキスト入力モジュール134は、任意選択的に、グラフィックモジュール132の構成要素であり、様々なアプリケーション(例えば、連絡先モジュール137、電子メールクライアントモジュール140、IMモジュール141、ブラウザモジュール147、及びテキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するための、ソフトキーボードを提供する。
GPSモジュール135は、デバイスの位置を判定し、この情報を様々なアプリケーションで使用するために、(例えば、位置ベースのダイヤリングで使用するために電話138のアプリケーションに、画像/ビデオのメタデータとしてカメラ143のアプリケーションに、並びに気象ウィジェット、ローカルなイエローページウィジェット、及びマップ/ナビゲーションウィジェットなどの位置ベースのサービスを提供するアプリケーションに)提供する。
アプリケーション(「apps」)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、
●検索モジュール151、
●任意選択的にビデオプレーヤモジュール及び音楽プレーヤモジュールから構成される、ビデオ及び音楽プレーヤモジュール152、
●メモモジュール153、
●地図モジュール154、及び/又は
●オンラインビデオモジュール155。
任意選択的にメモリ102内に記憶される他のアプリケーション136の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、ユーザ作成ウィジェットを作るためのウィジェットクリエータモジュール149-6、及び音声複製が挙げられる。
タッチスクリーン112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、連絡先モジュール137は、(例えば、メモリ102又はメモリ370内の連絡先モジュール137に記憶される)アドレスブック又は連絡先リストを管理するために任意選択的に用いられ、それには、アドレスブックに名前(単数又は複数)を加えること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類して並べ替えること、電話番号又は電子メールアドレスを提供して、電話モジュール138、テレビ会議モジュール139、電子メールモジュール140、若しくはIMモジュール141による通信を開始する及び/又は容易にすること、などが含まれる。
RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチスクリーン112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、電話モジュール138は、電話番号と対応する一連の文字を入力し、アドレス帳137内の1つ以上の電話番号にアクセスし、入力されている電話番号を修正し、対応する電話番号をダイヤルし、会話を遂行し、会話が完了した際に接続を切るか又は電話を切るために任意選択的に使用される。上述のように、無線通信は、複数の通信規格、プロトコル、及び技術のうちのいずれかを任意選択的に使用する。
RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチスクリーン112、ディスプレイコントローラ156、光センサ164、光センサコントローラ158、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、連絡先リスト137、及び電話モジュール138と併せて、テレビ会議モジュール139は、ユーザの指示に従って、ユーザと1人以上の他の参加者との間のテレビ会議を開始し、行い、終了するための実行可能命令を含む。
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、電子メールクライアントモジュール140は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理するための、実行可能命令を含む。画像管理モジュール144と併せて、電子メールクライアントモジュール140は、カメラモジュール143で撮影された静止画像又はビデオ画像を有する電子メールを作成及び送信することを非常に容易にする。
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、インスタントメッセージモジュール141は、インスタントメッセージに対応する文字列を入力し、入力済みの文字を修正し、対応するインスタントメッセージを送信し(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(MMS)プロトコルを用いて、又はインターネットベースのインスタントメッセージのためのXMPP、SIMPLE、若しくはIMPSを用いて)、インスタントメッセージを受信しその受信したインスタントメッセージを表示するための実行可能命令を含む。一部の実施形態では、送信及び/又は受信されるインスタントメッセージは、任意選択的に、MMS及び/又は拡張メッセージサービス(Enhanced Messaging Service、EMS)でサポートされるような、グラフィック、写真、オーディオファイル、ビデオファイル、及び/又は他の添付ファイルを含む。本明細書で使用する時、「インスタントメッセージ」とは、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されるメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE、又はIMPSを使用して送信されるメッセージ)の両方を示す。
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、地図モジュール154、及びビデオ及び音楽プレーヤモジュール146と併せて、ヘルスモジュール142は、トレーニングを作成したり(例えば、時間、距離、及び/又はカロリー消費目標に関して)、トレーニングセンサ(携帯時計又は歩数計などのスポーツデバイス)と通信したり、トレーニングセンサデータを受信したり、トレーニングを監視するために用いられるセンサを較正したり、トレーニングのための音楽を選択して再生したり、トレーニングデータを表示、記憶、送信したりするための実行可能命令を含む。
タッチスクリーン112、ディスプレイコントローラ156、光センサ(単数又は複数)164、光センサコントローラ158、接触モジュール130、グラフィックモジュール132、及び画像管理モジュール144と併せて、カメラモジュール143は、静止画像又はビデオ(ビデオストリームを含む)をキャプチャしてメモリ102にそれらを記憶する、静止画像又はビデオの特徴を変更する、又はメモリ102から静止画像若しくはビデオを削除するための実行可能命令を含む。
タッチスクリーン112、ディスプレイコントローラ156、接触モジュール130、グラフィクモジュール132、テキスト入力モジュール134、及びカメラモジュール143と併せて、画像管理モジュール144は、静止画像及び/又はビデオ画像を配置したり、修正したり(例えば、編集し)又は別の方法で操作したり、ラベルを付けたり、削除し、提示し(例えば、デジタルスライドショー又はアルバム内で)、並びに記憶するための実行可能命令を含む。
RF回路108、タッチスクリーン112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、ブラウザモジュール147は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付及び他のファイルを検索し、リンク付けし、受信し、表示することを含むユーザの指示に従い、インターネットをブラウズするための実行可能命令を含む。
RF回路108、タッチスクリーン112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と併せて、カレンダーモジュール148は、ユーザの指示に従い、カレンダー及びカレンダーに関連付けられたデータ(例えば、カレンダーアイテム、ToDoリストなど)を作成し、表示し、変更し、記憶するための実行可能命令を含む。
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!(登録商標)ウィジェット)を含む。
RF回路108、タッチスクリーン112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と併せて、ウィジェットクリエータモジュール(図示せず)は、ウィジェットを作成する(例えば、ウェブページのユーザ指定箇所をウィジェットに変える)ために、ユーザによって任意選択的に使用される。
タッチスクリーン112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、検索モジュール151は、ユーザの指示に従い、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索語句)と一致する、メモリ102内のテキスト、音楽、音、画像、ビデオ、及び/又は他のファイルを検索するための実行可能命令を含む。一部の実施形態では、検索モジュール151は、検索エントリ部分及び予測部分を表示するための実行可能命令を更に含む(例えば、図9B及び、図6A~9Cに関連して以下に詳述する検索エントリ部分920及び予測部分930)。一部の実施形態では、検索モジュール151はまた、プロアクティブモジュール163と併せて、検索エントリ部分にてユーザ入力を受信する前に、予測部分を、提案された又は予測された人、アプリケーション内のアクション、アプリケーション、近隣の場所、及び/又はニュース記事に対するアフォーダンスでポピュレートする(図3A~9Cに関連して以下に詳述するように)。
タッチスクリーン112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィクモジュール132、オーディオ回路110、スピーカ111、RF回路108、及びブラウザモジュール147と併せて、ビデオ及び音楽プレーヤモジュール152は、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能命令、並びに、ビデオを(例えば、タッチスクリーン112上又は外部ポート124を介して接続された外部のディスプレイ上に)表示、提示、又は別の方法で再生するための実行可能命令を含む。一部の実施形態では、デバイス100は、任意選択的に、APPLE Inc.からのIPOD(登録商標)などのMP3プレーヤの機能を備える。
タッチスクリーン112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、メモモジュール153は、ユーザの指示に従って、メモ、ToDoリストなどを作成及び管理するための実行可能命令を含む。
RF回路108、タッチスクリーン112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、及びブラウザモジュール147と併せて、地図モジュール154は任意選択的に、ユーザの指示に従って、地図及び地図に関連付けられたデータ(例えば、運転指示、特定の場所若しくはその付近の店舗及び関心対象の他の地点についてのデータ、並びに場所に基づく他のデータ)を受信し、表示し、修正し、記憶するために使用することができる。
タッチスクリーン112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と併せて、オンラインビデオモジュール155は、ユーザがH.264などの1つ以上のファイル形式のオンラインビデオにアクセスし、ブラウズし、受信し(例えば、ストリーミング及び/又はダウンロードにより)、再生し(例えば、タッチスクリーン上で又は外部ポート124を介して接続された外部のディスプレイ上で)、特定のオンラインビデオへのリンクを含む電子メールを送信し、別の方法で管理できるようにする命令を含む。一部の実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール140ではなく、インスタントメッセージモジュール141が用いられる。
図1Aに示すように、ポータブル多機能デバイス100はまた、関連コンテンツを先見的に特定し、表面化(例えば、アプリケーション内のアクションに対応するユーザインタフェースオブジェクト(例えば、音楽app内のプレイリストを再生するためのUIオブジェクト)を、ロックスクリーンに、又は検索インタフェース内に表面化)させるためのプロアクティブモジュール163も含む。プロアクティブモジュール163は任意選択的に以下のモジュール(又は命令のセット)、又はサブセット又はスーパーセットを含む。
●アプリケーション使用テーブル335
●トリガー条件テーブル402
●トリガー確立モジュール163-1
●使用データ収集モジュール163-2
●プロアクティブ提案モジュール163-3
●(音声通信)コンテンツ抽出モジュール163-4
アプリケーション136、GPSモジュール135、オペレーティングシステム126、I/Oサブシステム106、RF回路108、外部ポート124、近接センサ166、オーディオ回路110、加速度計168、スピーカ111、マイクロフォン113、及び周辺機器インタフェース118と併せて、アプリケーション使用テーブル335及び使用データ収集モジュール163-2は、アプリケーション使用データを(例えば、上の図1Aに特定されるデバイス100の構成要素から)受信及び/又は記憶する。一部の実施形態では、アプリケーションの使用は、使用データ収集モジュール163-2に報告され、続いてアプリケーション使用テーブル335に記憶される。一部の実施形態では、アプリケーション使用データは、特定のアプリケーション136のユーザの使用に対応する全ての(又は、最も重要な、関連する、若しくは予測する)コンテキスト使用情報を含む。一部の実施形態では、各特定のアプリケーションは、ユーザがそのアプリケーションと相互作用している間に、使用データを記憶し、その使用データは続いて、記憶のためにアプリケーション使用データテーブル335に報告される(例えば、図3Bの、特定のアプリケーション136-1に対する使用データ193は、全てのセンサの読み値、実行されたアプリケーション内アクション、デバイス連結情報などを含み、この使用データ193は、テーブル内の記録としての記憶のために、アプリケーション使用テーブル335に送信される)。例えば、ユーザがブラウザモジュール147と相互作用する間に、アプリケーション使用データは、アプリケーション使用テーブル335により受信され、記憶された他のセンサデータ及び他のコンテキスト使用情報の中で、デバイス100の現在のGPS座標(例えば、GPSモジュール135により判定される)、動きデータ(例えば、加速度計168により判定される)、環境光データ(例えば、光センサ164により判定される)、及びブラウザモジュール147内にてユーザによって実行されるアプリケーション内アクション(例えば、訪問先URL、訪問した各ページの閲覧時間量)、を含む全てのコンテキスト使用情報を受信し、記憶する。アプリケーション使用テーブル335に関する追加情報は、図3A~3Bに関連して以下に提供される。図5に関連して以下に説明するように、一部の実施形態では、アプリケーション使用データはリモートに(例えば、図5の1つ以上のサーバ502に)記憶される。
トリガー条件テーブル402及びトリガー確立モジュール163-1は、アプリケーション使用テーブル335に記憶された使用データに基づいて確立されたトリガー条件を受信及び/又は記憶する。一部の実施形態では、トリガー確立モジュール163-1は、パターンを特定するために、アプリケーション使用テーブル335に記憶されたデータをマイニングし、分析する。例えば、ユーザが毎日、午後3:00と午後4:00の間に音楽アプリケーションをいつも起動することをアプリケーション使用データが示す場合、続いてトリガー確立モジュール163-1は、満たされると(例えば、現在時刻が、午後3:00から午後4:00の所定の時間量内であると)、デバイス100に音楽アプリケーションを起動させる(又は、少なくとも、音楽アプリケーションが利用可能であることのインジケーションをユーザに提供する(例えば、ユーザが音楽アプリケーションに容易にアクセスできるUIオブジェクトをロックスクリーン上に表示する))トリガー条件を作成し、トリガー条件テーブル402に記憶する。トリガー条件テーブル402に関する追加情報は、図4A~4Bに関連して以下に提供される。図5に関連して以下に説明するように、一部の実施形態では、パターンの特定、及びその特定されたパターンに基づくトリガー条件の確立は、リモートサーバにて(例えば、図5の1つ以上のサーバ502にて)行われる。
プロアクティブ提案モジュール163-3は、デバイス100の他の構成要素と併せて機能し、電子デバイス上で利用可能な様々な異なるアプリケーションでの使用のために、コンテンツをユーザに先見的に提供する。例えば、プロアクティブ提案モジュール163-3は、検索インタフェース内の含有のために、提案された検索クエリ及び他の提案されたコンテンツを提供し(例えば、図10A~10Cに関連して以下に説明するように)、駐車した車の位置を特定するためにユーザを補助する情報を提供し(例えば、図14を参照して以下に説明するように)、近隣の対象地点についての情報を提供し(例えば、図16A~16Bに関連して以下に説明するように)、音声通信中に提供されたスピーチから抽出されたコンテンツアイテムを提供し(例えば、図18A~18Bに関連して以下に説明するように)、及び、多くの他の提案を提供することを補助し(例えば、図20、21A~21B、24A~24B、26A~26B、27、及び29に関連して以下に説明するように)、これは、最小の入力数以下にて所望するコンテンツに効率よくたどり着くようユーザを補助する(例えば、そのコンテンツを検索することなく、プロアクティブ提案モジュール163-3は、コンテンツが、ユーザによる選択のために適切な時間に確実に提供されるよう補助する)。
(音声通信)コンテンツ抽出モジュール163-4は、デバイス100の他の構成要素と併せて機能し、新たなコンテンツアイテムに関するスピーチを特定し、新たなコンテンツアイテムを音声通信から抽出する(例えば、図18A~18B及び20に関連して以下に詳述するように、連絡先情報、イベントについての情報、及び位置についての情報)。
上記で特定されたモジュール及びアプリケーションのそれぞれは、1つ以上の上記の機能を実行する実行可能な命令セット及び本出願に記載の方法(例えば、コンピュータにより実行される方法及び本明細書に記載の他の情報処理方法)に対応する。これらのモジュール(例えば、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、従って、これらのモジュールの様々なサブセットは、様々な実施形態において任意選択的に、組み合わせ、又は再配置される。一部の実施形態では、メモリ102は、上述の識別されたモジュール及びデータ構造のサブセットを任意選択的に記憶する。更に、メモリ102は、上述されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
一部の実施形態では、デバイス100は、デバイス上の機能の所定のセットの動作が排他的にタッチスクリーン及び/又はタッチパッドを介して実行されるデバイスである。デバイス100の動作のための主要入力制御デバイスとしてタッチスクリーン及び/又はタッチパッドを使用することにより、デバイス100上の物理的な入力制御デバイス(プッシュボタン、ダイヤル、など)の数を、任意選択的に低減する。
排他的にタッチスクリーン及び/又はタッチパッドを介して実行される、所定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。一部の実施形態では、タッチパッドは、ユーザによってタッチされると、デバイス100上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューへデバイス100をナビゲートする。そのような実施形態では、「メニューボタン」はタッチパッドを使って実装される。一部の他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理プッシュボタン又は他の物理入力制御デバイスである。
図1Bは、一部の実施形態に係る、イベント処理のための構成要素例を示すブロック図である。一部の実施形態では、メモリ102(図1A内)は、イベントソート部170(例えば、オペレーティングシステム126内)と、ポータブル多機能デバイス100(図1A)のアプリケーション136から選択された、対応するアプリケーション136-1(例えば、アプリケーション136と共にメモリ102内に記憶された前述のアプリケーションのいずれか)と、を含む。
イベントソート部170は、イベント情報を受信し、イベント情報が配信されるアプリケーション136-1及びアプリケーション136-1のアプリケーションビュー191を決定する。イベントソート部170は、イベントモニタ171及びイベントディスパッチャモジュール174を含む。一部の実施形態では、アプリケーション136-1は、アプリケーションがアクティブ又は実行中の時、タッチ感知ディスプレイ112上に表示される現在のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態192を含む。一部の実施形態では、デバイス/グローバル内部状態157は、いずれのアプリケーションが現在アクティブであるかを判定するために、イベントソート部170によって使用され、アプリケーション内部状態192は、イベント情報が配信されるアプリケーションビュー191を決定するために、イベントソート部170によって使用される。
一部の実施形態では、アプリケーション内部状態192は、アプリケーション136-1が実行を再開する際に使用される再開情報、アプリケーション136-1によって情報が表示されているか又は表示の準備が整っていることを示すユーザインタフェース状態情報、ユーザがアプリケーション136-1の以前の状態又はビューに戻ることを可能にするための状態待ち行列、及びユーザが以前に行ったアクションのリドゥ/アンドゥ待ち行列、のうちの1つ以上などの追加情報を含む。
イベントモニタ171は、周辺機器インタフェース118からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイ112上のユーザタッチ)についての情報を含む。周辺機器インタフェース118は、I/Oサブシステム106、又は近接センサ166、加速度計(単数又は複数)168、及び/若しくは(オーディオ回路110を介する)マイクロフォン113などのセンサから受信する情報を送信する。周辺機器インタフェース118がI/Oサブシステム106から受信する情報には、タッチ感知ディスプレイ112又はタッチ感知面からの情報が含まれる。
一部の実施形態では、イベントモニタ171は、所定の間隔で周辺機器インタフェース118に要求を送信する。これに応じて、周辺機器インタフェース118はイベント情報を送信する。他の実施形態では、周辺機器インタフェース118は、重要なイベント(例えば、所定のノイズ閾値を上回り、かつ/又は所定の持続時間を超えた入力を受けること)が存在する場合にのみ、イベント情報を送信する。
一部の実施形態では、イベントソート部170はまた、ヒットビュー判定モジュール172及び/又はアクティブイベント認識部判定モジュール173も含む。
ヒットビュー判定モジュール172は、タッチ感知ディスプレイ112が2つ以上のビューを表示した際に、1つ以上のビュー内のどこにおいてサブイベントが発生したかを判定するためのソフトウェア手続きを提供する。ビューは、制御部及びユーザがディスプレイ上で見ることが可能な他の要素で構成される。
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書では、アプリケーションビュー又はユーザインタフェースウィンドウと呼ばれる場合があるビューのセットであり、それらの中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに任意選択的に、対応する。例えば、タッチが検出される最低レベルのビューは任意選択的に、ヒットビューと呼ばれ、適切な入力として認識されるイベントのセットは、少なくとも部分的に、タッチベースのジェスチャを開始する最初のタッチのヒットビューに基づいて任意選択的に、判定される。
ヒットビュー判定モジュール172は、タッチベースのジェスチャのサブイベントと関連付けられた情報を受信する。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール172は、そのサブイベントを処理すべき階層内の最下位のビューとしての、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、最初のサブイベント(例えば、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける最初のサブイベント)が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュールによって特定されると、ヒットビューは、典型的には、それがヒットビューとして特定された、同じタッチ又は入力ソースに関連する全てのサブイベントを受信する。
アクティブイベント認識部判定モジュール173は、ビュー階層内のどのビュー(単数又は複数)がサブイベントの特定のシーケンスを受信すべきかを判定する。一部の実施形態では、アクティブイベント認識部判定モジュール173は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール173は、サブイベントの物理的位置を含む全てのビューはアクティブに関わっているビューであると判定し、従って、全てのアクティブに関わっているビューは、サブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントがある特定のビューに関連付けられた領域に完全に限定されたとしても、階層の上位のビューは、依然としてアクティブに関わっているビューであり続ける。
イベントディスパッチャモジュール174は、イベント情報をイベント認識部(例えば、イベント認識部180)に送信する。アクティブイベント認識部判定モジュール173を含む実施形態では、イベントディスパッチャモジュール174は、アクティブイベント認識部判定モジュール173により判定されたイベント認識部にイベント情報を配信する。一部の実施形態では、イベントディスパッチャモジュール174は、対応するイベント受信部182により取り出されるイベント情報をイベント待ち行列に記憶する。
一部の実施形態では、オペレーティングシステム126は、イベントソート部170を含む。あるいは、アプリケーション136-1が、イベントソート部170を含む。更に他の実施形態では、イベントソート部170は、独立型のモジュール、又は接触/動きモジュール130などの、メモリ102に記憶された別のモジュールの一部である。
一部の実施形態では、アプリケーション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に含まれる。
対応するイベント認識部180は、イベントソート部170からイベント情報(例えば、イベントデータ179)を受信して、そのイベント情報からイベントを特定する。イベント認識部180は、イベント受信部182及びイベント比較部184を含む。一部の実施形態では、イベント認識部180は更に、メタデータ183及びイベント配信命令188(任意選択的に、サブイベント配信命令を含む)の少なくともサブセットを含む。
イベント受信部182は、イベントソート部170からイベント情報を受信する。このイベント情報は、サブイベントについての情報、例えば、タッチ又はタッチの動きについての情報を含む。サブイベントによっては、イベント情報はまた、サブイベントの場所などの追加情報も含む。サブイベントが、タッチの動きに関わる時、イベント情報は、サブイベントの速度及び方向を任意選択的に、更に含む。一部の実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦向きから横向きへの、又はその逆の)デバイスの回転を含み、そのイベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ばれる)についての対応する情報を含む。
イベント比較部184は、イベント情報を所定のイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定する、あるいはイベント又はサブイベントの状態を判定若しくは更新する。一部の実施形態では、イベント比較部184は、イベント定義186を含む。イベント定義186は、例えば、イベント1(187-1)、イベント2(187-2)などの、イベントの定義(例えば、サブイベントの所定のシーケンス)を含む。一部の実施形態では、イベント187内のサブイベントは、例えば、タッチ開始、タッチ終了、タッチの移動、タッチの取り消し、及び複数のタッチを含む。ある実施例では、イベント1(187-1)の定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、表示されたオブジェクト上の所定の段階についての第1のタッチ(タッチ開始)、所定の段階についての第1のリフトオフ(タッチ終了)、表示されたオブジェクト上の所定の段階についての第2のタッチ(タッチ開始)、及び所定の段階についての第2のリフトオフ(タッチ終了)を含む。別の実施例では、イベント2(187-2)の定義は、表示されたオブジェクト上のドラッグ操作である。ドラッグは、例えば、表示されたオブジェクト上の所定の段階についてのタッチ(又は接触)、タッチ感知ディスプレイ112にわたるタッチの動き、及びタッチのリフトオフ(タッチ終了)を含む。一部の実施形態では、イベントはまた、1つ以上の関連付けられたイベント処理部190に関する情報も含む。
一部の実施形態では、イベント定義186は、各ユーザインタフェースオブジェクトに関するイベントの定義を含む。一部の実施形態では、イベント比較部184は、サブイベントに関連付けられたユーザインタフェースオブジェクトを判定するヒットテストを実行する。例えば、3つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ112に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイ112上でタッチが検出されると、イベント比較部184は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連付けられたかを判定するためのヒットテストを実行する。表示された各オブジェクトが、対応するイベント処理部190に関連付けられた場合、イベント比較部は、ヒットテストの結果を用いて、どのイベント処理部190をアクティブにすべきかを判定する。例えば、イベント比較部184は、サブイベント及びヒットテストのトリガーとなるオブジェクトに関連付けられたイベント処理部を選択する。
一部の実施形態では、各イベント187の定義は、サブイベントのシーケンスが、イベント認識部のイベントタイプに対応するか対応しないかが判定されるまで、イベント情報の配信を遅延させる遅延作用も含む。
それぞれのイベント認識部180が、一連のサブイベントがイベント定義186のイベントのいずれかとも一致しないと判定した場合、それぞれのイベント認識部180は、イベント不可能、イベント失敗、又はイベント終了の状態に移行し、その後は、タッチに基づくジェスチャの次のサブイベントを無視する。この状況では、ヒットビューに関してアクティブのまま維持される他のイベント認識部があれば、進行中のタッチに基づくジェスチャのサブイベントを、引き続き追跡及び処理する。
一部の実施形態では、それぞれのイベント認識部180は、構成変更可能なプロパティと、フラグと、及び/又はイベント配信システムがアクティブに関わっているイベント認識部にどのようにサブイベント配信を実行するかについて示すリストと、を有するメタデータ183を含む。一部の実施形態では、メタデータ183は、構成変更可能なプロパティと、フラグと、及び/又はイベント認識部が互いにどのように相互作用し得るか又は相互作用が可能になるかについて示すリストと、を含む。一部の実施形態では、メタデータ183は、構成変更可能なプロパティと、フラグと、及び/又はサブイベントがビュー階層又はプログラム階層内の様々なレベルに配信されるか否かを示すリストと、を含む。
一部の実施形態では、それぞれのイベント認識部180は、イベントの1つ以上の特定のサブイベントが認識された時に、イベントに関連付けられたイベント処理部190をアクティブにする。一部の実施形態では、それぞれのイベント認識部180は、イベントに関連付けられたイベント情報をイベント処理部190に配信する。イベント処理部190をアクティブにすることは、対応するヒットビューにサブイベントを送信(及び送信を延期する)することとは異なる。一部の実施形態では、イベント認識部180は、認識されたイベントに関連付けられたフラグをスローし、フラグに関連付けられたイベント処理部190は、フラグをキャッチし、所定の処理を実行する。
一部の実施形態では、イベント配信命令188は、イベント処理部をアクティブにせずに、サブイベントに関するイベント情報を配信するサブイベント配信命令を含む。その代わりに、サブイベント配信命令は、一連のサブイベントに関連付けられたイベント処理部又はアクティブに関わっているビューにイベント情報を配信する。一連のサブイベント又はアクティブに関わっているビューに関連付けられたイベント処理部は、イベント情報を受信し、所定の処理を実行する。
一部の実施形態では、データ更新部176は、アプリケーション136-1で使用されるデータを作成及び更新する。例えば、データ更新部176は、連絡先モジュール137で使用される電話番号を更新、又はビデオ及び音楽プレーヤモジュール145で使用されるビデオファイルを記憶する。一部の実施形態では、オブジェクト更新部177は、アプリケーション136-1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部176は、新たなユーザインタフェースオブジェクトを作成するか、又はユーザインタフェースオブジェクトの位置を更新する。GUI更新部178は、GUIを更新する。例えば、GUI更新部178は、表示情報を準備し、タッチ感知ディスプレイ上に表示するために表示情報をグラフィックモジュール132に送る。
一部の実施形態では、イベント処理部(単数又は複数)190は、データ更新部176、オブジェクト更新部177、及びGUI更新部178を含むか、若しくはそれらにアクセスすることができる。一部の実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178は、対応するアプリケーション136-1又はアプリケーションビュー191の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
一部の実施形態では、各特定のアプリケーション136-1は、ユーザがそのアプリケーションと相互作用する間に、使用データを記憶し、その使用データは続いて、記憶のためにアプリケーション使用データテーブル335に報告される(例えば、図3Bの、特定のアプリケーション136-1に対する使用データ193は、全てのセンサの読み値、実行されたアプリケーション内アクション、デバイス連結情報などを含み、この使用データ193は、テーブル内の記録としての記憶のために、特定のアプリケーションのための、対応するアプリケーション使用テーブル335に送信される)。一部の実施形態では、使用データ193は、特定のアプリケーション136-1の使用(例えば、ユーザは特定のアプリケーション136-1と能動的に相互作用している)中に、使用データ収集モジュール163-2により報告されたものとしてデータを記憶する。
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の論考はまた、入力デバイスを使用して多機能デバイス100を動作させるための他の形態のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではないことが理解されよう。例えば、単一又は複数のキーボードの押下又は保持に任意選択的に合わせたマウスの移動及びマウスボタンの押下、タッチパッド上でのタップ、ドラッグ、スクロールなどの接触移動、ペンスタイラス入力、デバイスの移動、口頭による指示、検出された眼球運動、バイオメトリック入力、及び/又はこれらの任意の組み合わせが、認識対象のイベントを定義するサブイベントに対応する入力として任意選択的に利用される。
図1Cは、一部の実施形態に係る、タッチ感知ディスプレイ(例えば、タッチスクリーン112)を有するポータブル多機能デバイス(例えば、ポータブル多機能デバイス100)の概要である。この実施形態では、後述する他の実施形態と同様に、ユーザは、例えば、1本以上の指又は1つ以上のスタイラスを用いて、スクリーン上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択し得る。一部の実施形態では、1つ以上のグラフィックの選択は、ユーザが1つ以上のグラフィックとの接触を断つと生じる(例えば、指をスクリーンから離すことにより)。一部の実施形態では、ジェスチャは、1回以上のタップジェスチャ(例えば、スクリーン上での一連のタッチの後に指を離す)、1回以上のスワイプジェスチャ(スクリーンの表面に沿う、ジェスチャ中の連続する接触、例えば、左から右へ、右から左へ、上方向へ、及び/又は下方向へ)、及び/又は、デバイス100と接触した指のローリング(例えば、右から左へ、左から右へ、上方向へ、及び/又は下方向へ)を、任意選択的に含む。一部の実装又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、アプリケーションを起動するためのジェスチャがタップジェスチャである場合、アプリケーションアフォーダンス(例えば、アイコン)上をスワイプするスワイプジェスチャは、対応するアプリケーションを任意選択的に起動しない(例えば、開かない)。
デバイス100はまた、「ホーム」又はメニューボタン204などの、1つ以上の物理ボタンも任意選択的に含む。前述のように、メニューボタン204は、デバイス100上で任意選択的に、実行するアプリケーションのセット内の任意のアプリケーション136へのナビゲーションに任意選択的に、使用される。あるいは、一部の実施形態では、メニューボタンは、タッチスクリーン112に表示されたGUIにおけるソフトキーとして実装されている。
ある実施形態では、デバイス100は、タッチスクリーン112、メニューボタン204、デバイスへの電源をオン/オフしてデバイスをロックするためのプッシュボタン206、音量調整ボタン(単数又は複数)208、加入者識別モジュール(SIM)カードスロット210、ヘッドセットジャック212、及びドッキング/充電用外部ポート124を含む。プッシュボタン206は、任意選択的に、ボタンを押し下げて、所定の時間にわたってボタンを押し下げた状態で保持することによって、デバイス上にて電源をオン/オフし、ボタンを押し下げて、所定の時間が経過する前にボタンを解放することによってデバイスをロックし、及び/又は、デバイスのロックを解除する、若しくは、ロック解除処理を開始する。別の実施形態では、デバイス100はまた、マイクロフォン113を通して、一部の機能をアクティブ又は非アクティブにするための口頭入力を受け入れる。デバイス100はまた、タッチスクリーン112上の接触の強度を検出するための1つ以上の接触強度センサ165、及び/又は、デバイス100のユーザに対するタクタイル出力を生成するための1つ以上のタクタイル出力生成器167も、任意選択的に含む。
図1Dは、ディスプレイ194(例えば、タッチスクリーン112)とは別個のタッチ感知面195(例えば、タブレット又はタッチパッド)を備えるデバイス(例えば、図1Aのデバイス100)上のユーザインタフェースを示すために使用される概要である。一部の実施形態では、タッチ感知面195は、タッチ感知面195上の接触の強度を検出するための1つ以上の接触強度センサ(例えば、接触強度センサ(単数又は複数)359のうちの1つ以上)及び/又はタッチ感知面195のユーザに対してタクタイル出力を生成するための1つ以上のタクタイル出力生成器(単数又は複数)357を含む。
以下の実施例のうちの一部はタッチスクリーン112上での入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示されるように、ディスプレイとは別個のタッチ感知面上での入力を検出する。一部の実施形態では、このタッチ感知面(例えば、図1Dの195)は、ディスプレイ(例えば、194)上の主軸(例えば、図1Dの198)に対応する主軸(例えば、図1Dの199)を有する。これらの実施形態によれば、デバイスは、タッチ感知面195との接触(例えば、図1Dの197-1及び197-2)を、ディスプレイ上のそれぞれの場所に対応する場所(例えば、図1Dでは、197-1は196-1に対応し、197-2は196-2に対応する)にて検出する。このように、タッチ感知面がディスプレイとは別個のものである場合、タッチ感知面(例えば、図1Dの195)上でデバイスによって検出されたユーザ入力(例えば、接触197-1及び197-2、並びにそれらの移動)が、多機能デバイスのディスプレイ(例えば、図1Dでの194)上のユーザインタフェースを操作するために、デバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに任意選択的に使用されることを理解されたい。
更に加えて、以下の実施例は主に指入力(例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャ)を参照して説明されるが、一部の実施形態では、それらの指入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力、又はスタイラス入力)で置き換えられることを理解されたい。例えば、スワイプジェスチャは、任意選択的に、(例えば、接触の代わりに)マウスクリックと置き換えられ、その後、(例えば、接触の移動の代わりに)スワイプの経路に沿ってカーソルの移動が行われる。別の例として、タップジェスチャは、(例えば、接触の検出に続いて接触の検出を停止する代わりに)カーソルがタップジェスチャの位置上に配置されている間、任意選択的に、マウスクリックで置き換えられる。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスが同時に、任意選択的に用いられているか、又はマウスと指接触が任意選択的に同時に用いられていることが理解されよう。
本明細書で使用する時、用語「フォーカスセレクタ」とは、ユーザが相互作用しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含む一部の実装では、タッチ感知面(例えば、図1Dのタッチ感知面195(タッチ感知面195は、一部の実施形態では、タッチパッドである))上で入力(例えば、押圧入力)が検出された時に、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にある時、カーソルは「フォーカスセレクタ」として機能し、特定のユーザインタフェース要素が、検出された入力に従って調整される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な相互作用を可能にする、タッチスクリーンディスプレイ(例えば、図1Aのタッチ感知ディスプレイシステム112、又はタッチスクリーン112)を含む一部の実装では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」の役割を果たすため、入力(例えば、接触による押圧入力)が、タッチスクリーンディスプレイ上の特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の場所で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調整される。一部の実装では、(例えば、タブキー又は矢印キーを使ってフォーカスを1つのボタンから別のボタンに移動させることにより)タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスが、ユーザインタフェースの1つの領域からユーザインタフェースの別の領域に移動される。これらの実装では、フォーカスセレクタは、ユーザインタフェースの異なる領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが採用する具体的な形態とは関わりなく、フォーカスセレクタは、全般的に、ユーザが意図するユーザインタフェースとの相互作用を(例えば、ユーザが相互作用することを意図しているユーザインタフェースの要素をデバイスに示すことによって)通信するために、ユーザによって制御されるユーザインタフェース要素(又は、タッチスクリーンディスプレイ上での接触)である。例えば、押圧入力がタッチ感知面(例えば、タッチパッド又はタッチ感知ディスプレイ)上で検出されたときに、対応するボタンの上にあるフォーカスセレクタ(例えば、カーソル、接触又は選択ボックス)の位置は、(デバイスのディスプレイ上に示されている他のユーザインタフェース要素ではなく)対応するボタンをユーザがアクティブにしようとしていることを示すものである。
図4Cは、ディスプレイ194及びタッチ感知面195と通信する電子デバイス例を示す。電子デバイスの少なくともサブセットについて、ディスプレイ194及び/又はタッチ感知面195は、一部の実施形態に係る電子デバイスに一体化されている。以下に詳述する実施例は、電子デバイス(例えば、図1A~1Bのポータブル多機能デバイス100)と通信するタッチ感知面195及びディスプレイ194を参照して説明されるが、一部の実施形態に係る、タッチ感知面及び/又はディスプレイは電子デバイスと一体化されており、他の実施形態では、タッチ感知面及びディスプレイのうちの1つ以上は、電子デバイスとは別個であるということが理解されるべきである。更に、一部の実施形態では、電子デバイスは一体型ディスプレイ及び/又は一体型タッチ感知面を有し、電子デバイスとは別個の1つ以上の追加ディスプレイ及び/又はタッチ感知面と通信する。
一部の実施形態では、図6A~6B、7A~7B、8A~8B、9A~9D、10A~10C、11A~11J、12、13A~13B、14、15A~15B、16A~16B、17A~17E、18A~18B、19A~19F、20、21A~21B、22A~22C、23A~23O、24A~24B、25A~25J、26A~26B、27、28、29、30A~30Dを参照して以下に説明する動作の全ては、ユーザインタフェースナビゲートロジック480を備える単一の電子デバイス上にて実行される(例えば、図4Cを参照して以下に説明するコンピューティングデバイスA)。しかし、しばしば複数の異なる電子デバイスが互いにリンクされ、図6A~6B、7A~7B、8A~8B、9A~9D、10A~10C、11A~11J、12、13A~13B、14、15A~15B、16A~16B、17A~17E、18A~18B、19A~19F、20、21A~21B、22A~22C、23A~23O、24A~24B、25A~25J、26A~26B、27、28、29、30A~30Dを参照して以下に説明する動作を実行するということが理解されるべきである(例えば、ユーザインタフェースナビゲートロジック480を備える電子デバイスは、ディスプレイ194を備える別個の電子デバイス及び/又はタッチ感知面195を備える別個の電子デバイスと通信する)。これらの実施形態のいずれかでは、図6A~6B、7A~7B、8A~8B、9A~9D、10A~10C、11A~11J、12、13A~13B、14、15A~15B、16A~16B、17A~17E、18A~18B、19A~19F、20、21A~21B、22A~22C、23A~23O、24A~24B、25A~25J、26A~26B、27、28、29、30A~30Dを参照して以下に説明する電子デバイスは、ユーザインタフェースナビゲートロジック480を含む電子デバイス(単数又は複数)である。更に、ユーザインタフェースナビゲートロジック480は、様々な実施形態では、複数の別個のモジュール又は電子デバイスとの間で分割され得るということが理解されるべきである。しかし、本明細書で説明するために、ユーザインタフェースナビゲートロジック480は主に、実施形態の他の態様を不必要に不明瞭化しないよう、単一の電子デバイス内に存在するものとされる。
一部の実施形態では、ユーザインタフェースナビゲートロジック480は、1つ以上のモジュール(例えば、図1Cを参照して先に詳述するように、1つ以上のオブジェクト更新部177及び1つ以上のGUI更新部178を含む1つ以上のイベント処理部190)を含み、これら1つ以上のモジュールは、解釈された入力を受信し、これらの解釈された入力に応じて、グラフィカルユーザインタフェースを更新するための命令を、これらの解釈された入力に従って生成し、これらの命令は続いて、ディスプレイ上のグラフィカルユーザインタフェースを更新するために使用される。一部の実施形態では、解釈された入力は、(例えば、図1A~1B及び3の接触モジュール130により)検出され、(例えば、図1Cのイベント認識部180により)認識され、及び/又は(例えば、図1Cのイベントソート部170により)優先された入力である。一部の実施形態では、解釈された入力は、電子デバイスでのモジュールにより生成される(例えば、電子デバイスは、生の接触入力データを受信し、その生の接触入力データからジェスチャを特定する)。一部の実施形態では、解釈された入力の一部又は全ては、解釈された入力として電子デバイスにより受信される(例えば、タッチ感知面195を含む電子デバイスは、生の接触入力データを処理し、その生の接触入力データからジェスチャを特定し、そのジェスチャを示す情報を、ユーザインタフェースナビゲートロジック480を含む電子デバイスに送信するようにする)。
一部の実施形態では、ディスプレイ194及びタッチ感知面195の両方が、ユーザインタフェースナビゲートロジック480を含む電子デバイス(例えば、図4CのコンピューティングデバイスA)と一体化されている。例えば、電子デバイスは、一体型ディスプレイ(例えば、図3の340)及びタッチパッド(例えば、図3の355)を備えるデスクトップコンピュータ又はラップトップコンピュータであってよい。別の実施例として、電子デバイスは、タッチスクリーン(例えば、図2の112)を備えるポータブル多機能デバイス100(例えば、スマートフォン、PDA、タブレットコンピュータなど)であってよい。
一部の実施形態では、タッチ感知面195が電子デバイスと一体化されている一方で、ディスプレイ194は、ユーザインタフェースナビゲートロジック480を含む電子デバイス(例えば、図4CのコンピューティングデバイスB)と一体化されていない。例えば、電子デバイスは、別個のディスプレイ(例えば、コンピュータモニタ、テレビなど)に(有線接続又は無線接続経由にて)接続された一体型タッチパッド(例えば、図3の355)を備えるデバイス(例えば、デスクトップコンピュータ又はラップトップコンピュータ)であってよい。別の実施例として、電子デバイスは、別個のディスプレイ(例えば、コンピュータモニタ、テレビなど)に(有線接続又は無線接続経由にて)接続されたタッチスクリーン(例えば、図2の112)を備えるポータブル多機能デバイス100(例えば、スマートフォン、PDA、タブレットコンピュータなど)であってよい。
一部の実施形態では、ディスプレイ194が電子デバイスと一体化されている一方で、タッチ感知面195は、ユーザインタフェースナビゲートロジック480を含む電子デバイス(例えば、図4CのコンピューティングデバイスC)と一体化されていない。例えば、電子デバイスは、別個のタッチ感知面(例えば、リモートタッチパッド、ポータブル多機能デバイスなど)に(有線接続又は無線接続経由にて)接続された一体型ディスプレイ(例えば、図3の340)を備えるデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、一体型セットトップボックス付きテレビ)であってよい。別の実施例として、電子デバイスは、別個のタッチ感知面(例えば、リモートタッチパッド、リモートタッチパッドとしてサーブするタッチスクリーンを備える別のポータブル多機能デバイスなど)に(有線接続又は無線接続経由にて)接続されたタッチスクリーン(例えば、図2の112)を備えるポータブル多機能デバイス100(例えば、スマートフォン、PDA、タブレットコンピュータなど)であってよい。
一部の実施形態では、ディスプレイ194もタッチ感知面195も、ユーザインタフェースナビゲートロジック480を含む電子デバイス(例えば、図4CのコンピューティングデバイスD)と一体化されていない。例えば、電子デバイスは、別個のタッチ感知面(例えば、リモートタッチパッド、ポータブル多機能デバイスなど)及び別個のディスプレイ(例えば、コンピュータモニタ、テレビなど)に(有線接続又は無線接続経由にて)接続された独立型の電子デバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、コンソール、セットトップボックスなど)であってよい。別の実施例として、電子デバイスは、別個のタッチ感知面(例えば、リモートタッチパッド、リモートタッチパッドとしてサーブするタッチスクリーンを備える別のポータブル多機能デバイスなど)に(有線接続又は無線接続経由にて)接続されたタッチスクリーン(例えば、図2の112)を備えるポータブル多機能デバイス100(例えば、スマートフォン、PDA、タブレットコンピュータなど)であってよい。
一部の実施形態では、コンピューティングデバイスは、一体型オーディオシステムを有する。一部の実施形態では、コンピューティングデバイスは、コンピューティングデバイスとは別個のオーディオシステムと通信する。一部の実施形態では、オーディオシステム(例えば、テレビユニットと一体化されたオーディオシステム)は、別個のディスプレイ194と一体化されている。一部の実施形態では、オーディオシステム(例えば、ステレオシステム)は、コンピューティングデバイス及びディスプレイ194とは別個の独立型のシステムである。
ここで、デバイス100などの、ディスプレイ及びタッチ感知面を有する電子デバイスに実装することができるユーザインタフェース(「UI」)の実施形態及び関連プロセスに注目する。
図2は、一部の実施形態に係る、アプリケーションのメニューのためのユーザインタフェースを示すために使用されるタッチスクリーンの概要である。同様のユーザインタフェースがデバイス100上に、任意選択的に、実装される(図1A)。一部の実施形態では、タッチスクリーン112上に表示されたユーザインタフェースは、以下の要素、又はそのサブセット若しくはスーパーセットを含む。
●セルラー及びWi-Fi信号などの無線通信(単数又は複数)のための信号強度インジケータ(単数又は複数)202、
●時間203、
●Bluetoothインジケータ205、
●バッテリ状態インジケータ206、
●下記などの、頻繁に使用されるアプリケーションのアイコンを含むトレイ209、
○不在着信又は音声メールメッセージの数のインジケータ214を任意選択的に含む、「電話」とラベル付けされる、電話モジュール138のアイコン216、
○未読電子メールの数のインジケータ210を任意選択的に含む、「メール」とラベル付けされる、電子メールクライアントモジュール140のアイコン218、
○「ブラウザ」とラベル付けされる、ブラウザモジュール147のアイコン220、及び
○「iPod」とラベル付けされる、IPOD(APPLE Inc.の商標)モジュール152とも称されるビデオ及び音楽プレーヤモジュール152のアイコン222、及び
●下記などの、その他のアプリケーションのアイコン、
○「メッセージ」とラベル付けされる、IMモジュール141のアイコン224、
○「カレンダー」とラベル付けされる、カレンダーモジュール148のアイコン226、
○「写真」とラベル付けされる、画像管理モジュール144のアイコン228、
○「カメラ」とラベル付けされる、カメラモジュール143のアイコン230、
○「オンラインビデオ」とラベル付けされる、オンラインビデオモジュール155のアイコン232、
○「株式」とラベル付けされる、株式ウィジェット149-2のアイコン234、
○「地図」とラベル付けされる、地図モジュール154のアイコン236、
○「気象」とラベル付けされる、気象ウィジェット149-1のアイコン238、
○「時計」とラベル付けされる、アラーム時計ウィジェット149-4のアイコン240、
○「ヘルス」とラベル付けされる、ヘルスモジュール142のアイコン242、
○「メモ」とラベル付けされる、メモモジュール153のアイコン244、
○デバイス100及びその様々なアプリケーションに関する設定へのアクセスを提供する、設定アプリケーション若しくはモジュールのアイコン246、及び
○App Store、iTune、Voice Memo、及びユーティリティなどの、追加アプリケーションの他のアイコン。
図2に示されているアイコンのラベルは、単に実施例であることに留意されたい。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。例えば、ヘルスモジュール142のアイコン242は、「フィットネスサポート」、「トレーニング」、「トレーニングサポート」、「エクササイズ」、「エクササイズサポート」、又は「フィットネス」と代替的にラベル付けされる。一部の実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。一部の実施形態では、特定のアプリケーションアイコンのラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
図3A~3Bは、一部の実施形態に係る、アプリケーション使用データを記憶するためのデータ構造を示すブロック図である。図3Aに示すように、アプリケーション使用データテーブル335は、電子デバイスにインストールされた対応するそれぞれのアプリケーションに関連付けられた使用データをそれぞれが記憶する、デバイス100にインストールされた各アプリケーションに対するテーブルの集合として任意選択的に実装されたデータ構造335の集合を含む(例えば、アプリケーション1の使用データテーブル335-1は、アプリケーション1に対する使用データを記憶し、アプリケーション使用データテーブル335-2は、アプリケーション2に対する使用データを記憶する)。一部の実施形態では、アプリケーション使用データテーブルの集合内の各テーブル(例えば、表335-1、335-2、335-3~335-N)は、電子デバイスにインストールされた1つを超えるアプリケーションに対する使用データを記憶する(例えば、表335-1は、潜在的な関連するデータの効率的な記憶のために、共通アプリケーションデベロッパ又はアプリケーションベンダによりそれぞれが提供された、関連アプリケーションに対する使用データを記憶する)。
一部の実施形態では、1つ以上のアプリケーション使用データテーブル335(例えば、アプリケーション1の使用データテーブル335-1)が、デバイス100にインストールされたアプリケーションに関連付けられた使用データを記憶するために使用される。図3Bに示すように、アプリケーション1の使用データテーブル335-1は、多くの使用エントリを含む。一部の実施形態では、使用エントリは、個々の記録340-1から340-zに記憶され、任意選択的に、ヘッダ340-0に記憶される。ヘッダ340-0は、一部の実施形態では、テーブル内に記憶された情報の各フィールド(例えば、記録のそれぞれに関連付けられた各フィールド)の簡易説明を含む。例えば、ヘッダ340-0は、記録340-1から340-zのそれぞれが、使用エントリを一意的に特定するエントリIDを含むことを示す。一部の実施形態では、アプリケーション1の使用データテーブル335-1は、エントリIDフィールドに加えて、使用エントリがいつ作成され、及び/又は、表335-1に記憶されたかを特定するタイムスタンプフィールド、及び、他のアプリケーション使用データテーブル335に記憶されてよい、関連する使用エントリを特定する関連使用エントリフィールドなどの、追加フィールドを含む。
一部の実施形態では、アプリケーション1の使用データテーブル335-1の各記録は、ユーザがアプリケーション1と相互作用する間に収集された使用データを含む1つ以上の使用エントリを含む(例えば、ユーザがアプリケーション1を起動する度に、新たな使用エントリが作成され、収集された使用データを記憶する)。一部の実施形態では、テーブル内の各使用エントリは、以下の情報及びデータ構造、又はそれらのサブセット又はスーパーセットを記憶する。
●アプリケーション内でユーザにより実行されたapp内アクション(例えば、実行されたapp内アクション340-1(a))を特定する情報。(一部の実施形態では、これらのアクションは、そのアプリケーションによりデバイスに報告される。)例えば、アプリケーションは、ユーザが特定のプレイリスト内の特定の歌を再生したことを使用データ収集モジュール163-2に報告する。
●他のアプリケーション(例えば、システムレベルアプリケーション)内でユーザにより実行された他のアクション(例えば、実行された他のアクション340-1(b))を特定する情報。例えば、口頭命令をバーチャルアシスタントアプリケーションに提供すること、又は、検索アプリケーションで情報のアイテムを検索すること(例えば、図1Aの検索モジュール151)。
●使用エントリに関連付けられたアプリケーションとユーザが相互作用する間に、デバイス100のセンサにより収集されたデータを含むセンサデータ(例えば、使用データ340-1(c))。これは、任意選択的に以下を含む。
○時刻(例えば、時刻340-1(d))情報
○ユーザがアプリケーションを起動した際の現在地、及び、(例えば、GPSモジュール132により報告される)アプリケーションの実行中にユーザが訪れた他の位置を特定する位置データ(例えば、位置データ340-1(e))
○ユーザがアプリケーションと相互作用している間に収集された他のセンサデータ(例えば、他のセンサデータ340-1(f))(例えば、環境光データ、標高データ、気圧値、動きデータなど)
●ユーザがアプリケーションと相互作用している間にデバイス100に連結された外部デバイスを特定するデバイス連結情報(例えば、デバイス連結情報340-1(g))。(例えば、外部デバイス例は、ヘッドホンジャックに接続されたセットのヘッドホンであり得、又は、別のデバイス例は、BLUETOOTHを介して接続されたデバイス(例えば、自動車内のスピーカ又は自動車に関連付けられたハンズフリーシステム)であり得る。)
●ユーザがアプリケーションと相互作用している間に収集された他の情報(例えば、他の情報340-1(h))(例えば、APPLE PAYのユーザの使用についての情報などの、完了した取引についての情報)。
一部の実施形態では、アプリケーションの各使用エントリが、ユーザによって実行されるアクションタイプを特定する情報を更に含む一方で、他の実施形態では、実行されたapp内アクションを特定する情報は、アクションタイプを判定又は導くために使用される。
一部の実施形態では、アプリケーション使用データテーブル335はまた、デバイス100のユーザに関連付けられたプライバシー設定についての情報も記憶する。例えば、デバイス100のユーザは、各アプリケーションに対する使用データの収集に関連付けられたプライバシー設定を構成することができる。一部の実施形態では、ユーザは、各使用エントリに含まれる全ての情報に対するデータ収集設定を管理できる(例えば、実行されたapp内アクション、実行された他のアクション、センサデータ、デバイス連結情報、及び他の情報)。例えば、ユーザは、プライバシー設定を構成し、デバイス100(又は、使用データ収集モジュール163-2などの、その構成要素)が、位置データを収集しないものの、ブラウザモジュール147に対して実行されたapp内アクションについての情報を収集するようにできる。別の実施例として、ユーザは、プライバシー設定を構成し、デバイス100が、実行されたapp内アクションについての情報を収集しないものの、オンラインビデオモジュール155に対する位置データを収集するようにできる。このようにして、ユーザは、デバイス100上の使用データの収集を管理でき、デバイス100で利用可能な各アプリケーションに対する使用データの収集に関する個人の好みに基づいて、適切なプライバシー設定を構成できる。
図4A~4Bは、一部の実施形態に係る、トリガー条件を記憶するためのデータ構造を示すブロック図である。図4Aに示すように、プロアクティブトリガー条件テーブル402は、デバイス100にインストールされた各それぞれのアプリケーションに対する表の集合として任意選択的に実装された、対応するアプリケーションに関連付けられたトリガー条件をそれぞれが記憶する、データ構造402の集合を含む(例えば、アプリケーション1のトリガー条件テーブル402-1は、アプリケーション1に関連付けられたトリガー条件を記憶する(例えば、満たされると、デバイス100にアプリケーション1を起動させる又は使用させるトリガー条件))。一部の実施形態では、アプリケーション使用データテーブルの集合内の各テーブル(例えば、表335-1、335-2、335-3~335-N)は、電子デバイスにインストールされた1つを超えるアプリケーションに関連付けられたトリガー条件を記憶する(例えば、表335-1は、潜在的な関連するデータの効率的な記憶のために、共通アプリケーションデベロッパ又はアプリケーションベンダによりそれぞれが提供された、関連アプリケーションに対するトリガー条件を記憶する)。
一部の実施形態では、1つ以上のプロアクティブトリガー条件テーブル402(例えば、アプリケーション1のトリガー条件テーブル402-1)が、デバイス100にインストールされたアプリケーションに関連付けられたトリガー条件を記憶するために使用される。例えば、図4Bに示すように、アプリケーション1のトリガー条件テーブル402-1は、アプリケーション1に関連付けられた各トリガー条件に対する多くの前提条件及び関連付けられたアクションを特定する情報を含む。図4Bに示すように、アプリケーション1のトリガー条件テーブル402-1は、記録414-1から414-zを含み、任意選択的に、ヘッダ414-0を含む。ヘッダ414-0は、一部の実施形態では、テーブル内に記憶された情報の各フィールド(例えば、記録のそれぞれに関連付けられた各フィールド)の簡易説明を含む。各記録(例えば、記録414-1)は、デバイス100が、各トリガー条件を満たすための前提条件を決定できる情報を含む。一部の実施形態では、記録414-1の前提条件1は、検出されると、デバイス100に、関連付けられたアクション(例えば、アクション4)を実行させる多くの前提条件(例えば、センサの読み値)を含む又は特定する。
具体的な実施例として、前提条件1は以下であってよい。時刻が午後4:00から午後4:30の間であるか、(例えば、GPSモジュール135により報告される)位置データが、ユーザがまだオフィス付近に居ることを示す(例えば、職場住所の所定の距離内)、及び、ユーザが移動中であることを、(例えば、加速度計168により報告される)加速度計データが示し、続いてデバイス100が、前提条件1に関連付けられたトリガー条件を検出し、アクション4を実行する(例えば、アクション4は、インスタントメッセージモジュール141に関連付けられており、モジュール141に、会社から自宅に向かっていることを示すメッセージをユーザの配偶者に送らせる(又は、メッセージを送るかユーザに尋ねるダイアログを提示する))。一部の実施形態では、前提条件は、トリガー確立モジュール163-1により特定されたユーザの行動のパターンに基づいて特定される(図1A)。一部の実施形態では、トリガー確立モジュール163-1は、使用データ収集モジュール163-2及びアプリケーション使用データテーブル335と併せて、アプリケーション使用データテーブルに記憶されているデータをマイニングして、ユーザの行動のパターンを特定する。先の実施例を続けると、ユーザが職場の所定の距離内にあって移動中に、午後4:00から午後4:30の間にユーザが配偶者にメッセージを送った別個の三日間の観察後、続いてトリガー確立モジュール163-1は、対応するトリガー条件を作成し、前提条件が観察されると、メッセージを自動で送る(又は、メッセージを自動で送ってよいかユーザに尋ねる)。一部の実施形態では、トリガー確立モジュール163-1は、アプリケーション使用データテーブル335を所定の間隔(例えば、1時間毎、4時間毎、毎日、又はデバイスが外部電源に接続された時)で分析又はマイニングし、それらの所定の間隔にてのみトリガー条件を作成する。一部の実施形態では、ユーザは、トリガー条件が作成されるべきか確認する(例えば、デバイス100が、前提条件及び関連付けられたアクションを説明するダイアログをユーザに提示し、ユーザは続いて、トリガー条件の作成を確認又は拒否する)。例えば、あるダイアログ例では、以下のテキストを含む「いつもこの時刻の帰宅時に奥様にテキストでお伝えしているようです。(I've noticed that you always text your wife that you are on your way home at this time of day.)「今から帰る」というテキストを送りますか?(Would you like to send her a text saying: I'm heading home now?)」。
図5は、一部の実施形態に係る、トリガー条件確立システム例を示すブロック図である。図5に示すように、トリガー条件確立システム500は、ポータブル多機能デバイス100を含み、また、1つ以上のサーバ502も含む。ポータブル多機能デバイス100は、1つ以上のネットワークを介して1つ以上のサーバ502と通信する。1つ以上のネットワーク(例えば、ネットワーク(単数又は複数)520)は、トリガー条件確立システム500の各構成要素を、トリガー条件確立システム500の他の構成要素と通信可能に接続する。一部の実施形態では、1つ以上のネットワーク520は、パブリック通信ネットワーク、プライベート通信ネットワーク、又はパブリック通信ネットワーク及びプライベート通信ネットワークの両方の組み合わせを含む。例えば、1つ以上のネットワーク520は、インターネット、他のワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、バーチャルプライベートネットワーク(VPN)、メトロポリタンエリアネットワーク(MAN)、ピアツーピアネットワーク、及び/又はアドホック接続などの、任意のネットワーク(又は、ネットワークの組み合わせ)であり得る。
一部の実施形態では、1つ以上のプロアクティブトリガー条件テーブル402は、ポータブル多機能デバイス100に記憶され、1つ以上の他のプロアクティブトリガー条件テーブル402は、1つ以上のサーバ502に記憶される。一部の実施形態では、ポータブル多機能デバイス100が、プロアクティブトリガー条件テーブル402を記憶する一方で、他の実施形態では、1つ以上のサーバ502が、プロアクティブトリガー条件テーブル402を記憶する。同様に、一部の実施形態では、1つ以上のアプリケーション使用データテーブル335は、ポータブル多機能デバイス100に記憶され、1つ以上の他のアプリケーション使用データテーブル335は、1つ以上のサーバ502に記憶される。一部の実施形態では、ポータブル多機能デバイス100が、アプリケーション使用データテーブル335を記憶する一方で、他の実施形態では、1つ以上のサーバ502が、アプリケーション使用データテーブル335を記憶する。
1つ以上のプロアクティブトリガー条件テーブル402又は1つ以上のアプリケーション使用データテーブル335が1つ以上のサーバ502に記憶されている実施形態では、続いて、トリガー確立モジュール163-1及び使用データ収集モジュール163-2により実行される機能の一部はそれぞれ、1つ以上のサーバ502にて実行される。これらの実施形態では、1つ以上のサーバ502とデバイス100との間で、ネットワーク520を介して情報が交換される。例えば、1つ以上のサーバ502が、オンラインビデオモジュール155に対するプロアクティブトリガー条件テーブル402を記憶する場合、一部の実施形態では、デバイス100は、オンラインビデオモジュール155に対応する1つ以上の使用エントリを、1つ以上のサーバ502に送信する。一部の実施形態では、1つ以上のサーバ502は続いて、受信した使用データをマイニングし、使用パターンを特定し、トリガー条件を作成し(図4A~4Bに関連して上述するように)、作成したトリガー条件をデバイス100に送信する。一部の実施形態では、オンラインビデオモジュール155に関連付けられたデータ(例えば、1つ以上のビデオストリームに対するデータ)の受信中に、デバイス100及び1つ以上のサーバ502は、使用データ及びトリガー条件を交換する。一部の実施形態では、1つ以上のサーバ502は、作成したトリガー条件も検出することができ、トリガー条件がデバイス100にまったく送信される必要がないようにする(例えば、1つ以上のビデオストリームに対するデータの交換中に受信した使用データに基づいて、サーバは、トリガー条件が満たされていると判定し得る)。一部の実施形態では、1つ以上のサーバ502に送信される使用データは限定範囲であり、オンラインビデオモジュール155のユーザの使用に関する情報のみを含むようにする(上述するように、ユーザはまた、使用データの収集をカバーするプライバシー設定も構成しなければならず、これらのプライバシー設定はまた、一部の実施形態では、ユーザが、1つ以上のサーバ502との使用データの交換を構成可能にもする(例えば、どの種類のデータを送信すべきであり、どの種類のデータを送信すべきでないかを構成可能にする))。
一部の実施形態では、セクション1~11に関連して以下に説明するデータ構造もまた使用され、本明細書に説明する方法のいずれかの実装及び/又は改善を補助する。例えば、図1~11に関連して以下に説明する予測エンジンが使用され、トリガー条件の確立を補助し、及び/又は、セクション1~11に説明する他の技術もまた使用され、アプリケーションの使用履歴の監視を補助する。
図6A~6Bは、一部の実施形態に係る、関連コンテンツを先見的に特定し、表面化させる方法600を示すフローチャートを示す。図3A~3B、4A~4B、5、及び7A~7Bは、図6A~6Bの方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法600は、電子デバイス(例えば、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法600は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法600はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法600の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)、アプリケーション使用データテーブル(例えば、アプリケーション使用データテーブル335)、トリガー条件テーブル(例えば、トリガー条件テーブル402)、トリガー確立モジュール(例えば、トリガー確立モジュール163-1)、使用データ収集モジュール(例えば、使用データ収集モジュール163-2)、プロアクティブ提案モジュール(例えば、プロアクティブ提案モジュール163-3)、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、1つ以上の接触強度センサ(例えば、接触強度センサ165)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法600の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法600は、タッチ感知ディスプレイを備える電子デバイス上にて関連コンテンツを先見的に特定し、表面化させる直感的な方法を提供する。この方法は、様々な機能を実行するために必要なタッチ入力数を減らすことにより、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスの場合、より速く、より効率的に、関連コンテンツを先見的に特定し、表面化させることの両方は、電力を節約し、バッテリを充電する間隔を延長する。
図6Aに示すように、デバイスは、電子デバイスのユーザからの命令に応じて、電子デバイス上で、アプリケーションを実行する(602)。一部の実施形態では、ユーザからの命令は、アプリケーションに関連付けられたアイコン上のタッチ入力、又は、ユーザから受信した、バーチャルアシスタントアプリケーション(例えば、図1Aのオペレーティングシステム126により管理されたバーチャルアシスタントアプリケーション)にアプリケーションを実行するよう命令する音声コマンドである。アプリケーションの実行中、デバイス(又は、使用データ収集モジュール163-2などの、その構成要素)は、アプリケーション内にてユーザによって実行される1つ以上のアクションを含む使用データを収集する(604)。一部の実施形態では、使用データはまた、1つ以上のアクションを含むことに加えて、又は、その代わりに、1つ以上のアクションのそれぞれに関連付けられたアクションタイプを特定する情報を含む。例えば、使用データは、音楽プレーヤモジュール152との相互作用中に、ユーザが、第1のプレイリストを検索し、第1のプレイリスト内をナビゲートし、第1のプレイリスト内の第1のトラックを選択し、続いて、第2のプレイリストを検索したことを特定する情報を含む(例えば、使用データは、音楽プレーヤモジュール152内でユーザによって実行される1つ以上のアクションのそれぞれを含む)。このようにして、使用データは、実行された個々のアクションのそれぞれについての情報を含み(例えば、ユーザが、第1のプレイリストの第1のトラックを検索し、再生した)、また、アクションタイプ(検索、ナビゲート、選択など)を特定する情報を含む。一部の実施形態では、使用データ取集モジュール163-2は、1つ以上のアクションを収集し、続いて、トリガー確立モジュール163-1は後に、アクションタイプを1つ以上のアクションのそれぞれに指定する。
一部の実施形態では、収集された使用データは、アプリケーションに関連付けられたアプリケーション使用データテーブルの使用エントリに(図3A~3Bに関連して上述するように)記憶される。一部の実施形態では、収集された使用データは、ユーザによって実行されたapp内アクション、ユーザによって実行された他のアクション(例えば、バーチャルアシスタントアプリケーションとの相互作用、検索インタフェース(例えば、検索モジュール151)との相互作用、及び、オペレーティングシステム126により管理されているアプリケーションとの他の相互作用)、カレンダーイベントに関連付けられた情報、及び(図3Bに関連して上述するように)デバイス100上のセンサから取得した追加データを含む。
一部の実施形態では、使用データは、アプリケーションの実行が継続されている間にユーザからバーチャルアシスタントアプリケーションに提供された口頭命令を含み、少なくとも1つのトリガー条件が更に、その口頭命令に基づいて、バーチャルアシスタントアプリケーションに提供される(618)。一部の実施形態では、口頭命令は、アプリケーションの現在の状態に対応する(例えば、再作成/再実行に関連する、又は、これを要求する)リマインダを作成することの要求を含み、この現在の状態は、口頭命令が提供された際のアプリケーションの状態に対応する(例えば、図1Bの1つ以上のアプリケーションビュー191)。一部の実施形態では、口頭命令が提供された際のアプリケーションの状態は、以下からなる群から選択される。口頭命令が提供された際にアプリケーション内に表示されていたページ、口頭命令が提供された際にアプリケーション内にて再生されていたコンテンツ(例えば、現在再生されているオーディオトラック)、口頭命令が提供された際にアプリケーション内に表示されていた通知(例えば、ユーザがブラウザモジュール147と相互作用している間に表示された、インスタントメッセージモジュール141からの通知)、及び口頭命令が提供された際にアプリケーション内に表示されたページのアクティブ部分(例えば、ウェブページ内で現在再生されているビデオコンテンツ)。追加的実施例として、アプリケーションの現在の状態はまた、以下に対応する場合がある。(i)口頭命令が提供された際にアプリケーション内にてユーザが現在閲覧している特定のページの識別子(例えば、現在表示されているウェブページのURL)、又は、現在のページにナビゲートする前にユーザがアプリケーション内にて行ったアクションの履歴(例えば、現在表示されているウェブページの前にユーザが訪問したURL)。
一部の実施形態では、口頭命令は、アプリケーションの現在の状態に関連して、用語「これ(this)」又は「それ(that)」を含む。例えば、ユーザは、インスタントメッセージモジュール141からの通知が表示されている間に、命令「『これ(this)』を自分にリマインドする(remind me of'this')」をバーチャルアシスタントアプリケーションに提供し、これに応じて、バーチャルアシスタントアプリケーションは、通知内に表示されたコンテンツに対応するリマインダをデバイス100に作成させる。別の実施例として、オンラインビデオモジュール155にてユーザが特定のビデオコンテンツを視聴している間に、ユーザは、命令「『これ(this)』を視聴するよう自分にリマインダする(remind me to watch'this')」をバーチャルアシスタントアプリケーションに提供し、これに応じて、バーチャルアシスタントアプリケーションは、特定のビデオコンテンツに対応するリマインダをデバイス100に作成させる。一部の実施形態では、デバイス100は、口頭命令がアプリケーション自体から提供された際のアプリケーションの現在の状態に関する情報を受信する(例えば、前の例を続けると、オンラインビデオモジュール155は、その現在の状態を、デバイス100又はプロアクティブモジュール163などのその構成要素に報告し戻し、このようにして、プロアクティブモジュール163は、特定のビデオコンテンツを識別する情報を受信する)。
デバイスは続いて、自動的に、かつ人の介入なしに、収集された使用データに基づく少なくとも1つのトリガー条件を取得する(606)。一部の実施形態では、少なくとも1つのトリガー条件がデバイス上で確立される一方で、他の実施形態では、トリガー条件は、デバイスから1つ以上のサーバ502に送信された使用データに基づいて(図5に関連して上述するように)トリガー条件を確立したサーバ(例えば、図5の1つ以上のサーバ502)から取得される(612)。一部の実施形態では、少なくとも1つのトリガー条件は、満たされると、デバイス(又は、プロアクティブモジュール163などの、その構成要素)に、少なくとも1つのトリガー条件に関連付けられたアクションをユーザが容易に実行することができるようにさせる、(例えば、いずれの入力なく、又は、ユーザからのシングルタッチ若しくは口頭入力のみにて)。例えば、1つのトリガー例は、午後2:00から午後2:30の間に、以前に訪れたGPS座標の間(例えば、職場住所付近に位置する、ユーザがよく訪れる2つの建物の間)をユーザが歩いていることを、(例えば、加速度計168により報告される)加速度計データが示す間に、デバイスが自動的に(及び、ユーザからのいずれの入力なく)音楽アプリケーション(例えば、図1Aの音楽プレーヤ152)を開き、特定のプレイリストを再生することを示してよい。一部の実施形態では、使用データを収集し、平日の午後2:00から午後2:30の間に、以前に訪れたGPS座標の間を歩いている間に、ユーザが音楽プレーヤ152を開き、特定のプレイリストを再生したことを、音楽プレーヤ152に関連付けられた、収集された使用データが示すことを判定した後に、このトリガー例は、(1つ以上のサーバ502又はデバイス100により)確立された。このようにして、デバイス(又は、サーバ)は、収集された使用データに基づいてパターンを特定し、認識する。ユーザに対して自動的にアクションを実行する(例えば、特定のプレイリストを再生する)ことにより、ユーザは、デバイスをロック解除し、音楽プレーヤ152を検索し、特定のプレイリストを検索し、続いて特定のプレイリストを再生するといった時間を浪費する必要がなくなる。
一部の実施形態では、デバイスが特定の使用データを収集することをユーザが許可していることを確認し、及び/又は、デバイスがトリガー条件を確立することをユーザが許可していることを検証するために、この方法はまた、トリガー条件を確立する又は取得する前に、デバイスのユーザに関連付けられたプライバシー設定をチェックすることを含む(例えば、ユーザは、デバイスに自動的にテキストメッセージを送信させるトリガー条件をデバイスが確立することを禁止するよう設定を構成してよい)。
このデバイス(又は、トリガー条件確立モジュール163-1などの、その構成要素)はまた、少なくとも1つのトリガー条件を、アプリケーション内にてユーザによって実行される1つ以上のアクションの特定のアクション(又は、特定のアクションに対応する特定のアクションタイプ)に関連付ける(608)(例えば、図4A~4Bの、特定のアクションと共にトリガー条件を満たすための前提条件を、プロアクティブトリガー条件テーブル402に記憶することにより)。少なくとも1つのトリガー条件が満たされていると判定すると、デバイスは、トリガー条件に関連付けられた特定のアクション(又は、特定のアクションタイプ)が利用可能であることのインジケーションをユーザに提供する(610)。一部の実施形態では、ユーザにインジケーションを提供することは、特定のアクションを起動するための(又は、特定のアクションタイプに対応するアクションを実行するための)ユーザインタフェースオブジェクト(例えば、図7AのUIオブジェクト702)を表面化させること、特定のアクションを実行するアプリケーションに関連付けられたアイコン(例えば、図7Aの、タッチスクリーン112の左下角に示すようなアプリケーションアイコン710)を表面化させること、又は(特定のプレイリストの実施例にて上述したように)特定のアクションを単に実行することを含む。一部の実施形態では、デバイスは、ユーザインタフェースオブジェクト及び/又はアイコンを表面化させる一方でまた、(自動的にかつ人の介入なしに)特定のアクション(又は、特定のアクションと同じ特定のアクションタイプのアクション)を単に実行する。
一部の実施形態では、少なくとも1つのトリガー条件を取得することは、電子デバイスからリモートに位置する1つ以上のサーバ(例えば、図5のサーバ502)に、使用データを送信し、その1つ以上のサーバから少なくとも1つのトリガー条件を受信することを含む(612)。例えば、これらの実施形態と一致して、電子デバイスは、(ネットワーク520を介して)1つ以上の使用エントリ(例えば、図3Bの使用エントリ1)をサーバ502に送信し、その使用データに基づいて、サーバ502は、少なくとも1つのトリガー条件を確立する。実施例を続けると、サーバ502は続いて、(ネットワーク520を使用して)その少なくとも1つのトリガー条件(例えば、プロアクティブトリガー条件テーブル402-1に記憶されている前提条件及び関連付けられたアクション)をデバイス100に送信する。
一部の実施形態では、インジケーションを提供することは、タッチ感知ディスプレイ上のロックスクリーンに、トリガー条件に関連付けられた特定のアクションに対応するユーザインタフェースオブジェクトを表示することを含む(614)。一部の実施形態では、ユーザインタフェースオブジェクトは、ロックスクリーンの所定の中央部に表示される(例えば、図7Aに示すように、UIオブジェクト702は、ロックスクリーンの実質的中央に表示される)。例えば、デバイスは、ロックスクリーン上にUIオブジェクト702を表示することで、このインジケーションを提供する(図7A)。図7Aに示すように、UIオブジェクト702は、予測されたアクション706を含む。一部の実施形態では、予測されたアクション706は、少なくとも1つのトリガー条件に関連付けられたアクションの説明である(つまり、ユーザインタフェースオブジェクトは、「スワイプして歩行中プレイリストのトラック2を再生する(Swipe to Play Track 2 of Walking Playlist)」などの、トリガー条件に関連付けられた特定のアクションの説明を含む(616))。一部の実施形態では、UIオブジェクト702はまた、任意選択的に、UIオブジェクト702が表示されている理由についての情報をユーザに提供する追加情報704を含む。一部の実施形態では、追加情報704は、トリガー条件を検出するために使用された使用データ(例えば、センサデータ340-1(c))の説明、及び/又は、少なくとも1つのトリガー条件に対する前提条件の説明(例えば、図4Bの記録414-1の前提条件1)を含む。例えば、追加情報704は、この特定の時刻にユーザが歩行中に、ユーザがよく歩行中プレイリストを聞いているため、予測されたアクション706が表示されていることを示す。一部の実施形態では、追加情報704を選択すること(例えば、追加情報704の上をタップすること)は、デバイス100に、使用データの収集及びトリガー条件の作成に関連付けられたプライバシー設定をユーザが変更できるユーザインタフェースを表示させる。
一部の実施形態では、UIオブジェクト702はまた、任意選択的に、予測されたアクション706に関連付けられたアプリケーションアイコン710を含む(616)。例えば、アプリケーションアイコン710は、音楽プレーヤ152のアイコンである(図7Aに示すように)。一部の実施形態では、UIオブジェクト702はまた、アフォーダンス708も含み、これは、選択されると、予測されたアクションをデバイスに実行させる(例えば、歩行中プレイリストのトラック2をデバイスに再生させる)。一部の実施形態では、ユーザインタフェースオブジェクト(例えば、ユーザインタフェースオブジェクト702)は、トリガー条件に関連付けられた特定のアクションの説明を含む(例えば、上述するように、予測されたアクション706)。一部の実施形態では、ユーザインタフェースオブジェクト702は、アプリケーションに関連付けられたアイコンを更に含む(例えば、UIオブジェクト702内に表示されたアプリケーションアイコン710)。一部の実施形態では、ユーザインタフェースオブジェクト702は、スヌーズボタンを更に含み、これは、選択されると、デバイスに、UIオブジェクト702の表示を停止させ、ユーザにより選択された又は事前に構成された期間後にUIオブジェクト702を再表示させる。例えば、ユーザは、UIオブジェクト702が2時間にわたりスヌーズし、2時間後に、デバイスがUIオブジェクト702を再表示するよう選択する。別の実施例として、ユーザは、UIオブジェクト702を、利用可能になるまでスヌーズするよう選択し、一部の実施形態では、デバイス100は、カレンダーモジュール148を検索して、ユーザのスケジュールでの次の空きスロットを特定し、特定された次の空きスロット中にUIオブジェクト702を再表示する。
一部の実施形態では、デバイスは、ユーザインタフェースオブジェクトでの第1のジェスチャを検出する(622)。第1のジェスチャの検出に応じて、デバイスは、タッチ感知ディスプレイ上にアプリケーションを表示し、アプリケーションを表示する間に、トリガー条件に関連付けられた特定のアクションを実行する(624)。一部の実施形態では、第1のジェスチャは、ユーザインタフェースオブジェクト上のスワイプジェスチャである。一部の実施形態では、ユーザインタフェースオブジェクト上でのスワイプジェスチャの検出に応じて、デバイスはまた、アプリケーションを表示する前に自身をロック解除する(他の実施形態では、アプリケーションは、ロックスクリーンの右に表示される)。一部の実施形態では、第1のジェスチャは、UIオブジェクト702内に表示されるテキストにより示される(例えば、予測されたアクション706内のテキストは、第1のジェスチャ、例えば、「~にスワイプする(Swipe to ...)」、の説明を含む)。例えば、及び、図7Aを参照して、ユーザは、UIオブジェクト702の上のタッチ感知面に接触し、タッチ感知面との接触を離すことなく、ユーザはその接触を、UIオブジェクト702にわたって実質的に水平方向に移動させる。UIオブジェクト702上のユーザからのこのスワイプジェスチャの検出に応じて、デバイスは音楽プレーヤ152を表示し、歩行中プレイリストのトラック2を再生する。
あるいは、第1のジェスチャを検出することの代わりに、一部の実施形態では、デバイスは、ユーザインタフェースオブジェクトでの第2のジェスチャ(例えば、ユーザインタフェースオブジェクト(例えば、アフォーダンス708などの再生ボタン)の所定のエリアでのシングルタップなどの、上述する第1のジェスチャとは別個のジェスチャ)を検出する(626)。第2のジェスチャを検出したことに応じて、かつタッチ感知ディスプレイ上にロックスクリーンを継続して表示する間に、デバイスは、トリガー条件に関連付けられた特定のアクションを実行する(628)。つまり、デバイスは、ロックスクリーンからまさに特定のアクションを実行し、アプリケーションを表示することなく、ロックスクリーンを継続して表示する。
一部の実施形態では、動作622~628に関連して上述する第1及び第2のジェスチャは同じジェスチャであるが、UIオブジェクト702内に表示される異なるオブジェクト上にて実行される。例えば、第1のジェスチャが、予測されたアクション706上でのスワイプジェスチャである一方で、第2のジェスチャは、アフォーダンス708上でのスワイプジェスチャである。別の実施例として、第1のジェスチャは、予測されたアクション706上でのシングルタップであり、第2のジェスチャは、アフォーダンス708上でのシングルタップである。
一部の実施形態では、特定のアクションが利用可能であることのインジケーションをユーザに提供することは、特定のアクションが実行のために利用可能であることをユーザに知らせることを含む。一部の実施形態では、トリガー条件に関連付けられた特定のアクションが利用可能であることのインジケーションをユーザに提供することは、特定のアクションを実行することを含む。一部の実施形態では、このインジケーションは、特定のアクションを実行することにより、ユーザに提供される(例えば、ユーザは、再生中の所望するプレイリストを聞く)。一部の実施形態では、UIオブジェクト702がロックスクリーン上に表示され、(上述する第1及び第2のジェスチャなどの)いずれのユーザ入力を受信することなく、特定のアクションもまた実行される。
一部の実施形態では、UIオブジェクト702を表示することの代わりに(又は、これに加えて)、デバイスは、アプリケーションに関連付けられたアイコンを、実質的にロックスクリーンの角に表示する(例えば、図7Aに示すように、アプリケーションアイコン710は、実質的にタッチスクリーン112の左下角に表示されている)。
一部の実施形態では、デバイスは、ユーザから、電子デバイスをロック解除する命令を受信する(例えば、接触がホームボタン204上に延長された後に、ユーザの指紋を有効と認識する)。命令を受信したことに応じて(例えば、デバイスをロック解除し、ロックスクリーンの表示を停止した後に)、デバイスは、タッチ感知ディスプレイ上に、デバイスのホームスクリーンを表示し(620)、そのホームスクリーン上にて、トリガー条件に関連付けられた特定のアクションが利用可能であることのインジケーションをユーザに提供する。図7Bに示すように、デバイスをロック解除する命令を受信した後、ホームスクリーンのスプリングボードセクション(又は、アプリケーションラウンチャ)に重ね合わせるように、UIオブジェクト702が表示される。一部の実施形態では、ホームスクリーンの上にUIオブジェクト702を表示することの代わりに、又はこれに加えて、デバイスはまた、ホームスクリーンのドックセクションに重なる下部にアプリケーションアイコン710を表示する。一部の実施形態では、ホームスクリーンは、(i)電子デバイス上で利用可能なアプリケーションの第1のセットを起動するための1つ以上のユーザインタフェースページを含む第1の部分(例えば、第1の部分は、ホームスクリーンのスプリングボードセクションの個々のページの全てを含む)、及び(ii)電子デバイス上で利用可能なアプリケーションの第2のセットを起動するための、第1の部分に隣接して(例えば、下に)表示される、第1の部分に含まれる全てのユーザインタフェースページ上に表示される第2の部分(例えば、第2の部分はドックセクションである)を含む。一部の実施形態では、ホームスクリーン上にインジケーションを提供することは、第2の部分上にインジケーションを表示することを含む(例えば、図7Bに示すように、アプリケーションアイコン710を含む下部は、ドック部上に表示される)。一部の実施形態では、アプリケーションの第2のセットは、アプリケーションの第1のセットとは別個であり、かつアプリケーションの第1のセットより小さい(例えば、ドックセクション内に表示されているアプリケーションの第2のセットは、ユーザのお気に入りのアプリケーションのアイコンの選択されるセットである)。
一部の実施形態では、少なくとも1つのトリガー条件が満たされていると判定することは、電子デバイスとは別個の第2のデバイスが電子デバイスに連結されていると判定することを含む。例えば、第2のデバイスは、ヘッドセットジャック212を介してデバイスに連結されたセットのヘッドホンであり、少なくとも1つのトリガー条件は、そのセットのヘッドホンが、デバイスに連結されていること示す前提条件を含む(例えば、ヘッドホンを接続後にユーザがいつも起動するポッドキャストアプリケーション内で、ユーザのお気に入りのポッドキャストを起動することを含む特定のアクションを実行する前に)。別の実施例として、第2のデバイスは、ユーザの自動車に関連付けられたBluetoothスピーカ又は他のハンズフリーデバイスであり、少なくとも1つのトリガー条件は、自動車のBluetoothスピーカがデバイスに連結されていることを示す前提条件を含む(例えば、時刻及びユーザの位置が、ユーザの母親を呼び出す特定のアクションに対する追加前提条件に一致する場合に、ユーザの母親を呼び出すことを含む特定のアクションを実行する前に)。外部デバイスを連結すること、及び、この連結に応じてアクションを実行することに関する追加詳細は、以下のセクション6に(例えば、セクション6の図36-1に関連して)提供されている。
一部の実施形態では、少なくとも1つのトリガー条件が満たされていると判定することは、ユーザに関連付けられた自宅又は職場位置に対応する位置に電子デバイスが到着したと判定することを含む。一部の実施形態では、デバイスは、ユーザがたびたび訪れる場所(例えば、場所に関連付けられた特定のGPS座標又は通りの住所)を監視し、この情報を使用して、ユーザに関連付けられた自宅又は職場位置を確定する。一部の実施形態では、デバイスは、ユーザから受信した又はユーザが入力した情報に基づいて、これらの位置に対する住所を判定する(記憶された連絡先など)。一部の実施形態では、ユーザに関連付けられた自宅又は職場位置に対応する住所に電子デバイスが到着したと判定することは、電子デバイスの加速度計からの動きデータを監視することと、監視した動きデータに基づいて、電子デバイスが閾値時間量を超えて動いていないと判定することと、を含む(例えば、ユーザが自宅に到着し、10分間にわたって動いていない)。このようにして、例えば、デバイスは、ユーザが自宅への私道に到着した時点の代わりに、ユーザが実際に自宅に到着した際に、少なくとも1つのトリガー条件に関連付けられた特定のアクションが実行されることを確かにする。
上述する方法600の一部の実施形態では、この方法は取得動作606にて開始し、任意選択的に、実行動作602と、収集動作604と、を含む。つまり、これらの実施形態では、方法600は以下を含む。電子デバイスのユーザに関連付けられた使用データであって、アプリケーションが電子デバイス上で実行されていた間に、アプリケーション内にてユーザによって実行される1つ以上のアクションを含む使用データに基づいて、少なくとも1つのトリガー条件を取得すること、少なくとも1つのトリガー条件を、アプリケーション内にてユーザによって実行される1つ以上のアクションの特定のアクションに関連付けること、及び、少なくとも1つのトリガー条件が満たされていると判定する際に、トリガー条件に関連付けられた特定のアクションが利用可能であることのインジケーションをユーザに提供すること。
図6A~6Bでの動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法800)に関連して本明細書で説明される、他のプロセスの詳細もまた、図6A~6Bに関連して上述された方法600と類似の方式で適用可能であることに留意されたい。例えば、方法600を参照して先述したユーザインタフェースオブジェクトは、任意選択的に、本明細書で説明する他の方法(例えば、方法800)を参照して本明細書に記載のユーザインタフェースオブジェクトの特性のうちの1つ以上を有する。一部の実施形態では、方法600と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図8A~8Bは、一部の実施形態に係る、関連コンテンツを先見的に特定し、表面化させる方法800を示すフローチャートを示す。図3A~3B、4A~4B、5、及び9A~9Dは、図8A~8Bの方法及び/又はプロセスを示すために使用される。一部の実施形態では、図9A~9Dに示すユーザインタフェースは、ゼロキーワード検索とも呼ばれる。ゼロキーワード検索は、ユーザからのいずれの入力なく行われる検索(例えば、検索エントリボックスは空欄のままである)であり、これによりユーザは、例えば、ユーザが次に検索する可能性のある(又は、と予測された)人、アプリケーション、アプリケーション内のアクション、近隣の場所、及び/又はニュース記事を閲覧できる。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法800は、電子デバイス(例えば、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法800は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法800はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法800の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)、アプリケーション使用データテーブル(例えば、アプリケーション使用データテーブル335)、トリガー条件テーブル(例えば、トリガー条件テーブル402)、トリガー確立モジュール(例えば、トリガー確立モジュール163-1)、使用データ収集モジュール(例えば、使用データ収集モジュール163-2)、プロアクティブ提案モジュール(例えば、プロアクティブ提案モジュール163-3)、検索モジュール(例えば、検索モジュール151)、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、1つ以上の接触強度センサ(例えば、接触強度センサ165)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法800の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法800は、関連コンテンツを先見的に特定し、表面化させるための自動化された方法を、タッチ感知ディスプレイを備える電子デバイス上にて提供する(ユーザが関連コンテンツを明示的に尋ねる前に、例えば、検索インタフェースに検索エントリ部分内にいずれのテキストをユーザが入力する前に)。この方法は、アプリケーションにアクセスする際のユーザの認識的負担を軽減し、それによって、より効率的なヒューマンマシンインタフェースを作り出す。
図8Aに示すように、デバイスは、タッチ感知ディスプレイ上の検索アクティブ化ジェスチャを検出する(802)。例えば、図9Aに示すように、デバイスは、検索アクティブ化ジェスチャ902-1を検出する(例えば、タッチ感知ディスプレイ上での接触に続く、実質的に垂直方向(例えば、下向き)の、この接触の連続する動き)。別の実施例として、図9Aに更に示すように、デバイスは、検索アクティブ化ジェスチャ902-2を検出する(例えば、タッチ感知面上での接触に続く、実質的に水平方向(例えば、右向き)の、この接触の連続する動き)。一部の実施形態では、検索アクティブ化ジェスチャは、少なくとも2つの別個のユーザインタフェースから利用可能であり、少なくとも2つの別個のユーザインタフェースの第1のユーザインタフェースは、タッチ感知ディスプレイ上の一連のホームスクリーンページのそれぞれのホームスクリーンページを表示することに対応する。
一部の実施形態では、それぞれのホームスクリーンページが、一連のホームスクリーンページ内の最初のホームスクリーンページである場合(例えば、図9Aに示すように)、検索アクティブ化ジェスチャは、(i)電子デバイスのユーザに対して実質的に下向き方向に動くジェスチャ(例えば、ジェスチャ902-1)、又は(ii)ユーザに対して実質的に左右方向であり、下向き方向に対して実質的に直角をなす方向に動く、連続するジェスチャ(例えば、ジェスチャ902-2)のうちの1つを含む。一部の実施形態では、それぞれのホームスクリーンページが、一連のホームスクリーンページ内の第2のホームスクリーンページである(つまり、最初のホームスクリーンページでない)場合、検索アクティブ化ジェスチャは、電子デバイスのユーザに対して実質的に下向き方向に動く、連続するジェスチャである(つまり、検索アクティブ化ジェスチャ902-1のみが利用可能であり、ジェスチャ902-2は利用可能でない)。
一部の実施形態では、少なくとも2つの別個のユーザインタフェースの第2のユーザインタフェースは、タッチ感知ディスプレイ上にアプリケーション切り替えインタフェースを表示することに対応する(例えば、ホームボタン204をダブルタップするユーザに応じて)。一部の実施形態では、検索アクティブ化ジェスチャは、タッチ感知ディスプレイ上の、アプリケーション切り替えインタフェースの所定の検索アクティブ化部位での接触を含む(例えば、アプリケーション切り替えインタフェースは、アプリケーション切り替えインタフェースの上部内に表示された所定の検索アクティブ化部位(図9Bの検索エントリ部分920と同様)である検索エントリ部分を含む)。
検索アクティブ化ジェスチャを検出したことに応じて、デバイスは、タッチ感知ディスプレイ上に検索インタフェースを表示し(804)、この検索インタフェースは、(a)検索エントリ部分(例えば、図9Bの、検索クエリとして使用される、ユーザからの入力を受け取るための、検索エントリ部分920)、及び(b)検索エントリ部分にていずれのユーザ入力を受信する前に表示される予測部分(例えば、図9Bの予測部分930)を含む(806)。予測部分は、(a)複数の以前に連絡した人の一人に連絡するための少なくとも1つのアフォーダンス(例えば、図9Bの、提案された人940セクション内に表示されたアフォーダンス)、及び(b)電子デバイス上で利用可能な複数のアプリケーションの、あるアプリケーション(例えば、「ディープリンク」)内の予測されたアクションを実行するための少なくとも1つのアフォーダンス(例えば、図9Bの提案されたアクション950セクション)のうちの1つ以上でポピュレートされる。アプリケーション「内(Within)」とは、特定のページ、ビュー、又は状態へのリンクを表す予測されたアクションをアプリケーション内にて実行するための少なくとも1つのアフォーダンスを指す(例えば、図1Bのアプリケーションビュー191の1つ)。つまり、予測されたアクションを実行するための少なくとも1つのアフォーダンスは、選択されると、アプリケーションを起動し、既定のコンテンツ、又は、アプリケーションとの以前の相互作用からのコンテンツを単に表示するのではなく、その代わりに、ディープリンクに対応する特定のページ、ビュー、又は状態を表示する。
一部の実施形態では、人は、現在時刻に少なくとも部分的に基づいて、複数の以前に連絡した人から、自動的に選択される(例えば、デバイス100又はプロアクティブモジュール163により)。例えば、毎日午後5:30前後に、ユーザがまだ勤務中に(職場位置は、図6A~6Bを参照して上述するように判定される)、ユーザは、自宅に向かっていることを示すテキストをルームメイトに送ると、予測部分は、そのルームメイトに関連付けられたアフォーダンスを含むようになる(例えば、P-1はルームメイト用)。
一部の実施形態では、予測されたアクションは、電子デバイスのユーザに関連付けられたアプリケーションの使用履歴に少なくとも部分的に基づいて、自動的に選択される(例えば、デバイス100又はプロアクティブモジュール163により)(例えば、(図3A~3Bの1つ以上のアプリケーション使用テーブル335により提供される)アプリケーションの使用履歴が、毎日午後2:15前後に、ユーザが、(上述するように、検索アクティブ化ジェスチャを提供することで)検索インタフェースを開き、「音楽(music)」を検索し、特定の音楽app検索結果を選択し、続いて、「歩行中プレイリスト(walking playlist)」を再生することを示すと、このアプリケーションの使用履歴に基づいて、予測部分は、検索エントリ部分にいずれのユーザ入力を受け取る前に、音楽app内のプレイリストの再生を開始するアフォーダンスを含むようになる(例えば、図9Bの、提案されたアクション950セクション内に表示されたコンテンツにより示されるように))。一部の実施形態では、アプリケーション内にて予測されたアクションを実行するための少なくとも1つのアフォーダンスはまた、現在時刻に少なくとも部分的に基づいて(例えば、予測されたアクションをユーザが通常行う時間と同じ時間前後に検索アクティブ化ジェスチャを提供するユーザに基づいて)選択される(アプリケーションの使用履歴の代わりに、又はこれに加えて)。一部の実施形態では(及び、図9Bに示すように)、予測されたアクションを実行するための少なくとも1つのアフォーダンスはユーザインタフェースオブジェクト702に対応し、従って、ユーザインタフェースオブジェクト702に関して先に提供される詳細(図6A~6B及び7A~7B)もまた、提案されたアクションセクション950及びそこに表示されたコンテンツにも適用する。
一部の実施形態では、電子デバイスに対応する位置データに少なくとも部分的に基づいて、人が更に選択される(例えば、職場に関連付けられた住所に朝到着すると、ユーザは大切な人にたびたび連絡する)。一部の実施形態では、人に対するアプリケーションの使用履歴及び連絡先情報は、電子デバイスのメモリから取り出される(例えば、図1Aの、デバイス100のメモリ102)。一部の実施形態では、人に対するアプリケーションの使用履歴及び連絡先情報は、電子デバイスからリモートに位置するサーバから取り出される(例えば、図5の1つ以上のサーバ502)。
一部の実施形態では、予測部分は、予測されたアプリケーションを実行するための少なくとも1つのアフォーダンスで更にポピュレートされる(808)(例えば、図9Bの、提案されたapps955セクション)。一部の実施形態では、予測されたアプリケーションは、アプリケーションの使用履歴に少なくとも部分的に基づいて自動的に選択される(デバイス100により)。例えば、アプリケーションの使用履歴(例えば、図3A~3Bの、アプリケーションの使用データテーブル335の1つ内の1つ以上の記録)は、ユーザが、自宅住所にて、毎朝午前9:00前後に、カレンダーモジュール143(図1A)を開くことを示し、従って、提案されたapps955セクションは、現在時刻が午前9:00前後であり、位置データが、自宅住所にあるユーザを示す場合に、カレンダーモジュール143に対するアフォーダンスを含む。追加的実施例として、気象アプリケーション(例えば、図1Aの気象ウィジェット149-1)が3日間連続で午前5:15前後に起動されていることを、アプリケーションの使用履歴が示し、現在が午前5:17である(例えば、ユーザが検索アクティブ化ジェスチャを使用してスポットライトを起動した際の現在時刻が午前5:17である)と、電子デバイスは、このアプリケーションの使用履歴に少なくとも部分的に基づいて、検索インタフェースを、予測されたアプリケーションの1つとして、気象アプリケーションで、予測部分内にポピュレートするようになる。一部の実施形態では、予測されたアプリケーション及び予測アクションは、単一のセクション内に表示され、予測されたアクションは、予測されたアプリケーションの上方に表示される。先行する実施例に記すように、一部の実施形態では、予測されたアプリケーションを実行するための少なくとも1つのアフォーダンスはまた、現在時刻に少なくとも部分的に基づいて(例えば、予測されたアプリケーションをユーザが通常使用する時間と同じ時間前後に検索アクティブ化ジェスチャを提供するユーザに基づいて)選択される(アプリケーションの使用履歴の代わりに、又はこれに加えて)。
一部の実施形態では、提案されたapps955セクションをポピュレートするために、デバイス100(又は、プロアクティブモジュール163などの、その構成要素)は、トリガーのための前提条件のいずれか(例えば、図4A~4Bの、トリガー条件テーブル402の1つに記憶された前提条件)が満たされているか否かを判定し、特定のトリガーが満たされているとの判定に従って、デバイス100は続いて、提案されたapps955セクションをポピュレートする(例えば、先行する実施例での、カレンダーモジュール143又は気象ウィジェット149-1などの、トリガーに関連付けられたアプリケーションに対応するアフォーダンスを追加する)。一部の実施形態では、検索インタフェース内の他のセクション(例えば、セクション940、950、955、960、及び990)が、同様の判定プロセスを用いてポピュレートされる(簡潔化のため、それらの詳細は本明細書では繰り返さない)。
一部の実施形態では、予測部分は、予測された近隣の場所のカテゴリ(例えば、図9Bの、提案された場所960セクション)に対する少なくとも1つのアフォーダンスで更にポピュレートされ(808)、予測された場所のカテゴリ(例えば、近隣の場所)が、現在時刻及びデバイスに対応する位置データのうちの1つ以上に少なくとも部分的に基づいて自動的に選択される。例えば、現在時刻が午前7:30前後であり、デバイスが、人気のあるコーヒーショップ(コーヒーショップの人気は、一部の実施形態では、多くの別個のユーザに関連付けられた多くのデバイス100にわたるクラウドソーシング使用データにより判定される)(の所定の距離内)付近にあることを位置データが示すと、デバイス100は、提案された場所960セクションを、「コーヒーショップ(Coffee Shops)」に対するアフォーダンスでポピュレートする。一部の実施形態では、提案された場所960セクションは、(予測された場所のカテゴリに加えて、又はこの代わりに)現在時刻に基づく、近隣の場所に対する予測された検索に対応する情報でポピュレートされる。つまり、ユーザにより現在時刻前後に実行された以前の検索(例えば、検索モジュール151又はブラウザモジュール147内の検索)に基づいて、デバイスは、ユーザが再び行う可能性のある検索を先見的に予測する。例えば、午前7:20から午前8:00の間の、以前の4回の機会(又は、一部の他の閾値機会数)に、ユーザが「コーヒー(Coffee)」を検索していることに基づいて、デバイス(例えば、トリガー確立モジュール163-1)は、検索アクティブ化ジェスチャを検出したことに応じて、提案された場所960セクションを、「コーヒーショップ(Coffee Shops)」に対するアフォーダンスでポピュレートする。他の実施形態では、提案されたカテゴリは、時間ではなく、デバイスの現在地にのみ基づく。例えば、近隣のコーヒーショップにリンクされたアフォーダンスが表示される。このようにして、ユーザは、「コーヒー(Coffee)」を再度手動で検索する必要なく、その代わりに、「コーヒーショップ(Coffee Shops)」アフォーダンス又は「食べ物(Food)」アフォーダンスを単に選択し、近隣のコーヒーショップのリストを素早く閲覧し得る。一部の実施形態では、以前の検索履歴は、他の情報(例えば、図3Bの他の情報340-1(h))として、及び/又は、実行された他のアクション(例えば、図3Bの実行された他のアクション340-1(b))として、1つ以上の使用エントリと共に記憶される。
一部の実施形態では、デバイスは、予測部分をスクロールするユーザ入力(例えば、図9Bのスクロールジェスチャ970)を検出し、予測部分をスクロールするこのユーザ入力を検出したことに応じて、デバイスは、このユーザ入力に従って予測部分をスクロールする(例えば、検索インタフェースを下向き方向にスクロールする、又は、予測部分のみを検索インタフェース内でスクロールする)。スクロールしたことに応じて、デバイスは、予測部分内の予測されたニュース記事に対する少なくとも1つのアフォーダンスを顕示化する(例えば、図9Cの、提案されたニュース記事990セクション)。一部の実施形態では、予測されたニュース記事(単数又は複数)は、電子デバイスに対応する位置データに少なくとも部分的に基づいて、自動的に選択される(デバイス100により)。一部の実施形態では、提案されたニュース記事990セクションは、スクロール入力を要求することなく表示される。一部の実施形態では、予測されたニュース記事は、現在時刻(例えば、ユーザが、現在時刻(例えば、デバイスに、検索インタフェースを、予測部分930と共に表示させた検索アクティブ化ジェスチャをユーザが提供した時間)前後に、閾値回数を超えて(例えば、3回)、同様の又は関連する記事を読んだ)、ユーザに対応する以前の検索履歴(例えば、閾値回数(例えば、3回)を超えて、予測されたニュース記事と同様の又は関連する記事を、ユーザが検索した)、及び、他のユーザにより、ユーザの友人により、例えば、ツイッター又はフェイスブックなどのソーシャルメディアにて実行された検索を通して、ニュースストーリーに関連付けられたトレンドデータ、に少なくとも部分的に基づいて、任意選択的に選択される(位置データに加えて、又はその代わりに)。
一部の実施形態では、予測部分930内に表示されるセクション940、950、955、960、及び990の特定の順序は構成変更可能であり、それらセクションのそれぞれに対する所望する順序をユーザが選択できるようになっている。例えば、ユーザは、提案されたapps955セクションが最初に表示され、提案された人940セクションが2番目に表示され、提案されたアクション950セクションが3番目に表示され、提案されたニュース記事990セクションが4番目に表示され、提案された場所960セクションが最後に表示されるよう、順序を構成できる。一部の実施形態では、予測部分930は、セクション940、950、955、960、及び990の任意の2つを含む。他の実施形態では、予測部分930は、セクション940、950、955、960、及び990の任意の3つを含む。更に他の実施形態では、予測部分930は、セクション940、950、955、960、及び990の任意の4つを含む。更に他の実施形態では、予測部分930は、セクション940、950、955、960、及び990の全てを含む。一部の実施形態では、ユーザは、セクション940、950、955、960、及び990のどれだけ及びどれを予測部分930内に表示させるかについての好みを構成する。
更に、ユーザは、一部の実施形態では、セクション940、950、955、960、及び990のそれぞれをポピュレートするために使用される、データに与えられる重み(例えば、現在時刻、アプリケーションの使用履歴、位置データ、他のセンサデータなど)を構成できる。例えば、ユーザは、予測部分930の提案された人940セクション内にアフォーダンスを表示することを決定する際に、現在時刻が、位置データよりも大きく重み付けられるよう、好みを構成する。
図8Bに戻ると、一部の実施形態では、前述のセクション940、950、955、960、及び990のそれぞれ内に表示されるアフォーダンスは選択可能であり、ユーザは、提案されたアクション、提案されたapp、提案された場所、又は提案されたニュース記事のそれぞれの1つを選択できるようになっている(それぞれを以下に順に説明する)。
提案された人940セクション内に表示されるアフォーダンスの選択について、一部の実施形態では、デバイスは、人に連絡するための少なくとも1つのアフォーダンスの選択を検出する(810)。一部の実施形態では、デバイスは、少なくとも1つのアフォーダンス上のシングルタッチ入力を検出する(例えば、提案された人940セクション内に表示されたP-1に対応するアフォーダンス上のシングルタップ)。一部の実施形態では、人に連絡するための少なくとも1つのアフォーダンスの選択を検出したことに応じて、デバイスは、その人の連絡先情報(例えば、上述するように、デバイス又は1つ以上のサーバから取り出された連絡先情報)を使用して、その人に連絡する(又は、人に連絡するための異なる通信メディア、例えば、テキスト、電子メール、電話など、を提案する)。例えば、P-1に対応するアフォーダンス上のシングルタップを検出したことに応じて、デバイスは、ユーザのルームメイトにテキストメッセージ「今から帰る(on my way home)」を送信する。一部の実施形態では、デバイスは、P-1に自動的に連絡する一方で、他の実施形態では、デバイスは、インスタントメッセージモジュール141を表示し、インタフェースを、メッセージ(例えば、「今から帰る(on my way home)」)で、モジュール141内に事前にポピュレートし、続いて、メッセージを送信する前にユーザからの要求を待つ(例えば、ユーザによる音声コマンド又は送信ボタンの選択)。このようにして、デバイスのユーザは、便利に、そして素早く人(例えば、P-1)に連絡をとることができ、検索エントリ部分内にいずれのテキストを入力する必要なく、関連する(又は、所望する)メッセージをも送信できる(従って、ユーザがテキストを入力しなければならない場合や、人を特定することができない場合の時間を節約し、フラストレーションを解消する)。
提案されたアクション950セクション内に表示されるアフォーダンスの選択について、一部の実施形態では、デバイスは、予測されたアクションを実行するための少なくとも1つのアフォーダンスの選択を検出する(812)。例えば、デバイスは、提案されたアクション950セクション内のシングルタッチ入力を検出する(例えば、音楽プレーヤ152のアイコン上のタップ、又は、テキスト「歩行中プレイリストのトラック2をタップして再生する(Tap to Play Track 2 of Walking Playlist)」上のタップ)。一部の実施形態では、予測されたアクションを実行するための少なくとも1つのアフォーダンスの選択を検出したことに応じて、デバイスは、タッチ感知ディスプレイ上にアプリケーションを表示し、表示されたアプリケーション内で、予測されたアクションを実行する。つまり、デバイスは、検索インタフェース(例えば、検索エントリ及び予測部分を伴う検索モジュール151)の表示を停止し、その代わりに、アプリケーションを起動して表示し、その表示されたアプリケーション内で、予測されたアクションを実行する。例えば、テキスト「歩行中プレイリストのトラック2をタップして再生する(Tap to Play Track 2 of Walking Playlist)」上のシングルタップを検出したことに応じて、デバイスは、音楽プレーヤモジュール152を表示し、歩行中プレイリストのトラック2を再生することにより、予測されたアクションを実行する。このようにして、デバイスのユーザは、便利に、そして素早く、関連する(又は、所望する)アプリケーション(例えば、音楽プレーヤモジュール)にアクセスでき、検索エントリ部分内にいずれのテキストを入力する必要なく、所望するアプリケーション内の所望する機能をも実行できる(従って、ユーザがテキストを入力しなければならない場合や、音楽プレーヤモジュールを特定することができない場合の時間を節約し、フラストレーションを解消する)。
提案されたapps955セクション内に表示されるアフォーダンスの選択について、一部の実施形態では、デバイスは、予測されたアプリケーションを実行するための少なくとも1つのアフォーダンスの選択を検出する(814)。一部の実施形態では、デバイスは、少なくとも1つのアフォーダンス上のシングルタッチ入力を検出する(例えば、ブラウザapp147のアイコンに対するアフォーダンス上のシングルタップ)。一部の実施形態では、予測されたアプリケーションを実行するための少なくとも1つのアフォーダンスの選択を検出したことに応じて、デバイスは、予測されたアプリケーションをタッチ感知ディスプレイ上に表示する(例えば、デバイスは、検索エントリ部分及び予測部分を伴う検索インタフェースの表示を停止し、その代わりに、予測されたアプリケーションをタッチ感知ディスプレイ上に開き、表示する)。例えば、ブラウザapp147のアイコンに対応するアフォーダンス上のシングルタップを検出したことに応じて、デバイスは、ブラウザapp147を表示する(例えば、図1Aのブラウザモジュール147)。このようにして、デバイスのユーザは、便利に、そして素早く、関連する(又は、所望する)アプリケーション(例えば、ブラウザアプリケーション)に、検索エントリ部分内にいずれのテキストを入力する必要なく、アクセスできる(従って、ユーザがテキストを入力しなければならない場合や、ブラウザアプリケーションを特定することができない場合の時間を節約し、フラストレーションを解消する)。
提案された場所960セクション内に表示されるアフォーダンスの選択について、一部の実施形態では、デバイスは、予測された場所のカテゴリ(例えば、近隣の場所)に対する少なくとも1つのアフォーダンスの選択を検出する(816)。一部の実施形態では、デバイスは、少なくとも1つのアフォーダンス上のシングルタッチ入力を検出する(例えば、「コーヒーショップ(Coffee Shops)」に対するアフォーダンス上のシングルタップ)。一部の実施形態では、予測された場所のカテゴリを実行するための少なくとも1つのアフォーダンスの選択を検出したことに応じて、デバイスは、(i)少なくとも1つの近隣の場所に対応するデータ(例えば、地図モジュール154により判定される、少なくとも1つの近隣の場所に対する住所情報又はGPS座標)を受信し、(ii)その少なくとも1つの近隣の場所に対応する受信したデータをタッチ感知ディスプレイ上に表示する(例えば、検索インタフェースの表示を停止し、地図モジュール154を起動し、少なくとも1つの近隣の場所に対するGPS座標を表すドットなどの、受信したデータに対応するユーザインタフェース要素を含む地図モジュール154を、表示された地図内に表示する)。一部の実施形態では、受信するステップ及び表示するステップは、実質的に平行して実行される。例えば、「コーヒーショップ(Coffee Shops)」に対応するアフォーダンス上のシングルタップを検出したことに応じて、デバイスは、コーヒーを提供する近隣のカフェに対するGPS座標を取り出し、平行して地図モジュール154を表示し、GPS座標の受信後、そのカフェに対するGPS座標を表すドットを表示する。このようにして、デバイスのユーザは、便利に、そして素早く、関連する(又は、所望する)対象地点(例えば、上述するカフェ)を、検索エントリ部分内にいずれのテキストを入力する必要なく、特定できる(従って、ユーザがテキストを入力しなければならない場合や、カフェ又はいずれのコーヒーショップを特定することができない場合の時間を節約し、フラストレーションを解消する)。一部の実施形態では、上述する、データを受信する動作は、予測された場所のカテゴリに対する少なくとも1つのアフォーダンスの選択を受信する前に実行される(又は、少なくとも部分的に実行される)。このようにして、近隣の場所に対応するデータが事前にローディングされ、予測された場所のカテゴリに対する少なくとも1つのアフォーダンスの選択を受信した後に、地図上に素早く表示される。
提案されたニュース記事990セクション内に表示されるアフォーダンスの選択について、一部の実施形態では、デバイスは、予測されたニュース記事に対する少なくとも1つのアフォーダンスの選択を検出する(818)。一部の実施形態では、デバイスは、少なくとも1つのアフォーダンス上のシングルタッチ入力を検出する(例えば、図9Cの、ニュース1に対するアフォーダンス上のシングルタップ)。一部の実施形態では、予測されたニュース記事に対する少なくとも1つのアフォーダンスの選択を検出したことに応じて、デバイスは、予測されたニュース記事をタッチ感知ディスプレイ上に表示する(例えば、デバイスは、検索エントリ部分及び予測部分を伴う検索インタフェースの表示を停止し、その代わりに、予測されたニュース記事をブラウザモジュール147内に開き、表示する)。例えば、ニュース1に対応するアフォーダンス上のシングルタップを検出したことに応じて、デバイスは、ニュース1に対応するニュース記事をブラウザapp147内に表示する(例えば、図1Aのブラウザモジュール147)。このようにして、デバイスのユーザは、便利に、そして素早く、関連する(又は、所望する)ニュース記事(例えば、ブラウザアプリケーション)に、検索エントリ部分内にいずれのテキストを入力する必要なく、アクセスできる(従って、ユーザがテキストを入力しなければならない場合や、予測されたニュース記事を特定することができない場合の時間を節約し、フラストレーションを解消する)。
一部の実施形態では、(例えば、方法600及び800、又は本明細書に説明する他の方法のいずれかと併せて)検索インタフェースに含まれる、予測された/提案されたコンテンツアイテムは、セクション1~11に関連して以下に説明する技術に基づいて選択される。
図8A~8Bでの動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法600)に関連して本明細書で説明される、他のプロセスの詳細もまた、図8A~8Bに関連して上述された方法800と類似の方式で適用可能であることに留意されたい。例えば、方法800を参照して先述したユーザインタフェースオブジェクトは、任意選択的に、本明細書で説明する他の方法(例えば、方法600)を参照して本記載のユーザインタフェースオブジェクトの特性の1つ以上を有する。一部の実施形態では、方法800併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図10A~10Cは、一部の実施形態に係る、タッチ感知ディスプレイを備える電子デバイス上にて現在表示されているコンテンツに基づいて、検索クエリを先見的に提案する方法1000を示すフローチャートを示す。図11A~11Jは、図10A~10Cの方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法1000は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法1000は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法1000はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法1000の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法1000の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法1000は、タッチ感知ディスプレイを備える電子デバイス上にて関連コンテンツ(例えば、提案された検索クエリ)を先見的に提案する直感的な方法を提供する。この方法は、電子デバイス上で検索を実行するために要求するタッチ入力の数を減らし(例えば、ユーザは、提案された検索クエリの選択のみを必要とされ、いずれのテキストをタイプする必要がない)、従って、より効率的なヒューマンマシンインタフェースを作り出し、ユーザは、関連する検索を素早く実行できる。提案された検索クエリを提供することにより、方法1000はまた、より素早いアクションを実行することをアシストするための、プロアクティブなアシスタントがデバイス上で利用可能であることをユーザが知ることを確かにするよう補助する(従って、デバイスでのユーザ満足度を改善する)。バッテリ動作電子デバイスの場合、このような方法1000は、電力を節約し、バッテリを充電する間隔を延長する。
図10Aに示すように、デバイスは、ディスプレイ上に、電子デバイス上で実行されているアプリケーションに関連付けられたコンテンツを表示する(1002)。例えば、図11Aに示すように、電子デバイス100上で実行されている電子メールアプリケーションに関連付けられたコンテンツが、タッチスクリーン112上に表示される。このコンテンツは、送信者名及び/又は電子メールアドレス(例えば、「送信者:John Applecore」)、件名テキスト(例えば、「次はどこ?(Where to next?)」)、及び電子メールの本文を少なくとも含む。一部の実施形態では、電子メールの本文は、画像1108及び/又はテキスト1110を含んでよい。
アプリケーションを表示する間、デバイスは、検出されると、電子デバイスに、アプリケーションとは別個の検索モードへと移行させるスワイプジェスチャを、タッチ感知面を介して検出する(1004)。一部の実施形態では、スワイプジェスチャを検出することは、現在表示されているコンテンツの少なくとも一部上のスワイプジェスチャを検出することを含む(1006)。一部の実施形態では、スワイプジェスチャは、アプリケーション上に検索インタフェースを呼び出すために使用される(例えば、図11Bに示すそれらなど)。一部の実施形態では、スワイプジェスチャは、アプリケーション上で受信され、アプリケーションに関連付けられたコンテンツ内に含まれるいずれのユーザインタフェースフィールド内では受信されていない、第1のスワイプジェスチャである(例えば、第1のスワイプジェスチャは、アプリケーション内に表示されてよい検索ボックス内でのタップではない)。一部の実施形態では、第1のスワイプジェスチャは、電子デバイスに、アプリケーションとは別個であり、検索インタフェース(例えば、図11B及び11D並びに図11F~11Jに示す、及び以下に詳述する検索インタフェースなど)の表示を含む、電子デバイスの検索モードに移行させる。
一部の実施形態では、第1のスワイプジェスチャは、タッチ感知ディスプレイ上を下向き方向にスワイプ(及び、少なくとも閾値距離(例えば、2、3、4cm)を移動)することによりいつでも利用可能である(例えば、図11A及び11Eにそれぞれ示すように、下向きスワイプ1102-1及び1102-3)。一部の実施形態では、スワイプジェスチャは、アプリケーションがタッチ感知ディスプレイ上に現在表示されている間に検出され(例えば、上述する第1のスワイプジェスチャ)、このスワイプジェスチャは、アプリケーションに対して現在表示されているコンテンツの上で検出される。例えば、図11A及び11Eでは、下向きスワイプジェスチャ1102-1及び1102-3は、電子メールアプリケーションが現在表示されている間に、電子メールコンテンツの上で検出される。
一部の実施形態では、第2のスワイプジェスチャはまた、デバイスに検索モードへと移行させ、これはまた、後にも利用可能である(例えば、アプリケーションを終了後)。一部の実施形態では、スワイプジェスチャを検出する前に、デバイスは、電子デバイスのホームスクリーンを閲覧することの要求に対応する入力を検出し、この入力を検出したことに応じて、デバイスは、アプリケーションに関連付けられたコンテンツの表示を停止し、電子デバイスのホームスクリーンのそれぞれのページを表示する(1008)。一部の実施形態では、それぞれのページは、一連のホームスクリーンページ内の初期ページであり(例えば、一連のホームスクリーンページ内の最初のページ)、スワイプジェスチャは、ホームスクリーンの初期ページがディスプレイ上に表示されている間に検出される(例えば、第2のスワイプジェスチャ)。
例えば、図11A及び11Eに示すように、ユーザはアプリケーションを終了し、アプリケーションが表示されている間の、デバイスの物理ホームボタン204のタッピング1106により、図11Cに示すように、ホームスクリーンを閲覧することに切り替える。図11Cでは、ホームスクリーンの最初のページが、ホームスクリーンページインジケータの強調表示された最初のドット1112-1により示されるように表示されており、ホームスクリーンの残りのドット1112-2は強調表示されていない。ホームスクリーンの最初のページを閲覧する間、ユーザは、実質的に水平方向(例えば、図11Eのスワイプジェスチャ1104-1に対して示される左右方向)にスワイプすることにより、第2のスワイプジェスチャを提供できる。第2のスワイプジェスチャを受信したことに応じて、電子デバイスは、タッチ感知ディスプレイ上に検索インタフェースを表示することを含む、検索モードへと移行する(図11Dを参照して以下に詳述するように)。
スワイプジェスチャを検出したことに応じて、デバイスは、ディスプレイ上に表示される検索インタフェースを含む検索モードへと移行する(1010)。検索インタフェース例を、図11B及び11Dに示す。一部の実施形態では、検索インタフェースは、例えば、図11Bの検索インタフェース1115のように、アプリケーションに半透明に重ね合わせられるように表示される(1012)。一部の実施形態では、検索インタフェースは、アプリケーション上の半透明のオーバレイとして表示される(例えば、図11Bの検索インタフェース1115に対して示すように)。一部の実施形態では、検索インタフェース1115は、例えば、フェーディングイン及び/又は一方からの遷移など、検索インタフェース1115のアニメーションの再生と共に段階的に表示される。図11Bでは、検索インタフェース1115は、電子メールアプリケーションがタッチ感知ディスプレイ112上の検索インタフェース1115の下方に部分的に見えたままとなるように、電子メールアプリケーションに半透明に重ね合わせられるように表示される。一部の実施形態では、検索インタフェースは、上述する第2のスワイプジェスチャに応じて、図11G~11Jに示すように、ホームスクリーンに半透明に重ね合わせられるように表示される。
一部の実施形態では、検索インタフェースは、例えば、ユーザに関連付けられたソーシャルネットワークのメンバにより実行される1つ以上のトレンドタームなどの、1つ以上のトレンドクエリを更に含む(1014)。一部の実施形態では、1つ以上のトレンドクエリは、(i)人気のニュースアイテム、(ii)電子デバイスの現在地(例えば、ユーザが自宅以外の場所を訪れている場合(東京など))、及び/又は(iii)旅行者の興味を引くことが既知のアイテムなど)に基づく1つ以上のトレンドタームを含む。例えば、トレンド検索1160は、図11B及び11Dにオプションとして示され、1つ以上のトレンドタームは、例えば、「Patagonia」、「Ecuador」、「Mt.Rainier」など、を含む。一部の実施形態では、検索インタフェースはまた、トレンドGIFを含む(例えば、周りの人がGIFをシェアしたいと思うような、コンテンツ内の、「おめでとう!(Congrats!)」などの、感情を表すフレーズに基づいて)。
検索モードへと移行することに関連して、デバイスは、コンテンツに関連付けられた情報に少なくとも部分的に基づいて、少なくとも1つの提案された検索クエリを判定する(1018)。一部の実施形態では、この判定は、検索インタフェース1115のアニメーションの再生と共に、例えば、検索インタフェース1115が段階的に顕示化されるに従って、実行される。他の実施形態では、この判定は、スワイプジェスチャが受信される前にも実行される。
一部の実施形態では、コンテンツがテキストコンテンツを含むとの判定に従って、デバイスは、そのテキストコンテンツに少なくとも部分的に基づいて、少なくとも1つの提案された検索クエリを判定する(1022)。一部の実施形態では、テキストコンテンツに少なくとも部分的に基づいて、少なくとも1つの提案された検索クエリを判定することは、少なくとも1つの提案された検索クエリを判定するために使用される1つ以上の所定のキーワードを検出するために、テキストコンテンツを分析することを含む(1024)。一部の実施形態では、1つ以上の所定のキーワードは、所定のキーワードについて少なくとも150,000のエントリを伴う第1のデータ構造を含む、電子デバイス上に記憶されている、1つ以上のデータ構造内に記憶される。このようにして、デバイスは、コンテンツ内にて素早く検出され得、続いて、提案された検索クエリとしてユーザに提供され得る多くの共通タームを含み、これは全て、検索インタフェースでのユーザからのいずれの入力を要求することなく実行される。一部の実施形態では、1つ以上のデータ構造の第2のデータ構造は、第2のデータ構造を活用するコンテキストキットに関連付けられ、コンテンツに対するコンテキストを特定し、続いて、コンテンツに対する特定されたコンテキストに少なくとも部分的に基づいて、少なくとも1つの提案された検索クエリを特定する。一部の実施形態では、第2のデータ構造は、オンデバイスインデックスである(電子デバイスに特有のウィキペディアインデックスなど)。一部の実施形態では、提案された検索クエリが、第1及び第2のデータ構造の両方を使用して判定され、続いて、提案された検索クエリが集約され、ユーザに提示される(例えば、検索インタフェース内に、及び、いずれのユーザ入力を受け取る前に)。一部の実施形態では、第1及び第2のデータ構造の両方を活用することはまた、電子デバイスが、同じ名称ではあるが、住所/電話番号が異なる企業を区別できることを補助する。
例えば、図11Aでは、電子メールアプリケーションに関連付けられたコンテンツは、送信者及び/又は受領者情報、件名、及び、「エクアドル大好き!(I love Ecuador!)」などの電子メール本文内のテキスト、といったテキストコンテンツを含む。テキストコンテンツに少なくとも部分的に基づいて、デバイスは、少なくとも1つの提案された検索クエリを判定し、図11Bに示すように、例えば、Ecuador、John Applecore、Guide Service、Cayambe、Antisanaなどのように、検索結果を表示する。用語「Ecuador」は、第1のデータ構造内のエントリの一部として電子デバイス上に記憶された所定のキーワードであってよい一方で、他のエントリは、コンテンツに対するコンテキストに基づいて、及び、第1のデータ構造を活用中に第2のデータ構造を使用して、特定されてよい。
一部の実施形態では、少なくとも1つの提案された検索クエリを判定することは、複数の提案された検索クエリを判定することを含み、検索インタフェースをポピュレートすることは、検索インタフェースを、複数の提案された検索クエリでポピュレートすることを含む(1026)。図11Bに示すように、1つの提案された検索クエリ「Ecuador」が、提案された検索1150内に表示される。任意選択的に、図11B内の点線により示されるように、提案された検索1150セクション内に、複数の提案された検索クエリ、例えば、「John Applecore」、「Guide Service」、「Cayambe」、及び「Antisana」などが、「Ecuador」に加えて表示される。
一部の実施形態では、検索モードへと移行することと併せて、デバイスは、電子デバイス上で利用可能な1つ以上のアクセシビリティ機能を使用することにより、(検索インタフェースを表示することの前及び/又は後に)コンテンツに関連付けられた情報を取得する(1036)。一部の実施形態では、電子デバイスのオペレーティングシステムは、電子デバイス上の一部のアプリケーション内に現在表示されているコンテンツへのダイレクトアクセス(又は、知識)を有さない(例えば、オペレーティングシステムのプロバイダ以外の企業により開発された第三者アプリケーション)。そのようにして、オペレーティングシステムは、API(例えば、アクセシビリティAPI)と、電子デバイス上で利用可能であり、第三者アプリケーション内に表示されるコンテンツについてオペレーティングシステムに学習させることができる他の機能を使用することにより、コンテンツについての情報を取得する。
一部の実施形態では、1つ以上のアクセシビリティ機能を使用することは、1つ以上のアクセシビリティ機能を使用して、(i)アプリケーション内に現在表示されているテキストコンテンツに自然言語処理アルゴリズムを適用すること、及び(ii)自然言語処理アルゴリズムから取得したデータを使用して、コンテンツを説明する1つ以上のキーワードを判定することであって、少なくとも1つの提案された検索クエリが、1つ以上のキーワードに基づいて判定されることにより、コンテンツに関連付けられた情報を生成する、ことを含む(1038)。(例えば、電子デバイス上で、1つ以上のアクセシビリティ機能として利用可能な、VoiceOver、Dictation、及びSpeak Screenなどの機能を提供するために使用される自然言語処理アルゴリズム)。一部の実施形態では、コンテンツに関連付けられた情報は、(例えば、上述する自然言語処理アルゴリズムを使用して抽出された)氏名、住所、電話番号、インスタントメッセージハンドル、及び電子メールアドレス、を含む、アプリケーションに現在表示されているコンテンツから抽出された情報を含む。
一部の実施形態では、コンテンツを説明する1つ以上のキーワードを判定することはまた、(i)アプリケーション内に現在表示されている非テキストコンテンツに対応するメタデータを取り出すこと、及び(ii)自然言語処理アルゴリズムから取得したデータに加えて、取り出したメタデータを使用し、1つ以上のキーワードを判定することを含む(1040)。非テキストコンテンツの一例は、アプリケーション内に表示されている画像である(例えば、図11Aの画像1108、及び、図11Eの1つ以上の画像1112-4)。一部の実施形態では、1つ以上の情報タグ(HTMLタグ、CSS記述子、及び、他の同様のメタデータなど)は、画像に関連付けられており、これは、1つ以上のアクセシビリティ機能が、画像について学習することの補助に使用され得る(例えば、情報タグの1つは、画像の種類を説明し得、及び/又は、画像内に何が表示されているかについての詳細を提供し得る)。
一部の実施形態では(特に、非テキストコンテンツのみがアプリケーション内に表示されている場合)、自然言語処理アルゴリズムは使用されず、その代わりに、取り出したメタデータのみが、1つ以上のキーワードの判定のために使用される。一部の実施形態では、アプリケーション内に以前に提供されたユーザからの入力がまた、1つ以上のキーワードの判定の補助に使用される。例えば、ユーザは、住所及び/又は電話番号を特定するために、特定のレストラン名を検索し、そのレストラン名もまた、コンテンツを説明する1つ以上のキーワードの判定を補助するために使用されてよい(例えば、レストラン名がアプリケーション内に現在表示されておらず、以前の入力又は検索クエリとしてのみ使用されていた場合であっても)。
図10Cに戻ると、検索インタフェースにていずれのユーザ入力を受け取る前に、デバイスは、表示された検索インタフェースを、少なくとも1つの提案された検索クエリでポピュレートする(1020)。一部の実施形態では、検索インタフェースは、検索入力部分(例えば、図11B、11D、及び11F~11Jの、検索インタフェース1115の上部の検索エントリ部分1120)と、検索結果部(例えば、図11B、11D、及び11F~11Jの、検索入力部分1120直下方の検索結果部1130)と、を含み、少なくとも1つの提案された検索クエリは、検索結果部内に表示される。例えば、図11Bでは、提案された検索1150は、例えば、「Ecuador」、「John Applecore」、「Guide Service」、「Cayambe」、「Antisana」などの、少なくとも1つの提案された検索クエリを含み、少なくとも1つの提案されたクエリは、検索結果部1130内に表示される。
一部の実施形態では、上述する第1のスワイプジェスチャは、ホームスクリーンのいずれのページが表示されている間にも利用可能である。例えば、図11A及び11Bに示すように、アプリケーション上にて、検索モードへと移行するために第1のスワイプジェスチャ1102-1が使用可能であることに加えて、ユーザはまた、ホームスクリーンのいずれのページ上にて、検索モードへと移行するために第1のスワイプジェスチャを使用してよい。図11Cでは、実質的に垂直方向(例えば、下向き)のスワイプ1104-2に応じて、デバイスは検索モードへと移行し、図11Dに示すように、検索インタフェース1105を表示する。このようにして、ユーザがいつでも、検索モードへと移行することを選択しても、ユーザは、アプリケーション内にて最近閲覧されたコンテンツに関連する、関連検索クエリが提示される。図11Cは、ホームスクリーンの最初のページ上でスワイプジェスチャ1104-2を検出することを示すが、ホームスクリーンページインジケータの最初のドット1112-1を強調表示し、ホームスクリーンページインジケータの残りのドット1112-2を強調表示しないことにより示されるように、スワイプジェスチャ1104-2は、例えば、残りのドット1112-2の1つが強調表示され、最初のドット1112-1が強調表示されていない、ホームスクリーンの初期ページ以外のページ上などの、ホームスクリーンのいずれのページ上で検出され得る。
一部の実施形態では、デバイスは、タッチ感知面を介して、現在表示されている新たなコンテンツ上の新たなスワイプジェスチャを検出する(1028)。新たなスワイプジェスチャを検出したことに応じて、デバイスは検索モードへと移行する。一部の実施形態では、検索モードへと移行することは、ディスプレイ上に検索インタフェースを表示することを含む。検索モードへと移行することと併せて、かつ新たなコンテンツがテキストコンテンツを含まないとの判定に従って、一部の実施形態では、デバイスは、検索インタフェースを、電子デバイスのユーザからの、過去検索クエリの選択されるセットに基づく、提案された検索クエリでポピュレートする。
例えば、図11Aに示すように、電子メールコンテンツを閲覧後、及び、検索インタフェースを終了後、ユーザはレーニア山の写真1114-2(図11E)を、エクアドルの写真1114-2(図11E)と共に閲覧した。両方の画像はテキストコンテンツを含まない。続いて、図11Eに示すように、新たなスワイプジェスチャ1102-3が検出される。新たなスワイプジェスチャ1102-3を検出したことに応じて、デバイスは検索モードへと移行し、図11Fに示すように、ディスプレイ上に検索インタフェース1115を表示する。図11Fでは、「Mount Rainier」が過去検索クエリとして示されており、最近の検索1152セクション内に表示されている。
一部の実施形態では、検索インタフェースが、アプリケーションとは別個の第2のアプリケーションにより提供された位置情報に基づく対象地点と共に表示される(1130)。例えば、先の実施例を続けると、レーニア山の位置情報は、画像に関連付けられたタグ及び/又はメタデータに基づいて、結像アプリケーションなどの第2のアプリケーションにより取得される。新たなスワイプジェスチャ1102-3(図11E)に応じて、図11Fに示すように、検索インタフェース1115が、対象地点、つまりMt.Rainier1157-1と共に、提案された場所セクション1154内に表示される。
一部の実施形態では、対象地点は、非テキストコンテンツ上の新たなスワイプジェスチャに単に応答することなく表示される。対象地点は、テキストコンテンツ上の新たなスワイプジェスチャに応じて表示され得る。例えば、ユーザが第1のアプリケーション(YELPアプリケーションなど)内にてレストランを検索したというシナリオでは、ユーザは続いてテキストメッセージアプリケーション(例えば、アプリケーション)の使用に切り替え、ユーザは続いて、テキストメッセージアプリケーション上にてスワイプジェスチャを提供し、これに応じて、デバイスは、検索インタフェースを事前にポピュレートし、ユーザの、第1のアプリケーションとの先の相互作用に基づく、提案された検索クエリとして、対象地点を含める(例えば、図11FのBest Sushi1157-2)。
一部の実施形態では、検索インタフェースは、1つ以上の提案されたアプリケーションを更に含む(1032)。提案されたアプリケーションは、ユーザに関連付けられたアプリケーションの使用履歴に基づいて、電子デバイスのユーザの対象となると予測されたアプリケーションである(アプリケーションの使用履歴は、図3A及び3Bに関連して上述されている)。一部の実施形態では、過去検索クエリのセットは、最近の検索クエリの頻度に少なくとも部分的に基づいて(例えば、各過去検索クエリがユーザによりいつ、どれぐらいの頻度で実行されたかに基づいて)選択される。例えば、図11Dに示すように、アプリケーションの使用履歴に基づいて、ヘルス242アプリケーション、書籍242アプリケーション、地図236アプリケーション、の各アプリケーションが、提案されたapps1162セクション内にてユーザに提案される。これらのアプリケーション提案は、最近の検索クエリの頻度に少なくとも部分的に基づいて選択されてよい。一部の実施形態では、電子デバイスにインストールされていないアプリケーションが、ユーザの対象となると予測される。インストールされていないアプリケーション237の名称が、他の提案されたアプリケーションと共に表示され、そのアプリケーションへのリンクが提供される。
一部の実施形態では、1つ以上の提案されたアプリケーションは、非テキストコンテンツ上の新たなスワイプに単に応答することなく表示される。例えば、図11D及び11Eに示すように、ホームスクリーン上(例えば、ホームスクリーンのいずれのページ上)のスワイプジェスチャ1102-3を検出したことに応じて、提案されたapps1155が、検索インタフェース1115の検索結果部1130内に、任意選択的に表示される。
図11B、11D、及び11Fは、提案された検索結果を各カテゴリへグループ化することと、提案された検索を、検索インタフェース1115の異なるセクション内に表示することと、を示すが、他の表示フォーマットがユーザに示される。例えば、提案された検索結果が混合され得る。図9Dに示すように、対象地点、提案された場所、最近の検索、及び提案されたアプリケーションが共に、「マイロケーション&最近の閲覧(My Location & Recently Viewed)」内に表示される。一部の実施形態では、提案された検索を混合することは、所定のルールのセットに従って実行される。例えば、最大検索結果スポット数(例えば、8)は、提案された検索に寄与するソースのそれぞれからであり得る。所定の先行順序が、提案された検索の順序を判定するために使用される(例えば、接続、過去、続いて、アンインストールされたヒーローアセット)。別の実施例では、所定のルールのセットは、以下を含む。(i)提案された検索結果の各種類について、それは、寄与し得る位置及び最大結果数を有する、(ii)提案された検索結果の特定の種類について、(例えば、インストールされていないアプリケーション)、最大結果数は、混合された結果に寄与し得る(例えば、各寄与1)、(iii)又は、過去結果について、これはユーザによる。例えば、一部の実施形態では、過去検索クエリのセットは、最近の検索クエリの頻度に少なくとも部分的に基づいて、選択される(1034)。(例えば、各過去検索クエリがユーザによりいつ、どれぐらいの頻度で実行されたかに基づいて)。
一部の実施形態では、ユーザの対象となると最も予測された1つ以上の提案されたアプリケーションのみが、検索アクティブ化ジェスチャに応じて表示される。例えば、検索アクティブ化ジェスチャ(例えば、図11Cのスワイプ1104)を受信したことに応じて、デバイスは検索モードへと移行し、図11G~11Jに示すように、半透明の検索インタフェースをタッチ感知ディスプレイ上に表示する。検索インタフェースは、検索入力部分1120と、検索結果部1130と、を含む。例えば、図11Gに示すように、アプリケーションを提案することが、ユーザの対象となると最も予測される。複数のアプリケーションが、検索結果部1130内に表示される。
一部の実施形態では、提案されたアプリケーションは位置情報を使用し、ユーザの対象となると最も予測されたコンテンツを提案する。例えば、図11Hでは、「Find My Car」アプリケーションが、ユーザの対象となると最も予測されている。検索結果部1130では、「Find My Car」アプリケーションのユーザインタフェースが表示される。このアプリケーションは、ユーザの位置情報を使用し、地図上にピンを表示し、ドットにより示された、車へのユーザの相対位置を示す。別の実施例では、ユーザの位置及び/又は上述する他の情報(例えば、使用データ、テキストコンテンツ、及び/又は非テキストコンテンツなど)に基づいて、近隣の対象地点を表示するアプリケーションが、ユーザの対象となると最も予測されている。図11Iでは、検索結果部1130は、対象地点、例えば、「Go Japanese Fusion」という名称の、「食べ物(Food)」カテゴリ内のレストランを含む。「食べ物(Food)」カテゴリは、二重丸内に示すように強調表示されており、近隣のレストラン「Go Japanese Fusion」が、ユーザの位置情報及びレストランの位置に基づいて特定されている。別の実施例では、図11Jに示すように、「食べ物(Food)」カテゴリ内の複数の対象地点が、ユーザの対象となると最も予測されており、食べ物カテゴリ内のこれらの対象地点、例えば、Caffe Macs、Out Steakhouse、及びChip Mexican Grill、が表示され、「食べ物(Food)」カテゴリが強調表示されている。
図10A~10Cでの動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法600及び800)に関連して本明細書で説明される、他のプロセスの詳細もまた、図10A~10Cに関連して上述された方法1000と類似の方式で適用可能であることに留意されたい。例えば、方法1000を参照して先述したユーザインタフェースオブジェクト(例えば、検索インタフェース内に表示されたそれら)は、任意選択的に、本明細書で説明する他の方法(例えば、方法600及び800)を参照して本記載のユーザインタフェースオブジェクトの特性の1つ以上を有する。一部の実施形態では、方法1000の態様は、以下に説明する方法1200の態様により、任意選択的に交換又は補足される(及び、その逆)。一部の実施形態では、方法1000と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図12は、一部の実施形態に係る、検索モードへと移行する方法1200を示すフローチャートを示す。図13A~13Bは、図12の方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法1200は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法1200は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法1200はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法1200の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法1200の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法1200は、ジェスチャがどこで受信されたかに応じて、電子デバイス上にて関連コンテンツ(例えば、ユーザの現在地に関連するコンテンツを伴う、提案された検索クエリ又はアフォーダンス)を先見的に提案する直感的な方法を提供する。この方法は、ユーザが、最小のユーザ入力数にて、所望するコンテンツを効率的に特定して選択できるようにし、従って、より効率的なヒューマンマシンインタフェースを作り出す(例えば、デバイスは、近隣の対象地点に対する、提案された検索クエリ及びコンテンツを提供し、ユーザは、それらを選択のみする必要があるが、それらを検索して特定する必要はない)。バッテリ動作電子デバイスの場合、より速く、より効率的に、関連コンテンツを先見的に特定し、表面化させることの両方は、電力を節約し、バッテリを充電する間隔を延長する。
図12に示すように、デバイスは、タッチ感知面を介して、ユーザインタフェース上のスワイプジェスチャを検出する(1202)。一部の実施形態では、スワイプジェスチャは、検出されると、電子デバイスに検索モードへと移行させる。スワイプジェスチャを検出したことに応じて、デバイスは検索モードへと移行する。一部の実施形態では、検索モードへと移行することは、検索インタフェース内にいずれのユーザ入力を受け取る前に、ユーザインタフェースとは別個の検索インタフェースを、第1のコンテンツアイテムでポピュレートすることを含む(例えば、検索インタフェース内の検索ボックスにはテキストが入力されず、検索ボックス内では入力が受け取られない(検索ボックス内にはタップがない)など)。
一部の実施形態では、ユーザインタフェースが、アプリケーションを呼び出すための選択可能なアイコンを含む、ホームスクリーンとは別個の、アプリケーションに関連付けられたコンテンツを含む(及び、従って、app特有のコンテンツ上でスワイプジェスチャが検出された)との判定に従って、デバイスは、検索インタフェースを、第1のコンテンツアイテムでポピュレートし、これは、検索インタフェースを、アプリケーションに関連付けられたコンテンツに少なくとも部分的に基づいている、少なくとも1つの提案された検索クエリで、ポピュレートすることを含む。例えば、図11A~11Bを参照して上述するように、「John Applecore」、エクアドル画像、及び/又はテキスト「エクアドル大好き(I love Ecuador)」というコンテンツを伴う電子メールアプリケーション上でのスワイプジェスチャ1102に応じて(図11A)、検索インタフェース1115がポピュレートされる(図11B)。検索インタフェース1115は、電子メールアプリケーションに関連付けられたコンテンツに少なくとも部分的に基づいて、例えば、「Ecuador」及び「John Applecore」などの、少なくとも1つの提案された検索クエリを含む。別の実施例では、図11E~11Fを参照して上述するように、エクアドル及び/又はレーニア山の画像のコンテンツを伴う画像アプリケーション上のスワイプジェスチャ1102に応じて(図11E)、検索インタフェース1115がポピュレートされる(図11F)。検索インタフェース1115は、画像コンテンツに少なくとも部分的に基づいて、例えば、「Ecuador」及び「Mount Rainier」などの、少なくとも1つの提案された検索クエリを含む。
一部の実施形態では、ユーザインタフェースが、ホームスクリーンのページに関連付けられているとの判定に従って(例えば、スワイプジェスチャが、図11Cの初期ホームスクリーンページ上であった)、検索インタフェースを第1のコンテンツアイテムでポピュレートすることは、検索インタフェースを、電子デバイスの現在地の閾値距離内にある少なくとも1つの対象地点の選択可能な説明を含むアフォーダンスでポピュレートすることを含む。例えば、デバイスが、いくつかのレストランのあるモールに近い場合、ユーザがモールに近いということに基づいて、レストランについての情報が、ユーザの対象となると最も予測されているため、提案された検索クエリの代わりに、それらのレストランについての情報を表示する。図11I及び11Jを参照して上述された実施例では、ホームスクリーン上のスワイプジェスチャ1104を検出したことに応じて(図11C)、図11Dに示すように、提案された検索クエリインタフェースを表示することの代わりに、少なくとも1つの近隣の対象地点が、例えば、「Go Japanese Fusion」レストラン(図11I)、「Caffe Macs」、「Out Steakhouse」、及び「Chip Mexican Grill」(図11J)、のように、検索インタフェースの検索結果部1130内に表示される。図11I及び11Jでは、各対象地点はアフォーダンスを含み、及び、例えば、アイコン及び/又は対象地点の説明を選択することが、詳細、値段、メニュー、及び/又は距離情報を提供するなど、それが選択されると、対象地点についての情報を更に提供する、選択可能な説明を含む。
一部の実施形態では、検索インタフェースを、提案された検索クエリで、又は、近隣の対象地点に対するアフォーダンスでポピュレートするか否かについての決定は追加で、又は代替的に、アプリケーションに対するコンテンツを表示することから、所定の期間が経過したか否かに基づく。例えば、(i)ホームスクリーンページ上でスワイプジェスチャが検出された(例えば、コンテンツ上でスワイプジェスチャは検出されていない)、及び(ii)アプリケーションに関連付けられたコンテンツを表示することからの期間が閾値期間未満である、との判定に従って、検索インタフェースが、少なくとも1つの提案された検索クエリで、依然としてポピュレートされる。従って、そのような実施形態では、コンテンツ上でスワイプジェスチャが検出されていないという判定は、コンテンツを表示することからの期間が閾値期間を満たす、又は閾値期間を超えるという判定を含み(例えば、コンテンツは、ずいぶん前、2分前、3分前、に閲覧された)、続いてデバイスは、そのコンテンツに基づく、提案された検索クエリにユーザは興味があまりない可能性があると判定し、その代わりに、検索インタフェースが、少なくとも1つの対象地点の選択可能な説明を含むアフォーダンスで、ポピュレートされる。このようにして、デバイスが、アプリケーションに関連付けられたコンテンツが最近表示されたと判定しても、ユーザには依然として、提案された検索クエリが提供される。
一部の実施形態では、検索インタフェースを、アフォーダンスでポピュレートすることは、検索インタフェースの検索エントリ部分を表示することを含む(1204)。一部の実施形態では、デバイスは、検索エントリ部分での入力を検出し、この、検索エントリ部分での入力(例えば、この内部でのタップ)を検出したことに応じて、電子デバイスは、アフォーダンスの表示を停止し、少なくとも1つの提案された検索クエリを、検索インタフェース内に表示する(1206)。例えば、図13Aに示すように、検索インタフェースは、検索エントリ部分1120と、検索結果部1130と、を、近隣の対象地点に対する少なくとも1つのアフォーダンスと共に含む(例えば、図13Aに示すように、近隣のレストラン、及び、他の近隣の対象地点に対する選択可能な対象カテゴリ)。検索インタフェースを、近隣の対象地点と共に表示する間に、検索エントリ部分1120での入力1302、例えば、図13Aに示すように、ユーザが、検索ボックス内を入力1302にてタップする、が検出される。入力1302を検出したことに応じて、図13Bでは、デバイスは、近隣の対象地点に関連付けられた少なくとも1つのアフォーダンスの表示を停止し、提案された検索クエリ、例えば、Ecuador、Mount Rainier、Best Sushiなどを、検索結果部1130内に表示する。従って、デバイスは、提案された検索クエリと提案された対象地点との間を素早く切り替えることができる(この実施例では、検索ボックス内のユーザタップは、提案された対象地点にユーザが興味ないことを示し、従って、デバイスは、例えば、他のアプリケーションにて以前に閲覧されたコンテンツに基づく、提案された検索クエリなど、異なる種類の提案されたコンテンツを提供するよう試みる)。
少なくとも1つの対象地点の選択可能な説明に関する追加詳細は、図16A~16B及び17A~17Eに関連して以下に提供される。検索インタフェースを、少なくとも1つの提案された検索クエリでポピュレートすることに関する追加詳細は、図10A~10C及び11A~11Jに関連して先に提供されている。
図12での動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法600、800、及び1000)に関連して本明細書で説明される、他のプロセスの詳細もまた、図12に関連して上述された方法1200と類似の方式で適用可能であることに留意されたい。例えば、方法1200を参照して先述したユーザインタフェースオブジェクト及び/又は動作は、任意選択的に、本明細書で説明する他の方法(例えば、方法600、800、及び1000)を参照して本記載のユーザインタフェースオブジェクト及び/又は動作の特性の1つ以上を有する。一部の実施形態では、方法1200と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図14は、一部の実施形態に係る、タッチ感知ディスプレイを備える電子デバイス上にて車両位置情報を先見的に提供する方法1400を示すフローチャートを示す。図15A~15Bは、図14の方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法1400は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法1400は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法1400はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法1400の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、1つ以上の位置センサ(例えば、加速度計(単数又は複数)168、磁気計、及び/又はGPS受信機)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法1400の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法1400は、ユーザが位置情報をすぐに必要とする場合に、その情報を先見的に提供する直感的な方法を提供する。この方法は、車両位置情報自体の特定を試みることをユーザに要求することなく、その情報を先見的に提供することにより、及び、駐車した車にユーザが戻るであろうと判定される時にその情報を提供することにより、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスの場合、このような方法1400は、電力を節約し、バッテリを充電する間隔を延長する。
図14に示すように、デバイスは自動的に、かつユーザからの命令なしに、以下に説明するステップ1404及び1406を実行する(1402)。ステップ1404では、デバイスは、電子デバイスのユーザが、ある地理的位置に止まっている車の中に居ると判定する。
一部の実施形態では、車両が地理的位置に止まっていると判定することは、電子デバイスが、閾値期間を超えて地理的位置に留まっている、例えば、デバイスが、閾値速度を超えて移動した後に、約2分間1つのスポットにある、と判定することを含み、これは、車両が駐車中であるというインジケーションを与える。一部の実施形態では、車両が地理的位置に止まっていると判定することは、電子デバイスと車両との間の通信リンクが遮断されている、例えば、デバイスが、車両とのBluetooth接続を失っている、及び/又は、デバイスと車両を接続するケーブルをユーザが取り外したなど、と判定することを含み、従って、車両が停止している、及び/又は、車両のエンジンが止められている、というインジケーションが提供される。一部の実施形態では、車両が地理的位置に止まっていると判定することは、地理的位置が、駐車場内の位置に対応すると判定する、例えば、現在のGPS座標を地図アプリケーションに差し込んで(又は、送信して)この判定を行い、及び、地理的位置が駐車場内にあるか否かについての判定に戻る、ことを含む。
一部の実施形態では、上記判定のうちの1つ以上は、車両が地理的位置に止まっているか否かを判定するためにのみ行われ、他の実施形態では、これらの判定のうちの2つ以上が実行される一方で、更に他の実施形態では、これらの判定の3つ全てが、車両が地理的位置に止まっているか否かを査定するために実行される。例えば、一部の実施形態では、地理的位置に止まっている車両内にユーザが居ると判定することは、以下を含む。(i)上述するように、閾値速度を超えて電子デバイスが移動していると判定することにより、ユーザが車の中に居ると判定すること、及び(ii)以下のうちの1つ以上により、車両が地理的位置に止まっていると判定すること。(a)上述するように、閾値期間を超えて、電子デバイスが地理的位置に留まっていると判定すること、(b)上述するように、電子デバイスと車両との間の通信リンクが遮断されていると判定すること、及び(c)上述するように、地理的位置が、駐車場内のとある位置に対応すると判定すること。
ステップ1406では、デバイスは、ユーザが車両を離れたか否かを更に判定する。一部の実施形態では、デバイスは、デバイスの現在位置が、地理的位置から閾値距離を超えて離れていると判定することにより、判定を実行する。一部の実施形態では、デバイスは、ユーザが、車両との接続からデバイスを物理的に切り離した、又は、ユーザが、デバイスと車両との間の無線接続(例えば、Bluetoothに基づく接続又はWiFiに基づく接続)を切り離したと判定することにより、判定を実行する。ユーザが地理的位置にて車両を離れたことを、(十分に高い信頼性をもって)確立するために使用される判定に関する追加詳細を、以下に提供する。
ユーザが地理的位置にて車両を離れたと判定すると、デバイスは、地理的位置を特定するために位置センサから取り出した位置情報が、精度基準を満たすか否かを判定する(1408)。一部の実施形態では、精度基準は、位置情報に関連付けられたGPS読み値の精度が閾値精度レベルを超える場合に満たされる基準を含む(例えば、10メートル以下の平均誤差半径)。
位置情報が精度基準を満たさないと判定すると(1408-No)、デバイスは、地理的位置についての情報を入力するというプロンプトをユーザに提供し、このプロンプトを提供したことに応じて、デバイスは、地理的位置についての情報をユーザから受信し、この情報を車両位置情報として記憶する(1410)。一部の実施形態では、このプロンプトは、電子デバイスを介して利用可能なバーチャルアシスタントにより提供されるオーディオプロンプトである。プロンプトがオーディオプロンプトである場合、ユーザから情報を受信することは、地理的位置を特定する口頭説明をユーザから受信することを含む。一部の実施形態では、バーチャルアシスタントからのプロンプトは、地理的位置にて、車の写真を撮る、及び/又は、車の周りの写真を撮るようユーザに指示する。一部の実施形態では、ユーザは、地理的位置の口頭説明を提供するよう指示される。
一部の実施形態では、位置情報が精度基準を満たすと判定すると(1408-Yes)、デバイスは、自動的に、かつユーザからの命令なしに、位置情報を車両位置情報として記憶する(1412)。一部の実施形態では、位置情報が十分に正確である(例えば、精度基準を満たす)場合、ユーザにはプロンプトが続いて提供されない。他の実施形態では、位置情報が十分に正確であっても、デバイスは依然として、地理的位置に関する追加詳細を、(動作1410に関連して上述するように、口頭、テキスト、又は、写真を撮ることにより)提供するようユーザを促す。これは、これらの追加詳細を記憶し、例えば、ユーザが車に戻る際に、デバイスが強いGPS信号を受信できない場合に、これらをユーザに提示するためである。
一部の実施形態では、デバイスは、ユーザが地理的位置に向かっているか否かを更に判定する(1414)。一部の実施形態では、ユーザが地理的位置に向かっているか否かを判定することは、電子デバイスが地理的位置に向かって移動していると判定するために、位置センサから受信した新たな位置情報を使用することを含む。一部の実施形態では、ユーザが地理的位置に向かっているか否かを判定することは、以下を含む。(i)閾値期間を超えて異なる地理的位置に電子デバイスが留まっていると判定すること(例えば、ショッピングモール、レストラン、ユーザにとって既知の自宅又は職場住所など、に関連付けられた場所/位置)、及び(ii)電子デバイスが、異なる地理的位置から離れて、地理的位置に向かって移動していることを、新たな位置情報が示すと判定すること。一部の実施形態では、デバイスは追加で、又は代替的に、ユーザが地理的位置に向かっているか否かを判定するために、地理的位置を撮った写真を、ユーザの現在地の画像と比較する(例えば、画像内の、共通の、又は重畳するビジュアル要素を認識することにより)。一部の実施形態では、デバイスは追加で、又は代替的に、車両とのデータ接続をユーザが確立又は検索できる設定ユーザインタフェースにユーザがアクセスしていることを検出し、このようにして、デバイスは、ユーザが地理的位置に向かっていることのインジケーションを有する。
一部の実施形態では、ユーザが地理的位置に向かっているとの判定に従って、デバイスは、車両位置情報を含むユーザインタフェースオブジェクトを表示する。一部の実施形態では、ユーザインタフェースオブジェクトは、ユーザの現在地に対する識別子と、地理的位置に対する別個の識別子と、を含む地図オブジェクトである。例えば、図15Aに示すように、検索ユーザインタフェースは、検索入力部分1120と、検索結果部1130と、を含み、検索結果部1130は、ドットにより特定された地理的位置での車両位置情報と、ピンにより別々に特定された、位置ラベル「Infinite Loop 2」と、ユーザの現在地と、を含む地図オブジェクトである。
一部の実施形態では、ユーザインタフェースオブジェクトは、電子デバイスのロックスクリーン上に表示される。例えば、図15Bに示すように、地図オブジェクトが、ロックスクリーン上に表示される。従って、自動的に、かつユーザからの命令なしに、デバイスは、相対的に正確な位置情報に基づいて車を探すことが、ユーザの対象となると予測されていることを予測し、ユーザが電子デバイスをロック解除することなく、車の位置を示す地図を提供する。
一部の実施形態では、ユーザインタフェースオブジェクトは、電子デバイスに検索モードへと移行させるスワイプジェスチャに応じて表示される。一部の実施形態では、ユーザが地理的位置に向かっているか否かを判定することは、同じスワイプジェスチャを受信したことに応じて実行される。従って、同じスワイプジェスチャは、デバイスに、ユーザが地理的位置に向かっていると判定させ、相対的に正確な位置情報に基づいて、ユーザインタフェースオブジェクトを表示する。
一部の実施形態では、検索モードは、ユーザインタフェースオブジェクト、例えば、地理的位置に対応する識別子を含む地図オブジェクト、を含むよう事前にポピュレートされる検索インタフェースを表示することを含む。つまり、検索インタフェース内にユーザからいずれのユーザ入力を受け取る前に(例えば、ユーザがいずれの検索クエリを入力する前に)、検索インタフェースは、地図オブジェクトを含むようポピュレートされ、車を駐車した地理的位置についてのビジュアルリマインダへのクイックアクセスがユーザに提供されるようにする(例えば、図15Aの、ユーザインタフェースオブジェクト1130又はユーザインタフェースオブジェクト1535、若しくは両方)。一部の実施形態では、スワイプジェスチャは実質的に左右方向であり、このスワイプジェスチャは、電子デバイスが、ホームスクリーンの初期ページを表示している間に、ユーザにより提供される(例えば、図11Cの1104-1)。一部の状況では、スワイプジェスチャは実質的に下向き方向であり、アプリケーションに関連付けられたコンテンツを閲覧中に、ユーザにより提供される(例えば、図11A及び11Eの1102)。
一部の実施形態では、ユーザが地理的位置に向かっていると判定することと併せて(動作1414に関連して上述するように)、デバイスはまた、地理的位置に戻る正確な方向をデバイスが提供できるようにするために、電子デバイスの位置センサに関連付けられた現在のGPS信号が十分に強いか否かを判定し、このGPS信号が十分に強くないとの判定に従って、続いてデバイスは、位置情報及びユーザからの追加詳細の両方を提供し、駐車した車の位置の特定を補助するために、両方の情報の断片にユーザが頼ることができるようにする。
一部の実施形態では、このプロンプトは、電子デバイスを介して利用可能なバーチャルアシスタントにより提供されるオーディオプロンプトであり(動作1410に関連して上述するように)、ユーザから情報を受信することは、地理的位置を特定する口頭説明をユーザから受信することを含み、ユーザインタフェースオブジェクトを表示することは、選択されると、デバイスに口頭説明を再生させる、選択可能なアフォーダンス(例えば、図15A~15Bのアフォーダンス1502)を表示することを含む。一部の実施形態では、バーチャルアシスタントからのプロンプトは、地理的位置にて車の写真を撮る、及び/又は、車の周りの1つ以上の写真/動画を撮るよう、ユーザに指示し、ユーザインタフェースオブジェクトを表示することは、選択されると、デバイスに記録したメディアを再生させる、選択可能なアフォーダンス(例えば、図15A~15Bのアフォーダンス1502)を表示することを含む。一部の実施形態では、選択可能なアフォーダンスは、地図オブジェクトに近接して表示される一方で(アフォーダンス1502に対して示すように)、他の実施形態では、選択可能なアフォーダンスは、それ自体が表示される(特に、位置情報が精度基準を満たさない状況において、この他の表示フォーマットの1つの実施例を、図15A~15Bのアフォーダンス1535に対して示す)。一部の実施形態では(ユーザにより提供された位置情報に加えて、位置情報が提供されているか否かにより)、駐車した車にユーザが向かっていると判定されると、アフォーダンス1130及び1535の1つ又は両方が表示される。
一部の実施形態では、ユーザインタフェースオブジェクト/アフォーダンス(例えば、1130、1535、又は両方)は、駐車した車に到着するまでの予測距離を含む(例えば、ユーザインタフェースオブジェクト1130は、右上角に「0.3mi」を含む)。
一部の実施形態では、プロンプトが電子デバイスのディスプレイ上に表示され、ユーザから情報を受信することは、地理的位置を特定するテキスト説明をユーザから受信することを含み、ユーザインタフェースオブジェクトを表示することは、ユーザからのこのテキスト説明を表示することを含む。他の実施形態では、選択可能なアフォーダンスは、テキスト説明にユーザがアクセスできるよう表示される。例えば、アフォーダンス1535(図15A~15B)の選択に応じて、デバイスは、ユーザからのテキスト説明を含むメモアプリケーションを開く。
図14での動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法600、800、1000、及び1200)に関連して本明細書で説明される、他のプロセスの詳細もまた、図14に関連して上述された方法1400と類似の方式で適用可能であることに留意されたい。例えば、方法1400を参照して先述したユーザインタフェースオブジェクトは、任意選択的に、本明細書で説明する他の方法(例えば、方法600、800、1000、及び1200)を参照して本記載のユーザインタフェースオブジェクトの特性の1つ以上を有する。更に、セクション1~11に関連して以下に説明する詳細、動作、及びデータ構造はまた、方法1400と合わせて使用されてよい(例えば、セクション6に関連して説明される詳細は、ユーザの駐車した車の位置を含むユーザインタフェースオブジェクトをいつ提示するかの決定を補助するために使用されてよく、セクション5に関連して説明される詳細は、ユーザがいつも車をいつ駐車し、後にいつ戻るかに関するユーザパターンの特定及び学習を補助するために使用されてよく、セクション10に関連する詳細は、コンテキスト情報に依拠することでの車両位置情報の改善を補助するために使用されてよい)。一部の実施形態では、方法1400と併せて、いずれの好適な目的のために、セクション1~11からのいずれの他の関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図16A~16Bは、一部の実施形態に係る、近隣の対象地点(POI)についての情報を先見的に提供する方法1600を示すフローチャートを示す。図17A~17Eは、図16A~16Bの方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法1600は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法1600は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法1600はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法1600の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、1つ以上の位置センサ(例えば、加速度計(単数又は複数)168、磁気計、及び/又はGPS受信機)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法1600の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法1600は、対象地点情報自体をユーザに検索させ、特定させる必要なく、電子デバイス上にその情報を先見的に提供する(及び、続いて、ユーザが、特定のPOIの特定の距離内に居る場合に、その情報を表面化させる)。この方法は従って、所望するアクションを実行するためのタッチ入力の数を減らすことにより、より効率的なヒューマンマシンインタフェースを作り出す(例えば、近隣のPOIについての情報を閲覧すること)。バッテリ動作電子デバイスの場合、このような方法1600は、電力を節約し、バッテリを充電する間隔を延長する。
図16Aに示すように、電子デバイスのユーザからのいずれの命令を受信することなく、デバイスは、位置センサを使用して、電子デバイスの地理的位置を監視する(1602)。電子デバイスのユーザからのいずれの命令も受信することなく、デバイスは、監視した地理的位置に基づいて、電子デバイスが、所定の種類の対象地点(例えば、レストラン、アミューズメントパーク、又は映画館などの、アクティビティ提案が利用可能な対象地点)の閾値距離内にあると判定する。
一部の実施形態では、所定の種類の対象地点は、ユーザがたびたび訪れる対象地点に基づいて判定される。一部の実施形態では、対象地点はまた、現在のテキストメッセージ、電子メール、及び/又はユーザのソーシャルネットワークに関連付けられた他のデータに基づいて、ユーザの対象となると予測された対象地点を含む。
電子デバイスのユーザからのいずれの命令を依然として受信することなく、電子デバイスが、対象地点の閾値距離内にあると判定することに従って、デバイスは、対象地点にて現在人気の少なくとも1つのアクティビティを特定し、対象地点にて現在人気の少なくとも1つのアクティビティについての情報を取り出することを含む、その対象地点についての情報を取り出す(例えば、現在人気の乗り物、人気のメニューアイテム、人気の映画など)。一部の実施形態では、人気は、ユーザのソーシャルネットワーク内の個々人の閾値数(例えば、5人超)又は閾値パーセンテージ(例えば、5%又は10%)が、少なくとも1つのアクティビティに関連するどれに投稿されたか否かに基づいて査定される。一部の実施形態では、デバイスは、ユーザがたびたび訪れる所定の数の対象地点(例えば、5、10、又は20)のリスト(及び/又は、上述するように、テキストメッセージ、電子メール、又はユーザのソーシャルネットワーク内のアクティビティに基づいて現在の対象となると判定されている対象地点)を維持し、デバイスは、ユーザがそれらのいずれかの閾値距離内に居る際の、それらの対象地点での現在のアクティビティについての情報を取り出する(例えば、1マイル、1.5マイル、2マイル)。
図16Aを更に参照すると、対象地点についての情報を取り出した後、デバイスは、検出されると、電子デバイスに検索モードへと移行させる第1の入力を、タッチ感知面を介して検出する(1616)。一部の実施形態では、検索モードは、電子デバイス全体にわたって検索を実行することができる、システムレベルの検索モードである(例えば、単一のアプリケーション内のみでなく、アプリケーション及びコンテンツソース(オンデバイス及び全体の両方)にわたって)。一部の実施形態では、第1の入力は、ホームスクリーンの初期ページをデバイスが表示している間に受信された、タッチ感知面にわたるスワイプジェスチャ(例えば、図11Cの、実質的に左右方向のスワイプジェスチャ1104-1)方向に対応する。
一部の実施形態では、デバイスが、対象地点の閾値距離内にあると判定することに従って、デバイスはまた、対象地点での現在のアクティビティについての情報が利用可能であることを示すアフォーダンスを、ロックスクリーン上に表示する。これらの実施形態では、第1の入力は、対象地点での現在のアクティビティについての利用可能な情報を閲覧することの要求に対応する。例えば、図17Dに示すように、レストラン情報オブジェクトが、ロックスクリーン上に表示される。レストランのアイコン及び/又は説明は選択可能であり、レストランについての、メニュー情報などの更なる情報が利用可能であることを示す。第1の入力、例えば、「メニューを見る(View Menu)」リンク上のタップ、に応じて、メニューが表示される(例えば、ロックスクリーン上に直接、又は、デバイスをロック解除して、メニューを閲覧するための適切なアプリケーションを開くことにより)。一部の実施形態では、図17A~17Eに示すユーザインタフェースオブジェクト/アフォーダンスのいずれか(例えば、1713及び1715、並びにそこに含まれるコンテンツ)が、検索インタフェース内又はロックスクリーン内(若しくは、両方)に提示されてよい。
図16Bに戻ると、第1の入力を検出したことに応じて、デバイスは検索モードへと移行する(1618)。一部の実施形態では、検索モードへと移行することは、検索インタフェースにていずれのユーザ入力を受け取る前に(例えば、検索タームが入力されていない、及び、検索インタフェース内の検索ボックスにて入力を受け取らない)、ディスプレイを介して、(i)少なくとも1つのアクティビティについての情報、及び(ii)対象地点にて現在人気なものとして、少なくとも1つのアクティビティが特定されていることのインジケーション、例えば、近隣のレストランでの人気のメニューアイテム(例えば、図17C~17Dのアフォーダンス1715)、近隣のアミューズメントパークでの乗り物の待ち時間(例えば、図17A~17Bのアフォーダンス1713)、近隣の映画館での現在の上映時間などを含むアフォーダンスを提示することを含む。
例えば、図17Aに示すように、一部の実施形態では、対象地点はアミューズメントパーク(1604)であり、取り出した情報は、アミューズメントパークでの乗り物の現在の待ち時間を含む。一部の実施形態では、及び、図17Aに示すように、電子デバイスは、この取り出した情報を使用して、全ての乗り物に対する平均待ち時間(例えば、1時間)を提示し、ユーザは、各個々の乗り物に対する待ち時間を見るためのリンクを選択できる。図17Bに示すように、一部の実施形態では、取り出した情報の一部は、電子デバイスの所定の距離内に位置する乗り物に対する待ち時間についての情報を含み(1606)、例えば、電子デバイスから約100~150フィートの距離内に3つの乗り物/ゲームがあり、各乗り物/ゲームに対する待ち時間が(図17Aに示す「待ち時間を見る(View Wait Times)」テキスト上の入力などの、乗り物の待ち時間を閲覧することを要求するユーザからの入力を受信した後に)表示される。
別の実施例として、図17Cに示すように、対象地点はレストラン(1608)であり、取り出した情報は、レストランでの人気のメニューアイテムについての情報を含む。一部の実施形態では、取り出した情報は、電子デバイスのユーザに関連付けられたソーシャルネットワークから取り出される(1610)。例えば、図17Cでは、レストラン「Go Japanese Fusion」での人気のメニューアイテム「Yakiniku Koji」が、アフォーダンス1715内に表示され、この人気のメニューアイテムは、電子デバイスのユーザに関連付けられたソーシャルネットワークから取り出した情報に基づいて判定されてよい。
1つの追加的実施例として、対象地点は映画館(1612)であってよく、取り出した情報は、映画館の上映時間についての情報を含む。一部の実施形態では、上映時間についての取り出した情報は、電子デバイスのユーザに関連付けられたソーシャルネットワークから取り出される(1614)(例えば、ユーザのソーシャルネットワーク内の個々人により最近投稿された情報に基づいて)。
一部の実施形態では、デバイスは、第2の入力、例えば、アフォーダンス付近(例えば、上)に表示されている「更に表示(show more)」リンク(図17A~17Dのアフォーダンス1713及び1715に対して示される、「更に表示(show more)」リンクなど)の選択、を検出し(1620)、この第2の入力を検出したことに応じて、デバイスは、対象地点とは別個の、第2の対象地点での現在のアクティビティについての利用可能な情報を含むよう、このアフォーダンスを更新する。一部の実施形態では、第2の対象地点もまた、電子デバイスの閾値距離内にある。例えば、図17Dに示す、「更に表示(show more)」リンクをユーザが選択したことに応じて、デバイスは、図17Cに示すように、レストラン及び、電子デバイスの1マイル以内にある異なるレストラン「Out Steakhouse」での食べ物についての利用可能な情報を含むよう、アフォーダンス1715を更新する。別の方法で説明すると、アフォーダンス1715は、「Go Japanese Fusion」についての情報のみと共に初期的に提示され、第2の入力に応じて、アフォーダンス1715は、第2の対象地点についての情報(例えば、図17Cの点線内に示す、「Out Steakhouse」についての情報)を含めるよう更新される。一部の実施形態では、対象地点とは別個の1つを超える対象地点が、第2の入力を検出したことに応じて表示され、例えば、デバイスは、対象地点に加えて、2つ以上の新たなレストランについての利用可能な情報を含むよう、レストラン情報アフォーダンスを更新する。一部の実施形態では、同じ機能(すなわち、「更に表示(show more)」リンクの選択に応じて、追加対象地点についての情報をユーザが閲覧できる機能)もまた、ロックスクリーン上に提示されたアフォーダンスに対して利用可能である(例えば、図17Dの、ロックスクリーン上に示すアフォーダンス1715)。
一部の実施形態では、アフォーダンスは、対象地点の選択可能なカテゴリを更に含み(1622)、デバイスは、それぞれの選択可能なカテゴリの選択を検出し、選択を検出したことに応じて、デバイスの第2の閾値距離内に位置する追加対象地点についての情報を含むよう、アフォーダンスを更新する(1624)。例えば、まだ選択されていない、ユーザの対象となる可能性のある最寄りの対象地点を取得するために、第2の閾値は、閾値距離より大きい。例えば、第1の閾値距離は100フィートである。電子デバイスがその対象地点から約50フィートの距離にある場合に、デバイスは、図17C及び17Dに示すように、「Go Japanese Fusion」を対象地点として表示する。図17Eに示すように、「食べ物(Food)」カテゴリの選択を検出したことに応じて、追加対象地点、例えば、デバイスから100フィートを超えるものの、1マイル以内に位置する「Out Steakhouse」及び「Chip Mexican Grill」、が表示される。
一部の実施形態では、電子デバイスをロック解除した後、電子デバイスのホームスクリーンの初期ページ上の実質的に水平方向(例えば、図11Cの左右スワイプ1104-1)でのスワイプに応じて、ユーザインタフェースオブジェクトが利用可能となる(1626)。
図16A~16Bでの動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法600、800、1000、1200、及び1400)に関連して本明細書で説明される、他のプロセスの詳細もまた、図16に関連して上述された方法1600と類似の方式で適用可能であることに留意されたい。例えば、方法1600を参照して先述したユーザインタフェースオブジェクト及び/又は動作は、任意選択的に、本明細書で説明する他の方法(例えば、方法600、800、1000、1200、及び1400)を参照して本記載のユーザインタフェースオブジェクト及び/又は動作の特性の1つ以上を有する。一部の実施形態では、方法1600と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図18A~18Bは、一部の実施形態に係る、音声通信からコンテンツアイテムを抽出し、その抽出したコンテンツアイテムと相互作用する方法1800を示すフローチャートである。図19A~19Fは、図18A~18Bの方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法1800は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法1800は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法1800はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法1800の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法1800の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法1800は、音声通信からコンテンツアイテムを抽出し、タッチ感知ディスプレイを備える電子デバイス上にてそれらをユーザに提示する直感的な方法を提供する。この方法は、ユーザからの必要な入力の数を減らし(例えば、デバイスが、連絡先に対する関連情報、位置、及びイベントを自動的に抽出し、その情報を、デバイス上での記憶及び使用のために準備し)、従って、より効率的なヒューマンマシンインタフェースを作り出し、音声通信にて話された内容に基づいて、新たなコンテンツアイテムをユーザが加えることをアシストする。バッテリ動作電子デバイスの場合、この方法は、電力を節約し、バッテリを充電する間隔を延長することの両方を補助する。
図18Aに示すように、デバイスは、音声通信の少なくとも一部を受信し、その音声通信の一部は、電子デバイスのユーザとは別個の、リモートデバイスのリモートユーザにより提供されたスピーチを含む(1801)。一部の実施形態では、音声通信は、ライブの電話呼び出し、ライブのビデオ呼び出し(例えば、FaceTime呼び出し)、又は録音された音声メール(1803)である。一部の実施形態では、音声通信は、ユーザとリモートユーザとの間のライブの電話呼び出し(又は、FaceTime呼び出し)であり、従って、音声通信は、ユーザ及びリモートユーザの両方により提供されたスピーチを含む。他の実施形態では、音声通信は、リモートユーザによりユーザに送信された、録音された音声メールであり、録音された音声メールは、リモートデバイスから電子デバイスへ、遠距離通信ネットワークを介して配信され、録音された音声メールは続いて、後の再生のために電子デバイス上に記憶される。
一部の実施形態では、音声通信の一部は、電子デバイスのユーザからの命令に基づいて特定される(1805)。例えば、この部分には、ユーザの、ハードウェアボタンの選択に基づく分析のために、電子デバイスのユーザによりフラグが立てられ(例えば、ユーザが、単にボリュームボタンとしてのハードウェアボタンをタップし、これに応じて、デバイスは、所定の量の音声通信の分析を開始する(例えば、前の10、9、8、又は7秒間))、コンテンツアイテムが検出/抽出される。一部の実施形態では、ボタンはまた、電子デバイスのディスプレイ上にユーザ選択のために提示されたボタンであってよい(例えば、テキスト「ここをタップして、新たなコンテンツについてこの音声通信を分析する(tap here to analyze this voice communication for new content)」を含む音声通信中に、図21Bに示すユーザインタフェースと同様のユーザインタフェース上に表示されたボタン)。
一部の実施形態では、ユーザからの命令は、フレーズ「ヘイ、シリ(hey Siri)」を含む口頭コマンドに対応する(例えば、「ヘイ、シリ、それを記憶して(hey Siri, please save that)」、「ヘイ、シリ、それを覚えておいて(hey Siri, please remember that)」、又は「ヘイ、シリ、さっき言ったイベントを詳しく知りたい(hey Siri, please grab the event details that were just mentioned)」など)。一部の実施形態では、ユーザからの口頭命令は、デバイスに音声通信の分析を開始させ、新たなコンテンツを検出させる、いずれの所定のフレーズである(例えば、フレーズは、英語以外の一部の他の言語であり得、又は、フレーズは、「シリ、この呼び出しを分析して(Siri, please analyze this call)」、「シリ、分析を始めて(Siri, please begin analyzing)」、又は、有効な他の言葉などの、異なる単語を含み得る)。
一部の実施形態では、デバイスは、音声通信のいずれの一部も永続メモリ内に記録又は維持しないが、その代わりにデバイスは、音声通信の一部(例えば、一度に10秒間)のみを分析し、記録されたデータの全てをすぐに削除し、分析に基づいて抽出されたコンテンツアイテムのみを記憶する(以下に詳述するように)。このようにして、抽出されたコンテンツアイテムがユーザに利用可能となるが、音声通信の実際のコンテンツは記憶されず、従って、ユーザプライバシーの保護を補助する。
一部の実施形態では、デバイスは、音声通信の一部(例えば、録音された音声メール、又は、デバイスのユーザと、異なるデバイスの、別のリモートに位置するユーザとの間のライブの電話呼び出しのユーザによりフラグが立てられた一部、又は、抽出のための新たなコンテンツを含むとして、デバイスにより自動的に特定された一部)を分析し(1807)所定の種類のコンテンツを検出する。一部の実施形態では、音声通信を分析することは、以下を含む(1809)。リモートユーザにより提供されたスピーチ(及び、該当する場合、電子デバイスのユーザにより提供されたスピーチ)をテキストに変換すること、自然言語処理アルゴリズムをテキストに適用し、そのテキストが、1つ以上の所定のキーワードを含むか否か判定すること、かつそのテキストが、それぞれの所定のキーワードを含むとの判定に従って、その音声通信が、コンテンツアイテムを説明するスピーチを含むと判定すること。
別の方法で説明すると、音声通信は、スピーチからテキストへの処理アルゴリズムに渡され、スピーチからテキストへの処理により生成されたテキストに対して自然言語処理が実行され、続いて、そのテキストが、1つ以上の所定のキーワードのいずれかを含むか否かを電子デバイスが判定する。一部の実施形態では、自動化されたスピーチ認識アルゴリズムが使用される(例えば、スピーチからテキストへの処理動作及び自然言語処理動作を実行することを補助するため)。一部の実施形態では、1つ以上の所定のキーワードは、テキスト内のキーフレーズ/文字列を特定するために使用されるデータ検出部を含み、これらは、提案された出力を提供するために使用される(例えば、上述する、選択可能な説明)。一部の実施形態では、この全体プロセス(スピーチのテキストへの変換、及び、新たなコンテンツを検出するためのそのテキストの処理)は全て、電子デバイス上で実行され、これらの動作を実行することを補助するサーバ又はいずれの外部デバイスも使用されず、このようにして、ユーザのプライバシーが維持され、保護される。一部の実施形態では、音声通信の分析中に環状バッファが使用され(例えば、10秒以下の音声通信を含む小型環状バッファ)、環状バッファ内のデータが、スピーチの記憶及び書き出しに使用され、これもまた、プライバシーを保護する。なぜなら、会話全体が記録、監視、又は記憶されないからである。このようにして、デバイスは、素早く、効率的に、音声通信を処理し、新たなイベント、新たな連絡先情報、及び他の新たなコンテンツアイテムを検出できる。
一部の実施形態では、音声通信から抽出される可能性のある、特定の種類のコンテンツ(例えば、電話番号)について、1つ以上の所定のキーワードの検索の代わりに、又は、これに加えて、デバイスはまた、自然言語処理アルゴリズムにより生成されたテキストが、所定の桁数を含むか否かをチェックする(例えば、米国用電話番号については10又は11)。一部の実施形態では、両方の技術が使用される(例えば、デバイスは、「電話番号」などの所定のキーワードを探し、続いてすぐに、参照された電話番号を特定するために、テキスト内の所定の桁数を検索する)。
一部の実施形態では、分析(例えば、動作1807及び1809)は、音声通信が、電子デバイスと通信するオーディオシステムを介して出力されている間に実行される。一部の実施形態では、所定の種類のコンテンツは、音声通信上で話されている、連絡先、イベント、及び/又は位置情報に関連する情報コンテンツを含む(音声通信からの位置情報の検出及び抽出に関する追加詳細は、以下に提供される)。例えば、音声通信を分析して所定の種類のコンテンツを検出することは、新たな連絡先情報(連絡先及び既存の連絡先に対する新たな連絡先情報を含む)及び新たなイベント(又は、既存のイベントを変更することに関するコンテンツ)を分析して検出することを含む。一部の実施形態では、オーディオシステムは、デバイスの内部スピーカ、外部ヘッドホン、又は、スピーカ若しくは車両のステレオシステムなどの外部オーディオシステムである。
一部の実施形態では、デバイスは、リモートデバイスのリモートユーザにより提供されたスピーチに少なくとも部分的に基づいて、コンテンツアイテムを抽出する(1811)(例えば、コンテンツアイテムを特定する又は説明するスピーチ、例えば、来るイベントについての詳細(開始時間、終了時間、場所、参加者など)、連絡先情報(電話番号、連絡先氏名、雇用主名など)、レストラン名、電話番号、対象地点への道順、及び、スピーチからコンテンツアイテムを抽出するために使用され得る他の詳細説明)。一部の実施形態では、コンテンツアイテムは、電子デバイスのユーザにより提供されたスピーチに少なくとも部分的に基づいて、同様に抽出される(例えば、両方のユーザが、イベントの詳細について話しており、デバイスは、両方のユーザにより提供されたスピーチに基づいて、これらのイベントの詳細を抽出する)(1815)。
一部の実施形態では、コンテンツアイテムは、新たなイベント、電子デバイス上でカレンダーアプリケーションに現在関連付けられたイベントについての、新たなイベントの詳細、新たな連絡先、及び、電子デバイス上の電話アプリケーションに関連付けられた既存の連絡先についての、新たなコンテンツ情報、である(1813)。
一部の実施形態では、電子デバイスは、コンテンツアイテムが、電子デバイス上で現在利用可能であるか否かを判定する(1817)。
図18Bに戻ると、コンテンツアイテムが、電子デバイス上で現在利用可能でないとの判定に従って、電子デバイスは、コンテンツアイテムに関連付けられたアプリケーションを特定し、コンテンツアイテムの選択可能な説明をディスプレイに表示する(1821)。図19Aは、ユーザが現在音声通信(例えば、ライブの電話呼び出し)に参加している間に、選択可能な説明1902が表示されている、1つのユーザインタフェース例を示す。図19Aに示すように、選択可能な説明1902は、特定された、関連するアプリケーションのアイコン(例えば、カレンダーアプリケーションのアイコン)、コンテンツアイテムの説明(例えば、この電話呼び出しにて新たなイベントが見つかったことを示すテキスト)、及び、コンテンツアイテムについての詳細(例えば、新たなイベントに関連付けられたイベント詳細)を含む。
一部の実施形態では、選択可能な説明を表示することは、電話アプリケーションを使用して最近実行された呼び出しを含むユーザインタフェース内に、選択可能な説明を表示することを含む(1823)。一部の実施形態では、最近の呼び出しを含むユーザインタフェースは、音声通信の終了後に表示される(すなわち、選択可能な説明1902がまず、ユーザが電話をしている間に表示され、最近の呼び出しを含むユーザインタフェースが続いて、その電話の終了後に表示される)。例えば、図19Bは、音声通信から抽出されたコンテンツアイテムについての、選択可能な説明1901、1903、及び1905を含む、1つのユーザインタフェース例を示す。特に、選択可能な説明1901は、第1の電話呼び出しにて新たなイベントが見つかったことを示し、選択可能な説明1903は、第2の電話呼び出しにて新たな連絡先情報が見つかったことを示し、及び選択可能な説明1905は、第3の電話呼び出しにて場所が見つかったことを示す。上述するように、音声通信はまた、録音された音声メールであり得、従って、図19Bに示すユーザインタフェースはまた、電話アプリケーションの音声メールタブ内に表示されてよい。
一部の実施形態では、選択可能な説明は、コンテンツアイテムが音声通信に関連付けられたことのインジケーションと共に表示される。例えば、選択可能な説明1901~1905のそれぞれが、それらが抽出された音声通信に隣接して表示され、それらは、各抽出されたコンテンツアイテムに関連付けられた音声通信のそれぞれの明確なインジケーションをユーザに提供する。
コンテンツアイテムが電子デバイス上で現在利用可能でないという判定に従って、電子デバイスはまた、新たなコンテンツアイテムが検出されたというフィードバックをユーザに提供する(1825)。一部の実施形態では、フィードバックを提供することは、選択可能な説明を表示することと併せて実行される(すなわち、フィードバックを表示して提供することは、実質的に同時に実行され、ユーザは、触覚フィードバックを受信できるようになり、これは続いてユーザを、音声通信中に選択可能な説明1902が表示されるディスプレイの閲覧に向ける)。一部の実施形態では、フィードバックを提供することは、電子デバイスに近接する異なる電子デバイスに、コンテンツアイテムの検出に関する情報を送信することを含む(1827)(例えば、近隣のラップトップ又は携帯時計に情報を送信することで、ユーザは耳から電話を離すことなく、検出された新たなコンテンツアイテムに関する詳細を見ることができる)。
一部の実施形態では、選択可能な説明の選択を検出したことに応じて(例えば、図19A又は19Bのどちらかに示すユーザインタフェースにて提供されているユーザ入力)、電子デバイスは、特定されたアプリケーションでの提示のために、コンテンツアイテムを記憶する(1829)。選択可能な説明は、ユーザが音声通信を聞いている間に(例えば、図19Aの選択可能な説明1902上でタップすることにより)、又は、最近の呼び出しを含むユーザインタフェースから選択可能な説明を選択することにより(例えば、図19Bの選択可能な説明1901上でタップすることにより)選択されてよい(1831)。この選択に応じて、コンテンツアイテムは、特定されたアプリケーション(例えば、抽出された連絡先アイテムの種類により、カレンダーアプリケーション又は連絡先アプリケーション)と共に記憶される。例えば、選択可能な説明1902又は1901のどちらかの選択に応じて、電子デバイスは、新規イベント作成ユーザインタフェースを開き、その新規イベント作成ユーザインタフェースを、音声通信の一部から抽出された詳細でポピュレートする(例えば、図19Cに示すユーザインタフェースが、タイトル、場所、開始時間、及び終了時間など、を含むようポピュレートされる)。
別の実施例として、選択可能な説明1903の選択に応じて、電子デバイスは、連絡先アプリケーションに対するユーザインタフェースを開き(例えば、図19D~19Eのそれぞれの、新たな連絡先の作成、又は、新たな連絡先詳細の、既存の連絡先への追加、をできるようにし)、そのユーザインタフェースを、音声通信の一部から抽出された詳細でポピュレートする(例えば、図19Dに示すユーザインタフェースは、苗字、名前、電話番号、電子メールアドレスなど、を含み、図19Eに示すユーザインタフェースは、既存の連絡先の新たな携帯電話番号を含む)。
一部の実施形態では、電子デバイスはまた、音声通信中に言い及んだ又は話した物理的位置についての情報を検出/抽出する。特に、及び、図18Bを参照して戻ると、電子デバイスは、音声通信が、第1の物理的位置(例えば、第1の地理的位置に到達するために提供された地理的位置又は道順への参照)についての情報を含むと判定する(1833)。電子デバイスはまた、入力(例えば、その入力)を検出し(1835)、その入力を検出したことに応じて、電子デバイスは、その入力が、地理的位置データを受け入れるアプリケーションを開くことの要求に対応するか否か、又は、その入力が、電子デバイス上でコンテンツを検索することの要求に対応するか否か、により、動作1837又は動作1839のどちらかを実行する(例えば、本明細書に説明する、検索有効化ジェスチャのいずれか)。
その入力が、地理的位置データを受け入れるアプリケーションを開くことの要求に対応するとの判定に従って、電子デバイスは、位置データを受け入れ可能なアプリケーションを開き、そのアプリケーションを、第1の物理的位置についての情報(ライブの電話呼び出しにて話されたレストラン名、又は、そのレストラン名を使用して電子デバイスが探した電話番号などの、音声通信内に含まれる情報又はそれに基づく情報であり得る)でポピュレートする(1839)。例えば、図19Fに示すように、アプリケーションは地図アプリケーションであり、地図アプリケーションを、第1の物理的位置についての情報でポピュレートすることは、地図アプリケーション内に表示されている地図を、第1の物理的位置に対応する位置識別子でポピュレートすることを含む(又は、図19Fに示すように、複数の位置識別子が、音声通信中に話された/抽出された各物理的位置に対して表示される)。
その入力が、検索モードに移行することの要求に対応するとの判定に従って、電子デバイスは、検索インタフェースを、第1の物理的位置についての情報でポピュレートする(1837)(ライブの電話呼び出しにて話されたレストラン名、又は、そのレストラン名を使用して電子デバイスが探した電話番号などの、音声通信内に含まれる情報又はそれに基づく情報であり得る)。例えば、図13Bに関連して上述する検索インタフェースは、提案された検索1150の1つとして、第1の物理的位置についての情報を含むようポピュレートされ得る(例えば、要求が電話アプリケーション上で受信される)。
一部の実施形態では、音声通信は、(音声通信中に会話している両方のうちの、単一のユーザ又は複数のユーザからの)多くの様々なコンテンツアイテム(例えば、複数の新たな連絡先若しくは既存の連絡先についての新たな連絡先情報、複数の物理的位置、及び、新たな若しくは既存のイベントについての複数の詳細、又はその組み合わせ)を説明するスピーチを含んでよく、電子デバイスは、これらのコンテンツアイテムのそれぞれが、音声通信から抽出されることを確かにするよう構成される。例えば、方法1800はまた、電子デバイスが音声通信の第2の部分を受信することも含む(例えば、第2の部分は、リモートデバイスのリモートユーザ及び電子デバイスのユーザのうちの1人以上により提供されたスピーチを含む)。一部の実施形態では、電子デバイスは、リモートデバイスのリモートユーザにより提供されたスピーチ及び電子デバイスのユーザにより提供されたスピーチに少なくとも部分的に基づいて、第2のコンテンツアイテムを抽出する。第2のコンテンツアイテムが電子デバイス上で現在利用可能でないとの判定に従って、電子デバイスは、第2のコンテンツアイテムに関連付けられた第2のアプリケーションを特定し、第2のコンテンツアイテムの第2の選択可能な説明をディスプレイに表示する(例えば、複数のコンテンツアイテムが、各関連する音声通信から抽出された場合に、必要に応じて、図19Aに示すユーザインタフェースは、1つを超える選択可能な説明1902を含んでよい、及び/又は、図19Bに示すユーザインタフェースは、1つを超える選択可能な説明1901、1903、又は1905を含んでよい)。第2の選択可能な説明の選択を検出したことに応じて、電子デバイスは、特定された第2のアプリケーションでの提示のために、第2のコンテンツアイテムを記憶する(第1のコンテンツアイテムを参照して上述するように)。
一部の実施形態では、選択可能な説明又は第2の選択可能な説明が選択された後、電子デバイスは、最近の呼び出しを含むユーザインタフェース内のそれぞれの選択可能な説明の表示を停止する。一部の実施形態では、各選択可能な説明はまた、選択されると、電子デバイスに、それぞれの選択可能な説明を表示することを停止させる、リムーブアフォーダンス(例えば、「x」)と共に表示される(図19A及び19Bに示す選択可能な説明に対して示すように)。
図18A~18Bでの動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法2000)に関連して本明細書で説明される、他のプロセスの詳細もまた、図18A~18Bに関連して上述された方法1800と類似の方式で適用可能であることに留意されたい。例えば、方法1800を参照して先述した動作は、任意選択的に、本明細書で説明する他の方法(例えば、方法2000)を参照して本記載の動作により実装される、又は、これらの動作を組み込む。更に、以下のセクション4「構造化された提案」に提供する詳細はまた、方法2000と併せて使用されてもよい(例えば、メッセージ内の連絡先及びイベントついての情報を検出することに関連する、セクション4に説明する詳細は、同様に、音声通信から同じ情報を抽出するために使用され得る)。一部の実施形態では、方法1800と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
一部の実施形態では、上記方法1800及び下記方法2000を参照して説明される技術もまた、音声通信から抽出され得る、他の種類のコンテンツを検出するためにも使用される。例えば、電話番号が、(例えば、新たな連絡先又は既存の連絡先に対する)連絡先情報としての記憶のために、又は、すぐに使用するために抽出され、ユーザに提示されてよい(例えば、ユーザは、電話呼び出しを行い、新たな電話番号を含む応答メッセージを聞き、メッセージが、この新たな電話番号を含むことを検出したことに応じて、デバイスは、この電話番号を、図21Bに示すようなユーザインタフェースなどの上に提示し、ユーザが、素早く、そして容易に、その新たな電話番号を呼び出すことができるようにする)。
方法1800及び2000の一部の実施形態では、新たなコンテンツが利用可能であることの明確なインジケーションをユーザに提供するために、デバイスが、新たなコンテンツ(例えば、場所、電話番号、連絡先情報、又は、その他)を検出するといつでも、触覚フィードバックが提供される。
図20は、一部の実施形態に係る、音声通信が物理的位置を特定するスピーチを含むと判定し、アプリケーションを、その物理的位置についての情報でポピュレートする方法を示すフローチャートである。図19A~19F及び21A~21Bは、図20の方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法2000は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法2000は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法2000はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法2000の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法2000の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法2000は、音声通信からコンテンツアイテムを抽出し、タッチ感知ディスプレイを備える電子デバイス上にてそれらをユーザに提示する直感的な方法を提供する。この方法は、ユーザからの必要な入力の数を減らし(例えば、デバイスが、物理的位置についての関連情報を自動的に抽出し、その情報を、デバイス上での記憶及び使用のために準備し)、従って、より効率的なヒューマンマシンインタフェースを作り出し、音声通信にて話された内容に基づく物理的位置についての情報をユーザが再度呼び出すことを補助する。バッテリ動作電子デバイスの場合、この方法は、電力を節約し、バッテリを充電する間隔を延長することの両方を補助する。
図20に示すように、デバイスは、音声通信の少なくとも一部を受信し、その音声通信の一部は、電子デバイスのユーザとは別個の、リモートデバイスのリモートユーザにより提供されたスピーチを含む(2001)。一部の実施形態では、音声通信は、ライブの電話呼び出し、ライブのビデオ呼び出し(例えば、FaceTime呼び出し)、又は録音された音声メール(2003)である。音声通信の実施例に関する追加詳細(及び、その関連する部分)は、図18A~18Bに関連して先に提供されている。一部の実施形態では、音声通信の一部は、電子デバイスのユーザから受信した命令に基づいて特定される(2005)。ユーザから受信した命令の実施例に関する追加詳細は、図18A~18Bに関連して先に提供されている(例えば、命令は、ハードウェアボタンの選択又はユーザからの口頭コマンドに対応し得る)。
一部の実施形態では、デバイスは、音声通信の一部を分析し、物理的位置についての情報を検出し、この分析は、電子デバイスと通信するオーディオシステムを介して音声通信を出力する間に実行される(2007)。一部の実施形態では、オーディオシステムは、デバイスの内部スピーカ、外部ヘッドホン、スピーカ又は車両のステレオシステムなどの、外部オーディオシステムであってよい。この分析動作2007及びスピーチからテキストへの処理の他の実施例に関する追加情報は、先に提供されている(及び、これらの技術は、同様に、物理的位置の検出にも適用する)。
一部の実施形態では、電子デバイスは、音声通信が、物理的位置を特定するスピーチを含むと判定する(2009)。一部の実施形態では、物理的位置を特定するスピーチは、特定の対象地点への運転指示を話すスピーチ、レストラン名(又は、他の対象地点)に言及するスピーチなどを含む。一部の実施形態では、物理的位置は、いずれの対象地点(例えば、レストラン、家、アミューズメントパーク、その他)に対応してよく、物理的位置を特定するスピーチは、通りの住所に言及するスピーチ、物理的位置に対する位置情報に言及するスピーチ(GPS座標、緯度/経度など)、及び、地図上の物理的位置を特定するために(デバイスにより)使用可能な情報を提供する、他の関連するスピーチを含んでよい。一部の実施形態では、物理的位置はまた、名前を指定された位置(named location)又は物理的に住所指定可能な位置(physically addressable location)とも呼ばれる。
一部の実施形態では、音声通信が、物理的位置を特定するスピーチを含むと判定したことに応じて、電子デバイスは、物理的位置についての情報が検出されたとのインジケーションを提供する(2011)(例えば、デバイスは、触覚フィードバックを提供し、及び/又は、図21A及び21Bにそれぞれ示す、ユーザインタフェースオブジェクト2101又は2103などの、選択のためのUIオブジェクトを表示する)。一部の実施形態では、インジケーションを提供することは、物理的位置の選択可能な説明(例えば、図19Bの選択可能な説明1905)を、電話アプリケーションを使用して実行された最近の呼び出しを含むユーザインタフェース内に、又は、音声通信(例えば、図21A~21Bのそれぞれの、選択可能な説明2101及び2103)に関連付けられたユーザインタフェース内に、又は、そのようなユーザインタフェースの両方内(例えば、音声通信が継続中に、その音声通信に関連付けられたユーザインタフェース内、及び、音声通信が終了した後の、最近の呼び出しを含むユーザインタフェース内)に、表示することを含む(2013)。一部の実施形態では、選択可能な説明は、コンテンツアイテムが、音声通信に関連付けられたことを示す(例えば、図19Bに示すように、選択可能な説明が、音声通信に対する識別子の下に表示される、又は、選択可能な説明が、音声通信に関連付けられたユーザインタフェース内に表示される(図21A~21Bに示すように))。
一部の実施形態では、インジケーションを提供することは、電子デバイスのユーザに触覚フィードバックを提供することを含む(2015)。
一部の実施形態では、インジケーションを提供することは、電子デバイスに近接する異なる電子デバイスに、物理的位置に関する情報を送信することを含む(2017)(例えば、近隣のラップトップ又は携帯時計での提示のために情報を送信することで、ユーザは耳から電話を離すことなく、検出された新たなコンテンツアイテムに関する詳細を見ることができる)。
一部の実施形態では、電子デバイスは、タッチ感知面を介して入力を検出し(例えば、入力は、(音声通信の終了後にしばらくして受信された)地理的位置データを受け入れるアプリケーションを開くことの要求に対応する、又は、入力は、音声通信中又は後に表示された物理的位置の選択可能な説明の選択に対応する)、この入力を検出したことに応じて、デバイスは、地理的位置データを受け入れるアプリケーションを開き、そのアプリケーションを、物理的位置についての情報でポピュレートする(2019)。
一部の実施形態では、入力を検出することは、最近の呼び出しを含むユーザインタフェースが表示されている間に、選択可能な説明上の入力を検出することを含む(例えば、図19Aの選択可能な説明1905上の選択又はタップ)。例えば、図19Aの、選択可能な説明1905上の接触を検出したことに応じて、電子デバイスは、地図アプリケーション(又は、ライドシェアアプリケーションなどの、地図オブジェクトを表示可能なアプリケーション)を開き、その地図アプリケーションを、物理的位置(例えば、図19Fに示すように、物理的位置を特定するピン)についての情報でポピュレートする。
一部の実施形態では、入力を検出することは、音声通信に関連付けられたユーザインタフェースが表示されている間に、選択可能な説明上の入力を検出することを含む(例えば、図21A~21Bの、選択可能な説明2101又は2103上の選択又はタップ)。例えば、図21Aの、選択可能な説明2101上の接触を検出したことに応じて、電子デバイスは、地図アプリケーション(又は、ライドシェアアプリケーションなどの、地図オブジェクトを表示可能なアプリケーション)を開き、その地図アプリケーションを、物理的位置(例えば、図19Fに示すように、物理的位置を特定するピン)についての情報でポピュレートする。別の実施例として、選択可能な説明2103上の接触を検出したことに応じて(図21B)、デバイスは、地図アプリケーション(又は、物理的目的地への経路案内を提供可能なアプリケーション)を開き、その地図アプリケーションを、物理的位置についての情報(例えば、図19Fに示すように、物理的位置を特定するピン、同様に、音声通信中に提供されたスピーチに基づいて抽出された物理的位置への道順)でポピュレートする。
一部の実施形態では、アプリケーションは、入力の検出に応じてポピュレートされるため、ポピュレートすることは、アプリケーション内でのいずれの追加ユーザ入力を受信する前に実行される(例えば、ピンは、図19Fに示す地図アプリケーションが開いた際に、その地図アプリケーション内のいずれのユーザ入力を要求することなく、その地図アプリケーション内にポピュレートされる)。このようにして、ユーザは、音声通信中にスピーチから抽出された情報のみに基づく物理的位置についての情報が提示され、ユーザは、アプリケーションが情報でポピュレートされるためのいずれの追加入力も提供しない(つまり、アプリケーションは、情報で事前にポピュレートされる)。
一部の他の実施形態では、検出された地理的位置は、ユーザが後に適切なアプリケーション(例えば、地理的位置情報を受け入れ可能なアプリケーション)を開く時にいつでも、適切なアプリケーション内での表示のために記憶される、従って、音声通信中に、ユーザにはインジケーションが提供されない。
図20での動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法1800)に関連して本明細書で説明される、他のプロセスの詳細もまた、図20に関連して上述された方法2000と類似の方式で適用可能であることに留意されたい。例えば、方法2000を参照して先述した動作は、任意選択的に、本明細書で説明する他の方法(例えば、方法1800)を参照して本記載の動作により実装又は補完される。更に、以下のセクション4「構造化された提案」に提供する詳細はまた、方法2000と併せて使用されてもよい(例えば、メッセージ内の連絡先及びイベントついての情報を検出することに関連する、セクション4に説明する詳細は、同様に、音声通信から同じ情報を抽出するために使用され得る)。一部の実施形態では、方法2000と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図22A~22Bは、一部の実施形態に係る、メッセージアプリケーションにて使用するための物理的位置を先見的に提案する方法を示すフローチャートである。図23A~23Oは、図22A~22Bの方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法2200は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法2200は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法2200はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法2200の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法2200の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法2200は、タッチ感知ディスプレイを備える電子デバイス上のメッセージアプリケーションにて使用するために、物理的位置を先見的に提案する直感的な方法を提供する。この方法は、物理的位置についての関連情報をメッセージアプリケーション内に追加するための、ユーザからの入力の数を減らし、従って、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスの場合、メッセージアプリケーションにて使用するための物理的位置を先見的に提案することは、電力を節約し、バッテリを充電する間隔を延長する(例えば、ユーザがこの情報を漫然と検索しなければならない場合の時間及びエネルギを消費する動作を、その情報をメッセージアプリケーションに入力する前に、節約することで)。
図22Aに示すように、電子デバイスは、ディスプレイ(例えば、デスクトップ、ラップトップ、スマートフォン、又はスマートウォッチ上の電子メール又はiMessageアプリケーション)上のメッセージアプリケーション内に、テキスト入力フィールド及び会話記録を提示する(2201)。一部の実施形態では、会話記録は、1人以上のユーザとの間で交換されたメッセージを含む(例えば、電子メールメッセージ、テキストメッセージ、オーディオメッセージ、ビデオメッセージ、写真メッセージなど)。一部の実施形態では、会話記録は、テキスト入力フィールドを含む(例えば、図23Aに示すように、会話記録2301は、電子メールへの返事を新たに下書きしている間にユーザがタイプしたテキストを含む)。一部の実施形態では、会話記録及びテキスト入力フィールドは別個である(例えば、図23Cに示すように、会話記録2303は、ユーザが新たなメッセージを下書きできる別個のテキスト入力フィールド2305の実質的に上方に位置する)。一部の実施形態では(例えば、デスクトップ又はスマートTVデバイスなどの、電子デバイスが、デバイスとは物理的に別個となっているディスプレイと通信するもの)、提示することは、ディスプレイに提示させることを含む(例えば、デバイスは、情報をディスプレイに提供し、ディスプレイが、テキスト入力フィールド及び会話記録(及び、以下に説明する他のユーザインタフェース要素)を描画できるようにする)。
メッセージアプリケーションがディスプレイ上に提示されている間に、電子デバイスは、電子デバイスのユーザからの次の可能性のある入力が、物理的位置(例えば、住所、又は、デバイスにより判定されるユーザの現在地)についての情報であると判定する(2203)。一部の実施形態では、電子デバイスのユーザからの次の可能性のある入力が、物理的位置についての情報であると判定することは、テキスト入力フィールド及び会話記録に関連付けられたコンテンツを処理し、会話トランスクリプションが、ユーザの現在地についての質問を含む(2205)ことを検出することを含む(例えば、図23A~23B及び23C~23Dに示すように、第2のユーザが、「どこに居るの(where are you)」とユーザに尋ねるメッセージを送信する)。一部の実施形態では、コンテンツを処理することは、自然言語処理アルゴリズムを適用し、その質問を構成する1つ以上の所定のキーワードを検出することを含む。一部の実施形態では、1つ以上のキーワードは、電子デバイスにより、テキスト入力フィールド及び会話記録に関連付けられたコンテンツ内を直接検索され得る一方で、他の実施形態では、1つ以上のキーワードは、意味解析を実行し、1つ以上のキーワード(例えば、短いセマンティック距離で離れた単語)に対する同等のフレーズを探すことにより検出され、一部の実施形態では、これらの技術の両方が使用される。一部の実施形態では、質問は、ユーザとは別個の、第2のユーザから受信したメッセージに含まれる(2209)(図23A~23B及び23C~23Dに示すように)。
一部の実施形態では、電子デバイスは、テキスト入力フィールド及び会話記録に関連付けられたコンテンツを分析し、分析したコンテンツ(例えば、直近に受信したメッセージからのコンテンツ)の一部に少なくとも部分的に基づいて、提案された物理的位置を判定する(2211)。一部の実施形態では、提案された物理的位置は、メッセージアプリケーション以外のアプリケーション内にてユーザが最近閲覧した位置に対応する(2213)。(例えば、ユーザが、「晩御飯は(we should grab dinner at)[最近閲覧した住所を自動挿入する]に」とタイプし始める。)例えば、ユーザが以前に、(例えば、図25Aに示す)レビュー検索アプリケーションを使用してレストランを検索していると、デバイスは続いて、レビュー検索アプリケーションにてレストランを検索し、提案された物理的位置を特定することに基づく情報を使用する。
一部の実施形態では、電子デバイスは、ディスプレイ上のメッセージアプリケーション内に、提案された物理的位置を特定する、選択可能なユーザインタフェース要素を提示する(2215)。例えば、メッセージアプリケーションは、バーチャルキーボードを含み、選択可能なユーザインタフェース要素は、バーチャルキーボードに隣接し、かつその上方の提案部分内に表示される(2217)。図23Aに示すように、提案部分2307は、選択されると、デバイスに、ユーザの現在地をテキスト入力フィールドに含めさせる、選択可能なユーザインタフェース要素を含む(図23Bに示すように)。一部の実施形態では、2307に示す選択可能なUI要素の選択は、デバイスに、ユーザの現在地を、新たなメッセージにてリモートユーザに直ぐに送信させる。
図22Bに戻ると、一部の実施形態では、電子デバイスは、選択可能なユーザインタフェース要素の選択を受信する(2219)。この選択を受信したことに応じて、電子デバイスは、提案された物理的位置の表現をテキスト入力フィールド内に提示する(2221)。一部の実施形態では、提案された物理的位置の表現は、電子デバイスの現在の地理的位置を特定する情報を含む(2223)(例えば、電子デバイスの位置センサから、現在の地理的位置を特定するGPS情報が取り出され、その情報は続いて、表現内に提示される(図23B及び23Dに示すように))。図23B及び23Dに示すように、一部の実施形態では、提案された物理的位置の表現は、提案された物理的位置に対する識別子を含む地図オブジェクトである(2227)。
一部の実施形態では、提案された物理的位置の表現は住所である(2225)。例えば、図23Eを参照して、提案部分2307に示す選択可能なユーザインタフェース要素の選択を検出したことに応じて、デバイスは、テキスト入力フィールドを更新し、提案部分2307に示された住所を含める。一部の実施形態では、この住所は、ユーザ自身の住所(自宅、職場など)、デバイスに記憶された連絡先の住所(図23G~23Hに示すように)、電子デバイス上でユーザにより最近閲覧された住所(例えば、図23Fに示すように、一部の他のアプリケーション内にて閲覧されたレストラン位置)、この会話記録又は他の会話記録にてユーザに送信された住所、又は、ユーザと他のユーザがシェアする住所(例えば、電子メール、ソーシャルネットワークアプリケーションなどを介して)に対応してよい。
一部の実施形態では、ユーザが、タイプしており(すなわち、ユーザが、例えば、図23Eに示すもののようなバーチャルキーボードを介して、メッセージアプリケーション内にテキストを継続して入力している)、及び、(例えば、2秒間、3秒間、4秒間などの、選択可能なユーザインタフェース要素をユーザが選択しようとしないことが合理的に確かな所定の期間後に)選択可能なユーザインタフェース要素を選択していないとの判定に従って、デバイスは、選択可能なユーザインタフェース要素を提示することを停止する(2229)。一部の実施形態では、ユーザがタイプし始めると、デバイスは、選択可能なユーザインタフェース要素を提示することを停止する。
一部の実施形態では、電子デバイスのユーザからの次の可能性のある入力が、物理的位置についての情報であると判定することは、メッセージアプリケーションのテキスト入力部分内にてユーザから受信したタイピング入力を監視することを含む。そのような実施形態では、この方法は、以下を更に含む。タイピング入力を監視する間に、タイピング入力のいずれかが、1つ以上のトリガーフレーズであって、各イベンドが、対応するコンテンツアイテムに関連付けられたトリガーフレーズに一致するか否かを判定し、一連のタイピング入力が、第1のトリガーフレーズに一致するとの判定に従って、第1のトリガーフレーズに関連付けられた、提案されたコンテンツアイテムをディスプレイ上に表示し、提案されたコンテンツアイテムの選択を検出し、この選択を検出したことに応じて、提案されたコンテンツアイテムについての情報をメッセージアプリケーションのテキスト入力部分に表示する。一部の実施形態では、選択可能なユーザインタフェース要素をユーザが選択しない(例えば、連続するキーストロークがトリガーフレーズに一致しない)ことを示す追加入力をユーザが提供したとの判定に従って、電子デバイスは、選択可能なユーザインタフェース要素を提示することを停止する(2231)。
一部の実施形態では、選択可能なユーザインタフェースオブジェクトを最初に表示してから、所定の期間(例えば、10秒間)が経過したとの判定に従って、デバイスは、選択可能なユーザインタフェースオブジェクトを提示することを停止する。
一部の実施形態では、方法2200に関連付けられた技術もまた、追加種類のアプリケーション(ドキュメントオーサリングアプリケーションなどの、メッセージアプリケーション以外)を介して利用可能であり、及び、追加オブジェクトタイプに対して利用可能である(連絡先及びイベントなどの、物理的位置に加えて)。例えば、図23I及び23Jに示すように、一部の実施形態はまた、電子デバイスに、イベントをスケジューリングするための可用性ウィンドウを先見的に提案させることができる(図22C及び方法2280に関連して以下に詳述する)。更に、図23K~23Jに示すように、一部の実施形態はまた、電子デバイスに、連絡先情報を先見的に提案させることができ(例えば、デバイス上に記憶されたユーザ又は連絡先に対する電話番号)、又は、以前の会話に基づいて、適切な応答を先見的に提案させることができ(例えば、図23Mに示すように)、又は、適切な参考文書を先見的に提案させることができる(例えば、図23Oに示すように)。以下の方法2280はまた、他の種類のアプリケーション及び追加オブジェクトタイプに関する追加詳細も提供する。」一部の実施形態では、方法2200及び2280の様々な態様が組み合わされ、取り替えられ、及び交換される。
図22A~22Bでの動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法2280及び2900)に関連して本明細書で説明される、他のプロセスの詳細もまた、図22A~22Bに関連して上述された方法2200と類似の方式で適用可能であることに留意されたい。例えば、方法2200を参照して先述した動作は、任意選択的に、本明細書で説明する他の方法(例えば、方法2280及び2900)の動作又は特性の1つ以上を含む。一部の実施形態では、方法2200と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図22Cは、一部の実施形態に係る、位置、イベント、又は連絡先に関する情報を先見的に提案する方法を示すフローチャートである。図23A~23Oは、図22Cの方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法2280は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法2280は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法2280はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法2280の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法2280の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法2280は、タッチ感知ディスプレイを備える電子デバイス上にて位置、イベント、又は連絡先に関する情報を先見的に提案する直感的な方法を提供する。この方法は、連絡先、位置、又はイベントについての情報を特定するために必要なユーザからの入力の数を減らし、その情報をアプリケーションでの使用のために入力し、従って、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスの場合、位置、イベント、又は連絡先に関する情報を先見的に提案することは、電子デバイスのユーザ満足度を改善し(情報を自動的に再度呼び出し、それをユーザに近いユーザに、関連時間にて提示することにより)、電力を節約し、バッテリを充電する間隔を延長する。
図22Cに示すように、電子デバイスは、ディスプレイ上に、アプリケーションに関連付けられたテキストコンテンツを提示する(2281)。一部の実施形態では、アプリケーションは、ドキュメントオーソライジングアプリケーション(例えば、メモアプリケーション、ワードプロセッシングアプリケーションなど)、又は、メッセージアプリケーション(例えば、電子メール又はテキストメッセージアプリケーション)、若しくは、入力受け取りフィールドにテキストを入力するためにバーチャルキーボードが表示される、いずれの他のアプリケーション)である。
一部の実施形態では、デバイスは、テキストコンテンツの一部が、(i)位置(例えば、電子デバイスの位置センサを介して利用可能な現在地情報)、(ii)連絡先(例えば、電子デバイス上の連絡先アプリケーションを介して利用可能な情報)、又は(iii)イベント(例えば、電子デバイス上のカレンダーアプリケーションを介して利用可能な情報)に関連する(又は、テキストコンテンツの一部が、これらを参照する)と判定する(2283)。一部の実施形態では、テキストコンテンツの一部は、位置、連絡先、又はイベントについての情報で良好に補完されるステートメント/質問である(例えば、図23A~23Oに示す実施例など)。一部の実施形態では、テキストコンテンツの一部は、アプリケーション内にて直近に提示されたテキストコンテンツに対応する(2285)(例えば、ユーザによりタイプされたテキストコンテンツ、又は、リモートユーザからメッセージにて受信したテキストコンテンツ)。例えば、その一部は、メモ又はメッセージapp内にユーザによりタイプされた現在のテキストである(例えば、図23Aの「~に今居ます(Currently I'm at)」、図23Eの「住所は~(My address is)」、図23Hの「ジョンの住所は(John's address is)」、図23Iの「~なら時間が空いています(I'm free at)」、図23Kの「私の電話番号は(my phone number is)」、図23Lの「~に電話してください(Call me at)」、及び図23Mの「ネオプラズムの種類は(what kind of neoplasm)」)。別の方法で説明すると、テキストコンテンツの一部は、アプリケーション内の入力受け取りフィールド(例えば、図23Cの、インスタントメッセージアプリケーションのフィールド2305、又は、図23Aの、電子メールアプリケーションのフィールド2301)にて電子デバイスのユーザにより提供された入力(すなわち、一連のタイピング入力)である(例えば、ユーザは、バーチャルキーボードにて一連のタイピング入力を提供している、又は、ディクテーションを使用してテキストを入力受け取りフィールドに加えている)。
一部の実施形態では、テキストコンテンツの一部は、会話記録内の、一部の他のユーザから直近に受信したメッセージである。例えば、アプリケーションはメッセージアプリケーションであり、テキストコンテンツの一部は、電子デバイスとは別個のリモートデバイスのリモートユーザから、メッセージアプリケーション内で受信した質問である(例えば、図23Cの「どこに居るの?(where are you?)」、図23Fの「レストランはどこ?(where's the restaurant?)」、図23Gの「ジョンの住所は?(What's John's addr?)」、図23Jの「夕食までの時間は?(what time works for dinner?)」、及び図23Oの「ネオプラズムについてご存知ですか?(Do you know about neoplasms?)」)。
一部の実施形態では、テキストコンテンツの一部が、(i)位置(2289)、(ii)連絡先(2291)、又は(iii)イベント(2293)に関連すると判定すると、電子デバイスは、電子デバイス上で利用可能な、適切なコンテンツアイテムの特定(一部の実施形態では、サーバからいずれの情報を取り出す必要なく)、及び、アプリケーションでの使用のために、そのコンテンツアイテムのユーザへの提示を進める(例えば、質問に応える、又は、ユーザ自身のタイピング入力を効率的に補完する)。このようにして、現在のアプリケーションを終了し、適切なコンテンツを検索し、そのコンテンツをコピー又は記憶し、現在のアプリケーションに戻り、続いて、そのコンテンツを現在のアプリケーション内に含める必要なく、ユーザは、素早く、容易に、連絡先、イベント、及び位置についての情報をアプリケーション内に含めることができる(従って、連絡先、イベント、及び位置についての情報をアプリケーション内に含めるためにユーザに要求される入力の数を減らす)。
より具体的には、(i)について、テキストコンテンツの一部が位置に関連すると判定すると、電子デバイスは、電子デバイス上の位置センサから位置情報を取得し、取得した位置情報を、予測されたコンテンツアイテムとして表示するために準備する(2289)。例えば、リモートユーザから受信したメッセージ内の、フレーズ「どこに居るの?(Where are you?)」を含むテキストコンテンツの一部に基づいて(図23Cに示すように)、デバイスは、その一部が位置に関連すると判定し、デバイスは続いて、デバイス上のGPSセンサから情報を取得し、その情報を、予測されたコンテンツアイテムとしての提示のために準備する(ユーザの現在地を含む地図オブジェクトがリモートユーザに送信される、図23Dを参照されたい)。別の実施例として、ユーザが新たな電子メールをタイプする時の、フレーズ「~に居ます(I'm at)」を含むテキストコンテンツの一部に基づいて(図23Aに示すように)、デバイスは、その一部が位置に関連すると判定し、デバイスは続いて、デバイス上のGPSセンサから情報を取得し、その情報を、予測されたコンテンツアイテムとして提示するために準備する(ユーザの現在地を含む地図オブジェクトが、ユーザが準備している新たな電子メール内に含まれる、図23Bを参照されたい)。追加実施例を、図23E(例えば、デバイスは、ユーザが「住所は~(My address is)」とタイプすることに基づいて、テキストコンテンツの一部が、位置に関する情報を含むと判定する)、及び、23F(例えば、デバイスは、テキスト「レストランはどこ?(Where's the restaurant)」を含むメッセージを受信するユーザに基づいて、テキストコンテンツの一部が、位置に関する情報を含むと判定する)に示す。図23Fに示すように、一部の実施形態では、デバイスは、異なるアプリケーションでのユーザの以前の相互作用に基づいて、位置情報を取得する(例えば、ユーザは、クラウドに基づくレビューを提供するアプリケーションなどの、異なるアプリケーションにてレストランアプリケーションを検索し、従って、情報の取得に位置センサは使われない)。2つの異なるアプリケーションの間での情報のシェアに関する追加詳細は、方法2400、2500、及び2800に関連して以下に詳述し、簡潔にするために、それら詳細は本明細書では繰り返さない。
(ii)について、テキストコンテンツの一部が、連絡先に関連すると判定すると、電子デバイスは、電子デバイス上で、テキストコンテンツの一部に関連する連絡先情報の検索を行い、検索を通して取り出された、少なくとも1つの連絡先に関連付けられた情報を、予測されたコンテンツアイテムとして表示するために準備する(2291)。例えば、テキストコンテンツの一部は「ジョンの住所は?(What's John's addr?)」(図23G)、「ジョンの住所は(John's address is)」(図23H)、又は「私の電話番号は(My phone number is)」(図23K)、若しくは「~に電話してください(Call me at)」(図23L)であり、デバイスは、連絡先アプリケーションに記憶された連絡先情報を分析し、その一部への応答となることが予測された連絡先情報を取り出し、その取り出した連絡先情報を、予測されたコンテンツアイテムとして提供する。
(iii)について、テキストコンテンツの一部が、イベントに関連すると判定すると、電子デバイスは、電子デバイス上で、テキストコンテンツの一部に関連するイベント情報の新たな検索を行い、新たな検索を通して取り出された、少なくとも1つのイベントに少なくとも部分的に基づく情報を、予測されたコンテンツアイテムとして表示するために準備する(2293)。一部の実施形態では、少なくとも1つのイベントに少なくとも部分的に基づく情報は、イベント詳細(例えば、イベント時刻、期間、場所)、又は、イベント詳細から導かれた情報(例えば、図23I及び23Jに示すように、新たなイベントをスケジューリングするためのユーザの可用性)であり得る。例えば、テキストコンテンツの一部は、「どの会議室がミーティングに使用されていますか?(What conference room is the meeting in?)」又は「会議が始まる時間は何時ですか?(What time does the conference start at?)」であり、デバイスは、カレンダーアプリケーションに記憶されたイベントに関連付けられた情報を分析し、質問への応答となる情報を取り出し、その取り出した情報を、予測されたコンテンツアイテムとして提供する。
上述するように、電子デバイスは、アプリケーション内にて、予測されたコンテンツアイテムを含むアフォーダンスを表示する(2294)(例えば、図23Aにて、「現在地を追加する(Add Current Location)」に対するアフォーダンスが、提案部分2307内に示され、図23Cにて、「私の現在地を送信する(Send My Current Location)」に対するアフォーダンスが、提案部分2309内に示され、その他、提案部分2307又は2309内に示す他のアフォーダンス例については、図23E、23F、23G、23H、23I、23J、23K、23L、23M、23N、及び23Oに示す)。電子デバイスはまた、タッチ感知面を介して、アフォーダンスの選択を検出し(2295)、この選択を検出したことに応じて、デバイスは、ディスプレイ上に、予測されたコンテンツアイテムに関連付けられた情報を、テキストコンテンツに隣接して表示する(2297)(例えば、地図オブジェクトは、ユーザの現在地と共に、「現在地を追加する(Add Current Location)」に対するアフォーダンスの選択に応じて表示される(図23B))。
一部の実施形態では、テキストコンテンツの一部は、テキストコンテンツの一部を含むユーザインタフェースオブジェクトを選択するユーザ入力に応じて特定される(2287)。例えば、アプリケーションはメッセージアプリケーションであり、ユーザインタフェースオブジェクトは、メッセージアプリケーション内に表示された会話におけるメッセージ吹き出しである。このようにして、ユーザは、アプリケーション内に表示された特定の部分に対する、予測されたコンテンツアイテムを取り出すことができ、特定の部分に返答することをもし忘れても、その特定の部分に対する予測されたコンテンツアイテムを容易に閲覧するために、その部分に関連付けられたユーザインタフェースオブジェクトを選択できるようになる。具体的な実施例として、図23Mを参照して、テキストコンテンツの一部は、初期的に、直近に表示されたテキストコンテンツ(例えば、「ネオプラズムの種類は?(What kind of neoplasm?)」)であり、従って、提案部分2309は、その部分(例えば、「良性(benign)」及び「悪性(malignant)」)への応答である、テキスト提案に対するアフォーダンスを含む。デバイスは続いて、第2のユーザインタフェースオブジェクトの選択(例えば、図23Mの入力2350)を検出する(例えば、直近の表示テキストコンテンツの前に受信したテキストコンテンツ「ところで、どこに居るの?(btw, where are you?)」を含む第2のメッセージ吹き出し)。この選択を検出したことに応じて、デバイスは、予測されたコンテンツアイテムを伴うアフォーダンスの表示を停止し、第2のユーザインタフェースオブジェクトに関連付けられたテキストコンテンツが、位置、連絡先、又はイベントに関連すると判定し(この実施例では、「どこに居るの?(where are you?)」は、位置に関連するとデバイスは判定する)、この判定することに従って、デバイスは、アプリケーション内に新たな、予測されたコンテンツアイテムを表示する(例えば、図23Nの、提案部分2309内の「私の現在地を送信する(Send my current location)」を含むアフォーダンス)(2299)。
先行する段落に説明するように、一部の実施形態では、デバイスはまた、テキストコンテンツの一部が、電子デバイス上で利用可能な、他の種類の(連絡先、位置、及びイベントに加えて)情報に関連するか否かを判定できる。例えば、デバイスは、電子メールの交換にてユーザにより話された情報、ユーザがオーサリングする文書若しくは一部の他のユーザからユーザが受信した文書内の情報、又は、他の知識ソースからの情報、に関連する質問(例えば、ネオプラズムの種類は(what kind of neoplasm))を検出できる。更に、一部の実施形態では、電子デバイスは、アプリケーション内のテキストコンテンツの特定の部分に文書が対応することを判定する(例えば、図23Oに示すように、2つの異なる文書が、質問「ネオプラズムについてご存知ですか?(Do you know about neoplasms?)」に対応しているものとして提案される)。一部の実施形態では、2つの異なる文書のいずれかの選択に応じて、デバイスは、対応する文書を開いてよく、アプリケーションに戻る前に、その文書をユーザがレビューできるようにしてよい。
一部の実施形態では、提案部分内に表示され、予測されたコンテンツアイテムを含むアフォーダンスが、アプリケーション内のバーチャルキーボードに隣接して(例えば、上に)表示される。例えば、図23Aに示すように、「現在地を追加する(Add Current Location)」に対するアフォーダンスが、バーチャルキーボードの上方の提案部分2307内に表示される。
一部の実施形態では、予測されたコンテンツアイテムに関連付けられ、テキストコンテンツに隣接して表示される情報は、入力受け取りフィールド内に表示され、入力受け取りフィールドは、バーチャルキーボードにて受け取ったタイピング入力を表示するフィールドである(例えば、メモアプリケーションに示すような文書、又は、フィールド2305がバーチャルキーボードの上方にある、図23Dの入力受け取りフィールド2305に対して示すように、メッセージアプリケーション内などの、バーチャルキーボードの上方に表示される入力受け取りフィールド)。
一部の実施形態では、動作2283を判定することは、アプリケーションにより受信したそのままの(例えば、ユーザがタイプするそのままの、又は、メッセージがアプリケーションにより受信されるそのままの)テキストコンテンツを構文解析し、連絡先、イベント、及び/又は位置に関連すると既知の、記憶されたパターンを検出することを含む。一部の実施形態では、記憶されたパターンの検出を実行するために、ニューラルネットワークがトレーニングされ、及び/又は、有限状態文法が検出のために使用され、続いて、検出後、電子デバイスは、システムレベルサービスに情報を送り(例えば、以下のセクション9に説明する、1つ以上の予測モデルを使用して)、適切な、予測されたコンテンツアイテムを取り出す。
図22Cでの動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法2200及び2900)に関連して本明細書で説明される、他のプロセスの詳細もまた、図22Cに関連して上述された方法2280と類似の方式で適用可能であることに留意されたい。例えば、方法2280を参照して先述した動作は、任意選択的に、本明細書で説明する他の方法(例えば、方法2200及び2900)を参照して本記載の特性の1つ以上を有する、又は、動作の1つ以上を使用する。一部の実施形態では、方法2280と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図24A~24Bは、一部の実施形態に係る、アプリケーションを、異なるアプリケーション内でユーザにより以前に閲覧された情報で、前もって先見的にポピュレートする方法を示すフローチャートである。図25A~25Jは、図24A~24Bの方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法2400は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法2400は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法2400はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法2400の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法2400の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法2400は、タッチ感知ディスプレイを備える電子デバイス上にて、アプリケーションを、異なるアプリケーションにてユーザにより以前に閲覧された情報で、前もって先見的にポピュレートする直感的な方法を提供する。この方法は、アプリケーションを、第1のアプリケーションから、第2の、異なるアプリケーションにて使用するための、ユーザからの入力の数を減らし、従って、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスの場合、アプリケーションを、異なるアプリケーションにてユーザにより以前に閲覧された情報で、前もって先見的にポピュレートすることは、電力を節約し、バッテリを充電する間隔を延長する。
図24Aに示すように、第1のアプリケーションを表示する間に、電子デバイスは、第1のアプリケーションにてユーザにより閲覧された第1の物理的位置を特定する情報を取得する(2401)。例えば、第1のアプリケーションは、タッチ感知ディスプレイ上に現在表示されているフォアグランドアプリケーションである(例えば、第1のアプリケーションは、図25Aに示すような、クラウドに基づくレビューを提供するアプリケーションである)。一部の実施形態では、取得することは、位置データについての情報を電子デバイスのオペレーティングシステム構成要素に送信する第1のアプリケーションを含む、又は、取得することは、情報を取得するためのアクセシビリティ機能を使用することを含む。情報を取得するためのアクセシビリティ機能の使用に関する詳細は、先に提供されている(例えば、方法1800に関連して先に提供される説明、特に、動作1807及び1809に関連して先に提供されるそれら、を参照されたい)。
一部の実施形態では、電子デバイスは、第1のアプリケーションを終了する(2403)(例えば、ユーザは、ホームハードウェアボタンをタップして、第1のアプリケーションの終了と、ホームスクリーンの閲覧と、を要求する、又は、ユーザは、ホームハードウェアボタンをダブルタップして、第1のアプリケーションの終了と、アプリケーション切り替えユーザインタフェースの閲覧と、を要求する)。第1のアプリケーションの終了後、電子デバイスは、第1のアプリケーションとは別個の第2のアプリケーションを開くことの要求をユーザから受信する(2405)。一部の実施形態では、第2のアプリケーションを開くことの要求を受信することは、第1のアプリケーションの終了後、第2のアプリケーションに対するアフォーダンス上の入力を検出すること(2407)を含む(つまり、この要求は、第1のアプリケーション内のリンクをクリックすることに対応しない)。例えば、ユーザは、ホームスクリーンから第2のアプリケーションを選択する(例えば、図25Bにて、ユーザは、ホームスクリーン上に表示されたライドシェアアプリケーションのアイコン(アフォーダンス)上をタップする)。一部の実施形態では、ホームスクリーンは、電子デバイス上で利用可能なアプリケーションを呼び出すためのアイコンを含む、オペレーティングシステムのシステムレベル構成要素である。
別の実施例として、ユーザは、app切り替えユーザインタフェースから、第2のアプリケーションを選択する(例えば、図25Cにて、ユーザは、app切り替えユーザインタフェース内に含まれるライドシェアアプリケーションの表現をタップする)。この別の実施例にて、より具体的には、入力を検出することは、物理ホームボタン(例えば、ホーム204)にてダブルタップを検出すること、ダブルタップを検出したことに応じて、アプリケーション切り替えユーザインタフェースを表示すること、及び、アプリケーション切り替えユーザインタフェース内からアフォーダンスの選択を検出することを含む(2411)。
動作2405に関する1つの追加的実施例として、選択されると、デバイスに第2のアプリケーションを開かせるユーザインタフェースオブジェクトを、ユーザは選択する(例えば、図25B及び25Cのアフォーダンス2503)。一部の実施形態では、第1のアプリケーションにていずれの入力を受信することなく、この要求は受信される(例えば、この要求は、第1のアプリケーション内のリンク又はボタンをクリックすることを含まない)。
この要求を受信したことに応じて、電子デバイスは、第2のアプリケーションが、地理的位置情報を受け入れ可能であるか否かを判定する(2413)。一部の実施形態では、この判定動作2413は、以下のうちの1つ以上を含む(2415)。(i)第2のアプリケーションが、地理的位置データを受け入れて処理することが可能な入力受け取りフィールドを含むと判定すること、(ii)第2のアプリケーションが、地理的位置情報を地図上に表示可能であると判定すること、(iii)第2のアプリケーションが、経路案内を促進するために、地理的位置情報を使用可能であると判定すること、及び(iv)第2のアプリケーションが、トランスポーテーションサービスを特定し、提供するために、地理的位置情報を使用可能であると判定すること。一部の実施形態では、第2のアプリケーションが、地理的位置情報を受け入れ可能であると判定することは、第2のアプリケーションが、地理的位置データを受け入れて処理することが可能な入力受け取りフィールドを含むと判定することを含み、入力受け取りフィールドは、第2のアプリケーション内に表示される地図内を検索できる検索ボックスである。例えば、第2のアプリケーションは、そのような入力受け取りフィールドを含むライドシェアアプリケーションである(図25Eに示すように、ライドシェアアプリケーション例は、表示された地図内を検索できる入力受け取りフィールド2507を含む)、又は、第2のアプリケーションはまた、そのような入力受け取りフィールドを含む地図アプリケーションである(図25Fに示すように)。
図24Bに戻ると、一部の実施形態では、この要求を受信したことに応じて、電子デバイスは、ユーザに対するアプリケーションの使用履歴に基づいて、第2のアプリケーションが、第1のアプリケーションと関連する(例えば、第1のアプリケーションを開いた後に、閾値回数開かれた)か否かを判定し、また、第2のアプリケーションが、位置データを受け入れて処理することが可能であると判定する(上述するように)。つまり、電子デバイスは、一部の実施形態では、第2のアプリケーションが、位置データを受け入れるフィールドを有し、第1及び第2のアプリケーションが、第1のアプリケーションを開いた後に、第2のアプリケーションがユーザによりしばしば開かれることにより接続されることの両方を判定する。一部の実施形態では、第2のアプリケーションを提示する前に、電子デバイスは、第1の物理的位置を特定する情報へのアクセスを、第2のアプリケーションに提供(2417)し、このアクセスが提供される前には、第2のアプリケーションは、第1の物理的位置を特定する情報へのアクセスを有しない。例えば、第2のアプリケーションが以前に、ユーザが第1のアプリケーション内で何を閲覧したかについての情報へのアクセスを有さず、使用目的が制限された、第1の地理的位置を特定する情報へのアクセスがたったいま提供され、入力受け取りフィールドを第2のアプリケーション内にポピュレートする。このようにして、デバイスは、ユーザがしばしば第1及び第2のアプリケーションを共に使用することを知るため、ユーザからのいずれの入力の必要なく、デバイスは、テキストエントリフィールドを先見的にポピュレートできる(第1及び第2のappsとの間の接続を確立するために使用されるそれらの入力以外)。
一部の実施形態では、この要求を受信したことに応じて、かつ第2のアプリケーションが、地理的位置情報を受け入れ可能であるとの判定(動作2413及び2415に関連して上述する)に従って、電子デバイスは、第2のアプリケーションを提示し、第2のアプリケーションを提示することは、第2のアプリケーションを、第1の物理的位置を特定する情報に少なくとも部分的に基づく情報でポピュレートすることを含む。一部の実施形態では、第2のアプリケーションをポピュレートすることは、第1の物理的位置を特定する情報に少なくとも部分的に基づく情報を含むユーザインタフェースオブジェクトを表示することを含む(2421)。例えば、図25Dに示すように、ユーザインタフェースオブジェクト2505は、第1の物理的位置を特定する情報に少なくとも部分的に基づく情報を含む(例えば、図25Aに示すように、第1のアプリケーション内でユーザにより閲覧されたレストランの住所)。一部の実施形態では、ユーザインタフェースオブジェクト2505は、レストラン名を含んでよい(例えば、住所の代わりに、又はこれに加えて、「Gary Danko」、又は、UIオブジェクト2505は、レストランの位置についての他の関連情報を含んでよい)。一部の実施形態では、ユーザインタフェースオブジェクトは、第1のアプリケーション内で第1の物理的位置が最近閲覧されたことをユーザに知らせるテキスト説明を含む(2423)(例えば、図25Dに示すように、第1のアプリケーションに関連付けられたアイコンが、ユーザインタフェースオブジェクト2505内に含まれる)。
一部の実施形態では、このユーザインタフェースオブジェクトは、第2のアプリケーション内に表示された地図(例えば、図25Dに示す地図)であり、第2のアプリケーションをポピュレートすることは、第1の物理的位置の識別子を含むよう地図をポピュレートすることを含む(2425)。一部の実施形態では、電子デバイスは、第1の物理的位置の名称、第1の物理的位置の電話番号、第1の物理的位置の住所、又は、第1の物理的位置を特定する(及び、第1の物理的位置についての検索を実行することができる)一部の他の情報を使用して特定の地理的位置を探し、その特定の地理的位置が、第2のアプリケーション内にポピュレートされる。一部の実施形態では、第2のアプリケーションはバーチャルキーボードと共に提示され、ユーザインタフェースオブジェクトはバーチャルキーボードの上方に表示される(2427)(例えば、図25Dに示すように、ユーザインタフェースオブジェクト2505は、バーチャルキーボードの上方に表示される)。
一部の実施形態では、情報を取得することは、第2の物理的位置についての情報を取得することを含み(2429)、ユーザインタフェースオブジェクトを表示することは、そのユーザインタフェースオブジェクトを、第2の物理的位置についての情報と共に表示することを含む。(例えば、地図は、第1及び第2の物理的位置の両方に対する識別子を含む)、及び/又は、アフォーダンスは、第1及び第2の物理的位置についての情報を含む。一部の実施形態では、要求(例えば、動作2405)を受信することは、第2のアプリケーションを、第1又は第2の物理的位置の1つについての情報と共に開くことの要求を受信することを含む(例えば、図25G及び25Hに示すようなユーザインタフェースオブジェクト2505が示され、ユーザは、第1のアプリケーションにて以前に閲覧された物理的位置のいずれを選択できる)。
一部の実施形態では、地図アプリケーション内のユーザの検索がまた、物理的位置についての情報を取得するために使用されてよい(例えば、上述する第1及び第2の物理的位置)。図25Fに示すように、ユーザは、位置を検索してよく、結果2511A、2511B、2511C、及び2511Dを含む、多くの検索結果を受信してよい。一部の実施形態では、ユーザは、図25Fに示すように、2511Aなどの、結果の1つを選択でき、その位置が続いて、地図上で強調表示される。検索を行った後、ユーザは、検索結果の一部であった物理的位置を使用するためのオプションが提示されてよい(例えば、図25Gに示すように、ユーザインタフェースオブジェクト2505は、物理的位置の少なくとも2つに基づく情報を、それらの位置のいずれへのライドを取得するために使用するためのオプションが提示される)。一部の実施形態では、図25Gのユーザインタフェースオブジェクト2505はまた、アプリケーション切り替えユーザインタフェースを介して利用可能である(図25Hに示すように)。一部の実施形態では、ユーザインタフェースオブジェクト2505に示す物理的位置の1つの選択を受信したことに応じて(図25G又は25Hのapp切り替え又はホームスクリーンのいずれから)、ユーザは、適切なアプリケーション(例えば、図25Iのライドシェアアプリケーション)に導かれ、そのアプリケーションが、選択された物理的位置に基づく情報でポピュレートされる(例えば、ユーザインタフェースオブジェクト2505は、図25Iに示され、これは住所を含む)。
位置データをシェアすることは、上の方法2400の説明において、主な実施例として使用されるが、しかし、上述する同じ方法及び技術もまた、2つの異なるアプリケーションとの間で他の種類のデータをシェアすることにも適用する。例えば、ソーシャルネットワークアプリケーション(例えば、フェイスブック)とソーシャルシェアリングアプリケーション(例えば、ツイッター)との間で検索クエリをシェアすることはまた、方法2400に関連して上述する技術を使用することにより促進される。例えば、フェイスブック内である名称をユーザが検索した後、ユーザは、その名称をツイッターでも検索するための提案が提供される。別の実施例として、来るミーティングのための出席者リストが、カレンダーと電子メールアプリケーションとの間でシェアされ得、ユーザが来るミーティングをカレンダーアプリケーション内にて閲覧し、続いて、電子メールアプリケーションの使用に切り替えて「作成(compose)」ボタンを押すと、新たな電子メールのための受領者リストが、来るミーティングのための出席者のリストを含むようポピュレートされるようになる。
図24A~24Bでの動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法2600及び2700)に関連して本明細書で説明される、他のプロセスの詳細もまた、図24A~24Bに関連して上述された方法2400と類似の方式で適用可能であることに留意されたい。例えば、方法2400を参照して先述した動作は、任意選択的に、本明細書で説明する他の方法(例えば、方法2600及び2700)を参照して本記載の動作の特性の1つ以上を有する、又は、これらの動作を組み込む。一部の実施形態では、方法2400と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図26A~26Bは、一部の実施形態に係る、第2のアプリケーションでの使用のために、第1のアプリケーション内でユーザにより以前に閲覧された情報を先見的に提案する方法を示すフローチャートである。図25A~25Jは、図26A~26Bの方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法2600は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法2600は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法2600はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法2600の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法2600の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法2600は、タッチ感知ディスプレイを備える電子デバイス上の第2のアプリケーションにて使用するために、第1のアプリケーションにてユーザにより以前に閲覧された情報を先見的に提案する直感的な方法を提供する。この方法は、ユーザにとって有益な情報を、その情報を取り出するために多くの入力を実行することをユーザに要求することなく再度呼び出すことにより、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスの場合、第2のアプリケーションにて使用するために、第1のアプリケーションにてユーザにより以前に閲覧された情報を先見的に提案することは、電力を節約し、バッテリを充電する間隔を延長する。
図26Aに示すように、電子デバイスは、第1のアプリケーションにてユーザにより閲覧された第1の物理的位置を特定する情報を取得する(2601)。動作2401に関連して上述する詳細は、同様に、動作2601に適用される。電子デバイスは、第1の入力を検出する(2603)。一部の実施形態では、第1の入力は、アプリケーション切り替えユーザインタフェースを開くことの要求に対応する(2605)(例えば、第1の入力は、電子デバイスの物理ホームボタン上のダブルタップである)。一部の実施形態では、第1の入力は、電子デバイスのホームスクリーンを開くことの要求に対応する(2607)。(例えば、第1の入力は、電子デバイスの物理ホームボタン上のシングルタップである)。一部の実施形態では、第1の入力は、デバイスに、少なくとも部分的に、アプリケーションを終了又は切り替えさせる入力である。
第1の入力を検出したことに応じて、電子デバイスは、地理的位置情報を受け入れ可能な第2のアプリケーションを特定する(2609)。一部の実施形態では、地理的位置情報を受け入れ可能な第2のアプリケーションを特定することは、以下のうちの1つ以上を含む(2611)。(i)第2のアプリケーションが、地理的位置データを受け入れて処理することが可能な入力受け取りフィールドを含むと判定すること、(ii)第2のアプリケーションが、地理的位置情報を地図上に表示可能であると判定すること、(iii)第2のアプリケーションが、経路案内を促進するために、地理的位置情報を使用可能であると判定すること、及び(iv)第2のアプリケーションが、トランスポーテーションサービスを特定し、提供するために、地理的位置情報を使用可能であると判定すること。一部の実施形態では、第2のアプリケーションが、地理的位置情報を受け入れ可能であると特定することは、第2のアプリケーションが、地理的位置データを受け入れて処理することが可能な入力受け取りフィールドを含むと判定することを含み、入力受け取りフィールドは、第2のアプリケーション内に表示される地図内を検索できる検索ボックスである。
第1の入力を検出したことに応じて、(第2のアプリケーションを特定することに加えて)、電子デバイスは、ディスプレイの少なくとも一部上に、第1のアプリケーションとは別個のアフォーダンスを、第2のアプリケーションを第1の物理的位置についての情報と共に開く提案と共に提示する(2613)。例えば、第1の入力が、ホームスクリーンを開くことの要求に対応する場合、続いて電子デバイスは、ホームスクリーンの一部上に提示する(2617)(例えば、図25B及び25Gに示すように、アフォーダンス2505が、ホームスクリーンの上部に表示される)。別の実施例として、第1の入力が、アプリケーション切り替えユーザインタフェースを開くことの要求に対応する場合、続いて電子デバイスは、アプリケーション切り替えユーザインタフェース内にアフォーダンスを提示する(2615)(例えば、アフォーダンスは、図25H内のアフォーダンス2505に対して示すように、電子デバイス上で実行されているアプリケーションの表現の下方に位置するディスプレイの一領域内に提示される)。一部の実施形態では、提案は、第2のアプリケーションに関連付けられた種類に特有のテキスト説明を含む(2619)(例えば、第1の物理的位置を特定する情報を使用して第2のアプリケーション内にて実行されるアクションの説明、又は、第2のアプリケーション内で検索を行うことの説明のいずれ、例えば、位置Xまでのライドを希望しますか?(do you want a ride to location X?)、と、住所Xを探しますか?(do you want to look up address X?))。一部の実施形態では、第2のアプリケーションに関連付けられた種類は、第2のアプリケーションを介して利用可能な機能に基づいて判定される(例えば、第2のアプリケーションが使用する位置情報に基づいて、第2のアプリケーションが、位置情報をどのように使用するか、及び、どのような機能が利用可能であるか)。
図25Bに戻ると、電子デバイスは、アフォーダンスにて第2の入力を検出する(2621)。アフォーダンスにて第2の入力を検出したことに応じて、電子デバイスは第2のアプリケーションを開き、第1の物理的位置を特定する情報に少なくとも部分的に基づく情報を含むように、第2のアプリケーションをポピュレートする(2623)。動作2627、2629、及び2631は、方法2400に関連して上述する動作2423、2425、及び2427にそれぞれ対応し、上記説明は同様に、方法2600に適用する(簡潔にするために、これらの詳細は本明細書では繰り返さない)。
方法2400と比較して、第2のアプリケーションを、第1の物理的位置についての情報と共に開く提案をユーザに提供する前には、方法2600は、第2のアプリケーションを開くユーザからの特定の要求を受信しない。このようにして、方法2400及び2600(及び、それらの方法のそれぞれからの一部の処理ステップを使用するそれらの組み合わせ)の両方に関連付けられた動作を実行することにより、電子デバイスは、ユーザが、地理的位置情報を受け入れ可能なアプリケーションを開く前又は後のいずれに、位置データを予測的に使用するための効率的なユーザエクスペリエンスを提供できる。更に、第2のアプリケーションが、地理的位置情報を受け入れ可能であるとの判定(方法2600にて)は、第2のアプリケーションが開かれる前にも行われ、このようにして、アプリケーション切り替えユーザインタフェースは、appを、以前に閲覧された位置情報と共に開くことのみを、appが位置データを受け入れ可能であることが既知の場合に、提案する。簡潔にするために、方法2400に関する一部の詳細は、方法2600に対して本明細書では繰り返していないが、そのような詳細は依然として、方法2600に適用可能である(例えば、第1及び第2のアプリケーションは、位置データを直接シェアしてよいように)。
図26A~26Bでの動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法2400及び2700)に関連して本明細書で説明される、他のプロセスの詳細もまた、図26A~26Bに関連して上述された方法2600と類似の方式で適用可能であることに留意されたい。例えば、方法2600を参照して先述した動作は、任意選択的に、本明細書で説明する他の方法(例えば、方法2400及び2700)を参照して本記載の動作の特性の1つ以上を有する、又は、これらの動作を使用する。一部の実施形態では、方法2600と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図27は、一部の実施形態に係る、車両での経路案内のための目的地として使用するための物理的位置を先見的に提案する方法を示すフローチャートである。図28は、図27の方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法2700は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法2700は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法2700はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法2700の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法2700の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法2700は、タッチ感知ディスプレイを備える電子デバイス上にて、車両での経路案内のための目的地として使用するための物理的位置を先見的に提案する直感的な方法を提供する。この方法は、経路案内のための物理的位置を使用するために必要な入力数を減らす(又は、無くす)ことにより、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスの場合、車両での経路案内のための目的地として使用するための物理的位置を先見的に提案することは、電力を節約し、バッテリを充電する間隔を延長する。
図27に示すように、電子デバイスは、電子デバイス上で実行されている第1のアプリケーションにてユーザにより閲覧された第1の物理的位置を特定する情報を取得する(2701)。電子デバイスは、ユーザが車に乗り込んだと判定する(2703)。一部の実施形態では、ユーザが車に乗り込んだと判定することは、電子デバイスが、車両との通信リンクを確立したことを検出することを含む(2705)。他の実施形態では、ユーザが車に乗り込んだと判定することは、ユーザが、車両に対する、記憶された位置の所定の距離内に居ることを検出することを含み、ユーザが、たとえ車に乗り込む前であっても、第1の地理的位置を、経路案内のための目的地として使用することを促されるようにしてよい。一部の実施形態では、方法1400に関連して上述する他の判定のいずれもまた、ユーザが車に乗り込んだことを確立するために使用されてよい。
ユーザが車に乗り込んだと判定したことに応じて、電子デバイスは、第1の物理的位置を、経路案内のための目的地として使用するためのプロンプトを(例えば、図28に示すユーザインタフェースオブジェクト2801などの、デバイス上のユーザインタフェースオブジェクト内にて、又は、シリ(Siri)からのプロンプトを介して、若しくはそれらの両方により)ユーザに提供する(2707)。プロンプトを提供したことに応じて、電子デバイスは、第1の物理的位置を経路案内のための目的地として使用する命令をユーザから受信する(2709)。
電子デバイスは続いて、第1の物理的位置への経路案内を促進する(2711)。一部の実施形態では、経路案内を促進することは、電子デバイスのディスプレイを介して経路案内を提供することを含む(2713)。一部の実施形態では、経路案内を促進することは、第1の物理的位置を特定する情報を車両に送信することを含む(2715)。一部の実施形態では、経路案内を促進することは、電子デバイスと通信するオーディオシステムを介して経路案内を提供することを含む(2717)(例えば、車両のスピーカ又はデバイス自体の内部スピーカ)。一部の実施形態では、動作2713、2715、及び2717のうちの2つ以上が、ユーザが正確に経路案内に従うことを確かにするために実行される。
一部の実施形態では、電子デバイスは、メッセージが、第2の物理的位置を特定する情報を含むことを検出することを含む、電子デバイスがメッセージ(音声メール、テキスト、電子メール、又は他のソーシャルメディアメッセージ)を受信したことを検出する(2719)(一部の実施形態では、方法1800及び2000に関連して上述する技術のうちの1つ以上が、検出を実行するために使用される)。一部の実施形態では、メッセージが第2の物理的位置を特定する情報を含むことを検出することは、電子デバイス上で利用可能なバーチャルアシスタントが、電子デバイスと通信するオーディオシステムを介して、ユーザへのメッセージを読み上げている間に、検出を実行することを含む(例えば、シリ(Siri)が、デバイスのスピーカを通して、又は、車両のオーディオシステムを通して、メッセージを読み上げている)。
一部の実施形態では、検出したことに応じて、電子デバイスは、第2の物理的位置を、経路案内のための新たな目的地として使用するという新たなプロンプトをユーザに提供する(2723)(例えば、第2の物理的位置は、ユーザが運転中に変更されたレストランの場所などの、新たなミーティングポイントに対応し得る一方で、他の実施形態では、第2の物理的位置は、ユーザが、第1の物理的位置に到着した後まで特定されない)。一部の実施形態では、第2の物理的位置を、新たな目的地として使用するための、ユーザからの命令を受信したことに応じて、電子デバイスは、第2の物理的位置への経路案内を促進する(2725)(例えば、動作2711、2713、2715、及び2717に関連して上述する促進技術のうちの1つ以上を使用して)。
図27での動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法2400及び2600)に関連して本明細書で説明される、他のプロセスの詳細もまた、図27に関連して上述された方法2700と類似の方式で適用可能であることに留意されたい。例えば、方法2700を参照して先述した動作は、任意選択的に、本明細書で説明する他の方法(例えば、方法2400及び2600)を参照して本記載の動作の特性の1つ以上を有する、又は、これらの動作を使用する。一部の実施形態では、方法2700と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図29は、一部の実施形態に係る、貼り付けアクションを先見的に提案する方法を示すフローチャートである。図30A~30Dは、図29の方法及び/又はプロセスを示すために使用される。以下の実施例のうちの一部は、(タッチ感知面とディスプレイとが組み合わされている)タッチ感知ディスプレイ上の入力を参照して説明されるが、一部の実施形態では、デバイスは、図1Dに示すように、ディスプレイ194とは別個のタッチ感知面195上で入力を検出する。
一部の実施形態では、方法2900は、電子デバイス(例えば、図1EのコンピューティングデバイスA~Dのいずれの1つに従って構成された、図1Aのポータブル多機能デバイス100)及び/又はその電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)により実行される。一部の実施形態では、方法2900は、非一時的コンピュータ可読記憶媒体に記憶される命令であって、デバイス100の1つ以上のプロセッサ122などの、デバイスの1つ以上のプロセッサにより実行される命令により管理される(図1A)。説明の簡略化のため、以下では、方法2900はデバイス100により実行されるものとして説明する。一部の実施形態では、図1Aを参照して、方法2900の動作は、少なくとも部分的に、以下により、又は以下を使用して実行される。プロアクティブモジュール(例えば、プロアクティブモジュール163)及びその構成要素、接触/動きモジュール(例えば、接触/動きモジュール130)、グラフィックモジュール(例えば、グラフィックモジュール132)、及びタッチ感知ディスプレイ(例えば、タッチ感知ディスプレイシステム112)。方法2900の一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
以下に説明するように、方法2900は、タッチ感知ディスプレイを備える電子デバイス上にて、貼り付けアクションを先見的に提案する直感的な方法を提供する。この方法は、貼り付けアクションを実行するために要求されるユーザからの入力を減らし、従って、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスの場合、貼り付けアクションを先見的に提案することは、電力を節約し、バッテリを充電する間隔を延長する。
図29に示すように、電子デバイスは、第1のアプリケーション内にコンテンツを提示する(2901)(例えば、図30Aに示すように、デバイスは、リモートユーザからのメッセージ「ビッグタイムバンドをチェックしてみて、本当に良いから!(check out big time band, they are really good!)」を含む、メッセージアプリケーションに対応するコンテンツを提示する)。一部の実施形態では、電子デバイスは、コンテンツの少なくとも一部をコピーすることの要求を受信する(2903)(例えば、ユーザは、テキスト「ビッグタイムバンド(big time band)」をコピーする)。一部の実施形態では、コンテンツの一部をコピーすることの要求は全く受信されない(つまり、ユーザは、コンテンツのいずれかのコピーすることを要求することなく、第1のアプリケーション内のコンテンツを閲覧するのみである)。
電子デバイスは、第1のアプリケーションとは別個の、入力受け取りフィールドを含む第2のアプリケーションを開くことの要求をユーザから受信する(2905)(例えば、図30Cの入力受け取りフィールド3011)。例えば、図30Bに示すように、ユーザは、第2のアプリケーション(例えば、図30Bに示す実施例内のブラウザアプリケーション)のアイコン上で、第2のアプリケーションを開くことの要求に対応する入力(例えば、接触3003)を提供する。図30Cに示すように、この要求を受信したことに応じて、電子デバイスは、入力受け取りフィールドを有する第2のアプリケーションを提示する(2907)(例えば、図30Cの入力受け取りフィールド3011)。
一部の実施形態では、電子デバイスは、入力受け取りフィールドを、コンテンツの一部を受け入れ可能なフィールドとして識別する(2909)。一部の実施形態では、識別することは、入力受け取りフィールドの選択を検出したことに応じて実行される(2911)(例えば、ユーザが、図30Cの入力受け取りフィールド3011内でタップする)。別の方法で説明すると、ユーザは、第1の入力受け取りフィールド内にフォーカスを置き、電子デバイスは続いて、第1の入力受け取りフィールドが、先見的にコピーされたコンテンツの一部を受け入れ可能であるか否かを判定する。
一部の実施形態では、入力受け取りフィールドにていずれのユーザ入力を受け取る前に、電子デバイスは、選択可能なユーザインタフェースオブジェクト(又は、図30Cの提案部分3007に示すそれらなどの、1つを超える選択可能なユーザインタフェースオブジェクト)を提供し、ユーザが、コンテンツの少なくとも一部を入力受け取りフィールド内に貼り付けできるようにする(2913)。例えば、第2のアプリケーション内のバーチャルキーボードの実質的に上方に表示される提案部分3007は、コンテンツの一部に基づく2つの提案されたアイテムでポピュレートされる(例えば、「big time band」及び「big time band videos」)。選択可能なユーザインタフェースオブジェクト(例えば、図30Cの入力3009)の選択を検出したことに応じて、電子デバイスは、コンテンツの一部を、入力受け取りフィールド内に貼り付けする(2915)(例えば、図30Dに示すように、「big time band videos」が、入力受け取りフィールド3011内に貼り付けされる)。この先見的な貼り付け機能を提供することにより、ユーザは、第2のアプリケーションを終了し、第1のアプリケーション再び開き、第1のアプリケーションからその一部をコピーし、第2のアプリケーションを再び開き、続いて、第2のアプリケーション内で貼り付けアクションを実行する必要がなくなる。その代わりに、ユーザは単に、ユーザが貼り付けしたいコンテンツの一部に関連付けられた、選択可能なユーザインタフェースオブジェクトを選択し、従って、同じ貼り付け機能を実行するための追加入力の数を大幅に減らし、結果として、電子デバイスのためのより効率的で、エネルギを節約するユーザインタフェースとなる。
一部の実施形態では、コンテンツの一部は、画像又はテキストコンテンツ、若しくはテキストコンテンツ及び画像に対応する(2915)。このようにして、電子デバイスは、第2のアプリケーションにより受け入れられ得るデータに応じて、様々なコンテンツタイプに対する貼り付けアクションを先見的に提案できる。
一部の実施形態では、選択可能なユーザインタフェースオブジェクトは、コンテンツの一部が第1のアプリケーション内で最近閲覧されたことのインジケーションと共に表示される(例えば、図30Cの提案部分3007は、「『ビッグタイムバンド』に関連するメッセージが最近閲覧されました(you recently viewed a message related to'big time band')」などのテキスト説明を含む)。このようにして、ユーザは、貼り付け提案がなされた理由についての明確なインジケーションが提供される。
一部の実施形態では、第1のアプリケーション内で閲覧されたコンテンツに基づくアクションを実行するためのオプションをユーザに提供するユーザインタフェースオブジェクトはまた、ホームスクリーン又はアプリケーション切り替えユーザインタフェースの一部の上に提示されてよい。一部の実施形態では、このユーザインタフェースオブジェクトは、第2のアプリケーションを開くことの要求の前に提示され(動作2905)、第1のアプリケーション上に、ホームスクリーン上に、又は、アプリケーション切り替えユーザインタフェース上に提示され得る。ユーザインタフェースオブジェクト3005に対する実施例を図30Bに示す。ユーザインタフェースオブジェクト3005の例では、ユーザは、第1のアプリケーション内に提示されたテキストを使用して検索を実行することができる(例えば、「big time band」についてのシステムワイド検索(例えば、スポットライト検索)を実行する、又は、特定のアプリケーション(例えば、サファリ(Safari))を開いて検索を実行する)。
上記の主な実施例としてメッセージアプリケーション及びブラウザアプリケーションが使用される一方で、多くの他の種類のアプリケーションが、方法2900に関連付けられた技術から恩恵を受ける。例えば、第1のアプリケーションは、写真ブラウズアプリケーションであり得、第2のアプリケーションは、メッセージアプリケーションであり得る(例えば、メッセージアプリケーション内に提示された先見的な貼り付け提案が、写真ブラウズアプリケーション内でユーザにより閲覧される写真に対応するようになる)。
図29での動作が説明されている特定の順序は、単なる1つの実施例であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書で説明される他の方法(例えば、方法2200及び2900)に関連して本明細書で説明される、他のプロセスの詳細もまた、図29に関連して上述された方法2900と類似の方式で適用可能であることに留意されたい。例えば、方法2900を参照して先述した動作は、任意選択的に、本明細書で説明する他の方法(例えば、方法2200及び2900)を参照して本記載の動作の特性の1つ以上を有する、又は、これらの動作を使用する。一部の実施形態では、方法2900と併せて、いずれの好適な目的のために、セクション1~11からのいずれの関連詳細が使用されてよい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
物理的位置についての情報を提案することに関する追加詳細がまた、以下に提供され、これらは、補足方法2200、2280、2900、2400、2600、及び2700に使用されてよい。一部の実施形態では、方法2200、2280、2900、2400、2600、及び2700(又は、本明細書に説明するいずれの他の方法)はまた、物理的位置についての情報(又は、他の種類のコンテンツ)を、以下から取得する。ウェブブラウズアプリケーション(例えば、APPLE INC(Cupertino,CA)からのサファリ(Safari))内でユーザにより閲覧された位置、ユーザにより(例えば、貼り付けボードに)コピーされた住所、来るカレンダーイベントに関連付けられた位置(例えば、イベントが、例えば、1時間、30分などの、所定の期間内に発生するとスケジュールされている場合、続いて、イベントに関連付けられた位置はまた、ライドシェア又は他のアプリケーション内でのユーザによる使用及び容易な提案のために利用可能とされてよい)、及び、電子デバイス上のバーチャルアシスタントと相互作用するユーザにより話された位置(例えば、APPLE INCのシリ(Siri)、例えば、ユーザがシリ(Siri)に近隣のレストランについて尋ねると、続いて、それらのレストランについての情報が、他のアプリケーションによる使用のために、又は、他のアプリケーションでの使用のためのユーザに対する提案として、利用可能となってよい)。
一部の実施形態では、位置は、他のアプリケーションによる使用のために、又は、ユーザによる使用のための提案として、位置に関連するいずれの事前のユーザ相互作用なく、利用可能となる。例えば、特定の位置が、来るカレンダーイベントに関連付けられている場合、続いて、その特定の位置は、その来るカレンダーイベント又はその特定の位置をユーザが最近見ていなくとも、ライドシェアアプリケーションでの使用のために先見的に提案されてよい。
一部の実施形態では、位置提案(例えば、本明細書に説明する技術のいずれかを使用して利用可能な位置についての)は、電子デバイス(例えば、デバイス100)の様々なアプリケーション及び構成要素を通して提供される。例えば、位置提案は、一部の実施形態では、以下の中から利用可能である。
●例えば、図25Dでのユーザインタフェースオブジェクト2505に関連して説明されるような、バーチャルキーボードの上方の提案部分(クイックタイプ(QuickType)バーとも呼ばれる)。
●例えば、図25Cのユーザインタフェースオブジェクト2503に関連して説明されるような、アプリケーション切り替えユーザインタフェース。
●いずれのユーザアクションを必要としない、メインスクリーン上の地図アプリケーション。
●地図ウィジェット(例えば、ホームスクリーンの最初のページ上でユーザが実質的に左右方向にスワイプしたことに応じて利用可能となる、ホーム左インタフェース内に示すもの、など)、一部の実施形態では、ユーザが、(すなわち)地図ウィジェット上で強度を増すジェスチャを実行することにより、提案された位置の表示を、地図ウィジェット内に引き起こす。
●いずれのユーザアクションを必要としない、メインスクリーン上のCarPlay地図アプリケーション(例えば、方法2700について説明されるように)。
●検索インタフェース(例えば、図11Bに示すものなどの、検索インタフェース内の位置に対応する検索クエリ提案を示す)。
●デバイス100のバーチャルアシスタント構成要素(例えば、「そこに案内してほしい(navigate me there)」又は「この場所に電話する(call this place)」などの、ユーザからのテキスト又は口頭質問に応じて、バーチャルアシスタントは、本明細書に説明する技術のいずれかに従って判定された、提案された位置に基づいて、「そこ(there)」及び「この(this)」への参照を明確にできる)。
一部の実施形態では、バーチャルアシスタントアプリケーションによる使用のために位置を利用可能とすることに関連して、デバイス100は、フォアグランドアプリケーション内でユーザが現在閲覧しているデータに基づいて、「そこに案内してほしい(navigate me there)」又は「この場所に電話する(call this place)」などの質問に応答できる。一部の実施形態では、バーチャルアシスタントに提示された質問に応答するために、サーバに提出されたいずれの要求は、プライバシーを保護する形で実行される。例えば、「そこに案内してほしい(navigate me there)」に対処して応答する際に、バーチャルアシスタントに関連付けられたサーバに要求が送信され、現在のapp内で位置が利用可能であることのインジケーションのみが、いずれの他のユーザ特定情報なく、及び、位置データを明示的にアドバタイズすることなく、サーバに提供される。一部の実施形態では、サーバは、コマンド/質問を解釈して応答し、適切な位置へのナビゲーションを開始するようデバイス100に指令する(例えば、フォアグランド位置にてユーザにより閲覧された位置、又は、来るカレンダーイベントに対する位置などの一部の他の適切な位置)。
一部の実施形態では、ユーザがテキストコンテンツをコピーすると、デバイス100は自動的に(すなわち、ユーザからのそうするようないずれの明示的な命令なく)、コピーされたテキストコンテンツが、位置情報を含むかを判定する(例えば、住所、又は、レストラン名などの、住所を取り出するために使用され得る一部の他の情報)。コピーされたテキストコンテンツが、位置情報を含むとの判定に従って、デバイス100は、位置情報を表示して使用することが可能な他のシステム構成要素による使用のため、その住所をアドバタイズする(例えば、多くの他の中の、クイックタイプ(QuickType)バー及びアプリケーション切り替えユーザインタフェースなどの、先に提供された実施例)。例えば、ユーザは、住所を含むテキストメッセージを受信し、ユーザは続いて、その住所をコピーし、入力(例えば、アプリケーション切り替えユーザインタフェースを起動するための、ホームボタン上のダブルタップ)を提供し、この入力に応じて、デバイス100は、「<address>への道順を地図に表示する(Get directions to in Maps)」、又は、アプリケーションでの使用のために位置が利用可能であることの、一部の他の適切な及び教示的なフレーズ、を表示する、バナーなどの、ユーザインタフェースオブジェクト(例えば、上述するユーザインタフェース2503)を表示する。
一部の実施形態では、ユーザによる使用(例えば、クイックタイプ(QuickType)バー内にて、アプリケーション切り替えユーザインタフェース内にて、など)のために提案される位置情報は、位置情報を使用するアプリケーションの種類によって異なる。例えば、クラウドに基づくレビューアプリケーション(例えば、Yelp)内でユーザが位置を閲覧し、ユーザが続いて、ライドシェアアプリケーション(例えば、Uber)に移動すると、ユーザは、以前に閲覧した位置に対応する完全な住所を見ることができる。しかし、その代わりに、ユーザが気象アプリケーションに移動すると、続いてユーザは、完全な住所の代わりに、以前に閲覧した位置の市及び州内のみが提示される場合がある。これは、気象アプリケーションは、市及び州情報のみを必要とし、完全な住所を必要としないからである。一部の実施形態では、アプリケーションは、位置情報が提供されるべき粒度のレベルを指定でき、提案された位置情報が続いて、これに従って提供される(例えば、ライドシェアアプリケーションに対して第1の粒度のレベルにて、及び、気象アプリケーションに対して第2の粒度のレベルにて)。
一部の実施形態では、提案された位置のユーザ選択に応じて挿入される位置情報は、トリガーフレーズに依存する。例えば、クラウドに基づくレビューアプリケーション内でユーザが位置を閲覧し、続いてメッセージアプリケーションに切り替え、「集合場所は~(let's meet at)」とタイプし始めると、続いてデバイスは、クラウドに基づくレビューアプリケーション内でユーザが以前に閲覧した位置を表示してよい(例えば、図23Fのユーザインタフェースオブジェクト2309内に)。一部の実施形態では、ユーザが、提案された位置を選択すると(例えば、ユーザインタフェースオブジェクト2309上をタップすると)、続いてデバイスは、レストラン名及びレストランの住所の両方を挿入してよい(及び、メニューへのリンク、電話番号などの、他の関連情報も挿入してよい)。一部の実施形態では、ユーザが、「住所は~(the address is)」とタイプし、続いて、提案のユーザ選択に応じて、住所のみが挿入されてよい(名称又は他の詳細の代わりに、なぜなら、トリガーフレーズ「住所は~(the address is)」は、住所のみが必要であることを示すからである)。一部の実施形態では、デバイス100は、異なるレベルの粒度にてこの情報を選択的に提供するために、提案に対して利用可能な、特定の位置の1つを超える表現を維持する。例えば、ユーザが、クラウドに基づくレビューアプリケーション内から住所をコピーすると、続いてデバイス100は、コピーされた住所を保持してよく、クラウドに基づくレビューアプリケーションから利用可能な他の情報を更に記憶してよい(例えば、電話番号、レストラン名、メニューへのリンクなどを含め)。
一部の実施形態では、デバイス100(又は、図1Aのプロアクティブモジュールなどの構成要素)は、カレンダーイベントを先見的に監視し、来るイベントに関連付けられた位置を、特定のイベント又はその関連する位置とのいずれのユーザ相互作用を受信することもなく、提案する(例えば、30分、1時間、又は1.5時間などの、開始時間が所定の時間量内のイベント)。一部の実施形態では、所定の時間量を調整するために、交通状態が考慮される。
一部の実施形態では、アプリケーションが、位置情報と共に提案されると(例えば、図25Cのユーザインタフェースオブジェクト2503内の、Gary Dankoの位置を使用するために提案された、ライドシェアアプリケーションなどの、アプリケーション切り替えユーザインタフェース内)、そのアプリケーションが、アプリケーションの特定を補助する様々なコンテキスト情報/ヒューリスティックに基づいて選択される(例えば、アプリケーションの使用パターン、時刻、曜日、アプリケーションインストールのリーセンシーなどに基づいて、及び、更なる詳細が、セクション8に関連して以下に提供されている)。一部の実施形態では、それぞれのアプリケーションがどれほど最近に使用されたかは、アプリケーションを特定するために使用される追加要素である(例えば、ユーザが最近夕食に出かけ、ライドシェアアプリケーションを利用してそこに行ったとすると、続いてデバイス100は、ユーザが、約1時間後に自宅に帰ろうとしていると判定してよく、ライドシェアアプリケーションが直近に利用されたため、それを提案する)。
上述するように、方法2200、2280、2900、2400、2600、及び2700のいずれ(又は、本明細書に説明するいずれかの他の方法)が、物理的位置についての情報を特定すること、記憶すること、及び提供することと併せて、上記詳細を使用してよい。
発明を実施するための追加形態
以下のセクション1~11に提供する追加説明は、先に提供されたそれらを補足する追加詳細を提供する。一部の状況又は実施形態では、上述する方法のいずれ(例えば、方法600、800、1000、1200、1400、1600、1800、2000、2200、2280、2400、2600、2700、及び2900)は、セクション1~11に関連して以下に提供されている詳細の一部を、これら方法のいずれかの動作を改善又は洗練するために、必要に応じて使用する場合がある。当業者は、以下のセクション1~11での説明が本明細書に提供された開示を補足する、多くの方法を認識するであろう(例えば、図1A~30Dに関連して)。
セクション1:モバイルデバイスの動的調整
本セクション「モバイルデバイスの動的調整」の資料は、一部の実施形態に係る、ユーザアクティビティ、ピアイベントデータ、システムデータ、ボーターフィードバック、システムイベントの適応予測、及び/又は、熱条件、に基づいて、モバイルデバイスを動的に調整することに関連し、本明細書に提供された開示を補足する情報を提供する。例えば、以下に詳述するように、本セクションは、アプリケーションがその日のいつ使用される/呼び出されるかを予想することを説明し、また、使用統計をチェックすることを説明し、アプリケーションが、近い将来ユーザにより呼び出される可能性があるか否か判定する。これは、例えば、方法600の動作604及び608、並びに、方法800の動作808に関して本明細書に提供された開示を補足する。別の実施例として、セクション1は、属性に関連付けられたイベントが発生する可能性のある時刻を示すために使用される時間的予想(例えば、24時間中、メールアプリケーションなどの、特定の種類のアプリケーションをユーザが起動する可能性のある時間)を説明する。これは、例えば、使用データの収集/記憶(図3A~3B)及びトリガー条件の作成/記憶(図4A~4B)、並びに、方法800の動作808に関連するそれらなどの、本明細書に提供された開示を補足する。更なる実施例として、セクション1は、時間的予想を改善し、特定の期間中に特定のアプリケーションが起動される可能性についてのパーセンテージ値を指定するパノラマ予想を生成するための、追加データ(位置データ、動きデータなど)の使用を説明する。これは、例えば、トリガー条件の作成/記憶(図4A~4B)に関連するそれらなどの、本明細書に提供された開示を補足する。更に別の実施例として、セクション1は、予想されたイベントの実行を管理するための、投票システムの使用を説明する。これは、例えば、使用データの収集/記憶(図3A~3B)及びトリガー条件の作成/記憶(図4A~4B)、並びに、方法800動作808に関連するそれらなどの、本明細書に提供された開示を補足する。更なる実施例として、セクション1は、属性に関連付けられたイベントが、ある期間内に発生する可能性を予測することを説明する(様々な種類の予想に基づいて)。これは、例えば、使用データの収集/記憶(図3A~3B)及びトリガー条件の作成/記憶(図4A~4B)に関連するそれらなどの、本明細書に提供された開示を補足する。1つの追加的実施例として、セクション1は、熱条件の管理を説明する。これは、電力の節約に関する、本明細書に提供された開示を補足する(例えば、方法600及び800又は上述するいずれかの他の方法が、エネルギ効率良く動作することを確かにするために)。
モバイルデバイスの動的調整の概要
一部の実装では、モバイルデバイス(例えば、図1Aのデバイス100)は、環境、システム、及びユーザイベントを監視するよう構成され得る。モバイルデバイスは、システム設定の調整をトリガーし得る1つ以上のイベントの発生を検出するよう構成され得る。
一部の実装では、モバイルデバイスは、所定の及び/又は動的に定義された属性で構成され得る。属性は、システムイベントを追跡するために、システムにより使用され得る。属性イベントは、記憶され得、属性イベントの将来の発生を予測するために後に使用され得る。記憶された属性イベントは、モバイルデバイスにより実行される処理に関する決定するために、システムにより使用され得る。属性は、リソースを割り当て、システム上での将来のイベント又はアクティビティをサポートするための割当量が関連付けられ得る。
一部の実装では、モバイルデバイス上で実行される様々なアプリケーション、機能、及びプロセスが、属性イベントを提出し得る。アプリケーション、機能、及びプロセスは、提出したイベントに基づく予想を後に要求し得る。アプリケーション、機能、及びプロセスは、属性に関連付けられた割当量及び報告されたイベントに関連付けられたコストに基づいて、割り当てを実行し得る。アプリケーション、機能、及びプロセスは、例えば、モバイルデバイスのオペレーティングシステム又は第三者アプリケーションに関連付けられ得る。
一部の実装では、モバイルデバイスは、頻繁に呼び出されるアプリケーションを最新に維持するよう構成され得る。モバイルデバイスは、アプリケーションがユーザによりいつ呼び出されるかを追跡し続け得る。呼び出し情報に基づき、モバイルデバイスは、アプリケーションがその日のいつ呼び出されるか予想し得る。モバイルデバイスは続いて、先制してアプリケーションを起動して、更新をダウンロードし得、更新されたコンテンツをアプリケーションがダウンロードするのを待つ必要なく、ユーザがアプリケーションを呼び出して、現在の更新されたコンテンツを閲覧し得るようにする。
一部の実装では、モバイルデバイスは、アプリケーションに対する新たなコンテンツが利用可能で、ダウンロード可能であることを示す、アプリケーションに関連付けられたプッシュ通知を受信し得る。モバイルデバイスは、プッシュ通知に関連付けられたアプリケーションをバックグラウンドで起動し、新たなコンテンツをダウンロードし得る。コンテンツのダウンロード後、モバイルデバイスは、プッシュ通知を受信したことをユーザに示すグラフィカルインタフェースを提示し得る。ユーザは続いて、アプリケーションを呼び出し、更新されたコンテンツを閲覧し得る。
一部の実装では、モバイルデバイスは、モバイルデバイス上のアプリケーションに対するコンテンツのプロセス外ダウンロード及び/又はアップロードを実行するよう構成され得る。例えば、モバイルデバイス上のアプリケーションに対するコンテンツのダウンローディング及び/又はアップローディングのための専用プロセスが、モバイルデバイス上に構成され得る。
アプリケーションは、アップロード/ダウンロードが実行されている間に、サスペンド又は終了され得る。アプリケーションは、アップロード/ダウンロードが完了すると、呼び出され得る。
一部の実装では、アプリケーションを実行する又はネットワークインタフェースにアクセスする前に、モバイルデバイスは、バッテリ電力及びセルラーデータ使用割当量をチェックし、十分な電力及びデータがユーザ呼び出し動作に利用可能であることを確かにするよう構成され得る。アプリケーションをバックグラウンドで起動する前に、モバイルデバイスは、使用統計をチェックし、アプリケーションがユーザにより近い将来に呼び出される可能性があるか否かが判定され得る。
一部の実装では、属性イベントデータが、同じユーザが所有するモバイルデバイスとの間でシェアされ得る。モバイルデバイスは、ピアデバイスからイベントデータを受信し、ピアデバイスに関する相互作用又は動作に関して、受信したイベントデータに基づいて、決定し得る。イベントデータは、予想、統計、及び/又は生の(例えば、未処理の)イベントデータとしてシェアされ得る。モバイルデバイスは、ピアデバイスと通信するか否かを、例えば、受信したイベントデータに基づいて判定し得る。
特定の実装は、検出されたイベントに応じて、モバイルデバイスの構成要素を動的に調整することにより、バッテリ電力が節約される、という利点を少なくとも提供する。ユーザがいつアプリケーションを呼び出し、コンテンツをダウンロードするかを予期し、ユーザがアプリケーションを呼び出すとすぐに、更新されたコンテンツを閲覧できるようになることにより、ユーザエクスペリエンスが改善され得る。
1つ以上の実装の詳細は、添付の図面及び下記の説明に記載されている。その他の特徴、態様、及び潜在的な利点は、説明及び図面から、並びに特許請求の範囲から明らかになるであろう。
モバイルデバイスの動的調整の詳細説明
概説
本セクションは、様々なシステムイベントに基づいて、モバイルデバイスの適応を可能にし、バッテリ寿命、電力要件、熱管理、及び性能との間のトレードオフを促進するシステムアーキテクチャを説明する。システムは、基礎をなすイベント収集アーキテクチャ、及び、システムイベントから学習するヒューリスティックプロセスのセットを提供し、ユーザエクスペリエンスの顕著な低下なく、バッテリ寿命を最大化する。システムは、システム定義属性及びクライアント定義属性を監視し、このシステム定義属性及びクライアント定義属性を使用し、将来のイベントの発生を予測又は予想し得る。このシステムは、システムの将来の挙動、同様に、ユーザが期待するデバイス性能を、動的に収集した統計及び/又は明示的に指定されたユーザの意図に基づいて予期し得る。システムは、予期するシステム挙動に対するユーザエクスペリエンスを改善するために、どのハードウェア及びソフトウェア制御パラメータを設定し、そのパラメータにどのような値を設定するかを判定し得る。システムは、システム監視及びハードウェア制御を活用し、モバイルデバイスに利用可能なシステム及びネットワークリソースを拡張しつつ、ユーザエクスペリエンスでの総合的な改善を達成する。従って、システムは、ユーザエクスペリエンスへの影響を最小化にしつつ、システム及びネットワークリソースを最大化し得る。
データ収集-ユーザセントリック統計
図31-1は、モバイルデバイス31_100の動的調整を実行するよう構成されたモバイルデバイス例31_100を示す。一部の実装では、モバイルデバイス31_100は、デバイス条件、ネットワーク条件、システムサービス(例えば、デーモン)、及びユーザの行動に関連するイベントを収集するサンプリングデーモン31_102を含み得る。例えば、サンプリングデーモン31_102は、アプリケーション、センサ、及びモバイルデバイス31_100により受信したユーザ入力に関連する統計を収集し、その統計をイベントデータストア31_104に記憶し得る。統計は、モバイルデバイス31_100上で実行される様々なクライアント(例えば、アプリケーション、ユーティリティ、機能、第三者アプリケーションなど)により、イベントとして報告された所定の属性又はクライアント定義属性を使用して、サンプリングデーモン31_102に報告され得る。
データ収集-イベント&属性
一部の実装では、モバイルデバイス31_100は、システム及び/又はアプリケーションイベントを収集するためのフレームワークと共に構成され得る。例えば、モバイルデバイス31_100は、モバイルデバイス31_100の様々なアプリケーション、ユーティリティ、及び他の構成要素が、後の統計分析のためにイベントをサンプリングデーモン31_102に提出できるようにするアプリケーションプログラミングインタフェース(API)と共に構成され得る。
一部の実装では、サンプリングデーモン31_102によりイベントデータストア31_104に記録された各イベントは、属性名(例えば、「bundleId」)、属性値(例えば、「contacts」)、匿名ビーコン情報、匿名位置情報、日付情報(例えば、イベントのGMT日付)、時間情報(例えば、イベントのローカルでの24時間時刻)、ネットワーク品質情報、プロセッサ使用メトリックス、ディスク入力/出力メトリックス、現在のユーザの識別、及び/又はイベントの種類(例えば、開始、停止、発生)を含み得る。例えば、属性名は、イベントに関連付けられた属性の種類を特定し得る。属性名は、例えば、サンプリングデーモン31_102により追跡される特定のメトリックの特定に使用され得る。属性値は、属性に関連付けられた値(例えば、文字列、整数、浮動小数点)であり得る。匿名ビーコン情報は、どの無線ビーコン(例えば、Bluetooth、Bluetooth Low Energy、Wi-Fiなど)が、モバイルデバイスの範囲内にあるかを、ビーコン情報をユーザ又はデバイスに紐付ける又は関連付けることなく示し得る。同様に、匿名位置情報は、モバイルデバイスの位置を、位置情報をユーザ又はデバイスに紐付ける又は関連付けることなく特定し得る。例えば、位置情報は、衛星データ(例えば、全地球測位システム)、セルラーデータ、Wi-Fiデータ、Bluetoothデータから、モバイルデバイス31_100上に構成された様々な送受信機を使用して、導くことができる。ネットワーク品質情報は、イベントが発生した際にモバイルデバイス31_100により検出される、モバイルデバイスのネットワーク(例えば、Wi-Fi、セルラー、衛星など)接続の品質を示し得る。
一部の実装では、各イベントに対するイベントデータは、イベントが発生した、始まった、又は停止したことを示し得る。例えば、時間課金(例えば、継続時間課金)は、属性に対する開始イベント及び停止イベントを示す、同じ属性に対するイベントのペアにて実行され得る。例えば、サンプリングデーモン31_102は、値「contacts」を有する属性「bundleId」に対する開始イベントを受信し得る。その後、サンプリングデーモン102は、値「contacts」を有する属性「bundleId」に対する停止イベントを受信し得る。サンプリングデーモン31_102は、開始イベントの時間を停止イベントの時間と比較し、「contacts」アプリケーションがどれほど長くアクティブであったか(例えば、持続時間)を判定し得る。一部の実装では、時間課金の対象ではないイベントは、ポイントイベント(例えば、単一の発生)として記録され得る。例えば、イベントの時間での瞬間バッテリレベルを指定する「batteryLevel」システム属性に関連付けられたイベントは単に、イベントの発生として記録され得る。
以下の表1は、サンプリングデーモン31_102によりイベントデータストア31_104に記録された属性イベントエントリの一例を提供する。第1のエントリは、「contacts」アプリケーションがユーザ「Fred」により呼び出されたことを示す「bundleId」イベントを記録する。この「bundleId」イベントは、Fredが連絡先アプリケーションの使用を開始したことを示す開始イベントである。第2のエントリは、モバイルデバイス31_100のバッテリレベルが46%であることを示す「batteryLevel」イベントエントリであり、このイベントは、発生タイプイベント(例えば、単一のポイントイベント)である。第3のエントリは、値「George」に関連付けられた「personName」イベントである。この「personName」イベントは、ユーザFredが、連絡先アプリケーション内で、連絡先「George」に対する連絡先情報にアクセスした事実を記録するために使用され、これは、発生タイプイベントである。第4のエントリは、「contacts」アプリケーションがユーザ「Fred」により閉じられた又は非表示にされたことを示す「bundleId」イベントを記録する。このbundleIdイベントは、Fredが連絡先アプリケーションの使用を停止したことを示す停止イベントである。「bundleId」属性に対する開始及び停止イベントを記録することにより、サンプリングデーモン31_102は、ユーザFredが、連絡先アプリケーションを2014年5月12日に8分間使用したことを、開始及び停止イベントに対応するタイムスタンプに基づいて判定し得る。この属性イベント情報は、例えば、モバイルデバイス31_100上のアプリケーションに関連し、連絡先アプリケーションに特に関連するユーザアクティビティの予想に使用され得る。
Figure 0007478304000001
所定の属性
一部の実装では、イベントデータは、サンプリングデーモン31_102に、既知又は所定の属性を使用して、提出され得る。既知又は所定の属性は、モバイルデバイス31_100の様々なアプリケーション、ユーティリティ、機能、又は他の構成要素により使用され、イベントデータをサンプリングデーモン31_102に提出し得る、包括的なシステム属性であり得る。属性定義(例えば、属性名、関連付けられた値のデータタイプなど)が予め定められている一方で、所定の属性に指定されたこれらの値は、イベント毎に異なり得る。例えば、モバイルデバイス31_100は、アプリケーションを特定するための所定の属性「bundleId」及び対象人物を特定するための「personName」で構成され得る。「bundleId」に指定された値は、どのアプリケーションがモバイルデバイス31_100上でアクティブかに基づいて異なり得る。「personName」に指定された値は、ユーザ入力に基づいて異なり得る。例えば、ユーザが、「George」からの電子メールメッセージを選択すると、続いて、「personName」属性値は、「George」に設定され得る。ユーザが、「Bob」に関連付けられた連絡先エントリを選択すると、続いて、「personName」属性値が、「Bob」に設定され得る。モバイルデバイス31_100のアプリケーション、ユーティリティ、機能、又は他の構成要素が、イベントをサンプリングデーモン31_102に、所定の属性を使用して提出すると、そのアプリケーション、ユーティリティ、機能、又は他の構成要素は、そのイベントに対する所定の属性に関連付けられる値を指定し得る。所定又は既知のシステムイベントの実施例を以下の段落に説明する。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100にインストールされたアプリケーション(例えば、アプリケーションバンドル)の名称又は識別子を指定する所定の属性(例えば、「system.bundleId」)で構成され得る。アプリケーションが起動されると、(例えば、アプリケーションの起動を担う)アプリケーションマネジャ31_106は、サンプリングデーモン31_102のAPIを使用し、アプリケーションの識別子又は名称(例えば、連絡先アプリケーションに対する「contacts」)を、「system.bundleId」システム属性に対する値として提出し得る。サンプリングデーモン31_102は、「contacts」アプリケーションの起動の発生を、例えば、上述するように、イベントとして、他のイベントデータと共に、イベントデータストア31_104に記録し得る。あるいは、アプリケーションは、サンプリングデーモン31_102のAPIを使用し、アプリケーション「contacts」がいつ呼び出され、そのアプリケーションがいつ非表示とされる又は閉じられるかのそれぞれに対応する開始及び停止イベントを示し得る。例えば、「bundleId」属性が使用され、モバイルデバイス31_100上のアプリケーション起動イベントが記録され得る。「bundleId」属性が使用され、モバイルデバイス31_100上のアプリケーション終了イベントが記録され得る。単なるイベントの発生ではなく、「bundleId」属性に関連付けられた開始及び停止イベントを指定することにより、サンプリングデーモン31_102は、「contacts」アプリケーションがどれほど長くモバイルデバイス31_100のユーザにより使用されたかを判定し得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100のユーザの名称若しくは識別子、又は、モバイルデバイス31_100のユーザにとっての対象人物を指定する所定の属性(例えば、「system.personName」)で構成され得る。例えば、モバイルデバイス31_100にログインする、ウェイクする、又はアクセスすると、モバイルデバイス31_100の現在のユーザを特定する「personName」属性に関連付けられたイベントが生成され、サンプリングデーモン31_102に提出され得る。別の人物に関連付けられたデータにユーザがアクセスすると、その別の人物をユーザにとっての対象人物として特定する「personName」属性イベントが生成され、サンプリングデーモン31_102に提出され得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100の位置を示す所定の属性(例えば、「system.anonymizedLocation」)で構成され得る。例えば、モバイルデバイス31_100は、イベントが生成された際のモバイルデバイス31_100の位置を指定する「anonymizedLocation」属性に関連付けられたイベントを生成し、サンプリングデーモン31_102に提出し得る。位置データは、その位置が特定のユーザ又はデバイスに後に紐付けられない又は関連付けされないよう、匿名とされ得る。「anonymizedLocation」属性イベントは、例えば、ユーザがモバイルデバイス31_100の位置に基づくサービスを使用する際にはいつでも生成され、記憶され得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100の飛行機モードがオン又はオフであることを示す所定の属性(例えば、「system.airplaneMode」)で構成され得る。例えば、ユーザが飛行機モードをオン又はオフにすると、モバイルデバイス31_100は、イベント時の飛行機モード状態を示すイベントを生成し、サンプリングデーモン31_102に提出し得る。例えば、「airplaneMode」属性の値は、airplaneModeがオンの場合は真(例えば、1)に設定され、飛行機モードがオフの場合は偽(例えば、0)に設定され得る。サンプリングデーモン31_102は、今度は、「airplaneMode」属性値を含む「airplaneMode」イベントを、イベントデータストア31_104に記憶し得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100の電源ケーブルが接続されている又は接続されていないことを示す所定の属性(例えば、「system.cablePlugin」)で構成され得る。例えば、電源ケーブルが接続されていないことをモバイルデバイス31_100が検出すると、モバイルデバイス31_100は、「cablePlugin」属性値が偽(例えば、0)であることを示すイベントを生成し得る。電源ケーブルがモバイルデバイス31_100に接続されていることをモバイルデバイス31_100が検出すると、モバイルデバイス31_100は、「cablePlugin」属性が真(例えば、1)であることを示すイベントを生成し得る。モバイルデバイス31_100は、「cablePlugin」イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100のディスプレイスクリーンがロックされているか又はロック解除されているかを示す所定の属性(例えば、「system.screenLock」)で構成され得る。例えば、モバイルデバイス31_100は、モバイルデバイス31_100のディスプレイスクリーンが(例えば、システムにより又はユーザにより)ロックされているか又は(例えば、ユーザにより)ロック解除されているかを検出し得る。ディスプレイスクリーンのロック又はロック解除を検出すると、モバイルデバイス31_100は、「screenLock」属性を含むイベントを生成し、そのイベントに対する「screenLock」属性値を真(例えば、ロック、整数の1)又は偽(例えば、ロック解除、整数の0)に設定し、モバイルデバイス31_100のディスプレイスクリーンがロックされたか又はロック解除されたかを示し得る。モバイルデバイス31_100は、「screenLock」イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100がスリープモードにあるか否かを示す所定の属性(例えば、「system.sleepWake」)で構成され得る。例えば、モバイルデバイス31_100は、モバイルデバイス31_100がスリープモードへと移行することを検出し得る。モバイルデバイス31_100は、モバイルデバイス31_100がスリープモードを終了する(例えば、ウェイクする)ことを検出し得る。スリープモードへと移行すること又はこれを終了することを検出すると、モバイルデバイスは、「sleepWake」属性を含むイベントを生成し、その属性値を真又は偽(例えば、整数の1又は0のそれぞれ)に設定し、「sleepWake」イベント時の、モバイルデバイス31_100のスリープモード状態を示し得る。モバイルデバイス31_100は、「sleepWake」イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100のディスプレイが点灯しているか否かを示す所定の属性(例えば、「system.backlight」)で構成され得る。「backlight」属性は、バックライトの強度又はレベルを示す値が指定され得る。例えば、モバイルデバイス31_100のユーザは、モバイルデバイス31_100のディスプレイの照明(バックライト)の強度を調整し得る。ユーザは、環境光が明るい場合には、バックライトの強度を増加し得る。ユーザは、環境光が暗い場合には、バックライトの強度を減少し得る。バックライト設定の変更を検出すると、モバイルデバイス31_100は、「backlight」属性を含むイベントを生成し、その属性値を、調整されたバックライト設定(例えば、強度レベル)に設定し得る。モバイルデバイス31_100は、「backlight」変化イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100の環境光センサにより検出される環境光強度値を示す所定の属性(例えば、「system.ALS」)で構成され得る。「ALS」属性は、モバイルデバイス31_100周囲の環境光の強度又はレベルを示す値が指定され得る。例えば、モバイルデバイス31_100の環境光センサは、環境光の強度変化を検出し得る。モバイルデバイス31_100は、強度変化が閾値をいくらか超えたかを判定し得る。閾値を超える環境光変化を検出すると、モバイルデバイス31_100は、「ALS」属性を含むイベントを生成し、その属性値を、検出された環境光強度値に設定し得る。モバイルデバイス31_100は、「ALS」変化イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100のディスプレイが、オブジェクト(例えば、ユーザの顔、テーブル上など)に近いことを、モバイルデバイス31_100の近接センサが検出したことを示す所定の属性(例えば、「system.proximity」)で構成され得る。「proximity」属性は、モバイルデバイスのディスプレイがオブジェクトに近接するか否かを示す値が指定され得る(例えば、真、偽、0、1)。例えば、モバイルデバイス31_100の近接センサは、近接の変化を検出し得る。近接の変化を検出すると、モバイルデバイス31_100は、「proximity」属性を含むイベントを生成し、その属性値を、モバイルデバイス31_100がオブジェクトに近接する場合には真(例えば、1)に、モバイルデバイス31_100がオブジェクトに近接しない場合には偽(例えば、0)に設定し得る。モバイルデバイス31_100は、「proximity」変化イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100により検出された動きの種類を示す所定の属性(例えば、「system.motionState」)で構成され得る。「motionState」属性は、モバイルデバイスが、止まっている、動いている、ランニング中である、運転中である、歩行中であるなど、か否かを示す値が指定され得る。例えば、モバイルデバイス31_100の動きセンサ(例えば、加速度計)は、モバイルデバイス31_100の移動を検出し得る。モバイルデバイス31_100は、検出された移動にて検出された動きのパターンに基づいて、その検出された移動を分類し得る。動きのパターンは、例えばユーザが止まっている、動いている、ランニング中である、運転中である、歩いているなどの、ユーザアクティビティに分類され得る。移動の変化を検出すると、モバイルデバイス31_100は、「motionState」属性を含むイベントを生成し得、その属性値を、その検出された移動の種類に設定する(例えば、止まっている、ランニング中である、歩行中である、運転中であるなど)。モバイルデバイス31_100は、「motionState」イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100により検出されたネットワーク接続の品質を示す所定の属性(例えば、「system.networkQuality」)で構成され得る。「networkQuality」属性は、n秒(例えば、1ミリ秒、2秒など)の期間にわたるネットワークスループット値を示す値が指定され得る。例えば、モバイルデバイス31_100は、データネットワーク(例えば、セルラーデータ、衛星データ、Wi-Fi、インターネットなど)に接続し得る。モバイルデバイス31_100は、ある期間(例えば、5秒)にわたるネットワーク接続のデータスループットを監視し得る。モバイルデバイスは、毎秒に送信されるデータ量を計算し得る(例えば、ビット/秒、バイト/秒など)。スループットの変化を検出すると、又は、新たなネットワーク接続を作成すると、モバイルデバイス31_100は、「networkQuality」属性を含むイベントを生成し、その属性値を、その計算されたスループット値に設定し得る。モバイルデバイス31_100は、「networkQuality」イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100の内蔵バッテリの瞬間充電レベルを示す所定の属性(例えば、「system.batteryLevel」)で構成され得る。「batteryLevel」属性は、バッテリの充電レベル(例えば、パーセンテージ)を示す値が指定され得る。例えば、モバイルデバイス31_100は、バッテリの充電レベルを定期的に(例えば、毎5秒、毎分、毎15分など)判定し、「batteryLevel」イベントを生成し、バッテリの充電レベルを記録し得る。モバイルデバイス31_100は、いつバッテリ充電レベルを監視し、充電レベルが閾値量分変化したかを判定し、「batteryLevel」イベントを生成し、バッテリの充電レベルを記録し得る。モバイルデバイス31_100は、「batteryLevel」イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100の熱レベルを示す所定の属性(例えば、「system.thermalLevel」)で構成され得る。例えば、モバイルデバイス31_100の熱レベルは、モバイルデバイスの現在の作動温度であり得る(例えば、摂氏)。モバイルデバイス31_100の熱レベルは、温度値の範囲を示すレベルであり得る(例えば、高、中、低、正常、異常など)。例えば、モバイルデバイス31_100は、モバイルデバイス31_100の熱状態を監視するためのユーティリティ又は機能と共に構成され得る。温度変化又は熱レベル変化を検出すると、モバイルデバイス31_100の熱ユーティリティは、「thermalLevel」属性を含むイベントを生成し、その属性値を、作動温度又は現在の熱レベルに設定し得る。モバイルデバイス31_100は、「thermalLevel」イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
一部の実装では、モバイルデバイス31_100は、n秒(例えば、2ミリ秒、3秒など)の期間にわたるモバイルデバイス31_100のエネルギ使用量を示す所定の属性(例えば、「system.energy」)で構成され得る。例えば、モバイルデバイス31_100の機能(例えば、アプリケーションの呼び出し、ディスプレイの点灯、データの送信など)をユーザが呼び出すと、モバイルデバイス31_100は、機能が実行されている期間にわたるエネルギ使用量を監視し、各アクティビティ又は機能がどれほどのエネルギを使用するかを予測し得る。モバイルデバイス31_100は続いて、「energy」属性を含むイベントを生成し、その属性値を、計算された平均エネルギ使用量に設定し得る。モバイルデバイス31_100は、「energy」イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
一部の実装では、モバイルデバイス31_100は、n秒(例えば、2ミリ秒、3秒など)の期間にわたるモバイルデバイス31_100のネットワークデータ使用量を示す所定の属性(例えば、「system.networkBytes」)で構成され得る。例えば、モバイルデバイス31_100のネットワーク接続を経由してデータの送信を必要とする機能をユーザが呼び出す又は動作をユーザが開始すると、モバイルデバイス31_100は、ある期間にわたるネットワークデータ使用量を監視し、どれほどのネットワークデータを各アクティビティ又は機能が使用又は送信するかを予測し得る。モバイルデバイス31_100は続いて、「networkBytes」属性を含むイベントを生成し、その属性値を、計算された平均ネットワークデータ使用量に設定し得る。モバイルデバイス31_100は、「networkBytes」イベントを、イベントデータストア31_104への記憶のために、サンプリングデーモン31_102に提出し得る。
他の所定の属性としては、モバイルデバイス31_100がそのバッテリを充電しているか否かを示す、真/偽(例えば、1/0)属性値を有する「system.chargingStatus」属性、現在のバッテリ充電量(例えば、mAhにて、batteryLevelに比例)を示す属性値を有する「system.batteryCapacity」属性、及び、ピアデバイスの出現を追跡するデバイス識別子(例えば、文字列)属性値を有する「system.devicePresence」属性、が挙げられ得る。例えば、「devicePresence」属性は、ピアツーピアデータシェアリングをスケジューリングする際のピアデバイスの出現の予想に使用され得る。
カスタム属性
一部の実装では、クライアント特有の属性が、サンプリングデーモン31_102のクライアントにより動的に定義され得る。例えば、所定の、モバイルデバイス31_100上で構成された属性を使用する代わりに(例えば、サンプリングデーモン31_102又はオペレーティングシステムにて)、クライアント(例えば、第三者アプリケーション)は、それら自身のイベント属性を動的に定義し得る。例えば、電子メールアプリケーションは、「mailbox」属性を動的に(例えば、ランタイムにて)作成し得る。電子メールアプリケーション(「mailapp」)は、サンプリングデーモン31_102のAPIを使用し、属性名(例えば、「mailapp.mailbox」)及び属性値タイプ(例えば、文字列、整数、浮動小数点)を定義し得る。クライアントが新たなカスタム属性を作成すると(登録すると)、クライアントは、その属性を使用して、イベントデータストア31_104に記憶されるイベントを生成し得る。例えば、mailappは、「mailbox」属性を使用し、ユーザがアクセスしている電子メールアプリケーション内のメールボックスはどれかを報告し得る。ユーザが「work」メールボックスにアクセスしている場合、続いて、mailappは、「mailapp.mailbox」属性を使用してイベントを作成し、属性の値を「work」に設定し、「work」メールボックスへのユーザのアクセスを記録し得る。サンプリングデーモン31_102及びクライアントは続いて、記憶されたメールボックスイベント情報を使用し、例えば、ユーザが将来のいつに「work」メールボックスにアクセスする可能性があるかを予測し得る。
一部の実装では、クライアントアプリケーションがモバイルデバイス31_100から消去される(例えば、削除される、アンインストールされる)と、そのクライアントアプリケーションにより作成された属性が、モバイルデバイス31_100から削除され得る。更に、クライアントアプリケーションが消去されると、クライアントアプリケーションに関連付けられたイベントデータが削除され得る。例えば、mailappがモバイルデバイス31_100から削除されると、mailappに関連付けられたイベントデータの全てと共に、属性「mailapp.mailbox」がモバイルデバイス31_100から削除され得る。
イベントを生成するクライアントの実施例
一部の実装では、サンプリングデーモン31_102は、アプリケーションイベント(例えば、「system.bundleId」イベント)を、アプリケーションマネジャプロセス31_106から受信し得る。例えば、アプリケーションマネジャ31_106は、モバイルデバイス31_100上でアプリケーション(例えば、アプリケーション31_108)を開始し、停止し、及び監視するプロセスであり得る。一部の実装では、アプリケーションマネジャ31_106は、モバイルデバイス31_100上で実行されるアプリケーションに対する開始及び停止時間(例えば、「bundleId」開始及び停止イベント)を、サンプリングデーモン31_102に報告し得る。例えば、ユーザがアプリケーションを呼び出す又は起動すると、アプリケーションマネジャ31_106は、アプリケーションの名称又は識別子を指定する、呼び出されたアプリケーションに対する「bundleId」開始イベントを提出することにより、アプリケーション呼び出しについてサンプリングデーモン31_102に通知し得る。一部の実装では、アプリケーションマネジャ31_106は、プッシュ通知、ユーザ呼び出し、又は予測された若しくは予想されたユーザアプリケーション呼び出しに応じて、アプリケーション起動が開始されたことをサンプリングデーモン31_102に示し得る。アプリケーションが終了すると、アプリケーションマネジャ31_106は、アプリケーションの名称又は識別子を指定する、アプリケーションに対する「bundleId」停止イベントを提出することにより、アプリケーションが実行されていないことについてサンプリングデーモン31_102に通知し得る。
一部の実装では、サンプリングデーモン31_102は、アプリケーション開始及び停止イベント(例えば、「bundleId」属性イベント)を使用し、アプリケーション毎の使用時間の履歴を生成し得る。例えば、アプリケーション毎の使用時間の履歴は、アプリケーションの各実行に対する、アプリケーションの最後の実行から経過した時間量及び実行時間を含み得る。サンプリングデーモン31_102は、ユーザ呼び出しによるアプリケーション起動及び/又はシステムにより起動された(例えば、自動的に起動された)アプリケーションの別個の履歴を維持し得る。従って、サンプリングデーモン31_102は、モバイルデバイス31_100上で実行された全てのアプリケーションに対する使用統計を維持し得る。
一部の実装では、サンプリングデーモン31_102は、電力モニタプロセス31_108からパワーイベントを受信し得る。例えば、電力モニタ31_109は、モバイルデバイス31_100に対するバッテリ容量、放電量、使用量、及び充電特性を監視し得る。電力モニタ31_109は、いつモバイルデバイス31_100が外部電源に接続されたか、及び、モバイルデバイス31_100がバッテリ電力となったかを判定し得る。電力モニタ31_109は、いつモバイルデバイス31_100が外部電源に接続されるかを、サンプリングデーモン31_102に通知し得る。例えば、モバイルデバイス31_100が外部電源に接続されたことを電力モニタが検出すると、電力モニタ31_109は、「cablePlugin」イベントを、1(例えば、真)の「cablePlugin」属性値と共に、サンプリングデーモン31_102に送信し得る。このイベントは、外部電源が接続された時点のバッテリ充電量を含み得る。電力モニタ31_109は、「energy」属性イベントをサンプリングデーモン31_102に送信して、バッテリ使用量を報告し得る。
一部の実装では、電力モニタ31_109は、モバイルデバイス31_100が外部電源から遮断されたことを、サンプリングデーモン31_102に通知し得る。例えば、モバイルデバイス31_100が外部電源から遮断されたことを電力モニタが検出すると、電力モニタ31_109は、「cablePlugin」イベントを、0(例えば、偽)の「cablePlugin」属性値と共に、サンプリングデーモン31_102に送信し得る。このメッセージは、外部電源が遮断された時点のバッテリ充電量を含み得る。従って、サンプリングデーモン31_102は、モバイルデバイス31_100のバッテリの充電分布(例えば、経時的充電)を説明する統計を維持し得る。この充電分布統計は、最後の充電からの時間量(例えば、外部電源に接続してからの時間)及び充電に起因するバッテリ充電における変化(例えば、充電の開始レベル、充電の終了レベル)を含み得る。
一部の実装では、電力モニタ31_109は、1日を通してのバッテリ充電における変化をサンプリングデーモン31_102に通知し得る。例えば、電力モニタ31_109は、アプリケーションがいつ開始及び停止すると、通知され、この通知に応じて、その時間に放電したバッテリ電力量及びバッテリ内の残りの充電量を判定し、この情報をサンプリングデーモン31_102に送信し得る。例えば、電力モニタ31_109は、「system.energy」イベントをサンプリングデーモン31_102に送信し、アプリケーションがアクティブであった期間中に消費したエネルギ量を示し得る。
一部の実装では、サンプリングデーモン31_102は、デバイス温度統計を熱デーモン31_110から受信し得る。例えば、熱デーモン31_110は、モバイルデバイス31_100の作動温度条件を、1つ以上の温度センサを使用して監視し得る。熱デーモン31_110は、温度変化をサンプリングデーモン31_102に定期的に報告するよう構成され得る。例えば、熱デーモン31_110は、モバイルデバイス31_100の作動温度を5秒毎に判定し、モバイルデバイス31_100の温度又は熱レベルをサンプリングデーモン31_102に報告し得る。例えば、熱デーモン31_110は、「system.thermalLevel」イベントをサンプリングデーモン31_102に送信し、モバイルデバイス31_100の現在の作動温度又は熱レベルを報告し得る。サンプリングデーモン31_102は、報告された温度をイベントデータストア31_104に記憶し得る。
一部の実装では、サンプリングデーモン31_102は、デバイス設定統計をデバイス設定プロセス31_112から受信し得る。例えば、デバイス設定プロセス31_112は、モバイルデバイス31_100のオペレーティングシステムの機能又はプロセスであり得る。デバイス設定プロセス31_112は、例えば、ユーザ入力を受信し、例えば飛行機モードのオン/オフ、Wi-Fiのオン/オフ、ローミングのオン/オフなどの、様々なデバイス設定を調整し得る。デバイス設定プロセス31_112は、デバイス設定に対する変更をサンプリングデーモン31_102に報告し得る。各デバイス設定は、対応する所定のイベント属性を有し得る。例えば、デバイス設定プロセス31_112は、ユーザがモバイルデバイス31_100上で飛行機モードをオン又はオフにすると、「system.airplaneMode」イベントをサンプリングデーモン31_102に送信し得る。サンプリングデーモン31_102は、受信したイベント及び属性値に基づく、デバイス設定に対する統計を生成し、記憶し得る。例えば、設定が有効(又は、無効)になる度に、サンプリングデーモン31_102は、設定が以前に有効になってから経過した時間量及び設定が有効となっていた時間量(例えば、期間)を示すデータを記憶し得る。
同様に、一部の実装では、サンプリングデーモン31_102は、他のイベントが発生すると、他のモバイルデバイス31_100構成要素(例えば、デバイスセンサ31_114)から通知を受信し得る。例えば、サンプリングデーモン31_102は、モバイルデバイスのスクリーンがオン又はオフにされると(例えば、「system.backlight」イベント)、モバイルデバイス31_100がユーザの顔の横に保持されると(例えば、「system.proximity」イベント)、セルタワーハンドオフが検出されると、ベースバンドプロセッサが検索モードになると(例えば、「system.btlescan」イベント)、及び、ユーザが歩行中である、ランニング中である、及び/又は運転中であることをモバイルデバイス31_100が検出すると(例えば、「system.motionState」イベント)、通知を受信し得る。各場合では、サンプリングデーモン31_102は、イベントの開始及び終了時に通知を受信し得る。各場合では、サンプリングデーモン31_102は、イベントが最後に検出されてから経過した時間量及びイベントの期間を示す統計を生成し、記憶し得る。サンプリングデーモン31_102は、特定の使用ケース及びシナリオに関して以下に詳述するように、他のイベント通知を受信し、他の統計を生成し得る。
アプリケーションイベント
一部の実装では、サンプリングデーモン31_102は、イベント情報をモバイルデバイス31_100上のアプリケーションから受信し得る。例えば、モバイルデバイス31_100上のアプリケーションは、サンプリングデーモン31_102に対して、所定の又は動的に定義された属性を含むイベントを生成し、様々なアプリケーション特有イベントを追跡し得る。例えば、サンプリングデーモン31_102は、カレンダーアプリケーション31_116から(例えば、「calendar.appointment」、「calendar.meeting」、又は「calendar.reminder」属性などを含む)カレンダーイベントを受信し得る。カレンダーイベントは、様々なカレンダーイベント又は機能に関連付けられた位置、時間、又は他のデータを指定する値を有する「calendar.appointment」、「calendar.meeting」、又は「calendar.reminder」属性を含み得る。サンプリングデーモン31_102は、例えば、属性名、及び、属性が発生するようスケジュールされた属性期間並びに/又は時間を記憶し得る。一部の実装では、サンプリングデーモン31_102は、クロックアプリケーション31_118から(例えば、「clock.alarm」属性を含む)クロックイベントを受信し得る。例えば、サンプリングデーモン31_102は、属性名(例えば、「clock.alarm」)及びアラームが発生するようスケジュールされた時間を示す値を記憶し得る。サンプリングデーモン31_102は、以下に詳述するように、他のアプリケーション(例えば、メディアアプリケーション、パスブックアプリケーションなど)からイベント情報を受信し得る。
アプリケーション統計
一部の実装では、サンプリングデーモン31_102は、アプリケーション起動イベントにわたるアプリケーション統計を収集し得る。例えば、サンプリングデーモン31_102は、アプリケーションの多くの呼び出しにわたる、各アプリケーションに対する統計(例えば、イベント、「bundleId」属性値)を収集し得る。例えば、各アプリケーションは、異なるバージョンの同じアプリケーションが、別個のアプリケーションとして処理され得るよう、その実行可能なファイルシステムパスのハッシュ及び実行可能なコンテンツのハッシュにて特定され得る。アプリケーションハッシュ値は、サンプリングデーモン31_102に、「bundleId」イベントにて、例えば、「bundleId」属性に対する値として、提出され得る。
一部の実装では、サンプリングデーモン31_102は、各アプリケーションに対するバックグラウンドタスク補完アサーションイベントを追跡するカウンタを維持し得る。例えば、アプリケーションがバックグラウンドタスクとして実行される度に(例えば、フォアグランドでは見ることができない、及び/又は、ユーザにより現在使用中でない)、アプリケーション又はアプリケーションマネジャ31_106は、アプリケーションが終了されたこと又はサスペンドされたことをサンプリングデーモン31_102に通知し得、サンプリングデーモン31_102はカウンタをインクリメントし得る。サンプリングデーモン31_102は、アプリケーションがバックグラウンドで実行されているアプリケーション起動にわたる累積秒数を追跡するカウンタを維持し得る。例えば、サンプリングデーモン31_102は、「bundleId」開始及び停止イベントを分析し、アプリケーションがいつ開始及び停止されたか判定し、開始及び停止イベントのタイムスタンプを使用し、アプリケーションがどれほど長く実行されたかを判定し得る。一部の実装では、サンプリングデーモン31_102は、データ接続数をカウントする、ネットワークデータトラフィック量を追跡(例えば、バイトにて)する、ファイルシステム動作の期間及びサイズを追跡する、及び/又は、各アプリケーションに関連付けられたスレッド数を追跡する、別個のカウンタを維持し得る。サンプリングデーモン31_102は、例えば、アプリケーション起動にわたってアプリケーションがアクティブのままである累積時間量のカウントを維持し得る。サンプリングデーモン31_102により受信され、イベントデータストア31_104に記憶されたイベント並びに属性データに基づいて、サンプリングデーモン31_102により生成され得るアプリケーション統計の種類の、ごく少数の実施例がある。他の統計は、以下に詳述するように生成又は収集され得る。
ヒューリスティック
一部の実装では、モバイルデバイス31_100は、サンプリングデーモン31_102により検出されたイベントに基づいて、デバイス構成要素の設定を調整し得る、ヒューリスティックプロセスと共に構成され得る。例えば、ヒューリスティックプロセス31_120は、1つ以上のトリガーイベントに応じて及び/又はサンプリングデーモン31_102により収集又は生成された統計に基づいて、様々なシステム設定(例えば、CPU電力、ベースバンドプロセッサ電力、ディスプレイ照明など)を調整するよう構成された(例えば、プログラムされた)1つ以上のプロセスを含み得る。
一部の実装では、ヒューリスティックプロセス31_120は、所定の基準のセットが満たされると(例えば、一部のトリガーイベントの発生)呼び出される又はアクティブにされるよう、サンプリングデーモン31_102に登録し得る。トリガーイベントは、メディアプレーヤアプリケーション(例えば、「bundleId」イベント)の呼び出し、又は、ユーザが歩き出した、走り出した、運転を始めたなど(例えば、「motionState」イベント)を検出することを含んでよい。トリガーイベントは一般化され、一部のプロパティ、データ、統計、イベント、属性、属性値などがイベントデータ31_104にて又はサンプリングデーモン31_102により検出されると、ヒューリスティックプロセス31_120を呼び出し得る。例えば、ヒューリスティックプロセス31_120は、サンプリングデーモン31_102が、アプリケーション開始通知(例えば、特定のアプリケーションを指定する「bundleId」開始イベント)又は特定の閾値を超える温度(例えば、「thermalLevel」イベント)を受信すると呼び出され得る。ヒューリスティックプロセス31_120は、サンプリングデーモン31_102が、指定された属性又は属性値に関連付けられたイベントを受信すると呼び出され得る。ヒューリスティックプロセス31_120は、単一のイベントが発生する又は統計が認められると呼び出されるよう登録し得る。ヒューリスティックプロセス31_120は、イベント、データ、属性、属性値、及び/又は統計の組み合わせが認められる又は検出されると呼び出されるよう登録し得る。ヒューリスティックプロセス31_120は、特定のユーザ入力(例えば、「airplaneMode」イベント、「sleepWake」イベントなど)に応じてトリガーされ得る又は呼び出され得る。ヒューリスティックプロセス31_120が登録したイベントをサンプリングプロセス31_102が検出すると、サンプリングプロセス31_102は、ヒューリスティックプロセス31_120を呼び出し得る。
一部の実装では、ヒューリスティックプロセス31_120が呼び出されると、ヒューリスティックプロセス31_120はサンプリングデーモン31_102と通信し、イベントデータストア31_104からイベントデータを取り出し得る。ヒューリスティックプロセス31_120は、イベントデータ、及び/又は、ヒューリスティックプロセス31_120自体が収集した他のデータを処理し、システム設定をどのように調整するか判定し、モバイルデバイス31_100のパフォーマンスを改善し、モバイルデバイス31_100を使用しているユーザのエクスペリエンスを改善し、及び/又はモバイルデバイス31_100の将来の問題を防ぎ得る。
一部の実装では、ヒューリスティックプロセス31_120は、モバイルデバイス31_100の様々なデバイス構成要素31_122の設定における変化を引き起こし得る、設定推奨を実行し得る。例えば、デバイス構成要素は、CPU、GPU、ベースバンドプロセッサ、ディスプレイ、GPS、Bluetooth、Wi-Fi、振動モータ、及び他の構成要素を含み得る。
一部の実装では、ヒューリスティックプロセス31_120は、制御マルチプレクサ31_124に対する設定推奨を実行し得る。例えば、制御マルチプレクサ31_124は、ヒューリスティックプロセス31_120により提供された構成要素設定と、モバイルデバイス31_100の構成要素の設定に影響を与える又は変更する、モバイルデバイス31_100の他のプロセス並びに/又は機能と、の間を仲裁するプロセスであり得る。例えば、熱デーモン31_110は、モバイルデバイス31_100が熱イベント中である(例えば、閾値温度を超える)ことを検出することに基づいて、CPU電力、ディスプレイの輝度、ベースバンドプロセッサ電力、及び他の構成要素設定を調整するよう構成されたヒューリスティックプロセスであり得る。しかし、ヒューリスティックプロセス31_120は、CPU電力、ディスプレイの輝度、ベースバンドプロセッサ電力、及び他の構成要素設定を同様に調整するよう構成され得る。従って、一部の実装では、ヒューリスティックプロセス31_120及び熱デーモン31_110は、制御マルチプレクサ31_124に対する設定調整推奨を実行し得、制御マルチプレクサ31_124は、どの設定調整を実行するか判定し得る。例えば、制御マルチプレクサ31_124は、プロセスに優先度を付け、その推奨プロセスの優先度に基づいて調整を実行し得る。従って、熱デーモン31_110が、ヒューリスティックプロセス31_120よりも優先度の高いプロセスである場合、制御マルチプレクサ31_124は、ヒューリスティックプロセス31_120の代わりに、熱デーモン31_110の推奨に従って、CPU、ディスプレイ、ベースバンドプロセッサなどの設定を調整し得る。
一部の実装では、モバイルデバイス31_100は、複数のヒューリスティックプロセス31_120と共に構成され得る。ヒューリスティックプロセス31_120は、無線経由で構成又は再構成され得る。例えば、各ヒューリスティックプロセス31_120のパラメータ(例えば、トリガー、閾値、基準、及び出力)は、ネットワーク(例えば、セルラーデータ接続、Wi-Fi接続など)経由で設定又は調整され得る。一部の実装では、新たなヒューリスティックプロセス31_120がモバイルデバイス31_100に追加され得る。例えば、トリガーイベント、統計データ、及びデバイス設定との間の経時的新たな相互関係は、システムデベロッパにより決定され得る。これらの新たな相互関係が特定されるに従い、新たなヒューリスティックプロセス31_120が開発され、システム設定が調整され、新たに判定される関係が考慮され得る。一部の実装では、新たなヒューリスティックプロセス31_120は、ネットワーク経由でモバイルデバイス31_100に追加され得る。例えば、新たなヒューリスティックプロセス31_120は、無線(例えば、セルラーデータ接続、Wi-Fi接続など)を経由してモバイルデバイス31_100にダウンロード又はインストールされ得る。
ヒューリスティックプロセス例
一部の実装では、ヒューリスティックプロセス31_120は、モバイルデバイス31_100のシステム設定を調整し、モバイルデバイス31_100がユーザのポケット内にあるときに熱くなり過ぎないよう構成され得る。例えば、このホットインポケットヒューリスティックプロセスは、モバイルデバイスのディスプレイがオフであり(例えば、「system.backlight」イベントが、0/偽の属性値を有する)、モバイルデバイス31_100がいずれのエンタテインメントメディア(例えば、音楽、映画、動画など)を再生していない時に呼び出されるよう、サンプリングデーモン31_102に登録するよう構成され得る。呼び出されると、ホットインポケットヒューリスティックは、例えば、CPU電力及びGPU電力を減らし、モバイルデバイス31_100の作動温度を下げるよう推奨を実行し得る。
一部の実装では、ヒューリスティックプロセス31_120は、モバイルデバイスのディスプレイが使用されていない(例えば、「system.backlight」イベントが、0/偽の属性値を有する)際に位置精度を調整するよう構成され得る。例えば、モバイルデバイスのディスプレイが使用されていない(例えば、上述する「backlight」属性イベントにより示されるように、ディスプレイがオフである)場合、モバイルデバイス31_100は地図情報又は道順をユーザに表示できない。従って、ユーザがモバイルデバイス31_100の位置サービスを使用する可能性は低く、位置サービス(例えば、GPS位置、Wi-Fi位置、セルラー位置など)は少ない電力を使用して調整され得る。位置精度ヒューリスティックプロセスは、モバイルデバイスのディスプレイがオフの際に呼び出されるよう、サンプリングデーモン31_102に登録し得る。ヒューリスティックプロセスは、呼び出されると、モバイルデバイス31_100のエネルギリソースを節約するために、GPSプロセッサ、Wi-Fiトランスミッタ、セルラートランスミッタ、及びベースバンドプロセッサの電力レベルを調整し得る、又は、モバイルデバイス31_100の位置を判定するために使用されたプロセスを終了し得る。
一部の実装では、ヒューリスティックプロセス31_120は、ユーザの行動に応じて、モバイルデバイスの環境光センサの設定を調整するよう構成され得る。例えば、このユーザ適応環境光センサ(ALS)ヒューリスティックプロセスは、サンプリングデーモン31_102が、モバイルデバイス31_100周囲の環境光における変化を環境光センサが検出した、ディスプレイの輝度を環境光センサシステムが調整した、及び/又は、ディスプレイの輝度を調整する入力をユーザが提供したことを示すデータ(例えば、「ALS」属性イベント)を受信すると、サンプリングデーモン31_102により呼び出され得る。
ユーザ適応ALSヒューリスティックは、呼び出されると、サンプリングデーモン31_102からの、ALSディスプレイ調整及びユーザ開始ディスプレイ調整に関する追加情報を要求し、ALSがいつ、ディスプレイの輝度を上下に調整し、そしてユーザがディスプレイの輝度を逆方向に調整したか(例えば、「system.ALS」イベントの後に「system.backlight」イベントが続く)を示すユーザ入力のパターンがあるか判定し得る。例えば、ユーザは、バス又は電車に乗って職場に向かう場合がある。乗車中は、バスの照明がオン及びオフとなっている場合がある。環境光センサは、環境光の変化を検出し、照明点灯時にはディスプレイの輝度を上げ得る。照明は一時的にのみ点灯するため、ユーザは、照明が再度消灯時には、ディスプレイの輝度を下げてよい。ユーザ入力のこのパターンは追跡され(例えば、「backlight」属性イベントを通して)、時刻、カレンダー若しくはアラームイベントエントリ、又は移動パターンに、ヒューリスティックプロセスにより相互関係し、どのような状況又はコンテキストの下で、ALSディスプレイ調整に応じて、ディスプレイの輝度をユーザは調整するかを判定し得る。ユーザ適応ALSヒューリスティックプロセスが入力のパターン及びコンテキストを判定すると、ヒューリスティックプロセスは、ALSの設定を、より強く又はより弱く調整し得る。例えば、ALSは、判定された時刻、カレンダー若しくはアラームエントリ、又は移動パターン中に、環境光のレベルを、より多くの又はより少ない頻繁にてチェックし、これに従ってディスプレイの輝度を調整するよう調整され得る。
上記のヒューリスティックプロセスはヒューリスティックプロセスの数少ない実施例であり、これらがどのようにシステム内に実装されてよいかを本セクションにて説明する。他のヒューリスティックプロセスの経時的に開発されると、これらが実装され、システムに追加され得る。例えば、追加ヒューリスティックプロセスは、モバイルデバイス上で発生し、検出された、温度測定値に関連するイベント若しくはイベントのパターン、ユーザ入力、クロックイベント(例えば、アラーム)、カレンダーイベント、及び/又は他のイベントを検出したことに応じて、モバイルデバイスのCPU、GPU、ベースバンドプロセッサ、又は他の構成要素を調整するよう構成又はプログラムされ得る。
ヒューリスティック登録及び呼び出しプロセス例
図31-2は、ヒューリスティックプロセスを呼び出すためのプロセス例31_200を示す。ステップ31_202にて、サンプリングデーモン31_102が初期化され得る。例えば、サンプリングデーモン31_102は、モバイルデバイス31_100の起動中に初期化され得る。
ステップ31_204にて、サンプリングデーモン31_102は、モバイルデバイス31_100上に構成されたヒューリスティックプロセスを、サンプリングデーモン31_102の初期化中に呼び出し得る。例えば、サンプリングデーモン31_102は、各ヒューリスティックプロセス31_120にモバイルデバイス31_100上で実行させ、それらの初期化サブルーチンを実行させ得る。
ステップ31_206にて、サンプリングデーモン31_102は、各ヒューリスティックプロセス31_120からイベント登録メッセージを受信し得る。例えば、ヒューリスティックプロセス31_120の初期化サブルーチン中、ヒューリスティックプロセス31_120は、どの属性イベントが、ヒューリスティックプロセス31_120の呼び出しをトリガーすべきかを示す情報をサンプリングデーモン31_102に送信し得る。サンプリングデーモン31_102は、登録情報をデータベース、例えば、イベントデータストア31_104などに記憶し得る。登録情報は、ヒューリスティックプロセスの識別(例えば、実行可能名、ファイルシステムパスなど)及びイベント基準(属性の識別、属性値、閾値、範囲など)を含み得、指定イベントが検出されると、サンプリングデーモン31_102がヒューリスティックプロセス31_120を呼び出し得るようにする。
ステップ31_208にて、サンプリングデーモン31_102は、属性イベントデータを受信し得る。例えば、サンプリングデーモン31_102は、上述するように、アプリケーションマネジャ31_106、センサ31_114、カレンダー31_116、及びクロック31_118を含む様々なシステム構成要素から、属性イベントデータを受信し得る。
ステップ31_210にて、サンプリングデーモン31_102は、受信した属性イベントデータをヒューリスティック登録データと比較し得る。例えば、属性イベントデータがサンプリングデーモン31_102に報告されると、サンプリングデーモン31_102は、イベントデータ(例えば、属性値)、又はイベントデータから生成された統計を、ヒューリスティックプロセス31_120から受信した登録情報と比較し得る。
ステップ31_212にて、サンプリングデーモン31_102は、ステップ31_210にて実行された比較に基づいて、ヒューリスティックプロセスを呼び出し得る。例えば、イベントデータ(例えば、属性データ)及び/又は統計が、ヒューリスティックプロセス31_120に対するヒューリスティック登録データに指定された基準を満たす場合、続いてサンプリングデーモン31_102が、ヒューリスティックプロセス31_120を呼び出し得る。例えば、イベントデータ及び/又は統計データが、登録中にヒューリスティックプロセスによりイベントに対して指定された閾値をいくらか超える場合、続いてヒューリスティックプロセスが、サンプリングデーモン31_102により呼び出され得る。あるいは、特定の属性イベントの単なる発生が、ヒューリスティックプロセス31_120を呼び出しさせ得る。
図31-3は、モバイルデバイス31_100の設定を、ヒューリスティックプロセス31_120を使用して調整するためのプロセス31_300を示す。ステップ31_302にて、ヒューリスティックプロセス31_120が初期化される。例えば、ヒューリスティックプロセス31_120はサンプリングデーモン31_102により呼び出され得、ヒューリスティックプロセス31_120が、その初期化サブルーチンを実行し得るようにする。例えば、呼び出しはパラメータ化され、ヒューリスティックプロセス31_120が、この呼び出し中にその初期化サブルーチンを実行すべきであることを示し得る。
ステップ31_304にて、ヒューリスティックプロセス31_120は、システムイベントに対して、サンプリングデーモン31_102に登録し得る。例えば、初期化中、ヒューリスティックプロセス31_120は、ヒューリスティックプロセス31_120を呼び出すためのイベントの識別、閾値、属性、属性値、又は他の基準を含むメッセージをサンプリングデーモン31_102に送信し得る。イベントが発生する及び/又は基準が満たされると、サンプリングデーモン31_102は、ヒューリスティックプロセス31_120を呼び出し得る。
ステップ31_306にて、ヒューリスティックプロセス31_120はシャットダウン又は終了し得る。例えば、ヒューリスティックプロセス31_120は、ヒューリスティックプロセス31_120に対する登録基準が満たされるまでは、システムにより必要とされない。従って、デバイスリソース(例えば、バッテリ電力、プロセッシング電力など)を節約するため、ヒューリスティックプロセス31_120は、必要とされるまで終了される、シャットダウンされる、又はサスペンドされる(例えば、サンプリングデーモン31_102によりトリガーされる)。
ステップ31_308にて、ヒューリスティックプロセス31_120が再開始され得る。例えば、サンプリングデーモン31_102が、登録メッセージ内のヒューリスティックプロセス31_120により指定された基準が満たされることを判定すると、サンプリングデーモン31_102は、ヒューリスティックプロセス31_120を呼び出し得る。
ステップ31_310にて、ヒューリスティックプロセス31_120は、サンプリングデーモン31_102からイベントデータを取得し得る。例えば、ヒューリスティックプロセス31_120は、再開始されると、サンプリングデーモン31_102に、追加属性イベントデータについて問い合わせ得る。ヒューリスティックプロセス31_120は、他のシステムリソース、プロセス、センサなどと相互作用し、必要に応じてデータを収集するよう構成され得る。
ステップ31_312にて、ヒューリスティックプロセス31_120は、イベントデータを処理し、構成要素設定を判定し得る。例えば、ヒューリスティックプロセス31_120は、サンプリングデーモン31_102からのイベントデータ及び/又は統計、並びに/若しくは、システムの他の構成要素から収集されたデータを使用し、モバイルデバイス31_100の様々な構成要素の設定をどのように調整するか判定し得る。例えば、モバイルデバイス31_100が熱すぎるとヒューリスティックプロセス31_120が判定する場合、ヒューリスティックプロセス31_120は、モバイルデバイス31_100のどの電力設定がモバイルデバイス31_100の作動温度を下げるかを判定し得る。
ステップ31_314にて、ヒューリスティックプロセス31_120は、判定した構成要素設定を制御マルチプレクサ31_124に送信し得る。例えば、制御マルチプレクサ31_124は、ヒューリスティックプロセス31_120から受信したデバイス設定推奨及び他のシステム構成要素(例えば、熱デーモン31_110)を仲裁し得る。制御マルチプレクサ31_124は続いて、受信した設定推奨に従って、モバイルデバイス31_100の様々な構成要素(例えば、CPU、GPU、ベースバンドプロセッサ、ディスプレイなど)を調整し得る。
イベントの予想
一部の実装では、イベントデータストア31_104(例えば、過去データ)に記憶された属性イベントデータは、サンプリングデーモン31_102により使用され、将来のイベントの発生が予測され得る。例えば、「bundleId」属性イベントが分析され、ユーザがアプリケーション(例えば、任意のアプリケーション又は特定のアプリケーション)をいつ呼び出すかが予測され得る。特定の電子メールフォルダを指定する「mailapp.mailbox」イベント(例えば、「work」フォルダに設定された「mailbox」属性値)が分析され、「mailapp」アプリケーションの特定の電子メールフォルダをユーザがいつ使用するかが予測され得る。
イベント履歴ウィンドウ指定
一部の実装では、イベント予想は、イベント履歴ウィンドウ指定に基づいて生成され得る。例えば、ウィンドウ指定はクライアントにより生成され、クライアントによるイベント予想の基礎となる対象期間又は再現対象期間を指定し得る。ウィンドウ指定は、4つの構成要素、すなわち、開始時間、終了時間、再現幅、及び再現頻度、を含み得る。開始時間は、ウィンドウを開始すべき、履歴での日付及び/又は時間を示し得る。終了時間は、ウィンドウを終了すべき、履歴での日付及び/又は時間を示し得る。再現幅は、クライアントが対象とする時間のブロック(例えば、開始時間にて始まる4時間)を示し得る。再現頻度は、開始時間にて始まる時間のブロックが、どれほどの頻度で繰り返されるべきかを示し得る(例えば、毎8時間、毎2日間、毎週、毎2週など)。
一部の実装では、指定された時間のブロック(例えば、対象期間)内に発生するイベントのみが、イベント予想の生成時に分析される。例えば、現在の日付が2014年5月13日の場合、ウィンドウ指定は、2014年5月11日午後12:00の開始日、5月12日午後12時の終了日、1時間の再現幅、及び4時間の再現頻度を指定し得る。このウィンドウ指定は、開始が2014年5月11日午後12:00で、終了が2014年5月12日午後12:00の毎4時間に発生する各1時間ブロック(例えば、対象期間)内のイベントデータを、サンプリングデーモン31_102に分析させる(例えば、ブロック1:2014年5月11日午後12:00~1:00、ブロック2:2014年5月11日午後4:00~5:00、ブロック3:2014年5月11日午後8:00~9:00など)。一部の実装では、再現幅が指定されない場合、開始時間から終了時間までの全体期間が分析され、イベントが予想される。
一部の実装では、サンプリングデーモン31_102は、イベント履歴ウィンドウ指定を自動的に生成し得る。例えば、サンプリングデーモン31_102は、イベントデータストア31_104に記憶されたイベント履歴データ内のパターンを特定し得る。クライアントが「bundleId」イベントの予測を要求するものの、ウィンドウ指定を提供しない場合、サンプリングデーモン31_102は、例えば、アプリケーションが通常ユーザにより、午前8:00~9:00、午前11:30~午後1:30、及び午後7:00~11:00に呼び出されることを示す、「bundleId」属性/イベントのパターンを特定し得る。サンプリングデーモン31_102は、それらの期間を含むウィンドウ指定を自動的に生成し、他の時刻を除外し、要求された予想が、要求された属性に関連する期間に集中するようにし得る。同様に、サンプリングデーモン31_102は、特定の(例えば、指定した)属性値に対するイベント履歴ウィンドウ指定を自動的に生成し得る。例えば、「mailapp」の属性値を有する「bundleId」イベントの予測をクライアントが要求する場合、続いてサンプリングデーモン31_102は、イベント履歴データを分析し、「mailapp」値に関連する発生パターンを特定し得る。「mailapp」「bundleId」属性値がイベント履歴データ内に毎日、午前10:00、午後12:00、及び午後5:00に記録される場合、続いてサンプリングデーモン31_102は、それらの時刻前後の対象期間を指定するウィンドウ指定を生成し得る。
時間的予想
一部の実装では、属性又は属性値に対して時間的予想が生成され得る。時間的予想は、例えば、属性又は属性値に関連付けられたイベントが発生する可能性のある時刻を示し得る。例えば、サンプリングデーモン31_102のクライアントは、先週(例えば、過去7日間)にわたる、「bundleId」属性(例えば、アプリケーション起動)に対する時間的予想を要求し得る。予想を生成するため、1日の24時間が、96の15分タイムスロットに分割され得る。過去7日間のそれぞれの特定のタイムスロット(例えば、午後1:00~1:15)に対して、サンプリングデーモン31_102は、「bundleId」イベントが発生したかを判定し、そのタイムスロットに対するスコアを生成し得る。7日間の内の2日間内の特定のタイムスロット内で「bundleId」イベントが発生した場合、「bundleId」イベントが特定のタイムスロット(例えば、午後1:00~1:15)内に発生する可能性(例えば、スコア)は0.29(例えば、2÷7)である。7日間の内の4日間での異なるタイムスロット(例えば、午後12:15~12:30)内に「bundleId」イベントが発生した場合、「bundleId」イベントがそのタイムスロット内に発生する可能性(例えば、スコア)は0.57(例えば、4÷7)である。
同様に、クライアントは、特定の属性値に対する時間的予想を要求し得る。例えば、「bundleId」属性(例えば、「bundleId」イベント)に対する時間的予想を要求することの代わりに、クライアントは、「bundleId」属性値が「mailapp」である「bundleId」イベントに対する時間的予想を要求し得る。従って、クライアントは、「mailapp」アプリケーションをユーザが呼び出す可能性のある時刻(例えば、15分タイムスロット)のインジケーションを受信し得る。
一部の実装では、時間的予想は、イベント履歴ウィンドウ指定に基づいて生成され得る。例えば、クライアントが、4時間の対象期間を指定するウィンドウ指定を提供する場合、時間的予想は、その4時間の対象期間内の15分タイムスロットに対する可能性スコアのみ生成する。例えば、対象期間が、過去3日間のそれぞれに対する午後12:00~4:00に対応する場合、16のタイムスロットが4時間の対象期間内に生成され、16の15分タイムスロットのそれぞれに対してスコアが生成される。指定された4時間の対象期間外のタイムスロットに対しては、スコアは生成されない。
ピア予想
一部の実装では、サンプリングデーモン31_102は、属性に対するピア予想を生成し得る。例えば、ピア予想は、同じ属性の全ての値(例えば、発生)に対して、対象期間中に発生する、属性に対する値の相対的可能性を示し得る。例えば、サンプリングデーモン31_102のクライアントは、要求と共に提出されたウィンドウ指定により指定される、対象期間(例えば、午前11:00~午後1:00)にわたる、「bundleId」属性のピア予想を要求し得る。対象期間中、属性値「mailapp」、「contacts」、「calendar」、「webbrowser」、「mailapp」、「webbrowser」、及び「mailapp」を有する「bundleId」イベントが発生すると、「mailapp」の発生する相対的可能性(すなわち、スコア)は0.43(例えば、3/7)であり、「webbrowser」の発生する相対的可能性は0.29(例えば、2/7)であり、及び、「contacts」又は「calendar」の発生する相対的可能性は0.14(例えば、1/7)である。
一部の実装では、サンプリングデーモン31_102のクライアントは、ある属性に対するピア予想を要求し得る。例えば、クライアントが、ある属性に対するピア予想を、その属性に対する値を指定することなくことの要求する場合、続いてサンプリングデーモン31_102は、ピア予想を生成し、対象期間内の、その属性の全ての値に対する様々な蓋然性スコアを返す。上記のピア予想例を使用して、サンプリングデーモン31_102は、属性値及びスコアのリストを、要求クライアントに返す。例えば、「mailapp」:0.43、「webbrowser」:0.29、「contacts」:0.14、「calendar」:0.14。
一部の実装では、サンプリングデーモン31_102のクライアントは、ある属性値に対するピア予想を要求し得る。例えば、クライアントは、「mailapp」の値を有する「bundleId」属性に対するピア予想を要求し得る。サンプリングデーモン31_102は、上述するように、クライアントにより提供されたウィンドウ指定に従って、「bundleId」属性に対するピア予想を生成し得る。例えば、サンプリングデーモン31_102は、「mailapp」の発生の相対的可能性(すなわち、スコア)を0.43(例えば、3/7)、「webbrowser」の発生の相対的可能性を0.29(例えば、2/7)、及び、「contacts」又は「calendar」の発生の相対的可能性を0.14(例えば、1/7)と、計算し得る。サンプリングデーモン31_102は、要求された「mailapp」値に対するスコア(例えば、0.43)をクライアントに返し得る。要求された値が、ウィンドウ指定により指定された対象期間内に再提示されない場合、続いて0の値がクライアントに返される。
パノラマ予想
一部の実装では、パノラマ予想が生成され、属性イベントの発生が予測され得る。例えば、上述する時間的及びピア予想は、単一の属性又は属性値に対するイベントの発生の相対頻度を使用し、その属性の将来の発生を予測する。この「頻度」予想タイプ(例えば、発生の頻度)は、予想要求に指定された属性又は属性値に関連付けられたデータのみを使用する。対照的に、「パノラマ」予想は、予想要求に指定された属性又は属性値に対して受信したイベントデータ内の他のデータ(例えば、位置データ、ビーコンデータ、ネットワーク品質など)を使用し得る。一部の実装では、パノラマ予想は、他の属性又は属性値に関連付けられたイベントからのデータを使用し得る。例えば、クライアントが、指定された属性又は属性値に対する時間的又はピア予想を要求し、また、予想タイプ(すなわち、予想フレーバ)がパノラマであることを指定すると、サンプリングデーモン31_102は、指定された属性又は属性値に対するイベントデータ及び他の属性及び属性値に対するイベントデータを分析し、指定されたイベントと、サンプリングデーモン31_102により受信された他のイベントとの間の相互関係を特定する。例えば、値「mailapp」を有する属性「bundleId」に対する頻度予想は、0.4のスコアを、午前9:00の15分タイムスロットに指定してよい。しかし、パノラマ予想は、「mailapp」属性値とユーザの職場位置との間に強い相互関係があると判定してよい。例えば、パノラマ予想は、職場に関連付けられた位置にユーザが居るかを判定してよく、mailappが、午前9:00の15分タイムスロット内の90%の時間に呼び出される。従って、サンプリングデーモン31_102は、午前9:00の15分タイムスロットに対する「mailapp」予想スコアに、より高いスコア(例えば、0.9)を指定し得る。
同様に、サンプリングデーモン31_102は、「mailapp」「bundleId」属性値と、「motionState」属性値「stationary」に関連付けられたイベントの発生との間に、強い相互関係を見い出してよい。例えば、サンプリングデーモン31_102は、mailappアプリケーションの使用と、静止状態のモバイルデバイス31_100との間の相互関係が95%であることを判定し得る。サンプリングデーモン31_102は、mailappの使用と、動いているモバイルデバイス31_100との間の相互関係が5%であることを判定し得る。従って、サンプリングデーモン31_102は、モバイルデバイスが動いている又は静止しているか否かに基づいて、特定のタイムスロットに対する「mailapp」属性値に対する予想スコア(例えば、0.95又は0.05)を調整し得る。
スコアボーディング-頻度対パノラマ
一部の実装では、サンプリングデーモン31_102は、どの予想タイプがイベントのよりよいプレディクタであるかを追跡し続け得る。例えば、サンプリングデーモン31_102が属性イベントを受信すると、サンプリングデーモン31_102は、受信したイベントに関連付けられた属性又は属性値に対する頻度及びパノラマ予想を生成し、どの予想タイプが、受信した属性イベントのよりよいプレディクタとなるかを判定し得る。言い換えると、サンプリングデーモン31_102は、属性イベントを受信する直前に予想が生成された場合でも、頻度予想タイプ又はパノラマ予想タイプが、受信した属性イベントのよりよいプレディクタとなるか否かを判定し得る。
一部の実装では、サンプリングデーモン31_102は、各予想タイプ(例えば、既定、パノラマ)に対するスコアボードを維持し得る。例えば、頻度予想タイプが、受信したイベントに対するよりよいプレディクタとなると、サンプリングデーモン31_102が判定する度に、サンプリングデーモン31_102は、頻度予想タイプに対するスコア(例えば、カウンタ)をインクリメントし得る。パノラマ予想タイプが、受信したイベントに対するよりよいプレディクタとなると、サンプリングデーモン31_102が判定する度に、サンプリングデーモン31_102は、パノラマ予想タイプに対するスコア(例えば、カウンタ)をインクリメントし得る。
一部の実装では、サンプリングデーモン31_102は、各予想タイプ(例えば、頻度、パノラマ)に対して生成されたスコアに基づいて、既定予想タイプを判定し得る。例えば、スコアボーディングプロセスが、パノラマ予想タイプに対してより高いスコアを生成する場合、続いてパノラマが、既定予想タイプとして指定される。スコアボーディングプロセスが、頻度予想タイプに対してより高いスコア生成する場合、続いて頻度が、既定予想タイプとして指定される。クライアントが、ピア又は時間的予想を要求すると、クライアントは、予想タイプ(例えば、パノラマ、頻度、既定)を指定し得る。クライアントが予想タイプ指定しない場合、続いて既定予想タイプが使用され、ピア及び/又は時間的予想が生成される。
属性統計
一部の実装では、クライアントは、サンプリングデーモン31_102が、ある属性又は属性値に対する統計を生成することを要求し得る。例えば、予想の生成と同様に、クライアントは、ある属性又は属性値に対する統計が生成されるべき履歴ウィンドウを指定し得る。サンプリングデーモン31_102は、指定された属性又は属性値に対する統計を生成する際に、指定された履歴ウィンドウ内に発生する属性イベントを分析する。クライアント要求は、以降のどの統計がサンプリングデーモン31_102により生成されるべきかを指定し得る。
一部の実装では、サンプリングデーモン31_102は、属性又は属性値に対する「count」統計を生成し得る。例えば、「count」統計は、指定された履歴ウィンドウ内に発生する、指定された属性又は属性値に関連付けられたイベントの数をカウントし得る。
一部の実装では、サンプリングデーモン31_102は、属性値に基づく統計を生成し得る。例えば、指定された履歴ウィンドウ内のある属性に対する最初の値及び/又は最後の値をクライアントが要求し得、サンプリングデーモン31_102がそれらを返し得る。指定された履歴ウィンドウ内の指定された属性に関連付けられた全ての値に対する、最小、最大、平均、モード、及び標準偏差をクライアントが要求し得、サンプリングデーモン31_102がそれらを返し得る。サンプリングデーモン31_102は、要求されたパーセンタイル(例えば、10分の1、25分の1、50分の1、75分の1、90分の1など)にどの値が関連付けられているかを生成又は判定し得る。
一部の実装では、サンプリングデーモン31_102は、期間統計を生成し得る。例えば、サンプリングデーモン31_102は、属性の開始イベントと属性の停止イベントとを比較することにより、属性値に関連付けられた期間を判定し得る。開始イベントがいつ発生したかと、停止イベントがいつ発生したかとの間の時間差が、イベントの期間となる。一部の実装では、指定された履歴ウィンドウ内の指定された属性又は属性値に関連付けられた全ての期間に対する、最小、最大、平均、モード、及び標準偏差をクライアントが要求し得、サンプリングデーモン31_102がそれらを返し得る。サンプリングデーモン31_102は、要求されたパーセンタイル(例えば、10分の1、25分の1、50分の1、75分の1、90分の1など)にどの期間値が関連付けられているかを生成又は判定し得る。
一部の実装では、サンプリングデーモン31_102は、イベントインターバル統計を生成し得る。例えば、サンプリングデーモン31_102は、属性イベントの最初の発生を、属性イベントの続く発生と比較することにより、属性値に関連付けられたイベントの到着又は報告に関連付けられた時間インターバルを判定し得る。最初のイベントがいつ発生したかと、続くイベントがいつ発生したかとの間の時間差が、イベントの発生間の時間インターバルとなる。一部の実装では、指定された履歴ウィンドウ内の指定された属性又は属性値に関連付けられた全ての時間インターバル値に対する、最小、最大、平均、モード、及び標準偏差をクライアントが要求し得、サンプリングデーモン31_102がそれらを返し得る。サンプリングデーモン31_102は、要求されたパーセンタイル(例えば、10分の1、25分の1、50分の1、75分の1、90分の1など)にどのインターバル値が関連付けられているかを生成又は判定し得る。
アプリケーションを最新に維持する-更新をフェッチする
図31-4は、アプリケーションのバックグラウンドフェッチ更新を実行するためのシステム例31_400を示す。一部の実装では、モバイルデバイス31_100は、モバイルデバイス31_100のバックグラウンドプロセスとして、アプリケーションを予測的に起動するよう構成され得、ユーザがアプリケーションを呼び出すことを見越して、アプリケーションがコンテンツをダウンロードし、それらのインタフェースを更新し得るようにする。例えば、サンプリングデーモン31_102により維持されたユーザアプリケーション起動履歴データ(例えば、「system.bundleId」開始イベント)が使用され、ユーザがいつ、モバイルデバイス31_100のアプリケーションを呼び出すかを予想(予測)し得る。これらの予測されたアプリケーションは、ユーザ呼び出しの前に、アプリケーションマネジャ31_106により起動され得、ユーザ呼び出しアプリケーションが現在のコンテンツをダウンロードし、アプリケーションのグラフィカルインタフェースを更新するのをユーザが待つ必要のないようにする。
アプリケーションをいつ起動するか判定する-時間的予想
一部の実装では、アプリケーションマネジャ31_106は、サンプリングデーモン31_102からのアプリケーション呼び出し予想を要求し得る。例えば、サンプリングデーモン31_102は、アプリケーションマネジャ31_106が、モバイルデバイス31_100上のアプリケーション起動(例えば、「bundleId」開始イベント)の時間的予想を要求できるインタフェースを提供し得る。サンプリングデーモン31_102は、上述するように、ユーザがアプリケーションをモバイルデバイス31_100上でいつ呼び出したかを示すイベント(例えば、「bundleId」開始イベント)を受信し得る。アプリケーションマネジャ31_106が、「bundleId」属性に対する時間的予想を要求すると、サンプリングデーモン31_102は、イベントデータストア31_104に記憶された「bundleId」イベントを分析し、アプリケーションが通常その日(例えば、15分タイムスロット)のいつユーザにより呼び出されるかを判定し得る。例えば、サンプリングデーモン31_102は、上述する時間的予想メカニズムを使用して、特定の時刻又は期間が、ユーザによるアプリケーション呼び出しを含む蓋然性を計算し得る。
一部の実装では、アプリケーションマネジャ31_106の初期化中に、アプリケーションマネジャ31_106は、サンプリングデーモン31_102からの「bundleId」属性に対する時間的予想を要求し得る。例えば、アプリケーションマネジャ31_106は、モバイルデバイス31_100の起動中に呼び出され又は起動され得る。アプリケーションマネジャ31_106が初期化されている間に、アプリケーションマネジャ31_106は、次の24時間に対するアプリケーション呼び出しの時間的予想を要求し得る(例えば、「bundleId」開始イベント)。最初の24時間が経過すると、アプリケーションマネジャ31_106は、別の24時間の時間的予想を要求し得る。この24時間の予想サイクルは、例えば、モバイルデバイス31_100がオフとされるまで継続し得る。
一部の実装では、サンプリングデーモン31_102は、24時間に対するアプリケーション呼び出し(例えば、「bundleId」開始イベント)時間的予想を生成し得る。例えば、サンプリングデーモン31_102は、24時間を、96の15分タイムスロットに分割し得る。サンプリングデーモン31_102は、以前の作動日数(例えば、1から7)にわたって、どのアプリケーションが呼び出されたか、及び、そのアプリケーションがいつ呼び出されたか、を、サンプリングデーモン31_102により収集され、イベントデータストア31_104に記憶された、アプリケーション起動履歴データ(例えば、「bundleId」開始イベントデータ)に基づいて、判定し得る。
一部の実装では、サンプリングデーモン31_102が、「bundleId」属性に対する時間的予想を生成すると、時間的予想セクションに上述するように、(例えば、いずれの)アプリケーションが、15分タイムスロット内に呼び出される蓋然性に従って、各15分タイムスロットがランク付けされ得る。
96のタイムスロットのそれぞれに対するアプリケーション呼び出しの蓋然性が計算されると、サンプリングデーモン31_102は、最も大きい、非ゼロ蓋然性を有するある数のタイムスロット(例えば、最大64)を選択し、そのタイムスロットを特定する情報をアプリケーションマネジャ31_106に返し得る。例えば、サンプリングデーモン31_102は、予想された、ユーザが呼び出すアプリケーション起動(例えば、0を超えるスコアを有するタイムスロット)に対応する、15分タイムスロットの開始に対応する時間のリスト(例えば、午後12:00、午後1:45など)をアプリケーションマネジャ31_106に送信し得る。
一部の実装では、アプリケーションマネジャ31_106は、サンプリングデーモン31_102により提供されたタイムスロットに基づいて、タイマを設定し得る。例えば、アプリケーションマネジャ31_106は、サンプリングデーモン31_102により特定されたタイムスロットに対応する、1つ以上のタイマ(例えば、アラーム)を作成又は設定し得る。各タイマが終了すると(例えば、午後12:00に)、アプリケーションマネジャ31_106がウェイクし(例えば、スリープ状態にあった場合、サスペンドしていた場合など)、現在の15分タイムスロットに対してどのアプリケーションを起動すべきかを判定し得る。従って、タイマは、対応するタイムスロット内にユーザにより呼び出される可能性のあるアプリケーションに対するバックグラウンド更新フェッチをトリガーし得る。
一部の実装では、他のイベントが、アプリケーションに対するバックグラウンド更新フェッチをトリガーし得る。例えば、アプリケーションマネジャ31_106は、様々なイベント対象を、サンプリングデーモン31_102に登録し得る。例えば、アプリケーションマネジャ31_106は、セルラー無線機やベースバンドプロセッサをオンにすること、又は、ネットワーク接続(例えば、セルラー又はWi-Fi)を確立することに関連するイベントにおける対象(例えば、属性)を登録し得、アプリケーションマネジャ31_106が、これらのイベントが発生すると、通知され得るようにし、及び、バックグラウンドアプリケーション起動をトリガーし得、アプリケーションの更新が、アクティブなネットワーク接続を利用し得るようにする。モバイルデバイス31_100をロック解除すること、ディスプレイをオンにすること、及び/又は、他の相互作用は、以下に詳述するように、バックグラウンドアプリケーション起動をトリガーし、更新をフェッチし得る。一部の実装では、アプリケーションマネジャ31_106は、いずれのバックグラウンド更新が、以前の時間(単位:分、例えば、7分間)内に実行された場合、バックグラウンドアプリケーション起動をトリガーせず、更新をフェッチしない。
どのアプリケーションを起動するか判定する-ピア予想
一部の実装では、アプリケーションマネジャ31_106は、サンプリングデーモン31_102が、現在時刻に起動するアプリケーションのリストを提供することを要求し得る。例えば、タイマが、ある15分タイムスロットに終了すると(例えば、満了する)、又は、トリガーイベントが検出されると、アプリケーションマネジャは、「bundleId」属性に対する、サンプリングデーモン31_102からのピア予想を要求し得、サンプリングデーモン31_102が、どのアプリケーションを、現在のタイムスロットに起動するかを判定し得るようにする。サンプリングデーモン31_102は続いて、アプリケーション識別子、及び、各アプリケーションが、現在時刻前後にユーザにより呼び出される蓋然性を示す、対応するスコアのリストを含むピア予想を生成し得る。
図31-5は、モバイルデバイス31_100上のアプリケーションに対するユーザ呼び出しの蓋然性を判定するためのピア予想を示す。例えば、ダイアグラム31_500は、最近の履歴ウィンドウ指定(例えば、以前の2時間)に対するピア予想を示す。ダイアグラム31_530は、日毎履歴ウィンドウ指定(例えば、以前の7日間に対する日毎の4時間ブロック)に対するピア予想を示す。ダイアグラム31_560は、週毎履歴ウィンドウ指定(例えば、4時間ブロック、毎7日間に1度)に対するピア予想を示す。一部の実装では、サンプリングデーモン31_102は、異なる重畳ウィンドウ指定に対するピア予想を使用して時系列モデリングを実行し、アプリケーションに対するモバイルデバイス31_100上でのユーザ呼び出しの蓋然性を判定し得る。アプリケーションがピア予想に現れない場合、そのアプリケーションに指定される蓋然性値は0であり得る。
一部の実装では、時系列モデリングは、異なる時間ウィンドウに対するピア予想を生成することにより実行され得る。例えば、最近の、日毎の、及び週毎のイベント履歴ウィンドウ指定に基づいて、最近の、日毎の、及び週毎のピア予想が生成され得る。最近の、日毎の、及び週毎のピア予想は続いて、以下に詳述するように組み合わされ、どのアプリケーションを現在時刻に起動するかが判定され得る。
一部の実装では、ユーザ呼び出しの蓋然性は、最近のアプリケーション呼び出しに基づいて生成され得る。例えば、ユーザ呼び出しの蓋然性は、以前の2時間を対象期間として指定するウィンドウ指定を伴う「bundleId」属性に対するピア予想を実行することにより生成され得る(例えば、過去2時間内の、ユーザ開始アプリケーション起動)。
ダイアグラム31_500により示すように、アプリケーション起動履歴データ(例えば、「bundleId」イベントデータ)は、以前の2時間内に起動されたアプリケーション数(例えば、4)を示し得る。例えば、ドット及び円が、アプリケーションを表し得、中空の円は、単一の特定のアプリケーション(例えば、電子メール、ソーシャルネットワークアプリケーションなど)を表し得、これらの中空の円は、他のアプリケーションの呼び出しを表す。最近の履歴(例えば、以前の2時間)を使用する、特定のアプリケーションに関連付けられたピア予想蓋然性スコアは、特定のアプリケーションの呼び出し回数(例えば、2回)を、以前の2時間内の、アプリケーション呼び出し合計回数(例えば、4回)で除算することにより計算され得る。ここに示す場合では、最近のアプリケーション起動履歴データを使用する、特定のアプリケーションに関連付けられた蓋然性は、2/4又は50%である。
ユーザ呼び出しの蓋然性は、アプリケーション起動の日毎の履歴に基づいて生成され得る(例えば、以前の7日間のそれぞれの、現在時刻±2時間に、どのアプリケーションが起動されたか)。例えば、ユーザ呼び出しの蓋然性は、24時間の再現頻度(例えば、24時間毎に再現幅を繰り返す)を伴う対象期間(例えば、最新の2時間内のユーザ開始アプリケーション起動)として、現在時刻±2時間(例えば、4時間の再現幅)を指定するウィンドウ指定を伴う「bundleId」属性に対するピア予想を実行することにより生成され得る。
ダイアグラム31_530は、アプリケーションに対するユーザ呼び出しの蓋然性を判定するために使用され得る、アプリケーション起動(例えば、「bundleId」開始イベント)の日毎の履歴を示す。例えば、ダイアグラム31_530の各ボックスは、特定のアプリケーション(例えば、中空の円)に対するユーザ呼び出しの蓋然性(例えば、ピア予想スコア)を判定するために分析され得る、(例えば、ピア予想のウィンドウ指定内に指定されるような)以前の日数(例えば、7)のそれぞれでの時間ウィンドウ(例えば、現在時刻±2時間)を示す。日毎の履歴データを使用する特定のアプリケーションに関連付けられた蓋然性は、全てのウィンドウ内の特定のアプリケーションの呼び出し回数(例えば、6)を、全てのウィンドウ内のアプリケーション呼び出し合計回数(例えば、22)で除算することにより計算され得る。ここに示す場合では、日毎の起動履歴データを使用する、特定のアプリケーションに関連付けられた蓋然性は、6/22又は27%である。
ユーザ呼び出しの蓋然性は、アプリケーション起動の週毎の履歴に基づいて生成され得る(例えば、7日前の現在時刻±2時間に、どのアプリケーションが起動されたか)。例えば、ユーザ呼び出しの蓋然性は、7日間の再現頻度(例えば、7日間毎に再現幅を繰り返す)を伴う対象期間(例えば、最新の2時間内のユーザ開始アプリケーション起動)として、現在時刻±2時間(例えば、4時間の再現幅)を指定するウィンドウ指定を伴う「bundleId」属性に対するピア予想を実行することにより生成され得る。
ダイアグラム31_560は、アプリケーションに対するユーザ呼び出しの蓋然性を判定するために使用され得る、アプリケーション起動(例えば、「bundleId」開始イベント)の週毎の履歴を示す。例えば、現在の日時が水曜日の午後1時である場合、アプリケーションに対するユーザ呼び出しの蓋然性(例えば、ピア予想スコア)は、以前の水曜日中の、午後1時での、又はその前後(例えば、±2時間)の時間ウィンドウ中に起動されたアプリケーションに基づき得る。ここに示す場合では、週毎のアプリケーション起動履歴データを使用する、特定のアプリケーションに関連付けられた蓋然性(例えば、中空の円)は、1/4又は25%である。
一部の実装では、最近の、日毎の、及び週毎のユーザ呼び出しの蓋然性は、各アプリケーションに対するスコアを生成するために組み合わせられ得る。例えば、最近の、日毎の、及び週毎の蓋然性は、最近の(r)、日毎の(d)、及び週毎(w)の蓋然性の加重平均を計算することにより組み合わせられ得る。各蓋然性は関連するウェイトを有し得、各ウェイトは、各蓋然性の、実証的に判定された所定の重要性に対応し得る。全てのウェイトの合計は1に等しくなり得る。例えば、最近の起動に基づく蓋然性に対するウェイトは0.6であり得、日毎の蓋然性に対するウェイトは0.3であり得、週毎の蓋然性に対するウェイトは0.1であり得る。従って、組み合わされる蓋然性スコアは、0.6(r)、0.3(d)、及び0.1(w)の合計であり得る(例えば、スコア=0.6r+0.3d+0.1w)。
図31-4を参照して戻ると、最近の、日毎の、及び週毎の蓋然性に基づいて、各アプリケーションに対する蓋然性スコアが判定されると、サンプリングデーモン31_102は、最も高い、非ゼロ蓋然性スコアを有するアプリケーションの構成変更可能数(例えば、3)を、起動、ダウンロード/更新のバックグラウンドフェッチの実行のために、アプリケーションマネジャ31_106に推奨し得る。
一部の実装では、サンプリングデーモン31_102は、上述する「what to launch」分析から、バックグラウンド更新(例えば、フェッチング)アプリケーション更新をサポートしないアプリケーション、ユーザがバックグラウンド更新をオフにしたアプリケーション、バックグラウンド更新以外を選択したアプリケーション、及び/又は、フォアグランドアプリケーションがすでに最新である可能性があるために、ユーザにより現在使用されているアプリケーション若しくはモバイルデバイス31_100のディスプレイ上のフォアグランド内にあるアプリケーションを除外し得る。
一部の実装では、アプリケーションマネジャ31_106が、推奨されたアプリケーションをサンプリングデーモン31_102から受信すると、アプリケーションマネジャ31_106は、サンプリングデーモン31_102に、推奨されたアプリケーションのそれぞれを起動してもよいか尋ね得る。サンプリングデーモン31_102は、そのローカルアドミッション制御メカニズム(以下に説明する)を使用し、アプリケーションマネジャに対し、特定のアプリケーションを起動してもよいか否かを判定し得る。例えば、アプリケーションマネジャ31_106は、推奨されたアプリケーションの1つを特定する属性値を伴う「bundleId」属性を、サンプリングデーモン31_102に送信し、サンプリングデーモン31_102に、その属性値でのアドミッション制御を実行することを要求し得る。
ローカルアドミッション制御
一部の実装では、サンプリングデーモン31_102は、属性イベントに対するアドミッション制御を、モバイルデバイス31_100上で実行し得る。例えば、アドミッション制御は、属性又は属性値について実行され、クライアントアプリケーションが、その属性に関連付けられたアクティビティ、アクション、機能、イベントなどを実行し得るか否かが判定され得る。例えば、サンプリングデーモン31_102のクライアントは、「mailapp」の値を有する属性「bundleId」のアドミッションを要求し得る。このアドミッション要求を受信したことに応じて、サンプリングデーモンは、クライアントが、「mailapp」属性値に関連付けられたアクティビティを実行し得るか否かを判定し得る(例えば、「mailapp」アプリケーションを実行する)。
一部の実装では、アドミッション制御は、ボーターからの割当量及びフィードバックに基づいて実行され得る。例えば、サンプリングデーモン31_102がアドミッション制御要求を受信する際に、この要求は、属性イベントを許可することに関連付けられたコストを含み得る(例えば、アプリケーションを起動すること、「bundleId」開始イベント)。サンプリングデーモン31_102は、システムワイドデータ割当量、システムワイドエネルギ割当量、及び/又は、特定の属性割当量をチェックし、属性に関連付けられた割当量が、属性イベントをカバーするための残りの十分なクレジットを有するか否かが判定され得る。属性に関連付けられた割当量がない(例えば、属性が、割当量のある属性ではない)場合、続いて属性イベントは許可され、進められ得る(例えば、サンプリングデーモン31_102は、アドミッション制御要求に応じて「ok」値を返す)。属性に関連付けられた割当量があるものの、イベントのコストをカバーすることに十分なクレジットが、関連する割当量に残っていない場合、属性イベントは許可されず、進められない(例えば、サンプリングデーモン31_102は、アドミッション制御要求に応じて「no」値を返す)。
属性に関連付けられた割当量があり、イベントのコストをカバーすることに十分なクレジットが、割当量に残っている場合、続いてボーターは、属性を進めるための許可に投票するか尋ねられる。全てのボーターが「yes」に投票すると、続いて属性イベントは許可され、進められる(例えば、サンプリングデーモン31_102は、アドミッション制御要求に応じて「ok」値を返す)。いずれのボーターが「no」に投票すると、続いて属性イベントは許可されず、進められない(例えば、サンプリングデーモン31_102は、アドミッション制御要求に応じて「no」値を返す)。割当量及びボーターに関する詳細は、以下の段落に説明する。
一部の実装では、属性又は属性値が、イベントにて、アドミッション制御要求に先行して、ある期間(例えば、7日間、一か月など)内にサンプリングデーモン31_102に報告されていない場合、続いてサンプリングデーモン31_102は、アドミッション制御要求に応じて「never」値を返し得る。例えば、サンプリングデーモン31_102は、時間的又はピア予想を生成し、属性又は属性値に関連付けられたイベントをいつ許可又はアドミットするかを判定し得る。例えば、発生すると予期されていないイベントを先取する必要はない(例えば、ユーザにより呼び出されないアプリケーションに対するデータをプリフェッチする必要はない)。
アドミッション制御-割当量
一部の実装では、サンプリングデーモン31_102は、属性又は属性値に関連付けられた割当量に基づいて、アドミッション制御を実行し得る。例えば、サンプリングデーモン31_102は、ある属性又は属性値に関連付けられたアクティビティ(例えば、イベント)を、その属性又は属性値に関連付けられた割当量に基づいて許可する(例えば、アドミットする)か否かを判定し得る。一部の実装では、サンプリングデーモン31_102は、属性又は属性値をアドミットしてもよいか否かを、モバイルデバイス31_100に対して構成されたシステムワイドエネルギ割当量及び/又はシステムワイドデータ割当量に基づいて判定し得る。サンプリングデーモン31_102は、現在の時刻(例えば、現在時間)に対する残りのデータ及びエネルギ割当量の追跡を維持するためのカウンタを含め、課金データストア31_402に割当量を記憶し得る。ある属性又は属性値に対してアドミッション制御が実行されることをクライアントが要求すると、クライアントは、その属性又は属性値に関連付けられたイベントの発生を許可する又はアドミットするコストを表す数値を指定し得る。その属性に関連付けられた割当量に十分なクレジットがある場合、続いて属性イベントが、以下に説明するボーターにより投票される。その属性に関連付けられた割当量に十分なクレジットがない場合、続いて属性イベントは許可されず、進められない。
システムワイドエネルギ割当量
一部の実装では、サンプリングデーモン31_102は、エネルギ割当量に基づいて、属性又は属性値をアドミットしてもよいか否かを判定し得る。例えば、エネルギ割当量は、ミリアンペア時での、モバイルデバイスのバッテリの容量のパーセンテージ(例えば、5%)である。
一部の実装では、エネルギ割当量は、24時間の各時間に分配され得る。例えば、サンプリングデーモン31_102は、収集され、イベントデータストア31_104内に記憶されたバッテリ使用統計(例えば、「system.energy」イベント)を使用し、24時間の各時間に対する、典型的な過去のバッテリ使用量を反映する分布を判定し得る。例えば、各時間は、上述するように、履歴的又は統計的に判定されたエネルギ使用分布又はアプリケーションの使用予想に基づいて、エネルギ割当量のパーセンテージが指定され得る。各時間は、0より大きい(例えば、0.1%、1%など)少なくとも最小量のエネルギ割当量を有することとなる。例えば、10%のエネルギ割当量は、使用データを伴わない時間に分配され得、残りの90%のエネルギ割当量は、過去のエネルギ又はアプリケーションの使用に従って、アクティブな使用時間に分配され得る。各時間が経過すると、現在のエネルギ割当量に、新たな/現在時間に対するエネルギ割当量が補充される。以前の時間から残ったいずれのエネルギ割当量は、現在時間の割当量に加えられる。
一部の実装では、課金データストア31_402は、エネルギ割当量がどれほど残っていて利用可能であるかを判定するためのカウンタを含み得る。例えば、課金データストア31_402は、現在時間に対するエネルギ割当量を伴って初期化される1つ以上のカウンタを含み得る。エネルギ割当量が属性イベントにより使用されると、このエネルギ割当量は、対応する量がデクリメントされ得る。例えば、アプリケーションマネジャ31_106は、「bundleId」開始又は停止イベントを使用して、アプリケーションがいつ起動又は終了されたかを、サンプリングデーモン31_102に通知し得る。今度は、サンプリングデーモン31_102が、アプリケーションがいつ起動されたか、及び、アプリケーションがいつ終了されたかを、電力モニタ31_109に通知し得る。開始及び停止時間に基づき、電力モニタ31_109は、アプリケーションによりエネルギがどれほど使用されたかを判定し得る。電力モニタ31_109は、アプリケーションにより使用された電力量を、サンプリングデーモン31_102に送信し得(例えば、「system.energy」属性イベントを提出することにより)、サンプリングデーモン31_102は、使用された電力量に相当する分を、適切なカウンタからデクリメントし得る。
一部の実装では、エネルギ割当量が現在時間に対して残っていない場合、サンプリングデーモン31_102は、属性に対するアドミッション要求を断り得る。例えば、課金データストア31_402内のエネルギ割当量カウンタが0にデクリメントされると、エネルギ割当量は残らず、エネルギ割当量に紐付けられた属性に関連付けられたアクティビティ、イベントなどはアドミットされ得ない。十分なエネルギ割当量が現在時間に対して残っており、属性イベントのコストをカバーする場合、サンプリングデーモン31_102は、アドミッション制御要求に応じて「yes」値を返し、属性イベントを許可して進め得る。
一部の実装では、モバイルデバイス31_100が外部電源に接続されていると、サンプリングデーモン31_102は、アドミッション制御決定を、エネルギ割当量に基づかない。例えば、モバイルデバイス31_100が外部電源に接続されている場合、残りのエネルギ割当量が0でも、属性イベントは阻止されない。
システムワイドデータ割当量
一部の実装では、サンプリングデーモン31_102は、データ割当量に基づいて、属性をアドミットしてもよいか否かを判定し得る。例えば、サンプリングデーモン31_102は、サンプリングデーモン31_102により収集され、イベントデータストア31_104に記憶された統計データ(例えば、「system.networkBytes」属性イベント)に基づいて、モバイルデバイス31_100により消費されたネットワークデータの平均量を判定し得る。ネットワークデータ割当量は、ユーザ/モバイルデバイス31_100により消費された平均日毎ネットワークデータのパーセンテージとして計算され得る。あるいは、ネットワークデータ割当量は、所定の値又は構成変更可能な値であり得る。
一部の実装では、ネットワークデータ割当量は、24時間の各時間に分配され得る。例えば、各時間は、最小割当量(例えば、0.2MB)が割り当てられ得る。ネットワークデータ割当量の残りの量は、過去ネットワークデータ使用量に従って、24時間のそれぞれに分配され得る。例えば、サンプリングデーモン31_102は、過去統計データ(例えば、「system.networkBytes」属性イベント)に基づいて、1日の各時間にネットワークデータがどれほど消費されたか判定し、各時間に消費されたデータの量に従って、パーセンテージを指定し得る。各時間が経過すると、現在のデータ割当量に、新たな/現在時間に対するデータ割当量が補充される。以前の時間から残ったいずれのデータ割当量は、現在時間のデータ割当量に加えられ得る。
一部の実装では、課金データストア31_402は、ネットワークデータ割当量に対するデータカウンタを維持し得る。ネットワークデータが消費されると、データカウンタは、消費されたネットワークデータの量に従ってデクリメントされ得る。例えば、消費されたネットワークデータの量は、アプリケーションマネジャ31_106によりサンプリングデーモン31_102に提供されたアプリケーション開始及び停止イベント(例えば、「bundleId」開始又は停止イベント)に基づいて判定され得る。あるいは、消費されたネットワークデータの量は、ネットワークインタフェースを管理するプロセスにより提供され得る(例えば、ネットワークデーモン31_406、バックグラウンド転送デーモン31_1302)。例えば、ネットワークインタフェース管理プロセスは、サンプリングデーモン31_102に、アプリケーション開始及び停止イベント(例えば、「bundleId」イベント)と相互関係し得る「system.networkBytes」イベントを報告し、アプリケーションが消費したデータはどれほどかを判定し得る。
一部の実装では、サンプリングデーモン31_102は、どのネットワークインタフェースタイプ(例えば、セルラー又はWi-Fi)が使用され、ネットワークデータが消費されたかの追跡を維持し、そのネットワークインタフェースタイプに基づいて、消費されたネットワークデータの量を判定し得る。消費されたネットワークデータの量は、各インタフェースタイプに指定されたウェイト又は係数に従って調整され得る。例えば、セルラーデータインタフェース上で消費されたネットワークデータは、1の係数が指定され得る。Wi-Fiインタフェース上で消費されたネットワークデータは、10分の1(0.1)の係数が指定され得る。消費された合計ネットワークデータは、消費されたセルラーデータを、10で除算された、消費されたWi-Fiデータに加算することにより計算され得る(例えば、合計データ=1×セルラーデータ+0.1×Wi-Fi)。従って、Wi-Fi経由で消費されたデータは、セルラーデータ接続経由で消費されたデータよりも、データ割当量に与える影響が非常に少ない。
一部の実装では、現在時間に対してデータ割当量が残っていない場合、サンプリングデーモン31_102は、アドミッション制御要求に、「no」リプライと共に応答し得る。例えば、課金データストア31_402内のデータ割当量カウンタが0にデクリメントされると、データ割当量が残らず、データ割当量に紐付けられた属性に関連付けられたアクティビティは許可されない。現在時間内の残りのデータ割当量が十分にあり、属性イベントのデータコストをカバーする場合、続いてサンプリングデーモン31_102は、アドミッション制御要求に、「yes」リプライと共に応答し得る。
属性割当量
一部の実装では、属性は、割当量が関連付けられ得る。例えば、所定の属性又はカスタム(動的に定義された)属性は、サンプリングデーモン31_102のAPIを通して割当量が関連付けられ得る。サンプリングデーモン31_102のクライアント(例えば、アプリケーション、ユーティリティ、機能、第三者アプリケーションなど)は、属性をクライアント定義割当量と関連付けることの要求をサンプリングデーモン31_102に実行し得る。この割当量は、例えば、クレジット数であり得る。
割当量が割り当てられると、割当量のある属性に関連付けられた、報告されたイベントは、そのイベントに関連付けられたコストを示し得、その割当量が、指定されたコストに従ってデクリメントされ得る。例えば、所定のシステム属性「system.btlescan」は、モバイルデバイス31_100上に、他のBluetooth低エネルギデバイスからの信号に対するスキャンをモバイルデバイス31_100がいつ実行するかを示すよう構成され得る。Bluetooth LEスキャンは、例えば、バックグラウンドタスクとして実行され得る。Bluetooth LEスキャンは、Bluetoothラジオをオンにする必要があり、これはつまり、モバイルデバイス31_100のバッテリからのエネルギを消費する。Bluetooth LEスキャンが過剰にエネルギを消費しないようにするため、「btlescan」属性は、割当量(例えば、24クレジット)が指定され得る。「btlescan」イベントが生成され、サンプリングデーモン31_102に報告される度に、このイベントは、コストと共に報告され得る(例えば、1)。このコストは割当量から減じられ得、「btlescan」属性がイベントにて報告される度に、24の割当量から1がデクリメントされる。
一部の実装では、属性割当量は、ある期間にわたって分配され得る。例えば、「btlescan」属性割当量は、24時間にわたって均等に分配され得、「btlescan」属性が、1時間毎に1クレジットのみを支出し得るようにできる。一部の実装では、属性割当量は、期間の終了時に補充され得る。例えば、「btlescan」属性割当量に対する期間が24時間の場合、続いて「btlescan」属性割当量は、24時間毎に補充され得る。
一部の実装では、属性に関連付けられた割当量は、別の割当量のサブセット(例えば、下位割当量)であり得る。例えば、属性に対する割当量は、上述するシステムワイドデータ又はシステムワイドエネルギ割当量などの、別の割当量の一部として指定され得る。例えば、「mailapp.mailbox」属性は、システムに対して割り当てられたデータ割当量の5%の割当量に関連付けられ得る。「btlescan」属性は、システムに対して割り当てられたエネルギ割当量の3%の割当量に関連付けられ得る。下位割当量(例えば、「mailbox」割当量)は、上位割当量(例えば、システムデータ割当量)に紐付けられ得、下位割当量をデクリメントすることはまた、上位割当量をデクリメントすることであるようにする。一部の実装では、上位割当量が0に減じられると、続いて下位割当量もまた0に減じられる。例えば、システムデータ割当量が0である場合、「mailbox」属性割当量をデクリメントするであろう、「mailbox」属性についてのイベントが報告されなくとも、「mailbox」属性割当量もまた0である。
一部の実装では、サンプリングデーモン31_102クライアントは、サンプリングデーモン31_102が、ある属性に対して残っている割当量を返すことを要求し得る。例えば、クライアントは、サンプリングデーモン31_102に、「btlescan」属性に対する残りの割当量の要求を行い得る。24の割当量のあるクレジットの3つが使用された場合、続いてサンプリングデーモン31_102は、21の値を要求クライアントに返し得る。
一部の実装では、関連付けられた属性に対する割当量内にクレジットが残っていない場合、クライアントは、指定数の割当量のあるクレジットを費やすイベントを報告し得る。割当量内に残りのクレジットがない場合に、サンプリングデーモン31_102が、1クレジットを費やすイベント(例えば、「btlescan」イベント)を受信すると、サンプリングデーモン31_102は、割当量をデクリメントし(例えば、-1)、イベントを報告したクライアントにエラーを返し得る。このエラーは、例えば、属性が、残りの割当量を有しないことを示し得る。
属性割当量の形成
一部の実装では、属性割当量は、過去使用情報に基づいて分配され得る。例えば、割当量のある属性に対してイベントが報告されると、その属性に対する割当量を使用することの要求(例えば、コストに関連付けられたイベント)が、経時的に追跡され得る。例えば、24の割当量が「btlescan」属性に割り当てられる場合、この割当量は初期的に、上述するように、24時間にわたって均等に割り当てられ得る。割当量に関連付けられた属性に対するイベントが経時的に報告されると、サンプリングデーモン31_102は報告されたイベントを分析し、24時間のいつ、イベントが最も発生する可能性があるかを判定し得る。例えば、「btlescan」イベントは、午前8時、午後12時、及び午後6時前後に頻繁に発生するが、午前2時前後にはほとんど発生しないと、サンプリングデーモン31_102は判定し得る。サンプリングデーモン31_102は、このイベント頻度情報を使用し、24時間にわたる「btlescan」属性の割当量の分布を形成し得る。例えば、サンプリングデーモンは、午前8時、午後12時、及び午後6時に対応する各タイムスロットに対して2の割当量クレジットを割り当て、0の割当量クレジットを、午前2時に関連付けられたタイムスロットに対して割り当て得る。
アドミッション制御-ボーター
一部の実装では、サンプリングデーモン31_102は、モバイルデバイス31_100上で実行されている他のソフトウェア(例えば、プラグイン、ユーティリティ、アプリケーション、ヒューリスティックプロセス)からのフィードバックに基づいて、アドミッション制御を実行し得る。例えば、他のソフトウェアは、アドミッション制御に対するボーターとして、サンプリングデーモン31_102と共に機能するよう構成され得る。例えば、種々のボーター(例えば、アプリケーション、ユーティリティ、デーモン、ヒューリスティックなど)が、サンプリングデーモン31_102に登録され、アドミッション制御決定を投票し得る。例えば、サンプリングデーモン31_102は、モバイルデバイス31_100の熱条件を監視するボーター、モバイルデバイス31_100のCPU使用量を監視するボーター、及び/又は、モバイルデバイス31_100のバッテリ電力レベルを監視するボーターとのインタフェースとなるよう構成され得る。サンプリングデーモン31_102がアドミッション制御要求を受信すると、各ボーター(例えば、熱、CPU、及びバッテリ)は、指定された属性に関連付けられたアクティビティが許可されるべきか否かについて投票するよう求められ得る。全てのボーターが「yes」を投票すると、続いて属性がアドミットされる(例えば、属性に関連付けられたアクティビティが生じることが許可される)。単一のボーターが「no」を投票すると、続いて属性はアドミットされない(例えば、属性に関連付けられたアクティビティは許可されない)。一部の実装では、ボーターは、サンプリングデーモン31_102に動的に(例えば、ランタイムにて)追加され、アドミッション制御システムに追加機能を提供し得るプラグインソフトウェアとして構成され得る。一部の実装では、ボーターは、属性又は属性値に関連付けられたイベントをアドミットする又は許可するか否かを判定する時に、上述する時間的及びピア予想メカニズムを使用し得る。
ネットワークデーモン
一部の実装では、ネットワークデーモン31_406は、アドミッション制御ボーターとして構成され得る。ネットワークデーモン31_406は、ネットワークデーモン31_406が、サンプリングデーモン31_102から投票要求を受信し、投票(例えば、yes、no)応答をサンプリングデーモン31_102に提供できるようにする、サンプリングデーモン31_102の投票APIを使用するよう構成され得る。例えば、ネットワークデーモン31_406は、サンプリングデーモン31_102から、属性及び/又は属性値を含む投票要求を受信し得る。ネットワークデーモン31_406は、例えば、モバイルデバイス31_100がボイスコールに接続されており、Wi-Fiネットワーク接続に接続されていない場合に、サンプリングデーモン31_102が、属性又は属性値に関連付けられたイベントをアドミット又は許可すべきでないことを示し得る。ユーザがボイスコールに接続されており、Wi-Fi接続に接続されていない場合に、例えば、バックグラウンド更新プロセス(例えば、フェッチプロセス)がボイスコールの品質に悪影響を与えない又はこれを損なわないよう、ネットワークデーモン31_406は、バックグラウンド更新プロセスを起動することに関連付けられたイベント(例えば、「bundleId」開始イベント)を許可しない。従って、ネットワークデーモン31_406は、モバイルデバイス31_100が呼び出しに接続されており、Wi-Fiに接続されていない場合に、投票要求に応じて「no」値を返し得る。
一部の実装では、モバイルデバイス31_100が低品質セルラーネットワーク接続を有する場合、サンプリングデーモン31_102が属性イベントを許可又はアドミットすべきでないことを、ネットワークデーモン31_406は示し得る。低品質セルラー接続は、転送速度及び/又はスループットが既定閾値を下回ると判定され得る。例えば、モバイルデバイス31_100が低品質セルラーネットワーク接続を有し、Wi-Fiに接続されていない場合、ネットワークデーモン31_406は、その低品質ネットワーク接続を使用することによりバッテリエネルギ及びセルラーデータを浪費するであろう属性イベントのアドミッション又は実行(例えば、不十分なセルラー接続を経由してのデータのダウンロード又はアップロードを試みるであろうアプリケーションの起動)を、サンプリングデーモン31_102がボーター要求を行う際に「no」値を返すことにより阻止し得る。
一部の実装では、ネットワークデーモン31_406が、不十分なネットワーク条件、又は、ネットワークデータ使用量若しくはシステムパフォーマンスに影響を与えるであろう一部の他の条件を示す情報を有しない場合、ネットワークデーモン31_406は、要求された属性のアドミッションについて「yes」を投票し得る。
熱デーモン
一部の実装では、熱デーモン31_110アプリケーションは、アドミッション制御ボーターとして構成され得る。熱デーモン31_110は、熱デーモン31_110が、サンプリングデーモン31_102から投票要求を受信し、投票(例えば、yes、no)応答をサンプリングデーモン31_102に提供できるようにする、サンプリングデーモン31_102の投票APIを使用するよう構成され得る。例えば、熱デーモンは、サンプリングデーモン31_102から、属性及び/又は属性値を含む投票要求を受信し得る。熱デーモン31_110が熱イベントを検出すると、サンプリングデーモン31_102が、属性又は属性値に関連付けられたイベントをアドミット又は許可すべきでないことを、熱デーモン31_110は示し得る。例えば、熱デーモン31_110は、モバイルデバイス31_100の温度を監視し、「thermalLevel」属性及び対応する温度値を含むイベントを生成することにより、温度値をサンプリングデーモン31_102に報告し得る。
一部の実装では、モバイルデバイス31_100の温度が閾値温度値を超えていると熱デーモン31_110が判定すると、熱デーモン31_110は、モバイルデバイス31_100の作動温度を更に上げる可能性のある属性イベントを熱デーモン31_102が許可することを、属性(例えば、「bundleId」)イベントに投票することの要求をサンプリングデーモン31_102が熱デーモン31_110に送信する際に「no」値を返すことにより阻止し得る。
一部の実装では、異常な熱条件が現在存在すると、サンプリングデーモン31_102は、熱デーモン31_110からの投票のみを求める。例えば、サンプリングデーモン31_102は、モバイルデバイス31_100が正常な熱条件にて作動しているか否かを示す熱条件値(例えば、真、偽)を維持し得る。モバイルデバイス31_100の現在の熱条件が正常である場合、続いて熱条件値は、例えば、真であり得る。モバイルデバイス31_100の現在の熱条件が異常である場合(例えば、熱すぎる、閾値温度を超える)、続いて熱条件値は偽であり得る。初期的に、熱条件値は真に設定され得る(例えば、正常な作動温度)。作動温度が閾値温度を超えて上昇したことを検出すると、熱デーモン31_110は、異常な作動温度(例えば、偽)を示す、熱条件値に対する更新された値をサンプリングデーモン31_102に送信し得る。モバイルデバイス31_100が、閾値温度を下回る温度に冷めると、熱デーモン31_110は、熱条件値を更新し、正常な作動温度(例えば、真)を示し得る。
サンプリングデーモン31_102が、ある属性に対するアドミッション制御要求を受信すると、サンプリングデーモン31_102は熱条件値をチェックし、属性イベントのアドミッション(容認)について投票するよう熱デーモン31_110に求めるか否かを判定し得る。熱条件値が正常な作動温度を示す場合(例えば、値が真)、サンプリングデーモン31_102は、熱条件値を、熱デーモン31_110からの「yes」の投票と解釈する。
熱条件値が異常な作動温度を示す場合(例えば、値が偽)、サンプリングデーモン31_102は、属性及び/又は属性値を熱デーモン31_110に送信し、熱デーモン31_110が特定の属性又は属性値について投票できるようにする。
一部の実装では、熱デーモン31_110は、属性及び/又は属性値についてどのように投票するか(例えば、yes、no)を、モバイルデバイス31_100の現在の熱条件及び属性に対するピア予想に基づいて判定し得る。例えば、熱デーモン31_110は、サンプリングデーモン31_102からの属性に対するピア予想を要求し得る。熱デーモン31_110は、対象期間内の現在時刻(例えば、±1時間、2時間など)を含むウィンドウ指定を生成することにより、現在時刻に対するピア予想を要求し得る。熱デーモン31_110は、対象期間内に現れる属性の各値に対する可能性スコアを示すピア予想を、サンプリングデーモン31_102から受信する。例えば、熱デーモン31_110が、「bundleId」属性に対するピア予想を要求する場合、熱デーモン31_110は、「bundleId」値(例えば、アプリケーション識別子)及び関連する予測(例えば、蓋然性、可能性)スコアのリストを受信し得る。例えば、対象期間中、属性値「mailapp」、「contacts」、「calendar」、「webbrowser」、「mailapp」、「webbrowser」、及び「mailapp」を有する「bundleId」イベントが発生すると、「mailapp」の発生する相対的可能性(すなわち、スコア)は0.43(例えば、3/7)であり、「webbrowser」の発生する相対的可能性は0.29(例えば、2/7)であり、及び、「contacts」又は「calendar」の発生する相対的可能性は0.14(例えば、1/7)である。一部の実装では、熱デーモン31_110は、スコアに従って、属性値のリストを順序付けし得る(例えば、最高スコアを最上位に、最低スコアを最下位に)。例えば、上記「bundleId」属性値に対して最上位から最下位に順序付けされたリストは次のようになる、すなわち、「mailapp」、「webbrowser」、「contacts」、及び「calendar」。
一部の実装では、熱デーモン31_110は、属性値が、順序付けされたリスト内のどこにあるかに基づいて、属性値についてのyesをいつ投票するかを判定し得る。例えば、熱デーモン31_110により検討中の属性値が、サンプリングデーモン31_102から受信したピア予想リスト内に無い場合、続いて属性値は、熱デーモン31_110から「no」投票を受信する。属性値がピア予想リスト内にあり、リスト内で閾値レベル(例えば、インデックス)未満(例えば、スコアに基づいて、属性の下位の25%内)である場合、続いて熱デーモン31_110は、属性について「no」を投票する。属性値がピア予想リスト内にあり、リスト内の閾値レベルを超える場合(例えば、スコアに基づいて、属性の上位の75%内)、続いて熱デーモン31_110は、属性について「yes」を投票する。投票が判定されると、熱デーモン31_110は、「yes」(例えば、真)又は「no」(例えば、偽)投票をサンプリングデーモン31_102に返す。
一部の実装では、熱デーモン31_110は、最大閾値レベルと共に構成され、全ての属性値について「no」を投票することを回避し得る(例えば、一部の属性イベントが発生するようにする)。最大閾値レベルは、順序付けされたピア予想リスト内の属性値の50%であり得る(例えば、上位50%が「yes」投票を得て、下位50%が「no」投票を得る)。熱デーモン31_110は従って、「yes」投票を受信する属性値を、「no」投票を受信する属性値とは別個のものとする閾値レベルを、最低スコアを伴う属性値の0%~50%の間で調整し得る。
一部の実装では、「yes」又は「no」投票を判定するための閾値レベルは、モバイルデバイス31_100の熱レベル(例えば、温度)に比例し得る。例えば、熱デーモン31_110は、最大作動熱レベル(Lh)及び正常作動レベル(Ln)と共に構成され得る。熱デーモン31_110は、現在の作動熱レベル(Lc)を判定し、いくらの熱範囲のパーセンタイル(例えば、Lh-Ln)で、モバイルデバイス31_100が現在作動しているかを判定し得る(例えば、Lc-Ln/Lh-Ln=%)。熱デーモン31_110は、計算されたパーセンタイルを使用し、0~50%の属性値のどの部分が、「no」投票を受信するべきかを判定し得る。例えば、現在の作動熱レベルが、65%の熱範囲となるよう計算されている場合、ピア予想スコアによる下位32.5%の属性値が続いて、熱デーモン31_110から「no」投票を受信する。従って、あまり重要でない属性値が「no」投票を受信する一方で、最も重要な属性値は「yes」投票を受信する。上記「bundleId」例を参照して戻ると、上記「bundleId」属性値に対して最上位から最下位に順序付けされたリストが次のようになる場合、すなわち、「mailapp」、「webbrowser」、「contacts」、及び「calendar」、続いて「calendar」は「no」投票を受信し、「mailapp」、「webbrowser」、及び「contacts」は「yes」投票を受信する(例えば、「mailapp」、「webbrowser」、及び「contacts」は最も使用されるアプリケーションである)。例えば、アプリケーションマネジャ31_106が、「bundleId」属性に対する、どのアプリケーションを起動するか判定するためのアドミッション制御要求を行うと、続いて「mailapp」、「webbrowser」、及び「contacts」アプリケーションが起動され、「calendar」アプリケーションは起動されない。
別の実施例として、熱デーモン31_110は、「mailapp.mailbox」属性について投票するよう求められ得る。ピア予想は、最も頻繁にアクセスされたフォルダから、頻繁にアクセスされないフォルダを示す、メールフォルダの順序付けされたリストを作る「mailapp.mailbox」属性値に対して生成され得る(例えば、「inbox」、「personal」、「work」、「family」、「spam」、及び「trash」)。下位32.5%の属性値が「no」投票を受信する場合、続いて「spam」及び「trash」が「no」投票を受信する。例えば、「mailbox」アプリケーションが、「mailapp.mailbox」属性に対する、電子メールをフェッチするフォルダを判定するためのアドミッション制御要求を行う場合、続いて「mailapp」アプリケーションは、「inbox」、「personal」、「work」、及び「family」フォルダに対する電子メールをフェッチし、「spam」及び「trash」フォルダに対する電子メールをフェッチしない。一部の実装では、熱デーモン31_110から「no」投票を受信した属性又は属性値は、サンプリングデーモン31_102により維持された熱条件値が、正常な作動温度(例えば、真値)を示すために、リセットされると、通知され得る。例えば、サンプリングデーモン31_102は、「no」投票を受信した、クライアント、属性、及び属性値を特定するデータを記憶し得る。更新された熱条件値(例えば、真)を熱デーモン31_110から受信すると、サンプリングデーモン31_102は、「no」投票を受信したクライアントに通知を送信し、そのクライアントに、以前に拒否された属性又は属性値に対する別のアドミッション制御要求を試みるよう促し得る。一部の実装では、クライアントは、サンプリングデーモン31_102から促されることなく、アドミッション制御要求を再送し得る。例えば、クライアントは、ある期間の経過後にアドミッション制御要求をクライアントにリトライさせる内部タイマを有してよい。
アクティビティモニタ
一部の実装では、アクティビティモニタアプリケーション408は、アドミッション制御ボーターとして構成され得る。アクティビティモニタ31_408は、アクティビティモニタ31_408が、サンプリングデーモン31_102から投票要求を受信し、投票(例えば、yes、no)応答をサンプリングデーモン31_102に提供できる、サンプリングデーモン31_102の投票APIを使用するよう構成され得る。例えば、アクティビティモニタ31_408は、サンプリングデーモン31_102から、属性及び/又は属性値を含む投票要求を受信し得る。アクティビティモニタ31_408は、モバイルデバイス31_100が、閾値量(例えば、90%)を超えるメモリリソース又はCPUリソースを使用している場合、サンプリングデーモン31_102が、属性又は属性値に関連付けられたイベントをアドミット又は許可すべきでないことを示し得る。例えば、モバイルデバイス31_100がすでに、モバイルデバイス31_100のメモリリソース又はCPUリソースの大半を使用する多くのアプリケーション又はプロセスを実行している場合、追加アプリケーションをバックグラウンドで起動することは、残りのメモリリソースを使用し尽くすため、モバイルデバイス31_100のパフォーマンスを低下させる可能性がある。従って、メモリ又はCPU使用量が閾値(例えば、75%)を超えるとアクティビティモニタ31_408が判定すると、アクティビティモニタ31_408は、アプリケーションマネジャ31_106が追加アプリケーションを起動することを、サンプリングデーモン31_102が、「bundleId」属性イベントに投票することの要求を送信する際に「no」値を返すことにより阻止し得る。モバイルデバイス31_100のメモリ及び/又はCPUリソースが閾値使用量未満であるとアクティビティモニタ31_408が判定する場合、アクティビティモニタ31_408は、サンプリングデーモン31_102からの投票要求に応じて、「yes」値を返し得る。
バックグラウンドフェッチアプリケーションを起動する
一部の実装では、アプリケーションマネジャ31_106がサンプリングデーモン31_102にアドミッション制御要求を行い、「yes」リプライを受信すると、アプリケーションマネジャ31_106は、特定されたアプリケーション(例えば、「bundleId」属性値により特定された、アプリケーション31_108)を、モバイルデバイス31_100の動作環境のバックグラウンドにて呼び出し得る又は起動し得る。例えば、アプリケーション31_108はバックグラウンドにて起動され得、アプリケーション31_108が起動されたことをユーザにわからないようにする。アプリケーション31_108は続いて、ネットワーク(例えば、インターネット)経由でコンテンツサーバ31_404と通信し、ユーザに表示するために、更新されたコンテンツをダウンロードし得る。従って、ユーザが続いて、アプリケーション31_108を選択する(例えば、アプリケーションがフォアグランドに来るようにする)と、アプリケーション31_108がサーバ31_404からコンテンツをダウンロードし、アプリケーションのユーザインタフェースをリフレッシュするのを待つ必要なく、ユーザには、現在の、最新のコンテンツが提示される。
一部の実装では、モバイルデバイス31_100が充電されており、Wi-Fiに接続されている際に、アプリケーションマネジャ31_106は、バックグラウンドフェッチ有効アプリケーションを起動するよう構成され得る。例えば、サンプリングデーモン31_102は、モバイルデバイス31_100が外部電源に接続され(例えば、「cablePlugin」属性イベントに基づいて)、Wi-Fiを経由してネットワーク(例えば、インターネット)に接続され(例えば、受信したイベントに基づいて)たことを判定し、信号をアプリケーションマネジャ31_106に送信し、アプリケーションマネジャ31_106に、以前の時間量(例えば、7日間)内に使用されていたフェッチ有効アプリケーションを起動させ得る。
バックグラウンドフェッチプロセス例
図31-6は、アプリケーションを予測的に起動してバックグラウンド更新を実行するためのプロセス例31_600のフロー図である。例えば、プロセス31_600は、アプリケーションマネジャ31_106及びサンプリングデーモン31_102により実行され、図31-4のコンテンツサーバ31_404などのネットワークリソースからデータ更新をフェッチするよう構成されたバックグラウンドアプリケーションをいつ起動するかを判定し得る。プロセス31_600のステップに関連する追加説明は、上記図31-4及び図31-5を参照して見ることができる。
ステップ31_602にて、アプリケーションマネジャ31_106は、サンプリングデーモン31_102からアプリケーション呼び出し予想を受信し得る。例えば、アプリケーションマネジャ31_106は、モバイルデバイス31_100の起動中に起動され得る。その初期化中、アプリケーションマネジャ31_106は、次の24時間にわたり、モバイルデバイス31_100のユーザにより呼び出される可能性のあるアプリケーションの予想を要求し得る。例えば、アプリケーションマネジャ31_106は、属性「bundleId」に対する時間的予想を要求し得る。この予想は、アプリケーションがいつ起動されるかを示し得る。例えば、24時間は15分ブロックに分割され得、各15分ブロックは、その15分ブロック中にユーザがアプリケーションを呼び出す蓋然性に関連付けられ得る。ユーザがアプリケーションを呼び出す可能性がある場合、アプリケーションマネジャ31_106に返される予想は、最大で64の15分ブロック時間を特定し得る。
ステップ31_604にて、アプリケーションマネジャ31_106は、アプリケーション起動予想に基づいて、タイマを設定し得る。例えば、アプリケーションマネジャ31_106は、サンプリングデーモン31_102によりアプリケーションマネジャ31_106に返されたアプリケーション起動予想内に特定された15分ブロックのそれぞれに対するタイマ又はアラームを設定し得る。
ステップ31_606にて、アプリケーションマネジャ31_106は、サンプリングデーモン31_102に、どのアプリケーションを起動するか特定することを要求し得る。例えば、タイマが終了すると、又は、アラームが止まると、アプリケーションマネジャは、スリープ状態にあった又はサスペンドしていた場合にウェイクし、サンプリングデーモン31_102からの、現在の15分ブロック時間に起動するアプリケーションのリストを要求し得る。サンプリングデーモン31_102は、モバイルデバイス31_100上で、バックグラウンドで起動されるべきアプリケーションのリストを返し得る。例えば、アプリケーションマネジャ31_106は、属性「bundleId」に対するピア予想を要求し得る。このピア予想は、現在の15分タイムスロット内に、「bundleId」属性のどの値が最も報告される可能性があるかを示し得る(例えば、どのアプリケーションがユーザにより最も呼び出される可能性があるか)。
ステップ31_608にて、アプリケーションマネジャ31_106は、アプリケーションを起動してもよいか尋ねる要求をサンプリングデーモン31_102に送信し得る。例えば、「bundleId」ピア予想要求に応じてサンプリングデーモン31_102により特定された各アプリケーションに対し、アプリケーションマネジャ31_106は、サンプリングデーモン31_102に、そのアプリケーションを起動してもよいか否か尋ね得る。例えば、アプリケーションマネジャ31_106が起動を試みているアプリケーションに対応する「bundleId」属性の特定の値でのアドミッション制御をサンプリングデーモン31_102が実行することを、アプリケーションマネジャ31_106は要求し得る。サンプリングデーモン31_102は、アドミッション制御要求から、アプリケーションを起動してもよい場合に「yes」を返し、アプリケーションを起動してはよくない場合に「no」を返し、又はアプリケーションを起動してはならない場合に「never」を返し得る。
ステップ31_610にて、アプリケーションマネジャ31_106はアプリケーションを起動し得る。例えば、サンプリングデーモン31_102が「ok」(例えば、ok、yes、真などの)応答をアドミッション制御要求に返す場合、アプリケーションマネジャ31_106は、モバイルデバイス31_100のバックグラウンドプロセスとしてアプリケーションを起動する。サンプリングデーモン31_102が「no」又は「never」応答をアドミッション制御要求に返す場合、アプリケーションマネジャ31_106はアプリケーションを起動しない。
ステップ31_612にて、アプリケーションマネジャ31_106は、アプリケーション起動通知をサンプリングデーモン31_102に送信し得る。例えば、アプリケーションマネジャ31_106は、「bundleId」開始イベントをサンプリングデーモン31_102に送信し、起動されたアプリケーションの実行を記録し得る。
ステップ31_614にて、アプリケーションマネジャ31_106は、起動されたアプリケーションが終了したことを検出し得る。例えば、アプリケーションマネジャ31_106は、起動されたアプリケーションがいつ、モバイルデバイス31_100上で実行されなくなるかを判定し得る。
ステップ31_616にて、アプリケーションマネジャ31_106は、アプリケーション終了通知をサンプリングデーモン31_102に送信し得る。例えば、アプリケーションマネジャ31_106は、「bundleId」終了イベントをサンプリングデーモン31_102に送信し、アプリケーションの終了を記録し得る。
図31-7は、モバイルデバイス31_100上でアプリケーションをいつ起動するかを判定するためのプロセス例31_700のフロー図である。例えば、図31-4を参照して上に詳述するように、プロセス31_700は、アプリケーション使用統計(例えば、「bundleId」属性イベントデータ)、データ並びにエネルギ割当量、及び、モバイルデバイス動作並びに環境条件に基づいて、アプリケーションをいつ起動するか、どのアプリケーションが起動されるべきか、及び、アプリケーションを起動してもよいか、を判定するために使用され得る。
ステップ31_702にて、サンプリングデーモン31_102は、アプリケーション起動予想要求をアプリケーションマネジャ31_106から受信し得る。例えば、アプリケーションマネジャ31_106は、サンプリングデーモン31_102からの、次の24時間にわたる、「bundleId」属性に対する時間的予想を要求し得る。24時間が経過すると、アプリケーションマネジャ31_106は、続く24時間にわたる、「bundleId」属性に対する時間的予想を要求し得る。例えば、アプリケーションマネジャ31_106は、24時間毎の、「bundleId」属性に対する時間的予想を要求し得る。
ステップ31_704にて、サンプリングデーモン31_102は、アプリケーション起動予想を判定し得る。例えば、アプリケーション起動予想(例えば、「bundleId」属性に対する時間的予想)は、ユーザ開始アプリケーション起動が、24時間中にいつ発生する可能性があるかの予測に使用され得る。24時間は、15分の時間ブロックに分割され得る。各15分の時間ブロック(例えば、24時間内には、15分の時間ブロックが96ある)に対し、サンプリングデーモン31_102は、図31-4を参照して上述するように、過去ユーザ呼び出し統計(例えば、「bundleId」開始イベント)を使用し、ユーザ開始アプリケーション起動が15分の時間ブロック内に発生する蓋然性を判定し得る。
ステップ31_706にて、サンプリングデーモン31_102は、アプリケーション起動予想をアプリケーションマネジャ31_106に送信し得る。例えば、サンプリングデーモン31_102は、ユーザ開始アプリケーション起動の、最も高い、非ゼロ蓋然性を有する、最大で64の15分ブロックを選択し得る。選択された15分ブロックのそれぞれは、15分ブロックに対する開始時間(例えば、午後12:45)により特定され得る。サンプリングデーモン31_102は、15分ブロック識別子のリストをアプリケーションマネジャ31_106に、アプリケーション起動予想(例えば、「bundleId」属性に対する時間的予想)として送信し得る。
ステップ31_708にて、サンプリングデーモン31_102は、現在時刻にどのアプリケーションを起動するかについての要求を受信し得る。例えば、アプリケーションマネジャ31_106は、現在時刻に又はその前後にどのアプリケーションが起動されるべきかをサンプリングデーモン31_102が判定することについての要求をサンプリングデーモン31_102に送信し得る。例えば、この要求は、現在の15分タイムスロットにわたる、「bundleId」属性に対するピア予想の要求であり得る。
ステップ31_710にて、サンプリングデーモン31_102は、現在時刻にわたり、過去イベントデータに基づいて、アプリケーションをスコアし得る。サンプリングデーモン31_102は、サンプリングデーモン31_102により収集された過去ユーザ開始アプリケーション起動データ(例えば、「bundleId」属性開始イベントデータ)に基づいて、ユーザが近い将来に起動する可能性のあるアプリケーションはどれかを判定し得る。サンプリングデーモン31_102は、図31-4及び図31-5を参照して上述するように、最近のアプリケーション起動データ、日毎のアプリケーション起動データ、及び/又は週毎のアプリケーション起動データを使用し、ユーザが現在時刻に又はその前後にアプリケーションを呼び出した過去の可能性に基づいて、アプリケーションをスコアし得る。
ステップ31_712にて、サンプリングデーモン31_102は、アプリケーション及びアプリケーションスコアをアプリケーションマネジャ31_106に送信し得る。例えば、サンプリングデーモン31_102は、最高スコア(例えば、ユーザにより呼び出される最も高い蓋然性)を有するアプリケーション(例えば、「bundleId」属性値)の数(例えば、3)を選択し、アプリケーションマネジャ31_106に送信し得る。サンプリングデーモン31_102は、以前の期間(例えば、以前の5分)内に起動されたアプリケーションを除外し得る。サンプリングデーモン31_102は、図31-4を参照して上述するように、最高スコアのアプリケーション及びそれぞれのスコアを特定する情報をアプリケーションマネジャ31_106に送信し得る。
ステップ31_714にて、サンプリングデーモン31_102は、アプリケーションを起動してもよいか否かを判定することの要求をアプリケーションマネジャ31_106から受信し得る。例えば、サンプリングデーモン31_102は、アプリケーション(例えば、「bundleId」値)を特定するアドミッション制御要求を受信し得る。
ステップ31_716にて、サンプリングデーモン31_102は、現在のモバイルデバイス条件及び割当量がアプリケーション起動を許可すると判定し得る。例えば、アドミッション制御要求に応じて、サンプリングデーモン31_102は、図31-4を参照して上に詳述するように、システムワイドデータ並びにエネルギ割当量、属性割当量、及びボーターフィードバックをチェックし、アプリケーションが、モバイルデバイス31_100上のバックグラウンドタスクとして起動されるべきか否かを判定し得る。
ステップ31_718にて、サンプリングデーモン31_102は、特定されたアプリケーションを起動してもよいことを示すリプライをアプリケーションマネジャ31_106に送信し得る。例えば、条件がバックグラウンドアプリケーション起動に対して良好である場合、サンプリングデーモン31_102は、アドミッション制御要求に応じて、「yes」値(例えば、ok、yes、真など)をアプリケーションマネジャ31_106に返し得、アプリケーションマネジャ31_106が、特定されたアプリケーションを起動し得るようにする。
短期トレンド
一部の実装では、サンプリングデーモン31_102は、属性がいつトレンドとなったかを検出するよう構成され得る。例えば、クライアントアプリケーションは、特定の属性における対象を、サンプリングデーモン31_102に登録してよい。その特定の属性がトレンドであることをサンプリングデーモン31_102が検出すると、サンプリングデーモン31_102は、その特定の属性がトレンドであることをクライアントに通知し得る。
例えば、アプリケーションマネジャ31_106は、「bundleId」属性における対象(又は、「bundleId」属性の特定の値)を登録し得る。「bundleId」属性(又は、その値)がトレンドであることをサンプリングデーモン31_102が判定すると、サンプリングデーモン31_102は、アプリケーションマネジャ31_106にそのトレンドを通知し得、アプリケーションマネジャ31_106が、モバイルデバイス31_100上のバックグラウンドにてそのトレンドアプリケーションを予測的に起動し得るようにする。例えば、あるアプリケーションがモバイルデバイス31_100のユーザにより繰り返し呼び出されている場合、そのアプリケーションはトレンドである。一部の場合には、トレンドアプリケーションは新たなアプリケーションであるか、又は、トレンドの前に、上述する「bundleId」属性ピア予想内に含まれない可能性のある、稀に使用されるアプリケーションである。従って、このトレンドアプリケーションは、上述するアプリケーション起動予想方法を使用して最新に維持されなくともよい。
属性トレンド検出の目的は、サンプリングデーモン31_102に繰り返し報告される属性(例えば、属性イベント)を検出することであり、より小さいケイデンスを報告することにおいて誤差が生じる、属性が起動されるおおよそのケイデンス(例えば、定期性)を判定することである。サンプリングデーモン31_102に繰り返し報告される属性は、「トレンド」と呼ばれる。この判定されたケイデンスは続いて、サンプリングデーモン31_102クライアントにより使用され、トレンド属性に関連付けられた次のイベントを見越して、機能又は作動を実行し得る。
例えば、この判定されたケイデンスは、上述するように、アプリケーションマネジャ31_106により使用され、アプリケーションマネジャ31_106をトリガーするタイマを設定し、トレンドアプリケーションがバックグラウンドで起動され得、ユーザがアプリケーションを呼び出すと、アプリケーションが更新されるようにする。例えば、アプリケーションに対してケイデンスが5分である場合、アプリケーションマネジャ31_106は、4分毎に終了するタイマを設定し、アプリケーションマネジャ31_106にアプリケーションを起動させ得、更新されたコンテンツをアプリケーションが受信し、ユーザにより再度呼び出される前に、アプリケーションのインタフェースを更新し得るようにする。
一部の実装では、本セクションに説明するトレンド検出メカニズムは、アプリケーション起動を超えて、繰り返されるソフトウェア又はネットワーク通知、アプリケーションのクラッシュなどの他のシステムイベントトレンドの検出に使用され得る。例えば、クライアントは、いずれの属性又は属性値における対象を登録し得、対象の属性がトレンドである場合の通知を受信し得る。
一部の実装では、サンプリングデーモン31_102は、多くの属性の挙動の追跡に使用され得るトレンドテーブルを維持し得る。このトレンドテーブルは、属性値識別フィールド(ATTID)、状態フィールド(STATE)、最終起動タイムスタンプ(LLT)、起動間の時間量を示す起動間ケイデンス(ILC)、及び信頼性フィールド(C)を含み得る。
図31-8は、トレンドテーブル内のエントリ(例えば、アプリケーション)に対する状態遷移を示すフロー図31_800である。初期的に、ステップ31_802にて、このトレンドテーブルは、ATTID、LLT、ILC、及びCフィールドが空であり(例えば、非適用(N/A))、STATEが「(無効)invalid」(I)に設定されている、空のエントリ(例えば、記録)を含み得る。時間tにて属性イベントが報告されると、利用可能なエントリ(例えば、状態Iにあるエントリ)についてトレンドテーブルがスキャンされる。潜在的な無効エントリの中から、使用するエントリを選択するために、様々な方法が使用され得る。例えば、ランダム無効エントリが選択され得る。あるいは、トレンドテーブル内の全ての空のエントリが連続して維持されるよう、無効エントリが選択され得る。無効エントリが存在しない場合、一時(T)状態にある最も古いエントリ(又は、ランダムエントリ)が、新たに起動されたアプリケーションを追跡するために選択され得る。I又はT状態エントリが存在しない場合、最も古い、新規(N)の状態エントリが、新たに報告された属性イベントを追跡するために選択され得る。
ステップ31_804にて、トレンドテーブルエントリが選択されると、新たに報告された属性イベントを追跡するための、選択されたエントリのSTATEフィールドが新規(N)に設定され得、ATTIDが、新たに報告された属性の属性値に設定され得、LLTフィールドが、現在時刻t(例えば、ウォールクロック時間)に設定され得、及び、ILC及びCフィールドが、所定の最小値ILC_MIN(例えば、1分)及びC_MIN(例えば、0)に設定される。
ステップ31_806にて、時間t'での同じ属性イベントの次の報告にて、属性に対するテーブル内のエントリが、それが依然として存在し、排除されていなければ、見つけられる(例えば、別の属性の追跡のために選択される)。エントリのSTATEが一時(T)に設定され、ILCが、LLTと現在のシステム時間(例えば、t'~t又はt'~LLT)との間の差に設定され、Cフィールドがインクリメントされる(例えば、所定の値C_DELTAにて)。あるいは、ILCフィールドが、実行平均などの、その旧値及び新値のあるの他の関数に設定され得る。
ステップ31_808にて、時間t''での同じ属性イベントの次の報告にて、属性に対するテーブル内のエントリが、それが依然として存在し、排除されていなければ、見つけられる(例えば、別の属性の追跡のために選択される)。エントリのSTATEが依然として、一時(T)に設定され得、ILCが、LLTと現在の(例えば、ウォール)クロック時間(例えば、t''~t'又はt''~LLT)との間の差に設定され、Cフィールドが再度インクリメントされる(例えば、所定の値C_DELTAにて)。
ステップ31_810にて、属性イベントのいくつかの報告の後、トレンドテーブルエントリのC値が閾値(例えば、C_HIGHTHRESHOLD)に到達すると(例えば、等しくなると)、ステップ31_811にて、属性エントリの状態がSTATE=Aに変更され得る。ステップ31_810にて、トレンドテーブルエントリのC値が閾値(例えば、C_HIGHTHRESHOLD)に到達しないと、エントリの値は、ステップ31_808に従って更新され得る。
状態「A」にある間に属性イベントが報告される時はいつでも、最後の報告と現在の報告の時間との間の時間がいくらかの時間量内にある場合(例えば、ILC_EPSILON=5分)、続いて属性エントリの信頼性(C)フィールドが、所定の最大値(例えば、C_MAX)に到達するまでインクリメントされる。トレンドテーブル内の属性エントリがアクティブ(A)状態にあると、エントリのILC値が、起動率(例えば、ケイデンス)の予測として使用され得、エントリのATTIDが、トレンド属性値の特定に使用され得る。
一部の実装では、サンプリングデーモン31_102は、属性値(ATTID)及びケイデンス値(ILC)をクライアントに送信し得、クライアントが、属性値に関連付けられた次のイベントを見越して、一部のアクション又は機能を実行し得るようにする。例えば、上述するように、属性値及びケイデンス値は、アプリケーションマネジャ31_106に送信され得、アプリケーションマネジャ31_106が、アプリケーションのユーザ呼び出しを見越して、特定されたアプリケーション(例えば、ATTID、「bundleId」属性値)をバックグラウンドで起動し得るようにし、ユーザがアプリケーションを起動する前に、更新されたコンテンツをアプリケーションが受信し得るようにする。例えば、アプリケーションマネジャ31_106は、ケイデンス値に基づいて、アプリケーションマネジャ31_106をウェイクするタイマを開始し、ユーザがアプリケーションを呼び出すことを見越して、アプリケーションを起動し得る。
一部の実装では、サンプリングデーモン31_102は、検出された属性トレンドに基づく、予期される次の属性イベントの発生を、クライアントに通知し得る。例えば、サンプリングデーモン31_102は、アプリケーションマネジャ31_106によりトレンドアプリケーションが起動されるべきであることを示す信号又は通知をアプリケーションマネジャ31_106に送信し得る。アプリケーションマネジャ31_106は、サンプリングデーモン31_102にアプリケーション識別子(例えば、「bundleId」属性値)を送信することにより、アプリケーションにおける対象を登録し得る。サンプリングデーモン31_102は、上述するように、ユーザ呼び出しに対してアプリケーションを監視し(例えば、報告された「bundleId」開始イベントに基づいて)、アプリケーションがトレンドであるか否かを判定し得る。アプリケーションがトレンドである場合、サンプリングデーモン31_102は、上述するように、呼び出しのケイデンスを判定し、通知又は信号をアプリケーションマネジャ31_106に、そのケイデンスに基づいて判定された時間に送信し得る。例えば、ケイデンスが4分である場合、サンプリングデーモン31_102は、信号をアプリケーションマネジャ31_106に、3分毎に送信し(例えば、次のイベントの発生前のいくらかの期間)、アプリケーションマネジャ31_106に、アプリケーションを起動させ得る。ケイデンスが6分に変更になった場合、サンプリングデーモン31_102は、ケイデンスの変化を検出し、アプリケーションマネジャ31_106がいつ信号を送信されるかを調整し得る。例えば、サンプリングデーモン31_102は、アプリケーションマネジャ31_106に信号を送信し、3分毎ではなく、5分毎にアプリケーションを起動し、減少したケイデンスに対して調整し得る(例えば、呼び出し間の期間の延長)。
いずれの理由による属性トレンドテーブルの各検査にて(例えば、新たなエントリの追加、既存のエントリの更新など)、STATE=T又はSTATE=Aにある、最後の起動からの時間がそれらのILCよりもILC_EPSILONだけ長い全てのエントリは、それらのC値がデクリメントされる。その時点でのC値が最小閾値(例えば、C_LOWTHRESHOLD)を下回るいずれのエントリは、格下げとなる。エントリは、例えば、状態Aから状態Tに、又は、状態Tから状態Iに格下げされ得る。
一部の実装では、上述するトレンド検出メカニズムは、アプリケーション呼び出し又は起動以外のトレンドイベントの検出に使用され得る。例えば、上述するトレンド検出方法及びトレンドテーブルは、モバイルデバイス31_100上のいずれの再来性イベント(例えば、いずれの属性イベント)の検出及び追跡に使用され得る。トレンドイベントは、スクリーンタッチ、ネットワーク接続、アプリケーションの不具合、ネットワーク侵入の発生、及び/又は、サンプリングデーモン31_102に報告又は信号が送信され得るいずれの他のイベントを含み得る。
プッシュ通知
図31-9は、プッシュ通知をモバイルデバイス31_100に提供するためのシステムを示すブロック図31_900である。一部の実装では、モバイルデバイス31_100は、プッシュ通知を受信するよう構成され得る。例えば、プッシュ通知は、プッシュプロバイダ31_902により開始され、モバイルデバイス31_100上で実行されるプッシュサービスデーモン31_904に、プッシュ通知サーバ31_906を通して送信されるメッセージであり得る。
一部の実装では、プッシュプロバイダ31_902は、アプリケーション31_908によりモバイルデバイス31_100のユーザに提示されたユーザ許可要求を通して、プッシュ通知をモバイルデバイス31_100に送信する許可を受信し得る。例えば、プッシュプロバイダ31_902は、アプリケーション31_908を作成した(例えば、プログラムした、開発した)同じベンダにより所有、運用、及び/又は維持されるサーバであり得る。アプリケーション31_908が、プッシュプロバイダ31_902に対してプッシュ通知をモバイルデバイス31_100に送信する許可を要求するユーザインタフェースをモバイルデバイス31_100上に提示し、プッシュ通知が許可されたことをユーザが示すと、プッシュプロバイダ31_902は、プッシュ通知をモバイルデバイス31_100(例えば、プッシュサービスデーモン31_904)に送信する許可をユーザから受信し得る。例えば、ユーザは、アプリケーション31_908により提示されたユーザインタフェース上のボタンを選択し、プッシュプロバイダ31_902及び/又はアプリケーション31_908に対して、プッシュ通知が許可されたことを示し得る。プッシュプロバイダ31_902は続いて、モバイルデバイス31_100を特定し、プッシュ通知のモバイルデバイス31_100への経路決定に使用され得るデバイストークンを受信し得る。例えば、プッシュ通知サーバ31_906は、デバイストークンをプッシュ通知と共に受信し、そのデバイストークンを、どのモバイルデバイス31_100がプッシュ通知を受信すべきかを判定することに使用し得る。
一部の実装では、モバイルデバイス31_100は、許可されたプッシュアプリケーションを特定する情報をプッシュ通知サーバ31_906に送信し得る。例えば、モバイルデバイス31_100は、プッシュ通知フィルタ31_914と、モバイルデバイス31_100に対するデバイストークンと、を含むメッセージ31_926を、プッシュ通知サーバ31_906に送信し得る。プッシュ通知サーバ31_906は、デバイストークンのマッピング(例えば、モバイルデバイス31_100に対する識別子)を、プッシュ通知サーバ31_906によりサービスされた各モバイルデバイスに対するプッシュフィルタ31_914に記憶し得る。プッシュフィルタ31_914は、例えば、モバイルデバイス31_100上でプッシュ通知を受信する許可を受信したアプリケーションを特定する情報を含み得る。
一部の実装では、プッシュフィルタ31_914は、プッシュ通知サーバ31_906により使用され、モバイルデバイス31_100のユーザにより許可されていないアプリケーションへのプッシュ通知をフィルタし得る(例えば、送信を阻止し得る)。プッシュプロバイダ31_902によりプッシュ通知サーバ31_906に送信された各プッシュ通知は、プッシュプロバイダ31_902及びモバイルデバイス31_100(例えば、デバイストークン)に関連付けられたアプリケーション31_908を特定する情報(例えば、識別子)を含み得る。
通知サーバ31_906がプッシュ通知を受信すると、通知サーバ31_906は、モバイルデバイス識別情報(例えば、デバイストークン)を使用し、受信したプッシュ通知にどのプッシュフィルタ31_914を適用するかを判定し得る。通知サーバ31_906は、プッシュ通知内のアプリケーション識別情報を、特定されたモバイルデバイスに対するプッシュフィルタ31_914に対して比較し、プッシュプロバイダ31_902に関連付けられ、プッシュ通知内に特定されたアプリケーションが、プッシュフィルタ31_914内で特定されているかを判定し得る。プッシュ通知に関連付けられたアプリケーションがプッシュフィルタ31_914内に特定されている場合、続いて通知サーバ31_906は、プッシュプロバイダ31_902から受信したプッシュ通知をモバイルデバイス31_100に送信し得る。プッシュ通知内に特定されたアプリケーションが、プッシュフィルタ31_914内に特定されていない場合、続いて通知サーバは、プッシュプロバイダ31_902から受信したプッシュ通知をモバイルデバイス31_100に送信せず、そのプッシュ通知を削除し得る。
ノンウェイキングプッシュ通知
一部の実装では、通知サーバ31_906は、高優先プッシュ通知及び低優先プッシュ通知を処理するよう構成され得る。例えば、プッシュプロバイダ31_902は、高優先プッシュ通知31_910及び/又は低優先プッシュ通知31_912をプッシュ通知サーバ31_906に送信し得る。例えば、プッシュ通知サーバ31_906及びモバイルデバイス31_100に送信されたプッシュ通知内に含まれるデータ内にプッシュ通知の優先度を指定することにより、プッシュプロバイダ31_902は、プッシュ通知を高優先度又は低優先度として識別し得る。
一部の実装では、プッシュ通知サーバ31_906は、低優先プッシュ通知31_912を、高優先プッシュ通知31_910とは異なって処理し得る。例えば、プッシュ通知サーバ31_906は、高優先プッシュ31_910内に含まれるアプリケーション識別情報を、プッシュフィルタ31_914内の許可されたアプリケーション識別情報と比較し、高優先プッシュ通知31_910が、モバイルデバイス31_100に送信され得るかを判定するよう構成され得る。高優先プッシュ通知31_910内のアプリケーション識別情報が、プッシュフィルタ31_914内の許可されたアプリケーション識別子と一致する場合、続いてプッシュ通知サーバ31_906は、高優先プッシュ通知をモバイルデバイス31_100に送信し得る。高優先プッシュ通知31_910内のアプリケーション識別情報が、プッシュフィルタ31_914内の許可されたアプリケーション識別子と一致しない場合、続いてプッシュ通知サーバ31_906は、高優先プッシュ通知をモバイルデバイス31_100に送信しない。
一部の実装では、プッシュ通知サーバ31_906は、低優先プッシュ通知の配信を遅らせるよう構成され得る。例えば、モバイルデバイス31_100が、プッシュ通知をプッシュ通知サーバ31_906から受信すると、プッシュ通知の受領により、モバイルデバイス31_100にウェイクさせる(例えば、スリープ状態又は低電力状態にあった場合)。モバイルデバイス31_100がウェイクすると、モバイルデバイス31_100は、バッテリを消費し、セルラーデータを使用し、モバイルデバイス31_100を熱くするか、又は、モバイルデバイス31_100に影響する様々なサブシステム及びプロセッサをオンにする。モバイルデバイス31_100への低優先プッシュ通知の配信を阻止又は遅延することにより、モバイルデバイス31_100は例えば、ネットワーク(例えば、セルラーデータ)及びシステム(例えば、バッテリ)リソースを節約し得る。
一部の実装では、プッシュ通知フィルタ31_914は、ウェイクリスト31_916及びノーウェイクリスト31_918を含み得る。ウェイクリスト31_916は、モバイルデバイス31_100に低優先プッシュ通知が配信されるべきアプリケーションを特定し得る。一部の実装では、アプリケーションが、モバイルデバイス31_100にてプッシュ通知を受信することを許可されると、デフォルトで、アプリケーション識別情報がウェイクリスト31_914に追加される。ノーウェイクリスト31_918は、低優先プッシュ通知が遅延されるべき、許可されたアプリケーションを特定し得る。ノーウェイクリスト31_918をポピュレートする、及び/又は、ウェイクリスト31_916及びノーウェイクリスト31_918を操作するための特定のメカニズムを、プッシュ通知開始バックグラウンド更新を説明する場合に、以下に詳述する。一部の実装では、高優先プッシュ通知内に特定されたアプリケーションが、プッシュフィルタ31_914内に特定される限りにおいては、高優先プッシュ通知はプッシュ通知サーバ31_906にて遅延されず、モバイルデバイス31_100に配信される(例えば、ウェイクリスト31_914及び/又はノーウェイクリスト31_918)。
一部の実装では、プッシュ通知サーバ31_906が低優先プッシュ通知31_912を受信すると、プッシュ通知サーバ31_906は、低優先プッシュ通知31_912内のアプリケーション識別子を、ウェイクリスト31_916及び/又はノーウェイクリスト31_918と比較し得る。例えば、低優先プッシュ通知31_912内のアプリケーション識別情報が、ウェイクリスト31_916内の許可されたアプリケーション識別子と一致する場合、低優先プッシュ通知31_912は、通知メッセージ31_920にて、モバイルデバイス31_100に配信される。
一部の実装では、ノーウェイクリスト31_918内に特定されたアプリケーションに関連付けられた低優先プッシュ通知の配信は遅延され得る。例えば、低優先プッシュ通知31_912内に特定されたアプリケーションもまた、ノーウェイクリスト31_918内に特定されている場合、続いて低優先プッシュ通知31_912は、プッシュ通知データストア31_922に記憶され、モバイルデバイス31_100にすぐに配信され得ない。一部の実装では、プッシュ通知(高優先又は低優先)により特定されたモバイルデバイス31_100が、プッシュ通知サーバ31_906に現在接続されていない場合、遮断されたモバイルデバイス31_100に対するプッシュ通知は、モバイルデバイス31_100への後の配信のために、プッシュ通知データストア31_922に記憶され得る。
一部の実装では、プッシュデータストア31_922に記憶されたプッシュ通知は、記憶されたプッシュ通知に関連付けられたアプリケーション識別子が、ノーウェイクリスト31_918からウェイクリスト31_916に移動されるまで、又は、ネットワーク接続が、プッシュ通知サーバ31_906とモバイルデバイス31_100との間で確立されるまで、プッシュデータストア31_922内に維持される。
例えば、別の(高優先又は低優先)プッシュ通知が、モバイルデバイス31_100に配信される際に、又は、モバイルデバイス31_100が、他のトランスミッション31_924(例えば、状態メッセージ、ハートビートメッセージ、生存メッセージなど)をプッシュ通知サーバ31_906に送信する際に、プッシュ通知サーバ31_906とモバイルデバイス31_100との間のネットワーク接続が確立され得る。例えば、モバイルデバイス31_100は、モバイルデバイス31_100がある期間(例えば、5分)にわたってアクティブになることを示すメッセージ31_924をプッシュ通知サーバ31_905に送信し得、プッシュ通知サーバ31_906は、受信した全てのプッシュ通知をモバイルデバイス31_100に、指定されたアクティブ期間中に送信し得る。一部の実装では、ネットワーク接続が、モバイルデバイス31_100とプッシュ通知サーバ31_906との間で確立されると、プッシュ通知ストア31_922に記憶された全てのプッシュ通知が、モバイルデバイス31_100に配信される。例えば、プッシュ通知データストア31_922に記憶されたプッシュ通知は、モバイルデバイス31_100とプッシュ通知サーバ31_906との間の他のトランスミッションにより作成された接続を通して送信され得る。
一部の実装では、モバイルデバイス31_100は、プッシュ通知サーバ31_906との2つの異なる通信チャネルを確立し得る。例えば、2つの通信チャネルは、同時に又は異なる時間に確立され得る。モバイルデバイス31_100は、例えば、プッシュ通知サーバ31_906へのセルラーデータ接続及び/又はWi-Fi接続を有し得る。一部の実装では、モバイルデバイス31_100は、各通信チャネルに対する異なるプッシュフィルタ31_914を生成し、これらをプッシュ通知サーバ31_906に送信し得る。例えば、セルラーデータ接続は、高優先及び低優先プッシュ通知をいつ、セルラーデータ接続を経由して送信するかを判定するために、プッシュフィルタ31_914の第1のセットに関連付けられ得る。Wi-Fiデータ接続は、高優先及び低優先プッシュ通知をいつ、Wi-Fiデータ接続を経由して送信するかを判定するために、セルラーデータプッシュフィルタと同じ又は異なるプッシュフィルタ31_914の第2のセットに関連付けられ得る。プッシュ通知サーバ31_906がプッシュ通知を受信すると、プッシュ通知サーバは、プッシュ通知内に特定されたアプリケーションを、プッシュ通知をモバイルデバイス31_100に送信するためにプッシュ通知サーバ31_906が使用する通信チャネル(例えば、Wi-Fi、セルラー)に対するプッシュ通知フィルタと比較し得る。
プッシュ開始バックグラウンド更新
一部の実装では、モバイルデバイス31_100によるプッシュ通知の受領は、モバイルデバイス31_100上でのアプリケーションのバックグラウンド更新をトリガーし得る。例えば、モバイルデバイス31_100(例えば、プッシュサービスデーモン31_904)が、プッシュ通知メッセージ31_920をプッシュ通知サーバ31_906から受信すると、プッシュサービスデーモン31_904は、プッシュ通知メッセージ31_920内のアプリケーション識別子を、モバイルデバイス31_100上に記憶されたプッシュフィルタ31_928と比較し、プッシュ通知メッセージ31_920が、プッシュ通知サーバ31_906により適切に配信されたか、又は(例えば、配信されず)フィルタされるべきかを判定し得る。例えば、プッシュフィルタ31_928、ウェイクリスト31_930、及びノーウェイクリスト31_932はそれぞれ、プッシュフィルタ31_914、ウェイクリスト31_916、及びノーウェイクリスト31_918に対応し得る。一部の実装では、プッシュサービスデーモン31_904が、プッシュ通知メッセージ31_920はモバイルデバイス31_100に配信されるべきではないと判定する場合、プッシュ通知メッセージ31_902は削除される。
低優先プッシュ通知
一部の実装では、モバイルデバイス31_100により受信されたプッシュ通知メッセージ31_920は、低優先プッシュ通知を含み得る。例えば、低優先プッシュ通知は、プッシュ通知に関連付けられたアプリケーションに対するコンテンツ更新が利用可能であることを示し得る。従って、低優先プッシュ通知が、アプリケーション31_908の起動を引き起こすと、アプリケーション31_908は、更新されたコンテンツを1つ以上のネットワークリソース(例えば、プッシュプロバイダ31_902)からダウンロードし得る。
一部の実装では、プッシュサービスデーモン31_904が、モバイルデバイス31_100上のアプリケーション(例えば、アプリケーション31_908)に関連付けられた低優先プッシュ通知を受信すると、プッシュサービスデーモン31_904は、受信した低優先プッシュ通知に関連付けられたアプリケーションを起動してもよいか、サンプリングデーモン31_102に尋ね得る。例えば、プッシュサービスデーモン31_904は、受信した低優先プッシュ通知に関連付けられたアプリケーション(例えば、「bundleId」属性値)に対する識別子をサンプリングデーモン31_102に送信することにより、サンプリングデーモン31_102にアドミッション制御を実行するよう要求し得る。サンプリングデーモン31_102は、図31-4を参照して上述するように、データ割当量、エネルギ割当量、属性割当量、及びボーターフィードバックをチェックすることにより、アドミッション制御を実行し得る。サンプリングデーモン31_102は、アドミッション制御プロセスの結果に基づく、低優先プッシュ通知により特定されたアプリケーションを起動してもよいか否かを示す値をプッシュサービスデーモン31_904に返し得る。
一部の実装では、アドミッション制御要求から返された値が「yes」で、アプリケーションを起動してもよいことを示す場合、プッシュサービスデーモン31_904は、低優先プッシュ通知をアプリケーションマネジャ31_106に送信し、アプリケーションマネジャ31_106は、アプリケーション(例えば、アプリケーション31_908)を呼び出し得る。アプリケーション31_908は続いて、ネットワーク(例えば、インターネット)を経由してプッシュプロバイダ31_902と通信し、更新されたコンテンツをプッシュプロバイダ31_902から受信し得る。
一部の実装では、アドミッション制御要求から返された値が「no」で、アプリケーションを起動してはよくないことを示す場合、プッシュサービスデーモン31_904は、低優先プッシュ通知をプッシュ通知データストア31_934に記憶する。例えば、低優先プッシュ通知を記憶する時、プッシュサービスデーモン31_904は、プッシュ通知内に特定されたアプリケーションに対して受信した最後のプッシュ通知のみを記憶する。 一部の実装では、プッシュサービスデーモン31_904が今はアプリケーションを起動すべきでないことを、サンプリングデーモン31_102が示す場合(例えば、アドミッション制御リプライが「no」)、プッシュサービスデーモン31_904は、アプリケーションに対するアプリケーション識別子を、ウェイクリスト31_930からノーウェイクリスト31_932に移動し得る。例えば、モバイルデバイスの割当量及び/又は条件が、アプリケーションを起動することを許可しないと、サンプリングデーモン31_102が判定する場合、アプリケーションに関連付けられた追加の低優先プッシュ通知に対して、プッシュ通知サーバ31_906にモバイルデバイス31_100をウェイクさせることを可能にすることは、モバイルデバイス31_100のデータ及びエネルギ割当量を単に更に消費するか、又は、環境条件を悪化させる(例えば、デバイスが過熱する)。従って、アプリケーション識別子をノーウェイクリスト31_932に移動し、更新されたフィルタ31_928(例えば、ウェイクリスト31_930及びノーウェイクリスト31_932)を含むメッセージ31_926をプッシュ通知サーバ31_906に送信することで、通知サーバ31_906は、それ自身のプッシュフィルタ31_914、ウェイクリスト31_916、及びノーウェイクリスト31_918を更新しプッシュフィルタ31_928への変更古典を反映し、アプリケーションに対する追加の低優先プッシュ通知がモバイルデバイス31_100に配信されることを阻止し得る。
一部の実装では、アドミッション制御要求から返された値が「never」で、アプリケーションを起動してはならないことを示す場合、プッシュサービスデーモン31_904は低優先プッシュ通知を削除し、プッシュ通知に関連付けられたアプリケーション識別子をプッシュフィルタ31_928から消去する。更新されたプッシュフィルタが、プッシュ通知サーバ31_906に送信され得、プッシュ通知サーバ31_906上のプッシュフィルタ31_914が更新され得、プッシュ通知サーバ31_906が、アプリケーション識別子に関連付けられたプッシュ通知をこれ以上送信することを阻止する。
一部の実装では、サンプリングデーモン31_102は、「stop」信号をプッシュサービスデーモン31_904に送信し、将来の低優先プッシュ通知が、プッシュ通知サーバ31_906からモバイルデバイス31_100に送信されることを一時的に阻止し得る。例えば、現在時間に対するデータ割当量が使い果たされた、現在時間に対するエネルギ割当量が使い果たされた、システムに熱イベントが起こっている(例えば、モバイルデバイス31_100が熱すぎる)、モバイルデバイス31_100が十分なセルラー接続を有しない、及び、モバイルデバイス31_100がWi-Fiに接続されていない、並びに/又は、モバイルデバイス31_100がボイスコールに接続されており、Wi-Fiに接続されていない、とサンプリングデーモン31_102が判定すると、サンプリングデーモン31_102は、ストップ信号をプッシュサービスデーモン31_904に送信し得る。プッシュサービスデーモン31_904が、ストップ信号を受信すると、プッシュサービスデーモン31_904は、ウェイクリスト31_930内のアプリケーション識別子をノーウェイクリスト31_932に移動し、更新されたプッシュフィルタ31_928をプッシュ通知サーバ31_906に送信し、プッシュフィルタ31_914を更新し得る。従って、プッシュ通知サーバ31_906は、将来の低優先プッシュ通知が、モバイルデバイス31_100をウェイクし、モバイルデバイス31_100の割当量、限度値、及び作動条件に悪影響を与えることを一時的に阻止する。
一部の実装では、サンプリングデーモン31_102は、リトライ信号をプッシュサービスデーモン31_904に送信し得る。例えば、サンプリングデーモン31_102は、割当量の状態、ネットワーク接続、限度値、及びデバイス条件を監視し得、プッシュデータ割当量が使い果たされていない、エネルギ割当量が使い果たされていない、モバイルデバイス31_100に熱イベントが発生していない、モバイルデバイス31_100が良好な品質セルラー接続を有している又はWi-Fiに接続されている、モバイルデバイス31_100がボイスコールに接続されておらず、及び起動率限度値がリセットされている場合に、リトライメッセージをプッシュサービスデーモン31_904に送信する。プッシュサービスデーモン31_904がリトライ信号を受信すると、プッシュサービスデーモン31_904は、プッシュ通知データストア31_934内の各プッシュ通知に対するアドミッション制御要求をサンプリングデーモン31_102に送信し、記憶されたプッシュ通知に関連付けられた各アプリケーション(例えば、「bundleId」属性値)を起動してもよいかを判定する。
サンプリングデーモン31_102が、アドミッション制御要求からの「yes」を返す場合、プッシュサービスデーモン31_904は、上述するように、プッシュ通知をアプリケーションマネジャ31_106に送信し得、アプリケーションマネジャ31_106は、プッシュ通知に関連付けられたアプリケーションを、モバイルデバイス31_100上のバックグラウンドプロセスとして起動し得る。アプリケーションが起動されると、アプリケーションはコンテンツ又はデータ更新をダウンロードし、ダウンロードされたデータに基づいて、アプリケーションユーザインタフェースを更新し得る。アプリケーションマネジャ31_106は、低優先プッシュ通知に関連付けられたアプリケーションを起動してもよいかをサンプリングデーモン31_102に尋ねない。
高優先プッシュ通知
一部の実装では、モバイルデバイス31_100により受信されたプッシュ通知メッセージ31_920は、高優先プッシュ通知を含み得る。例えば、高優先プッシュ通知は、プッシュ通知に関連付けられたアプリケーションに対するコンテンツ更新が利用可能であることを示し得る。従って、高優先プッシュ通知が、アプリケーションの呼び出しを引き起こすと、アプリケーションは、更新されたコンテンツを1つ以上のネットワークリソースからダウンロードし得る。一部の実装では、高優先プッシュ通知がプッシュサービスデーモン31_904により受信されると、プッシュサービスデーモン31_904は、アドミッション制御要求をサンプリングデーモン31_102に行うことなく、その高優先プッシュ通知をアプリケーションマネジャ31_106に送信する。
一部の実装では、アプリケーションマネジャ31_106が、アプリケーションに関連付けられたプッシュ通知を受信すると、アプリケーションマネジャ31_106は、アドミッション制御要求をサンプリングデーモン31_102に行う。このアドミッション制御要求に応じて、サンプリングデーモン31_102は、上述するように、「yes」、「no」、又は「never」応答をリプライし得る。アプリケーションマネジャ31_106が、アドミッション制御要求に対する「yes」リプライを受信すると、アプリケーションマネジャ31_106は、受信した高優先プッシュ通知に関連付けられたアプリケーションを、モバイルデバイス31_100上のバックグラウンドプロセスとして起動し得る。
一部の実装では、アプリケーションマネジャ31_106が、アドミッション制御要求に対する「no」リプライを受信すると、アプリケーションマネジャ31_106は、高優先プッシュ通知を高優先プッシュ通知ストア31_936に記憶し得る。アプリケーションマネジャ31_106が、「never」応答を受信すると、アプリケーションマネジャ31_106は、高優先プッシュ通知を削除し、プッシュ通知に関連付けられたアプリケーションに対する、プッシュ通知データストア31_936に記憶されたいずれのプッシュ通知を削除し得る。
一部の実装では、サンプリングデーモン31_102は、「ok to retry」信号をアプリケーションマネジャ31_106に送信し得る。例えば、アプリケーションマネジャ31_106が、「ok to retry」メッセージをサンプリングデーモン31_102から受信すると、アプリケーションマネジャ31_106は、高優先プッシュ通知データストア31_936内の各高優先プッシュ通知に関連付けられたアプリケーションに対するアドミッション制御要求を行い、アドミッション制御要求に応じて「yes」リプライを受信すると、各アプリケーションを、バックグラウンドプロセスとして起動し得る。
プッシュ通知の表示を遅延する
一部の実装では、高優先プッシュ通知は、グラフィカルユーザインタフェースを、モバイルデバイス31_100上に表示させ得る。例えば、高優先プッシュ通知の受信は、バナー、バルーン、又は他のグラフィカルオブジェクトを、モバイルデバイス31_100のグラフィカルユーザインタフェース上に表示させ得る。グラフィカルオブジェクトは、例えば、受信したプッシュ通知の主題又はコンテンツを示す情報を含み得る。
一部の実装では、アプリケーションマネジャ31_106が高優先プッシュ通知を受信すると、アプリケーションマネジャ31_106は、その通知を、モバイルデバイス31_100のグラフィカルユーザインタフェース上に表示させ得る。しかし、高優先プッシュ通知が、その高優先プッシュ通知に関連付けられたアプリケーションに対する、ダウンロード可能データ更新があることを示す場合、そのアプリケーションは、プッシュ通知が表示される前に、モバイルデバイス31_100のバックグラウンドにて起動され得る。例えば、アプリケーションマネジャ31_106は、高優先プッシュ通知に関連付けられたアプリケーションを起動することと、プッシュ通知をユーザに知らせるグラフィカルオブジェクト(例えば、バナー)を表示することと、の間の遅延時間量(例えば、30秒)が構成され得る。この遅延により、例えば、アプリケーションは、十分な時間をもって、コンテンツ更新をダウンロードし、ユーザにより呼び出される前に、アプリケーションのユーザインタフェースを更新できる。従って、ユーザが、グラフィカルオブジェクトに入力を提供するか、又は、高優先プッシュ通知に関連付けられたアプリケーションを呼び出すと、アプリケーションのユーザインタフェースが最新のものとなり、ユーザは、アプリケーションに対する更新を待つことを強いられなくなる。一部の実装では、アプリケーションマネジャ31_106が、高優先プッシュ通知に関連付けられたアプリケーションを起動できない場合、モバイルデバイス31_100は、グラフィカルオブジェクト(例えば、バナー)を表示し、高優先プッシュ通知を受信したことをユーザに通知する。
プッシュ通知プロセス例
図31-10は、プッシュ通知サーバ31_906にてノンウェイキングプッシュを実行するためのプロセス例1000のフロー図である。ステップ31_1002にて、プッシュ通知サーバ31_906はプッシュ通知を受信し得る。例えば、プッシュ通知サーバ31_906は、プッシュ通知をプッシュ通知プロバイダ31_902(例えば、アプリケーションベンダにより運用されるサーバ)から受信し得る。
ステップ31_1004にて、プッシュ通知サーバ31_906は、プッシュ通知が低優先プッシュ通知であると判定し得る。例えば、プッシュ通知プロバイダは、プッシュ通知の優先度を指定するデータをプッシュ通知に含み得る。プッシュ通知サーバ31_906は、プッシュ通知のコンテンツを分析し、プッシュ通知の優先度を判定し得る。
ステップ31_1006にて、プッシュ通知サーバ31_906は、プッシュ通知を、プッシュ通知フィルタと比較し得る。例えば、プッシュ通知は、低優先プッシュ通知が指示される、モバイルデバイス31_100上にインストール又は構成されたアプリケーションを特定し得る。このプッシュ通知は、例えば、アプリケーション識別子(例えば、「bundleId」属性値)を含み得る。プッシュ通知サーバ31_906は、プッシュ通知内のアプリケーション識別子を、プッシュ通知フィルタのノーウェイクリスト31_918内のアプリケーション識別子と比較し得る。
ステップ31_1008にて、プッシュ通知サーバ31_906は、低優先プッシュ通知が記憶されるべきであると判定し得る。例えば、低優先プッシュ通知からのアプリケーション識別子が、プッシュ通知フィルタのノーウェイクリスト31_918にある場合、プッシュ通知サーバ31_906は、低優先プッシュがプッシュ通知データストア31_922に記憶されるべきであると判定し得る。
ステップ31_1010にて、ステップ31_1008での判定に基づいて、低優先プッシュ通知が、プッシュ通知サーバ31_906のデータベース又はデータストア31_922に記憶され、モバイルデバイス31_100には直ちに送信されない。
ステップ31_1012にて、プッシュ通知サーバ31_906は、モバイルデバイス31_100へのネットワーク接続が確立されたと判定し得る。例えば、プッシュ通知サーバ31_906は、モバイルデバイス31_100へのネットワーク接続を作成し、別の高優先又は低優先プッシュを配信し得る。モバイルデバイス31_100は、プッシュ通知サーバ31_906へのネットワーク接続を確立し、通知フィルタの変更、定期状態更新、生存メッセージ、又は他のメッセージをプッシュ通知サーバ31_906に送信し得る。
ステップ31_1014にて、モバイルデバイス31_100へのネットワーク接続が確立されたと判定したことに応じて、プッシュ通知サーバ31_906は、記憶されたプッシュ通知を送信し得る。例えば、プッシュ通知サーバ31_906は、プッシュ通知サーバ31_906にて記憶された低優先プッシュ通知を、モバイルデバイス31_100に送信し得る。
図31-11は、低優先プッシュ通知に応じて、アプリケーションのバックグラウンド更新を実行するためのプロセス例1100のフロー図である。ステップ31_1102にて、モバイルデバイス31_100は、低優先プッシュ通知をプッシュ通知サーバ31_906から受信し得る。
ステップ31_1104にて、モバイルデバイス31_100は、低優先プッシュ通知に関連付けられたアプリケーションを起動してもよいか判定し得る。例えば、アプリケーションは、モバイルデバイス31_100上のバックグラウンドプロセスとして起動され得る。モバイルデバイス31_100は、上述するアドミッション制御プロセスを使用して、アプリケーションを起動してもよいか否かを判定し得る。例えば、モバイルデバイス31_100(例えば、サンプリングデーモン31_102)は、モバイルデバイス31_100に対して判定されたデータ、エネルギ、及び/又は属性割当量に基づいて、アプリケーションを起動してもよいか否かを判定し得る。モバイルデバイス31_100は、モバイルデバイスの条件、及び/又は、様々なボーターからの応答に基づく、モバイルデバイスのネットワーク接続の条件に基づいて、アプリケーションを起動してもよいか否かを判定し得る。アプリケーション(例えば、アドミッション制御)を起動してもよいか否かを判定するための詳細が、上の図31-4を参照して詳述されている。
ステップ31_1106にて、デバイス条件、割当量、限度値、及び他のデータが、アプリケーションを起動してはよくないことを示すと、モバイルデバイス31_100は、低優先プッシュ通知を記憶し得る。例えば、モバイルデバイス31_100は、低優先プッシュ通知を、モバイルデバイス31_100上のデータベース又は他のデータストアに記憶し得る。
ステップ31_1108にて、バックグラウンドアプリケーションを起動してはよくないと判定したことに応じて、モバイルデバイス31_100は、そのプッシュ通知フィルタを更新し得る。例えば、モバイルデバイス31_100は、低優先プッシュ通知に関連付けられたアプリケーションを、モバイルデバイス31_100上のプッシュ通知フィルタのノーウェイクリストに移動し得る。
ステップ31_1110にて、モバイルデバイス31_100は、更新された通知フィルタをプッシュ通知サーバ31_906に送信し得る。プッシュ通知サーバ31_906は、モバイルデバイス31_100から受信したフィルタに基づいて、それ自身のプッシュ通知フィルタを更新し、低優先プッシュ通知をモバイルデバイス31_100にいつ送信するか、及び、いつ送信しないかを判定し得る。
ステップ31_1112にて、モバイルデバイス31_100は、低優先プッシュ通知に関連付けられたアプリケーションの起動をリトライしてもよいと判定し得る。例えば、モバイルデバイス31_100は、割当量、限度値、及びデバイス条件が、上述するように、モバイルデバイス31_100上での追加バックグラウンドアプリケーションの起動を可能とすると判定し得る。
ステップ31_1114にて、モバイルデバイス31_100は、記憶された低優先プッシュ通知に関連付けられた特定のアプリケーションを起動してもよいか否かを判定し得る。例えば、モバイルデバイス31_100のサンプリングデーモン31_102はアドミッション制御を実行し、モバイルデバイス100上で構成された割当量がリセットされているか、又は、現在時刻に対して補充されており、モバイルデバイス31_100の環境条件及びネットワーク接続が、特定のバックグラウンドアプリケーションの起動に十分であると判定し得る。
ステップ31_1116にて、モバイルデバイス31_100が、特定のアプリケーションを起動してもよいと判定すると、モバイルデバイス31_100はそのアプリケーションを起動し得る。例えば、特定のアプリケーションは、ユーザがアプリケーションを呼び出す前に、バックグラウンドプロセスとして起動され、新たなコンテンツをダウンロードし、アプリケーションのユーザインタフェースを更新し得る。このプロセスによりユーザは、コンテンツ更新がダウンロードされ、アプリケーションのユーザインタフェースがリフレッシュされるのを待つ必要なく、アプリケーションを呼び出すことができる。
図31-12は、高優先プッシュ通知に応じて、アプリケーションのバックグラウンド更新を実行するためのプロセス例1200のフロー図である。ステップ31_1202にて、モバイルデバイス31_100は、高優先プッシュ通知を受信し得る。
ステップ31_1204にて、モバイルデバイス31_100は、高優先プッシュ通知に関連付けられたアプリケーションを起動してもよいか判定し得る。例えば、モバイルデバイス31_100のサンプリングデーモン31_102はアドミッション制御を実行し、モバイルデバイス31_100の割当量及び環境条件(例えば、デバイス条件、ネットワーク条件など)に基づいて、アプリケーションを起動してもよいか否かを判定し得る。
ステップ31_1206にて、高優先プッシュ通知に関連付けられたアプリケーションを起動してはよくない(例えば、アドミッション制御が「no」を返す)場合、モバイルデバイス31_100は、高優先プッシュ通知を記憶し得る。例えば、モバイルデバイス31_100は、高優先プッシュ通知を、データベース、待ち行列、又は他の適切なデータ構造に記憶し得る。
ステップ31_1208にて、モバイルデバイス31_100は、記憶された高優先プッシュ通知に関連付けられたアプリケーションの起動をリトライしてもよいと判定し得る。例えば、アドミッション制御の説明にて上述するように、データ、エネルギ、及び/又は属性割当量が補充される、デバイス条件が改善される、ネットワーク条件が改善される、又は、モバイルデバイス31_100の他の条件が変更されると、モバイルデバイス31_100は、アプリケーションの起動をリトライしてもよいと判定し得る。
ステップ31_1210にて、モバイルデバイス31_100は、記憶された高優先プッシュ通知に関連付けられたアプリケーションを起動してもよいか判定し得る。例えば、モバイルデバイス31_100は、上述する基準に基づいて、アプリケーションを起動してもよいか判定し得る。
ステップ31_1212にて、モバイルデバイス31_100は、アプリケーションを、モバイルデバイス31_100上のバックグラウンドにて起動し得る。例えば、アプリケーションは、モバイルデバイス31_100上のバックグラウンドプロセスとして起動され得、そのアプリケーションが、更新されたコンテンツを、ネットワーク(例えば、インターネット)上のネットワークリソース(例えば、コンテンツサーバ)からダウンロードし得るようにする。
ステップ31_1214にて、モバイルデバイス31_100は、プッシュ通知をユーザに提示する前に、ある期間待機し得る。例えば、モバイルデバイスは、受信した高優先プッシュ通知をユーザに通知する前に、アプリケーションが、コンテンツをある期間ダウンロードできるよう構成され得る。
ステップ31_1216にて、モバイルデバイス31_100は、モバイルデバイス31_100のユーザインタフェース上にプッシュ通知を提示し得る。例えば、モバイルデバイス31_100は、高優先プッシュ通知を説明する情報を含むグラフィカルオブジェクト(例えば、バナー)を提示し得る。ユーザは、例えば、このグラフィカルオブジェクトを選択し、アプリケーションを呼び出し得る。アプリケーションは、ユーザに通知が提示される前に、コンテンツをダウンロードする時間を有するため、ユーザがアプリケーションを呼び出す際に、更新されたコンテンツがネットワークからダウンロードされるまでユーザに待機を強いることなく、アプリケーションは、更新されたコンテンツをユーザに表示できる。
バックグラウンドアップローディング/ダウンローディング
図31-13は、モバイルデバイス31_100上にてデータのバックグラウンドダウンローディング及び/又はアップローディングを実行するためのシステム例31_1300のブロック図である。バックグラウンドダウンロード及び/又はアップロードは、ユーザからの明示的な入力なく、アプリケーションにより開始されるネットワークデータ転送であり得る。例えば、バックグラウンドダウンロードは、ユーザがビデオゲームアプリケーションをプレイしている間に、そのビデオゲームの次のレベルを取り出するよう実行され得る。対照的に、フォアグランドダウンロード又はアップロードは、ダウンロード又はアップロードが発生すべきことのユーザからの明示的なインジケーションに応じて実行されるネットワークデータ転送であり得る。例えば、フォアグランドダウンロードは、ユーザが、写真、動画、又は文書をダウンロードするためにウェブページリンクを選択することにより開始され得る。同様に、バックグラウンドアップロードは、データをネットワークリソース(例えば、サーバ)にアップロードするための明白なユーザ要求をユーザから受信したか否かに基づいて、フォアグランドアップロードとは区別され得る。
一部の実装では、フォアグランドダウンロード/アップロード(例えば、ユーザにより明示的に要求されたダウンロード/アップロード)は、ユーザに対してすぐに実行される。例えば、ユーザ要求ダウンロード/アップロードはすぐに実行され、割当量制約条件又は他の考慮の対象とはならない。フォアグランドダウンロード/アップロードは、セルラーデータ接続経由で実行され得る。対照的に、バックグラウンドダウンロード及び/又はアップロードは、好機に応じて、かつ、割当量制約条件、及び、モバイルデバイス31_100の温度などの考慮すべき環境条件内にて実行され得る。例えば、バックグラウンドダウンロード又はアップロードは、属性が、上述するアドミッション制御メカニズムにより承認される場合、その属性又は属性値に対して実行され得る。一部の実装では、バックグラウンドダウンロード及び/又はアップロードは、Wi-Fiネットワーク接続に制限され得る。
一部の実装では、システム31_1300は、バックグラウンド転送デーモン31_1302を含み得る。一部の実装では、バックグラウンド転送デーモン31_1302は、データ又はコンテンツのバックグラウンドダウンローディング及びアップローディングを、モバイルデバイス31_100上で実行されるアプリケーション又はプロセスに代わって実行するよう構成され得る。例えば、バックグラウンド転送デーモン31_1302は、バックグラウンドダウンロード及び/又はアップロードを、アプリケーション31_1304に代わって、アプリケーション31_1304とサーバ31_1306との間で実行し得る。従って、バックグラウンドダウンロード/アップロードは、アプリケーション31_1304からのプロセス外で実行され得る(例えば、ダウンロード/アップロードを要求するプロセスにて/により実行されない)。
一部の実装では、アプリケーション31_1304は、データをダウンロード又はアップロードするための要求をバックグラウンド転送デーモン31_1304に送信することにより、バックグラウンドダウンロード/アップロードを開始し得る。例えば、データ(例えば、コンテンツ)をダウンロードするための要求は、データがダウンロードされ得るネットワークの位置を特定し得る。データをアップロードするための要求は、データがアップロードされ得るネットワークの位置と、データが現在記憶されているモバイルデバイス31_100上の位置と、を特定し得る。この要求はまた、アプリケーション31_1304を識別し得る。要求が実行されると、アプリケーション31_1304はシャットダウン又はサスペンドされ得、バックグラウンドダウンロード/アップロードがバックグラウンド転送デーモン31_1304により行われている間に、そのアプリケーションが、モバイルデバイス31_100上のコンピューティング及び/又はネットワークリソースを継続して消費しないようにする。
一部の実装では、データのバックグラウンドアップロード又はダウンロードを実行することの要求を受信すると、バックグラウンド転送デーモン31_1302は、要求をサンプリングデーモン31_102に送信し、バックグラウンド転送デーモン31_1302にとって、ネットワーク経由でデータ転送を実行してもよいかを判定し得る。例えば、バックグラウンド転送デーモン31_1302は、サンプリングデーモン31_102が、データ転送に対するアドミッション制御を実行することを要求し得る。アドミッション制御要求では、バックグラウンド転送デーモン31_1302は、バックグラウンド転送デーモン31_1302に対する識別子(例えば、「bundleId」属性値)、又は、バックグラウンド転送を要求するアプリケーションに対する識別子を提供し得、アドミッション制御が、バックグラウンド転送デーモン又はアプリケーション上で実行され得るようにする。アドミッション制御要求は、システムワイドデータ割当量から差し引かれる、要求のコストとして、転送されるデータ量を含み得る。
バックグラウンド転送デーモン31_1302からアドミッション制御要求を受信したことに応じて、サンプリングデーモン31_102は、システムワイドデータ及び/又はエネルギ割当量が、現在時間にわたって使い果たされたかを判定し得る。一部の実装では、モバイルデバイス31_100が外部電源に接続されているとサンプリングデーモン31_102が判定する場合、サンプリングデーモン31_102は、エネルギ割当量に基づくバックグラウンドダウンロード/アップロードを阻止することをしない。サンプリングデーモン31_102は、モバイルデバイス31_100がWi-Fiに接続されているか判定し得る。サンプリングデーモン31_102はまた、モバイルデバイス31_100が熱イベント(例えば、所定の閾値を超える作動温度)のさなかにあるか否かを判定し得る。一部の実装では、サンプリングデーモン31_102が、データ割当量が使い果たされており、モバイルデバイス31_100がWi-Fiに接続されていない、エネルギ割当量が使い果たされており、モバイルデバイス31_100が外部電源に接続されていない、又は、モバイルデバイス31_100が熱イベントのさなかにあることを判定する場合、続いてサンプリングデーモン31_102は、バックグラウンド転送デーモン31_1302によるアドミッション制御要求に対して「no」リプライを返す。
一部の実装では、バックグラウンド転送デーモン31_1302が、アドミッション制御要求に対する「no」リプライをサンプリングデーモン31_102から受信すると、バックグラウンド転送デーモン31_1302は、アプリケーション31_1304からのバックグラウンドダウンロード/アップロード要求を、要求リポジトリ31_1308に記憶し得る。
一部の実装では、サンプリングデーモン31_102は、リトライ信号をバックグラウンド転送デーモン31_1302に送信し得る。例えば、データ及びエネルギ割当量が補充され、システムに熱イベントが発生しなくなると、サンプリングデーモン31_102は、リトライ信号をバックグラウンド転送デーモン31_1302に送信し得る。モバイルデバイス31_100がWi-Fiに接続され、外部電源に接続され、及びシステムに熱イベントが発生していないと、サンプリングデーモン31_102は、リトライ信号をバックグラウンド転送デーモン31_1302に送信し得る。例えば、Wi-Fiに接続されると、データ使用量を制御する必要がなくともよい。同様に、外部電源に接続されると、バッテリ電力を節約する必要がなくともよい。従って、アドミッション制御を実行する際に、データ及びエネルギ割当量は、サンプリングデーモン31_102により考慮されなくともよい。
一部の実装では、リトライ信号がバックグラウンド転送デーモン31_1302により受信されると、バックグラウンド転送デーモン31_1302は、アドミッション制御要求をサンプリングデーモン31_102に送信し得る。
サンプリングデーモン31_102が、アドミッション制御要求に応じて「ok」リプライを返す場合、バックグラウンド転送デーモン31_1302は、アプリケーション31_1304に対するバックグラウンドダウンロード又はアップロードを実行し得る。バックグラウンドダウンロードが完了すると、バックグラウンド転送デーモン31_1302はアプリケーション31_1304をウェイク又は呼び出し、ダウンロードされたデータをアプリケーション31_1304に提供し得る。
一部の実装では、バックグラウンド転送デーモン31_1302は、サンプリングデーモン31_102に、バックグラウンドダウンロード/アップロードがいつ開始し、いつ終了するかを通知し得、サンプリングデーモン31_102が、割当量を調整し、モバイルデバイス31_100上で実行されたバックグラウンドダウンロード/アップロードについての統計を維持し得るようにする。例えば、バックグラウンド転送デーモン31_1302は、「backgroundTransfer」属性開始又は停止イベントを、サンプリングデーモン31_102に送信し得る。一部の実装では、バックグラウンド転送デーモン31_1302は、セルラーデータを経由して、Wi-Fiを経由して、及び/又はそれらを合わせて、転送されたバイト(例えば、「system.networkBytes」属性イベント)の数を送信し得、サンプリングデーモン31_102が、割当量を調整し、モバイルデバイス31_100上で実行されたバックグラウンドダウンロード/アップロードについての統計を維持し得るようにする。
一部の実装では、サンプリングデーモン31_102は、アドミッション制御要求に応じて、タイムアウト値をバックグラウンド転送デーモン31_1302に返し得る。例えば、タイムアウト値は、バックグラウンド転送デーモンがバックグラウンドダウンロード又はアップロードを実行しなければならない期間(例えば、5分)を示し得る。タイムアウト期間が経過すると、バックグラウンド転送デーモン31_1302は、バックグラウンドダウンロード又はアップロードをサスペンドする。
一部の実装では、タイムアウト値は、現在時間に対する残りのエネルギ割当量に基づき得る。例えば、サンプリングデーモン31_102は、Wi-Fi経由でダウンロード又はアップロードを実行する間に、どれほどのエネルギが毎秒に消費されたかを、サンプリングデーモン31_102により収集された過去イベントデータに基づいて判定し得る。サンプリングデーモン31_102は、残りのエネルギ割当量を、バックグラウンドダウンロード又はアップロードを実行する間にエネルギが消費されるレートで除算することにより、タイムアウト期間を判定し得る(例えば、エネルギ割当量/消費されたエネルギ/時間=タイムアウト期間)。
一部の実装では、バックグラウンドダウンロード及び/又はアップロードは再開可能である。例えば、モバイルデバイス31_100がWi-Fi範囲を外れて移動する場合、バックグラウンドダウンロード/アップロードはサスペンドされ得る(例えば、休止され得る)。モバイルデバイス31_100がWi-Fi範囲に再び入ると、サスペンドされていたダウンロード/アップロードが再開され得る。同様に、バックグラウンドダウンロード/アップロードによりエネルギ割当量が使い果たされる場合(例えば、タイムアウト期間が経過する)、バックグラウンドダウンロード/アップロードはサスペンドされ得る。追加割当量が割り当てされると(例えば、次の時間にて)、サスペンドされていたダウンロード/アップロードが再開され得る。
一部の実装では、バックグラウンドダウンロード/アップロードは、ネットワーク接続の品質に基づいてサスペンドされ得る。例えば、モバイルデバイス31_100が、モバイルデバイス31_100と、サービスを提供するセルラータワーとの間に良好なセルラーデータ接続を有し、セルラータワーと、モバイルデバイス31_100がデータを転送する又はされるサーバとの間に良好なデータ接続を有し得ていても、モバイルデバイス31_100は、サーバへの良好な接続を有しない場合がある。例えば、モバイルデバイス31_100とサーバとの間の転送速度は遅い場合があり、セルラーインタフェースのスループットは低い場合がある。バックグラウンドダウンロード/アップロードの転送速度が閾値転送速度値未満となり、及び/又は、バックグラウンドダウンロード/アップロードのスループットが閾値スループット値未満となる場合、バックグラウンドダウンロード/アップロード(例えば、データ転送)は、検出された低品質ネットワーク接続に基づいて、よりよいネットワーク接続が利用可能となるまで、サスペンド又は休止され得る。例えば、Wi-Fi接続が利用可能となる場合、サスペンドされていたバックグラウンドダウンロード/アップロードが、Wi-Fi接続経由で再開され得る。
一部の実装では、バックグラウンド転送デーモン31_1302は、一度に実行され得るバックグラウンドダウンロード及び/又はアップロード数の制限値が構成され得る。例えば、バックグラウンド転送デーモン31_1302は、同時バックグラウンドダウンロード及び/又はアップロード数を3に制限し得る。
バックグラウンドダウンロード/アップロードプロセス例
図31-14は、バックグラウンドダウンロード及びアップロードを実行するためのプロセス例31_1400のフロー図である。例えば、バックグラウンドダウンロード及び/又はアップロードは、モバイルデバイス31_100上のアプリケーションに代わって、バックグラウンド転送デーモン31_1302により実行され得る。
ステップ31_1402にて、バックグラウンド転送要求が受信され得る。例えば、バックグラウンド転送デーモン31_1302は、バックグラウンドダウンロード/アップロード要求を、モバイルデバイス31_100上で実行されているアプリケーションから受信し得る。アプリケーションが要求を行うと、アプリケーションは、例えば、終了又はサスペンドされ得る。この要求はアプリケーションを特定し、データに対するソース及び/又は宛先位置を特定し得る。例えば、データをダウンロードする場合、ソース位置はサーバのネットワークアドレスであり得、宛先位置はモバイルデバイス31_100のファイルシステム内のディレクトリであり得る。データをアップロードする場合、ソース位置はファイルシステム位置であり得、宛先はネットワークの位置であり得る。
ステップ31_1404にて、モバイルデバイス31_100は、割当量及びデバイス条件がデータ転送を許可しないと判定し得る。例えば、バックグラウンド転送デーモン31_1302は、バックグラウンド転送デーモン31_1302、バックグラウンド転送が実行されるアプリケーション、及び/又は転送されるデータの量を特定するアドミッション制御要求をサンプリングデーモン31_102に行うことにより、要求されたバックグラウンド転送を実行してもよいか、サンプリングデーモン31_102に尋ね得る。サンプリングデーモン31_102は、エネルギ及びデータ割当量が使い果たされているか、かつ、モバイルデバイス31_100が熱イベントのさなかにあるか判定し得る。割当量が使い果たされている場合、又は、モバイルデバイス31_100が熱イベントのさなかにある場合、サンプリングデーモン31_102は、バックグラウンドデータ転送を実行してはよくないこと(例えば、アドミッション制御が「no」を返す)を示すメッセージをバックグラウンド転送デーモン31_1302に送信し得る。
ステップ31_1406にて、モバイルデバイス31_100はバックグラウンド転送要求を記憶し得る。例えば、アドミッション制御要求に応じてサンプリングデーモン31_102が「no」値を返すと、バックグラウンド転送デーモン31_1302は、転送要求を転送要求リポジトリに記憶し得る。
ステップ31_1408にて、モバイルデバイス31_100は、バックグラウンド転送をリトライしてもよいと判定し得る。例えば、サンプリングデーモン31_102は、データ及びエネルギ割当量が補充されており、モバイルデバイス31_100が熱イベントのさなかにないと判定し得る。サンプリングデーモン31_102は、リトライメッセージをバックグラウンド転送デーモン31_1302に送信し得る。バックグラウンド転送デーモン31_1302は続いて、記憶された転送要求のそれぞれに対して別のアドミッション制御要求を実行することにより、転送要求リポジトリに記憶された、要求された転送を実行することを試み得る。
ステップ31_1410にて、モバイルデバイス31_100は、モバイルデバイス31_100の割当量及び条件が、バックグラウンドデータ転送を許可すると判定し得る。例えば、バックグラウンド転送デーモン31_1302は、サンプリングデーモン31_102に、要求されたバックグラウンド転送を実行してもよいか尋ね得る。サンプリングデーモン31_102はアドミッション制御を実行し、エネルギ及びデータ割当量が補充されており、モバイルデバイス31_100が熱イベントのさなかにないこと判定し得る。割当量が使い果たされておらず、かつモバイルデバイス31_100が熱イベントのさなかにない場合、サンプリングデーモン31_102は、バックグラウンドデータ転送を実行してもよいことを示すメッセージをバックグラウンド転送デーモン31_1302に送信し得る。
ステップ31_1412にて、モバイルデバイス31_100はバックグラウンド転送を実行し得る。例えば、バックグラウンド転送デーモン31_1302は、要求されたバックグラウンドダウンロード又はバックグラウンドアップロードを、要求しているアプリケーションのために実行し得る。バックグラウンド転送デーモン31_1302は、サンプリングデーモン31_102に、バックグラウンド転送がいつ開始し、いつ終了するかを通知し得る(例えば、「backgroundTransfer」属性開始及び停止イベントを使用して)。バックグラウンド転送デーモン31_1302は、バックグラウンドダウンロード又はアップロード中に転送されたバイト数をサンプリングデーモンに知らせるメッセージを送信し得る(例えば、「networkBytes」属性イベントを使用して)。バックグラウンド転送が完了すると、バックグラウンド転送デーモン31_1302は、バックグラウンド転送要求を行ったアプリケーションを呼び出し(例えば、起動又はウェイク)、その要求しているアプリケーションに完了状態情報を送信し得る(例えば、サクセス、エラー、ダウンロードしたデータなど)。
バックグラウンド更新を有効/無効にする
図31-15は、モバイルデバイス上のアプリケーションに対するバックグラウンド更新を有効及び/又は無効にするためのグラフィカルユーザインタフェース(GUI)例31_1500を示す。例えば、GUI31_1500は、モバイルデバイス31_100上のアプリケーションに対するバックグラウンド更新設定を調整するためのユーザ入力を受信するために、モバイルデバイス31_100のディスプレイ上に提示されたインタフェースであり得る。
一部の実装では、GUI31_1500へのユーザ入力は、上述するように、ユーザ呼び出し予測に基づいて、アプリケーションに対するバックグラウンド更新が実行されることを有効又は無効にし得る。例えば、サンプリングデーモン31_102及び/又はアプリケーションマネジャ31_106は、アプリケーションに対するバックグラウンド更新が有効又は無効であるか判定し、アプリケーションマネジャ31_106によりアプリケーションが起動されることを阻止し得る、又は、サンプリングデーモン31_102により生成されるアプリケーション呼び出し予想にアプリケーションが含まれることを阻止し得る。例えば、バックグラウンド更新がアプリケーションに対して無効である場合、サンプリングデーモン31_102は、そのアプリケーションを、アプリケーションマネジャ31_106により要求されたユーザ呼び出しアプリケーション予想に含めない。従って、バックグラウンド更新が無効である場合、アプリケーションマネジャ31_106はアプリケーションを起動しない。反対に、バックグラウンド更新がアプリケーションに対して有効である場合、上述するように、ユーザ呼び出しの蓋然性に基づいて、そのアプリケーションは、サンプリングデーモン31_102により生成されるアプリケーション呼び出し予想に含まれてよい。
一部の実装では、プッシュ通知が受信されると、GUI31_1500へのユーザ入力は、上述するように、アプリケーションに対するバックグラウンド更新が実行されることを有効又は無効にし得る。例えば、サンプリングデーモン31_102、アプリケーションマネジャ31_106、及び/又はプッシュサービスデーモン31_904は、アプリケーションに対するバックグラウンド更新が有効又は無効であるかを判定し、プッシュ通知を受信したことに応じて、そのアプリケーションがアプリケーションマネジャ31_106により起動されることを阻止し得る。例えば、バックグラウンド更新がアプリケーションに対して無効であり、そのアプリケーションに対するプッシュ通知を受信する場合、アプリケーションマネジャ31_106は、プッシュ通知に応じてアプリケーションを起動せず、更新をダウンロードしない。
一部の実装では、GUI31_1500は、バックグラウンド更新を実行するよう構成されたアプリケーション31_1502~1514を表示し得る。例えば、アプリケーション31_1502~1514は、アプリケーションマネジャ31_106により起動されると、モバイルデバイス31_100上でバックグラウンドプロセスとして実行されるよう構成又はプログラムされ得る。バックグラウンドプロセスとして実行されると、アプリケーション31_1502~1514は、様々なネットワークリソースと通信し、現在の又は更新されたコンテンツをダウンロードし得る。アプリケーション31_1502~1514は続いて、それらそれぞれのユーザインタフェースを更新し、モバイルデバイス31_100のユーザにより呼び出されると、更新されたコンテンツを提示し得る。一部の実装では、バックグラウンド更新を実行するよう構成又はプログラムされていないアプリケーションは、GUI31_1500上に表示されない。
一部の実装では、ユーザは、入力をGUI31_1500に提供し、アプリケーションに対するバックグラウンド更新を有効及び/又は無効にし得る。例えば、ユーザは、トグル31_1516に関連する入力(例えば、タッチ入力)をモバイルデバイス31_100に提供し、アプリケーション31_1502に対するバックグラウンド更新をオン又はオフにし得る。ユーザは、トグル31_1518に関連する入力(例えば、タッチ入力)をモバイルデバイス31_100に提供し、アプリケーション31_1508に対するバックグラウンド更新をオン又はオフにし得る。
一部の実装では、バックグラウンド更新アプリケーションに対する追加オプションが、GUI31_1500を通して指定され得る。例えば、ユーザは、アプリケーション31_1514に関連付けられたグラフィカルオブジェクト31_1510を選択し、追加バックグラウンド更新オプションを指定するためのグラフィカルユーザインタフェース(図示せず)を呼び出し得る。バックグラウンド更新オプションは、例えば、アプリケーション31_1514に対するバックグラウンド更新をオン及び/又はオフにする開始時間及び終了時間を含み得る。
ピアデバイス間でデータをシェアする
図31-16は、ピアデバイス間でデータをシェアするためのシステム例を示す。一部の実装では、モバイルデバイス31_100は、イベントデータ、システムデータ、及び/又はイベント予想を、モバイルデバイス31_1600とシェアし得る。例えば、モバイルデバイス31_100及びモバイルデバイス31_1600は、同じユーザにより所有されるデバイスであり得る。従って、各デバイス上でのユーザのアクティビティについての情報を、モバイルデバイス31_100とモバイルデバイス31_1600との間でシェアすることは有益となる可能性がある。
一部の実装では、モバイルデバイス31_1600は、上述するように、モバイルデバイス31_100と同様に構成され得る。例えば、モバイルデバイス31_1600は、先の段落で説明された機能を提供するサンプリングデーモン31_1602と共に構成され得る(例えば、属性、属性イベント、予想すること、アドミッション制御など)。
一部の実装では、モバイルデバイス31_100及びモバイルデバイス31_1600はそれぞれ、識別サービスデーモン31_1620及び識別サービスデーモン31_1610と共に構成され得る。例えば、識別サービスデーモン31_1620及び31_1610は、モバイルデバイス31_100とモバイルデバイス31_1600との間で情報を通信するよう構成され得る。識別サービスデーモンは、様々なピアツーピア及びネットワーク接続を経由して、同じユーザにより所有されるデバイス間でデータをシェアするよう使用され得る。例えば、識別サービスデーモン31_1620及び識別サービスデーモン31_1610は、Bluetooth、Bluetooth Low Energy、Wi-Fi、LAN、WAN、及び/又はインターネット接続を経由して情報を交換し得る。
一部の実装では、サンプリングデーモン31_1602(及び、サンプリングデーモン31_102)は、イベント予想及びシステム状態情報を、同じユーザにより所有される他のデバイス上で実行される他のサンプリングデーモンとシェアするよう構成され得る。例えば、モバイルデバイス31_100及びモバイルデバイス31_1600が、同じユーザにより所有されている場合、サンプリングデーモン31_102及びサンプリングデーモン31_1602は、イベント予想情報及び/又はシステム状態情報(例えば、バッテリ状態)を交換し得る。例えば、サンプリングデーモン31_1602は、識別サービスデーモン31_1610を使用して、イベント予想情報及び/又はシステム状態情報を送信し得る。
識別サービスデーモン31_1610は、識別サービスデーモン31_1620への接続を確立し、イベント予想情報及び/又はモバイルデバイス31_1600システム状態情報を、サンプリングデーモン31_102に、識別サービスデーモン31_1620を通して通信し得る。
一部の実装では、アプリケーション31_1608(例えば、サンプリングデーモン31_1602のクライアント)は、サンプリングデーモン31_1602が、指定された属性又は属性値に対するイベント予想をサンプリングデーモン31_102に送信することを要求し得る。例えば、アプリケーション31_1608は、モバイルデバイス31_100のアプリケーション31_108と同期されているアプリケーションであり得る。例えば、アプリケーション31_108及び31_1608は、モバイルデバイス31_100とモバイルデバイス31_1600との間でデータ(例えば、メディアファイル、メッセージ、状態情報など)を同期するよう構成されたメディアアプリケーション(例えば、音楽ライブラリ、ビデオライブラリ、電子メールアプリケーション、メッセージアプリケーションなど)であり得る。
一部の実装では、デバイスとの間でデータをいつ同期するかをピアデバイス(例えば、モバイルデバイス31_100)が判定できるようにするために、アプリケーション31_1608は、モバイルデバイス31_1600により生成された属性イベントデータに基づいて、サンプリングデーモン31_1602が、「bundleId」属性又は特定の「bundleId」属性値(例えば、アプリケーション31_1608に対するアプリケーション識別子)に対する時間的及び/又はピア予想を生成し、その予測をサンプリングデーモン31_102に送信することを要求し得る。例えば、ピアデバイスは、同じユーザにより所有されるリモートデバイスであり得る(例えば、現在のローカルデバイスではない)。モバイルデバイス31_100は、例えば、モバイルデバイス31_1600のピアデバイスであり得る。
一部の実装では、要求クライアント(例えば、アプリケーション31_1608)は、予測データに対する配信及び期間についてのスケジュールを指定し得る。例えば、アプリケーション31_1608は、「bundleId」属性値「mailapp」に対するピア及び/又は時間的予想を要求し得る。アプリケーション31_1608は、例えば、予想が毎週生成されて交換され、各予想が、1週間のある長さ又は期間をカバーすることを要求し得る。
一部の実装では、ピアデバイス間のデータ交換は、静的にスケジュール化され得る。サンプリングデーモン31_1602は、モバイルデバイス31_100が、厳密なスケジュールの下でモバイルデバイス31_1600のリモート状態の一貫したビューを有するために必要な属性データを送信し得る(例えば、24時間毎のアプリケーション予想及びバッテリ統計)。一部の実装では、クライアントは、ピアデバイスからの要求で属性予想又は統計を要求し得る。これらの交換は非再来性である。要求クライアントは、要求したデータが受信されると、通知され得る。
一部の実装では、サンプリングデーモン31_1602は、モバイルデバイス31_1600に対するシステム状態データをサンプリングデーモン31_102に送信し得る。例えば、サンプリングデーモン31_1602は、バッテリ充電レベルイベント(例えば、「batteryLevel」属性イベント)、バッテリ充電イベント(例えば、「cablePlugin」イベント)、エネルギ使用量イベント(例えば、「energy」属性イベント)、及び/又は、バッテリ使用量及び充電統計を生成するために使用され得る他のイベントを受信し、バッテリ関連イベントデータをサンプリングデーモン31_102に送信し得る。例えば、バッテリ状態情報は、24時間毎に交換され得る。バッテリ状態情報は、好機に応じて交換され得る。例えば、通信チャネル(例えば、ピアツーピア、ネットワーク化など)が、モバイルデバイス31_100とモバイルデバイス31_1600との間に確立されると、モバイルデバイスは、すでに開かれた通信チャネルを好機に応じて使用し、バッテリ状態又は他のシステム状態情報(例えば、現在のフォアグランドアプリケーションの識別)を交換し得る。
別の実施例として、サンプリングデーモン31_1602は、熱レベルイベント(例えば、「thermalLevel」属性イベント)、ネットワークイベント(例えば、「networkQuality」属性イベント、「networkBytes」属性イベント)を受信し、熱及び/又はネットワークイベントをサンプリングデーモン31_102に送信し得る。サンプリングデーモン31_1602は、どのアプリケーション(例えば、アプリケーション識別子)が現在、モバイルデバイス31_1600のフォアグランドにあるかを示すイベント(例えば、「system.foregroundApp」属性イベント)を、アプリケーションマネジャ31_106から受信し、フォアグランドアプリケーション情報をサンプリングデーモン102に送信し得る。一部の実装では、熱イベント及びフォアグランドアプリケーション変更情報は、イベントが発生するとすぐに、ピアデバイス間で交換され得る(例えば、ピアデバイス間の接続が確立されるとすぐに)。一部の実装では、ネットワーク状態情報は、定期的に交換され得る(例えば、1日に1度、1日に2度、毎時間など)。
サンプリングデーモン31_1602から予想及び/又はシステムイベントデータを受領すると、サンプリングデーモン31_102は、その予想及び/又はイベントデータをピアデータストア31_1622に記憶し得る。同様に、サンプリングデーモン31_1602がサンプリングデーモン31_102から受信するいずれの予想及び/又はイベントデータが、ピアデータストア31_1612に記憶され得る。一部の実装では、別のデバイスから受信した予想及び/又はイベントデータは、デバイス説明と関連付けられ得る。例えば、デバイス説明は、デバイス名、デバイス識別子、及び、デバイスのモデルを特定するモデル識別子を含み得る。デバイス説明は、ピアデータストア31_1622内の、デバイスに対する予想データ及び/又はイベントデータを探すために使用され得る。モバイルデバイス31_100及びモバイルデバイス31_1600が予想及び/又はイベントデータを交換すると、これらのモバイルデバイスは、以下のリモートアドミッション制御メカニズムを使用して互いにいつ通信するかを判定するために、その交換された情報を使用し得る。情報が必要な時、及び、デバイスのバッテリ状態が、情報をシェアすることをサポートし得る時にのみ、デバイスが情報をシェアできることにより、通信の電力管理が改善され得る。
リモートアドミッション制御
一部の実装では、モバイルデバイス31_100(又は、モバイルデバイス31_1600)は、別のデバイスから受信したデータに基づいて、アドミッション制御を実行し得る。例えば、サンプリングデーモン31_102は、サンプリングデーモン31_1602から受信し、ピアデータストア31_1622に記憶された予想及びシステムイベントデータに基づいて、アドミッション制御を実行し得る。例えば、データをアプリケーション31_1608と同期するため、アプリケーション31_108は、同期メッセージを識別サービスデーモン31_1620に送信し得る。例えば、同期メッセージは、モバイルデバイス31_100の識別子、モバイルデバイス31_1600の識別子、優先度識別子(例えば、高、低)、及び、メッセージペイロード(例えば、同期されるデータ)を含み得る。
低優先メッセージ
一部の実装では、アドミッション制御を行った後に、低優先メッセージが送信され得る。例えば、低優先メッセージは、任意の処理に関連付けられたメッセージであり得る(例えば、バックグラウンドアプリケーション、システムユーティリティ、予期アクティビティ、ユーザにより開始されないアクティビティ)。例えば、識別サービスデーモン31_1620は、アプリケーション31_1608のバンドル識別子である「bundleId」属性値(例えば、「bundleId」=「1608」)に対するアドミッション制御要求をサンプリングデーモン31_102に送信し得る。「bundleId」属性名及び値(例えば、「1608」)に加えて、識別サービスデーモン31_1620は、アドミッション制御要求内にデバイス名(例えば、「デバイス31_1600」)を提供し、アプリケーション31_108が、別のデバイスとの通信のためのアドミッション制御を要求していることを示し得る。
一部の実装では、アドミッション制御要求を受信したことに応じて、サンプリングデーモン31_102は、ローカルアドミッション制御及びリモートアドミッション制御を実行し得る。例えば、サンプリングデーモン31_102は、上述するように、ローカルアドミッション制御を実行し、指定された属性値(例えば、「bundleId」=「1608」)に関連付けられたイベントが発生できる条件にモバイルデバイス31_100があるかを判定し得る。サンプリングデーモン31_102は、例えば、ローカルエネルギ、データ、及び属性割当量をチェックし、ボーターフィードバックを求め、指定された属性値(例えば、「bundleId」=「1608」)に関連付けられたイベントを許可する条件にモバイルデバイス31_100があるか否かを判定し得る。
ローカルアドミッション制御を実行することに加えて、サンプリングデーモン31_102は、モバイルデバイス31_1600から受信し、ピアデータストア31_1622に記憶された「bundleId」属性予想、イベントデータ、及びシステムデータに基づいて、リモートアドミッション制御を実行し得る。例えば、サンプリングデーモン31_102は、デバイス識別子(例えば、「デバイス31_1600」、デバイス名、固有識別子、UUIDなど)を使用し、モバイルデバイス31_1600に関連付けられたデータをピアデータストア31_1622内に特定し得る。サンプリングデーモン31_102は、サンプリングデーモン31_1602から受信した属性(例えば、「bundleId」)予想データを分析し、現在の15分タイムスロット内に、モバイルデバイス31_1600上で、アプリケーション31_1608がユーザにより呼び出される可能性があるか判定し得る。現在の15分タイムスロット内に、アプリケーション31_1608が、ユーザにより呼び出される可能性がない場合、続いてサンプリングデーモン31_102は、アドミッション制御要求に応じて「no」値を返し得る。例えば、アプリケーション31_1608がモバイルデバイス31_1600上で使用される可能性がある時にのみ、アプリケーション31_108がアプリケーション31_1608と同期できるようにすることにより、ユーザがアプリケーション31_1608をモバイルデバイス31_1600上で使用する可能性があるそのような時間まで、サンプリングデーモン31_102は同期プロセスを遅延し、システムリソース(例えば、バッテリ、CPUサイクル、ネットワークデータ)を節約し得る。
一部の実装では、アプリケーション31_1608が、モバイルデバイス31_1600のユーザにより、現在の15分タイムスロット内に呼び出される可能性がある場合、続いてサンプリングデーモン31_102は、モバイルデバイス31_1600に関連付けられ、ピアデータストア31_1622に記憶されたシステムデータをチェックし得る。例えば、サンプリングデーモン31_102は、モバイルデバイス31_1600に関連付けられたシステムデータをチェックし、アプリケーション31_108とアプリケーション31_1608との間の同期を実行するための残りのバッテリ充電量をモバイルデバイス31_1600が十分に有しているか判定し得る。例えば、サンプリングデーモン31_102は、アプリケーション31_108とアプリケーション31_1608との間の同期を補完するための現在のバッテリ充電量が十分であるかチェックし得る。サンプリングデーモン31_102は、同期を実行し、次の予測されたバッテリ再充電までの作動を継続するためのバッテリ充電量が十分であるかチェックし得る(例えば、「cablePlugin」属性イベント)。例えば、サンプリングデーモン31_102は、次の「cablePlugin」属性イベントがいつ発生する可能性があるかを特定する、「cablePlugin」属性に対する時間的予想を生成し得る。サンプリングデーモン31_102は、エネルギ使用統計(イベント)を分析し、次の「cablePlugin」イベントまでのエネルギ使用量を予測し、アプリケーション31_108とアプリケーション31_1608との間の同期送信をサービスするための余剰エネルギが十分であるか判定し得る。モバイルデバイス31_1600が、同期をサービスするためのエネルギ(例えば、バッテリ充電)を十分に有さないと、サンプリングデーモン31_102が判定する場合、サンプリングデーモン31_102は、リモートアドミッション制御要求に応じて「no」値を返し得る。
一部の実装では、サンプリングデーモン31_102は、モバイルデバイス31_1600に関連付けられたシステムデータをチェックし、モバイルデバイス31_1600が正常な熱条件にあり(例えば、熱すぎない)、同期要求の処理を扱うことができるか判定し得る。例えば、モバイルデバイス31_1600が現在、閾値を超える温度にて作動していることを、モバイルデバイス31_1600から受信した「thermalLevel」属性イベントデータが示す場合、サンプリングデーモン31_102は、リモートアドミッション制御要求に応じて「no」値を返すことにより、同期通信を阻止し得る。
一部の実装では、ユーザがアプリケーション31_1608をモバイルデバイス31_1600上で呼び出す可能性があることを予測データが示し、エネルギ、熱、及び他のシステム状態情報が、モバイルデバイス31_100からの通信を処理する条件にモバイルデバイス31_1600があることを示す場合、サンプリングデーモン31_102は、アドミッション制御要求に応じて「yes」値を、識別サービスデーモン31_1620に返し得る。アドミッション制御要求に応じて「yes」値を受信したことに応じて、識別サービスデーモン31_1620は、アプリケーション31_108に対する同期メッセージを、モバイルデバイス31_1600上の識別サービスデーモン31_1610に送信し得る。アプリケーション31_108及びアプリケーション31_1608は続いて、識別サービスデーモン31_1620及び識別サービスデーモン31_1610を通してメッセージを交換することにより、データを同期し得る。
一部の実装では、リモートアドミッション制御を行った後に、高優先メッセージが送信され得る。例えば、高優先メッセージは、フォアグランドアプリケーションに関連付けられたメッセージ、又は、ユーザ提供入力に応じて生成されたメッセージなどの、ユーザ開始タスクに関連付けられたメッセージであり得る。一部の実装では、高優先メッセージに対するアドミッション制御は、低優先メッセージと同様に処理され得る。しかし、高優先メッセージに対してリモートアドミッション制御を実行する際には、高優先メッセージは、属性予想データ(例えば、「bundleId」予想データ)を考慮することなくアドミット(許可)され得る。なぜなら、高優先メッセージは通常、一部の任意のバックグラウンドタスクにより開始される代わりに、一部のユーザアクションによりトリガーされるからである。
一部の実装では、高優先メッセージに対してアドミッション制御を実行する際には、リモートデバイス(例えば、モバイルデバイス31_1600)のバッテリ状態がチェックされ、高優先メッセージの処理に利用可能なバッテリ充電量をリモートデバイス(例えば、ピアデバイス)が十分有していることが確認され得る。リモートデバイス上で十分なバッテリ充電量が利用可能である場合、続いて高優先メッセージが、リモートアドミッション制御により承認される。例えば、高優先メッセージの処理に十分なバッテリ充電量が残っている場合、サンプリングデーモン31_102は、リモートアドミッション制御要求に応じて「yes」値を、識別サービスデーモン31_1620に送信し得る。リモートデバイス上に十分なバッテリ充電量が利用可能でない場合、続いて高優先メッセージが、リモートアドミッション制御により拒否される。例えば、高優先メッセージの処理に十分なバッテリ充電量が残っていない場合、サンプリングデーモン31_102は、リモートアドミッション制御要求に応じて「no」値を、識別サービスデーモン31_1620に送信し得る。従って、対象メッセージの処理に十分な残りのバッテリ充電量をピアデバイスが有している場合、識別サービスデーモン31_1620は、ピアデバイス(例えば、モバイルデバイス31_1600)との通信を開始する。
一部の実装では、サンプリングデーモン31_102が高優先メッセージを通知されると、サンプリングデーモン31_102は、現在のバッテリ状態情報(例えば、現在の充電レベル)を識別サービスデーモン31_1620に送信し得る。識別サービスデーモン31_1620は続いて、そのバッテリ状態情報を高優先メッセージに追加し得る。従って、バッテリ状態情報(又は、他の情報、例えば、熱レベル、フォアグランドアプリケーションなど)を、モバイルデバイス31_100とモバイルデバイス31_1600との間で送信される他のメッセージ上で抱き合わせで運搬することにより、システム状態情報はデバイス間で効率的にシェアされ得る。
一部の実装では、サンプリングデーモン31_102は、リトライメッセージを識別サービスデーモン31_1620に送信し得る。例えば、モバイルデバイス31_100又はモバイルデバイス31_1600上の条件が変わると(例えば、バッテリ条件が改善する)、サンプリングデーモン31_102は、リトライメッセージを識別サービスデーモン31_1620に送信し得る。一部の実装では、リモートフォーカルアプリケーションが変わると、リトライメッセージが生成され得る。例えば、リモートピアデバイス上のユーザが「mailapp」アプリケーションを使用する場合、「mailapp」アプリケーションがフォーカルアプリケーションとなる。ユーザが「webbrowser」アプリケーションの使用を開始すると、フォーカルアプリケーションは「webbrowser」アプリケーションに変わる。フォーカルアプリケーションの変更は、イベントとしてサンプリングデーモン31_1602に報告され、モバイルデバイス31_100とモバイルデバイス31_1600との間でピアデータが交換される際に、サンプリングデーモン31_102に送信され得る。フォーカルアプリケーションの変更を示すイベント情報がピアデバイス31_1602にて受信されると、サンプリングデーモン31_102は、リトライメッセージを識別サービスデーモン31_1620に送信し得る。識別サービスデーモン31_1620は続いて、サンプリングデーモン31_102により拒否された各メッセージに対するアドミッション制御をリトライし得る。例えば、識別サービスデーモン31_1620は、拒否されたメッセージ(例えば、送信タスク)を記憶し、リトライメッセージをサンプリングデーモン31_102から受信すると、その拒否されたメッセージを、アドミッション制御を通して送信し得る。一部の実装では、拒否されたメッセージは、ある期間の経過後に送信され得る。例えば、アドミッション制御を通過していないメッセージは、構成変更可能な期間の経過後に、ピアデバイスに送信され得る。
一部の実装では、モバイルデバイス31_100又はモバイルデバイス31_1600上の条件が変更されたことをサンプリングデーモン31_102が示す場合、識別サービスデーモン31_1620は、データストリーム送信を中断し得る。例えば、モバイルデバイスの1つがバッテリ電力を使い果たした可能性があるといった、モバイルデバイス31_100又はモバイルデバイス31_1600上のバッテリ条件が変わったことをサンプリングデーモン31_102が判定する場合、サンプリングデーモン31_102は、データストリームに関連付けられた属性イベントに対する送信を停止してアドミッション制御をリトライするよう、識別サービスデーモン31_1620に伝え得る。
ピアデバイス間でデータをシェアするためのプロセス
図31-17は、ピアデバイス間でデータをシェアするためのプロセス例31_1700を示す。プロセス31_1700についての追加詳細は、図31-16を参照して上記に見ることができる。ステップ31_1702にて、モバイルデバイスは、イベントデータをピアデバイスから受信し得る。例えば、イベントデータは、「digests」(例えば、予想、統計など)として、又は、生の(例えば、未処理の)イベントデータとして、シェアされ得る。例えば、第2のデバイス(例えば、モバイルデバイス31_1600)は、その第2のデバイス及びモバイルデバイスが同じユーザにより所有されている場合、モバイルデバイス31_100のピアデバイスである。モバイルデバイス31_100は、モバイルデバイス31_1600のシステム状態(例えば、バッテリ状態、ネットワーク状態、フォアグランドアプリケーション識別子など)に関連するイベントデータを受信し得る。モバイルデバイスは、モバイルデバイス31_1600上で発生するイベントに基づく属性イベント予想、統計、又は生のイベントデータを、モバイルデバイス31_1600から受信し得る。例えば、ピアデバイス31_1600上のアプリケーション31_1608は、ピアデバイス31_1600上のサンプリングデーモン31_1602に、特定の属性又は属性値に対する予想を生成し、モバイルデバイス31_100に送信するよう指示し得る。
ステップ31_1704にて、モバイルデバイス31_100上の識別サービスデーモン31_1620は、ピアデバイス31_1600に送信するためのメッセージを受信し得る。例えば、モバイルデバイス上で実行されるアプリケーション31_108は、データの、ピアデバイス31_1600上の対応するアプリケーション31_1608とのシェア、交換、又は同期を必要としてよい。アプリケーション31_108は、シェアされるデータを含むメッセージを、識別サービスデーモン31_1620に送信し得る。
ステップ31_1706にて、モバイルデバイス100上のサンプリングデーモン31_102は、ピアデバイス31_1600から受信したデータに基づいて、メッセージを送信するか否かを判定し得る。例えば、サンプリングデーモン31_102は、ローカルアドミッション制御チェック及びリモートアドミッション制御チェックを実行し、メッセージが現在時刻にピアデバイス31_1600に送信されるべきか否かを判定し得る。ピアデバイス31_1600のユーザが現在時刻にアプリケーション31_1608を呼び出す可能性があることを、ピアデバイス31_1600から受信した属性イベント予想が示す場合、かつ、ピアデバイス31_1600の条件(例えば、バッテリ状態、熱レベルなど)が、ピアデバイス31_1600との通信を開始することがバッテリを使い果たすことはなく、又は、熱状態を悪化させないようなものであると、イベントデータが示す場合、続いてサンプリングデーモン31_102は、メッセージの送信を承認し得る。
ステップ31_1708にて、サンプリングデーモン31_102がアドミッション制御を実行し、ピアデバイス31_1600との通信を開始することを承認すると、識別サービスデーモン31_1620は、ピアデバイス31_1600にメッセージを送信し得る。例えば、識別サービスデーモン31_1620は、ピアデバイス31_1600の識別サービスデーモン31_1610にメッセージを送信し得る。識別サービスデーモン31_1610は続いて、アプリケーション31_1608にメッセージを送信し得、アプリケーション31_108及びアプリケーション31_1608がデータを同期し得るようにする。
(例えば、図1Aのデバイス100の)メモリはまた、他のソフトウェア命令を記憶し、図31-1~図31-17を参照して説明するような動的調整プロセス及び機能などの、セクション1に説明するプロセス及び機能を促進してよい。
モバイルデバイスの動的調整の方法、システム、及びコンピュータ可読媒体例
(例えば、図1Aのデバイス100の)メモリはまた、他のソフトウェア命令を記憶し、図31-1~図31-17を参照して説明するような動的調整プロセス及び機能などの、セクション1に説明するプロセス及び機能を促進してよい。
1つの態様では、モバイルデバイスは、モバイルデバイス及び/又はピアデバイスに関連付けられた環境、システム、及びユーザイベントを監視するよう構成され得る。1つ以上のイベントの発生は、システム設定に対する調整をトリガーし得る。モバイルデバイスは、ユーザによる、予測された呼び出しの予想に基づいて、頻繁に呼び出されるアプリケーションを最新に維持するよう構成され得る。一部の実装では、モバイルデバイスは、アプリケーションに対する新たなコンテンツが利用可能で、ダウンロード可能であることを示す、アプリケーションに関連付けられたプッシュ通知を受信し得る。モバイルデバイスは、プッシュ通知に関連付けられたアプリケーションをバックグラウンドで起動し、新たなコンテンツをダウンロードし得る。一部の実装では、モバイルデバイスは、アプリケーションを実行する前に、又は、ピアデバイスと通信する前に、モバイルデバイス及び/又はピアデバイスのエネルギ及びデータ割当量並びに環境条件をチェックし、高品質なユーザエクスペリエンスを確かにするよう構成され得る。
一部の実装では、方法が提供される。この方法は、モバイルデバイスにて、ピアデバイス上で発生したイベントを説明する属性イベントデータを、ピアデバイスから受信することと、ピアイベントデータを、モバイルデバイスにて記憶することと、ピアデバイス上の対応するアプリケーションに対する識別子に対応する値を有する属性を含む要求であって、ピアデバイスと通信することの要求を、モバイルデバイス上のアプリケーションから受信することと、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することと、を含む。
一部の実装では、ピアデバイス及びモバイルデバイスは、単一のユーザにより所有される。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することは、ピアイベントデータに基づいて、属性に対する1つ以上の予想を生成することを含む。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することは、ピアイベントデータに基づいて、ピアデバイスのバッテリ状態を判定することを含む。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することは、ピアイベントデータに基づいて、ピアデバイスの熱状態を判定することを含む。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することは、ユーザが、現在時刻前後に、ピアデバイス上の対応するアプリケーションを呼び出す可能性があると判定することを含む。
一部の実装では、非一時的コンピュータ可読記憶媒体が提供され、この非一時的コンピュータ可読記憶媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、モバイルデバイスに、ピアデバイス上で発生したイベントを説明する属性イベントデータをピアデバイスから受信させ、ピアイベントデータを、モバイルデバイスにて記憶させ、ピアデバイス上の対応するアプリケーションに対する識別子に対応する値を有する属性を含む要求であって、ピアデバイスと通信することの要求を、モバイルデバイス上のアプリケーションから受信させ、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定すさせる。
一部の実装では、ピアデバイス及びモバイルデバイスは、単一のユーザにより所有される。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することを引き起こす命令は、ピアイベントデータに基づいて、属性に対する1つ以上の予想を生成することを引き起こす命令を含む。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することを引き起こす命令は、ピアイベントデータに基づいて、ピアデバイスのバッテリ状態を判定することを引き起こす命令を含む。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することを引き起こす命令は、ピアイベントデータに基づいて、ピアデバイスの熱状態を判定することを引き起こす命令を含む。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することを引き起こす命令は、ユーザが、現在時刻前後に、ピアデバイス上の対応するアプリケーションを呼び出す可能性があると判定することを引き起こす命令を含む。
一部の実装では、システムが提供され、このシステムは、1つ以上のプロセッサと、非一時的コンピュータ可読媒体と、を含み、この非一時的コンピュータ可読媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、モバイルデバイスにて、ピアデバイス上で発生したイベントを説明する属性イベントデータをピアデバイスから受信することと、ピアイベントデータを、モバイルデバイスにて記憶することと、ピアデバイス上の対応するアプリケーションに対する識別子に対応する値を有する属性を含む要求であって、ピアデバイスと通信することの要求を、モバイルデバイス上のアプリケーションから受信することと、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することと、を引き起こす。
一部の実装では、ピアデバイス及びモバイルデバイスは、単一のユーザにより所有される。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することを引き起こす命令は、ピアイベントデータに基づいて、属性に対する1つ以上の予想を生成することを引き起こす命令を含む。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することを引き起こす命令は、ピアイベントデータに基づいて、ピアデバイスのバッテリ状態を判定することを引き起こす命令を含む。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することを引き起こす命令は、ピアイベントデータに基づいて、ピアデバイスの熱状態を判定することを引き起こす命令を含む。一部の実装では、ピアイベントデータに基づいて、モバイルデバイスにより、ピアデバイスと通信を開始すると判定することを引き起こす命令は、ユーザが、現在時刻前後に、ピアデバイス上の対応するアプリケーションを呼び出す可能性があると判定することを引き起こす命令を含む。
別の態様では、モバイルデバイスは、環境、システム、及びユーザイベントを監視するよう構成され得る。1つ以上のイベントの発生は、システム設定に対する調整をトリガーし得る。一部の実装では、モバイルデバイスは、ユーザによる、予測された呼び出しの予想に基づいて、頻繁に呼び出されるアプリケーションを最新に維持するよう構成され得る。一部の実装では、モバイルデバイスは、アプリケーションに対する新たなコンテンツが利用可能で、ダウンロード可能であることを示す、アプリケーションに関連付けられたプッシュ通知を受信し得る。モバイルデバイスは、プッシュ通知に関連付けられたアプリケーションをバックグラウンドで起動し、新たなコンテンツをダウンロードし得る。一部の実装では、モバイルデバイスは、アプリケーションを実行又はネットワークインタフェースにアクセスする前に、モバイルデバイスのエネルギ及びデータ割当量並びに環境条件をチェックし、高品質なユーザエクスペリエンスを保持するよう構成され得る。
一部の実装では、方法が提供され、この方法は、モバイルデバイス上で実行される第1のプロセスにてイベントデータを受信することと、モバイルデバイス上で実行される第2のプロセスであって、その第2のプロセスの呼び出しをトリガーするための1つ以上のイベントを特定するイベント登録データを受信した後にサスペンド又は終了される第2のプロセスから、そのイベント登録データを受信することと、第1のプロセスにより、1つ以上のイベントが発生したことを、イベントデータに基づいて判定することと、モバイルデバイス上で第2のプロセスを呼び出すことと、を含む。
一部の実装では、第2のプロセスを呼び出すことは、第2のプロセスに、モバイルデバイスの1つ以上の構成要素を調整させる。一部の実装では、1つ以上の構成要素は、モバイルデバイスの中央処理装置、グラフィック処理ユニット、ベースバンドプロセッサ、又はディスプレイを含む。一部の実装では、1つ以上のイベントは、モバイルデバイスの作動温度の変化、システム設定の変化、ユーザ入力、ディスプレイのオン又はオフ、クロックアラームを設定すること、又はカレンダーイベントを設定することを含む。一部の実装では、この方法はまた、第1のプロセスにて、第2のプロセスから、第2のプロセスにより記憶されるイベントデータについての要求を受信することと、第1のプロセスから、第2のプロセスであって、イベントデータに基づいて、モバイルデバイスの1つ以上の構成要素を調整するよう構成された第2のプロセスに、要求されたイベントデータを送信することと、を含む。一部の実装では、1つ以上のイベントは、イベントのパターンを含み、第1のプロセスは、受信したイベントデータ内のパターンを特定し、イベントのパターンが検出されると、第2のプロセスを呼び出すよう構成されている。
一部の実装では、非一時的コンピュータ可読媒体が提供され、この非一時的コンピュータ可読媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、モバイルデバイス上で実行される第1のプロセスにてイベントデータを受信することと、モバイルデバイス上で実行される第2のプロセスであって、その第2のプロセスの呼び出しをトリガーするための1つ以上のイベントを特定するイベント登録データを受信した後にサスペンド又は終了される第2のプロセスから、そのイベント登録データを受信することと、第1のプロセスにより、1つ以上のイベントが発生したことを、イベントデータに基づいて判定することと、モバイルデバイス上で第2のプロセスを呼び出すことと、を引き起こす。
一部の実装では、第2のプロセスを呼び出すことは、第2のプロセスに、モバイルデバイスの1つ以上の構成要素を調整させる。一部の実装では、1つ以上の構成要素は、モバイルデバイスの中央処理装置、グラフィック処理ユニット、ベースバンドプロセッサ、又はディスプレイを含む。一部の実装では、1つ以上のイベントは、モバイルデバイスの作動温度の変化、システム設定の変化、ユーザ入力、ディスプレイのオン又はオフ、クロックアラームを設定すること、又はカレンダーイベントを設定することを含む。一部の実装では、これらの命令は、第1のプロセスにて、第2のプロセスから、第2のプロセスにより記憶されるイベントデータについての要求を受信することと、第1のプロセスから、第2のプロセスであって、イベントデータに基づいて、モバイルデバイスの1つ以上の構成要素を調整するよう構成された第2のプロセスに、要求されたイベントデータを送信することと、を引き起こす。一部の実装では、1つ以上のイベントは、イベントのパターンを含み、第1のプロセスは、受信したイベントデータ内のパターンを特定し、イベントのパターンが検出されると、第2のプロセスを呼び出すよう構成されている。
一部の実装では、システムが提供され、このシステムは、1つ以上のプロセッサと、非一時的コンピュータ可読媒体と、を含み、この非一時的コンピュータ可読媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、モバイルデバイス上で実行される第1のプロセスにてイベントデータを受信することと、モバイルデバイス上で実行される第2のプロセスであって、その第2のプロセスの呼び出しをトリガーするための1つ以上のイベントを特定するイベント登録データを受信した後にサスペンド又は終了される第2のプロセスから、そのイベント登録データを受信することと、第1のプロセスにより、1つ以上のイベントが発生したことを、イベントデータに基づいて判定することと、モバイルデバイス上で第2のプロセスを呼び出すことと、を引き起こす。
一部の実装では、第2のプロセスを呼び出すことは、第2のプロセスに、モバイルデバイスの1つ以上の構成要素を調整させる。一部の実装では、1つ以上の構成要素は、モバイルデバイスの中央処理装置、グラフィック処理ユニット、ベースバンドプロセッサ、又はディスプレイを含む。一部の実装では、1つ以上のイベントは、モバイルデバイスの作動温度の変化、システム設定の変化、ユーザ入力、ディスプレイのオン又はオフ、クロックアラームを設定すること、又はカレンダーイベントを設定することを含む。一部の実装では、これらの命令は、第1のプロセスにて、第2のプロセスから、第2のプロセスにより記憶されるイベントデータについての要求を受信することと、第1のプロセスから、第2のプロセスであって、イベントデータに基づいて、モバイルデバイスの1つ以上の構成要素を調整するよう構成された第2のプロセスに、要求されたイベントデータを送信することと、を引き起こす。一部の実装では、1つ以上のイベントは、イベントのパターンを含み、第1のプロセスは、受信したイベントデータ内のパターンを特定し、イベントのパターンが検出されると、第2のプロセスを呼び出すよう構成されている。
更なる態様では、モバイルデバイスは、モバイルデバイス及び/又はピアデバイスに関連付けられた環境、システム、及びユーザイベントを監視するよう構成され得る。1つ以上のイベントの発生は、システム設定に対する調整をトリガーし得る。モバイルデバイスは、ユーザによる、予測された呼び出しの予想に基づいて、頻繁に呼び出されるアプリケーションを最新に維持するよう構成され得る。一部の実装では、モバイルデバイスは、その新たなコンテンツを示す、アプリケーションに関連付けられたプッシュ通知を受信し得る。
一部の実装では、方法が提供され、この方法は、モバイルデバイス上にて実行される第1のプロセスにより、1つ以上のクライアントプロセスにより生成されたイベントであって、各イベントが、複数の属性であって、複数の属性のそれぞれが割当量に関連付けられている複数の属性の1つに関連付けられたデータを含むイベントであって、対応するコストを有するイベントを受信することと、モバイルデバイスにより受信された特定の属性に関連付けられたイベントのコストに基づいて、特定の属性に対する割当量を減らすことと、イベントデータを、モバイルデバイス上のイベントデータストアに記憶することと、第1のプロセスにより、クライアントプロセスから、特定の属性に関連付けられたイベントを開始することの要求を受信することと、イベントのコストを、特定の属性に対する残りの割当量と比較することと、第1のプロセスにより、比較に基づいて、特定の属性に関連付けられたイベントを許可すると判定することと、を含む。
一部の実装では、複数の属性の少なくとも1つは、クライアントにより、ランタイムにて、動的に定義される。一部の実装では、イベントを許可すると判定することは、属性に関連付けられたイベントがいつ発生する可能性があるかを示す、特定の属性に対する予想を生成することを含む。一部の実装では、イベントを許可すると判定することは、イベントのコストをカバーするのに十分な割当量が残っていると判定することを含む。一部の実装では、特定の属性に対する割当量は、クライアントにより動的に定義される。一部の実装では、割当量は、システムワイドデータ割当量の一部に対応する。一部の実装では、割当量は、システムワイドエネルギ割当量の一部に対応する。
一部の実装では、非一時的コンピュータ可読媒体が提供され、この非一時的コンピュータ可読媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、モバイルデバイス上にて実行される第1のプロセスにより、1つ以上のクライアントプロセスにより生成されたイベントであって、各イベントが、複数の属性であって、複数の属性のそれぞれが割当量に関連付けられている複数の属性の1つに関連付けられたデータを含むイベントであって、対応するコストを有するイベントを受信することと、モバイルデバイスにより受信された特定の属性に関連付けられたイベントのコストに基づいて、特定の属性に対する割当量を減らすことと、イベントデータを、モバイルデバイス上のイベントデータストアに記憶することと、第1のプロセスにより、クライアントプロセスから、特定の属性に関連付けられたイベントを開始することの要求を受信することと、イベントのコストを、特定の属性に対する残りの割当量と比較することと、第1のプロセスにより、比較に基づいて、特定の属性に関連付けられたイベントを許可すると判定することと、を引き起こす。
一部の実装では、複数の属性の少なくとも1つは、クライアントにより、ランタイムにて、動的に定義される。一部の実装では、イベントを許可すると判定することを引き起こす命令は、属性に関連付けられたイベントがいつ発生する可能性があるかを示す、特定の属性に対する予想を生成することを引き起こす命令を含む。一部の実装では、イベントを許可すると判定することを引き起こす命令は、イベントのコストをカバーするのに十分な割当量が残っていると判定することを引き起こす命令を含む。一部の実装では、特定の属性に対する割当量は、クライアントにより動的に定義される。一部の実装では、割当量は、システムワイドデータ割当量の一部に対応する。一部の実装では、割当量は、システムワイドエネルギ割当量の一部に対応する。
一部の実装では、システムが提供され、このシステムは、1つ以上のプロセッサと、コンピュータ可読媒体と、を含み、このコンピュータ可読媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、モバイルデバイス上にて実行される第1のプロセスにより、1つ以上のクライアントプロセスにより生成されたイベントであって、各イベントが、複数の属性であって、複数の属性のそれぞれが割当量に関連付けられている複数の属性の1つに関連付けられたデータを含むイベントであって、対応するコストを有するイベントを受信することと、モバイルデバイスにより受信された特定の属性に関連付けられたイベントのコストに基づいて、特定の属性に対する割当量を減らすことと、イベントデータを、モバイルデバイス上のイベントデータストアに記憶することと、第1のプロセスにより、クライアントプロセスから、特定の属性に関連付けられたイベントを開始することの要求を受信することと、イベントのコストを、特定の属性に対する残りの割当量と比較することと、第1のプロセスにより、比較に基づいて、特定の属性に関連付けられたイベントを許可すると判定することと、を引き起こす。
一部の実装では、複数の属性の少なくとも1つは、クライアントにより、ランタイムにて、動的に定義される。一部の実装では、イベントを許可すると判定することを引き起こす命令は、属性に関連付けられたイベントがいつ発生する可能性があるかを示す、特定の属性に対する予想を生成することを引き起こす命令を含む。一部の実装では、イベントを許可すると判定することを引き起こす命令は、イベントのコストをカバーするのに十分な割当量が残っていると判定することを引き起こす命令を含む。一部の実装では、特定の属性に対する割当量は、クライアントにより動的に定義される。一部の実装では、割当量は、システムワイドデータ割当量の一部に対応する。一部の実装では、割当量は、システムワイドエネルギ割当量の一部に対応する。
更に別の態様では、モバイルデバイスは、モバイルデバイス及び/又はピアデバイスに関連付けられた環境、システム、及びユーザイベントを監視するよう構成され得る。1つ以上のイベントの発生は、システム設定に対する調整をトリガーし得る。モバイルデバイスは、ユーザによる、予測された呼び出しの予想に基づいて、頻繁に呼び出されるアプリケーションを最新に維持するよう構成され得る。一部の実装では、モバイルデバイスは、アプリケーションに対する新たなコンテンツが利用可能で、ダウンロード可能であることを示す、アプリケーションに関連付けられたプッシュ通知を受信し得る。モバイルデバイスは、プッシュ通知に関連付けられたアプリケーションをバックグラウンドで起動し、新たなコンテンツをダウンロードし得る。一部の実装では、モバイルデバイスは、アプリケーションを実行する前に、又は、ピアデバイスと通信する前に、モバイルデバイス及び/又はピアデバイスのエネルギ及びデータ割当量並びに環境条件をチェックし、高品質なユーザエクスペリエンスを確かにするよう構成され得る。
一部の実装では、方法が提供され、この方法は、第1のプロセスにより、コンピューティングデバイス上で実行されている1つ以上のプラグインプロセスから、そのプラグインプロセスを、1つ以上の投票プロセスとして登録することの要求を受信することと、第1のプロセスにより、1つ以上のクライアントプロセスにより生成されたイベントであって、各イベンドが、複数の属性の1つに関連付けられたデータを含むイベントを受信することと、イベントデータを、モバイルデバイス上のイベントデータストアに記憶することと、第1のプロセスにより、クライアントプロセスから、特定の属性に関連付けられたイベントを開始することの要求を受信することと、各登録された投票プロセスに、特定の属性を識別する情報を送信することと、各登録された投票プロセスに、特定の属性を識別する情報を送信したことに応じて、登録された投票プロセスの少なくとも1つからの投票を受信することと、第1のプロセスにより、特定の属性に関連付けられたイベントを、投票に基づいて許可すると判定することと、を含む。
一部の実装では、1つ以上の投票プロセスは、ランタイムにて、第1のプロセスに動的に差し込まれる。一部の実装では、第1のプロセスにより、1つ以上の投票プロセスからのフィードバックに基づいて、特定の属性に関連付けられたイベントを許可すると判定することは、各投票プロセスに、特定の属性を識別する情報を送信することと、特定の属性に関連付けられたイベントの発生が許可されるべきであると、各投票プロセスが判定すると、投票プロセスのそれぞれからyes投票を受信することと、を含む。一部の実装では、この方法は、第1のプロセスが、1つ以上の投票プロセスの少なくとも1つからno投票を受信すると、第1のプロセスにより、第2の属性に関連付けられた第2のイベントを阻止すると判定することを含む。一部の実装では、この方法は、投票プロセスの少なくとも1つから、特定の属性に関連付けられた予想についての要求を受信することと、要求された予想を生成することと、要求された予想を、その少なくとも1つの投票プロセスに返すことと、を含む。一部の実装では、この方法は、第1のプロセスにより、1つ以上の投票プロセスからのフィードバックに基づいて、特定の属性値に関連付けられた第3のイベントを許可すると判定することを含む。一部の実装では、第1のプロセスにより、1つ以上の投票プロセスからのフィードバックに基づいて、特定の属性値に関連付けられた第3のイベントを許可すると判定することは、各投票プロセスに、特定の属性値を識別する情報を送信することと、特定の属性値に関連付けられたイベントの発生が許可されるべきであると、各投票プロセスが判定すると、投票プロセスのそれぞれからyes投票を受信することと、を含む。
一部の実装では、非一時的コンピュータ可読媒体が提供され、この非一時的コンピュータ可読媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、第1のプロセスにより、コンピューティングデバイス上で実行されている1つ以上のプラグインプロセスから、そのプラグインプロセスを、1つ以上の投票プロセスとして登録することの要求を受信すること、第1のプロセスにより、1つ以上のクライアントプロセスにより生成されたイベントであって、各イベンドが、複数の属性の1つに関連付けられたデータを含むイベントを受信することと、イベントデータを、モバイルデバイス上のイベントデータストアに記憶することと、第1のプロセスにより、クライアントプロセスから、特定の属性に関連付けられたイベントを開始することの要求を受信することと、各登録された投票プロセスに、特定の属性を識別する情報を送信することと、各登録された投票プロセスに、特定の属性を識別する情報を送信したことに応じて、登録された投票プロセスの少なくとも1つからの投票を受信することと、第1のプロセスにより、特定の属性に関連付けられたイベントを、投票に基づいて許可すると判定することと、を引き起こす。
一部の実装では、1つ以上の投票プロセスは、ランタイムにて、第1のプロセスに動的に差し込まれる。一部の実装では、第1のプロセスにより、1つ以上の投票プロセスからのフィードバックに基づいて、特定の属性に関連付けられたイベントを許可すると判定することを引き起こす命令は、各投票プロセスに、特定の属性を識別する情報を送信することと、特定の属性に関連付けられたイベントの発生が許可されるべきであると、各投票プロセスが判定すると、投票プロセスのそれぞれからyes投票を受信することと、を引き起こす命令を含む。一部の実装では、これらの命令は、第1のプロセスが、1つ以上の投票プロセスの少なくとも1つからno投票を受信すると、第1のプロセスにより、第2の属性に関連付けられた第2のイベントを阻止すると判定することを引き起こす。一部の実装では、これらの命令は、投票プロセスの少なくとも1つから、特定の属性に関連付けられた予想についての要求を受信することと、要求された予想を生成することと、要求された予想を、その少なくとも1つの投票プロセスに返すことと、を引き起こす。一部の実装では、これらの命令は、第1のプロセスにより、1つ以上の投票プロセスからのフィードバックに基づいて、特定の属性値に関連付けられた第3のイベントを許可すると判定することを引き起こす。一部の実装では、第1のプロセスにより、1つ以上の投票プロセスからのフィードバックに基づいて、特定の属性値に関連付けられた第3のイベントを許可すると判定することを引き起こす命令は、各投票プロセスに、特定の属性値を識別する情報を送信することと、特定の属性値に関連付けられたイベントの発生が許可されるべきであると、各投票プロセスが判定すると、投票プロセスのそれぞれからyes投票を受信することと、を引き起こす命令を含む。
一部の実装では、システムが提供され、このシステムは、1つ以上のプロセッサと、コンピュータ可読媒体と、を含み、このコンピュータ可読媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、第1のプロセスにより、コンピューティングデバイス上で実行されている1つ以上のプラグインプロセスから、そのプラグインプロセスを、1つ以上の投票プロセスとして登録することの要求を受信することと、第1のプロセスにより、1つ以上のクライアントプロセスにより生成されたイベントであって、各イベンドが、複数の属性の1つに関連付けられたデータを含むイベントを受信することと、イベントデータを、モバイルデバイス上のイベントデータストアに記憶することと、第1のプロセスにより、クライアントプロセスから、特定の属性に関連付けられたイベントを開始することの要求を受信することと、各登録された投票プロセスに、特定の属性を識別する情報を送信することと、各登録された投票プロセスに、特定の属性を識別する情報を送信したことに応じて、登録された投票プロセスの少なくとも1つからの投票を受信することと、第1のプロセスにより、特定の属性に関連付けられたイベントを、投票に基づいて許可すると判定することと、を引き起こす。
一部の実装では、1つ以上の投票プロセスは、ランタイムにて、第1のプロセスに動的に差し込まれる。一部の実装では、第1のプロセスにより、1つ以上の投票プロセスからのフィードバックに基づいて、特定の属性に関連付けられたイベントを許可すると判定することを引き起こす命令は、各投票プロセスに、特定の属性を識別する情報を送信することと、特定の属性に関連付けられたイベントの発生が許可されるべきであると、各投票プロセスが判定すると、投票プロセスのそれぞれからyes投票を受信することと、を引き起こす命令を含む。一部の実装では、これらの命令は、第1のプロセスが、1つ以上の投票プロセスの少なくとも1つからno投票を受信すると、第1のプロセスにより、第2の属性に関連付けられた第2のイベントを阻止すると判定することを引き起こす。一部の実装では、これらの命令は、投票プロセスの少なくとも1つから、特定の属性に関連付けられた予想についての要求を受信することと、要求された予想を生成することと、要求された予想を、その少なくとも1つの投票プロセスに返すことと、を引き起こす。一部の実装では、これらの命令は、第1のプロセスにより、1つ以上の投票プロセスからのフィードバックに基づいて、特定の属性値に関連付けられた第3のイベントを許可すると判定することを引き起こす。一部の実装では、第1のプロセスにより、1つ以上の投票プロセスからのフィードバックに基づいて、特定の属性値に関連付けられた第3のイベントを許可すると判定することを引き起こす命令は、各投票プロセスに、特定の属性値を識別する情報を送信することと、特定の属性値に関連付けられたイベントの発生が許可されるべきであると、各投票プロセスが判定すると、投票プロセスのそれぞれからyes投票を受信することと、を引き起こす命令を含む。
1つの他の態様では、モバイルデバイスは、モバイルデバイス及び/又はピアデバイスに関連付けられた環境、システム、及びユーザイベントを監視するよう構成され得る。1つ以上のイベントの発生は、システム設定に対する調整をトリガーし得る。モバイルデバイスは、ユーザによる、予測された呼び出しの予想に基づいて、頻繁に呼び出されるアプリケーションを最新に維持するよう構成され得る。一部の実装では、モバイルデバイスは、アプリケーションに対する新たなコンテンツが利用可能で、ダウンロード可能であることを示す、アプリケーションに関連付けられたプッシュ通知を受信し得る。モバイルデバイスは、プッシュ通知に関連付けられたアプリケーションをバックグラウンドで起動し、新たなコンテンツをダウンロードし得る。一部の実装では、モバイルデバイスは、アプリケーションを実行する前に、又は、ピアデバイスと通信する前に、モバイルデバイス及び/又はピアデバイスのエネルギ及びデータ割当量並びに環境条件をチェックし、高品質なユーザエクスペリエンスを確かにするよう構成され得る。
一部の実装では、方法が提供され、この方法は、モバイルデバイス上にて実行される第1のプロセスにより、1つ以上のクライアントプロセスにより生成されたイベントであって、各イベンドが、複数の属性の1つに関連付けられたデータを含むイベントを受信することと、イベントデータを、モバイルデバイス上のイベントデータストアに記憶することと、記憶されたイベントデータ内の属性のそれぞれに対して、1つ以上のイベント予想を生成することと、第1のプロセスにより、クライアントプロセスから、特定の属性に関連付けられたイベントを開始することの要求を受信することと、第1のプロセスにより、特定の属性に対して生成された予想に基づいて、特定の属性に関連付けられたイベントを許可すると判定することと、を含む。
一部の実装では、1つ以上の予想は、ある属性に関連付けられたイベントがある期間内に発生する可能性を予測する。一部の実装では、1つ以上の予想は、ピア予想を含む。一部の実装では、1つ以上の予想は、時間的予想を含む。一部の実装では、1つ以上の予想は、イベントデータストア内の特定の属性の発生の頻度に基づく頻度予想を含む。一部の実装では、1つ以上の予想は、特定の属性とは異なる属性に関連付けられたイベントに基づくパノラマ予想を含む。一部の実装では、この方法は、複数の予想タイプのそれぞれが、受信したイベントの発生をどれほど良好に予測するかに基づいて、既定予想タイプを判定することを含む。一部の実装では、複数の予想タイプは、頻度予想タイプと、パノラマ予想タイプと、を含む。
一部の実装では、非一時的コンピュータ可読媒体が提供され、この非一時的コンピュータ可読媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、モバイルデバイス上にて実行される第1のプロセスにより、1つ以上のクライアントプロセスにより生成されたイベントであって、各イベンドが、複数の属性の1つに関連付けられたデータを含むイベントを受信することと、イベントデータを、モバイルデバイス上のイベントデータストアに記憶することと、記憶されたイベントデータ内の属性のそれぞれに対して、1つ以上のイベント予想を生成することと、第1のプロセスにより、クライアントプロセスから、特定の属性に関連付けられたイベントを開始することの要求を受信することと、第1のプロセスにより、特定の属性に対して生成された予想に基づいて、特定の属性に関連付けられたイベントを許可すると判定することと、を引き起こす。
一部の実装では、1つ以上の予想は、ある属性に関連付けられたイベントがある期間内に発生する可能性を予測する。一部の実装では、1つ以上の予想は、ピア予想を含む。一部の実装では、1つ以上の予想は、時間的予想を含む。一部の実装では、1つ以上の予想は、イベントデータストア内の特定の属性の発生の頻度に基づく頻度予想を含む。一部の実装では、1つ以上の予想は、特定の属性とは異なる属性に関連付けられたイベントに基づくパノラマ予想を含む。一部の実装では、これらの命令は、複数の予想タイプのそれぞれが、受信したイベントの発生をどれほど良好に予測するかに基づいて、既定予想タイプを判定することを引き起こす。一部の実装では、複数の予想タイプは、頻度予想タイプと、パノラマ予想タイプと、を含む。
一部の実装では、システムが提供され、このシステムは、1つ以上のプロセッサと、非一時的コンピュータ可読媒体と、を含み、この非一時的コンピュータ可読媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、モバイルデバイス上にて実行される第1のプロセスにより、1つ以上のクライアントプロセスにより生成されたイベントであって、各イベンドが、複数の属性の1つに関連付けられたデータを含むイベントを受信することと、イベントデータを、モバイルデバイス上のイベントデータストアに記憶することと、記憶されたイベントデータ内の属性のそれぞれに対して、1つ以上のイベント予想を生成することと、第1のプロセスにより、クライアントプロセスから、特定の属性に関連付けられたイベントを開始することの要求を受信することと、第1のプロセスにより、特定の属性に対して生成された予想に基づいて、特定の属性に関連付けられたイベントを許可すると判定することと、を引き起こす。
一部の実装では、1つ以上の予想は、ある属性に関連付けられたイベントがある期間内に発生する可能性を予測する。一部の実装では、1つ以上の予想は、ピア予想を含む。一部の実装では、1つ以上の予想は、時間的予想を含む。一部の実装では、1つ以上の予想は、イベントデータストア内の特定の属性の発生の頻度に基づく頻度予想を含む。一部の実装では、1つ以上の予想は、特定の属性とは異なる属性に関連付けられたイベントに基づくパノラマ予想を含む。一部の実装では、これらの命令は、複数の予想タイプのそれぞれが、受信したイベントの発生をどれほど良好に予測するかに基づいて、既定予想タイプを判定することを引き起こす。一部の実装では、複数の予想タイプは、頻度予想タイプと、パノラマ予想タイプと、を含む。
更なる追加態様では、モバイルデバイスは、モバイルデバイス及び/又はピアデバイスに関連付けられた環境、システム、及びユーザイベントを監視するよう構成され得る。1つ以上のイベントの発生は、システム設定に対する調整をトリガーし得る。モバイルデバイスは、ユーザによる、予測された呼び出しの予想に基づいて、頻繁に呼び出されるアプリケーションを最新に維持するよう構成され得る。一部の実装では、モバイルデバイスは、アプリケーションに対する新たなコンテンツが利用可能で、ダウンロード可能であることを示す、アプリケーションに関連付けられたプッシュ通知を受信し得る。モバイルデバイスは、プッシュ通知に関連付けられたアプリケーションをバックグラウンドで起動し、新たなコンテンツをダウンロードし得る。一部の実装では、モバイルデバイスは、アプリケーションを実行する前に、又は、ピアデバイスと通信する前に、モバイルデバイス及び/又はピアデバイスのエネルギ及びデータ割当量並びに環境条件をチェックし、高品質なユーザエクスペリエンスを確かにするよう構成され得る。
一部の実装では、方法が提供され、この方法は、モバイルデバイス上にて実行される熱管理デーモンにて、ある属性の指定された値に関連付けられたイベントの発生の許可について投票することの要求を受信することと、サンプリングデーモンからの、その属性についてのピア予想を要求することと、その属性に関連付けられ、現在時刻付近で発生すると予測された複数の値のそれぞれに対するスコアを受信することと、指定された属性値のスコアに基づいて、イベントを許可するよう投票することと、を含む。
一部の実装では、この方法は、複数の値の中の、ある数の最高スコアの属性値を判定することと、指定された属性値が、ある数の最高スコアの属性値の中に含まれる場合に、そのイベントを許可するよう投票することと、を含む。一部の実装では、この方法は、指定された属性値が、複数の値の中に含まれない場合に、イベントを阻止するよう投票することを含む。一部の実装では、この方法は、複数の値内の、ある数の最低スコアの属性値を判定することと、指定された属性値が、ある数の最低スコアの属性値の中に含まれる場合に、イベントを阻止するよう投票することと、を含む。一部の実装では、この方法は、モバイルデバイスの現在の作動温度に基づいて、ある数の最低スコアの属性値を判定することを含む。一部の実装では、この方法は、現在の作動温度が、作動温度の範囲内のどこにあるかに基づいて、ある数の最低スコアの属性値を判定することを含む。
一部の実装では、非一時的コンピュータ可読媒体が提供され、この非一時的コンピュータ可読媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、モバイルデバイス上にて実行される熱管理デーモンにて、ある属性の指定された値に関連付けられたイベントの発生の許可について投票することの要求を受信することと、サンプリングデーモンからの、その属性についてのピア予想を要求することと、その属性に関連付けられ、現在時刻付近で発生すると予測された複数の値のそれぞれに対するスコアを受信することと、指定された属性値のスコアに基づいて、イベントを許可するよう投票することと、を引き起こす。
一部の実装では、これらの命令は更に、複数の値の中の、ある数の最高スコアの属性値を判定することと、指定された属性値が、ある数の最高スコアの属性値の中に含まれる場合に、そのイベントを許可するよう投票することと、を引き起こす。一部の実装では、これらの命令は、指定された属性値が、複数の値の中に含まれない場合に、イベントを阻止するよう投票することを引き起こす。一部の実装では、これらの命令は、複数の値の中の、ある数の最低スコアの属性値を判定することと、指定された属性値が、ある数の最低スコアの属性値の中に含まれる場合に、イベントを阻止するよう投票することと、を引き起こす。一部の実装では、これらの命令は、モバイルデバイスの現在の作動温度に基づいて、ある数の最低スコアの属性値を判定することを引き起こす。一部の実装では、これらの命令は、現在の作動温度が、作動温度の範囲内のどこにあるかに基づいて、ある数の最低スコアの属性値を判定することを引き起こす。
一部の実装では、システムが提供され、このシステムは、1つ以上のプロセッサと、コンピュータ可読媒体と、を含み、このコンピュータ可読媒体は、1つ以上の命令のシーケンスを含み、これらの命令は、1つ以上のプロセッサにより実行されると、モバイルデバイス上にて実行される熱管理デーモンにて、ある属性の指定された値に関連付けられたイベントの発生の許可について投票することの要求を受信することと、サンプリングデーモンからの、その属性についてのピア予想を要求することと、その属性に関連付けられ、現在時刻付近で発生すると予測された複数の値のそれぞれに対するスコアを受信することと、指定された属性値のスコアに基づいて、イベントを許可するよう投票することと、を引き起こす。
一部の実装では、これらの命令は更に、複数の値の中の、ある数の最高スコアの属性値を判定することと、指定された属性値が、ある数の最高スコアの属性値の中に含まれる場合に、そのイベントを許可するよう投票することと、を引き起こす。一部の実装では、これらの命令は、指定された属性値が、複数の値の中に含まれない場合に、イベントを阻止するよう投票することを引き起こす。一部の実装では、これらの命令は、複数の値の中の、ある数の最低スコアの属性値を判定することと、指定された属性値が、ある数の最低スコアの属性値の中に含まれる場合に、イベントを阻止するよう投票することと、を引き起こす。一部の実装では、これらの命令は、モバイルデバイスの現在の作動温度に基づいて、ある数の最低スコアの属性値を判定することを引き起こす。一部の実装では、これらの命令は、現在の作動温度が、作動温度の範囲内のどこにあるかに基づいて、ある数の最低スコアの属性値を判定することを引き起こす。
セクション2:検索技術
このセクション「検索技術」における資料は、一部の実施形態に係る統合検索及びマルチドメインクエリ補完の実行、並びに引用検索インデックスにおけるユーザフィードバックの使用について説明しており、本明細書に記載されている開示内容を補足する情報を提供する。例えば、このセクションの複数部分が、複数の別個の検索ドメイン(例えば、マップ、人物、及び場所の検索)にわたるクエリから複数のランク付けされたクエリ結果を生成することについて記載しており、これらは、下記のとおり、本明細書に記載されている開示内容、例えば、方法800及び図9B~図9Cの予測部分930をポピュレートすることに関連する開示内容を補足する。別の実施例として、このセクションの複数部分が、検索、及び検索補完の判定について記載しており、本明細書に記載されている開示内容、例えば、いずれのユーザ入力を受信せずに関連コンテンツを自動的に浮上させること(例えば、方法800)に関連する開示内容、及び以前の検索履歴の使用と、ユーザが実施した以前の検索履歴に基づいて予測されたコンテンツを生成すること(例えば、図3A~図3Bを参照して以下で説明)と、に関連する開示内容を補足する。もう1つの例として、このセクションの複数部分が、検索結果の提示を改善するために、検索結果とのユーザの相互作用を監視することについて記載しており、例えば、予測されたコンテンツの生成における以前の検索履歴の使用に関連する開示内容(例えば、図3A~図3Bを参照して以下で説明)など、本明細書の開示内容を補足する。
検索技術の概要
マルチドメインクエリ検索を実行するデバイスの方法及び装置について説明する。例示的な実施形態において、このデバイスは、ユーザのクライアントからクエリプレフィックスを受信する。このデバイスは更に、複数の別個の検索ドメインにまたがる複数の検索補完を判定する。加えて、デバイスは、対応する検索ドメインによって判定された複数の検索補完の各々について計算されたスコアに基づいてこれら複数の検索補完をランク付けする。ここで、これら複数の検索補完のうちの少なくとも1つが、ユーザからのインジケーションなしで、かつクエリプレフィックスを受信したことに応答して複数の検索結果を生成するために使用される。
別の実施形態において、このデバイスは、ユーザの検索セッションからのフィードバックを使用して結果キャッシュを生成する。本実施形態において、このデバイスは、クライアントからフィードバックパッケージを受信する。フィードバックパッケージは、ユーザによって入力されたクエリプレフィックスに応答してユーザに提示される検索セッションにおける複数のクエリ結果とのユーザ相互作用を特徴付ける。デバイスは更に、検索フィードバックインデックスを使用して複数のクエリを実行し、複数の結果に到達することによって、複数のクエリに対する複数の結果を生成する。加えて、デバイスは、複数の結果から結果キャッシュを作成し、結果キャッシュは、複数の結果を複数のクエリにマッピングし、この結果キャッシュを使用してクエリ結果をクライアントにサーブする。
更なる実施形態において、デバイスは、複数の別個の検索ドメインにわたるクエリから複数のランク付けされたクエリ結果を生成する。本実施形態において、デバイスはクエリを受信し、そのクエリを使用して複数の別個の検索ドメインにまたがる複数の結果を判定する。デバイスは更に、クエリを特徴付ける。加えて、デバイスは、対応する検索ドメインと、クエリタイプを示すクエリ特徴付けと、によって判定された複数の結果の各々について計算されたスコアに基づき、複数の結果をランク付けする。
他の方法と装置についても説明する。
検索技術の詳細な説明
マルチドメインクエリ検索を実行するデバイスの方法及び装置について説明する。以下の説明では、本発明の実施形態の完全な説明を提供するために、数多くの具体的な詳細が記載される。しかしながら、本発明の実施形態は、これらの具体的な詳細を伴わずとも実践することができる点が、当業者には明らかとなるであろう。他の例では、本説明の理解を分かりにくくすることがないように、周知の構成要素、構造及び技術は、詳細には示されていない。
本明細書中での「一実施形態」又は「実施形態」への言及は、その実施形態に関連して説明される特定の機構、構造、又は特性を、本発明の少なくとも1つの実施形態に含めることができることを意味する。本明細書における様々な箇所での、語句「一実施形態では」の出現は、必ずしも全てが同じ実施形態を言及しているものではない。
以下の説明及び請求項において、「連結している」及び「接続されている」とともにこれらの派生語が使用される場合がある。これらの言葉は、互いに同義語として意図されていないことを理解すべきである。「連結している」は、相互に物理的又は電気的に直接接触していることも、していないこともある、2つ以上の要素が、互いに協働し、又は相互作用することを示すために使用される。「接続されている」は、相互に連結している2つ以上の要素間の通信の確立を示すために使用される。
以下の図で示されるプロセスは、ハードウェア(例えば、回路機構、専用論理など)、ソフトウェア(汎用コンピュータシステム、又は専用機械上で実行されるものなど)、又は両方の組み合わせを含む、処理論理によって実行される。それらのプロセスは、幾つかの逐次動作の観点から以下で説明されるが、説明される動作の一部は、異なる順序で実行することができる点を理解するべきである。
更には、一部の動作は、逐次的にではなく、並列して実行することができる。
「サーバ」、「クライアント」、「デバイス」という用語は、サーバ、クライアント及び/又はデバイスに特定のフォームファクタよりも、一般的にデータ処理システムに言及することを意図している。
マルチドメインクエリ検索を実行するデバイスの方法及び装置について説明する。一実施形態において、デバイスは、ユーザによって入力されたクライアントからのインクリメンタルクエリプレフィックスを受信し、このインクリメンタルクエリプレフィックスを使用して、クエリプレフィックスごとのクエリ補完のセットを生成する。例えば、一実施形態において、ユーザが文字列「apple」を入力すると、デバイスは、「a」、「ap」、「app」、「appl」、及び「apple」に対するインクリメンタルクエリプレフィックスを受信する。デバイスは、クエリプレフィックスごとにクエリ補完のセットを生成する。例えば、一実施形態において、「a」に対する補完は、「apple.com」、「America」、又は「Annapolis」であり得る。同様に、デバイスは、他のインクリメンタルクエリプレフィックスに対して異なるクエリ補完のセットを生成することができる。一実施形態において、デバイスは、複数の検索ドメインからのクエリ補完のセットを判定する。例えば、一実施形態において、デバイスは、マップ、メディア、ウィキ、サイトなどの検索ドメイン、及び他の検索ドメインにまたがってクエリ補完を検索する。一実施形態においては、これらの検索ドメインの各々が、入力されたクエリプレフィックスに対して補完候補を判定するために使用される1つ以上のクエリ補完ツリーを含む。一実施形態においては、検索ドメインの各々が、デバイスがこれらのクエリ補完をランク付けするために使用するスコアのセットを返す。例えば、一実施形態においては、検索ドメインの各々が、異なるドメインにまたがって異なる補完をランク付けするためにデバイスが使用できる生スコア、ローカルスコア、及びグローバルスコアのセットを返す。
上述のとおり、従来のシステムは、クエリ補完候補をユーザに返し、ユーザは、それらのクエリ補完候補のうちの1つを選択してクエリ検索に使用する。対照的に、かつ一実施形態においては、デバイスがクエリ補完のセットをユーザに返さない。代わりに、デバイスはクエリ補完のセットをランク付けし、クエリ補完のサブセットを使用して、クエリ補完のセットをユーザに提示したり、このクエリ補完のセットのうちのどれを使用して関連結果を判定するかを表すインジケーションを取得したりすることなく、このクエリ補完のサブセットに対する関連結果を判定する。一実施形態において、デバイスは、複数の検索ドメイン(例えば、マップ、メディア、ウィキ、サイト、その他、又は別の検索ドメイン)にまたがって関連結果の検索を実行する。デバイスは、複数の検索ドメインから結果のセットを受信し、各検索ドメイン及びクロスドメイン情報から生成されたスコアに基づいてこれらの結果をランク付けする。一実施形態において、デバイスは、これらの結果を判定するために使用されたクエリ補完のタイプに基づいて関連結果を更にランク付けする。例えば、一実施形態において、クエリ補完が場所の検索であると特徴付けられた場合には、この場所に関するウィキエントリだけでなく、マップ検索ドメインからの結果もより高くランク付けすることができる。更なる例として、このクエリ補完がアーティストに関するものであることが示された場合には、メディア検索ドメインの結果をより高くランク付けすることができる。デバイスは、このクエリ補完に対して見つかった関連結果をクライアントに返す。
一実施形態において、結果を参照したユーザは、これらの結果に関与するか、これらの結果を破棄し得る。一実施形態においては、ユーザの検索セッション中にユーザに提示されたレンダリング結果の1つとユーザが相互作用する場合に、関与イベントが発生する。例えば、一実施形態において、ユーザは、レンダリング結果の1つに対して提示されたリンクをクリックできる。別例においては、ユーザが、リンクをクリックし、そのリンクによって参照されるオブジェクト(例えば、ウェブサイト)と、所定の時間よりも長い時間を費やして相互作用し得る(例えば、参照されたオブジェクトと60秒以上にわたって相互作用する)。この例においては、ユーザが、現在の米国大統領に対するクエリ検索に向けられた結果を受信し、最新の大統領スピーチを記載しているウェブページを参照するリンクをクリックし得る。ユーザが所定の時間(例えば、60~90秒)を超えてそのウェブサイトと相互作用した場合、デバイスは、ユーザがそのリンクによって表された結果を受け入れたと判定する。別の実施形態においては、ユーザが、自身に対してレンダリングされた結果を無視又は破棄し得る。例えば、一実施形態において、ユーザが、表示された結果の1つについて提示されたリンクをクリックしたものの、所定の時間内(例えば、60~90秒未満)にそのウェブサイトから離れた場合、デバイスは、これがその結果に対する破棄イベントであると判定する。
一実施形態において、関連結果のランク付け及びフィルタリングに影響するこのフィードバックは、検索インデックスに組み込むことができる。本実施形態において、関連結果を提示及びレンダリングするクライアントは、ユーザの検索セッションに対する関与及び破棄イベントを更に収集する。クライアントは、これらのイベントをフィードバックパッケージ内に収集し、このパッケージを処理のためにサーバに送信する。一実施形態においては、サーバが、
フィードバックパッケージを受信し、フィードバックパッケージをフィードバックインデックスエントリに変換する。一実施形態において、フィードバックインデックスエントリは、<クエリ、結果、レンダリング回数、関与回数、破棄回数>というフォーマットを有する。クエリは、デバイスタイプ、アプリケーション、ロケール、及び地理的位置などの入力クエリ及びコンテキスト情報であり、結果はレンダリング結果であり、レンダリング回数は、そのクエリに対して結果がレンダリングされた回数であり、関与回数はそのクエリに対して結果が関与された回数であり、破棄回数は、結果が破棄された回数である。このエントリは、フィードバック検索インデックスに組み込まれている。一実施形態において、フィードバック検索インデックスは、ユーザのフィードバックを採点結果に組み込む検索インデックスである。例えば、一実施形態においては、クエリ結果ペアに対する各関与イベントが、対応するクエリに対してその結果を促す。この例では、ユーザが特定のクエリに対する結果に関与すると、将来のユーザも同じクエリに対してこの結果に関与し得る。そのため、一実施形態においては、このクエリに対する結果が返され、同じクエリを有する将来のユーザに対して上位にランク付けされる。逆に、特定のクエリに対する結果を破棄すると、将来のユーザも同じクエリに対してこの同じ結果を破棄する可能性がある。そのため、一実施形態においては、このクエリに対する結果が返され、同じクエリを有する将来のユーザに対して下位にランク付けされ得る。
一実施形態において、サーバは、更にフィードバック検索インデックスを使用して、クエリを結果にマッピングする結果キャッシュを生成する。一実施形態において、結果キャッシュは、クエリを結果にマッピングするキャッシュであり、これを使用して、ユーザクエリに対する結果を素早く返すことができる。一実施形態において、結果キャッシュは、クエリ検索を実行する前に1つ以上の結果をサーブするために使用できるユーザのデバイスに近接しているエッジサーバに記憶されている。一実施形態において、サーバは、結果セットからクエリのセットを実行することによって結果キャッシュを生成して、更新された結果セットを生成し、これが収集されたフィードバックを更新結果セットの結果に組み込む。この更新された結果セットは、エッジサーバに送信される。
図32-1は、入力されたクエリプレフィックスに基づいて検索結果を返すシステム32_100の一実施形態のブロック図である。図32-1において、システム32_100は、デバイス32_102、スマートフォン32_114、及びタブレット32_116に連結されている検索ネットワーク32_108を含む。一実施形態において、この検索ネットワークは、様々なデバイス向けのクエリプレフィックスを受信し、クエリ結果をそれらのデバイスに返す1つ以上のサーバのネットワークである。例えば、一実施形態において、検索ネットワークは、デバイス32_102、スマートフォン32_114、及び/又はタブレット32_116からクエリプレフィックス32_110A~Dを受信し、クエリ結果32_112A~Dをそれぞれのデバイス(例えば、デバイス32_102、スマートフォン32_114、及び/又はタブレット32_116)に返す。一実施形態において、デバイス32_102は、パーソナルコンピュータ、ラップトップ、サーバ、モバイルデバイス(例えば、スマートフォン、ラップトップ、パーソナルデジタルアシスタント、音楽再生デバイス、ゲームデバイスなど)、並びに/又は、クエリを要求及び/又は表示するいずれかのデバイスであり得る。一実施形態において、デバイスは、物理デバイス又は仮想デバイスであり得る。一実施形態において、スマートフォン32_114は、デバイス32_102の多くの機能を実行できる携帯電話であり得る。一実施形態において、タブレット32_116は、ディスプレイ上での入力を受け入れるモバイルデバイスであり得る。
一実施形態において、これらのデバイスの各々は、ユーザがクエリプレフィックスを入力するために使用するブラウザを含む。例えば一実施形態において、デバイス32_102は、ウェブブラウザ32_104とファイルブラウザ32_106とを備える。これらのブラウザの各々は、ユーザがクエリプレフィックスを入力するために使用する検索入力フィールドを備える。一実施形態において、ウェブブラウザ32_104は、ユーザが様々な種類のウェブドキュメントを求めてウェブを検索し、取り出せるようにするプログラムである。一実施形態において、ウェブブラウザ32_104は、検索入力フィールド32_128を備える。検索入力フィールド32_128は、ユーザがクエリプレフィックス文字列を入力するために使用される。一実施形態において、クエリプレフィックス文字列は、検索ネットワーク32_108に送信されるクエリプレフィックスで使用される一続きのテキスト又は他の記号である。クエリプレフィックス文字列は、ユーザが入力した不完全又は完全な検索文字列であり得る。一実施形態において、ユーザが検索入力フィールド32_120Aにクエリ入力文字列を入力すると、ウェブブラウザ32_104は、クエリプレフィックス文字列を捕捉し、クエリプレフィックス32_110A内のこのクエリプレフィックス文字列を検索ネットワークに送信する。ウェブブラウザ32_104は、検索入力フィールド32_120Aに入力された記号又はテキスト文字列ごとにクエリプレフィックス32_110Aを作成し、検索ネットワーク32_108に送信する。クエリプレフィックス32_110Aを受信したことに応答して、検索ネットワークは、複数の検索ドメインにわたる1つ以上のクエリ補完を作成し、これらのクエリ補完のうちの1つ以上を選択して関連結果のセット32_112を作成する。このセットは、ウェブブラウザ32_104に返される。例えば、一実施形態において、ユーザがテキスト「appl」を入力すると、ウェブブラウザ32_104は、クエリプレフィックス文字列「a」、「ap」、「app」及び「appl」を使用してクエリプレフィックス32_110Aを作成する。検索ネットワーク32_108は、これらのクエリプレフィックス32_110Aの各々について、複数の検索ドメインからクエリ補完のセットを作成し、これらのクエリ補完を使用して関連結果を判定し、異なるクエリプレフィックス32_110Aに対する異なる結果セットを返す。ユーザが後続の文字を入力するのに合わせてクエリプレフィックスを捕捉するこの手続きは、ファイルブラウザ32_106で行うこともできる。一実施形態において、ファイルブラウザ32_106は、ユーザがクエリプレフィックス文字列を入力するために使用できる検索入力フィールド32_120Bを備える。本実施形態において、ユーザがクエリプレフィックス文字列を入力すると、ファイルブラウザ32_106は、種々のクエリプレフィックス32_110Bを作成し、それらを検索ネットワーク32_108に送信する。検索ネットワーク32_108は、種々のクエリプレフィックス32_110Bを受信し、1つ以上のクエリ補完を判定して、上述のとおり関連結果を返す。加えて、クエリプレフィックスは、デバイス32_106上にローカルに記憶されたデータのメタデータデータベースを使用してクエリを実行するために使用することができる。
一実施形態においては、文字列としてクエリ入力文字列を捕捉し、1つ以上のクエリ補完を判定し、これらのクエリ補完を使用して関連結果を判定するこの同じ手続きを、スマートフォン32_114及びタブレット32_116で実行することもできる。本実施形態において、スマートフォン32_114は、ブラウザ32_116を備える。ブラウザ32_116は、検索入力フィールド32_120Cを備える。上述したのと同様に、検索入力フィールド32_120Cは、ユーザがクエリプレフィックス文字列を入力するために使用する。このクエリプレフィックス文字列は、ブラウザ32_116によって増分的に捕捉され、ひいては、検索ネットワーク32_108に送信される種々のクエリプレフィックス32_110Cのセットを作成する。検索ネットワーク32_108は、これら種々のクエリプレフィックス32_110Cの各々を受信したことに応答して、1つ以上のクエリ補完を判定し、これらのクエリ補完を使用して、ブラウザ32_116に返される関連結果32_112Cを判定する。加えて、タブレット32_116は、ブラウザ32_118を含む。ブラウザ32_118は、検索入力フィールド32_120Dを備える。上述したのと同様に、検索入力フィールド32_120Dは、ユーザがクエリプレフィックス文字列を入力するために使用する。このクエリプレフィックス文字列は、ブラウザ32_118によって増分的に捕捉され、ひいては、検索ネットワーク32_108に送信される種々のクエリプレフィックス32_110Dのセットを作成する。検索ネットワーク32_108は、これら種々のクエリプレフィックス32_110Dの各々を受信したことに応答して、1つ以上のクエリ補完を判定し、これらのクエリ補完を使用して、ブラウザ32_118に返される関連結果32_112Dを判定する。一実施形態において、検索ネットワーク32_108は、クエリ補完を処理し、関連結果を返す検索モジュール32_118を含む。クエリ補完を処理し、関連結果を返すことについては、後ほど図32-2~図32-7のところで更に説明する。
上述のとおり、デバイス上のブラウザが、クエリプレフィックス32_110A~Dを検索ネットワーク32_108に送信する。一実施形態においては、クエリプレフィックス32_110A~Dが、クエリプレフィックス文字列と、位置(例えば、緯度/経度の組み合わせ)と、デバイスタイプ識別子(例えば、コンピュータ、スマートフォン、タブレットなど)と、アプリケーションタイプ識別子(例えば、ウェブブラウザ(並びにウェブブラウザのタイプ)及びファイルブラウザ)と、ロケールと、を含む。本実施形態においては、位置、デバイスタイプ識別子、アプリケーションタイプ識別子、及びロケールを提供することにより、ユーザによってクエリプレフィックス文字列が入力されたコンテキストが、検索されたネットワーク32_108に提供される。一実施形態において、検索ネットワーク32_108は、このコンテキスト及びクエリプレフィックス文字列を使用して、クエリ補完及び関連結果を判定する。例えば、一実施形態において、検索ネットワーク32_108は、位置情報を使用して、クエリプレフィックスを提供したデバイスの位置と関連のあるクエリ補完及び結果を判定することができる。一例として、このデバイス位置は、現在のデバイス位置に近い場所の検索結果を見つけるために使用することができる。別の実施例として、かつ別の実施形態において、デバイスタイプ識別子は、検索ネットワーク32_108がそのデバイスタイプ向けの補完及び結果を判定するために使用することができる。この例においては、クエリプレフィックスがスマートフォンから来ていることをデバイスタイプ識別子が示した場合に、検索ネットワーク32_108が、パーソナルコンピュータのアプリケーションストアではなくスマートフォンのアプリケーションストアへの結果に対し、より大きな重みを与え得る。更なる例において、かつ更なる実施形態においては、アプリケーションタイプ識別子及びロケールを使用して補完及び結果に重み付けすることもできる。
一実施形態において、検索ネットワーク32_108は、マルチドメインクエリ補完を使用してクエリプレフィックスを補完する。本実施形態において、検索ネットワーク32_108は、受信した各クエリプレフィックスを、検索ネットワーク32_108によって使用される検索ドメインの各々に送信する。例えば、一実施形態において、検索ネットワーク32_108は、受信したクエリプレフィックスを、マップ検索ドメイン、メディア検索ドメイン、ウィキ検索ドメイン、サイト検索ドメイン、及び他の検索ドメインに送信する。これらの検索ドメインの各々は、その検索ドメインに格納されているデータに基づいて、そのクエリプレフィックスに対する1つ以上のクエリ補完を判定する。更に、各検索ドメインは、1つ以上のクエリ補完の各々についてのスコアのセットを返す。例えば、一実施形態において、検索ドメインは、クエリ補完ごとに生スコア、ローカルスコア、及び/又はグローバルスコアを返す。マルチドメインクエリ補完の実行については、図3~図6のところで更に説明する。
検索ネットワーク32_108は、検索ネットワーク32_108によって判定されたクエリ補完を、クエリプレフィックスを提供したデバイスに返すのではなく、それらのクエリ補完のうちの1つ以上を使用して、複数の検索ドメインにわたる関連クエリ結果のセットを判定する。一実施形態においては、クエリ補完を使用して関連クエリ結果のセットを判定することが、これらのクエリ補完のうちのどれを使用して関連結果を判定するかということについて、ユーザからのインジケーションなしで実行される。本実施形態においては、ユーザが検索入力フィールドに文字列を入力すると、検索ネットワーク32_108がその文字列を処理し、関連結果をユーザに返す。一実施形態において、検索ネットワーク32_108は、判定されたクエリ補完のうちの1つ以上を使用して、それらのクエリ補完に対するクエリ結果を見つけ、ランク付けする。一実施形態において、検索ネットワーク32_108は、検索ネットワーク32_108が利用できる複数の検索ドメインを検索する。本実施形態において、検索ネットワーク32_108は、クエリ補完に対する結果のセットを各検索ドメインから受信する。これらの結果の各々について、検索ネットワーク32_108は、その結果を特徴付けるスコアのセットを更に受信する。一実施形態において、これらのスコアは、結果を提供した検索ドメイン、別のメトリック、及び/又は後ほど図32-7で説明する結果を提供するために使用されたクエリ補完を特徴付ける信号によって判定されたスコアを含み得る。一実施形態において、信号は、知識ベースを使用するクエリ補完の語彙の特徴付けに基づく。一実施形態においては、語彙の特徴付けにより、どの種類のクエリ補完がマルチドメインクエリ検索に使用されているかが判定される。関連結果のセットを判定するためにマルチドメインクエリ検索を実行することについては、後ほど図32-7及び図32-13~図32-15のところで更に説明する。
図32-2は、入力されたクエリプレフィックスに基づいてクエリ補完及び関連結果を判定するためのプロセス32_200の一実施形態のフローチャートである。図32-2において、プロセス32_200は、クエリプレフィックスを受信することによって開始する。一実施形態において、クエリプレフィックスは、上記、図32-1に記載のとおり、クエリプレフィックス文字列と、位置と、デバイスタイプ識別子と、アプリケーションタイプ識別子と、ロケールと、を含む。本実施形態において、位置、デバイスタイプ識別子、アプリケーションタイプ識別子、及び/又はロケールは、クエリプレフィックス文字列がユーザによって入力されたという、クエリプレフィックスについてのコンテキストを与える。ブロック32_204で、プロセス32_200は、複数の検索ドメインにまたがるクエリ補完を判定し、クエリ補完をランク付けして選択する。一実施形態において、プロセス32_200は、クエリプレフィックスを使用して、種々のかかるドメインの各々からのクエリ補完のセットを判定する。例えば、一実施形態において、クエリプレフィックス文字列が「ap」である場合、プロセス32_200は、このクエリプレフィックス文字列を使用して、種々の検索ドメイン(例えば、マップ、メディア、ウィキ、サイト、及び/又は他の検索ドメイン)からのクエリ補完のセットを判定する。この例において、マップ検索ドメインは「Apache Junction」市へのクエリ補完を返し、メディア検索ドメインは「Appalachian Spring」という音楽作品へのクエリ補完を返し、ウィキ検索ドメインはApple社へのクエリ補完を返し、サイト検索ドメインはウェブサイトApple.comへのクエリ補完を返し得る。一実施形態において、クエリプレフィックス文字列が最小数の文字(例えば、4文字)を有する場合、プロセス32_200はクエリ補完のセットを作成する。
更に、プロセス32_200は、かかる種々のドメインから受信したクエリ補完候補をランク付けして選択する。一実施形態において、プロセス32_200は、対応する検索ドメインによって判定されたスコアに基づくクエリ補完候補と、クエリプレフィックスのコンテキストに基づく重みと、をランク付けする。本実施形態において、プロセス32_200は、これらのランキングに基づいてクエリ補完のセットを選択する。一実施形態においては、クエリ補完に対して使用されたクエリプレフィックス文字列を入力したユーザにクエリ補完のセットを返すのではなく、このクエリ補完のセットを使用して関連結果のセットを判定し、その後、このセットをユーザに返す。クエリ補完のセットを判定することについては、後ほど図32-3~図32-6のところで更に説明する。
プロセス32_200は、ブロック32_206で関連結果のセットを判定する。一実施形態において、プロセス32_200は、ブロック32_204で判定されたクエリ補完に基づいて関連結果を判定する。本実施形態において、プロセス32_200は、プロセス32_200に対して利用できる複数の検索ドメインを検索する。本実施形態において、プロセス32_200は、各検索ドメインから、クエリ補完の結果のセットを受信する。これらの結果の各々について、プロセス32_200は、その結果を特徴付けるスコアのセットを更に受信する。一実施形態において、これらのスコアは、結果を提供した検索ドメイン、別のメトリック、及び/又は後ほど図32-7のところで説明する結果を提供するために使用されたクエリ補完を特徴付ける信号によって判定されたスコアを含み得る。一実施形態において、信号は、知識ベースを使用するクエリ補完の語彙の特徴付けに基づく。一実施形態においては、語彙の特徴付けにより、どの種類のクエリ補完がマルチドメインクエリ検索に使用されているかが判定される。関連結果のセットを判定することについては、後ほど図32-7及び図32-13~図32-15のところで更に説明する。ブロック32_208で、プロセス32_200は関連結果のセットをユーザに返す。別の実施形態においては、フィードバックインデックスを、結果を重み付けするための信号ドメインとして使用することができる。本実施形態については、後ほど図32-14のところで更に説明する。
上述したとおり、プロセス32_200は、複数の検索ドメインにわたってクエリ補完及び関連結果を判定する。一実施形態においては、これらのクエリ補完及び関連結果が、アグリゲータを使用して集約される。図32-3は、アグリゲータ32_302と複数の検索ドメイン32_304A~Fとを含むシステム32_300の一実施形態のブロック図である。一実施形態において、アグリゲータ32_302は、入力されたクエリプレフィックスに基づいてクエリ補完の要求を受信する。入力されたクエリプレフィックスを受信したことに応答して、アグリゲータ32_302は、入力されたクエリプレフィックスを検索ドメイン32_304A~Fの各々に送信する。検索ドメイン32_304A~Fの各々は、入力されたクエリプレフィックスを使用して、そのドメインにおけるクエリ補完候補を判定する。例えば、一実施形態において、マップ検索ドメイン32_304Aは、入力されたクエリプレフィックスを受信し、クエリ補完候補をこのドメインで検索する。一実施形態において、アグリゲータ32_302は、検索ドメインの各々からクエリ補完を受信し、対応する検索ドメインによって判定された補完の各々のスコアと、クエリプレフィックスコンテキストに基づく重みと、に基づいて、受信したクエリ補完をランク付けする。
一実施形態において、マップ検索ドメイン32_304Aは、地形図に関連する情報を含む検索ドメインである。本実施形態において、マップ情報は、場所、住所、事業所、関心のある場所に関する情報、又はマップに関連する他の種類の情報を含み得る。別の実施形態において、マップ情報は、場所に関連する、営業時間、レビュー及び評価、連絡先情報、道案内並びに/又は写真など、関心のある場所に関する情報も含み得る。一実施形態において、メディア検索ドメイン32_304Bは、メディアに関連する検索ドメインである。一実施形態において、メディア検索ドメイン32_304Bは、音楽、書籍、ビデオ、クラス、話し言葉、ポッドキャスト、ラジオ、及び/又は他の種類のメディアに関連する情報を含む。更なる実施形態において、メディア検索ドメイン32_304Bは、図32-1において上述したとおり、デバイス32_102、スマートフォン32_114、及びタブレット32_116など、デバイス上で実行できるアプリケーションに関連する情報を含み得る。一実施形態において、メディア検索ドメインは、購入可能な種々の種類のメディア(例えば、音楽、書籍、ビデオ、クラス、話し言葉、ポッドキャスト、ラジオ、アプリケーション、及び/又は他の種類のメディア)を含むメディアストアである。一実施形態において、ウィキ検索ドメイン32_304Cは、オンライン百科事典検索ドメインである。例えば、一実施形態において、ウィキ検索ドメイン32_304Cはウィキペディアであり得る。一実施形態において、サイト検索ドメイン32_304Dはウェブサイトの検索ドメインである。例えば、一実施形態において、サイト検索ドメイン32_304Dは、「apple.com」、「whitehouse.gov」、「yahoo.com」など、企業、政府、公的、及び/又は民間のウェブサイトを含む。一実施形態において、他の検索ドメイン32_304Eは、アグリゲータ32_302(例えば、ニュース検索ドメイン)によってアクセス可能な他の検索ドメインのセットである。一実施形態において、フィードバック補完ドメイン32_304Fは、様々なデバイス上で動作するブラウザによって収集されたクエリフィードバックに基づく検索インデックスである。一実施形態において、フィードバック補完ドメイン32_304Fは、収集されたクエリフィードバックに基づいてクエリを結果にマッピングするフィードバックインデックスを含む。フィードバックインデックスについては、後ほど図32-8~図32-12のところで更に説明する。
上述したとおり、各検索ドメイン32_304A~Fは、検索ドメインの各々が、入力されたクエリプレフィックスに基づいてクエリ補完のセットを提供できるようにする情報を含む。一実施形態において、検索ドメインの各々は、クエリ補完を判定するとともに、それらのクエリ補完の各々についてのスコアを判定するためにも使用されるクエリ補完ツリーを含む。図32-4は、クエリ補完検索ドメイン32_402に対する一実施形態の図である。図32-4において、クエリ補完検索ドメイン32_402は、ノード32_404A~Jを有するクエリ補完ツリー32_400を含む。一実施形態において、ノード32_404A~Jの各々は、それぞれの言語における文字を表す。本実施形態においては、ノード32_404A~Jをたどってツリーを下りていくことにより、種々のクエリ補完を表すことができる。例えば、一実施形態において、ノード32_404Aから開始し、ノード32_404Cまで下りていくと、文字「ap」で始まる補完を表すことができる。各ノードには頻度も含まれており、この頻度は、入力されたクエリプレフィックスとこの補完が一致した回数のことである。一実施形態において、ノード32_404Cは、Nという頻度を有する。本実施形態において、頻度は、上記のアグリゲータ32_302に返される生スコアとして表される。一実施形態において、頻度は、ログ(例えば、マップ又はメディア検索ドメイン)、訪問されたページ(例えば、ウィキ検索ドメイン)、又は別の情報源に基づいて計算することができる。ノード32_404Cの下に、他のクエリ補完候補の数がある。例えば、一実施形態において、ノード32_404D~Fは、文字「apa」、「apt」、及び「app」で始まるクエリ補完を表す。ノードの下にあるクエリ補完候補の総数は、そのノードによって表されるそのクエリ補完の近似性を示す。ノードの下に他のノード候補が多数存在する場合、そのノードによって表されるクエリ補完が良好な補完である可能性は低い。一方、そのノードの下にあるノードが比較的少ない場合、このノードは良好な補完であり得る。一実施形態において、そのノードのローカルスコアは、そのノードの頻度を、そのノード以下のサブツリーによって表される補完数で割った値によって表される。一実施形態において、ローカルスコアの式は、次式(1)によって表される。
ローカルスコア(ノード)=頻度(ノード)/そのノード以下の補完数。
一実施形態において、各クエリ補完ツリーは、補完の総数を含む。この値は、補完(又はノード)のグローバルスコアを計算するために使用される。一実施形態において、グローバルスコアの式は、次式(2)によって表される。グローバルスコア(ノード)=頻度(ノード)/クエリ補完ツリー内の補完数。
一実施形態において、各クエリ補完の生スコア、ローカルスコア、及びグローバルスコアは、検索ドメインによってアグリゲータに返される。
図32-5は、マップ検索ドメイン32_500の一実施形態を示す図である。図32-5において、マップ検索ドメイン32_500は、このドメインの種々のズームレベルに対するクエリ補完ツリー32_504A~Dを含む。一実施形態において、マップ検索ドメイン32_500は、市レベル32_504A、郡レベル32_504B、州レベル32_504C、及び国レベル32_504Dのクエリ補完ツリーを含む。これらのレベルは、マップアグリゲータ32_502によって集約される。本実施形態においては、入力されたクエリプレフィックスに対するクエリ補完の判定が、マップアグリゲータ32_502によって受信され、マップアグリゲータ32_502が、マップ検索ドメイン32_500の種々のズームレベル32_504A~Dにおける、その入力されたクエリプレフィックスに対するクエリ補完を判定する。マップアグリゲータ32_502は、種々のズームレベル32_504A~Dの各々からクエリ補完候補を取り出し、クエリ補完を集約し、これらのクエリ補完をアグリゲータ(例えば、アグリゲータ32_302)に返す。こうして、マップ探索ドメイン32_500は、種々ズームレベルにまたがってクエリ補完を判定する。一実施形態において、マップ検索ドメイン32_500は、住所、場所、ビジネス、関心のある場所に関する情報、及び/又はマップに関する他の情報を含む。一実施形態において、マップ検索ドメイン32_500は、白又は黄色のページディレクトリなどのディレクトリ情報を含み得る。一実施形態において、メディア検索ドメインは、デバイス識別子とロケールとの組み合わせに基づくストアフロントによって編成される。本実施形態においては、ストアフロントごとにクエリ補完ツリーが存在する。図32-6は、複数の検索ドメインからのクエリ補完を判定するためのプロセス32_600の一実施形態のフローチャートである。一実施形態において、アグリゲータ32_302は、プロセス32_600を実行して、複数の検索ドメインからのクエリ補完を判定する。図32-6において、プロセス32_600は、ブロック32_602でクエリプレフィックスを受信することによって開始する。一実施形態において、クエリプレフィックスは、図32-2で上述したとおり、コンテキスト内のクエリプレフィックス文字列を含む。ブロック32_602で、プロセス32_600は、クエリプレフィックスを種々の検索ドメインに送信して補完候補を判定する。一実施形態において、プロセス32_600は、クエリプレフィックスをマップ、メディア、ウィキ、サイト、及び/又は他の検索ドメインに送信する。検索ドメインの各々は、先に図32-4のところで説明したとおり、それらの検索ドメインの各々が利用できるクエリ補完ツリーに基づいて、入力されたクエリプレフィックスに対するクエリ補完候補を判定する。プロセス32_600は、ブロック32_606で、検索ドメインの各々からクエリ補完候補を受信する。プロセス32_600は、クエリ補完候補を受信することに加え、先に図32-4のところで説明したとおり、生スコア、ローカルスコア、及び/又はグローバルスコアなど、補完候補の各々についてのスコアのセットも受信する。ブロック32_608で、プロセス32_600は、返されたスコアと入力されたクエリプレフィックスのコンテキストとに基づいて、クエリ補完候補をランク付け及びフィルタリングする。一実施形態において、プロセス32_600は、種々の検索ドメインから受信した生スコア、ローカルスコア、及びグローバルスコアと、クエリプレフィックスに含まれるコンテキストと、に基づいて、クエリ補完候補を調整する。プロセス32_600は、ルールのセットに基づいてクエリ補完候補を更にフィルタリングする。例えば、一実施形態において、フィルタルールは、1又はある所定値未満の生スコアを有する補完候補をプロセス32_600でフィルタリングして除外することがであり得る。プロセス32_600は、ランク付け及びフィルタリングされた補完をクエリ検索モジュールに送信する。クエリ検索モジュールは、ランク付け及びフィルタリングされたクエリ補完のセットを使用して、ブロック32_610でユーザに返される関連結果のセットを判定する。
上述のとおり、プロセス32_600によって判定されたクエリ補完は、これらの補完をユーザに返送することなく、関連結果を判定するために使用される。図32-7は、判定されたクエリ補完から、複数の検索ドメインにわたって関連結果を判定するプロセス32_700の一実施形態のフローチャートである。一実施形態において、フェデレータ32_824はプロセス32_700を実行する。図32-7において、プロセス32_700は、ブロック32_702でコンプリータからクエリ補完を受信する。一実施形態において、受信したクエリ補完は、クエリプレフィックスを受信したことに応答してプロセス32_600によって判定された補完である。ブロック32_704で、プロセス32_700は、クエリ補完を種々の検索ドメインに送信して関連結果候補を判定する。一実施形態において、検索ドメインの各々は、受信したクエリ補完を使用して、その検索ドメインの関連結果を判定する。ブロック32_706で、プロセス32_700は、種々の検索ドメインからクエリ結果を受信する。一実施形態において、プロセス32_700は、それらの結果と、関連検索ドメインによって計算された各結果と関連付けられたスコアと、を受信する。
プロセス32_700は、ブロック32_708で検索結果をランク付けし、フィルタリングする。一実施形態において、プロセス32_700は、検索結果を得るために検索されたドメインの各々によって返されたスコアと、他の要因と、に基づいて検索結果をランク付けする。本実施形態においては、ドメイン依存スコア、クエリ非依存スコア、及びクエリ依存スコアに基づいて、種々のドメインからのスコアを採点することができる。一実施形態において、種々の検索ドメインの各々は、返された結果をランク付けするために使用される具体的なデータを提供することができる。例えば、一実施形態において、マップ検索ドメインは、オンラインレビューの数、平均レビュースコア、ユーザからの距離(例えば、クエリプレフィックス位置情報に基づく)、結果が、その結果と関連付けられたユニフォームリソースロケータ(URL)を有するかどうか(例えば、結果が事業所の所在地であるかどうか、その事業所がURL又は他のソーシャルメディアを参照するウェブサイトを有するかどうか)、及び/又はクリック数など、結果をランク付けするための様々なクエリ非依存情報を提供することができる。別の実施例及び別の実施形態としては、メディア検索ドメインが、メディア評価件数、メディアの存続期間、人気、人気の衰退度、及び/又は結果別の購入データなど、採点のための他の種類の情報を提供することができる。更なる例及び実施形態においては、ウィキ検索ドメインが、ランク付け対象となり得るページビュー、編集履歴、及び言語の数に関する情報を提供することができる。他の検索ドメインは、引用回数や存続期間などの採点メトリクスを提供できる。
一実施形態において、プロセス32_700は、各検索ドメインからスコアのセットを受信し、これらのスコアを使用して、各結果の初期スコアを判定する。プロセス32_700は、各結果に信号ドメインを適用する。一実施形態においては、信号ドメインがクエリ補完特性である。本実施形態において、プロセス32_700は、クエリ補完の各々を特徴付け、このクエリ補完特性を使用して結果をランク付けする。例えば、一実施形態において、プロセス32_700は、知識ベースを利用した語彙特徴付けを実行して、クエリ補完のタイプを判定する。この例においては、クエリ補完タイプが、そのクエリ補完が人物、場所、モノ、及び/又は別のカテゴリを判定しているかどうかを示す。例えば、一実施形態において、プロセス32_700は、クエリ補完が場所を判定するために使用されていると判断でき得る。この例においては、クエリ補完が場所を判定するために使用されるので、マップ検索ドメインからのクエリ結果が、検索結果のランク付けにおいて上位に重み付け(及びランク付け)される。クエリ補完特性については、後ほど図32-13~図32-15のところで更に説明する。
その他の別の実施形態においては、プロセス32_700が、結果スコアの各々にブーストを適用する。本実施形態においては、プロセス32_700が、結果の各々にQDF(Query Deserves Freshness:新鮮さを優先した検索)を適用する。一実施形態において、QDFは、その結果のカウント数が最近急上昇したり、ピークを迎えていたりする場合に、この結果が「新鮮な」結果であり、ブーストが可能であり得ることを意味する。時間の経過とともにベースライン付近で変動するカウントを有する結果であれば、「新鮮な」結果ではなく、ブーストはされない。一実施形態において、このカウントは、ソーシャルメディアフィード(例えば、ツイッターなど)の分析に基づいている。
例えば、一実施形態において、クエリ補完が「puppy love」であり、次の4つの結果が返された場合、(1)メディア検索ドメインから、「Puppy Love」という歌、(2)マップ検索ドメインから、「Puppy Love Dogs」という呼称の企業、(3)子犬への愛を謳ったコマーシャルに言及しているニュース記事、(4)「Puppy Love」という呼称のウィキエントリ。本実施形態においては、メディア検索ドメインからの{存続期間、レーティング、及び生スコア}、マップの検索ドメインからの{ユーザからの距離、URLの有無、レビュー数、平均レビュー数}、ニュースドメインからの{存続期間、ニューススコア、トラックバック数}、ウィキ検索ドメインからの{ページランク、生スコア}という検索ドメイン依存メトリクスに基づいて各結果の初回採点が行われる。検索ドメインの各々は、プロセス32_700を処理するために独自の採点を提供する。この例においては、各結果の採点を、最初にウィキ結果>メディア結果>ニュース結果>マップ結果の順にランク付けすることができ得る。プロセス32_700は更に、結果の各々に信号ドメインを適用する。この例において、「puppy love」というクエリは、歌として特徴付けられており、場所として特徴付けられている可能性もある。この特徴付けを適用すると、メディアストア結果が向上し、程度は劣るがマップ結果も向上する。特徴付けブーストを適用した後、結果の採点は、ウィキ結果>メディア結果(ただしスコアは近い)マップ>結果>ニュース結果の順にランク付けされ得る。加えて、プロセス32_700は、これらの結果にQDB(Query Deserved Boosts)を適用する。例えば、「Puppy Love」というコマーシャルの最初の放映から2日後であるために、このコマーシャルのカウントが増加する。そのため、「Puppy Love」の結果は、QDFブーストを得ることになる。この例においては、ニュース結果「Puppy Love」が大きなブーストを得るので、結果はニュース結果>ウィキ結果>メディア結果>マップ結果の順にランク付けされる。
一実施形態において、プロセス32_700は、検索結果を更にフィルタリングする。本実施形態において、プロセス32_700は、特定のルールに基づいて結果を除去する。例えば、一実施形態において、プロセス32_700は、特定の総スコアを下回る結果を除去し得る。あるいは、プロセス32_700は、別の基準(例えば、クエリに対する低いテキスト一致率、低いクリックスルーレート、低い人気、性的描写が露骨なコンテンツ及び/又は冒涜的な内容を有する結果、及び/又はそれらの組み合わせ)に基づいて結果をフィルタリングすることができる。ブロック32_710で、プロセス32_700は、ランク付け及びフィルタリングされた結果をユーザに返す。
図32-8は、ユーザフィードバックを検索インデックスに組み込むシステム32_800のブロック図である。図32-8において、システム32_800は、クエリプレフィックス32_828をエッジサーバ32_804に送信するデバイス32_802を備え、エッジサーバ32_804はクエリ結果32_830をデバイスに戻す。加えて、エッジサーバ32_804は、コアサーバ32_816に連結されている。一実施形態において、デバイス32_802は、ユーザがクエリプレフィックスを入力すると、クエリプレフィックス32_828をエッジサーバに送信する。例えば、一実施形態において、ユーザがクエリプレフィックス「apple」を入力すると、「a」、「ap」、「app」、「appl」、及び「apple」のクエリプレフィックスが生成され、ユーザが各文字を入力した時にサーバ32_804に送信される。加えて、エッジサーバ32_804は、エッジサーバ32_804に送信されたクエリプレフィックス32_828ごとに関連結果32_830をクライアントに返す。例えば、一実施形態において、エッジサーバは、ユーザが各文字を入力すると、クエリプレフィックス32_828「a」、「ap」、「app」、「appl」、及び「apple」に対する関連結果を返す。一実施形態において、エッジサーバは、クエリ補完を実行することもできる。一実施形態において、デバイス32_802は更に、ユーザの検索セッションに関するフィードバックを収集し、このフィードバックをフィードバックパッケージ32_832内に収集し、このフィードバックパッケージをエッジサーバに送信する。フィードバックの収集と送信については、後ほど図32-10のところで更に説明する。一実施形態において、デバイス32_802は、フィードバックを収集して送信するためのフィードバック収集モジュール32_838を含む。
一実施形態において、エッジサーバ32_804は、フィードバック検索モジュール32_808とフィードバック収集モジュール32_810とを更に含むフィードバックモジュール32_806を備える。一実施形態において、フィードバック検索モジュール32_808は、エッジサーバ32_804のエッジキャッシュ32_812に記憶されたフィードバックインデックス32_814に基づいて、クエリプレフィックス32_828の各々について検索を実行する。本実施形態においては、ユーザがクエリプレフィックス32_828を入力すると、フィードバック検索モジュール32_808及びフィードバック検索インデックス32_814を使用して、関連結果32_830の新しいセットがデバイス32_802に返される。一実施形態において、フィードバック検索インデックスは、ユーザのフィードバックを検索インデックスに組み込むインデックスである。本実施形態において、フィードバック検索インデックスは、結果32_830をデバイスに素早く戻すために使用される結果キャッシュである。一実施形態において、フィードバック検索インデックスは引用検索インデックスであり、後ほど図32-11を参照して更に説明している。一実施形態において、フィードバック収集モジュール32_810は、デバイス32_802から送信されたフィードバックパッケージを収集し、このフィードバックパッケージをコアサーバ32_816に転送する。
一実施形態において、コアサーバ32_816は、フィードバックフィードパイプライン32_818と、フィードバック決定パイプライン32_822と、フィードバックインデックス32_820と、フェデレータ32_824と、を備える。一実施形態において、フィードバックフィードパイプライン32_818は、エッジサーバ32_804から生フィードバックパッケージ32_834を受信し、これらの生フィードバックパッケージ32_834の各々をフィードバックインデックス32_820用のエントリに変換する。一実施形態において、フィードバックフィードパイプライン32_816は、生フィードバックパッケージの各々を、<クエリ、結果、レンダリングカウント、関与カウント、破棄カウント>というフォーマットを有するインデックスエントリのセットに変換する。クエリは、デバイスタイプ、アプリケーション、ロケール、地理的位置などの入力クエリ及びコンテキスト情報であり、結果はレンダリング結果であり、レンダリングカウントは、そのクエリに対する結果がレンダリングされた回数であり、関与カウントは、結果がそのクエリに対して関与された回数であり、破棄カウントは、結果が破棄された回数である。本実施形態においては、これらのインデックスエントリがフィードバックインデックス32_820に追加される。生フィードバックパッケージでフィードバックインデックスの更新については、後ほど図32-11のところで更に説明する。一実施形態において、フィードバックインデックス32_820は、ユーザのフィードバックを組み込む検索インデックスである。フィードバックフィードパイプライン32_818は、生フィードバックパッケージでフィードバックインデックスを更新するプロセスフィードバックモジュール32_840を更に備える。
一実施形態において、フィードバック決定パイプライン32_822は、フィードバックインデックス32_820を使用して結果セットを更新する。一実施形態において、結果セットは、クエリのセットと結果との間のマップである。本実施形態において、フィードバック決定パイプライン32_822は、フィードバックインデックス32_820に対してクエリのセットを実行して、更新された結果のセットを判定する。本実施形態においては、更新された結果のセットがフェデレータ32_824に送信される。フィードバック判定パイプライン32_822は更に、更新された結果のセット32_826をエッジサーバ32_804に送信する。更新された結果セット32_826は、更新されたフィードバックインデックス32_820を使用して判定されるクエリのセットに対する結果を含む。一実施形態において、フィードバック決定パイプライン32_822は、結果セットを更新する結果更新モジュール32_842を備える。結果セットの更新については、後ほど図32-12のところで更に説明する。一実施形態において、フィードバック決定パイプライン32_822は更に、更新された結果セットを、更新された結果セット32_826を記憶するフィードバックアーカイブ32_836に送信する。一実施形態において、フェデレータ32_824は、後ほど図32-13~図32-15に記載のとおり、補完されたクエリを使用してマルチドメイン検索を実行する。
上述のとおり、検索ネットワークは、ユーザの検索セッションに関するユーザのフィードバックを捕捉し、このフィードバックを使用して検索フィードバックインデックスを構築する。図32-9は、ユーザのフィードバックを引用検索インデックスに組み込むプロセス32_900の一実施形態のフローチャートである。図32-9において、プロセス32_900は、ユーザの検索セッションのユーザのフィードバックを収集することによって開始する。一実施形態において、プロセス32_900は、検索ネットワークに送信されたクエリプレフィックスに応答してクエリ結果を受信したデバイスでフィードバックを収集し始める。本実施形態において、プロセス32_900は、初期レンダリングイベント又は別のイベント(例えば、クエリプレフィックスの入力開始)を検出し、検索セッションにおけるユーザの相互作用を判定することによってフィードバックを収集する。一実施形態において、ユーザインタラクションは、結果によって参照されるウェブサイトにフォーカスし続けること、そのウェブサイト上にあるリンク又は他の参照をクリックすること、又は別の種類の相互作用を行うことであり得る。一実施形態において、検索セッションは、ユーザがクエリプレフィックスの入力を開始し、おおよその期間(例えば、15分)にわたってユーザのアクションを追跡することによって開始されるイベントのセットである。一実施形態において、プロセス32_900は、送出されたクエリプレフィックスと、ユーザに対してレンダリングされた関連結果と、ユーザがこれらのレンダリング結果のいずれかに関与したかどうか(「関与イベント」)と、ユーザがレンダリング結果を破棄したかどうか(「破棄イベント」)と、を記録する。一実施形態において、プロセス32_900は、ユーザが代替検索オプションに関与したかどうかを記録する。
一実施形態においては、ユーザに提示されたレンダリング結果の1つとユーザが相互作用する場合に、関与イベントが発生する。例えば、一実施形態において、ユーザは、レンダリング結果の1つに対して提示されたリンクをクリックでき得る。別例においては、ユーザがリンクをクリックし、そのリンクによって参照されるオブジェクト(例えば、ウェブサイト)と、所定の時間よりも長い時間を費やして相互作用し得る(例えば、参照されたオブジェクトと60秒以上相互作用する)。この例においては、ユーザが、現在の米国大統領に対するクエリ検索に向けられた結果を受信し、最新の大統領スピーチを記載しているウェブページを参照するリンクをクリックし得る。ユーザが所定の時間(例えば、60~90秒)を超えてそのウェブサイトと相互作用した場合、プロセス32_900は、ユーザがそのリンクによって表示された結果に関与したと判断する。したがって、これはこの結果に対する関与イベントである。一実施形態においては、リンクの上にカーソルを置くことが関与と記録され得る。別の実施形態においては、ユーザが、表示された結果を一定期間にわたって観察することもできる。本実施形態においては、結果のタイプ及びその期間後のアクションに応じて、破棄として記録されたアクションを関与として記録することができ、その逆もまた可能である。例えば、一実施形態において、ユーザが「中国の人口」を問い合わせて結果が表示され、ユーザが10秒間休止した後にクエリを削除した場合、このイベントは破棄イベントではなく関与イベントとして記録され得る。
別の実施形態においては、ユーザが、自身に対するレンダリング結果を無視又は破棄し得る。例えば、一実施形態において、ユーザが、レンダリング結果の1つについて提示されたリンクをクリックしたものの、所定の時間内(例えば、60~90秒未満)にそのウェブサイトから離れた場合、プロセス32_900は、これがその結果に対する破棄イベントであると判断する。一実施形態においては、他の種類の破棄イベントが存在する。具体的には、引き続き入力して文字数を増やす(クエリプレフィックスを拡張する)こと、フォーカスを別のウィンドウ又はアプリケーションに移すこと、クエリを削除すること、バックスペースで1文字以上消去するか、他の方法でクエリを編集すること、そして、結果として提示されたもの以外のものに関与することを、その結果の破棄として記録することができる。一実施形態において、ユーザのアクションは、ユーザが費やした時間間隔とともに記録され、これにより、元来破棄となるアクションの解釈を関与に、又はその逆に変更することができる。
一実施形態においては、ユーザの検索セッションが、ユーザセッションの長さ、無操作の時間、又は他の何らかのメトリックにおいて、所定時間後に終了し得る。検索セッションが終了したことに応答して、プロセス32_900は、この検索セッション用に収集されたイベントをまとめて、検索ネットワークに送信されるフィードバックパッケージにする。フィードバックの収集については、後ほど図32-10のところで更に説明する。
ブロック32_904で、プロセス32_900は、フィードバックパッケージに含まれる受信したフィードバックを処理する。一実施形態において、プロセス32_900は、受信したフィードバックパッケージをフィードバック検索インデックス用のエントリに変換する。一実施形態において、フィードバック検索インデックスは、ユーザのフィードバックを採点結果に組み込む検索インデックスである。例えば、一実施形態においては、(クエリ、結果)ペアに対する各関与イベントが、対応するクエリに対してその結果を促す。この例では、ユーザが特定のクエリに対する結果に関与すると、将来のユーザも同じクエリに対してこの結果に関与し得る。そのため、一実施形態においては、このクエリに対する結果が返され、同じクエリを有する将来のユーザに対して上位にランク付けされる。逆に、特定のクエリに対する結果を破棄すると、将来のユーザも同じクエリに対してこの同じ結果を破棄する可能性がある。そのため、一実施形態においては、このクエリに対する結果が返され、同じクエリを有する将来のユーザに対して下位にランク付けされ得る。
一実施形態において、プロセス32_900は、受信したフィードバックパッケージを、<クエリ、結果、レンダリング回数、関与回数、破棄回数>というフォーマットを有するフィードバック検索インデックスエントリに変換する。クエリは、デバイスタイプ、アプリケーション、ロケール、及び地理的位置などの入力クエリ及びコンテキスト情報であり、結果はレンダリング結果であり、レンダリング回数は、そのクエリに対して結果がレンダリングされた回数であり、関与回数はそのクエリに対して結果が関与された回数であり、破棄回数は、結果が破棄された回数である。一実施形態において、プロセス32_900は、フィードバック検索インデックス内にあるこのフィードバックインデックスエントリを更新する。更に別の実施形態においては、プライバシーを保つために識別子を難読化する方法の有無にかかわらず、各フィードバックパッケージが、ユーザ識別子、デバイス識別子、又はセッション識別子を含み得る一意のソース識別子も含む。ここで、フィードバックインデックスエントリを更新すると、この一意のソース識別子をフィードバックの引用源として、引用インデックスの形式でインデックスに付加される。その後、フィードバックインデックスを問い合わせて、個人又はユーザのグループにパーソナライズ又はカスタマイズされた結果及び重み付けを提供することができる。受信したフィードバックの処理については、後ほど図32-11のところで更に説明する。
プロセス32_900は、ブロック32_906で結果キャッシュを更新する。一実施形態において、結果キャッシュは、クエリを結果にマッピングするキャッシュであり、これを使用して、ユーザクエリに対する結果を素早く返すことができる。一実施形態において、結果キャッシュは、クエリ検索を実行する前に1つ以上の結果をサーブするために使用できるユーザのデバイスに近接しているエッジサーバ(例えば、他のエッジサーバよりもクライアントに地理的に近いエッジサーバ)に記憶されている。一実施形態において、プロセス32_900は、更新されたフィードバック検索インデックスを使用してクエリのセットを実行することによって結果を更新し、これらのクエリに対する結果のセットを判定する。更新された結果は、エッジサーバに記憶された結果キャッシュの各々に送信される。結果キャッシュの更新については、後ほど図32-12のところで更に説明する。
図32-10は、ユーザ検索セッション中にユーザフィードバックを収集するプロセス32_1000の一実施形態のフローチャートである。一実施形態において、プロセス32_100は、先に図32-8のところで説明したフィードバック収集モジュール32_838など、ユーザ検索セッション中にユーザフィードバックを収集するフィードバック収集モジュールによって実行される。図32-10において、プロセス32_1000は、フィードバック収集をトリガーするイベントを検出することによって開始する。一実施形態において、初期イベントは、別の種類のイベントのクエリプレフィックス文字列のための入力の開始であり得る。一実施形態において、ユーザがある期間(例えば、15分)にわたって前の検索セッションに参加していた場合には、クエリプレフィックス文字列のためのこの入力開始が、新しいユーザ検索セッションの開始の合図となり、ユーザフィードバックの記録を開始する。上述したとおり、検索セッションは、ユーザがクエリプレフィックスの入力を開始し、おおよその期間(例えば、15分)にわたってユーザのアクションを追跡することによって開始されるイベントのセットである。
ブロック32_1004で、プロセス32_1000は、ユーザ検索セッションと関連付けられたイベントを記録する。一実施形態において、プロセス32_1000は、レンダリング、関与、及び破棄イベントを記録する。一実施形態において、レンダリングイベントは、ユーザがクエリプレフィックス又は完全なクエリを入力したことに応答してユーザに対してレンダリングされる関連結果である。一実施形態において、プロセス32_1000は、各クエリプレフィックス又は補完クエリに対して提示された結果を記録することによって、レンダリングイベントを記録する。加えて、プロセス32_1000は、ブロック32_1004で関与イベントを記録する。一実施形態において、関与イベントは、ユーザに提示されたレンダリング結果の1つとユーザが相互作用する場合に発生するイベントである。例えば、一実施形態において、ユーザは、レンダリング結果の1つに対して提示されたリンクをクリックでき得る。別例においては、ユーザがリンクをクリックし、そのリンクによって参照されるオブジェクト(例えば、ウェブサイト)と、所定の時間よりも長い時間を費やして相互作用し得る(例えば、参照されたオブジェクトと60秒以上相互作用する)。この例においては、ユーザが、現在の米国大統領に対するクエリ検索に向けられた結果を受信し、最新の大統領スピーチを記載しているウェブページを参照するリンクをクリックし得る。ユーザが所定の時間(例えば、60~90秒)を超えてそのウェブサイトと相互作用した場合、プロセス32_1000は、ユーザがそのリンクによって表示された結果に関与したと判断する。したがって、これはこの結果に対する関与イベントである。
更なる実施形態において、プロセス32_1000は、ユーザが、自身に対してレンダリングされた結果を無視又は破棄し得るイベントである破棄イベントを記録することができる。例えば、一実施形態において、ユーザが、レンダリングされた結果の1つについて提示されたリンクをクリックしたものの、所定の時間内(例えば、60~90秒未満)にそのウェブサイトから離れた場合、プロセス32_900は、これがその結果に対する破棄イベントであると判断する。一実施形態において、ユーザは、ウェブサイトを提示するタブ又はウィンドウを閉じること、フォーカスを別のアプリケーションに移すこと、又は提示されたウェブサイトと自身が相互作用していないことを示す他の何らかのアクションを行うことによって離れる。
ブロック32_1006で、プロセス32_1000は、ユーザの検索セッションの記録済みイベントからフィードバックパッケージを作成する。一実施形態において、ユーザの検索セッションは、初期検索セッションイベントからの所定時間(例えば、15分)、又はユーザ検索セッションに関する所定のユーザ無操作時間に基いて終了する。例えば、一実施形態において、ユーザが所定時間(例えば、10分)にわたって、アクティビティを有しない場合、又は結果の1つによって参照される結果又は他の種類のオブジェクトと相互作用していない場合には、ユーザの検索セッションが終了する。一実施形態において、プロセス32_1000は、ユーザの検索セッションの終了に応答して、記録されたイベントを収集し、このユーザ検索セッションからフィードバックパッケージを作成する。一実施形態において、フィードバックパッケージは、ユーザに対してレンダリングされた結果のセットと、それらの結果と関連付けられたクエリと、ユーザがクエリの結果に関与した関与イベントと、ユーザに対してレンダリングされた結果を自ら破棄した破棄イベントであって、各々がクエリと関連付けられている破棄イベントと、を含む。プロセス32_1000は、ブロック32_1008でこのフィードバックパッケージを検索ネットワークに送信する。一実施形態において、クライアントは、フィードバックパッケージをエッジサーバに送信し、エッジサーバは、フィードバックパッケージを処理のためにコアサーバに転送する。
図32-11は、ユーザフィードバックをフィードバックインデックスに組み込むプロセス32_1100の一実施形態のフローチャートである。一実施形態において、プロセスフィードバックモジュールは、先に図32-8のところで説明したプロセスフィードバックモジュール32_840などのプロセスフィードバックモジュールを処理する。図32-11において、プロセス32_1100は、ブロック32_1102でフィードバックパッケージを受信することによって開始する。一実施形態において、フィードバックパッケージは、先に図32-10のところで説明したユーザの検索セッションのフィードバックパッケージである。ブロック32_1104で、プロセス32_1100は、フィードバックパッケージを1つ以上のフィードバックインデックスエントリに変換する。一実施形態において、フィードバックインデックスエントリは、特定のクエリ、結果ペアについて記録されたイベントの数である。例えば、一実施形態において、フィードバックインデックスエントリは、<クエリ、結果、レンダリング回数、関与回数、破棄回数>を含む。クエリは、デバイスタイプ、アプリケーション、ロケール、及び地理的位置などの入力クエリ及びコンテキスト情報であり、結果はレンダリング結果であり、レンダリング回数は、そのクエリに対して結果がレンダリングされた回数であり、エンゲージメント回数はそのクエリに対して結果が関与された回数であり、破棄回数は、結果が破棄された回数である。
ブロック32_1106で、プロセス32_1100は、フィードバックインデックスエントリをフィードバックインデックスに挿入する。一実施形態において、フィードバックインデックスは、ユーザフィードバックを検索インデックスに組み込む検索インデックスである。一実施形態において、フィードバックインデックスは引用インデックスであり、関与イベントは結果の肯定引用であり、破棄イベントはその結果の否定引用である。一実施形態において、引用検索インデックスは、2009年12月1日に出願され、このセクションに組み込まれる「Ranking and Selecting Entities Based on Calculated Reputation or Influence Scores」と題する米国特許出願第12/628,791号に記載されている。一実施形態において、同じクエリ、結果ペアを有するフィードバックインデックスにエントリが存在する場合には、プロセス32_1100が、このエントリをイベントカウントの数で更新する。
上述したとおり、フィードバックインデックスを組み込んだユーザフィードバックは、結果キャッシュを更新するために使用することができる。図32-12は、ユーザフィードバックを使用して結果キャッシュを更新するプロセス32_1200の一実施形態のフローチャートである。一実施形態においては、先に図32-8のところで説明した結果更新モジュール32_842などの結果更新モジュールが、プロセス32_1200を実行して、結果キャッシュを更新する。図32-12において、プロセス32_1200は、複数のクエリを含む結果セットRSを受信することによって開始する。一実施形態において、この結果セットは、クエリのセットと結果との間のマップである。この結果セットを使用することにより、先に図32-8のところで説明したとおり、結果キャッシュがクエリプレフィックスの関連結果を素早く返すことができる。一実施形態において、結果セットは、ユーザフィードバックを含まない検索インデックスによって生成される。別の実施形態において、結果セットは、以前のユーザフィードバックを組み込んだ以前のフィードバックインデックスによって生成される。
ブロック32_1204で、プロセス32_1200は、結果セットRSからの各クエリを現在のフィードバックインデックスに対して実行する。プロセス32_1200は、ブロック32_1204で、実行されたクエリからの結果を使用し、ブロック32_1206で更新結果セットRS'を作成する。一実施形態において、結果セットRS'はフィードバック加重結果セットであり、大きな関与イベントを有するクエリの結果は、フィードバックインデックスにおける重み付けが大きく、大きな破棄イベントを有するクエリの結果は、フィードバックインデックスにおける重み付けが小さい。例えば、一実施形態において、結果セットRS内のクエリQがR1、R2、及びR3とランク付けされた結果を有し、更新されたフィードバックインデックスが、Qに対して、R1が20件の関与イベント及び50件の破棄イベントを有し、R2が100件の関与イベント及び2件の破棄イベントを有し、R3が50件の関与イベント及び10件の破棄イベントを有するという結果を有する場合には、更新されたフィードバックインデックスに対してクエリQを実行すると、R2、R3、及びR1とランク付けされた結果が返され得る。そのため、一実施形態においては、フィードバックインデックスを使用すると、更新された結果セットRS'における結果のランク付けが変わる。別の実施形態においては、関連結果フィルタが、提示される結果に関して、その結果がx件の関与イベント又はy個以下の破棄イベントを必要とし得るというルールを有し得る。したがって、本実施形態においては、フィードバックインデックスを使用することにより、提示される結果と提示されない結果が変わり得る。プロセス32_1200は、ブロック32_1208で、更新された結果セットRS'を各エッジサーバに送信する。一実施形態において、プロセス32_1200は、先に図32-8のところで説明したとおり、更新された結果セットRS'をコアサーバ32_816からエッジサーバ32_804に送信する。
図32-13は、特徴付けられたクエリ補完を使用してマルチドメイン検索を実行するフェデレータ32_824の一実施形態のブロック図である。一実施形態において、フェデレータは、補完モジュール32_1304と、ブレンダ/ランカ32_1306と、複数の検索ドメイン32_1308A~Fと、及び語彙サービス32_1314と、を備える。一実施形態において、補完モジュール32_1304は、先に図32-6のところで説明したとおり、クエリプレフィックスの各々についてのクエリ補完を判定する。判定されたクエリ補完はブレンダ/ランカ32_1306に転送され、ブレンダ/ランカ32_1306は、クエリ補完を使用して、先に図32-7のところで説明したとおり、検索ドメイン32_1308A~Fを使用して関連結果のマルチドメイン検索を実行する。一実施形態において、検索ドメイン32_1308A~Fは、先に図32-3のところで説明したとおり、検索ドメインである。例えば、一実施形態において、マップ検索ドメイン32_1308Aは、先に図32-3のところで説明したとおり、地形図に関連する情報を含む検索ドメインである。マップ検索ドメイン32_1308Aは、マップデータソース32_1310Aに情報を問い合わせる。メディア検索ドメイン32_1308Bは、図32-3に記載のとおり、メディアに関連する検索ドメインである。メディア検索ドメイン32_1308Bは、メディアデータソース32_1310Bに情報を問い合わせる。ウィキ検索ドメイン32_1308Cは、先に図32-3のところで説明したとおり、オンライン百科事典検索ドメインである。ウィキ検索ドメイン32_1308Cは、ウィキデータソース32_1310Cに情報を問い合わせる。サイト検索ドメイン32_1308Dは、先に図32-3のところで説明したとおり、ウェブサイトの検索ドメインである。サイト検索ドメイン32_1308Dは、サイトデータソース32_1310Dに情報を問い合わせる。他の検索ドメインは、先に図32-3のところで説明したとおり、ブレンダ/ランカ32_1306がアクセスできる他の検索ドメインのセットである。他の検索ドメイン32_1308Eは、他のデータソース32_1310Eに情報を問い合わせる。一実施形態において、フィードバック検索ドメイン32_1308Fは、図32-3に記載のとおり、様々なデバイス上で動作するブラウザによって収集されたクエリフィードバックに基づく検索インデックスである。フィードバック検索ドメイン32_1308は、フィードバックデータソース32_1310F(例えば、フィードバック検索インデックス)に情報を問い合わせる。
加えて、ブレンダ/ランカ32_1306は、複数の検索ドメイン32_1308A~Fからの結果を受信し、これらの結果をランク付けする。一実施形態において、ブレンダ/ランカ32_1306は、どの種類の検索が実行されているかを判断する語彙サービス32_1302を使用して、クエリ補完の各々を特徴付ける。例えば、一実施形態において、語彙サービス32_1302は、検索対象が人物、場所、モノなどであるかどうかを判断することができる。一実施形態において、語彙サービス32_1302は、語又は句をカテゴリにマッピングする知識ベース32_1312を使用する。本実施形態において、クエリ補完を特徴付けることは、検索ドメイン32_1308A~Fによって返された結果を重み付けするために行われる。例えば、一実施形態において、クエリ補完が場所の検索であると特徴付けられた場合には、この場所についてのウィキエントリだけでなく、マップ検索ドメインからの結果も上位にランク付けされ得る。更なる例として、このクエリ補完がアーティストに関するものであることが示された場合には、メディア検索ドメインの結果を上位にランク付けすることができる。結果の重み付けについては、後ほど図32-14のところで更に説明する。
図32-14は、クエリ補完向けの語彙サービスを使用して関連結果を判定するプロセス32_1400の一実施形態のフローチャートである。一実施形態において、ブレンダ/ランカ32_1306は、先に図32-13のところで説明したとおり、プロセス32_1400を実行して、語彙サービスをクエリ補完に使用して関連結果を判定する。図32-14において、プロセス32_1400は、ブロック32_1402でクエリ補完を受信することによって開始する。一実施形態において、受信したクエリ補完は、クエリプレフィックスを受信したことに応答してプロセス32_600によって判定された補完である。一実施形態において、プロセス32_1400は、1本の並列ストリームでブロック32_1404及び32_1408を実行し、別の並列ストリームでブロック32_1406及び32_1410を実行する。ブロック32_1404で、プロセス32_1400は、クエリ補完を種々の検索ドメインに送信して関連結果候補を判定する。一実施形態において、検索ドメインの各々は、受信したクエリ補完を使用して、その検索ドメインの関連結果を判定する。一実施形態においては、複数の検索ドメインがクエリ補完の各々を並行して処理する。プロセス32_1400は、クエリ補完(単数又は複数)を語彙サービスに送信して、補完の各々を特徴付ける。一実施形態において、語彙サービスは、クエリ補完が人物、場所、モノ、又は別の種類の情報に関するクエリであるかどうかを判断することによってクエリ補完の各々を特徴付ける。クエリ補完の特徴付けについては、後ほど図32-15で更に詳しく説明する。プロセス32_1400は、ブロック32_1408で複数の検索ドメインからの検索結果を受信する。一実施形態において、検索結果の各々は、対応する検索ドメインからの結果を特徴付けるスコアのセットを含む。
ブロック32_1410で、プロセス32_1400は、クエリ補完を特徴付ける語彙検索結果を受信する。一実施形態において、クエリ補完の特徴付けは、各クエリ補完が検索している情報のタイプを示す。例えば、一実施形態において、クエリ補完は、人、場所、モノ、又は別の種類の情報に関するクエリである。一実施形態においては、2本の並列ストリームが、ブロック32_1412で収束する。プロセス32_1400は、ブロック32_1412で、クエリ補完の特徴付けを用いてそのクエリ補完に関する関連結果をランク付け及びフィルタリングする。一実施形態において、クエリ補完が人物の検索であることが示された場合には、その検索の結果である人物に関するウィキドメインからの結果が上位にランク付けされ得る。例えば、一実施形態において、クエリ補完が映画の検索と特徴付けられた場合には、その映画のレビュー又は現地の上映時間からの結果を上位にランク付けすることができる。別例として、クエリ補完が場所であるとことが示された場合には、この場所に関するウィキエントリだけでなく、マップ検索ドメインからの結果も上位にランク付けすることができる。更なる例として、このクエリ補完がアーティストに関するものであることが示された場合には、メディア検索ドメインの結果を上位にランク付けすることができる。クエリ補完を使用したランク付けについては、先に図32-7のところでも説明している。別の実施形態において、フィードバックインデックスは、関連結果をランク付け及び/又はフィルタリングするために使用される信号ドメインであり得る。本実施形態においては、プロセス32_1400が、関与イベントの数を用いて結果を上位にランク付けし、破棄イベントの数を用いて結果を下位にランク付けする。一実施形態において、プロセス32_1400は、先に図32-7、ブロック32_708のところで説明したとおり、結果をランク付けしてフィルタリングする。プロセス32_1400は、ブロック32_1414で、ランク付け及びフィルタリングされた結果を返す。
上述のとおり、プロセス32_1400は、語彙サービスを使用してクエリ補完を特徴付ける。図32-15は、クエリ補完を特徴付けるプロセス32_1500の一実施形態のフローチャートである。図32-15において、プロセス32_1500は、ブロック32_1502でクエリ補完を受信する。ブロック32_1504で、プロセス32_1500は各クエリ補完をトークン化する。一実施形態において、補完をトークン化することは、クエリ補完を別個のトークン(例えば、語、句、複数形/単数形)に分けることである。トークン化されたクエリ補完に対して、プロセス32_1500は、知識ベース内にあるトークン化された補完についての一致を判定する。一実施形態において、知識ベースは、カテゴリにマッピングされた語又は句のデータベースである。例えば、一実施形態において、知識ベースは、{エッフェル塔→場所}、{マイケル・ジャクソン→アーティスト}、{バラク・オバマ→大統領}、{クロゴケグモ→クモ}などのエントリを含み得る。一実施形態において、知識ベースは、オントロジを用いて構築される。一実施形態において、プロセス32_1500は、用語頻度照合アルゴリズムを使用して、知識ベース内でのクエリ補完の一致を判定する。例えば、一実施形態において、クエリ補完が「マイケル・ジャクソンとは誰か?」である場合には、プロセス32_1500が、「マイケル」、「ジャクソン」、又は「マイケル・ジャクソン」という用語で照合することができる。この例において、プロセス32_1500は、ナレッジデータベースで最長一致を検索しようとする。知識ベースに「マイケル」、「ジャクソン」、及び「マイケル・ジャクソン」に対する一致が存在する場合には、「マイケル・ジャクソン」に対する一致が使用される。クエリ補完のうちの1つ以上に対する一致が存在する場合には、プロセス32_1500がブロック32_1508で一致を返す。例えば、一実施形態において、プロセス32_1500は、「マイケル・ジャクソンとは誰か?」というクエリ補完に対する「人物」、「アーティスト」、又は別の種類の特徴付けを返すことができる。一致が存在しない場合、プロセス32_1500は、特徴付けなしで返す。
図32-16は、複数の検索ドメインからのクエリ補完を判定するための補完モジュール32_1600の一実施形態のブロック図である。一実施形態において、補完モジュール32_1600は、クエリプレフィックス受信モジュール32_1602と、プレフィックス送信モジュール32_1604と、補完受信モジュール32_1606と、補完ランク付け&フィルタモジュール32_1608と、補完送信モジュール32_1610と、を含む。一実施形態において、クエリプリフィックス受信モジュール32_1602は、先に図32-6、ブロック32_602のところで説明したとおり、クエリプレフィックスを受信する。プレフィックス送信モジュール32_1604は、先に図32-6、ブロック32_604のところで説明したとおり、クエリプレフィックスを種々の検索ドメインに送信する。補完受信モジュール32_1606は、先に図32-6、ブロック32_606のところで説明したとおり、クエリ補完を受信する。補完ランク付け&フィルタモジュール32_1608は、上の図32-6、ブロック32_608に記載のとおり、受信したクエリ補完をランク付けしてフィルタリングする。補完送信モジュール32_1610は、先に図32-6、ブロック32_610のところで説明したとおり、クエリ補完を関連結果モジュールに送信する。
図32-17は、判定されたクエリ補完から複数の検索ドメインにわたって関連結果を判定する結果モジュール32_1700の一実施形態のブロック図である。一実施形態において、結果モジュール32_1700は、クエリ補完受信モジュール32_1702と、補完送信モジュール32_1704と、クエリ結果受信モジュール32_1706と、ランク付け及びフィルタモジュール32_1708と、及び結果返却モジュール32_1710と、を含む。一実施形態において、クエリ補完受信モジュール32_1702は、先に図32-7、ブロック32_702のところで説明したとおり、クエリ補完を受信する。補完送信モジュール32_1704は、先に図32-7、ブロック32_704のところで説明したとおり、補完を複数の検索ドメインに送信する。クエリ結果受信モジュール32_1706は、先に図32-7、ブロック32_706のところで説明したとおり、複数の検索ドメインからクエリ結果を受信する。ランク付け及びフィルタモジュール32_1708は、先に図32-7、ブロック32_708のところで説明したとおり、クエリ結果をランク付け及びフィルタリングする。結果返却モジュール32_1710は、先に図32-7、ブロック32_710のところで説明したとおり、クエリ結果を返す。
図32-18は、ユーザ検索セッション中にユーザフィードバックを収集するフィードバック収集モジュール32_838の一実施形態のブロック図である。一実施形態において、フィードバック収集モジュール32_838は、レンダリングイベント検出モジュール32_1802と、イベント記録モジュール32_1804と、フィードバックパッケージ作成モジュール32_1806と、フィードバック送信モジュール32_1808と、を含む。一実施形態において、初期イベント検出モジュール32_1802は、先に図32-10、ブロック32_1002のところで説明したとおり、初期イベントを検出してユーザ検索セッションを開始する。イベント記録モジュール32_1804は、先に図32-10、ブロック32_1004上のところで説明したとおり、ユーザ検索セッション中にイベントを記録する。フィードバックパッケージ作成モジュール32_1806は、先に図32-10、ブロック32_1006のところで説明したとおり、フィードバックパッケージを作成する。フィードバック送信モジュール32_1808は、先に図32-10、ブロック32_1008のところで説明したとおり、フィードバックパッケージを送信する。
図32-19は、ユーザフィードバックをフィードバックインデックスに組み込むためのフィードバック処理モジュール32_840の一実施形態のブロック図である。一実施形態において、フィードバック処理モジュール32_840は、フィードバックパッケージ受信モジュール32_1902と、フィードバックパッケージ変換モジュール32_1904と、フィードバックエントリ挿入モジュール32_1906と、を含む。一実施形態において、フィードバックパッケージ受信モジュール32_1902は、図32-11、ブロック32_1102に記載のとおり、フィードバックモジュールを受信する。フィードバックパッケージ変換モジュール32_1904は、先に図32-11、ブロック32_1104のところで説明したとおり、フィードバックパッケージを変換する。フィードバックエントリ挿入モジュール32_1906は、先に図32-11、ブロック32_1106のところで説明したとおり、フィードバックインデックスエントリを挿入する。
図32-20は、ユーザフィードバックを使用して結果キャッシュを更新するクエリ結果更新モジュール32_842の一実施形態のブロック図である。一実施形態において、結果キャッシュ更新モジュール32_842は、結果セット受信モジュール32_2002と、クエリ実行モジュール32_2004と、結果セット更新モジュール32_2006と、更新結果送信モジュール32_2008と、を含む。一実施形態において、結果セット受信モジュール32_2002は、図32-12、ブロック32_1202に記載のとおり、結果セットを受信する。クエリ実行モジュール32_2004は、図32-12、ブロック32_1204に記載のとおり、フィードバックインデックスを使用してクエリを実行する。結果セット更新モジュール32_2006は、図32-12、ブロック32_1206に記載のとおり、結果セットを更新する。更新結果送信モジュール32_2008は、図32-12、ブロック32_1202に記載のとおり、更新された結果セットを送信する。
図32-21は、語彙サービスをクエリ補完に使用して関連結果を判定する関連結果モジュール32_2100の一実施形態のブロック図である。一実施形態において、関連結果モジュール32_2100は、補完受信モジュール32_2102と、補完送信モジュール32_2104と、語彙補完モジュール32_2106と、結果受信モジュール32_2108と、語彙結果受信モジュール32_2110と、結果ランク付けモジュール32_2112と、結果返却モジュール32_2114と、を含む。一実施形態において、補完受信モジュール32_2102は、図32-14、ブロック32_1402に記載のとおり、クエリ補完を受信する。補完送信モジュール32_2104は、図32-14、ブロック32_1404に記載のとおり、クエリ補完を複数の検索ドメインに送信してクエリ補完を受信する。語彙補完モジュール32_2106は、図32-14、ブロック32_1406に記載のとおり、クエリ補完を語彙サービスに送信する。結果受信モジュール32_2108は、図32-14、ブロック32_1408に記載のとおり、複数の検索ドメインからクエリ結果を受信する。語彙結果受信モジュール32_2110は、図32-14、ブロック32_1410に記載のとおり、語彙サービスの特徴付けを受信する。結果ランク付けモジュール32_2112は、図32-14、ブロック32_1412に記載のとおり、検索ドメイン結果をランク付けする。結果返却モジュール32_2114は、図32-14、ブロック32_1414に記載のとおり、ランク結果を返す。
図32-22は、クエリ補完を特徴付けるクエリ特徴付けモジュール32_2200の一実施形態のブロック図である。一実施形態において、クエリ結果特徴付けモジュール32_2200は、補完受信モジュール32_2202と、補完トークン化モジュール32_2204と、一致検索モジュール32_2206と、特徴付け返却モジュール32_2208と、を含む。一実施形態において、補完受信モジュール32_2202は、図32-15、ブロック32_1502に記載のとおり、補完を受信する。補完トークン化モジュール32_2204は、先に図32-15、ブロック32_1504に記載のところで説明したとおり、補完をトークン化する。一致検索モジュール32_2206は、図32-15、ブロック32_1506に記載のとおり、知識ベース内にあるトークン化された補完の一致を見つける。特徴付け返却モジュール32_2208は、先に図32-15、ブロック32_1508のところで説明したとおり、特徴付けを返す。
一部の実施形態においては、(図1Aを参照して上述した)デバイス100が、このセクションに記載の技術を実装するために使用される。
検索技術を実装するためのデバイス、方法、及びコンピュータ可読媒体例
一態様における、マルチドメインクエリ検索を実行するデバイスの方法及び装置について説明する。例示的な実施形態において、このデバイスは、ユーザのクライアントからクエリプレフィックスを受信する。このデバイスは更に、複数の別個の検索ドメインにまたがる複数の検索補完を判定する。加えて、このデバイスは、対応する検索ドメインによって判定された複数の検索補完の各々について計算されたスコアに基づいてこれら複数の検索補完をランク付けする。これら複数の検索補完のうちの少なくとも1つが、ユーザからのインジケーションなしで、かつクエリプレフィックスを受信したことに応答して複数の検索結果を生成するために使用される。
一部の実施形態においては、複数の別個の検索ドメインにわたるクエリプレフィックスを使用して、複数のランク付けされた補完を生成するための方法であって、ユーザのクライアントからクエリプレフィックスを受信することと、複数の別個の検索ドメインにまたがって複数の検索補完を判定することと、対応する検索ドメインによって判定された複数の検索補完であって、その中の少なくとも1つが、ユーザからのインジケーションなしで、かつクエリプレフィックスを受信したことに応答して複数の検索結果を生成するために使用される複数の検索補完の各々について計算されたスコアに基づいて複数の検索補完をランク付けすることと、を含む方法を1つ以上の処理ユニットに実行させる実行可能命令を有する非一時的機械可読媒体が提供される。
一部の実施形態において、この方法は、複数の検索補完をフィルタリングすることを含む。一部の実施形態において、複数の別個の検索ドメインの各々は、マップ検索ドメイン、メディアストア検索ドメイン、オンライン百科事典検索ドメイン、及びサイト検索ドメインからなる群から選択される。一部の実施形態において、複数の検索補完のうちの1つに対するスコアは、この検索補完の生スコア、即ち、この検索補完が受信された回数である。一部の実施形態において、複数の検索補完のうちの1つに対するスコアは、この検索補完生スコアと、この検索補完をプレフィックスとして使用する他の検索補完候補の数と、に基づくその検索補完のローカルスコアである。一部の実施形態において、複数の検索補完のうちの1つのスコアは、この検索補完生スコアと、検索ドメイン内の他の検索補完候補の数と、に基づく、その検索補完のグローバルスコアである。一部の実施形態において、クエリプレフィックスは、入力文字列とコンテキストとを含み、入力文字列はユーザによって入力される。一部の実施形態において、コンテキストは、位置と、デバイスタイプと、アプリケーション識別子と、ロケールと、を含む。
一部の実施形態においては、複数の別個の検索ドメインにわたるクエリプレフィックスを使用して、複数のランク付けされた補完を生成する方法であって、ユーザのクライアントからクエリプレフィックスを受信することと、複数の別個の検索ドメインにまたがって複数の検索補完を判定することと、対応する検索ドメインによって判定された複数の検索補完であって、その中の少なくとも1つが、ユーザからのインジケーションなしで、かつクエリプレフィックスを受信したことに応答して複数の検索結果を生成するために使用される複数の検索補完の各々について計算されたスコアに基づいて複数の検索補完をランク付けすることと、を含む方法が提供される。一部の実施形態において、この方法は、複数の検索補完をフィルタリングすることを含む。一部の実施形態において、複数の別個の検索ドメインの各々は、マップ検索ドメイン、メディアストア検索ドメイン、オンライン百科事典検索ドメイン、及びサイト検索ドメインからなる群から選択される。一部の実施形態において、複数の検索補完のうちの1つに対するスコアは、この検索補完の生スコア、即ち、この検索補完が受信された頻度である。一部の実施形態において、複数の検索補完のうちの1つに対するスコアは、この検索補完生スコアと、この検索補完をプレフィックスとして使用する他の検索補完候補の数と、に基づくその検索補完のローカルスコアである。一部の実施形態において、複数の検索補完のうちの1つのスコアは、この検索補完生スコアと、検索ドメイン内の他の検索補完候補の数と、に基づく、その検索補完のグローバルスコアである。一部の実施形態において、クエリプレフィックスは、入力文字列とコンテキストとを含み、入力文字列はユーザによって入力される。一部の実施形態において、コンテキストは、位置と、デバイスタイプと、アプリケーション識別子と、ロケールと、を含む。
一部の実施形態においては、複数の別個の検索ドメインにわたるクエリプレフィックスを使用して、複数のランク付けされた補完を生成するためのデバイスであって、プロセッサと、バスによってプロセッサに連結されたメモリと、プロセッサに、ユーザのクライアントからクエリプレフィックスを受信させ、複数の別個の検索ドメインにまたがって複数の検索補完を判定させ、対応する検索ドメインによって判定された複数の検索補完であって、その中の少なくとも1つが、ユーザからのインジケーションなしで、かつクエリプレフィックスを受信したことに応答して複数の検索結果を生成するために使用される複数の検索補完の各々について計算されたスコアに基づいて複数の検索補完をランク付けさせるプロセッサによってメモリから実行されるプロセスと、を備えるデバイスが提供される。一部の実施形態において、このプロセスは更に、プロセッサに複数の検索補完をフィルタリングさせる。一部の実施形態において、複数の別個の検索ドメインの各々は、マップ検索ドメイン、メディアストア検索ドメイン、オンライン百科事典検索ドメイン、及びサイト検索ドメインからなる群から選択される。一部の実施形態において、複数の検索補完のうちの1つに対するスコアは、この検索補完の生スコア、即ち、この検索補完が受信された頻度である。
別の態様においては、ユーザの検索セッションからのフィードバックを使用して結果キャッシュを生成する方法及び装置が提供される。本実施形態において、このデバイスは、クライアントからフィードバックパッケージを受信する。フィードバックパッケージが、ユーザによって入力されたクエリプレフィックスに応答してユーザに提示される検索セッションにおける複数のクエリ結果とのユーザ相互作用を特徴付ける。デバイスは更に、検索フィードバックインデックスを使用して複数のクエリを実行し、複数の結果に到達することによって、複数のクエリに対する複数の結果を生成する。加えて、デバイスは、複数の結果から結果キャッシュを作成し、結果キャッシュは、複数の結果を複数のクエリにマッピングし、この結果キャッシュを使用してクエリ結果をクライアントにサーブする。
一部の実施形態においては、検索セッションからのフィードバックを使用して結果キャッシュを生成する方法であって、ユーザによって入力されたクエリプレフィックスに応答してユーザに提示される、検索セッションにおける複数のクエリ結果とのユーザ相互作用を特徴付けるフィードバックパッケージをクライアントから受信することと、フィードバックパッケージを使用して、検索フィードバックインデックスにおいてエントリを追加することと、複数の結果に到達するために検索フィードバックインデックスを使用して複数のクエリを実行することにより、複数のクエリに対する複数の結果を生成することと、複数の結果を複数のクエリにマッピングし、クエリ結果をクライアントに渡すために使用される結果キャッシュを複数の結果から作成することと、を含む方法を1つ以上の処理ユニットに実行させる実行可能命令を有する、非一時的機械可読媒体が提供される。一部の実施形態においては、フィードバックパッケージは、クエリプレフィックスと、複数のクエリ結果と、ユーザ相互作用中に記録された複数のイベントと、を含む。一部の実施形態において、これら複数のイベントは、クエリプレフィックスからの結果がユーザに対して表示されるイベントであるレンダリングイベントを含む。一部の実施形態において、これら複数のイベントは、ユーザがそのクエリ結果に関与したことを示すイベントであるクエリ結果のうちの1つに対する関与イベントを含む。一部の実施形態において、そのクエリ結果に対する関与イベントは、クエリ結果のリンクをクリックすることである。一部の実施形態において、これら複数のイベントは、ユーザがそのクエリ結果を廃棄したことを示すイベントであるクエリ結果のうちの1つに対する廃棄イベントを含む。一部の実施形態において、結果キャッシュは、クエリ要求に対するクエリ結果を返すためにクライアントによって使用されるキャッシュである。一部の実施形態において、フィードバックインデックスエントリは、クエリプレフィックスと、クエリプレフィックスに対する結果と、その結果に対するイベントのセットと、を含む。
一部の実施形態においては、検索セッションからのフィードバックを使用して結果キャッシュを生成する方法であって、ユーザによって入力されたクエリプレフィックスに応答してユーザに提示される、検索セッションにおける複数のクエリ結果とのユーザ相互作用を特徴付けるフィードバックパッケージをクライアントから受信することと、フィードバックパッケージを使用して、検索フィードバックインデックスにおいてエントリを追加することと、複数の結果に到達するために検索フィードバックインデックスを使用して複数のクエリを実行することにより、複数のクエリに対する複数の結果を生成することと、複数の結果を複数のクエリにマッピングし、結果キャッシュは、クエリ結果をクライアントに渡すために使用される結果キャッシュを作成することと、を含む方法が提供される。一部の実施形態においては、フィードバックパッケージは、クエリプレフィックスと、複数のクエリ結果と、ユーザ相互作用中に記録された複数のイベントと、を含む。一部の実施形態において、これら複数のイベントは、クエリプレフィックスからの結果がユーザに対して表示されるイベントであるレンダリングイベントを含む。一部の実施形態において、これら複数のイベントは、ユーザがそのクエリ結果に関与したことを示すイベントであるクエリ結果のうちの1つに対する関与イベントを含む。一部の実施形態において、そのクエリ結果に対する関与イベントは、クエリ結果のリンクをクリックすることである。一部の実施形態において、これら複数のイベントは、ユーザがそのクエリ結果を廃棄したことを示すイベントであるクエリ結果のうちの1つに対する廃棄イベントを含む。一部の実施形態におい、結果キャッシュは、クエリ要求に対するクエリ結果を返すためにクライアントによって使用されるキャッシュである。一部の実施形態において、フィードバックインデックスエントリは、クエリプレフィックスと、クエリプレフィックスに対する結果と、その結果に対するイベントのセットと、を含む。
一部の実施形態においては、検索セッションからのフィードバックを使用して結果キャッシュを生成するためのデバイスであって、プロセッサと、バスによってプロセッサに連結されたメモリと、プロセッサによってメモリから実行されるプロセスであって、フィードバックパッケージを使用して検索フィードバックインデックスにおいてエントリを追加するプロセッサに、複数の結果に到達するために検索フィードバックインデックスを使用して複数のクエリを実行することによって複数のクエリに対する複数の結果を生成させ、複数の結果から結果キャッシュを作成させ、結果キャッシュは、複数の結果を複数のクエリにマッピングし、結果キャッシュを使用して、クエリ結果をクライアントに渡す、プロセスと、を備えるデバイスが提供される。一部の実施形態においては、フィードバックパッケージは、クエリプレフィックスと、複数のクエリ結果と、ユーザ相互作用中に記録された複数のイベントと、を含む。一部の実施形態において、これら複数のイベントは、クエリプレフィックスからの結果がユーザに対して表示されるイベントであるレンダリングイベントを含む。一部の実施形態において、これら複数のイベントは、ユーザがそのクエリ結果に関与したことを示すイベントであるクエリ結果のうちの1つに対する関与イベントを含む。
更に別の態様においては、複数の別個の検索ドメインにわたるクエリから複数のランク付けされたクエリ結果を生成する方法及びデバイスが提供される。本実施形態において、デバイスはクエリを受信し、そのクエリを使用して複数の別個の検索ドメインにまたがる複数の結果を判定する。デバイスは更に、クエリを特徴付ける。加えて、デバイスは、対応する検索ドメインと、クエリタイプを示すクエリ特徴付けと、によって判定された複数の結果の各々について計算されたスコアに基づき、複数の結果をランク付けする。
一部の実施形態においては、複数の別個の検索ドメインにまたがるクエリから、複数のランク付けされたクエリ結果を生成するための方法であって、クエリを受信することと、そのクエリを使用して複数の別個の検索ドメインにまたがって複数の結果を判定することと、そのクエリを特徴付けることと、対応する検索ドメインによって判定された複数の結果の各々について計算されたスコアと、クエリタイプを示すクエリ特徴付けと、に基づいて複数のクエリ結果をランク付けすることと、を含む方法を1つ以上の処理ユニットに実行させる実行可能命令を有する非一時的機械可読媒体が提供される。一部の実施形態において、クエリタイプは、人物、場所、及びモノの群から選択される。一部の実施形態において、この方法は、複数の検索結果をフィルタリングすることを含む。一部の実施形態において、複数の別個の検索ドメインの各々は、マップ検索ドメイン、メディアストア検索ドメイン、オンライン百科事典検索ドメイン、及びサイト検索ドメインからなる群から選択される。一部の実施形態においては、クエリを特徴付けることは、クエリをトークン化することと、知識ベース内にあるトークン化されたクエリに対する一致を見つけることと、を含む。一部の実施形態において、一致を見つけることは、クエリ内でトークン間の最長一致を見つけることを含む。一部の実施形態において、クエリをトークン化することは、クエリをトークンに分けることを含む。一部の実施形態において、トークンは、語及び句からなるグループに対して選択される。一部の実施形態において、クエリは、使用するクエリ補完に関するユーザからのインジケーションなしでクエリプレフィックスから補完されるクエリ補完である。
一部の実施形態においては、複数の別個の検索ドメインにわたるクエリから複数のランク付けされたクエリ結果を生成する方法であって、クエリを受信することと、そのクエリを使用して複数の別個の検索ドメインにまたがって複数の結果を判定することと、そのクエリを特徴付けることと、対応する検索ドメインによって判定された複数の結果の各々について計算されたスコアと、クエリタイプを示すクエリ特徴付けと、に基づいて複数のクエリ結果をランク付けすることと、を含む方法が提供される。一部の実施形態において、クエリタイプは、人物、場所、及びモノの群から選択される。一部の実施形態において、この方法は、複数の検索結果をフィルタリングすることを含む。一部の実施形態において、複数の別個の検索ドメインの各々は、マップ検索ドメイン、メディアストア検索ドメイン、オンライン百科事典検索ドメイン、及びサイト検索ドメインからなる群から選択される。一部の実施形態においては、クエリを特徴付けることは、クエリをトークン化することと、知識ベース内にあるトークン化されたクエリに対する一致を見つけることと、を含む。一部の実施形態において、一致を見つけることは、クエリ内でトークン間の最長一致を見つけることを含む。一部の実施形態において、クエリをトークン化することは、クエリをトークンに分けることを含む。一部の実施形態において、クエリは、使用するクエリ補完に関するユーザからのインジケーションなしでクエリプレフィックスから補完されるクエリ補完である。
一部の実施形態においては、複数の別個の検索ドメインにわたるクエリから、複数のランク付けされたクエリ結果を生成するためのデバイスであって、プロセッサと、バスによってプロセッサに連結されたメモリと、プロセッサにクエリを受信させ、そのクエリを使用して複数の別個の検索ドメインにまたがる複数の結果を判定させ、クエリを特徴付けさせ、対応する検索ドメインと、クエリタイプを示すクエリ特徴付けと、によって判定された複数の結果の各々について計算されたスコアに基づいて複数のクエリ結果をランク付けさせるプロセッサによってメモリから実行されるプロセスと、を備えるデバイスが提供される。一部の実施形態において、クエリタイプは、人物、場所、及びモノの群から選択される。一部の実施形態において、このプロセスは更に、プロセッサに複数の検索結果をフィルタリングさせる。
セクション3:マルチドメイン検索技術
このセクション「マルチドメイン検索技術」における資料は、一部の実施形態に係る、コンピューティングデバイス上でのマルチドメイン検索について説明し、本明細書に記載される開示内容を補足する情報を提供する。例えば、このセクションの複数部分が、コンピュータデバイス上でローカル学習を利用する1つ以上のドメインから取得された検索結果の改善について説明しており、例えば、ユーザ挙動のパターンを認識及び使用することに関連する図4A~図4B、図5、及び他の図に関連する開示内容など、本明細書に記載される開示内容を補足する。一部の実施形態においては、このセクションの詳細が、(例えば、方法600、800、1000、及び1200に関して上述した)検索インタフェースに提示される検索結果の改善を支援するために使用される。
マルチドメイン検索技術の概要
ユーザのコンピューティングデバイス上でローカルに学習されたクエリ及び結果の特徴を利用して、プライベート情報のローカルデータベースからユーザに返される検索結果と、1つ以上の検索ドメインから返された結果と、を改善するための実施形態が記載されている。一実施形態においては、1つ以上の検索ドメインが、検索クエリに関連する1つ以上の特徴についてコンピューティングデバイスに通知することができ、これらの特徴を基に、コンピューティングデバイスはローカル学習を適用することができる。
一実施形態において、コンピューティングデバイスは、自身から取得した情報を使用して、検索クエリに関連する1つ以上の特徴を学習することができる。コンピューティングデバイスから、及びコンピューティングデバイスによって取得された情報は、検索クエリに関連する特徴、又は検索クエリから返された結果に関連する特徴を学習するように機械学習アルゴリズムをトレーニングするために、そのコンピューティングデバイス上でローカルに使用することができる。この特徴は、リモート検索エンジンに送信することができ、それによって、デバイスのユーザのプライバシーを侵害することなく、クエリに対して、関連性が高く、個々に応じた結果が返される。一実施形態において、この特徴は、クエリを拡張するために使用される。一実施形態において、この特徴は、クエリの用語にバイアスをかけるために使用される。この特徴は、検索クエリから返された結果をフィルタリングするために使用することもできる。クエリから返される結果は、ローカルの結果、リモート検索エンジンの結果、又はその両方であり得る。
一例において、コンピューティングデバイスのユーザは、スポーツのスコアに関する毎日の情報をコンピューティングデバイスにプッシュするニュースフィード、即ちRSSフィードを購読し得る。ニュース又はRSSフィードが購読ユーザについて知っている情報は、そのユーザがスポーツのスコアに興味を持っているということだけである。ユーザは、RSSフィードからコンピューティングデバイスによって受信された情報に、コンピューティングデバイス上のローカルクエリインタフェースを使用して「サッカーのスコア」を問い合わせることができる。米国のユーザにとって、
footballは、例えばダラスカウボーイズがプレーするアメリカンフットボールを意味する。欧州又は南米のユーザにとって、footballは、米国人がサッカーと呼んでいるものを表すことが多い。そのため、クエリ語句「football」に関する「サッカー」と「フットボール」の区別は、コンピューティングデバイスがトレーニングできる検索クエリに関連する特徴であり得る。コンピューティングデバイスのユーザがサッカーのスコアを求めてローカル結果と相互作用すれば、このデバイスのユーザがfootballのスコアを問い合わせた場合にはサッカーのスコアを意味するということを、ニュース又はRSSフィードのローカルプレディクタが学習することができる。
一実施形態においては、リモート検索エンジンが、「フットボールとサッカー」という特徴を学習することができる。しかし、リモート検索エンジンは、アメリカンフットボールとサッカーとの間に明確な区別が存在することを学習できる一方で、サッカーのスコアを問い合わせる特定のユーザが、アメリカンフットボール又はサッカーに関する結果に興味があるかどうかは知らない。リモート検索エンジンがその区別を学習すると、リモート検索サービスがサッカーのスコアに関するクエリを次回受信した時に、リモート検索エンジンは、アメリカンフットボールのスコアとサッカーのスコアとの両方を返せることに加え、問い合わせているコンピューティングデバイスに特徴を送信してトレーニングさせ、そのコンピューティングデバイスの特定のユーザが興味を持っているのがアメリカンフットボールのスコアなのかサッカーのスコアなのかをそのコンピューティングデバイスが学習できるようにすることもできる。
一実施形態においては、ローカルクライアントが、コンピューティングデバイスのプライベートな情報を利用してその特徴を学習した後、そのコンピューティングデバイスのユーザが、
サッカーのスコアを求めてリモート検索サービスに次回問い合わせた時に、そのコンピューティングデバイスは、その特徴に対するバイアスをクエリと一緒にリモート検索サービスに送信することができる。例えば、このバイアスは、この特定のユーザがアメリカンフットボールとサッカーのどちらに興味があるかを示すことができる。
一実施形態において、コンピューティングデバイスは、線形回帰、ベイズ分類、又はナイーブベイズ分類のうちの1つの統計分析方法を用いて特徴について学習することができる。
一部の実施形態は、1つ以上のインタフェースを通じて呼び出される他のプログラムコードと相互作用する呼び出しプログラムコードを有する環境内に、1つ以上のアプリケーションプログラミングインタフェース(API)を含む。様々な関数コール、メッセージ、又は様々な種類のパラメータを更に含み得る他の種類の呼び出しを、呼び出すプログラムと呼び出されるコードとの間でAPIを介して転送することができる。加えて、APIは、呼び出すプログラムコードに、APIで定義され、呼び出されるプログラムコードで実装されたデータ型又はクラスを使用できる機能を提供することができる。
少なくともいくつかの実施形態は、呼び出すソフトウェアコンポーネントが呼び出されるソフトウェアコンポーネントとAPLを通じて相互作用する環境を含む。この環境でAPIを通じて動作させるための方法は、APLを介して1つ以上の関数コール、メッセージ、他の種類の呼び出し又はパラメータを転送することを含む。
その他の特徴及び利点は、添付の図面及び詳細な説明から明らかになるであろう。
マルチドメイン検索技術の詳細な説明
各種実施形態に関する以下の詳細な説明では、添付の図面を参照する。これらの図面において、同様の参照符号は同様の要素を示し、特定の実施形態が実施され得る方法が例として示されている。これらの実施形態は、当業者が本発明を実施できるように十分に詳述されている。そして、他の実施形態を利用することができ、本開示の範囲から逸脱しない限り、論理的、機械的、電気的、機能的、及びその他の変更が可能であるものと理解されるべきである。したがって、以下の詳細な説明が限定的な意味で解釈されるべきではなく、本発明の範囲は添付の特許請求の範囲によってのみ規定される。
各種実施形態は、ユーザに関するプライベート情報をリモート検索エンジンに開示することなく、コンピューティングデバイス上でローカルに利用可能な情報を使用して、ローカル及びリモートの両方の検索結果をコンピューティングデバイスのユーザのために改善するクエリ及び結果の特徴を学習するために記載されている。
図33-1は、先行技術で公知である、コンピューティングデバイス33_100上のローカル検索サブシステム33_130及びリモート検索サブシステム33_135のブロック図を示す。ローカル検索サブシステム33_130は、検索可能な情報のローカルデータベース33_111と通信するローカル検索インタフェース33_110を備え得る。
ローカルデータベース33_111は、ローカル検索インタフェース33_110を使用して検索するために、コンピューティングデバイス33_100上のローカル情報にインデックスを付ける。ローカル情報はコンピューティングデバイス33_100にとってプライベートであり、リモート検索サブシステム33_135とは共有されない。ローカル情報は、コンピューティングデバイス33_100上のアプリケーション33_112及びデータ33_113に関するデータ、メタデータ、及び他の情報を含み得る。
ローカルデータベース33_111、アプリケーション33_112及びデータ33_113は、リモート検索サブシステム33_135がアクセスできない。ローカル検索インタフェース33_110に入力されたクエリ、ローカルクエリから返されたローカル結果、及びローカルクエリから返されたローカル結果とのユーザの相互作用は、リモート検索サブシステム33_135と共有されず、アクセスもできない。
ローカル検索インタフェース33_110は、通信インタフェース33_1を介してローカルデータベース33_111と通信することができる。ローカルデータベースは、通信インタフェース33_3を介してアプリケーション33_112及びデータ33_113と通信することができる。
リモート検索サブシステム33_135は、リモート検索インタフェース33_120とリモートクエリサービス33_121とを含み得る。リモートクエリサービス33_121は、ネットワークサービス33_122及びネットワーク33_140を介してリモート検索エンジン33_150にクエリを送信し、結果を返すことができる。リモート結果をローカル検索サブシステム33_130が利用することはできない。
リモート検索インタフェース33_120は、インタフェース2を介してリモートクエリサービス33_121と通信することができる。リモートクエリサービス33_121は、インタフェース4を介してネットワークサービス33_122と通信することができる。
図33-2は、ローカル学習システム33_116を有するローカル検索サブシステム33_130をブロック図形式で示す。ローカル学習システム33_116を使用して、リモート検索エンジン33_150のローカル検索及びリモート検索の両方から返された検索結果を、個人情報を公開することなく改善することができる。一実施形態において、ローカル学習システム33_116は、リセットして学習内容をフラッシュすることができる。
ローカル検索サブシステム33_130は、ローカル検索インタフェース33_110と、コンピューティングデバイス33_100上のアプリケーション33_112及びデータ33_113に関するデータ及びメタデータのローカルデータベース33_111と、を備え得る。ローカルデータベース33_111は、クライアントに記憶された連絡先データベース、コンピューティングデバイスに記憶されたドキュメントのタイトル又はドキュメント内の語、アプリケーションのタイトル、並びに、電子メール、インスタントメッセージ、スプレッドシート、プレゼンテーション、データベース、音楽ファイル、写真、動画、及びコンピューティングデバイスに対してローカルな他のデータなど、コンピューティングデバイス上のアプリケーションと関連付けられたデータ及びメタデータなどのデータソースに関するローカル情報を含み得る。一実施形態において、ローカルデータベース33_111は、ユーザのクラウドストレージに記憶されたデータソースに関する情報を含み得る。アプリケーション33_112は、計算機プログラムと、辞書と、メッセージングプログラムと、電子メールアプリケーションと、カレンダーと、電話と、カメラと、ワードプロセッサと、スプレッドシートアプリケーションと、プレゼンテーションアプリケーションと、連絡先管理アプリケーションと、マップアプリケーションと、音楽、ビデオ、又はメディアプレーヤーと、ローカル及びリモート検索アプリケーションと、その他のソフトウェアアプリケーションと、を含み得る。
クエリは、ローカル検索インタフェース33_110を使用して生成することができ、クエリ結果は、通信インタフェース33_1を介してローカルデータベース33_111から返し、ローカル検索インタフェース33_110に表示することができる。ローカル検索サブシステム33_130は更に、ローカルクエリサービス33_114と、ローカル検索及びフィードバック履歴33_115と、ローカル学習システム33_116と、を有し得る。ローカルクエリサービス33_114は、ローカル検索インタフェース33_110からクエリを受信することができる。一実施形態において、ローカル検索インタフェース33_110は、通信インタフェース33_7を介してリモートクエリサーバ33_121にクエリを渡して、ローカル検索インタフェース33_110がローカルデータベース33_111及びリモート検索エンジン33_150の両方から検索結果を受信するようにすることもできる。ローカルクエリサービス33_114は、余分なホワイトスペースを除去し、「the」及び「a」など、出現頻度が高くて関連性の低いクエリ語句を削除し、そのクエリを、ローカルデータベース33_111によって使用可能な形式にパッケージ化することができる。リモートクエリサービス33_121は、リモート検索エンジン33_150に対して類似機能を実行することができる。一実施形態において、ローカル検索インタフェース33_110は、リモート検索エンジン33_150からクエリ結果を取得するために、通信インタフェース33_7を介してリモートクエリサービス33_121にクエリを渡すことができる。一実施形態において、リモートクエリサービス33_121は、ローカル学習システム33_116によって学習されたクエリ特徴を、通信インタフェース33_8を介して受信することができる。この特徴を使用して、クエリを拡張し、かつ/又はクエリ特徴をリモート検索エンジン33_150に対してバイアスすることができる。一実施形態において、リモートクエリサービス33_121は、リモート検索エンジン33_150から返されたクエリ特徴を、トレーニングのために通信インタフェース33_8を介してローカル学習システム33_116に渡すことができる。
ローカル検索及びフィードバック履歴33_115は、通信インタフェース33_7を介してリモートクエリサービス33_121に送信されるクエリなど、ローカルクエリインタフェース33_110を使用して発行された全ての検索クエリの履歴を記憶することができる。ローカル検索及びフィードバック履歴33_115は、クエリから返されたローカル結果及びリモート結果の両方と関連付けられたユーザフィードバックを記憶することもできる。フィードバックは、例えば、結果のクリックスルー、ユーザが結果の閲覧に費やした時間、ユーザが相互作用した最初の結果か、あるいは他の順序値か、ユーザが相互作用した唯一の結果であるかどうか、ユーザは結果と相互作用しなかった、即ち結果を破棄したかどうかなど、ユーザが結果に関与したかどうかのインジケーションを含み得る。ユーザのフィードバックは、符号化し、フィードバックが取得された結果を生成したクエリと関連付けて記憶することができる。一実施形態において、ローカル検索及びフィードバック履歴33_115は、クエリによって返された1つ以上の結果への参照を記憶することができる。ローカル検索及びフィードバック履歴33_115に記憶された情報は、プライベートなユーザ情報とみなされ、リモート検索サブシステム33_135が利用すること、即ちアクセスすることはできない。一実施形態において、ローカル検索及びフィードバック履歴33_115は、フラッシュすることができる。一実施形態においては、ローカル検索及びフィードバック履歴33_115をエージングアウトすることができる。エージングアウトのタイミングを分析することで、安定した傾向を示さない検索及びフィードバック履歴よりも安定した長期的傾向を長く保つことができる。
ローカル学習システム33_116は、ローカル検索及びフィードバック履歴33_115を分析して、ローカル学習システム33_116がトレーニングできる特徴を識別することができる。ある特徴が識別されると、ローカル学習システム33_116は、その特徴をトレーニングするためのローカルプレディクタを生成することができる。一実施形態において、プレディクタとは、1つ以上のデータで動作するソフトウェアコンポーネントのインスタンスのことである。一実施形態において、ローカルプレディクタは、回帰、ベイズ、又はナイーブベイズなどの統計的分類方法を用いてトレーニングすることができる。一実施形態において、プレディクタは、特定の結果カテゴリに固有であり得る。カテゴリについては、図33-4の動作33_420:ローカルデバイス上での結果のブレンド、ランク付け、提示のところで更に詳しく説明している。
コンピューティングデバイス33_100は、リモート検索インタフェース33_120とリモートクエリサービス33_121とを含むリモート検索サブシステム33_135を備え得る。リモート検索インタフェース33_120は、Apple(登録商標)Safari(登録商標)、Mozilla(登録商標)、又はFirefox(登録商標)などのウェブブラウザを含み得る。クエリサービス33_121は、クエリに対する中間処理を実行した後に、ネットワーク33_140を介してそのクエリをネットワークサービス33_122に、そしてリモート検索エンジン33_150に渡すことができる。ネットワークサービス33_122は、リモート検索インタフェース33_120又はローカル検索インタフェース33_110上に表示するために、リモートクエリエンジン33_150から戻った結果を受信することができる。リモートクエリサービス33_121は、通信インタフェース33_4を介してネットワークサービス33_122に通信可能に連結することができる。
ネットワーク33_140は、インターネット、802.11有線又は無線ネットワーク、セルラーネットワーク、ローカルエリアネットワーク、又はこれらの任意の組み合わせを含み得る。
インタフェース33_1~33_8は、プロセス間通信、共有メモリ、ソケット、又はアプリケーションプログラミングインタフェース(API)を使用して実装することができる。APIについては、図33-7を参照して後ほど詳しく説明する。
図33-3は、ローカル検索クエリ、ローカル検索結果、及びローカル検索結果に基づいたローカルフィードバック及び検索履歴33_115を利用して、クエリ及び結果の特徴をローカルで学習する方法33_300をブロック図形式で示す。
動作33_305で、ユーザは、ローカルクエリインタフェース33_110を利用してクエリを発行することができる。
動作33_310では、ローカル検索履歴及びフィードバック履歴33_115にローカルクエリを記憶することができる。
動作33_315では、ローカル結果をローカルデータベース33_111からローカル検索インタフェース33_110に戻してユーザに表示することができる。ローカルデータベース33_111は、アプリケーション33_112によって生成されたか、又はデータ33_113と関連付けられたドキュメント、イメージ、音楽、オーディオ、ビデオ、計算機結果、連絡先、クエリ、ファイル名、ファイルメタデータ、及び他のデータなど、1つ以上のアプリケーション33_112によって生成又は処理されたデータ及びメタデータ33_113にインデックスを付ける。一実施形態において、ローカルデータベースは、1つ以上のアプリケーション33_112に対するクエリにローカル結果を返さない場合がある。例えば、「ハム」を求めるクエリが動作33_305でローカル検索インタフェース33_110に入力された場合、ローカルデータベース33_111は、辞書アプリケーション33_112からの結果と、単語「ハム」を含むドキュメント33_113からの結果と、「カニングハム」など「ハム」を有する連絡先と、を返し得るが、計算機アプリケーションには「ハム」に関連するデータ又はメタデータ33_113がないことから、計算機アプリケーション33_112の結果を返さない場合がある。しかし、動作33_305で「パイ」を求めるクエリがローカル検索インタフェース33_110に入力された場合には、ローカルデータベース33_111が、「3.141592654」、ギリシャ記号「7t」、又は円周又は円の面積、あるいは球若しくは円柱の体積など、πの値を利用する式など、計算機アプリケーション33_112に関連する結果を返し得る。同様に、33_305でローカル検索インタフェース33_110に「タホ湖の写真」を求めるクエリが入力された場合には、ローカルデータベース33_111が、カメラアプリケーション33_112によって生成された可能性のあるタホ湖の写真の結果、電子メールアプリケーション33_112からダウンロードされた可能性のあるタホ湖の写真の結果、及び/又はワードプロセッシングアプリケーション33_112によって生成された、タホ湖の写真を含むドキュメント33_113の結果を返し得る。一実施形態において、ローカル結果は、そのローカル結果を取得又は生成したアプリケーション33_112に従って表示されるように分類することができる。例えば、電子メールアプリケーション33_112からダウンロードされたタホ湖の写真が表示用にまとめて分類されても良く、カメラアプリケーション33_112によって生成されたタホ湖の写真が表示用にまとめて分類されても良く、ワードプロセッシングアプリケーション33_112によって生成された1つ以上のドキュメントに組み込まれているタホ湖の写真が表示用にまとめて分類されても良い。
動作33_320で、ユーザは、表示されたローカル結果のうちの1つ以上と相互作用することができる。結果との相互作用又は非相互作用は、ローカル結果についてのフィードバックとしてローカル検索及びフィードバック履歴33_115に記憶することができる。
動作33_325で、ローカル傾斜システム33_116は、ローカル検索及びローカルフィードバック履歴33_115を分析して、クエリに関連する1つ以上の特徴を判断することができる。
動作33_330で、ローカル学習システム33_116が新しい特徴を識別すると、動作33_335で、その特徴について新しいローカルプレディクタを生成することができ、ローカル学習システム33_116は識別された特徴をトレーニングすることができる。
動作33_340で、その特徴が関連するクエリが次回発行される時に、その特徴を使用して、クエリの拡張、クエリの語句のバイアス、クエリから返された結果のフィルタリングのうちの1つ以上を行うことができる。
図33-4は、ローカル検索クエリ及びリモート検索クエリの両方から返された検索結果と、ローカル及びリモート検索クエリ結果の両方についてのローカルフィードバックと、を利用してクエリ特徴をローカルに学習する方法33_400をブロック図形式で示す。
動作33_405で、ユーザは、ローカル検索インタフェース33_110を使用してクエリを発行する。上述したとおり、ローカル検索インタフェース33_110は、ローカルクエリサービス33_114又はリモートクエリサービス33_121を介して、それぞれローカルデータベース33_111及びリモート検索エンジン33_150の一方又は両方にクエリを渡すことができる。
動作33_410で、ローカル検索履歴及びフィードバック履歴33_115にクエリを記憶することができる。
動作33_315及び33_415に示すとおり、ローカルデータベース33_111からのローカル結果及びリモート検索エンジン33_150からのリモート結果は、それぞれ、同時又は非同期的に返され得る。一実施形態においては、タイマー33_417を設定して、タイマーの満了までに受信された結果を表示する時期を決めることができる。一実施形態においては、タイマーの満了後に更に結果を受信することができる。時間値は、コンピューティングデバイス33_100上でローカルに、若しくはリモート検索エンジン33_150上で設定すること、又は、ローカル検索結果とリモート検索結果とが異なる時間に表示されるように両方で設定することができる。
動作33_420では、ローカル検索結果とリモート結果とをブレンドしてランク付けし、その後ローカル検索インタフェース33_110上でユーザに提示することができる。一実施形態において、計算機結果の関連性が高いとローカル学習システム33_116が判断した場合には、その結果が最上位の方にランク付けされる。ユーザが計算機アプリケーション内からクエリを発行し、そのクエリが計算又は単位変換のように「見える」場合には、計算機結果の関連性が高い可能性がある。一実施形態において、クエリに一致するローカル結果33_315は、リモート検索エンジンの結果33_415より上位にランク付けすることができる。一実施形態においては、以前に学習された特徴を利用して結果をランク付け及び/又はフィルタリングすることができる。一実施形態においては、ローカル結果33_315を、電子メール、連絡先、iTunes、動画、ツイート、テキストメッセージ、ドキュメント、画像、スプレッドシートなどのカテゴリで提示し、各カテゴリ内で順序付けることができる。例えば、ローカル結果を、カテゴリ内で提示し、各カテゴリにおいて先頭に表示されている最も最近作成、変更、アクセス、又は閲覧されたローカル結果33_315によって順序付けることができる。別の実施形態においては、カテゴリをコンテキストによって順序付けることができる。例えば、ユーザが自分の音楽プレーヤアプリケーション33_112からローカルクエリを発行した場合には、ローカルデータベース33_111から返された音楽プレーヤアプリケーション33_112に関連する結果を、他のローカル結果の前に分類及び表示することができる。更に別の実施形態においては、ユーザがカテゴリからの結果と相互作用する頻度によってカテゴリを順序付けることができる。例えば、ユーザが電子メールの結果と相互作用することがほとんどない場合には、電子メールの結果が他のローカル結果よりも下位に分類及び表示される。一実施形態において、ローカルカテゴリの表示順序は固定される。ローカル結果カテゴリが変わることがほとんどないことから、これによってユーザは識別がしやすくなる。別の実施形態においては、関連性ランク付け順に従ってカテゴリを表示することができ、各カテゴリ内の結果を関連性ランク付け順に表示することができる。
一実施形態において、リモート検索エンジンから返された結果33_415は、クエリ語句が結果のタイトルに等しいかどうか、クエリ語句が結果のタイトル内にあるかどうか、クエリ語句が結果の本体内にあるかどうか、のうちの少なくとも1つに基づいたスコア、又は1つ以上のクエリ語句のTF-IDF(Term Frequency-Inverse Document Frequency:語句の出現頻度対逆ドキュメント頻度)に基づいたスコアを含み得る。加えて、リモート検索エンジン検索結果33_415は、このクエリを発行した他のユーザが結果に関与したかどうか、即ち、ユーザがこのクエリに関連する結果を見つけたかどうかを示すクエリ依存型関与スコアを有し得る。結果は、他のユーザが結果に関与したかどうか、即ち、その結果を取り出すのに使用されたクエリに関係なく、他のユーザが該当する結果を見つけたかどうかを示すクエリ非依存型関与スコアを有し得る。結果はまた、その結果が関連性があるということに非常に多くのユーザが気づいたために、結果セットの最上位の方にランク付けされるべきであるということを示す「最上位ヒット」スコアも有し得る。一実施形態において、ローカル学習システム33_116は、その結果は関連性があるということに、このコンピューティングデバイス33_110のこのユーザも気づくであろうという蓋然性を結果ごとに生成することができる。
動作33_425で、ローカル検索インタフェースは、ユーザが結果に関与したかどうか、関与した場合には、ユーザが結果にどのくらいの期間にわたって関与したか、又はユーザが結果を破棄したかどうか、を示すユーザからのフィードバックを受信することができる。ユーザフィードバックは、結果がローカルデータベース結果であるかリモート検索エンジン結果であるかに関係なく、収集してローカル検索及びフィードバック履歴33_115に記憶することができる。クエリも、ローカル検索及びフィードバック履歴33_115に記憶することもできる。一実施形態において、クエリ及びフィードバック履歴は、コンピューティングデバイス33_100の特定のユーザと関連付けることができる。一実施形態において、クエリ、フィードバック履歴33_115、及び特定のユーザとの関連付けは、ローカル学習システム33_116が、特定のユーザ向けのソーシャルグラフを生成するために使用することができる。
例えば、特定のユーザであるボブが、「ビル」及び「スティーブン」を求めて、動作33_405でローカルデバイス及びリモート検索エンジンに1つ以上のクエリを発行すると仮定する。ローカル結果33_315が、例えば、連絡先アプリケーション33_112から受信され、例えば、ビル及びスティーブンという名前の人物のLinkedIn(登録商標)プロフィールを対象とするリモート結果33_415、及び他のリモート結果33_415が返され得る。動作33_420で結果がブレンドされ、ランク付けされ、ボブというユーザに提示された後に、ローカル結果33_315、リモート結果33_415、又はその両方とのボブの相互作用の検索クエリ及びフィードバック履歴33_115を動作33_425に記憶することができる。この記憶された検索履歴及びフィードバック33_115から、ボブがローカル結果33_315、リモート結果33_415、又はその両方と行った相互作用のソーシャルグラフをローカル学習システム33_116によって生成することができる。
一実施形態においては、リモート結果についてのローカル学習を用いて、ユーザに繰り返し提示されたが、ユーザが相互作用していない結果をフィルタリングすることもできる。例えば、ユーザが、動作33_405で、ローカルデバイス及びリモート検索エンジン33_150に現在の政治トピックを求めるクエリを発行することができる。クエリに応答して返されたリモート結果33_415は、Huffington Post(登録商標)及びFox News(登録商標)からの結果を含み得る。動作33_425で、学習システム33_116は、ローカルに記憶された任意の/全ての結果についてのフィードバックから、ユーザがFox News(登録商標)の結果と相互作用することがほとんど又はまったくないということを学習することができる。学習システム33_116は、「ニュースソース」という、トレーニングすべき新しい特徴を判定し、動作33_420で、ローカルデバイス上で結果をブレンドし、ランク付けし、提示する際に、今後のリモート結果からFox News(登録商標)の結果を除外するようになり得る。
動作33_430では、リモート検索エンジン結果のみのフィードバック履歴をリモート検索エンジン33_150に返すことができる。フィードバック履歴は、特定のユーザ及び/又はマシンがリモート検索エンジン33_150に送信された情報内で特定されないように匿名化することができる。一実施形態においては、ユーザのプライバシーを保護するために、匿名化されたフィードバックと関連付けられたクエリがリモート検索エンジンに送信されない。
動作33_435で、ローカル学習システム33_116は、ローカル検索及びフィードバック履歴33_115を分析して、結果及び結果についてのフィードバックから特徴を識別できるかどうかを判断することができる。ローカル学習システム33_116は、特徴を識別できるかどうかを判定する際に、ローカル及びリモートの両方で、クエリに対する結果の全てについてのフィードバックを利用することができる。
ある特徴が動作33_435で識別された場合、ローカル学習システム33_116は、動作33_440で、その特徴についてのローカルプレディクタを生成し、その特徴をトレーニングすることができる。
動作33_445で、ローカル学習システム33_116は、任意選択で、ローカル学習システム33_116によって識別された特徴に基づき、リモート検索エンジンに特徴ベクトルを送信することができる。ニュースソースの例を再び使用すると、ユーザは、動作33_405で、現在の政治トピックを求めて、ローカルデバイス及びリモート検索エンジン33_150に問い合わせ得る。クエリに応答して返されたリモート結果33_415は、Huffington Post(登録商標)及びFox News(登録商標)からの結果を含み得る。リモート検索エンジン33_150は、リモート検索エンジン33_150の多くのユーザによる相互作用に基づき、最高評価の結果としてFox News(登録商標)の結果を返した可能性がある。ただし、この特定のユーザのローカルフィードバック履歴は、リモート検索エンジン33_150によってFox News(登録商標)の結果が最上位にランク付けされたにもかかわらず、この特定のユーザがFox News(登録商標)の結果と相互作用しないことを示している可能性がある。リモート検索エンジンが動作33_435における特徴としてFox News(登録商標)結果を最上位にランク付けし、動作33_440でこの特徴に関するローカル学習を実行できる場合であっても、ローカル学習システム33_116は、このユーザがFox News(登録商標)結果と相互作用しないものと特定し、動作33_445で、任意選択でリモート検索エンジン33_150にその特徴を返送する。
図33-5は、コンピューティングデバイス33_100によってリモート検索エンジン33_150に送信されたクエリに応答してリモート検索エンジン33_150によってコンピューティングデバイス33_100に渡されたクエリ特徴をローカルに学習する方法33_500をブロック図形式で示す。方法33_500の動作の多くは、先に説明済みである。
動作33_405で、ユーザは、ローカル検索インタフェース33_110を使用してクエリを発行することができる。上述したとおり、ローカル検索インタフェース33_110は、ローカルデータベース33_111及びリモート検索エンジン33_150の一方又は両方にクエリを渡すことができる。
動作33_310では、ローカル検索履歴及びフィードバック履歴33_115にローカルクエリを記憶することができる。
動作33_315で、コンピューティングデバイス33_100は、クエリに応答してローカルデータベース33_111から返されたローカル結果を受信することができる。ローカル結果は、リモート検索エンジン33_150から返された検索結果から独立して、かつ非同期で受信することができる。
動作33_515で、コンピューティングデバイス33_100は、クエリに応答してリモート検索エンジン33_150から返された結果を受信することができる。動作33_515で、リモート検索エンジンは、クエリ及び結果に関連する特徴を、ローカル学習システム33_116がトレーニングするために返すこともできる。
一実施形態においては、タイマーの満了までに受信された結果を表示する時期を判定するためにタイマー33_417を設定することができる。一実施形態においては、タイマーの満了後に更に結果を受信することができる。タイマーの時間値は、コンピューティングデバイス33_100上でローカルに、若しくはリモート検索エンジン33_150上で設定すること、又は、ローカル検索結果とリモート検索結果とが異なる時間に表示されるように両方で設定することができる。
動作33_420では、図33-4を参照して動作33_420で先に説明したとおり、ローカル結果とリモート結果とをブレンドし、ランク付けすることができる。
動作33_425で、ローカル検索インタフェースは、ユーザが結果に関与したかどうか、関与した場合には、ユーザが結果にどのくらいの期間にわたって関与したか、又はユーザが結果を破棄したかどうか、を示すユーザからのフィードバックを受信することができる。ユーザフィードバックは、結果がローカルデータベース結果であるかリモート検索エンジン結果であるかに関係なく、収集してローカル検索及びフィードバック履歴33_115に記憶することができる。クエリも、ローカル検索及びフィードバック履歴33_115に記憶することもできる。一実施形態において、クエリ及びフィードバック履歴は、コンピューティングデバイス33_100の特定のユーザと関連付けることができる。
動作33_430では、リモート検索エンジン結果のみのフィードバック履歴をリモート検索エンジン33_150に返すことができる。フィードバック履歴は、特定のユーザ及び/又はマシンがリモート検索エンジン33_150に送信された情報内で特定されないように匿名化することができる。一実施形態においては、ユーザのプライバシーを保護するために、匿名化されたフィードバックと関連付けられたクエリがリモート検索エンジンに送信されない。
動作33_520で、ローカル学習システム33_116は、動作33_515でリモート検索エンジン33_150から受信した特徴に関するローカルプレディクタを生成し、その特徴をトレーニングすることができる。ローカル学習システム33_116は、ローカルフィードバック及び検索履歴33_115を利用して、リモート検索エンジン33_150から受信した特徴に対するローカル検索結果及びリモート検索結果の両方と特定のユーザが相互作用する方法を決定することができる。ローカル学習システム33_116は、ローカル学習システム33_116によって特徴が判定されたかどうか、又はローカル学習システム33_116による学習のためにリモート検索エンジン33_150から特徴が受信されたかどうかを追跡することができる。後ほど図33-6の動作33_630など、リモート検索エンジン33_150に特徴情報を送信する実施形態においては、特徴情報をリモート検索エンジン33_150に送信する前に匿名化して、そのユーザのプライバシーに配慮することができる。
図33-6は、新しい特徴を受信又は判定し、その特徴をローカルでトレーニングし、その特徴を利用する方法33_600をブロック図形式で示す。
動作33_605で、リモート検索エンジン33_150は、コンピューティングデバイス33_100がローカルでトレーニングする新しい特徴をそのコンピューティングデバイスに返すことができる。リモート検索エンジン33_150は、コンピューティングデバイス33_100によってクエリから返された結果と併せて、その特徴をコンピューティングデバイス33_100に返すことができる。一実施形態においては、そのクエリがローカル検索インタフェース33_110から生成されたか、リモート検索インタフェース33_120から生成されたかに関係なく、その特徴をコンピューティングデバイスに返すことができる。一実施形態において、リモートクエリサーバ33_121は、その特徴をインターセプトし、通信インタフェース33_8を介してローカル学習システム33_116に渡すことができる。
動作33_610で、方法33_600は、代替として、ローカル学習システム33_116が、ローカル検索履歴及びフィードバック履歴33_115を分析して特徴を判断することによって開始することができる。様々な方法でローカル検索履歴及びフィードバック履歴33_115を分析することにより、特徴を学習することができる。いくつかの例を以下に示す。
ユーザが「footballのスコア」を求めてクエリを発行し得る。リモート検索エンジン33_150は、フットボールのスコアとサッカーのスコアとの両方の結果を返し得る。リモート検索エンジン33_150は、クエリを送信したコンピューティングデバイス33_100が、米国内にあるIPアドレスに所在すると判断した可能性がある。そのため、リモート検索エンジンは、ダラスカウボーイズなど、アメリカンフットボールのスコアを最も関連性の高い結果であると順位付けた。欧州や南米の多くの国では、footballがサッカーを意味する。クエリを発行したユーザがサッカー結果に興味を持っており、サッカーの結果と相互作用すると仮定する。ローカル学習システム33_116は、ローカル検索履歴及びフィードバック履歴33_115を分析して、ユーザが上位ランクのアメリカンフットボールのスコアと相互作用しなかったと判断することができる。ローカル学習システム33_116はその後、結果を分析して、footballには少なくとも2つの意味があり、このコンピューティングデバイス33_100のユーザが、アメリカンフットボールよりもサッカーに対する選好を有するという特徴を判断することができる。
サッカーのスコアの例を改めて使用すると、ユーザは、サッカーのスコアの結果を受信した時に、なぜ自分がアメリカンフットボールのスコアを受信しているのか疑問に思った可能性がある。ローカルデータベース33_111から返されたローカル結果には、「football」という単語の辞書エントリが存在する可能性がある。そしてユーザは、「football」の辞書エントリをクリックした。それに応答して、ローカル学習システム33_116は、footballには代替定義が存在し、このユーザがアメリカンフットボールよりもサッカーに対する選好を有するという新たな特徴を判断することができる。
別例において、ユーザが「モンタナ」というクエリを入力し、本人のアドレス帳からのローカル結果である「メアリ・モンタナ」、本人の辞書からのローカル結果、ジョー・モンタナ(アメリカンフットボールのレジェンド)に対するリモート結果、及び米国のモンタナ州を受信すると仮定する。そしてユーザは、モンタナを問い合わせるたびに、ローカルアドレス帳からメアリ・モンタナを略毎回クリックする。ローカル学習システム33_116は、モンタナに対する特徴と、このユーザが連絡先レコード「メアリ・モンタナ」に対する選好を有することと、を判断することができる。
更に別の例においては、ユーザが「MG」を求めてクエリを出す。このユーザは、自身のローカルコンピュータに英国MG社の車の写真を多数入れており、ローカルデータベース33_111でインデックス化されている。リモート検索エンジン33_150は、「マグネシウム」(Mg)元素の結果を返し得る。ユーザはまた、自身のコンピュータに「Booker T.and the MGs」というバンドによる多くの曲を入れており、そのためにローカル結果を受信し得る。ローカル学習システム33_116は、これらの結果の違いを判断して、「MG」の特徴を判断することができる。
ある特徴が動作33_605で受信されるか、動作33_610で判断されると、ローカル学習システム33_116はその後、動作33_620で、その特徴に対するローカルプレディクタを生成することができる。
動作33_625で、ローカル学習システム33_116は、ローカル検索履歴及びフィードバック履歴33_115を利用して、ローカルプレディクタを使用して特徴「MG」をトレーニングすることができる。ローカル学習システム33_116は、コンピューティングデバイス33_100のコンテキストを使用して特徴をトレーニングすることもできる。
上記MGの例を使用すると、ユーザが計算機プログラム内からクエリMGを発行した場合、ローカル学習システム33_116は、そのコンテキストを利用して、そのユーザがマグネシウムの分子量又はマグネシウムの他の性質に興味を持っている可能性が最も高いということを学習し、それに応じてMGをトレーニングすることができる。ユーザがMG車の写真を見ている時に写真閲覧アプリケーション内からクエリを発行した場合、ローカル学習システム33_116は、そのコンテキストを利用して、そのユーザが英国MGの車に興味を持っている可能性が最も高いということを学習することができる。
動作33_630で、ローカル学習システム33_116によって学習された特徴、又はリモート検索エンジン33_150から受信した特徴は、いくつかの異なる方法で利用することができる。MGを求めて新しいクエリを発行する時に、例えば、MGに対する学習済みの選好(例えば、マグネシウム)を利用してクエリを拡張することができる。一実施形態において、MGを求めて新しいクエリを発行する時には、例えば、そのクエリをマグネシウムの結果寄りにバイアスすることができる。ローカル学習システム33_116は、各クエリ特徴と関連付けられたバイアス率(学習済みの選好)を計算し、そのバイアスを特徴ベクトルとしてリモート検索エンジン33_150に提供することができる。一実施形態において、この特徴ベクトルは、その特徴と関連付けられたクエリ語句を使用してユーザがリモート検索エンジンに次回問い合わせる時にリモート検索エンジンに送信することができる。一実施形態において、この特徴を使用して、ローカルデータベース33_111又はリモート検索エンジン33_150のいずれか又は両方から返された結果をフィルタリングし、クエリMGに返された結果を、例えばマグネシウムの結果に制限することができる。
例示的実施形態の図33-7(「ソフトウェアスタック」)において、アプリケーションは、いくつかのサービスAPIを使用してサービスA又はBを、いくつかのAPIを使用してオペレーティングシステム(OS)を呼び出すことができ、A及びBは、いくつかのAPIを使用して呼び出すことができる。
なお、サービス2には2つのAPIがあり、そのうちの一方(サービス2 API 1)はアプリケーション1から呼び出しを受信してアプリケーション1に値を返し、他方(サービス2 API 2)はアプリケーション2から呼び出しを受信してアプリケーション2に値を返し、サービス1(例えば、ソフトウェアライブラリであり得る)は、OS API 1を呼び出して、OS API 1からの戻り値を受信し、サービス2(例えば、ソフトウェアライブラリであり得る)は、API 1とOS API 2の両方を呼び出して、API 1とOS API 2の両方からの戻り値を受信し、アプリケーション2はAPI 2を呼び出して、API 2からの戻り値を受信する。
マルチドメイン検索技術のためのシステム、方法、コンピュータ可読媒体の例
一部の実施形態においては、検索クエリに関連する特徴であって、コンピューティングデバイス上で生成された、リモートの検索エンジンには送信されない情報を少なくとも部分的に使用して学習される特徴をコンピューティングデバイスで学習することと、検索クエリとその特徴についてのインジケーションとをリモート検索エンジンに送信することと、検索クエリとその特徴についてのインジケーションとに応答して、コンピューティングデバイスによって検索結果を受信することと、を含むコンピュータ実装された方法が提供される。一部の実施形態において、特徴についてのインジケーションは、その特徴寄りのバイアス又は特徴ベクトルのうちの少なくとも1つを含む。一部の実施形態においては、コンピューティングデバイスから取得した情報が、そのコンピューティングデバイスに関する情報について、そのコンピューティングデバイス上で実行された検索クエリ、又は、そのコンピューティングデバイスのユーザが、そのコンピューティングデバイスに記憶された情報について、そのコンピューティングデバイス上で実行された検索クエリから返された結果に対して行った相互作用のフィードバック、のうちの少なくとも1つを含む。一部の実施形態において、学習は、コンピューティングデバイスから取得した情報の統計分析であって、線形回帰、ベイズ分類、又はナイーブベイズ分類のうちの1つを含む統計分析を含む。一部の実施形態において、この方法は、コンピューティングデバイスが学習するための検索クエリに関連する特徴をリモート検索エンジンから受信することを更に含む。一部の実施形態において、この方法は、リモート検索エンジンから受信した特徴をコンピューティングデバイスで学習することを更に含み、リモート検索エンジンから受信した特徴は、コンピューティングデバイス上で生成された、リモート検索エンジンには送信されない情報を少なくとも部分的に使用して学習される。一部の実施形態において、特徴を学習することは、コンピューティングデバイスから取得した情報に従って、検索クエリに関連するクエリ語句の曖昧さを解消することを含む。
一部の実施形態においては、処理システムによって実行されると、検索クエリに関連する特徴であって、コンピューティングデバイス上で生成された、リモートの検索エンジンには送信されない情報を少なくとも部分的に使用して学習される特徴をコンピューティングデバイスで学習することと、検索クエリとその特徴についてのインジケーションとをリモート検索エンジンに送信することと、検索クエリとその特徴についてのインジケーションとに応答して、コンピューティングデバイスによって検索結果を受信することと、を含む方法を実行する非一時的機械可読媒体が提供される。一部の実施形態において、特徴についてのインジケーションは、その特徴寄りのバイアス又は特徴ベクトルのうちの少なくとも1つを含む。一部の実施形態においては、コンピューティングデバイス上で取得した情報が、そのコンピューティングデバイス上で実行された、そのコンピューティングデバイスに関する情報についての検索クエリ、又は、そのコンピューティングデバイスのユーザが、そのコンピューティングデバイス上で実行された、そのコンピューティングデバイスに記憶された情報についての検索クエリから返された結果に対して行った相互作用のフィードバック、のうちの少なくとも1つを含む。一部の実施形態において、学習は、コンピューティングデバイスから取得した情報の統計分析であって、線形回帰、ベイズ分類、又はナイーブベイズ分類のうちの1つを含む統計分析を含む。一部の実施形態において、この方法は、コンピューティングデバイスが学習するための検索クエリに関連する特徴をリモート検索エンジンから受信することを更に含む。一部の実施形態において、この方法は、リモート検索エンジンから受信した特徴をコンピューティングデバイスで学習することを更に含み、リモート検索エンジンから受信した特徴は、コンピューティングデバイス上で生成された、リモート検索エンジンには送信されない情報を少なくとも部分的に使用して学習される。一部の実施形態において、特徴を学習することは、コンピューティングデバイスから取得した情報に従って、検索クエリに関連するクエリ語句の曖昧さを解消することを含む。
一部の実施形態においては、処理システムによって実行された時に、ある方法を実行する実行可能命令でプログラムされた処理システムを備えるシステムが提供される。この方法は、検索クエリに関連する特徴であって、システム上で生成された、リモート検索エンジンに送信されない情報を少なくとも部分的に使用して学習される特徴をシステム上で学習することと、検索クエリとその特徴についてのインジケーションとをリモート検索エンジンに送信することと、検索クエリとその特徴についてのインジケーションとに応答して、システムによって検索結果を受信することと、を含む。一部の実施形態において、特徴についてのインジケーションは、その特徴寄りのバイアス又は特徴ベクトルのうちの少なくとも1つを含む。一部の実施形態においては、コンピューティングデバイス上で取得した情報が、そのシステムに関する情報について、そのシステム上で実行された検索クエリ、又は、そのシステムのユーザが、そのシステムに記憶された情報について、そのシステム上で実行された検索クエリから返された結果に対して行った相互作用のフィードバック、のうちの少なくとも1つを含む。一部の実施形態において、学習は、システムから取得した情報の統計分析であって、線形回帰、ベイズ分類、又はナイーブベイズ分類のうちの1つを含む統計分析を含む。一部の実施形態において、この方法は、システムが学習するための検索クエリに関連する特徴をリモート検索エンジンから受信することを更に含む。一部の実施形態において、この方法は、リモート検索エンジンから受信した特徴をシステムで学習することを更に含み、リモート検索エンジンから受信した特徴は、システム上で生成された、リモート検索エンジンには送信されない情報を少なくとも部分的に使用して学習される。一部の実施形態において、特徴を学習することは、システムから取得した情報に従って、検索クエリに関連するクエリ語句の曖昧さを解消することを含む。
セクション4:構造化された提案
このセクション「構造化された提案」における資料は、一部の実施形態に係る、提案の構造化と、ユーザと関連付けられたコンテンツ(例えば、テキストメッセージ)の分析に基づいて、ユーザの連絡先及びカレンダーイベントを提案するためのコンテキスト認識コンピューティングの使用と、について説明し、本明細書に記載された開示内容を補足する情報を提供する。例えば、このセクションの複数部分において、新しい連絡先を識別及び提案する方法について説明している。その内容は、例えば、以下に論じる方法600及び方法800に関連する開示内容、特に、提案された人物を図9B~図9Cの予測部分930をポピュレートすることに言及した開示内容など、本明細書に記載される開示内容を補足するものである。加えて、コンテンツを分析するための技術は、方法1800及び2000に関して上述した技術にも応用され得るものであり、連絡先及びカレンダーイベントを提案するための技術は、音声通信コンテンツの分析に基づいてこれらの提案を行うためにも使用され得る。
構造化された提案の要約
一部の実施形態においては、連絡先を提案する方法が、電子デバイスで、メッセージを受信することと、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報を識別することと、識別されたエンティティと関連付けられた連絡先がデータベース内の複数の連絡先の中に存在しないと判断することと、その判断に応答して、そのエンティティと関連付けられた連絡先を生成することと、を含み、生成された連絡先が、その連絡先情報と、生成された連絡先が提案された連絡先であるというインジケーションと、を含む。
一部の実施形態においては、連絡先を提案する方法が、電子デバイスで、メッセージを受信することと、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報項目を識別することと、識別されたエンティティと関連付けられた連絡先がデータベース内の複数の連絡先の中に存在すること、及びその連絡先が識別された連絡先情報項目を含まないと判断することと、その判定に応答して、その連絡先を更新し、その連絡先情報項目と、その連絡先情報項目が提案された連絡先情報項目であるというインジケーションと、を含めることと、を含む。
一部の実施形態においては、連絡先を提案する方法が、ディスプレイを有する電子デバイスで、メッセージを受信することと、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報を識別することと、識別された連絡先情報が提案された連絡先情報であるというインジケーションを生成することと、そのエンティティと関連付けられた連絡先に対応する第1のユーザインタフェースであって、生成されたインジケーションに基づき、識別された連絡先情報が提案された連絡先情報であることを示す第1のユーザインタフェースオブジェクトを含む第1のユーザインタフェースを表示することと、を含む。
一部の実施形態においては、連絡先を提案する方法が、ディスプレイを有する電子デバイスで、メッセージを受信することと、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報を識別することと、受信したメッセージに対応する第1のユーザインタフェースを表示することと、を含み、第1のユーザインタフェースは、電子デバイスによって受信されたメッセージの内容を含む第1の部分と、識別されたエンティティに対応する第1のユーザインタフェースオブジェクトと、識別された連絡先情報に対応する第2のユーザインタフェースオブジェクトと、識別された連絡先情報と関連付けられた第3のユーザインタフェースオブジェクトであって、選択されると、電子デバイスに、識別された連絡先情報をデータベースに追加させる第3のユーザインタフェースオブジェクトと、を含む第2の部分と、を含む。
一部の実施形態においては、カレンダーイベントを提案する方法が、電子デバイスで、メッセージを受信することと、受信したメッセージ内でイベント情報を識別することと、識別されたイベント情報と関連付けられたカレンダーイベントを生成することと、を含み、生成されたカレンダーイベントは、そのイベント情報と、生成されたカレンダーイベントが提案されたカレンダーイベントであるというインジケーションと、を含む。
一部の実施形態においては、カレンダーイベントを提案する方法が、ディスプレイを有する電子デバイスで、メッセージを受信することと、受信したメッセージ内でイベント情報を識別することと、受信されたメッセージに対応する第1のユーザインタフェースを表示することとを含み、第1のユーザインタフェースは、電子デバイスによって受信されたメッセージの内容を含む第1の部分と、識別されたイベント情報に対応する第1のユーザインタフェースオブジェクトと、識別されたイベント情報と関連付けられた第2のユーザインタフェースオブジェクトであって、選択されると、電子デバイスに、識別されたイベント情報を複数のカレンダーイベントを含むデータベースに追加させる第2のユーザインタフェースオブジェクトと、を含む第2の部分と、を含む。
一部の実施形態においては、複数の連絡先及び/又はカレンダーイベントを提案する方法が、ディスプレイを有する電子デバイスで、メッセージを受信することと、受信したメッセージ内で、連絡先情報又はイベント情報複数のインスタンスを識別することと、受信したメッセージに対応する第1のユーザインタフェースを表示することと、を含み、第1のユーザインタフェースは、電子デバイスによって受信されたメッセージの内容を含む第1の部分と、選択されると、電子デバイスに、識別された連絡先又はイベント情報の複数のインスタンスのリストを備える第2のユーザインタフェースを表示させる第2の部分とを備える。
構造化された提案の詳細な説明
以下の開示及び実施形態の説明では、実施することができる特定の実施形態が実例として示されている添付の図面を参照する。本開示の範囲から逸脱することなく、他の実施形態及び実施例を実施することができ、変更を行うことができることを理解されたい。
上記のとおり、電子デバイス上の連絡先及びカレンダーイベントを管理することは、連絡先及びカレンダーのイベントを追加又は更新するのに、時間の経過とともに増えていく幾つかの手作業を要するため、ユーザにとって負担となり得る。このため、多くのユーザは、アドレス帳やカレンダーを最新の状態に保つことをどうしても怠るようになり、後に特定の連絡先又はイベント情報を求めて自身のデバイスで手動で検索する必要が生じた時に時間を犠牲にする。このことが、ユーザのストレスや生産性の低下につながり得る。
本開示は、メッセージに基づいてユーザの連絡先及びカレンダーイベントを自動的に提案する電子デバイスを提供することによってこの問題に対処する。このデバイスは、ユーザのメッセージを分析して連絡先及びイベント情報を把握し、この情報に基づいて、ユーザに対して提案される連絡先及びカレンダーイベントを自動的に生成又は更新することができる。提案された連絡先及びカレンダーイベントは、まるでユーザが手動で入力したかのように検索可能であり、ユーザは、提案された連絡先及びカレンダーイベントを追加又は無視することを選択できる。このようにして、ユーザの連絡先及びカレンダーイベントを、労せずして、又は最小限の労力で維持することができるため、ユーザの時間を節約し、生産性を高め、より効率的なヒューマンマシンインタフェースを生み出すことができる。
1.構造化された提案
本開示の実施形態において、電子デバイスは、ユーザに対して提案された連絡先及びカレンダーイベントを、そのユーザのメッセージから構造化することができる。提案された連絡先及びカレンダーイベントは、まるでユーザが手動で入力したかのように検索可能であり、ユーザは、提案された連絡先及びカレンダーイベントを追加又は無視(例えば、拒否)することを選択できる。このようにして、ユーザの連絡先及びカレンダーイベントを、労せずして、又は最小限の労力で維持することができるため、ユーザの時間を節約し、生産性を高め、より効率的なヒューマンマシンインタフェースを生み出すことができる。
2.1 提案された連絡先情報
図34-5Aは、一部の実施形態に係る、提案された連絡先の例示的なデータアーキテクチャ34_502Aを示す。図34-5Aに示すとおり、電子デバイス34_500は、メッセージ34_510からの連絡先情報34_520Aを、対応する連絡先34_530Aと関連付ける(例えば、記憶する)ことができる。メッセージ34_510は、電子メール、インスタントメッセージ、デバイス34_500上のアプリケーションを介したメッセージングなど、デバイス34_500のユーザによって送信又は受信できる任意の種類のメッセージを含んで良く、メッセージ34_510に対する任意の添付を含んでも良い。
連絡先情報34_520Aは、エンティティの名前、電話番号、住所、事業所又はソーシャルネットワーキングハンドルなど、アドレス帳データベース内の連絡先エントリと一般に関連付けられた情報を含み得る。連絡先エントリは、個人、グループ、組織、会社などを含み得るエンティティによって編成又はインデックス化されるのが典型的である。連絡先情報34_520Aは、連絡先モジュール137など、そのアプリケーションが連絡先情報34_520Aを処理するために認識できる任意の好適な形式で記憶することができる。連絡先情報34_520は、他のクライアントとのネットワークを介した更新又は同期を可能にするために、CardDAVプロトコルなどの標準プロトコルに従ってフォーマットすることもできる。
一部の実施形態において、識別された連絡先情報34_520Aは、相互に排他的な3つの状態、即ち、提案状態34_540、追加状態34_550、及び拒否状態34_560のうちのいずれか1つの状態で連絡先34_530Aと関連付けることができる。提案状態34_540は、ユーザが連絡先への連絡先情報34_520Aの追加をまだ確認も承認もしていない状態を反映することができる。追加状態34_550は、ユーザが連絡先への連絡先情報34_520Aの追加を確認又は承認した状態を反映することができる。拒否状態34_560は、ユーザが連絡先への連絡先情報34_520Aの追加を拒否した状態を反映することができる。連絡先34_530Aは、関連付けられた全ての連絡先情報が同じ状態に属する場合に、この3つの状態のいずれか1つと関連付けることもできる。
一部の実施形態において、追加状態34_550は、デバイス34_500がデフォルトの状態として扱うことができる。つまり、追加状態34_550にあることを示すために追加データをかかる連絡先と関連付ける必要はない。例えば、デバイス34_500上でユーザが追加した連絡先は、デフォルトで34_550に設定することができる。
追加状態34_550がデフォルトの状態として扱われる実施形態において、デバイス34_500は、連絡先情報34_520Aが提案状態34_540又は拒否状態34_560のどちらかに属することを示すために、データを連絡先情報34_520Aと関連付けることができる。このデータは、連絡先情報34_520Aを処理するアプリケーションが、連絡先情報34_520Aが提案状態34_540又は拒否状態34_560のどちらかにあることを認識するために使用できる任意の好適な形式(メタデータなど)をとることができる。
デバイス34_500は、連絡先34_530A及び関連付けられた全ての連絡先情報が提案状態34_540又は拒否状態34_560のどちらかに属することを示すために、データを連絡先34_530Aと関連付けることもできる。
デバイス34_500は、(例えば、デバイス34_500上で実行中のアプリケーションを介して)連絡先情報34_520Aを提案状態34_540で記憶することにより、提案された連絡先情報を連絡先の検索に含めることができる。ユーザの混乱を避けるために、デバイス34_500は、(例えば、ラベル付け又は強調を介して)視覚的なインジケーションを提供することにより、及び/又は(例えば、ユーザに追加入力を提供した後でないとユーザが連絡先情報34_520Aに働きかけられないようにすることによって)ユーザが連絡先情報34_520Aに直接働きかけることを防ぐことにより、連絡先情報34_520Aが提案状態34_540にあることをユーザに示すこともできる。入力は、タッチ、マウス、スピーチなど、任意の好適な入力方法を表し得る。
デバイス34_500は、連絡先情報34_520Aを拒否状態34_560で記憶することにより、以前に提案された連絡先情報であって、ユーザが拒否した連絡先情報を記憶して、ユーザに再びその連絡先を提案しないようにすることができる。拒否状態34_560の連絡先情報34_520Aは、追加状態34_550及び提案状態34_540の連絡先情報を処理するアプリケーションによって無視することができる。
デバイス34_500は、連絡先情報34_520Aをデバイス34_500上にローカルに記憶することができ、連絡先情報34_520Aが提案状態34_540から追加状態34_550に変更されるまで、リモートデータベースに対して連絡先情報34_520Aを同期させないようにすることができる。他の実施形態においては、連絡先情報34_520Aを、提案状態34_540にある間にリモートデータベースに対して更新することができる。
デバイス34_500は、メッセージ34_510内の構造化コンテンツ又は非構造化コンテンツから連絡先情報34_520Aを識別することができる。構造化コンテンツとは、オンライン旅行代理店によって提供される、航空便、ホテル及び/又は自動車の予約情報を同じ定義済みの方法で(例えば、同じHTML構造を使用して)記載した自動電子メールなど、定義済みのフォーマットに従って配置された正式な編成又は構造を有するコンテンツのことである。一部の実施形態においては、構造化コンテンツから連絡先情報34_520Aを識別するために、デバイス34_500が、かかるメッセージによって提供される特定の形式の連絡先情報を認識するように構成されたテンプレートを使用することができる。一部の実施形態において、デバイス34_500は、ネットワーク経由でこれらのテンプレートを追加及び/又は更新することができる。
非構造化コンテンツとは、自然言語のコンテンツ(例えば、彼らが新しい番号を手に入れたと誰かがメッセージの中で言っているなど)や電子メール署名など、正式な編成又は構造を持たないコンテンツのことである。非構造化コンテンツから連絡先情報34_520Aを識別するために、デバイス34_500は、「新しい番号を手に入れた、それは<番号>」のような特定の句など、連絡先情報への定義済みの参照を識別するように構成されているデータ検出部を使用することができる。デバイス34_500は、これらのデータ検出部をネットワーク経由で追加及び/又は更新することができる。デバイス34_500は、デバイス34_500上(例えば、アドレス帳データベース内)の連絡先情報を、デバイス34_500上(例えば、メッセージ内)の連絡先情報と関連付けられた言語と相関させることにより、データ検出部が依拠する定義済みの参照を改善することができる。その後、この相関言語を使用して、定義済みの参照を以降の使用に向けて洗練させることができる。デバイス34_500によって分析されたメッセージコンテンツは、メッセージメタデータなど、デバイス34_500によって認識可能な任意の情報を含み得る。
2.2 提案されたイベント情報
図34-5Bは、一部の実施形態に係る提案されたカレンダーイベントの例示的なデータアーキテクチャ34_502Bを示す。図34-5Bに示すとおり、電子デバイス34_500は、メッセージ34_510からの連絡先情報34_520Bを、対応するカレンダーイベント34_530Bと関連付ける(例えば、記憶する)ことができる。メッセージ34_510は、電子メール、インスタントメッセージ、デバイス上のアプリケーションを介したメッセージングなど、デバイス34_500のユーザによって送信又は受信できる任意の種類のメッセージを含んで良く、メッセージに対する任意の添付を含み得る。
イベント情報34_520Bは、時間、日付、場所など、カレンダデータベース内のカレンダエントリと一般に関連付けられた情報を含み得る。イベント情報34_520Bは、カレンダモジュール148などのアプリケーションが、イベント情報34_520Bを処理するために認識できる任意の好適な形式で記憶することができる。イベント情報34_520Bは、他のクライアントとのネットワークを介した更新又は同期を可能にするために、CalDAVプロトコルなどの標準プロトコルに従ってフォーマットすることもできる。
一部の実施形態において、識別されたカレンダー情報34_520Bは、相互に排他的な3つの状態、即ち、提案状態34_540、追加状態34_550、及び拒否状態34_560のうちのいずれか1つの状態でカレンダーイベント34_530Bと関連付けることができる。提案状態34_540は、ユーザがカレンダーイベントへのイベント情報34_520Bの追加をまだ確認も承認もしていない状態を反映することができる。追加状態34_550は、ユーザがカレンダーイベントへのイベント情報34_520Bの追加を確認又は承認した状態を反映することができる。拒否状態34_560は、ユーザがカレンダーイベントへのイベント情報34_520Bの追加を拒否した状態を反映することができる。カレンダーイベント34_530Bは、関連付けられた全てのカレンダーイベント情報が同じ状態に属する場合に、この3つの状態のいずれか1つと関連付けることもできる。
一部の実施形態において、追加状態34_550は、デバイス34_500がデフォルトの状態として扱うことができる。つまり、追加状態34_550にあることを示すために追加データをかかるカレンダーイベントと関連付ける必要はない。例えば、デバイス34_500上でユーザが追加したカレンダーイベントは、デフォルトで34_550に設定することができる。
追加状態34_550がデフォルトの状態として扱われる実施形態において、デバイス34_500は、イベント情報34_520Bが提案状態34_540又は拒否状態34_560のどちらかに属することを示すために、データをイベント情報34_520Bと関連付けることができる。このデータは、イベント情報34_520Bを処理するアプリケーションが、イベント情報34_520Bが提案状態34_540又は拒否状態34_560のどちらかにあることを認識するために使用できる任意の好適な形式(メタデータなど)をとることができる。
デバイス34_500は、カレンダーイベント34_530B及び関連付けられた全てのイベント情報が提案状態34_540又は拒否状態34_560のどちらかに属することを示すために、データをカレンダーイベント34_530Bと関連付けることもできる。
デバイス34_500は、(例えば、デバイス34_500上で実行中のアプリケーションを介して)イベント情報34_520Bを提案状態34_540で記憶することにより、提案されたイベント情報をカレンダーイベントの検索に含めることができる。ユーザの混乱を避けるために、デバイス34_500は、(例えば、ラベル付け又は強調を介して)視覚的なインジケーションを提供することにより、及び/又は(例えば、ユーザに追加入力を提供した後でないとユーザがイベント情報34_520Bに働きかけられないようにすることによって)ユーザがイベント情報34_520Bに直接働きかけることを防ぐことにより、イベント情報34_520Bが提案状態34_540にあることをユーザに示すこともできる。入力は、タッチ、マウス、スピーチなど、任意の好適な入力方法を表し得る。
デバイス34_500は、イベント情報34_520Bを拒否状態34_560で記憶することにより、以前に提案されたイベント情報であって、ユーザが拒否したイベント情報を記憶して、ユーザに再びそのイベントを提案しないようにすることができる。拒否状態34_560のイベント情報34_520Bは、追加状態34_550及び提案状態34_540のイベント情報を処理するアプリケーションによって無視することができる。
デバイス34_500は、イベント情報34_520Bをデバイス34_500上にローカルに記憶することができ、イベント情報34_520Bが提案状態34_540から追加状態34_550に変更されるまで、リモートデータベースに対してイベント情報34_520Bを同期させないようにすることができる。他の実施形態においては、イベント情報34_520Bを、提案状態34_540にある間にリモートデータベースに対して更新することができる。
デバイス34_500は、メッセージ34_510内の構造化された内容又は構造化されていない内容からイベント情報34_520Bを識別することができる。構造化コンテンツとは、オンライン旅行代理店によって提供される、航空便、ホテル及び/又は自動車の予約情報を同じ定義済みの方法で(例えば、同じHTML構造を使用して)記載した自動電子メールなど、定義済みのフォーマットに従って配置された正式な編成又は構造を有するコンテンツのことである。一部の実施形態においては、構造化コンテンツからイベント情報34_520Bを識別するために、デバイス34_500は、かかるメッセージによって提供される特定の形式のイベント情報を認識するように構成されたテンプレートを使用することができる。一部の実施形態において、デバイス34_500は、ネットワーク経由でこれらのテンプレートを追加及び/又は更新することができる。
非構造化コンテンツとは、自然言語のコンテンツ(例えば、彼らある時にどこかであなたに会ったと誰かがメッセージの中で言っているなど)や電子メール署名など、正式な編成又は構造を持たないコンテンツのことである。非構造化コンテンツからイベント情報34_520Bを識別するために、デバイス34_500は、「<時期>に<住所>で会いましょう」のような特定の句など、イベント情報への定義済みの参照を識別するように構成されているデータ検出部を使用することができる。デバイス34_500は、これらのデータ検出部をネットワーク経由で追加及び/又は更新することができる。デバイス34_500は、デバイス34_500上(例えば、カレンダーデータベース内)のイベント情報を、デバイス34_500上(例えば、メッセージ内)のイベント情報と関連付けられた言語と相関させることにより、データ検出部が依拠する定義済みの参照を改善することができる。その後、この相関言語を使用して、定義済みの参照を以降の使用に向けて洗練させることができる。デバイス34_500によって分析されたメッセージコンテンツは、メッセージメタデータなど、デバイス34_500によって認識可能な任意の情報を含み得る。
例示的なデータアーキテクチャ34_520A及び34_520Bは同じでも異なっても良いということを認識すべきである。例えば、提案された連絡先に対し、提案されたカレンダーイベントの場合と同じ単一のデータアーキテクチャを使用することができる。代替として、あるデータアーキテクチャを、提案された連絡先に対して使用することができる一方で、別の異なるデータアーキテクチャを、提案されたカレンダーイベントに対して使用することもできる。
また、メッセージ34_510を処理できる対象が、提案された連絡先のみ、提案されたカレンダーイベントのみ、又は提案された連絡先と提案されたカレンダーイベントとの両方であることも認識すべきである。メッセージ34_510は、提案された連絡先と提案されたカレンダーイベントとの両方に対して処理される場合、提案された連絡先及び提案されたカレンダーイベントに対して連続又は並行して処理することができる。例えば、メッセージ34_510は、提案された連絡先に対して先に処理し、次に、提案されたカレンダーイベントに対して処理することができる。代替として、メッセージ34_510及びメッセージ34_510のコピーを、提案された連絡先及び提案されたカレンダーイベントに対して並行して処理することができる。
3.ユーザインタフェース及び関連プロセス
図34-6A~図34-13は、デバイス34_500上で実装され得るユーザインタフェース(「UI」)及び関連プロセスの実施形態を示す。一部の実施形態において、デバイス34_500はデバイス100(図1A)に対応する。
図34-6A及び図34-6Gは、一部の実施形態に係る、提案された連絡先及びカレンダーイベントを提供するための例示的なユーザインタフェースを示す。
特に、図34-6Aは、例えば、上述のようにメッセージを処理した後など、提案された連絡先情報(即ち、提案状態34_540の連絡先情報)を有する連絡先に対応するユーザインタフェースの連絡先モジュール137などによる表示を示す。この例において、連絡先は、ジョン・アップルシードという名前の個人と関連付けられており、会社名(「エニー株式会社」)、勤務先電話番号(「405-555-1234」)、及び携帯番号(「405-123-6633」)を含む。会社名及び勤務先電話番号は確認済みの連絡先情報項目であり、追加状態34_550に属する。携帯番号は提案された連絡先情報項目であり、提案状態34_540に属する。
デバイス34_500は、ユーザインタフェース内のユーザインタフェースオブジェクト34_600(例えば、単語「提案」)を提供することで、携帯番号が提案された連絡先情報項目であり、ユーザによって確認された情報項目ではないことをユーザに示すことができる。携帯番号が提案された連絡先情報項目であることを示すラベル、アイコン、又は他の視覚的インジケーションなど、任意の適切なユーザインタフェースオブジェクトをこの目的で使用することができる。同じ連絡先が、図34-6Aの場合と同様に、提案状態34_540の連絡先情報項目と、追加状態34_550の連絡先情報項目とを含む場合、デバイス34_500は、提案状態34_540の項目を、追加状態34_550の全項目の下に、又は追加状態34_550の全項目に対して優先順位の低い位置に表示することができる。
デバイス34_500は、この初期ユーザインタフェースから提案された番号でジョン・アップルシードに電話をかけるためのアプリケーション(例えば、電話モジュール138)をユーザが直接呼び出せないようにすることもできる。例えば、デバイス34_500は、グレーアウトされた外観(非図示)など、確認済みの連絡先情報項目の外観とは異なる視覚的外観を有する提案された番号と関連付けられたテキスト及び/又は領域を提供して、提案された番号をユーザが選択してもその番号に直接電話はかからないということを示すことができる。むしろ、提案された番号をユーザが選択すると、デバイス34_500は、現在のユーザインタフェースを、提案された番号をユーザが確認した上で電話することのできる第2のユーザインタフェースと置き換えることができる。
図34-6Bに示すとおり、第2のユーザインタフェース(「提案を確認」とラベル付けされている)は、提案された番号と関連付けられたユーザインタフェースオブジェクト34_602(「連絡先に追加」とラベル付けされている)を含むバナー形態の提案部分34_606を含む。ユーザがユーザインタフェースオブジェクト34_602を選択することにより、デバイス34_500に、提案された番号を追加状態34_550の連絡先に追加させる(例えば、提案番号の状態を提案状態34_540から追加状態34_550に変更する)ことができる。この後続のユーザインタフェースにおいて、ユーザが携帯番号の隣に表示された電話アイコンなど、携帯番号又は同様のインジケーションをユーザが選択すると、デバイス34_500は、アプリケーション(例えば、電話モジュール138)を呼び出して、提案された番号でジョン・アップルシードに電話をかけることができる。一部の実施形態において、ユーザがユーザインタフェースオブジェクト34_602を選択せず、携帯番号又は同様のインジケーションを選択した場合、デバイス34_500は、携帯番号を提案状態34_540に保つことができる(例えば、提案された番号をユーザが呼び出すことが、その連絡先に対する提案された番号の暗黙的承認として扱われない)。他の実施形態においては、たとえユーザがユーザインタフェースオブジェクト34_602を選択しなかったとしても、デバイス34_500は、ユーザが携帯番号を選択すると、その携帯番号の状態を追加状態34_550に変更することができる(例えば、提案された番号をユーザが呼び出すことが、その連絡先に対する提案された番号の暗黙的承認として扱われる)。
図34-6Bの第2のユーザインタフェースは、提案された番号と関連付けられたユーザインタフェースオブジェクト34_604(「無視」とラベル付けされている)も含む。ユーザがユーザインタフェースオブジェクト34_604を選択することにより、デバイス34_500に、ユーザインタフェースオブジェクト34_602の表示を停止させることができ、これにより、連絡先にその番号を追加するオプションが削除される。ユーザインタフェースオブジェクト34_604を選択すると、デバイス34_500は、提案された番号の状態を、提案状態34_540から拒否状態34_560に変更することができる。拒否状態34_560では、デバイス34_500を、この連絡先と関連付けられている提案された番号を今後は表示又は提案しないように構成することができる。
加えて、図34-6Bの第2のユーザインタフェースは、デバイス34_500によって提案された番号が識別される基となったメッセージの一部分を含むメッセージ部分34_608(「関連する電子メール」とラベル付けされている)を含む。そのため、提案された連絡先情報を確認するためのインタフェースを提供する際に、図34-6Bのユーザーインタフェースは、提示された連絡先情報と関連付けられたメッセージコンテキストをユーザに提供することができる。図34-6Bに示すとおり、デバイス34_500は、携帯番号を有する部分に関連する電子メールの限られたセクションを表示することができる。ユーザがメッセージの表示部分を選択すると、デバイス34_500は、メッセージアプリケーション(例えば、電子メールクライアントモジュール140)に、そのユーザに対して電子メール全体を開かせることができる。一部の実施形態においては、電子メール全体を、図34-6Dに示すユーザインタフェースに対応するユーザインタフェースに、提案された連絡先情報と一緒に表示することができる。
図34-6Cは、ユーザが図34-6Aの「編集」ユーザインタフェースオブジェクトを選択したことに応答して表示されるユーザインタフェースを示す。この編集ユーザインタフェースにおいて、ユーザは、ユーザインタフェースオブジェクト34_610によって表された提案番号に直接電話をかけることもできる。この番号は、強調(即ち太字で)表示されており、その番号が提案状態34_540にあることを示す。任意の好適な視覚的インジケーションを使用して、ユーザインタフェースオブジェクト34_610が提示状態34_540にあることを示すことができる。
図34-6Dは、デバイス34_500上のメッセージ(例えば、電子メールクライアントモジュール140によって表示された電子メール)を開いた時にユーザが閲覧できる画面を示しており、この画面では、デバイス34_500がメッセージ内の提案された連絡先情報を識別した状態が示されている。図34-6Dのユーザインタフェースは、提案部分34_612とメッセージ部分34_614とを含む。メッセージ部分34_614は、デバイス34_500によって受信されたメッセージの内容を含む。提案部分34_612は、識別されたエンティティ(「ジョン・アップルシード」)に対応するユーザインタフェースオブジェクトと、識別された連絡先情報(「405-123-6633」)に対応するユーザインタフェースオブジェクトと、識別された連絡先情報と関連付けられたユーザインタフェースオブジェクト34_618(「連絡先に追加」とラベル付されている)と、を含み、ユーザインタフェースオブジェクト34_618が選択されると、デバイスが、提案された番号を追加状態34_550の連絡先に追加する。提案部分34_612は、識別された連絡先情報と関連付けられたユーザインタフェースオブジェクト34_620(「無視」とラベル付けされている)を含み、このユーザインタフェースオブジェクトが選択されると、デバイス34_500が、識別された連絡先情報の状態を提案状態34_540から拒否状態34_560に変更する。拒否状態34_560では、デバイス34_500を、この連絡先と関連付けられている提案された連絡先情報を今後は表示又は提案しないように構成することができる。「無視」及び「連絡先に追加」タイルの上にある提案部分34_612の識別された連絡先情報34_616を選択することにより、識別されたエンティティと関連付けられた連絡先に対応するユーザインタフェースを起動することができる。例えば、デバイス34_500は、本実施形態の図34-6Aに示されているユーザインタフェースに対応するユーザインタフェース内に「ジョン・アップルシード」の連絡先情報を提示することができる。
図34-6Eは、デバイス34_500上のメッセージ(例えば、電子メールクライアントモジュール140によって表示された電子メール)を開いた時にユーザが閲覧できる画面を示しており、この画面では、デバイス34_500がメッセージ内の提示されたイベント情報を識別した状態が示されている。図34-6Eのユーザインタフェースは、提案部分34_620とメッセージ部分34_622とを含む。メッセージ部分34_622は、デバイス34_500によって受信されたメッセージの内容を含む。提案部分34_620は、識別されたイベント情報(「Dinner」、「Any Sushi Bar」、「Fri,March 7th」、又は「9:50PM」とラベル付けされている)と、識別されたイベント情報と関連付けられたユーザインタフェースオブジェクト34_626(「カレンダーに追加」とラベル付けされている)と、を含み、ユーザインタフェースオブジェクト34_626が選択されると、デバイス34_500が、提案されたイベント情報を追加状態34_550のカレンダーイベントに追加する。提案部分34_620は、デバイス34_500に、識別されたイベント情報の状態を提案状態34_540から拒否状態34_560へと変更させるユーザインタフェースオブジェクト34_628(「無視」とラベル付けされている)を含む。拒否状態34_560では、デバイス34_500を、このカレンダーイベントと関連付けられている提案されたイベント情報を今後は表示又は提案しないように構成することができる。「無視」及び「カレンダーに追加」タイルの上にある提案部分34_620の識別されたイベント情報34_624を選択することにより、(例えば、連絡先モジュール137によって表示された)識別されたイベント情報と関連付けられたカレンダーイベントに対応するユーザインタフェース(非図示)を呼び出すことができ、このユーザインタフェースを通じて、ユーザは、ユーザインタフェースオブジェクトを選択して、提案されたイベント情報を追加状態34_550のカレンダーイベントに追加することができる。
図34-6Fは、デバイス34_500上のメッセージ(例えば、電子メールクライアントモジュール140によって表示された電子メール)を開いた時にユーザが閲覧できる画面を示しており、この画面では、デバイス34_500がメッセージ内の複数の提案された連絡先及び/又はカレンダーイベントを識別した状態が示されている。図34-6Fのユーザインタフェースは、提案部分34_630とメッセージ部分34_632とを含む。メッセージ部分34_632は、デバイス34_500によって受信されたメッセージの内容を含む。提案部分34_630は、選択されると、デバイス34_500に、図34-6Gに示す識別された連絡先又はイベント情報の複数のインスタンスのリストを有する後続のユーザインタフェースを表示させるユーザ選択可能領域を更に含む。図34-6Gの提案の全てを図34-6Fのユーザインタフェースに組み込むのではなく、図34-6Fの提案部分34_630を単一のバナーに割り当てることにより、図34-6Fの提案部分が、メッセージ部分内のメッセージをユーザが容易に閲覧・判読できることに干渉しないようになる。
図34-6Gは、図34-6Fのユーザインタフェースと関連付けられたメッセージ内の識別された提案された連絡先及びイベント情報のリストを有する後続のユーザインタフェースを示す。図34-6Gに示すとおり、これらの提案はタイプ別に編成され(例えば、提案されたカレンダーイベントが一緒にグループ化され、提案された連絡先が一緒にグループ化される)、各提案は、上述の「無視」、「連絡先に追加」、及び「カレンダーに追加」を含む。図34-6Gのユーザインタフェースは、選択されると、デバイス34_500に、識別された連絡先又はイベント情報の複数のインスタンスのグループ(例えば、図34-6Gに示す2つの提案されたカレンダーイベント)の各々を対応する追加状態34_550の連絡先又はカレンダーイベントに追加させるユーザインタフェースオブジェクト34_634(「全てを追加」)も含む。
図34-7A及び図34-7Bは、一部の実施形態に係る、提案された連絡先を生成するための例示的なプロセスのフロー図を示す。このプロセスは、電子デバイス(例えば、デバイス34_500)で実行することができる。
電子デバイスは、メッセージ(例えば、図34-6D、メッセージ部分34_614内の電子メール)を受信し(34_702)、受信したメッセージ内で、エンティティ(例えば、図34-6Dの「ジョン・アップルシード」)と、エンティティと関連付けられた連絡先情報(例えば、図34-6D、「405-123-6633」)と、を識別することができる(34_704)。デバイスは、識別されたエンティティと関連付けられた連絡先(例えば、図34-5A、連絡先34_530A)がデータベース内の複数の連絡先(例えば、アドレス帳データベースなど、デバイス34_500上のストレージ)の中に存在しないと判断することができ(34_722)、この判定に応答して(34_724)、デバイスは、エンティティと関連付けられた連絡先を生成することができ、生成された連絡先は、連絡先情報と、生成された連絡先が(例えば、提案状態34_540の)提案された連絡先であるというインジケーション(例えば、メタデータ)と、を含む。なお、デバイスが、「ジョン・アップルシード」という連絡先を提案された連絡先として生成すると、その連絡先内の連絡先情報の各項目を、連絡先情報の提案された項目としてインジケーションし、提案状態34_540で記憶すること、又は連絡先全体を提案された連絡先としてインジケーションし、提案状態34_540で記憶することができる。また、受信及び送信メッセージなど、デバイスに存在する任意のメッセージを、開示されたプロセスを使用して分析できるということにも留意されたい。
一部の実施形態において、識別されたエンティティは名前であり(34_706)、識別された連絡先情報は、電話番号、住所、ビジネス又はソーシャルネットワーキングハンドルである。
一部の実施形態において、デバイスは、メッセージ内の署名ブロックを認識することによって、メッセージ内で非構造化コンテンツを識別することができる。例えば、メッセージ内のエンティティ及び関連付けられた連絡先情報を識別するために、デバイスは、メッセージの署名ブロックを識別し(34_708)、識別された署名ブロックを分析して、そのエンティティ及び連絡先情報を把握することができる。メッセージは電子メールを含み得る(34_710)。そして署名ブロックは電子メール署名であり得る。電子メールは、電子メールスレッド内にある1つ以上の過去の電子メールを含み得る(34_712)。そして電子メール署名の識別はは、電子メールスレッド内にある1つ以上の過去の電子メールを分析することを含み得る。電子メールの引用層を除去することにより、デバイスは、電子メールスレッド内にある種々の電子メールに記載されている連絡先情報の場所を誤って関連付けることを避けることができる。
一部の実施形態において、デバイスは、データ検出部を用いて定義句を検索することにより、メッセージ内で非構造化コンテンツを識別することができる。例えば、メッセージ内のエンティティ及び関連する連絡先情報を識別するために、デバイスは、既定の句の集合に基づいてメッセージ内で1つ以上の句を識別し(34_714)、1つ以上の識別された句を分析して、そのエンティティ及び連絡先情報を把握することができる。デバイスは、ネットワーク経由で既定の句の集合を更新することができ(34_716)、これにより、デバイスは、引き続き正確な句を使用することができる。デバイスは、提案された連絡先を拒否する要求の結果として、既定の句のうちの1つ以上をダウングレードすることもできる(34_718)。言い換えると、ユーザが特定の句を使用して識別された提案を拒否し続ければ、それらの句が不正確であるというインジケーションになり得る。デバイスはまた、データベース内の連絡先情報(メッセージ、カレンダーイベントなど)を、電子デバイス上の連絡先情報と関連付けられた言葉と相関させることにより、既定の句のうちの1つ以上を生成することができる(34_720)。このようにして、デバイスは、連絡先情報を含むメッセージ内のどの言葉によって、ユーザがその連絡先情報を使用して連絡先を作成又は更新することになったのか、などを判定することができる。
一部の実施形態において、提案された連絡先は、図34-5Aのデータアーキテクチャを考慮して検索可能であり得る。例えば、デバイスは、(例えば、ユーザがデバイス上のアプリケーションを介して連絡先を検索することによって)連絡先を求める要求を受信し(34_726)、この連絡先要求に応答して、提案された連絡先を検索することができる。
一部の実施形態において、デバイスは、連絡先の生成に応答して、提案された連絡先をネットワーク経由でリモートデータベースに記憶するのを差し控えることができる(34_728)。例えば、提案された連絡先が提案状態34_540にある場合、デバイスは、ネットワーク経由で複数のクライアント上で連絡先を更新できるようにする更新又は同期サービス(例えば、デバイス上のアプリケーション)に連絡先をプッシュするのを差し控えることができる。
一部の実施形態において、デバイスは、提案された連絡先(例えば、図34-6D、「連絡先に追加」34_618)をデータベースに追加する要求を受信し(34_730)、その要求に応答して、生成された連絡先が提案された連絡先であるというインジケーション(例えば、連絡先の状態を提案状態34_540から追加状態34_550に変更すること)をせずに、生成された連絡先をデータベースに記憶することができる。提案された連絡先をデータベースに追加する要求に応答して、デバイスは、生成された連絡先を、例えば、更新又は同期サービスにプッシュすることによって、生成された連絡先が提案された連絡先であるというインジケーションをせずにネットワーク経由でリモートデータベースに記憶することができる(34_732)。
一部の実施形態において、デバイスは、提案された連絡先を拒否する要求(例えば、図34-6D、「無視」34_620)を受信し(34_734)、その要求に応答して、提案された連絡先を拒否することで、そのエンティティ及び連絡先情報が今後のメッセージ内で識別されたことによってその提案された連絡先が今後生成されることのないようにすることができる。これは、拒否された連絡先を拒否状態34_560で記憶することによって実装できるため、デバイスは、既に拒否された内容を知ることができる。
図34-8A及び図34-8Bは、一部の実施形態に係る、提案された連絡先情報項目で既存の連絡先を更新するための例示的なプロセスのフロー図を示す。このプロセスは、電子デバイス(例えば、デバイス34_500)で実行することができる。
電子デバイスは、メッセージ(例えば、図34-6D、メッセージ部分34_614内の電子メール)を受信し(34_802)、受信したメッセージ内で、エンティティ(例えば、図34-6Dの「ジョン・アップルシード」)と、エンティティと関連付けられた連絡先情報の項目(例えば、図34-6D、「405-123-6633」)と、を識別することができる(34_804)。デバイスは、識別されたエンティティと関連付けられた連絡先(例えば、図34-5A、連絡先34_530A)がデータベース内の複数の連絡先の中に存在することと、その連絡先が、識別された連絡先情報項目を含まないことと、を判断することができる(34_822)。この判断に応答して(34_824)、デバイスは、連絡先を更新して、この連絡先情報項目と、この連絡先情報項目が提案された連絡先情報項目である(例えば、提案状態34_540になっている)というインジケーション(例えば、メタデータ)と、を含めることができる。また、受信及び送信メッセージなど、デバイスに存在する任意のメッセージを、開示されたプロセスを使用して分析できるということにも留意されたい。
一部の実施形態において、識別されたエンティティは名前であり(34_806)、識別された連絡先情報項目は、電話番号、住所、ビジネス又はソーシャルネットワーキングハンドルである。
一部の実施形態において、デバイスは、メッセージ内の署名を認識することにより、メッセージ内で非構造化コンテンツを識別することができる。例えば、メッセージ内のエンティティ及び関連付けられた連絡先情報項目を識別するために、デバイスは、メッセージの署名ブロックを識別し(34_808)、識別された署名ブロックを分析して、そのエンティティ及び連絡先情報項目を把握することができる。メッセージは電子メールを含み得る(34_810)。そして署名ブロックは電子メール署名であり得る。電子メールは、電子メールスレッド内にある1つ以上の過去の電子メールを含み得る(34_812)。そして電子メール署名の識別は電子メールスレッド内にある1つ以上の過去の電子メールを分析することを含み得る。電子メールの引用層を除去することにより、デバイスは、電子メールスレッド内にある種々の電子メールに記載されている連絡先情報の場所を誤って関連付けることを避けることができる。
一部の実施形態において、デバイスは、データ検出部を用いて定義句を検索することにより、メッセージ内で非構造化コンテンツを識別することができる。例えば、メッセージ内のエンティティ及び関連する連絡先情報項目を識別するために、デバイスは、既定の句の集合に基づいてメッセージ内で1つ以上の句を識別し(34_814)、1つ以上の識別された句を分析して、そのエンティティ及び連絡先情報項目を把握することができる。デバイスは、ネットワーク経由で既定の句の集合を更新することができ(34_816)、これにより、引き続き正確な句を使用することができる。デバイスは、提案された連絡先情報項目を拒否する要求の結果として、既定の句のうちの1つ以上をダウングレードすることもできる(34_818)。言い換えると、ユーザが特定の句を使用して識別された提案を拒否し続ければ、それらの句が不正確であるというインジケーションになり得る。デバイスはまた、データベース内の連絡先情報(メッセージ、カレンダーイベントなど)を、電子デバイス上の連絡先情報と関連付けられた言葉と相関させることにより、既定の句のうちの1つ以上を生成することができる(34_820)。このようにして、デバイスは、連絡先情報を含むメッセージ内のどの言葉によって、ユーザがその連絡先情報を使用して連絡先を作成又は更新することになったのか、などを判断することができる。
一部の実施形態において、提案された連絡先は、図34-5Aのデータアーキテクチャを考慮して検索可能であり得る。例えば、デバイスは、(例えば、ユーザがデバイス上のアプリケーションを介して連絡先を検索することによって)連絡先を求める要求を受信し(34_826)、この連絡先要求に応答して、提案された連絡先情報項目を検索することができる。
一部の実施形態において、デバイスは、連絡先の更新に応答して、提案された連絡先情報項目をネットワーク経由でリモートデータベースに記憶するのを差し控えることができる(34_828)。提案された連絡先情報項目が提案状態34_540にある場合、デバイスは、ネットワーク経由で複数のクライアント上で連絡先を更新できるようにする更新又は同期サービス(例えば、デバイス上のアプリケーション)に連絡先情報項目をプッシュするのを差し控えることができる。
一部の実施形態において、デバイスは、提案された連絡先情報項目(例えば、図34-6B、「連絡先に追加」34_602)をデータベースに追加する要求を受信し(34_830)、その要求に応答して、その連絡先情報項目が提案された連絡先情報項目であるというインジケーション(例えば、連絡先情報の状態を提案状態34_540から追加状態34_550に変更すること)をせずに、更新された連絡先をデータベースに記憶することができる。提案された連絡先情報項目をデータベースに追加する要求に応答して、デバイスは、生成された連絡先を、例えば、更新/同期サービスにプッシュすることによって、その連絡先情報項目が提案された連絡先情報項目であるというインジケーションをせずに、更新された連絡先をネットワーク経由でリモートデータベースに記憶することができる(34_832)。
一部の実施形態において、デバイスは、提案された連絡先情報項目を拒否する要求(例えば、図34-6B、「無視」34_604)を受信し(34_834)、その要求に応答して、提案された連絡先情報項目を拒否することで、そのエンティティ及び連絡先情報項目が今後のメッセージ内で識別された結果としてその提案された連絡先情報項目が今後更新されないようにすることができる。これは、拒否された連絡先情報を拒否状態34_560で記憶することによって実装することができるため、デバイスは、既に拒否された内容を知ることができる。
図34-9A及び図34-9Bは、一部の実施形態に係る、提案された連絡先情報を有する連絡先を表示するための例示的なプロセスのフロー図を示す。このプロセスは、ディスプレイを備える電子デバイス(例えば、デバイス34_500)で実行することができる。
電子デバイスは、メッセージ(例えば、図34-6D、メッセージ部分34_614内の電子メール)を受信し(34_902)、受信したメッセージ内で、エンティティ(例えば、図34-6Dの「ジョン・アップルシード」)と、エンティティと関連付けられた連絡先情報(例えば、図34-6D、「405-123-6633」)と、を識別することができる(34_904)。デバイスは、識別された連絡先情報が提案された連絡先情報であるというインジケーション(例えば、メタデータ)を生成し(34_906)、そのエンティティと関連付けられた連絡先に対応する第1のユーザインタフェース(例えば、図34-6A)を表示することができる(34_908)。第1のユーザインタフェースは、識別された連絡先情報が提案された連絡先情報であることを示す生成されたインジケーションに基づく第1のユーザインタフェースオブジェクト(例えば、「提案」)を含み得る。
一部の実施形態において、デバイスは、提案された連絡先情報の選択に対応する入力がアプリケーションを呼び出してエンティティと連絡をとることができない(例えば、図34-6A、提案された番号を選択してもその番号に電話をかけない)ようにすることができる(34_910)。
一部の実施形態において、デバイスは、第1のユーザインタフェース内の提案された連絡先情報の選択に対応する入力を検出することができ(34_912)、検出に応答して、識別された連絡先情報と関連付けられた第2のユーザインタフェースオブジェクト(例えば、図34-6B、「連絡先に追加」34_602)を含む第2のユーザインタフェース(例えば、図34-6B)を表示することができ、このユーザインタフェースが選択されると、電子デバイスは、識別された連絡先情報をデータベースに追加する。第2のユーザインタフェースは、識別された連絡先情報と関連付けられた第3のユーザインタフェースオブジェクト(例えば、図34-6B、「無視」34_604)を含み得る(34_914)。このユーザインタフェースオブジェクトは、選択されると、電子デバイスに第2のユーザインタフェースオブジェクトの表示を停止させる。第2のユーザインタフェースを表示することにより、第1のユーザインタフェースを表示するのを停止することができる(34_916)。デバイスは、識別された連絡先情報をデータベースに追加したことに応答して、第1のユーザインタフェースオブジェクトを表示するのを停止することができる(34_918)。
一部の実施形態において、第2のユーザインタフェースは、メッセージ(例えば、図34-6B、「関連電子メール」)の少なくとも一部分を表示することができる(34_920)。デバイスは、表示されたメッセージの選択に対応する入力を検出し(34_922)、検出に応答して、メッセージ(例えば、図34-6D)を開くためのアプリケーション(例えば電子メールクライアントモジュール140)を呼び出すことができる。メッセージは電子メールであり得る(34_924)。そしてアプリケーションは電子メールアプリケーションであり得る。
一部の実施形態において、デバイスは、第2のユーザインタフェース内の提案された連絡先情報の選択に対応する入力を検出し(34_926)、検出に応答して、識別された連絡先情報を使用してそのエンティティと連絡をとるためのアプリケーション(例えば電話モジュール138)を呼び出すことができる。第2のユーザインタフェース内の提案された連絡先情報の選択に対応する入力の検出に応答して、デバイスは、識別された連絡先情報をデータベースに追加する(例えば、連絡先情報の状態を提案状態から34_540から追加状態34_550に変更する)ことができる(34_928)。デバイスは、識別された連絡先情報をデータベースに追加したことに応答して、第1のユーザインタフェースオブジェクトを表示するのを停止することができる(34_918)。
図34-10は、一部の実施形態に係る、メッセージを有する提案された連絡先情報を表示するための例示的なプロセスのフロー図を示す。このプロセスは、ディスプレイを備える電子デバイス(例えば、デバイス34_500)で実行することができる。
電子デバイスは、メッセージ(例えば、図34-6D、メッセージ部分34_614内の電子メール)を受信し(34_1002)、受信したメッセージ内で、エンティティ(例えば、図34-6Dの「ジョン・アップルシード」)と、エンティティと関連付けられた連絡先情報(例えば、図34-6D、「405-123-6633」)と、を識別することができる(34_1004)。メッセージは電子メールであり得る(34_1006)。識別されたエンティティは名前であり(34_1008)、識別された連絡先情報は、電話番号、住所、ビジネス又はソーシャルネットワーキングハンドルであり得る。
デバイスは、受信したメッセージに対応する第1のユーザインタフェース(例えば、図34-6D)を表示することができる(34_1010)。第1のユーザインタフェースは、電子デバイスによって受信されたメッセージの内容を含む第1の部分(例えば、図34-6D、メッセージ部分34_614)と、識別された連絡先情報に対応する第1のユーザインタフェースオブジェクト(例えば、図34-6D、「405-123-6633」)と、識別された連絡先情報に対応する第2のユーザインタフェースオブジェクト(例えば、図34-6D、「ジョン・アップルシード」)と、識別された連絡先情報と関連付けられた第3のユーザインタフェースオブジェクト(例えば、図34-6D、「連絡先に追加」34_618)と、を含む第2の部分(例えば、図34-6D、提案部分34_612)と、を含んでもよく、第3のユーザインタフェースオブジェクトは、選択されると、電子デバイスに、識別された連絡先情報をデータベースに追加させる(例えば、その連絡先情報を連絡先として記憶する)。第2の部分は、識別された連絡先情報と関連付けられた第4のユーザインタフェースオブジェクト(例えば、図34-6D、「無視」34_620)を含み得る(34_1012)。このユーザインタフェースオブジェクトは、選択されると、電子デバイスに第3のユーザインタフェースオブジェクトの表示を停止させる。
図34-11A及び図34-11Bは、一部の実施形態に係る提案されたカレンダーイベントを生成するための例示的なプロセスのフロー図を示す。このプロセスは、電子デバイス(例えば、デバイス34_500)で実行することができる。
電子デバイスは、メッセージ(例えば、図34-6E、メッセージ部分34_622内の電子メール)を受信し(34_1102)、受信したメッセージ内で、イベント情報(例えば、図34-6E、「Dinner」、「Any Sushi Bar」、「Fri,March 7th」、又は「9:50 PM」)を識別することができる(34_1104)。デバイスは、識別されたイベント情報と関連付けられたカレンダーイベント(例えば、図34-5B、カレンダーイベント34_530B)を生成することができ(34_1122)、生成されたカレンダーイベントは、生成されたカレンダーイベント情報と、生成されたカレンダーイベントが提案されたカレンダーイベントである(例えば、提案状態34_540である)というインジケーション(例えば、メタデータ)と、を含む。
一部の実施形態において、識別されたイベント情報は、日付と時刻である(34_1106)。一部の実施形態において、デバイスは、かかるメッセージによって提供された特定の形式のイベント情報を認識するように構成されたテンプレートを使用することにより、メッセージ内で構造化コンテンツを識別することができる。例えば、メッセージ内のイベント情報を識別するために、デバイスは、メッセージ内のコンテンツの形式を識別し(34_1108)、メッセージ内にあるコンテンツの形式のイベント情報を認識するように構成されている定義済みのテンプレートの集合からテンプレートを識別し、識別されたテンプレートを有するコンテンツを分析して、イベント情報を把握することができる。メッセージは電子メールを含み得る(34_1110)。そしてコンテンツは予約を含み得る(例えば、図34-6E)。デバイスは、ネットワーク経由で定義済みのテンプレートの集合を更新することができ(34_1112)、これにより、正確なテンプレートを使用し続けることができる。
一部の実施形態において、デバイスは、データ検出部を用いてイベント情報への参照を検索することにより、メッセージ内で非構造化コンテンツを識別することができる。例えば、メッセージ内のイベント情報を識別するために、デバイスは、日時に対する定義済みの参照の集合に基づいて、日時に対する1つ以上の参照をメッセージ内で識別し(34_1114)、その日時に対する1つ以上の識別された参照を分析して、イベント情報を把握することができる。
デバイスは、日時に対する定義済みの参照の集合をネットワーク経由で更新し(34_1116)、これにより、引き続き正確な参照を使用することができる。デバイスは、提案されたカレンダーイベントを拒否する要求の結果として、日時に対する定義済みの参照のうちの1つ以上をダウングレードすることができる(34_1118)。言い換えると、ユーザが日時に対する特定の参照を使用して識別された提案を拒否し続ければ、それらの参照が不正確であるというインジケーションになり得る。デバイスは、複数のカレンダーイベントを含むデータベース内のイベント情報を、電子デバイス上のイベント情報と関連付けられた言葉と相関させることにより、日時に対する定義済みの参照のうちの1つ以上を生成することができる(34_1120)。このようにして、デバイスは、イベント情報を含むメッセージ内のどの言葉によって、ユーザがそのイベント情報を使用してカレンダーイベントを作成又は更新することになったのか、などをより良好に判断することができる。
一部の実施形態において、提案されたカレンダーイベントは、図34-5A~図34-5Bのデータアーキテクチャを考慮して検索可能であり得る。例えば、デバイスは、(例えば、ユーザがデバイス上のアプリケーションを介してカレンダーイベントを検索することによって)カレンダーイベントを求める要求を受信し(34_1124)、このカレンダーイベント要求に応答して、提案されたカレンダーイベントを検索することができる。
一部の実施形態において、デバイスは、カレンダーイベントの生成に応答して、提案されたカレンダーイベントをネットワーク経由でリモートデータベースに記憶するのを差し控えることができる(34_1126)。例えば、提案されたカレンダーイベントが提案状態34_540にある場合、デバイスは、ネットワーク経由で複数のクライアント上でカレンダーイベントを更新できるようにする更新又は同期サービス(例えば、デバイス上のアプリケーション)にカレンダーイベントをプッシュするのを差し控えることができる。
一部の実施形態において、デバイスは、提案されたカレンダーイベント(例えば、図34-6E、「カレンダーに追加」34_626)を、複数のカレンダーイベントを含むデータベースに追加する要求を受信し(34_1128)、それに応答して、生成されたカレンダーイベントが提案されたカレンダーイベントであるというインジケーション(例えば、カレンダーイベントの状態を提案状態34_540から追加状態34_550に変更すること)をせずに、生成されたカレンダーイベントをデータベースに記憶することができる。提案されたカレンダーイベントをデータベースに追加する要求に応答して、デバイスは、生成されたカレンダーイベントを、例えば、更新又は同期サービスにプッシュすることによって、生成されたカレンダーイベントが提案されたカレンダーイベントであるというインジケーションをせずにネットワーク経由でリモートデータベースに記憶することができる(34_1130)。
一部の実施形態において、デバイスは、提案されたカレンダーイベントを拒否する要求(例えば、図34-6E、「無視」34_628)を受信し(34_1132)、その拒否要求に応答して、そのイベント情報が今後のメッセージ内で識別されたことによってその提案されたカレンダーイベントが今後生成されることのないようにすることができる。これは、拒否されたイベントを拒否状態34_560で記憶することによって実装できるため、デバイスは、既に拒否された内容を知ることができる。
図34-12は、一部の実施形態に係る、メッセージを有する提案されたイベント情報を表示するための例示的なプロセスのフロー図を示す。このプロセスは、ディスプレイを備える電子デバイス(例えば、デバイス34_500)で実行することができる。
電子デバイスは、メッセージ(例えば、図34-6E、メッセージ部分34_622内の電子メール)を受信し(34_1202)、受信したメッセージ内で、イベント情報(例えば、図34-6E、「Dinner」、「Any Sushi Bar」、「Fri,March 7th」、又は「9:50PM」)を識別することができる(34_1204)。メッセージは電子メールであり得る(34_1206)。識別されたイベント情報は、日付及び時刻であり得る(34_1208)。
デバイスは、受信したメッセージに対応する第1のユーザインタフェース(例えば、図34-6E)を表示することができる(34_1210)。第1のユーザインタフェースは、電子デバイスによって受信されたメッセージの内容を含む第1の部分(例えば、図34-6E、メッセージ部分34_622)と、識別されたイベント情報に対応する第1のユーザインタフェースオブジェクト(例えば、図34-6E、「Dinner」、「Any Sushi Bar」、「Fri,March 7th」、又は「9:50 PM」)と、識別されたイベント情報と関連付けられた第2のユーザインタフェースオブジェクト(例えば、図34-6E、「カレンダーに追加」34_626)と、を含む第2の部分(例えば、図34-6E、提案部分34_620)と、を含んでも良く、第2のユーザインタフェースオブジェクトは、選択されると、電子デバイスに、識別されたカレンダー情報を、複数のカレンダーイベントを含むデータベースに追加させる(例えば、そのイベント情報をカレンダーイベントとして記憶する)。第2の部分は、識別されたイベント情報と関連付けられた第3のユーザインタフェースオブジェクト(例えば、図34-6E、「無視」34_628)を含み得る(34_1212)。このユーザインタフェースオブジェクトは、選択されると、電子デバイスに第2のユーザインタフェースオブジェクトの表示を停止させる。
図34-13は、一部の実施形態に係る、複数の提案された連絡先又はイベント情報をメッセージとともに表示するための例示的なプロセスのフロー図を示す。
このプロセスは、ディスプレイを備える電子デバイス(例えば、デバイス34_500)で実行することができる。
電子デバイスは、メッセージ(例えば、図34-6F、メッセージ部分34_632内の電子メール)を受信し(34_1302)、受信したメッセージ内で、連絡先又はイベント情報の複数のインスタンス(例えば、図34-6F、添付の旅程における「2件のイベント、1件の連絡先」)を識別することができる(34_1304)。
デバイスは、受信したメッセージに対応する第1のユーザインタフェース(例えば、図34-6F)を表示することができる(34_1306)。第1のユーザインタフェースは、電子デバイスによって受信されたメッセージの内容を含む第1の部分(例えば、図34-6F、メッセージ部分34_632)と、選択されると、識別された連絡先又はイベント情報の複数のインスタンスのリストを含む第2のユーザインタフェース(図34-6G)を電子デバイスに表示させる第2位の部分(例えば、図34-6F、提案部分34_630)と、を含み得る。
一部の実施形態において、デバイスは、第1のユーザインタフェースの第2の部分の選択に対応する入力を検出する(34_1308)ことができ、検出に応答して、識別された連絡先又はイベント情報の複数のインスタンスのリストと、識別された連絡先又はイベント情報の複数のインスタンスの各々について、第1のユーザインタフェースオブジェクト(例えば、図34-6G、「カレンダーに追加」又は「連絡先に追加」)であって、選択されると、電子デバイスに、識別された情報をデータベースに追加させる(例えば、イベント情報をカレンダーイベントとして、又は連絡先情報を連絡先として記憶させる)第1のユーザインタフェースオブジェクトを含む第2のユーザインタフェースと、を表示することができる。第2のユーザインタフェースは、識別された連絡先又はイベント情報の複数のインスタンスの各々に対し、第2のユーザインタフェースオブジェクト(例えば、図34-6G、「無視」)であって、選択されると、電子デバイスに、第1のユーザインタフェースオブジェクトを表示することを停止させる第2のユーザインタフェースオブジェクトを含み得る(34_1310)。第2のユーザインタフェースは、第3のユーザインタフェースオブジェクト(例えば、図34-6G、「全てを追加」34_634)であって、選択されると、電子デバイスに、識別された連絡先又はイベント情報の複数のインスタンスのまとまり(例えば、カレンダーイベント又は連絡先)の各々をデータベースに追加させる第3のユーザインタフェースオブジェクトを含み得る(34_1312)。第2のユーザインタフェースを表示することにより、第1のユーザインタフェースを表示することを停止することができる(34_1314)。
図34-7A~図34-13における動作を記載した特定の順序は例示的なものであり、説明された順序が、動作を実行できる唯一の順序であることを示すことを意図するものではないということを理解されたい。当業者であれば、このセクションで説明される動作の順序を変更する様々な方法を認識するであろう。簡潔にするために、これらの詳細は、ここでは繰り返さない。加えて、プロセス34_700~34_1300(図34-7~図34-13)の態様を互いに組み込めるという点にも留意されたい。
上述の情報処理プロセスでの動作は、汎用プロセッサ又は特定用途向けチップなど、情報処理装置内の1つ以上の機能モジュールを実行することによって実施することができる。これらのモジュール、これらのモジュールの組み合わせ、及び/又は、それらの(例えば、図1A、図1B、及び図3に関して上述されたような)一般的なハードウェアとの組み合わせは、全て本発明の保護の範囲内に含まれる。
図34-14は、一部の実施例において上述の機能を実行する電子デバイス34_1400の例示的な機能ブロックを示す。図34-14に示すように、電子デバイス34_1400は、グラフィカルオブジェクトを表示するように構成されたディスプレイユニット34_1402と、ユーザのジェスチャを受信するように構成されたタッチ感知面ユニット34_1404と、外部電子デバイスを検出し、これと通信するように構成された1つ以上のRFユニット34_1406と、ディスプレイユニット34_1402、タッチ感知面ユニット34_1404、及びRFユニット34_1406に連結された処理ユニット34_1408と、を備える。
一部の実施形態において、処理ユニット34_1408は、1つ以上のアプリケーション34_1412を実行するオペレーティングシステム34_1410をサポートするように構成される。一部の実施形態において、処理ユニット34_1408は、無線通信範囲内にある外部デバイスであるRFユニット34_1406からデータを受信し、タッチ感知面ユニット34_1404上にグラフィカルユーザインタフェースアフォーダンスを表示し、表示されたアフォーダンス上で接触を検出したことに応答して、外部デバイス上で実行しているアプリケーションに対応するデバイス34_1400上でアプリケーションを起動するように構成されている。
デバイス34_1400の機能ブロックは、説明された様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって任意選択的に実施される。当業者であれば、図34-14に記載された機能ブロックが、説明されたさまざまな実施例の原理を実現するために、任意選択的に、組み合わされるか、又はサブブロックに分けられるものと理解する。したがって、このセクションにおける説明は、このセクションで説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
図34-15は、一部の実施例において上述の機能を実行する電子デバイス34_1500の例示的な機能ブロックを示す。図34-14に示すとおり、電子デバイス34_1500は、グラフィカルオブジェクトを表示するように構成されたディスプレイユニット34_1402と、ユーザのジェスチャを受信するように構成されたタッチ感知面ユニット34_1504と、外部電子デバイスを検出し通信するように構成された1つ以上のRFユニット34_1506と、ディスプレイユニット34_1502、タッチ感知面ユニット34_1504、及びRFユニット34_1506に連結された処理ユニット34_1508と、を備える。
一部の実施形態において、処理ユニット34_1508は、上述の様々な特徴を実行するためにユニット34_1510~1520のうちの1つ以上をサポートするように構成される。例えば、受信ユニット34_1510は、上述の(例えば、メッセージを受信する)受信機能のうちの1つ以上を実行するように構成される。識別ユニット34_1512は、上述した識別機能(例えば、受信メッセージ内で、エンティティ及びエンティティと関連付けられた連絡先情報を識別すること、受信したメッセージ内でイベント情報を識別すること、又は受信したメッセージ内で、連絡先情報又はイベント情報の複数のインスタンスを識別すること)、のうちの1つ以上を実行するように構成される。判定ユニット34_1514は、上述した判定機能(例えば、識別されたエンティティと関連付けられた連絡先がデータベース内の複数の連絡先の中に存在しないと判断すること、及び識別されたエンティティと関連付けられた連絡先がデータベース内の複数の連絡先の中に存在するということと、その連絡先が、連絡先情報の識別された項目を含まないということと、を判定すること)のうちの1つ以上を実行するように構成される。生成ユニット34_1516は、上述した生成ステップ(例えば、判定に応答して、エンティティと関連付けられた連絡先を生成すること、識別された連絡先情報が提案された連絡先情報であるというインジケーションを生成すること、及び識別されたイベント情報と関連付けられたイベントを生成すること)、のうちの1つ以上を実行するように構成される。更新ユニット34_1518は、上述した更新ステップ(例えば、判定したことに応答して、連絡先情報項目と、連絡先情報項目が提案された連絡先情報項目であるというインジケーションと、を含むように連絡先を更新すること)のうちの1つ以上を実行するように構成される。表示ユニット34_1520は、上述した表示ステップ(例えば、ディスプレイユニット34_1502上などに、エンティティ又は受信したメッセージと関連付けられた連絡先に対応する第1のユーザインタフェースを表示すること)のうちの1つ以上を実行するように構成される。
デバイス34_1500の機能ブロックは、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって任意選択的に実施される。当業者であれば、図34-15に記載された機能ブロックが、説明されたさまざまな実施例の原理を実現するために、任意選択的に、組み合わされるか、又はサブブロックに分離されるものと理解する。したがって、このセクションにおける説明は、このセクションで説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
構造化された提案のための方法、デバイスシステム、コンピュータ可読媒体例
一態様においては、電子デバイスが、ユーザのメッセージに基づいてユーザに連絡先及びカレンダーイベントを提案する。このデバイスは、ユーザのメッセージを分析して連絡先及びイベント情報を把握し、この情報に基づいて、ユーザに対して提案される連絡先及びカレンダーイベントを自動的に生成又は更新することができる。提案された連絡先及びカレンダーイベントは、まるでユーザが手動で入力したかのように検索可能であり、ユーザは、提案された連絡先及びカレンダーイベントを追加又は無視することを選択できる。
一部の実装形態においては、電子デバイス(例えば、図1Eに示す構成のいずれかに従って実装される図1Aのデバイス100)で実行される方法が提供される。この方法は、メッセージを受信することと、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報を識別することと、識別されたエンティティと関連付けられた連絡先がデータベース内の複数の連絡先の中に存在しないと判断することと、その判断に応答して、そのエンティティと関連付けられた連絡先を生成することと、を含み、生成された連絡先が、その連絡先情報と、生成された連絡先が提案された連絡先であるというインジケーションと、を含む。
一部の実装形態において、識別されたエンティティは名前を含み、識別された連絡先情報は、電話番号、住所、ビジネス又はソーシャルネットワーキングハンドルを含む。一部の実装形態において、識別することは、メッセージの署名ブロックを識別することと、識別された署名ブロックを分析して、そのエンティティ及び連絡先情報を把握することと、を含む。一部の実装形態において、メッセージは電子メールを含み、署名ブロックは電子メール署名を含む。いくつかの実装形態において、電子メールは、電子メールスレッド内に1つ以上の過去の電子メールを含み、電子メール署名を識別することは、電子メールスレッド内の1つ以上の過去の電子メールを分析することを含む。一部の実装形態において、識別することは、事前定義された句の集合に基づいて1つ以上の句をメッセージ内で識別することと、1つ以上の識別された句を分析して、そのエンティティ及び連絡先情報を把握することと、含む。一部の実装形態において、この方法は、ネットワーク経由で既定の句の集合を更新することを含む。一部の実装形態において、この方法は、提案された連絡先を拒否する要求の結果として、既定の句のうちの1つ以上をダウングレードすることを含む。一部の実装形態において、この方法は、データベース内の連絡先情報を電子デバイス上の連絡先情報と関連付けられた言葉と相関させることによって既定の句のうちの1つ以上を生成することを含む。一部の実装形態において、この方法は、連絡先を求める要求を受信することと、連絡先を求める要求に応答して、提案された連絡先を検索することと、を含む。一部の実装形態において、この方法は、連絡先の生成に応答して、提案された連絡先をネットワーク経由でリモートデータベースに記憶するのを差し控えることを含む。一部の実装形態において、この方法は、提案された連絡先をデータベースに追加する要求を受信することと、提案された連絡先をデータベースに追加する要求に応答して、生成された連絡先が提案された連絡先であるというインジケーションなしで、生成された連絡先をデータベースに記憶することと、を含む。一部の実装形態において、この方法は、提案された連絡先をデータベースに追加する要求に応答して、生成された連絡先が提案された連絡先であるというインジケーションなしで、生成された連絡先をネットワーク経由でリモートデータベースに記憶することを含む。一部の実装形態において、この方法は、提案された連絡先を拒否する要求を受信することと、提案された連絡先を拒否する要求に応答して、提案された連絡先を拒否することで、そのエンティティ及び連絡先情報が今後のメッセージ内で識別された結果としてその提案された連絡先が今後生成されないようにすることと、を含む。
一部の実装形態においては、提案された連絡先を拒否する要求を受信するための手段と、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報を識別するための手段と、識別されたエンティティと関連付けられた連絡先がデータベース内の複数の連絡先の中に存在しないと判断するための手段と、その判定に応答して、そのエンティティと関連付けられた連絡先を生成するための手段と、を備え、生成された連絡先が、その連絡先情報と、生成された連絡先が提案された連絡先であるというインジケーションと、を含む。
別の態様においては、電子デバイス(例えば、図1Eに示す構成のいずれかに従って実装される図1Aのデバイス100)で実行される方法が提供される。この方法は、メッセージを受信することと、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報項目を識別することと、識別されたエンティティと関連付けられた連絡先がデータベース内の複数の連絡先の中に存在し、その連絡先が識別された連絡先情報項目を含まないと判断することと、その判断に応答して、その連絡先を更新し、その連絡先情報項目と、その連絡先情報項目が提案された連絡先情報項目であるというインジケーションと、を含めることと、を含む。
一部の実装形態において、識別されたエンティティは名前を含み、識別された連絡先情報項目は、電話番号、住所、ビジネス又はソーシャルネットワーキングハンドルを含む。一部の実装形態において、識別することは、メッセージの署名ブロックを識別することと、識別された署名ブロックを分析して、そのエンティティ及び連絡先情報項目を把握することと、を含む。一部の実装形態において、メッセージは電子メールを含み、署名ブロックは電子メール署名を含む。いくつかの実装形態において、電子メールは、電子メールスレッド内に1つ以上の過去の電子メールを含み、電子メール署名を識別することは、電子メールスレッド内の1つ以上の過去の電子メールを分析することを含む。一部の実装形態において、識別することは、既定の句の集合に基づいて1つ以上の句をメッセージ内で識別することと、1つ以上の識別された句を分析して、そのエンティティ及び連絡先情報項目を把握することと、含む。一部の実装形態において、この方法は、ネットワーク経由で既定の句の集合を更新することを含む。一部の実装形態において、この方法は、提案された連絡先情報項目を拒否する要求の結果として既定の句のうちの1つ以上をダウングレードすることを含む。一部の実装形態において、この方法は、データベース内の連絡先情報を電子デバイス上の連絡先情報と関連付けられた言葉と相関させることによって既定の句のうちの1つ以上を生成することを含む。一部の実装形態において、この方法は、連絡先を求める要求を受信することと、連絡先を求める要求に応答して、提案された連絡先情報項目を検索することと、を含む。一部の実装形態において、この方法は、連絡先の更新に応答して、提案された連絡先情報項目をネットワーク経由でリモートデータベースに記憶するのを差し控えることを含む。一部の実装形態において、この方法は、提案された連絡先情報項目をデータベースに追加する要求を受信することと、提案された連絡先情報項目をデータベースに追加する要求に応答して、更新された連絡先情報項目が提案された連絡先情報項目であるというインジケーションなしで、更新された連絡先情報項目をデータベースに記憶することと、を含む。一部の実装形態において、この方法は、提案された連絡先情報項目をデータベースに追加する要求に応答して、更新された連絡先情報項目が提案された連絡先であるというインジケーションなしで、更新された連絡先情報項目をネットワーク経由でリモートデータベースに記憶することを含む。一部の実装形態において、この方法は、提案された連絡先情報項目を拒否する要求を受信することと、その提案された連絡先情報項目を拒否する要求に応答して、そのエンティティ及び連絡先情報項目が今後のメッセージ内で識別された結果として、連絡先が提案された連絡先情報項目で今後更新されないようにすることと、を含む。
一部の実装形態においては、メッセージを受信するための手段と、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報項目を識別するための手段と、識別されたエンティティと関連付けられた連絡先がデータベース内の複数の連絡先の中に存在し、その連絡先が識別された連絡先情報項目を含まないと判断するための手段と、その判断に応答して、その連絡先を更新し、その連絡先情報項目と、その連絡先情報項目が提案された連絡先情報項目であるというインジケーションと、を含めるための手段と、を備えるシステムが提供される。
もう1つの態様においては、電子デバイス(例えば、図1Eに示す構成のいずれかに従って実装される図1Aのデバイス100)で実行される方法が提供される。この方法は、メッセージを受信することと、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報を識別することと、識別された連絡先情報が提案された連絡先情報であるというインジケーションを生成することと、そのエンティティと関連付けられた連絡先に対応する第1のユーザインタフェースであって、生成されたインジケーションに基づき、識別された連絡先情報が提案された連絡先情報であることを示す第1のユーザインタフェースオブジェクトを含む第1のユーザインタフェースを表示することと、を含む。一部の実装形態において、この方法は、提案された連絡先情報の選択に対応する入力がアプリケーションを呼び出してエンティティに連絡するのを防ぐことを含む。一部の実装形態において、この方法は、第1のユーザインタフェース内の提案された連絡先情報の選択に対応する入力を検出することと、第1のユーザインタフェース内のその提案された連絡先情報の選択に対応するその入力の検出に応答して、識別された連絡先情報と関連付けられた第2のユーザインタフェースオブジェクトであって、選択されると、電子デバイスに、識別された連絡先情報をデータベースに追加させる第2のユーザインタフェースオブジェクトを含む第2のユーザインタフェースを表示することと、を含む。一部の実装形態において、第2のユーザインタフェースは、識別された連絡先情報と関連付けられた第3のユーザインタフェースオブジェクトであって、選択されると、電子デバイスに第2のユーザインタフェースオブジェクトの表示を停止させる第3のユーザインタフェースオブジェクトを含む。一部の実装形態においては、第2のユーザインタフェースを表示すると、第1のユーザインタフェースの表示が停止する。一部の実装形態において、第2のユーザインタフェースは、メッセージの少なくとも一部分を表示する。一部の実装形態において、この方法は、表示されたメッセージの選択に対応する入力を検出することと、表示されたメッセージの選択に対応する入力の検出に応答して、メッセージを開くためのアプリケーションを呼び出すことと、を含む。一部の実装形態において、メッセージは電子メールを含み、アプリケーションは電子メールアプリケーションを含む。いくつかの実装形態において、この方法は、第2のユーザインタフェース内の提案された連絡先情報の選択に対応する入力を検出することと、その第2のユーザインタフェース内のその提案された連絡先情報の選択に対応する入力の検出に応答して、識別された連絡先情報を用いてのアプリケーションを呼び出し、そのエンティティに連絡すること、を含む。一部の実装形態において、この方法は、第2のユーザインタフェース内の提案された連絡先情報の選択に対応する入力の検出に応答して、識別された連絡先情報をデータベースに追加することを含む。一部の実装形態において、この方法は、識別された連絡先情報をデータベースに追加したことに応答して、第1のユーザインタフェースオブジェクトの表示を停止することを含む。
一部の実装形態においては、メッセージを受信するための手段と、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報を識別するための手段と、識別された連絡先情報が提案された連絡先情報であるというインジケーションを生成するための手段と、そのエンティティと関連付けられた連絡先に対応する第1のユーザインタフェースであって、識別された連絡先情報が提案された連絡先情報であることを示す、生成されたインジケーションに基づき、第1のユーザインタフェースオブジェクトを含む第1のユーザインタフェースを表示するための手段と、を備えるシステムが提供される。
更なるもう1つの態様においては、電子デバイス(例えば、図1Eに示す構成のいずれかに従って実装される図1Aのデバイス100)で実行される方法が提供される。この方法は、メッセージを受信することと、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報を識別することと、受信したメッセージに対応する第1のユーザインタフェースを表示することと、を含み、第1のユーザインタフェースは、電子デバイスによって受信されたメッセージのコンテンツを含む第1の部分と、識別されたエンティティに対応する第1のユーザインタフェースオブジェクトと、識別された連絡先情報に対応する第2のユーザインタフェースオブジェクトと、識別された連絡先情報と関連付けられた第3のユーザインタフェースオブジェクトであって、選択されると、電子デバイスに、識別された連絡先情報をデータベースに追加させる第3のユーザインタフェースオブジェクトと、を含む第2の部分と、を含む。一部の実装形態において、第2の部分は、識別された連絡先情報と関連付けられた第4のユーザインタフェースオブジェクトであって、選択されると、デバイスに第3のユーザインタフェースオブジェクトの表示を停止させる第4のユーザインタフェースオブジェクトを含む。一部の実装形態において、メッセージは電子メールを含む。一部の実装形態において、識別されたエンティティは名前を含み、識別された連絡先情報は、電話番号、住所、ビジネス又はソーシャルネットワーキングハンドルを含む。
一部の実装形態においては、メッセージを受信するための手段と、受信したメッセージ内で、エンティティ及びそのエンティティと関連付けられた連絡先情報を識別するための手段と、受信したメッセージに対応する第1のユーザインタフェースを表示するための手段と、を備え、第1のユーザインタフェースが、電子デバイスによって受信されたメッセージのコンテンツを含む第1の部分と、識別されたエンティティに対応する第1のユーザインタフェースオブジェクトと、識別された連絡先情報に対応する第2のユーザインタフェースオブジェクトと、識別された連絡先情報と関連付けられた第3のユーザインタフェースオブジェクトであって、選択されると、電子デバイスに、識別された連絡先情報をデータベースに追加させる第3のユーザインタフェースオブジェクトと、を含む第2の部分と、を含むるシステムが提供される。
更なるもう1つの態様においては、電子デバイス(例えば、図1Eに示す構成のいずれかに従って実装される図1Aのデバイス100)で実行される方法が提供される。この方法は、メッセージを受信することと、受信したメッセージ内でイベント情報を識別することと、識別されたイベント情報と関連付けられたカレンダーイベントを生成することと、を含み、生成されたカレンダーイベントは、そのイベント情報と、生成されたカレンダーイベントが提案されたカレンダーイベントであるというインジケーションと、を含む。一部の実装形態において、識別されたイベント情報は、日付と時刻とを含む。一部の実装形態において、識別することは、メッセージ内のコンテンツの形式を識別することと、そのメッセージ内のそのコンテンツの形式でイベント情報を認識するように構成された定義済みのテンプレートの集合からテンプレートを識別することと、識別されたテンプレートを用いてコンテンツを分析してイベント情報を把握することと、を含む。一部の実装形態において、メッセージは電子メールを含み、コンテンツは予約を含む。一部の実装形態において、この方法は、ネットワーク経由で定義済みのテンプレートの集合を更新することを含む。一部の実装形態において、識別することは、日時に対する定義済みの参照の集合に基づいて、日時への1つ以上の参照をメッセージ内で識別することと、日時に対する1つ以上の識別された参照を分析してイベント情報を把握することと、を含む。一部の実装形態において、この方法は、日時に対する定義済みの参照の集合をネットワーク経由で更新することを含む。一部の実装形態において、この方法は、提案されたカレンダーイベントを拒否する要求の結果として、日時に対する定義済みの参照のうちの1つ以上をダウングレードすることを含む。一部の実装形態において、この方法は、複数のカレンダーイベントを含むデータベース内のイベント情報を、電子デバイス上のイベント情報と関連付けられた言葉と相関させることにより、日時に対する定義済みの参照のうちの1つ以上を生成することを含む。一部の実装形態において、この方法は、カレンダーイベントを求める要求を受信することと、カレンダーイベントを求める要求に応答して、提案されたカレンダーイベントを検索することと、を含む。一部の実装形態において、この方法は、カレンダーイベントの生成に応答して、提案されたカレンダーイベントをネットワーク経由でリモートデータベースに記憶するのを差し控えることを含む。一部の実装形態において、この方法は、複数のカレンダーイベントを含むデータベースに提案されたカレンダーイベントを追加する要求を受信することと、データベースに提案されたカレンダーイベントを追加する要求に応答して、生成されたカレンダーイベントが提案されたカレンダーイベントであるというインジケーションなしで、生成されたカレンダーイベントをデータベースに記憶することとを含む。一部の実装形態において、この方法は、提案されたカレンダーイベントをデータベースに追加する要求に応答して、生成されたカレンダーイベントが提案されたカレンダーイベントであるというインジケーションなしで、生成されたカレンダーイベントをネットワーク経由でリモートデータベースに記憶することを含む。一部の実装形態において、この方法は、提案されたカレンダーイベントを拒否する要求を受信することと、提案されたカレンダーイベントを拒否する要求に応答して、そのイベント情報が今後のメッセージ内で識別されたことによってその提案されたカレンダーイベントが今後生成されることのないようにすることと、を含む。
一部の実装形態においては、メッセージを受信するための手段と、受信したメッセージ内でイベント情報を識別するための手段と、識別されたイベント情報と関連付けられたカレンダーイベントを生成するための手段と、を備えるシステムであって、生成されたカレンダーイベントが、そのイベント情報と、生成されたカレンダーイベントが提案されたカレンダーイベントであるというインジケーションと、を含むシステムが提供される。
更なる追加態様においては、電子デバイス(例えば、図1Eに示す構成のいずれかに従って実装される図1Aのデバイス100)で実行される方法が提供される。この方法は、メッセージを受信することと、受信したメッセージ内でイベント情報を識別することと、受信されたメッセージに対応する第1のユーザインタフェースを表示することとを含み、第1のユーザインタフェースは、電子デバイスによって受信されたメッセージの内容を含む第1の部分と、識別されたイベント情報に対応する第1のユーザインタフェースオブジェクトと、識別されたイベント情報と関連付けられた第2のユーザインタフェースオブジェクトであって、選択されると、電子デバイスに、識別されたイベント情報を複数のカレンダーイベントを含むデータベースに追加させる第2のユーザインタフェースオブジェクトと、を含む第2の部分と、を含む。一部の実装形態において、第2の部分は、識別されたイベント情報と関連付けられた第3のユーザインタフェースオブジェクトであって、選択されると、デバイスに第2のユーザインタフェースオブジェクトの表示を停止させる第3のユーザインタフェースオブジェクトを含む。一部の実装形態において、メッセージは電子メールを含む。一部の実装形態において、識別されたイベント情報は、日付と時刻とを含む。一部の実装形態においては、メッセージを受信するための手段と、受信したメッセージ内でイベント情報を識別するための手段と、受信したメッセージに対応する第1のユーザインタフェースを表示するための手段と、を備えるシステムであって、第1のユーザインタフェースが、電子デバイスによって受信されたメッセージの内容を含む第1の部分と、識別されたイベント情報に対応する第1のユーザインタフェースオブジェクトと、識別されたイベント情報と関連付けられた第2のユーザインタフェースオブジェクトであって、選択されると、電子デバイスに、識別されたイベント情報を複数のカレンダーイベントを含むデータベースに追加させる第2のユーザインタフェースオブジェクトと、を含む第2の部分と、を含むシステムが提供される。
更なるもう1つの追加態様においては、電子デバイス(例えば、図1Eに示す構成のいずれかに従って実装される図1Aのデバイス100)で実行される方法が提供される。この方法は、メッセージを受信することと、受信したメッセージ内で、連絡先情報又はイベント情報複数のインスタンスを識別することと、受信したメッセージに対応する第1のユーザインタフェースを表示することと、を含み、第1のユーザインタフェースは、電子デバイスによって受信されたメッセージの内容を含む第1の部分と、選択されると、電子デバイスに、識別された連絡先又はイベント情報の複数のインスタンスを含む第2のユーザインタフェースを表示させる第2の部分と、を備える。一部の実装形態において、この方法は、第1のユーザインタフェースの第2の部分の選択に対応する入力を検出することと、第1のユーザインタフェースの第2の部分の選択に対応する入力の検出に応答して、識別された連絡先又はイベント情報の複数のインスタンスのリストと、識別された連絡先又はイベント情報の複数のインスタンスの各々に対する第1のユーザインタフェースオブジェクトであって、選択されると、電子デバイスに、識別された情報をデータベースに追加させる第1のユーザインタフェースオブジェクトと、を含む第2のユーザインタフェースを表示することと、を含む。一部の実装形態において、第2のユーザインタフェースは、識別された連絡先又はイベント情報の複数のインスタンスの各々に対する第2のユーザインタフェースオブジェクトであって、選択されると、電子デバイスに、第1のユーザインタフェースオブジェクトの表示を停止させる第2のユーザインタフェースオブジェクトを含む。一部の実装形態において、第2のユーザインタフェースは、第3のユーザインタフェースオブジェクトであって、選択されると、電子デバイスに、識別された連絡先又はイベント情報の複数のインスタンスのまとまりの各々をデータベースに追加させる第3のユーザインタフェースオブジェクトを含む。一部の実装形態においては、第2のユーザインタフェースを表示すると、第1のユーザインタフェースの表示が停止する。
一部の実装形態においては、メッセージを受信するための手段と、受信したメッセージ内で、連絡先情報又はイベント情報複数のインスタンスを識別するための手段と、受信したメッセージに対応する第1のユーザインタフェースを表示するための手段と、を備え、第1のユーザインタフェースが、電子デバイスによって受信されたメッセージの内容を含む第1の部分と、選択されると、電子デバイスに、識別された連絡先又はイベント情報の複数のインスタンスを含む第2のユーザインタフェースを表示させる第2の部分と、を含む、システムが提供される。
一部の実装形態においては、1つ以上のプロセッサと、メモリと、1つ以上のプログラムと、を備える電子デバイスであって、1つ以上のプログラムが、メモリ内に記憶され、1つ以上のプロセッサによって実行されるよう構成されており、1つ以上のプログラムが、このセクションにおける上述の方法のうちのいずれかを実行するための命令を含む、電子デバイス。一部の実装形態においては、1つ以上のプログラムを記憶するコンピュータ可読記憶媒体であって、電子デバイスによって実行されると、このセクションで上述した方法のいずれかをデバイスに実行させる命令をこの1つ以上のプログラムが含む、コンピュータ可読記憶媒体が提供される。一部の実装形態においては、このセクションで説明した方法のいずれかを実行するための手段を備えるシステムが提供される。
セクション5:データスパーシティのコンテキストにおける複合ユーザパターンを学習する生成モデルの決定木のセグメント化
本セクションにおける「データスパーシティのコンテキストにおける複合ユーザパターンを学習する生成モデルの決定木のセグメント化」という題材は、一部の実施形態により、データスパーシティのコンテキストにおける複合ユーザパターンを学習する生成モデルの決定木のセグメント化を記載し、本セクションに提供される開示を補足する情報を提供する。例えば、本セクションの部分は、本セクションにおいて提供される開示を補足するデバイス上のイベントに応答するアプリケーションを提示する方法、例えば、図9B~図9Cの予測部分930内のアプリケーション及びディープリンクに対応するアフォーダンスをポピュレートすることに関連するものを記載する。一部の実施形態では、本セクションに記載される予測モデルは、予測及びユーザへの表示のための適切なアプリケーションの識別を支援するのに用いられる(すなわち、これらの予測モデルは、方法600、800、1000及び1200と併せて用いられる)。
データスパーシティのコンテキストにおける複合ユーザパターンを学習する生成モデルの決定木のセグメント化についての概要
実施形態は、イベントに基づいてコンピューティングデバイスのユーザに1つ以上のアプリケーションを提案するシステム、方法、及び装置を提供することができる。コンピューティングデバイスの例は、電話機、タブレット、ラップトップコンピュータ、又はデスクトップコンピュータである。例示のイベントとしては、アクセサリデバイスへの接続、及び(例えば、オフ又はスリープから呼び起こすための)電力状態の変更が挙げられる。
予測モデルは、特定のイベントに対応することができる。提案されたアプリケーションは、コンピューティングデバイスの1つ以上のプロパティを用いて判定され得る。例えば、特定のサブモデルは、イベントが発生した後のユーザ相互作用に関する履歴データのサブセットであって、デバイスが1つ以上のプロパティを有する場合に収集される履歴データのサブセットから生成され得る(例えば、特定の時間帯のプロパティと共に、人の車に接続するというイベント後にどのアプリケーションが選択されたというユーザ相互作用)。サブモデルの木は、コンピューティングデバイスのプロパティの異なるコンテキストに対応して判定されてもよい。また、履歴データのサブセット内の正確な予測を提供するサブモデル内の信頼水準及び親モデルに対する履歴データの分布内の情報利得(エントロピーの低下)など、様々な基準がサブモデルをいつ生成すべきかを判定するのに使用され得る。
他の実施形態は、本セクションに記載の方法に関連するシステム、ポータブル家庭用デバイス及びコンピュータ可読媒体を対象とする。
以下の詳細な説明及び添付の図面を参照することにより、本セクションの実施形態の性質及び利点の理解をより深めることができる。
データスパーシティのコンテキストにおける複合ユーザパターンを学習する生成モデルの決定木のセグメント化についての詳細な説明
実施形態は、アプリケーションをデバイスのユーザに提案するカスタマイズされ、かつパーソナライズされたエクスペリエンスを提供でき、それによってデバイスの使用を容易にするものである。ユーザは、特定のイベント後に発生するユーザデバイスとの広範な相互作用のセット(例えば、イベントと関連してどのアプリケーションが起動され、又は動作するか)を有することができる。コンピューティングデバイスの例は、電話機、タブレット、ラップトップ、又はデスクトップコンピュータである。例示イベントとしては、アクセサリデバイスへの接続、及び(例えば、オフ又はスリープから呼び起こすための)電力状態の変更が挙げられる。
履歴データ内の各データポイントは、特定のコンテキストに対応する(例えばデバイスの1つ以上のプロパティに対応する)ことができ、特定のコンテキストに対する一層多くのデータが時間の経過と共に得られている。特定のイベントに対する履歴データは、ユーザにアプリケーションを提案するのに使用され得る。様々なユーザが様々な履歴データを有するにつれて、実施形態は、パーソナライズされたエクスペリエンスを提供することができる。
正確にパーソナライズされたエクスペリエンスを提供するには、各種実施形態は、提案を提供せずに単にトレーニングされた、又は種々のコンテキストに対するアプリケーション(単数又は複数)の同一のセットを提案する広範なモデルで始めることができる。十分な履歴データを用いて、広範なモデルは、サブモデルに、例えば、サブモデルの決定木としてセグメント化でき、各サブモデルは履歴データの異なるサブセットに対応するものである。次に、イベントが発生すると、デバイスの現在のコンテキストに対応する提案アプリケーションを提供するために特定のサブモデルが選択され得る。例えば、履歴データのサブセット内の正確な予測を提供するサブモデル内の信頼水準及び親モデルに対する履歴データの分布内の情報利得(エントロピーの低下)など、様々な基準がサブモデルをいつ生成すべきかを判定するのに使用され得る。
一部の実施形態では、「信頼水準」は、モデルが履歴データに基づいて正確な予測を行うことができる(すなわち、予測されたアプリケーション(単数又は複数)のうち少なくとも1つがイベント後に選択された)という確率に相当する。信頼水準の例は、正確な予測が行われたイベントのパーセンテージである。別の例では、正確な予測、及び不正確な予測の数から生成された確率分布(例えば、beta分布)の累積分布関数(CDF)が使用される。CDFは、確率分布を積分することによって計算することができる。様々な実装形態では、信頼水準は、入力値を過ぎたCDFの増加量(例えば、0~1の間で、1は正確な予測に対応する)、又は入力値を過ぎた特定のCDFを提供する入力値とすることができる。アプリケーションが選択されるという確率は、閾値確率となるように要求される場合があり、それは信頼閾値を超える信頼水準を有するモデルのための必然的結果である。信頼水準は、エントロピーの測定値に反比例する場合があるので、親モデルからサブモデルへの信頼水準の増加は、エントロピーの減少に相当する場合がある。
したがって、一部の実施形態は、ユーザ推薦のコンテキストでユーザの履歴データをいつ、どのようにセグメント化するかを決定することができる。例えば、ユーザアクティビティの期間を収集した後、実施形態は、予想されるセグメント化候補(例えば、ロケーション、曜日など)のリストを蓄積することができる。実施形態は、全データセットのモデルをトレーニングし、データセット及びモデルの合わせた分布内の信頼度のメトリックを計算することもできる。モデルのセットは、セグメント化されたデータセット(サブセット)のそれぞれに対する一つにトレーニングでき、その後、データモデル分布のそれぞれの信頼度を測定することができる。すべてのデータモデル分布の信頼度が許容される場合、実施形態はセグメント化(分割)を行い、更なるセグメント化のためにセグメント化された空間を再帰的に検査することができる。
このようにして、一部の実施形態は、セグメント化と一般化との間のトレードオフを探査するよう推論を使用でき、より別個の、複合パターンを有するユーザに対してより複合モデルを、よりノイジー(noisier)でより簡潔なパターンを有するユーザに対して簡潔で一般的なモデルを生成することができる。また、一部の実施形態は、潜在的な候補モデル間の発散分布の発見に基づいて確率的モデルの木を生成することができる。
I.イベントに基づいたアプリケーションの提案
実施形態は、いくつかの所定のイベント(トリガーイベントとも呼ばれる)に限定され得る、イベントに基づいてアプリケーションを提案することができる。例えば、音楽アプリケーションは、ヘッドホンがヘッドホンジャックに挿入されたときに提案され得る。一部の実施形態では、コンテキスト情報は、ユーザに提案するアプリケーションを識別するためにイベントと併せて使用され得る。一例として、ヘッドホンのセットがヘッドホンジャックに挿入されるとき、ロケーションに関連するコンテキスト情報を使用することができる。例えば、デバイスがジムにある場合、ヘッドホンがヘッドホンジャックに挿入されるとき、アプリケーションAを提案することができる。あるいは、デバイスが自宅にある場合、ヘッドホンがヘッドホンジャックに挿入されるとき、アプリケーションBを提案することができる。したがって、特定のコンテキスト下で使用されそうなアプリケーションを、ちょうどよい時刻に提案できるので、ユーザエクスペリエンスを向上させることができる。
一部の実施形態では、「コンテキスト情報」はまとめて、デバイスのコンテキストを規定するのに使用され得る任意のデータを指すものである。所与のコンテキストに対するコンテキスト情報は、それぞれデバイスの異なるプロパティに対応する、1つ以上のコンテキストデータを含むことができる。可能性のあるプロパティは、時間カテゴリ又はロケーションカテゴリなどの異なるカテゴリに属する場合がある。コンテキストデータは、モデル(又はサブモデル)の特徴として使用され、モデルをトレーニングするのに用いられるデータは、同じカテゴリの異なるプロパティを含むことができる。特定のコンテキストは、デバイスのプロパティの特定の組み合わせ、あるいはたった一つのプロパティに対応することができる。
図35-1は、本発明の実施形態に係る、検出されたイベントに基づいてアプリケーションを提案するための方法35_100のフローチャートである。方法35_100を、モバイルデバイス(例えば、電話機、タブレット)又は非モバイルデバイスによって実行することができ、またその方法は、デバイスの1つ以上のユーザインタフェースを利用することができる。
一部の実施形態では、「ユーザインタフェース」は、ユーザがデバイスと相互作用するための任意のインタフェースに対応する。アプリケーション用のユーザインタフェースにより、ユーザはアプリケーションと相互作用することができる。ユーザインタフェースは、アプリケーションが動作している場合、アプリケーションのインタフェースとすることができる。別の実施例としては、ユーザインタフェースは、ユーザが選択するアプリケーションの低減されたセットを提供するシステムインタフェースとすることができ、それによってユーザがそのアプリケーションを使用するのを容易にすることができる。
ブロック35_110では、イベントが検出される。一部の実施形態では、イベントがアプリケーションを提案するトリガーイベントであるかどうかを判定することができる。一部の実装形態では、提案されたアプリケーションの判定は、特定の所定のイベント(例えば、トリガーイベント)に対してのみ行われる。他の実装形態では、提案されたアプリケーションの判定は、イベントの動的リストに対して行うことができ、それはデバイス上のアプリケーションとの履歴ユーザ相互作用に基づいて更新され得る。
一部の実施形態では、トリガーイベントは、デバイスの固有動作に相関する可能性が十分あるものとして識別され得る。トリガーイベントであるイベントのリストはデバイスに記憶され得る。かかるイベントは既定のリストとすることができ、オペレーティングシステムの一部として維持され得、ユーザによって構成変更できてもよいし、構成変更できなくてもよい。
トリガーイベントは、ユーザ及び/又は外部デバイスに誘導されたイベントとすることができる。例えば、トリガーイベントは、アクセサリデバイスがモバイルデバイスに接続された場合とすることができる。例としては、ヘッドホンをヘッドホンジャックに挿入すること、Bluetooth接続を行うこと、デバイスをオンにすること、デバイスをスリープから復帰させること、特定のロケーション(例えば、頻繁に訪れるものと識別されるロケーション)に到着することなどが挙げられる。本例では、これらのイベントのそれぞれは、異なるトリガーイベントとして分類され得、又はトリガーイベント全体が、任意のアクセサリデバイスがモバイルデバイスに接続することとすることができる。他の例としては、トリガーイベントは、デバイスとのユーザの特定の相互作用とすることができる。例えば、ユーザは、モバイルデバイスをランニングと調和した方法で移動させることができ、この場合、デバイスのランニング状態はトリガーイベントである。かかるランニング状態(又は他の状態)は、デバイスのセンサに基づいて判定され得る。
ブロック35_120では、イベントに関連付けられたアプリケーションが識別される。一例として、音楽アプリケーションは、ヘッドホンがヘッドホンジャックに挿入されたときに識別され得る。一部の実施形態では、1つを超えるアプリケーションが識別され得る。予測モデルは、関連アプリケーションを識別することができ、この場合、予測モデルは特定のイベントに対して選択されてもよい。例えば、異なるアプリケーションは異なるコンテキストで使用される可能性が高いので、予測モデルはコンテキスト情報を用いてアプリケーションを識別することができる。一部の実施形態は、例えば、デバイスとのユーザの過去相互作用から判定されるので、ユーザによって選択されるという確率が十分にある場合しかアプリケーションを識別できない。
予測モデルは、サブモデルから構成され得、各サブモデルはコンテキストデータの異なる組み合わせに対するものである。異なる組み合わせは、異なる量のコンテキストデータを有することができる。サブモデルは、階層木で生成され得、より具体的な組み合わせのサブモデルは階層木の下位にある。一部の実施形態では、サブモデルが木の中の高位のモデルより高精度にアプリケーションを予測できる場合しか、サブモデルは生成できない。このように、より正確な予測は、どのアプリケーションをユーザが選択することになるかに対して行われ得る。一部の実施形態では、予測モデル及びサブモデルは、コンテキストデータの特定の組み合わせが存在するイベントの後に、ユーザによって選択される上位N個のアプリケーション(例えば、パーセンテージの固定数)を識別することができる。
コンテキスト情報は特定のコンテキストに対するデバイスの1つ以上のプロパティを特定することができる。コンテキストは、トリガーイベントが受信されたときのデバイスの周囲の環境(コンテキストのタイプ)としてもよい。例えば、コンテキスト情報はイベントが検出される時間帯としてもよい。別の実施例では、コンテキスト情報は、イベントが検出されたときのデバイスの特定のロケーションとしてもよい。更に別の実施例では、コンテキスト情報は、トリガーイベントが検出された時の年の特定の日としてもよい。かかるコンテキスト情報は、予測エンジンが正確にそのコンテキストでユーザによって使用される可能性のあるアプリケーションを提案できるようにデバイスのコンテキストについてのより有意義な情報を提供してもよい。したがって、コンテキスト情報を利用する予測エンジンは、コンテキスト情報が利用されなかった場合より正確にアプリケーションをユーザに提案することができる。
ブロック35_130では、アプリケーションと関連してアクションが行われる。一実施形態では、アクションは、ユーザがアプリケーションを実行するように選択するためにユーザインタフェースを表示することとすることができる。ユーザインタフェースは、デバイスのスクリーン上に表示すること、表面に投影すること、あるいはオーディオインタフェースを提供することなどによる、様々な方法で提供されてもよい。
他の実施形態では、アプリケーションが実行されてもよく、またアプリケーション特有のユーザインタフェースがユーザに提供されてもよい。例えば、ロックスクリーン上でのアプリケーションの識別に応答してユーザインタフェースのどちらかを提供してもよい。他の実装形態では、アプリケーションと相互作用するためのユーザインタフェースは、ユーザが(例えば、パスワード又はバイオメトリックによって)認証された後、提供されてもよいが、かかるユーザインタフェースは、実行される提案されたアプリケーションの小リストなど、ただのホームスクリーンより具体的であろう。
一部の実施形態では、「ロックスクリーン」は、ユーザが認証されなかった場合に示されるスクリーンであるので、デバイスはほとんどの使用からロックされている。一部の機能、例えば、カメラは作用を受けてもよい。一部の実施形態では、提案されたアプリケーションに対応するユーザインタフェースはロックスクリーン上で作用を受ける場合、提案されたアプリケーションに関連する一部の機能を得ることができる。例えば、そのアプリケーションを実行することができる。アプリケーションがロックスクリーンから実行される場合、機能は制限されてもよく、制限された機能はユーザが認証されると拡張されてもよい。
一部の実施形態では、「ホームスクリーン」は、デバイスを最初に電源オンした際に現れるデバイスのスクリーンである。モバイルデバイスについては、ホームスクリーンは、デバイス上で実行され得る様々なアプリケーションに対応するアイコンのアレイを示すことが多い。ホームスクリーン上に見えていない他のアプリケーションを閲覧するため、追加のスクリーンにアクセスしてもよい。
II.セグメント化
特定のイベントが発生する(例えば、ヘッドホンを差し込むか、デバイスの電源を入れる)たびに、デバイスは、そのイベントに関連してどのアプリケーション(単数又は複数)が使用されるかを追跡することができる。特定のイベントの発生それぞれに応答して、デバイスは、選択されたアプリケーションに対応するデータポイント、アプリケーションによって行われたアクション、及びそのイベントを保存することができる。各種実施形態では、データポイントは、個々に保存するか、あるいは集約することができ、カウントは、特定のアプリケーションが選択される回数に対して判定され、それは特定のアクションに対するカウントを含んでもよい。こうして、異なるカウントが、選択された同一アプリケーションに対する異なるアクションに対して判定する。デバイスとの以前のユーザ相互作用であるこの履歴データは、予測モデルを判定するための、かつ、多くのサブモデルが生成されるかどうか、またどのように生成されるかを判定するための入力として用いられる。
特定のイベントが検出されると、特定のイベントに対応する予測モデルが選択され得る。予測モデルは、トレーニング手順への入力として、特定のイベントに対応する履歴データを用いて判定されるであろう。しかし、履歴データは異なる多くのコンテキスト(すなわち、コンテキスト情報の異なる組み合わせ)において発生する場合があり、異なるアプリケーションは異なるコンテキストで選択される。したがって、集約として、履歴データは、特定のイベントが発生する状態で明らかに選択されることになるアプリケーションを提供しない場合がある。
ニューラルネットワーク又は回帰などのモデルは、特定のコンテキストに対する特定のアプリケーションを識別するようにトレーニングされ得るが、これは、対応する履歴データのすべてを用いる場合に困難になる場合がある。すべての履歴データを用いると、結果的に、予測モデルを過剰適合することになり、精度が低くなる。本発明の実施形態は、履歴データを、それぞれは異なるコンテキストに対応する、履歴データの異なる入力セットにセグメント化することができる。異なるサブモデルは、履歴データの異なる入力セットにおいてトレーニングされ得る。
セグメント化は、機械学習システムの性能を向上させることができる。セグメント化の一ステップでは、入力空間を2つのサブ空間に分割でき、これらのサブ空間のそれぞれを、別個のサブモデルと独立して解決することができる。かかるセグメント化プロセスにより、システムが利用可能な自由パラメータの数を増加させることができ、トレーニング精度を向上させることができるが、これは、各モデル内のデータ量の希釈化を犠牲にして、システムに新しいデータを示すとき、例えば、サブモデルに対するデータ量が少ない場合、システムの精度を低下させる場合がある。実施形態は、結果として生じるサブ空間から作成されたデータ及びモデルパラメータの合わせた分布が信頼できる場合しか、入力空間をセグメント化することができない。
A.異なるコンテキストデータに基づく異なるモデル
特定のイベントが発生した場合、デバイスは様々なコンテキスト、例えば、異なるロケーション、異なる時間、デバイスの異なるモーション状態(ランニング中、歩行中、ドライブ中、又は静止など)、又は電力使用量の異なる状態(スリープモードから電源が入れられる、あるいは移行中など)にあり得る。コンテキスト情報は、検出されたイベントと関連して取り出される、例えば、イベントが検出された後に取り出される場合がある。コンテキスト情報は、検出されたイベントに関連してどのアプリケーションが使用されるかという予測を支援するのに用いられる場合がある。異なるモーション状態は、加速度計、ジャイロメーター、又はGPSセンサなどのモーションセンサを用いて判定することができる。
実施形態は、コンテキスト情報を様々な方法で使用することができる。一実施例では、一部のコンテキストデータ(例えば、デバイスの一つのプロパティに対応する)は、特定のサブモデルの特徴として用いられ、どのアプリケーション(単数又は複数)が最も選択されそうかを予測することができる。例えば、デバイスの特定のロケーションは、サブモデルへの入力として提供される場合がある。これらの特徴はサブモデルの構成物の一部である。
別の実施例では、コンテキスト情報のコンテキストデータのうち一部又は全部はセグメント化プロセスで使用される場合がある。特定部分のコンテキストデータは、入力履歴データをセグメント化するのに用いられ得るので、特定のサブモデルは、その部分のコンテキストデータの対応するプロパティに対応する履歴データを用いてしか判定されない。例えば、デバイスの特定のロケーションはサブモデルへの入力として用いられないが、どのサブモデルを使用するか、またそれに対応して、特定のサブモデルを生成するために、どの入力データを使用するか選択するのに使用されるであろう。
こうして、一部の実施形態では、特定のコンテキストデータがどのサブモデルを使用するかを識別するのに使用される場合があり、他のコンテキストデータは、ユーザが相互作用し得るのはどのアプリケーション(単数又は複数)かを予測するための、サブモデルへの入力として用いられる場合がある。特定のプロパティ(例えば、特定のロケーション)は、特定のサブモデルに対応せず、特定のプロパティは使用されるサブモデルに対する特徴(入力)として用いられる場合がある。特定のプロパティが特定のサブモデルに対応している場合、全モデルが特定のプロパティに割り当てられるので、そのプロパティはより多く使用され得る。
サブモデルを特定のプロパティ(又はプロパティの組み合わせ)に割り当てることの一つの欠点は、その特定のプロパティに対応する大量の履歴データが存在しない場合があることである。例えば、ユーザは、特定のロケーションで数回、特定のイベント(例えば、ヘッドホンに差し込む)を実行しただけの可能性がある。このような限定されたデータ量はまた、データが乏しい(sparse)とも言われる。プロパティの組み合わせが、例えば、特定のロケーションで特定の時刻に使用された場合、データは更に乏しくなる場合がある。この欠点を対処するため、実施形態は、新しいサブモデルをセグメント化プロセスの一部としていつ生成するかを選択して判定することができる。
B.多くのデータが得られる際のセグメント化
ユーザは最初にデバイスを使用し始める場合、特定のイベント後にアプリケーションを用いて取り得るアクションについて予測を行うための履歴データが存在しないであろう。初期モードでは、予測は提供されないが、履歴データは得られる場合がある。より多くの履歴データが得られるにつれて、予測モデルをサブモデルにセグメント化するかどうかについての判定を行うことができる。更に多くの履歴データを用いると、サブモデルは更なるサブモデルにセグメント化され得る。デバイスとのユーザ相互作用に利用可能な履歴データが限定されている場合、例として、いかなるアクションも取ることができないか、あるいはより一般的なモデルが使用される場合がある。
図35-2は、本発明の実施形態に係る、セグメント化プロセス35_200を示す。セグメント化プロセス35_200は、ユーザデバイス(例えば、電話機などのモバイルデバイス)によって実行することができ、データのプライバシーを保持することができる。他の実施形態では、セグメント化プロセス35_200は、ユーザデバイスと通信しているサーバによって実行することができる。セグメント化プロセス35_200は、ある期間にわたって(例えば、数日、数ヶ月又は数年にわたって)部分的に実行することができ、あるいはセグメント化プロセス35_200の全部を同時に実行することができ、また定期的に潜在的に再実行することができる。セグメント化プロセス35_200は予測エンジンのルーチンとして実行されることができる。
図35-2は、収集される、より多くのデータに対応するタイムライン35_230を示す。より多くのデータが収集されるにつれて、予測モデルはサブモデルにセグメント化され得る。データを収集する異なるポイントにおいて、セグメント化は発生する場合がある(例えばセグメント化35_201)。より一層多くのデータが得られるにつれて、別のセグメント化が発生する場合がある。図35-2はタイムライン35_230に沿った異なるポイントで発生する特定のセグメント化に対する新しいサブモデルを示すが、各セグメント化は、完全にセグメント化を再実行することを伴うことができ、それは、以前のセグメント化と同じように同一のサブモデルが作成されても、作成されなくてもよい。
本例では、イベントモデル35_205は特定のイベント(例えば、車などの特定のデバイスに接続すること)に対応することができる。イベントモデル35_205は、特定のイベントの予測エンジンの最上位水準に対応することができる。開始時において、特定のイベントのたった一つのモデルしか存在しない場合があり、最小限度の履歴データしか利用できない。この時点では、イベントモデル35_205はトレーニング目的で履歴データを追跡できるだけである。イベントモデル35_205は予測を行うことができ、これらの予測を実際の結果と比較されることができる(例えば、イベントが検出された後、特定の時間内にユーザが予測されたアプリケーションと相互作用するかどうか)。閾値より高い確率を有するアプリケーションがない場合、特定のイベントが発生しても、いかなるアクションも実行されない場合がある。
一部の実施形態では、イベントモデル35_205は、特定のデバイスに対して収集されたデータのみを使用する。他の実施形態では、イベントモデル35_205は、他のユーザから集約された履歴データをシードにすることができる。かかる履歴データはイベントモデル35_205が一部の推薦を提供できるようにする場合があり、その後、追加のデータポイントを得るのを可能にすることができる。例えば、ユーザが提案されたアプリケーションとユーザインタフェースを介して相互作用するかどうかを追跡でき、それにより、単にユーザがアプリケーションを選択するかどうかより多くのデータポイントを提供することができる。
多くのデータが収集されるにつれて、セグメント化が発生すべきかどうかについて定期的に判定を行うことができる。判定は、セグメント化を介してより高精度が達成できるかどうかに基づくことができる。精度は、以下に詳細に説明するが、予測が行われ得る確率の水準として測定することができる。例えば、アプリケーションを、イベントモデル35_205を用いるより、サブモデルに対して高い水準の確率で予測できる場合、セグメント化を行ってもよい。また、1つ以上の他の基準を用いて、セグメント化プロセスの一部としてサブモデルが作成されるべきかどうかを判定することができる。例えば、基準は、サブモデルが実装される前に、サブモデルが統計的に十分な量の入力履歴データを有していなくてはいけないこととすることができる。少ないデータ量でトレーニングされたモデルは不正確となる場合があるので、データ量の要件により、サブモデルに安定性を向上させ、最終的に、精度を向上させることができる。
セグメント化35_201では、イベントモデル35_205をジムサブモデル35_210及び別のサブモデル35_240にセグメント化するように判定される。ユーザが特定のコンテキストにおいて決定的な行動をすると、このセグメント化が発生する。本例では、コンテキストが、デバイスがジム(特定のジムでも任意のジムでもよい)に位置することである場合(ある位置を事業所の復元されたロケーションと相互参照することによって判定できる)、決定的な行動が存在する。かかる相互参照はサーバ上に記憶された外部データベースを使用することができる。ジムサブモデル35_210がユーザによって選択される正確なアプリケーションを、イベントモデル35_205より高い確率で予測できる場合、決定的な行動を測定することができる。
セグメント化35_201の一部として、ジムサブモデル35_210を生成するために用いられる入力履歴データは、ジムの他のすべてのコンテキストに対応するサブモデル35_240を生成するために用いられる。その他のサブモデル35_240は、コンテキストがジム以外の何かである場合に、ユーザが相互作用し得るアプリケーションを予測するのに使用され得る。
より多くのデータが収集された後のセグメント化35_202では、イベントモデル35_205からスーパーマーケットモデル35_220を生成するように、更なるセグメント化が行われ得る。スーパーマーケットモデル35_220が十分な信頼度で予測できるように、この判定は、スーパーマーケットで十分な数のデータポイントが得られた後、行われてもよい。十分な信頼度は、その他のサブモデル35_240から得られた信頼度に対して測定することができる。スーパーマーケットサブモデル35_220はその他のサブモデル35_240より高い信頼度でアプリケーションを予測できると、セグメント化が実行され得る。セグメント化35_202の後、サブモデル35_240は、ジム及びスーパーマーケットを除いた任意の他のコンテキストに対応するであろう。
更に多くのデータが収集された後のセグメント化35_203では、ジムサブモデル35_210のセグメント化が行われ得ると判定される。本例では、アプリケーションは、履歴データ内で、より高い信頼度で予測され得ると判定されるのは、ジムが具体的な時刻、具体的には、午後の時刻(例えば、12時~4時)にセグメントされているからである。こうして、ユーザが午後にジムにいる場合、午後ジムサブモデル35_211は、ユーザがどのアプリケーション(単数又は複数)と相互作用し得るかを予測するのに使用することができる。ユーザが任意の他の時刻にジムにいる場合、ジムサブモデル35_210が使用でき、それは、木の中のある位置では、すなわち、その他のサブモデル35_240が示されるのと同様に、いくつかのその他のサブモデルを有することに相当する。
更に多くのデータが収集された後のセグメント化35_204では、午前ジムサブモデル35_212を生成するために、ジムサブモデルモデル35_210の更なるセグメント化が行われ得ると判定される。本例では、午前の時刻に対する十分な履歴データが収集されたので、(これは午後ジムサブモデル35_211に対応しないデータのみを使用する)より一般的なジムサブモデル35_210を用いるよりも、アプリケーションをより高い精度で予測できる。
1.既定モデル
デバイスがユーザによって最初に得られた(例えば、購入された)場合、既定モデルが使用され得る。既定モデルは、イベントのグループ(例えば、トリガーイベントと指定されるすべてのイベント)に適用することができる。上述のように、既定モデルは、他のユーザからの集約データをシードとすることができる。一部の実施形態では、既定モデルは、例えば、任意の一つのコンテキストに対して利用できるデータが十分でないので、コンテキストにかかわらず、単に最も人気のあるアプリケーションを選ぶことができる。より多くのデータが収集されると、既定モデルを廃棄することができる。
一部の実施形態では、既定モデルは、提案される所定のアプリケーション(単数又は複数)及び実行されるアクションを特定するハードコードされたロジックを有することができる。このようにして、ユーザがどのように応答するか(例えば、否定的な応答はユーザが提案されたアプリケーションを選択しないことである)についてユーザは深く調査される場合があり、これは、単純に、ユーザの肯定的な応答を追跡する、追加データを提供することができる。かかる既定モデルと並列に、その予測と実際の結果を比較するため、予測モデルが実行されている場合がある。その後、予測モデルは、実際の結果に応答して精緻化され得る。予測モデルが十分な信頼度を有する場合、既定モデルから予測モデルに切り替えを行うことができる。同様に、サブモデルの性能を追跡することができる。サブモデルが十分な信頼度を有する場合、サブモデルは、所与のコンテキストに対して使用され得る。
2.初期トレーニング
予測モデル(例えば、イベントモデル35_205)は、これまで収集された履歴データを用いて初期トレーニングを受けることができ、この場合、モデルはユーザに提案を提供しない。このトレーニングは、初期トレーニングと呼ばれる場合がある。予測モデルは、定期的に(例えば、毎日)バックグラウンドプロセスの一部として更新される場合があり、それはデバイスが充電中で使用されていないときに発生してもよい。トレーニングは、正確な予測数を最適化すると共に、履歴データ内の実際の結果と比較されるようにモデルの係数を最適化することを伴う場合がある。別の実施例では、トレーニングは、実際に選択された上位N個(例えば、所定の数、所定のパーセンテージ)のアプリケーションを識別することを含んでもよい。トレーニング後、モデルの精度は、モデルが提案されたアプリケーション(及び対応する潜在的なアクション)をユーザに提供するのに用いられるべきかを判定するのに測定され得る。
モデルが十分な精度を得る(例えば、最上位選択アプリケーションが十分に高い精度で選択されている)と、モデルを実装することができる。かかる出来事は、最上位水準のモデル(例えば、イベントモデル35_205)には起こらない場合があるが、サブモデルが特定のコンテキストに対してテストされた場合は、発生する場合がある。したがって、かかる初期トレーニングは、サブモデルに対して同様に実行することができる。
モバイルデバイスの使用を通して履歴情報が蓄積されるについて、予測モデルは、新しい履歴情報を考慮して定期的にトレーニング(すなわち、更新)されてもよい。トレーニングされた後、予測モデルは、ユーザとモバイルデバイスとの間の一番最近の相互作用パターンにしたがって、より正確にアプリケーション及びアクションを提案することができる。予測モデルのトレーニングは、大量の履歴情報が記録された場合は、最も効果的となり得る。こうして、トレーニングは、モバイルデバイスがユーザとの多数の相互作用を検出できるようにするほど十分に長い間隔で発生してもよい。しかし、トレーニングセッションの間あまりに長時間待つことは、予測エンジンの適応性を妨げる場合がある。したがって、トレーニングセッションの間の好適な時間は、15~20時間、例えば、18時間とすることができる。
予測モデルのトレーニングは時間がかかる場合があり、モバイルデバイスの使用と干渉する場合がある。したがって、トレーニングはユーザがデバイスを使用する可能性が最も低いときに発生してもよい。ユーザがデバイスを使用しないであろうことを予測する一つの方法は、デバイスが使用されていない期間、例えば、ボタンが押されていないとき、及びデバイスが移動していないときを一定期間待つ方法がある。これは、ユーザが近い将来に一定期間、例えば、ユーザが寝ているとき、電話機と相互作用しない状態にあることを示すことができる。任意の好適な持続時間は、1時間から3時間などの待ち時間に使用することができる。特定の実施形態では、待ち時間は2時間である。
2時間の終わりに、予測モデルは更新されてもよい。しかし、この2時間の終了前に、ユーザがモバイルデバイスと相互作用する(ボタンを押すか、又はデバイスを移動する)場合は、2時間の期間のカウントダウンが再始動してもよい。この時間が、アクティブにされていない2時間に達する前に絶えず再始動する場合は、モバイルデバイスは、絶対時間後に予測モデルのトレーニングを強制してもよい。一実施形態では、絶対時間は、旧式の予測モデルのため、ユーザによるモバイルデバイスの使用しやすさが低下し始める閾値時間であると判定されてもよい。絶対時間は、10~15時間である場合があり、あるいは特定の実施形態では12時間としてもよい。したがって、トレーニング間の最大時間は、28時間(18+10時間)~33時間(18+15時間)とすることができる。特定の実施形態では、最大時間は、30時間(18+12時間)である。
III.コンテキスト情報に基づいたモデルの選択
予測モデル及びあらゆるサブモデルは、例えば、図35-2に示すように決定木として体系化され得る。決定木のサブモデルはノードとも呼ばれる場合がある。決定木の各ノードは、異なるコンテキスト、例えば、異なるコンテキストデータの組み合わせに対応することができる。コンテキスト情報のコンテキストデータを用いて決定木を横断でき、どのサブモデルを使用するかを判定することができる。
A.決定木の横断
図35-3は、本発明の実施形態にしたがって生成され得る決定木35_300を示す。イベントモデル35_305は、決定木35_300の最上位水準のモデルに対応する。イベントモデル35_305は、例えば、本セクションで述べるように、特定のイベントに対応することができる。イベントモデル35_305は、対応するイベントの検出に応答して選択されてもよい。イベントモデル35_305が選択されると、どのサブモデルが使用されるかについて判定が行われてもよい。各サブモデルは異なる履歴データ、例えば、相互排他的なセットのデータを使用することができる。異なるサブモデルを有する異なる決定木が検出された異なるイベントに対して存在することになる。
決定木35_300の第1の階層水準は、ロケーションカテゴリに対応する。ノード35_310は、ロケーション1に対応し、それはロケーション1の境界領域(例えば、特定の半径内)として規定されてもよい。ノード35_320はロケーション2に対応する。ノード35_330はロケーション3に対応する。ノード35_340は、任意の他のロケーションに対応する。
サブモデルが、コンテキスト情報が特定のロケーションに対応するとき、より一般的なノード35_340が予測できるよりも高い信頼度でアプリケーションを予測できる場合に、ノード35_310、35_320及び35_330のそれぞれは生成され得る。ノード35_310及び35_320は更なる子ノードを有するが、ノード35_330は有しない。
実施形態は、ノード35_310,35_320及び35_330のいずれかが特定の出来事に対するコンテキスト情報と一致するかを検索することによって、決定木35_300を横断することができる。イベントの特定の出来事に対するユーザデバイスのコンテキスト情報が、ロケーション3を含むコンテキストを示す場合、ノード35_330に対して一致が発見される。ノード35_330は更なる子ノードを有しないので、ノード35_330のサブモデルが使用され得る。
ノード35_310は、2つの子ノード、すなわちノード35_311及びノード35_312を有する。ノード35_311は特定の時刻(時刻1)に対応し、ノード35_312は時刻1と一致しないすべての他の時刻に対応する。イベントの現在の出来事に対するコンテキスト情報がロケーション1(かつ、それゆえに、ノード35_310との一致)を含む場合、検索が実行され、コンテキスト情報が時刻1を含むか(すなわち、ノード35_311と一致するか)を判定することができる。コンテキスト情報が時刻1を(すなわち、ロケーション1と組み合わせて)含む場合、予測を行うのにノード35_311のサブモデルを使用することができる。コンテキスト情報が時刻1を含まない場合、予測を行うのにノード35_312のサブモデルを使用することができる。
ノード35_320は、2つの子ノード、すなわちノード35_321及びノード35_322を有する。ノード35_321はユーザデバイスが特定のデバイス(デバイス1)に接続されているかどうかに対応し、ノード35_322は、ユーザデバイスがデバイス1に接続されていないときに対応する。イベントの現在の出来事に対するコンテキスト情報がロケーション2を含む(かつ、それゆえに、ノード35_310と一致する)場合、検索が実行され、コンテキスト情報がデバイスへの接続を含むか(すなわち、ノード35_321と一致するか)を判定することができる。コンテキスト情報がデバイス1への接続を(すなわち、ロケーション2と組み合わせて)含む場合、予測を行うのにノード35_321のサブモデルを使用することができる。コンテキスト情報がデバイス1への接続を含まない場合、予測を行うのにノード35_322のサブモデルが使用され得る。
したがって、木の底が検出されると、予測を行うのに最終ノードのサブモデルが使用され得る。木35_300の分岐のすべては、常に同一のコンテキスト情報に対して最終ノードが選択されて、決定的となり得る。決定木35_300の同じ階層水準のすべてのノードを同じカテゴリに対応させることで、適用可能なノードを選択する際の衝突を回避することができる。例えば、イベントモデル35_305の子ノードが時刻1に対応する場合、それがノード35_311と衝突し得るため、衝突が存在する可能性がある。かかる実施形態では、同じ水準だが異なる親ノードの下のノードは、ノード35_311及び35_312のセット並びにノード35_321及び35_322のセットの場合と同じように、異なるカテゴリに対応することができる。
検出されたイベント及びコンテキスト情報に基づいてサブモデルが選択されると、選択されたサブモデルは、より多くのアプリケーション及び対応するアクションは何かを予測するのに使用され得る。一部の実施形態では、予測されたアプリケーションに対してどのアクションを取るかは、アプリケーションが予測される信頼水準に依存する場合がある。
B.方法
図35-4は、本発明の実施形態に係る、イベントに基づいてコンピューティングデバイスのユーザにアプリケーションを提案するための方法35_400のフローチャートである。方法35_400は、コンピューティングデバイスによって(例えば、ユーザデバイスとのユーザ相互作用を追跡しているユーザデバイスによって)実行され得る。方法35_400は、コンピューティングデバイスの1つ以上のプロパティの異なるセットを有する相互作用を含む過去相互作用のセットを使用して、アプリケーションを提案することができる。
ブロック35_410では、デバイスは入力デバイスでイベントを検出する。入力デバイスの例は、ヘッドホンジャック、ネットワーク接続デバイス、タッチスクリーン、ボタンなどである。イベントは、モバイルデバイスが外部デバイス又はユーザなどの外部エンティティと相互作用するあらゆるアクションとすることができる。イベントはデバイスに対して繰り返されるタイプのものとすることができる。こうして、履歴統計データは、イベントの異なる出来事に対して得ることができる。モデル及びサブモデルは、かかる履歴データを用いてトレーニングされ得る。
ブロック35_420では、イベントに対応する予測モデルが選択される。選択された予測モデルはイベントに依存する場合がある。例えば、Bluetooth接続に対して設計された予測モデルは、イベントが外部デバイスとのBluetooth接続の確立に関連する場合に選択されてもよい。別の実施例としては、ヘッドホン接続に対して指定された予測モデルは、イベントがヘッドホンのセットのヘッドホンジャックへの挿入に関連する場合に選択されてもよい。
ブロック35_430では、コンピューティングデバイスの1つ以上のプロパティを受信することができる。1つ以上のプロパティが、デバイス上で実行されるアプリケーション提案エンジンによって受信されてもよい。本セクションで述べるように、プロパティは時間、ロケーション、モーション状態、現在又は以前の電力状態(例えば、オン、オフ、又はスリープ)、充電状態、現在の選曲、カレンダーイベントなどに対応することができる。かかる1つ以上のプロパティは、デバイスの特定のコンテキストを規定するコンテキストデータに対応することができる。イベントを検出した頃の時刻に、例えば、ある時間内に、1つ以上のプロパティを測定することができる。時間は、イベント検出前後の時刻、イベント検出直前の時間、又はイベント検出直後の時刻を含むことができる。
ブロック35_440では、1つ以上のプロパティが予測モデルの特定のサブモデルを選択するのに使用される。例えば、決定木は横断され、特定のサブモデルを判定することができる。例えば、1つ以上のプロパティが特定のサブモデルを一意的に識別する点で、特定のサブモデルは1つ以上のプロパティに対応することができる。これは、決定木が同じ親ノードの下の異なるカテゴリのプロパティを有しないように規定されているときに、発生することができる。
特定のサブモデルは、デバイスとのユーザの過去相互作用の特定のサブセットを用いて生成することができる。特定のサブセットは、サブモデルを作成することによって精度を高くするセグメント化プロセスから生じ得る。過去相互作用の特定のサブセットを、イベントの発生後にデバイスとのユーザ相互作用を追跡することによって得ることができる。コンピューティングデバイスは、特定のサブセットが得られるとき、1つ以上のプロパティを有する。こうして、デバイスの現在のコンテキストは、過去相互作用の特定のサブセットが得られたデバイスのコンテキストに対応する。
ブロック35_450では、特定のサブモデルは、1つ以上のアプリケーションを識別し、ユーザに提案する。1つ以上のアプリケーションは、イベントと関連してユーザがアクセスしている1つ以上のアプリケーションのうち少なくとも1つの少なくとも閾値確率を有してもよい。履歴データ内の1つ以上のアプリケーションのうち1つの予測は、正確な予測として識別され得る。閾値確率は、様々な方法で測定することができ、以下に詳述するように、履歴データから測定された確率分布を使用することができる。例えば、確率分布の平均(average)(平均(mean))確率、中央(median)確率、又はピーク値は、閾値確率を超える(例えば、0.5(50%と同等)を超える)ように要求され得る。こうして、信頼水準は、確率分布の平均値、中央値又はピーク値とすることができる。別の例は、特定の値を超える確率分布のための面積が閾値確率より大きいことである。
ブロック35_460では、1つ以上のアプリケーションと相互作用するためにユーザインタフェースがユーザに提供される。例えば、デバイスは、ユーザが識別されたアプリケーションにアクセスしたいかどうかを示すように、ユーザが相互作用し得るインタフェースを介して、識別されたアプリケーションをユーザに表示してもよい。例えば、ユーザインタフェースは、識別されたアプリケーションのうちの1つ以上をユーザに示すタッチ感知ディスプレイを含んでもよく、タッチ感知ディスプレイと相互作用することによって、ユーザは、デバイスによって識別されたアプリケーションのうち1つ以上にアクセスするのを可能にする。ユーザインタフェースは、コンピューティングデバイスのホームスクリーン上で提供されるよりも、少ないアプリケーションとディスプレイスクリーン上で相互作用するのを可能にすることができる。
一実施例としては、1つ以上の提案されたアプリケーションは、ロックスクリーン上で提供され得る。ユーザは、ロックスクリーンからアプリケーションを開くよう選択することができ、それによって、ユーザがアプリケーションと相互作用するのを容易にすることができる。ユーザインタフェースは、他のスクリーン上で提供される場合もあり、デバイスの使用を開始するためにボタンをアクティブにした後、発生してもよい。例えば、アプリケーションに特有のユーザインタフェースは、(例えば、パスワード又はバイオメトリックを介して)ユーザを認証した後に出現することができる。
C.例示のモデル
一部の実施形態では、モデルは、所与のセット(又はサブセット)のデータのための上位N個のアプリケーションを選択することができる。このN個のアプリケーションは過去に最も選ばれたものなので、将来の行動は過去の行動を反映するものと予測することができる。Nは、アプリケーションの所定の数(例えば、1、2、又は3)又はパーセンテージとすることができ、それは、イベントと関連して実際に使用されたアプリケーションのパーセンテージ(すなわち、デバイス上のすべてのアプリケーションとは限らない)であり得る。かかるモデルはユーザに提供するための上位N個のアプリケーションを選択することができる。更なる分析が実行され、例えば、信頼水準に依存し得る、N個のアプリケーションをユーザに提供するか、及びN個のアプリケーションをユーザにどのように提供するか(例えば、アクション)を判定するために、N個のアプリケーションのそれぞれに対して確率(信頼)水準を測定することができる。
Nが3である例では、コンテキスト情報が特定のサブモデルに相当する状態でイベントが発生した場合、モデルは、上位3つの最も起動されるアプリを返すであろう。
他の実施形態では、サブモデルは、合成信号を使用することができ、この場合、一部のコンテキスト情報は、単にサブモデルを選択するためにコンテキスト情報を用いるのではなく、予測されたアプリケーションを決定する際に使用される。例えば、ニューラルネットワーク又はロジスティック回帰モデルは、アプリケーションを予測するため、ロケーション(又はその他の特徴)を使用すると共に、これらの特徴のいくらかの線形重み付き組み合わせを構築することができる。このようなより複雑なモデルは、サブモデルに対するデータ量が著しく大きい場合は、より好適となり得る。一部の実施形態は、より多くのデータが特定のノードに対して得られると、その特定のノードで用いられるサブモデルのタイプ(すなわち、コンテキストデータの特定の組み合わせ)を切り替えることができる。
IV.モデル及び決定木の生成
一部の実施形態では、決定木は、再生時における履歴データに基づいて定期的に(例えば、毎日)再生され得る。こうして、決定木は、異なる日において異なる形態を有することができる。子ノード(更なるサブモデル)の生成は、アプリケーション(単数又は複数)を予測するための信頼度が増大されることによって統御することができ、これは、情報利得とも呼ばれる。子ノードの生成はまた、子ノードに対するデータが統計的に有意であるかによっても統御され得る。一部の実施形態では、所与の水準での子ノードのすべて(例えば、ジムサブモデル35_210及びその他のサブモデル35_240)は、統計的に有意となるよう要求され得、親ノードに対する情報利得を提供することができる。
決定木のノードを判定する際は、セグメント化を様々な方法で実行することができ、結果的に異なる決定木が生じ得る。例えば、特定のロケーション及び特定の時刻は両方とも使用することができる。一部の実施形態では、アプリケーションを予測するための情報利得(信頼度)の最大の増加をもたらすプロパティは、決定においてより高く生成され得る。かかるセグメント化プロセスは、ユーザが相互作用することになる正確なアプリケーションを予測する確率を確実に最も高くすることができる。
A.モデルの精度分布
モデルの精度は、履歴データに照らしてテストすることができる。所与のイベントについては、履歴データは、どのアプリケーション(単数又は複数)がそのイベントと関連して(例えば、1分以内のように直前又は直後)使用されたかを識別することができる。各イベントについては、コンテキストデータを使用して特定のモデルを判定することができる。更に、コンテキストデータはモデルへの入力特徴として使用することができる。
モデル(又はサブモデル)が最上位アプリケーションを選択する実施例では、最上位アプリケーションが実際に選択(起動)された履歴データポイントの数が正確なカウントとして判定され得、また最上位アプリケーションが選択されなかった履歴データポイントの数は不正確なカウントとして判定され得る。上位Nを選択するモデルに対してNが1より大きい実施形態では、正確なカウントは、上位N個のアプリケーションのうち1つが起動された任意の履歴データポイントに対応することができる。
正確なカウント及び不正確なカウントは、モデルがどれほど正確であるかを特定する分布を判定するのに使用することができる。二項分布は、精度分布として使用され得る。パラメータm及びpを有する二項分布は、ひと続きのm個の独立したyes/no実験における成功数の離散確率分布である。ここで、yes/no実験は、予測されたNアプリケーションのうち1つが正確であるかどうかである。例えば、モデルは、音楽アプリケーションが起動されると予測し、そして音楽が起動された場合、データポイントがyes(真)の実験の数を追加する。音楽アプリケーションが起動されなかった(例えば、別のアプリケーションが起動されたか、又はアプリケーションは何も起動されなかった)場合、データポイントはno(偽)の実験の数を追加する。
ベイズの定理のもとでは、
Figure 0007478304000002
Bは、特定の判定された正確なカウントT及び不正確なカウントFを得るイベントである。Aは、予測されたアプリケーションが正確であるというイベントである。P(A)は、正確なアプリケーションを無作為に選択する事前(期待)確率であり、少なくとも履歴データがなければ、特定のアプリケーションが他のいずれかのアプリケーションよりも多く期待されることはないので、1であると想定され得る。P(B)は、モデルが正確である確率(正確なカウントを履歴イベントの総数で割ったものに相当する)である。P(B|A)は、所与の確率rに対する正確なカウントT及び不正確なカウントFを得る尤度関数である(すなわち、正確か不正確かを得る均等な確率を0.5とみなすことができるイベントA)。P(A|B)は、事後確率が判定されること、すなわち、履歴データBが与えられたときに予測アプリケーション(単数又は複数)のうち1つが選択される確率である。
一様な事前確率が存在する場合、P(A)が消えて1が残り、P(A|B)/P(B)となり、これは、beta[#correct,#incorrect]、即ち、パラメータalpha=#correct及びbeta=#incorrectを有するbeta分布に等しい。beta関数はalpha=0又はbeta=0のため、明確に定義されていないので、実施形態は#correct及び#incorrectに対して初期値1と仮定することができる。beta[1+#correct,1+#incorrect]は二項分布である。
ベイズ統計では、事後確率p(θ│X)は、証拠X(例えば、履歴データの正確なカウント及び不正確なカウント)が与えられたとき、パラメータθ(例えば、実際に選択されたアプリケーションは予測されるアプリケーションのうちの1つである)の確率である。これは、パラメータが与えられたときの証拠X(例えば、履歴データの正確なカウント及び不正確なカウント)の確率(例えば、予測されるアプリケーションがイベントに対して選択されている)である、尤度関数p(x|θ)とは対照的である。この2つは、以下のとおり関連している。すなわち、確率分布関数がP(θ)(例えば、選択されたアプリケーションが正確であるだろう期待確率)であるという事前信念、及び尤度p(x|θ)を有する観察値Xがある場合、事後確率は
Figure 0007478304000003
として規定される。事後確率は事前確率と尤度の積に比例すると考えることができる。
他の精度分布を使用してもよい。例えば、ディリクレ分布を使用することができ、それは、beta分布の多変量一般化である。ディリクレ分布は、beta分布が二項分布の共役事前であるのと同様に、カテゴリ分布及び多項分布の共役事前である。ディリクレは、その確率密度関数を有し、各イベントがα-1回観測された場合、K個のライバルイベントの確率はxであるという信念を返す。ディリクレ分布は、多項分布として、アプリ起動の全ヒストグラム(すなわち、特定のイベントに対するアプリ起動の予測数)を生成するのに使用され得る。
その代わりに、実施形態は、それらを2つのクラス(正確及び不正確)に分割し、二項分布を用い、全ヒストグラムを提供する必要はない。他の実施形態は、ディリクレ分布(多項分布の共役事前)を使用して、ヒストグラム全体を記載するというより難しい問題を解決しようと試みることができるが、これは、より多くのデータが説明される必要があるから、信頼性のあるように多くのデータを取り込むことになる。
B.例示の二項分布
図35-5A~図35-5Dは、本発明の実施形態に係る、様々な正確な数及び不正確な数の例示の二項分布のプロットを示す。プロットはbeta[1+#correct,1+#incorrect]から生成されたものである。プロット内の横軸上には、1は正確な予測に対応し、0は不正確な予測に対応する。縦軸は、モデルがどれくらいの頻度で正確になるかについての確率を提供する。これらの分布はまた、確率密度関数(PDF)とも呼ばれる。分布は、比較のために正規化することができる。
図35-5Aは、2個の正確な予測及び2個の不正確な予測についての二項分布を示す。かかるモデルは、正確と不正確が等しいので、0.5において確率が最も高くなる。0.5の最高値は、モデルが半分の回数だけ正しい予測を得る可能性が最も高いことを示す。データポイントの数が少ない場合、分布はかなり広くなる。したがって、モデルの精度についての信頼度は低いものである。モデルが回数の50%未満は正確であるか、あるいは回数の50%超は正確であるという確率が顕著に存在する。しかし、データポイントの数が少ないので、正確さを判定する際の信頼度は低い。
図35-5Bは、2個の正確な予測及び1個の不正確な予測についての二項分布を示す。かかるモデルは、回数の66%は正確である。したがって、分布のピークは約0.66である。しかし、データポイントの数が少ない場合、信頼度は非常に低くなる。モデルが回数の10又は20%しか正確にならない確率が顕著に存在する。
図35-5Cは、4個の正確な予測及び2個の不正確な予測についての二項分布を示す。かかるモデルはまた、回数の66%は正確であるが、依然としてデータポイントの数が少ない場合は、より多くのデータが得られると、モデルが30%しか正確にならない確率が顕著に存在する。
図35-5Dは、40個の正確な予測及び20個の不正確な予測についての二項分布を示す。かかるモデルはまた、回数の66%は正確である。しかし、データポイントの数がより多い場合は、モデルが30%しか正確にならない確率が非常に低い。したがって、分布は、モデルの精度が66%であることを判定するにあたって、より高い信頼度を示す。更に、分布下の面積の多くは0.5の右側にあるので、モデルが回数の少なくとも50%は正確であることを、図35-5Bに対して判定できるより高い信頼度で判定することができる。
C.統計的有意性
モデルが十分な信頼度で正確である場合と間違っている場合を正確に分けることができる場合、モデルは統計的に有意であると考えることができる。不正確な予測数及び正確な予測数に基づいて判定された事後確率分布は、モデルが十分に正確かを十分な信頼度で判定するのに使用することができる。
統計的有意性のために要求される信頼水準は、様々な方法で提供でき、様々な基準を有することができる。分布の平均的な精度(#correct/#total)、分布のピーク、又は分布の中央値は、特定の値を有することが要求され得る。例えば、モデルは、例えば、分布の平均で測定して、回数の少なくとも50%は正確であることが要求され得る(すなわち、0.5より大きい)。#correct/#totalはまた最尤推定とも呼ばれる。
更なる基準(信頼水準)は精度の信頼度になり得る。信頼度は、下限より上にある分布の積分によって測定することができる(例えば、0.25又はその他の値より上にある分布の面積)。分布曲線の下の面積は累積分布関数とも呼ばれる。一実施形態では、基準は、PDFの面積の95%が0.25を超えることとすることができる。間隔[x,1.0]がPDFより下の面積の95%をカバーする点は、「信頼下限」と呼ばれる。したがって、2回正しく、1回間違っていた場合、回数のうち66%は正しいが、それは、図5Bのように、分布が非常に広いので、統計的に有意ではない。
一部の実施形態では、モデルが十分に正確であり、精度を知るのに十分な信頼度がある場合のみ、モデル(例えば、最上位水準モデル又はサブモデル)を使用し始める。例えば、初期モデルは、使用される前しばらくの間はトレーニングされる場合がある。一度でも精度及び信頼度がそれぞれの閾値を超えると、実施形態は、ユーザに提案を提供するため、モデルを使用し始め得る。一部の実施形態では、面積が右側に十分にシフトされると、精度が十分に高いことが分かるため、PDFの一定量の面積の要件が、モデルを使用するかを判定するための単一の基準を提供することができる。
一部の実施形態では、初期モデルは、他の人々からのデータを用いて、少なくとも最初により多くの統計を提供することができる。その後、十分な統計が得られると、特定の人に対するデータだけが使用されてもよい。更に、そのユーザ特有のデータをより高く重み付けして、他の人々からのデータを徐々に取り除くことができる。
D.情報利得(エントロピー)
モデルの第1の確率分布とサブモデルの第2の確率分布との間で比較を行い、モデルをセグメント化するかを判定することができる。一部の実施形態では、この比較により、情報利得(例えば、カルバック・ライブラー情報量)、すなわち、これと同等の、エントロピーの低下が存在するかを判定することができる。高いエントロピーでは、多くのアプリケーションの、選択される確率は同様となり、最大のエントロピーは、すべてのアプリケーションにおいて同じ確率となる。最大エントロピーでは、アプリケーションのすべてが等しい確率を有し、あるアプリケーションが選択される確率が、他のものより高い、ということはなくなるため、正確なアプリケーションを選択する尤度は最小となる。
かかる差分メトリックを使用して、サブモデルが適用されることになる所与のコンテキストのサブモデルを用いてより正確な予測(信頼度を含む)を行うことができるかを判定することができる。差分メトリックは差分閾値を超える場合、セグメント化が実行され得る。差分メトリックは、情報が得られたことを確認するために正符号を有することができる。カルバック・ライブラー情報量は差分メトリックとして用いられることができる。他の例示のメトリックは、ジニ不純度及び分散減少を含む。
例えば、あらゆることに対して1つのモデルが存在した場合、モデルは、すべてのコンテキストに対して最上位アプリケーション(例えば、音楽アプリケーション)のみを選択する。音楽アプリケーションは、すべてのコンテキスト(例えば、ジム、車での通勤時)に対する予測となる。サブモデルがより具体的なコンテキストに対して生成されると、予測は、より具体的になることができ、例えば、ユーザがジムに行く場合、単一のアプリのみが選択される、又は特定のプレイリストのみが選択される。したがって、1つのアプリケーションの選択数にピークが存在する場合があり、他のすべてはゼロになる。こうして、決定木での目標は、情報利得を最大化する(エントロピーを最小化する)ことである。
更なるサブモデルは、より具体的なコンテキストがより多くの情報利得を提供できる場合に、識別され得る。例えば、午前中のジムは、特定のプレイリストのみが選択される場合における、より具体的なコンテキストであり得る。別の実施例としては、午前中に車に接続されると、ニュースアプリケーションのより正確な予測を提供できるのは、履歴データが、主としてニュースアプリケーション(又はニュースアプリケーションのグループ)を選択するように、より体系化されるからである(エントロピーの低下)。
図35-6A及び図35-6Bは、本発明の実施形態に係る、セグメント化から生じる親モデル及びサブモデルを示す。図35-6Aは、80個の正確な予測及び60個の不正確な予測を提供する親モデルについての二項分布を示す。サブモデルを、親モデルに使用される履歴データの一部から作成することができる。図35-6Bは、14個の正確な予測及び2個の不正確な予測を提供するサブモデルについての二項分布を示す。サブモデルはデータポイントがより少ないが、より高い正確性を意味する、1に向かうシフトによって明らかであるように、より高い精度を有する。こうして、エントロピーが低下し、情報利得が得られる。
E.セグメント化する時期
上述のように、様々な実施形態は、サブモデルを生成するようモデルをセグメント化するかを判定するための1つ以上の基準を使用することができる。1つの基準は、正確な予測を行うための信頼水準(1つ以上の予測されたアプリケーションのグループのうちの1つが選択される)が信頼度閾値を超えることとすることができる。例えば、正確な予測の平均確率は、精度閾値(信頼度閾値の例)よりも高い。別の実施例としては、特定の値を超える分布のCDFは、信頼水準を超えることが要求され得る。
別の基準としては、モデルの代わりにサブモデルを用いることにより、情報利得(エントロピーの低下)を提供することとすることができる。例えば、カルバック・ライブラー情報量の値は、差分閾値と比較され得る。セグメント化についての1つ以上の基準は、サブモデルがベースモデルより性能が優れていることを保証することができる。この1つ以上の基準は、親モデルのサブモデルのすべて、例えば、ジムサブモデル35_210及びその他のサブモデル35_240について要求され得る。
一部の例では、信頼下限は、親モデルに対しする2つのサブモデルにおいて、低下する場合があるが、依然として情報利得と、閾値を超える信頼下限とを有する。信頼下限は増加する場合もある。サブモデルのすべてが十分に高い信頼限界を有し、情報利得が十分に正である限り、実施形態は、より一般的なモデルをセグメント化(分割)するよう選択することができる。
一部の実施形態では、あらゆる精度及び情報利得の基準は、信頼水準がセグメント化の結果として確実に増加することによって満たすことができる。例えば、デバイスの第1のプロパティは、親モデルに関する他のプロパティを含み得る、第1のコンテキストの第1のサブモデルをテストするために選択され得る。コンピューティングデバイスが第1のプロパティを有した場合に発生した過去相互作用の第1のサブセットは、識別され得る。第1のサブセットは、親モデルの過去相互作用のセットから選択され、過去相互作用のセットより小さい。
過去相互作用の第1のサブセットに基づいて、第1のサブモデルは、イベントと関連してユーザがアクセスすることになる、1つ以上のアプリケーションからなる第1のグループのうちの少なくとも1つのアプリケーションを、第1の信頼水準で予測することができる。第1のサブモデルは、少なくとも、0以上とすることができる閾値量だけ初期信頼水準を超える第1の信頼水準に少なくとも基づいて作成され得る。この閾値量は差分閾値に対応することができる。一部の実装形態では、第1のサブモデルは作成され得、この基準が満たされたときにいつも作成されるわけではなく、更なる基準が使用されてもよい。信頼水準が初期信頼水準以下の場合は、別のプロパティがテストのために選択され得る。信頼水準のこうした比較は、情報利得のテストに対応することができる。1つ以上のアプリケーションからなる第2のグループを予測するための第1のサブモデルの(第2のプロパティのための)第2のサブモデルの第2の信頼水準を判定するために、同じプロセスを繰り返すことができる。過去相互作用の第2のサブセットは、第2のサブモデルに使用され得る。第3のプロパティ又はそれ以上のプロパティは同様の方法でテストされ得る。
F.決定木の再生
実施形態は、定期的に、例えば、毎日、モデルの決定木を生成することができる。生成はその時に利用可能な履歴データを使用することができる。こうして、決定木は、1つの生成から別の生成へ変化することができる。一部の実施形態では、決定木は、以前の決定木の知識がなくても構築される。他の実施形態では、新しい決定木が、かかる以前の知識から、例えば、どんなサブモデルが起こりそうかを知るか、又は以前の決定木から開始することによって、構築され得る。
一部の実施形態では、すべてのコンテキスト(又はコンテキストの所定のリスト)が試みられ、どのサブモデルが最大の情報利得を提供するかを判定する。例えば、ロケーションがサブモデルにセグメント化するための最大の情報利得を提供する場合、少なくとも1つの特定のロケーションのサブモデルが作成され得る。セグメント化の各水準では、コンテキストはかかる貪欲な方法でテストされ、どのコンテキストが情報利得の最大の増加を提供するかを判定することができる。
他の実施形態では、セグメント化が適切かどうかをテストするためコンテキストのサブセットが選択される(例えば、擬似ランダムを含む、ランダム選択)。かかる選択は、テストされ得る多くのコンテキストがある場合に、有利となり得る。コンテキストは、どのコンテキストがセグメント化につながりそうかについての確率を使用できる、モンテカルロベースのアプローチを用いて選択され得る。乱数を生成でき(ランダムプロセスの一例)、その後、それを使用して、(特定のプロパティに対して)どのコンテキストをテストするかを判定することができる。
確率は、重み付けがより高いコンテキストが「ランダム」選択プロセスにおいてより選択される可能性が高くなるような、重み付けとして使用することができる。確率は、どのサブモデルが過去に生成されたかに基づいて判定され得る。例えば、ジム(及び潜在的に特定の時間帯が以前は非常にうまくいった)であれば、生成プロセスは、どれくらいの頻度でコンテキストが過去に選ばれたかに応じて、かつ場合により情報利得が過去にどれくらい高かったかにも応じて、90%、95%又は99%の尤度でそのコンテキストを選ぶ。特定数の分割が各水準に対して、又は木生成プロセスの全体に対して試みられるであろう。
V.確率水準に基づいたアクションの判定
予測モデルは、選択されたアプリケーションに対してだけでなく、特定のアクション、及び潜在的には、メディアコンテンツ(例えば、特定のプレイリスト)に対してテストすることができる。一部の実施形態では、アプリケーションを選択する確率が十分に正確になると、起動するオプションをただ提供するよりも、積極的なアクションが提供され得る。例えば、アプリケーションが起動される場合、コンテンツは自動的に再生することができる。あるいは、アプリケーションは自動的に起動されることができる。
アプリケーションの選択が十分な確率(例えば、信頼水準が高い閾値を超える)で予測されると、その予測はテストアクションを開始することができる。したがって、テストは、アプリケーションの予測のためだけでなく、特定のアクションが十分な精度で予測され得るかをテストするためでもある。可能性のある異なるアクション(メディアアイテムを含む)は履歴データから得ることができる。複数のアクションが、一つのアプリケーションで実行されるように選択され得る。複数のアクションのそれぞれは、第1のサブモデルの複数の異なるサブモデルのうちの1つに対応することができる。複数の異なるサブモデルのそれぞれの信頼水準がテストされ、複数のアクションのうち少なくとも1つに対して第2のサブモデルを生成するかを判定することができる。
したがって、実施形態は、より信頼度が高い場合に、実行されるアクションによって、より積極的になる場合がある。予測モデルは、特定のアクションが実行される確率が高い場合、特定のユーザインタフェースを提供してもよい。こうして、一部の実施形態では、使用確率が高くなるほど、単にアプリケーションを開くための簡単なメカニズムを提供するのではなく、対応するユーザインタフェース(例えば、視覚又は音声コマンド)で自動的にアプリケーションを開くといった、より積極的なアクションを取ることができる。
例えば、ベースモデルは、アクションがロックスクリーン上でアプリケーション(単数又は複数)を提案することであるという特定水準の統計的有意性(精度及び信頼度)を有することができる。他の実施例としては、統計的有意性の水準が高くなると、スクリーンがライトアップされ得る(それによって、そのアプリケーションに注意を促し)、たった1つのアプリケーションが選択され得、又はアプリケーションのユーザインタフェース(UI)が提供され得る(すなわち、アプリケーションを選択するためのシステムのUIではない)。一部の実施形態は、セグメント化するかを判定する際に取られるアクションを考慮してもよく、アクションが失われる場合はセグメント化せず、それは、一般的に情報利得を有することに対応する。
アクションは、モデルが1つのアプリケーションのみを予測するか、それともアプリケーションのグループを予測するかに依存する場合がある。例えば、1つではなく3つの推薦をする機会がある場合、その3つのうち任意の1つを選択すると正確な予測を提供することになるため、確率分布も変更されるであろう。1つのアプリケーションの推薦に対して信頼できなかったモデルが、3つに対して十分に信頼できるものとなり得る。実施形態は、別のアプリケーションをモデルによって予測されるアプリケーション(例えば、グループ内にはまだない、次に最も使用されたアプリケーション)のグループに追加することを実行でき、それによって、モデルをより信頼できるものにすることができる。モデルが2つ以上のアプリケーションの予測に基づく場合、提供されるユーザインタフェースは次いで、2つ以上のアプリケーションとの相互作用を提供することになり、それは、UIの形態に影響する場合がある。例えば、アプリケーションのすべてはロックスクリーン上に提供でき、1つのアプリケーションは自動的に起動しない。
複数のアクション、及び異なるアクションに対する提案も存在する場合がある。例えば、サブモデルの一部として、ジムにおいて2つのプレイリストが存在することができる(例えば、1つのアプリケーションが識別されるが、2つのアクションが、同様の尤度で選択される場合、その2つのアクションが、そのモデル内で識別される)。2つのアクション、別々では統計的有意性を有さないが、合わせると、統計的有意性を有する場合がある。
一実施例として、あるイベント(例えば、ヘッドホンに差し込む)に対するモデルが最初にトレーニングされているときは、モデルはあらゆるアクションを実行するほど十分には信頼できない場合がある。初期水準の信頼度では、アイコン又は他のオブジェクトはロックスクリーン上に表示され得る。より高水準の信頼度では、スクリーンはライトアップしてもよい。更なる水準の信頼度では、アプリケーションの特定の機能に特有のユーザインタフェースが表示され得る(例えば、音楽を再生するコントロール、又は新しいアプリケーションのトップストーリにアクセスするためのスクロールウィンドウ)。次に高い水準は、自動的に起動されるアプリケーションの特定の機能に対応することができる。アクションは、アプリケーションの現在の動作(ある曲を再生する)を別の曲又はプレイリストの再生に換えることさえできる。これらの異なる水準は、信頼水準を規定するのに使用される様々な値とすることができる。
他の例示のアクションは、現在再生中の曲の変更、通知の提供(スクリーンの前面及び中央とすることができる)を含むことができる。アクションは、デバイスのロックを解除した後に発生することができ、例えば、アプリケーションに特有のUIをロック解除後に表示することができる。アクションは、アプリケーションの特定の機能を開始するための、ディープリンクを用いて規定することができる。
一部の実施形態はディスプレイスクリーン上でのユーザへの通知を表示してもよい。通知は、例えば、プッシュ通知によって送信されてもよい。通知は、提案されたアプリケーションをユーザに通知する画像及び/又はテキストを含む視覚通知とすることができる。通知は、ユーザが自身が暇なときに選択し実行するように、アプリケーションをユーザに提案することができる。選択されると、アプリケーションが実行されてもよい。一部の実施形態では、より積極的な予測については、通知は提案されたアプリケーション内に提案されたアクションを含むこともできる。つまり、通知は、ユーザに提案されたアプリケーション、並びに提案されたアプリケーション内の提案されたアクションを告知してもよい。こうして、ユーザには、提案されたアプリケーションを実行するか、又は提案されたアプリケーション内の提案されたアクションを実行するオプションが与えられ得る。一例として、通知は、提案されたアプリケーションが音楽アプリケーションであり、提案されたアクションが、その音楽アプリケーション内の特定の曲を再生することであることをユーザに告知することができる。ユーザは、提案された曲を図示するアイコンをクリックすることによって、自身がその曲を再生したいことを示すことができる。あるいは、ユーザは、スクリーン上で通知をスワイプすることによって、むしろ自身が別の曲を再生するようアプリケーションを実行したいことを示すことができる。
提案されたアプリケーション及び提案されたアクションを1つの通知としてユーザインタフェースに出力する以外に、予測エンジンは2つの提案されたアクションを1つの通知としてユーザインタフェースに出力してもよい。例えば、予測エンジンは、第1の曲を再生するよう提案されたアクションを出力し、第2の曲を再生するよう第2の提案されたアクションを出力してもよい。ユーザは、通知内のそれぞれのアイコンをクリックすることによって、どの曲を再生するかを選択することができる。実施形態では、提案されたアクションは、異なる基準に基づいて判定されてもよい。例えば、1つの提案されたアクションは、コンテキスト情報にかかわらず一番最近再生された曲を再生するためのものであってもよいが、他の提案されたアクションは同じ又は同様のコンテキスト情報において、最後に再生された曲を再生するためであってもよい。一例としては、ユーザが自身の車に入って、トリガーイベントにより予測エンジンが特定の曲の再生に関連する2つのアクションを提案する状況では、曲Aはたまたま家で発生した最後に再生された曲としてもよく、曲Bはユーザが前回車の中にいたときに再生された曲としてもよい。ユーザが再生される曲を選択する場合、曲は最初から継続してもよいし、最後に停止されたところ(例えば、曲の途中)から継続してもよい。
予測エンジンがアクションを提案できるように、予測エンジン35_302はデバイスのアクティブ状態についての情報を記憶するメモリデバイスにアクセスすることができる。デバイスのアクティブ状態は、提案されたアプリケーションの選択に続いて実行されるアクションを表すことができる。例えば、音楽アプリケーションのアクティブ状態は、特定の曲を再生していることとすることができる。アクティブ状態は、曲が最後にいつ停止したかを追跡してもよい。実施形態では、履歴データベースは、デバイスのアクティブ状態に関する履歴データを記録することができる。したがって、予測エンジンは提案されたアプリケーションによって実行されるアクションを提案することができる。
VI.アーキテクチャ
図35-7は、1つ以上のアプリケーションと相互作用するためにユーザインタフェースをユーザに提供する例示のアーキテクチャ35_700を示す。アーキテクチャ35_700は、イベントを検出すると共に、アプリケーションに対する提案を提供するための要素を示す。アーキテクチャ35_700はまた、例えば、連絡先を提案するための他の提案を提供することもできる。アーキテクチャ35_700は、ユーザデバイス(例えば、図1A、デバイス100)内に存在することができる。
上部にはUI要素がある。図に示すようにロックスクリーン35_710、検索スクリーン35_720、及び音声インタフェース35_725がある。これらはユーザインタフェースをユーザに提供できる方法である。他のUI要素も使用することもできる。
下部にはデータソースがある。イベントマネージャー35_742はイベントを検出しイベントについての情報をアプリケーション提案エンジン35_740に提供することができる。一部の実施形態では、イベントマネージャーは、イベントがアプリケーションの提案をトリガーするかどうかを判定することができる。アプリケーションの提案をトリガーするための所定のイベントのリストが、特定され得る。ロケーションユニット35_744は、ユーザデバイスのロケーションを提供することができる。例としては、ロケーションユニット35_744は、GPSセンサ及びモーションセンサを含むことができる。ロケーションユニット35_744はまた、ユーザの最後のロケーションを記憶できる他のアプリケーションも含むことができ、それは、アプリケーション提案エンジン35_740に送信され得る。他のコンテキストデータは他のコンテキストユニット35_746から提供され得る。
アプリケーション提案エンジン35_740は1つ以上のアプリケーション、及び対応するアクションを識別することができる。アプリケーション提案エンジン35_740と同じ水準で、連絡先提案エンジン35_750は、ユーザに提示するための提案された連絡先を提供することができる。
提案されたアプリケーションは、ディスプレイセンター35_730に提供され得、これはユーザに何を提供するかを判定することができる。例えば、ディスプレイセンター35_730は提案されたアプリケーション又は連絡先を提供するかを判定することができる。他の実施例では、アプリケーション(単数又は複数)及び連絡先(単数又は複数)が提供されてもよい。ディスプレイセンターはユーザに提供するための最良の方法を判定することができる。ユーザへの異なる提案は、異なるUI要素を使用してもよい。このようにして、ディスプレイセンター35_730はユーザへの提案を制御することができるので、異なるエンジンは、他のエンジンによって提供される提案に割り込まない。各種実施形態では、エンジンは提案(推薦)をディスプレイセンター35_730にプッシュすることができ、又はディスプレイセンター35_730からの提案に対する要求を受信することができる。ディスプレイセンター35_730は、特定量の時間の提案を記憶し、その後、その提案がユーザに提供されなかった場合、又はユーザがユーザインタフェースと相互作用しなかった場合は、その提案を削除するよう判定することができる。
ディスプレイセンター35_730はまた、他のどんなアクションがユーザデバイスで発生しているかも識別することができ、デバイスにいつ提案を送信するかも識別することができる。例えば、ユーザがアプリケーションを使用している場合は、提案が提供されなくてもよい。ディスプレイセンター35_730は、例えば、デバイスのモーション状態、ロックスクリーンが1つか、又は認証されたアクセスが提供されたか、ユーザがデバイスを使用しているかなど、様々な要因に基づいて、いつ提案を送信するかを判定することができる。
一部の実施形態では、デバイス100(図1A)上に含まれるソフトウェアコンポーネントはアプリケーション提案モジュールを含む。アプリケーション提案モジュールは、例えば、図35-7に上記したように様々なサブモジュール又はシステムを含むことができる。アプリケーション提案モジュールは方法37_400の全部又は一部を実行することができる。
データスパーシティのコンテキストにおける複合ユーザパターンを学習する生成モデルの決定木のセグメント化についての例示の方法、デバイスシステム及びコンピュータ可読媒体
本セクションでは、イベントに基づいて1つ以上のアプリケーションをユーザに提案するシステム、方法及び装置が提供される。予測モデルは、特定のイベントに対応することができる。提案されたアプリケーションは、コンピューティングデバイスの1つ以上のプロパティを用いて判定され得る。例えば、特定のサブモデルは、イベント発生後のユーザ相互作用に関し、かつデバイスが1つ以上のプロパティを有する場合に収集される履歴データのサブセットから生成され得る。サブモデルの木は、コンピューティングデバイスのプロパティの異なるコンテキストに対応して判定されてもよい。また、例えば、履歴データのサブセット内の正確な予測を提供するサブモデル内の信頼水準及び親モデルに対する履歴データの分布内の情報利得(エントロピーの低下)など、様々な基準がサブモデルをいつ生成すべきかを判定するのに使用され得る。
一部の実施形態では、イベントに基づいて1つ以上のアプリケーションをコンピューティングデバイスのユーザに提案するための方法が提供され、この方法は、コンピューティングデバイスにおいて、コンピューティングデバイスの入力デバイスでイベントを検出することであって、このイベントはコンピューティングデバイスに対して繰り返されるタイプのものであることと、イベントに対応する予測モデルを選択することと、コンピューティングデバイスの1つ以上のプロパティを受信することと、1つ以上のプロパティを用いて、1つ以上のプロパティに対応する予測モデルの特定のサブモデルを選択することであって、特定のサブモデルはコンピューティングデバイスとのユーザの過去相互作用の特定のサブセットを用いて生成され、過去相互作用の特定のサブセットは、イベントが検出された後、及びコンピューティングデバイスが1つ以上のプロパティを有する場合に発生することと、特定のサブモデルによって、1つ以上のアプリケーションを識別し、ユーザに提案することであって、1つ以上のアプリケーションはイベントと関連してユーザによってアクセスされる1つ以上のアプリケーションのうちの少なくとも1つの少なくとも閾値確率を有する、ことと、1つ以上のアプリケーションと相互作用するためにユーザインタフェースをユーザに提供することと、を含む。
一部の実施形態では、ユーザインタフェースは、コンピューティングデバイスのホームスクリーン上で提供されるよりも、少ないアプリケーションを有するディスプレイスクリーン上に提供される。一部の実施形態では、特定のサブモデルは信頼度閾値を超える信頼水準で1つ以上のアプリケーションを予測する。一部の実施形態では、方法は、信頼水準に基づいてユーザインタフェースがユーザにどのように提供されるかを判定することを含む。一部の実施形態では、方法は、第1の確率分布を判定すること、及び信頼水準を得るために下限を超えるポイントに対する第1の確率分布の累積分布を計算することによって、信頼水準を判定することを含む。一部の実施形態では、方法は、第1の確率分布を判定すること、及び信頼水準を得るために第1の確率分布の平均値、中央値、又はピーク値を計算することによって、信頼水準を判定することを含む。一部の実施形態では、特定のサブモデルは、予測モデルの正確な予測のための第2の確率分布に対する情報利得を有する過去相互作用の特定のサブセットの正確な予測のための第1の確率分布を提供する。一部の実施形態では、情報利得は、差分閾値を超えるものであり、情報利得はカルバック・ライブラー情報量を用いて判定される。一部の実施形態では、方法は、イベントが検出された後、コンピューティングデバイスとのユーザの過去相互作用のセットを受信することであって、この過去相互作用のセットは過去相互作用の特定のサブセットを含み、かつ過去相互作用の特定のサブセットより大きく、この過去相互作用のセットはコンピューティングデバイスの1つ以上のプロパティの異なるセットを有する相互作用を含む、ことと、予測モデルの初期モデルを用いて、過去相互作用のセットに基づき、イベント後、ユーザがアクセスする1つ以上のアプリケーションを予測するための初期信頼水準を計算することと、コンピューティングデバイスの第1のプロパティを選択すること、コンピューティングデバイスが第1のプロパティを有した場合に発生した過去相互作用の第1サブセットを識別することであって、第1のサブセットが過去相互作用のセットから選択され、かつ過去相互作用のセットより小さいこと、第1のサブモデルを用いて、過去相互作用の第1のサブセットに基づき、イベントと関連してユーザがアクセスする1つ以上のアプリケーションからなる第1のグループのうち、少なくとも1つのアプリケーションを予測するための第1の信頼水準を計算すること、少なくとも閾値量だけ初期信頼水準より大きい第1の信頼水準に基づいて第1のサブモデルを作成すること、及び第1の信頼水準が初期信頼水準以下である場合にテストするための別のプロパティを選択することによって、予測モデルのサブモデルの木を生成することと、を含む。一部の実施形態では、方法は、第1の信頼水準が初期信頼水準以下である場合、別のアプリケーションを1つ以上のアプリケーションからなる第1のグループに追加することと、第1のサブモデルを再びテストすることと、を含む。一部の実施形態では、方法は、更に、コンピューティングデバイスの第2のプロパティを選択すること、コンピューティングデバイスが第1のプロパティ及び第2のプロパティを有した場合に発生した過去相互作用の第2のサブセットを識別することであって、第2のサブセットが過去相互作用の第1のサブセットから選択され、かつ過去相互作用の第1のセットより小さいこと、第2のサブモデルを用いて、過去相互作用の第2のサブセットに基づいて、イベントと関連してユーザがアクセスする1つ以上のアプリケーションからなる第2のグループのうち、1つのアプリケーションを予測するための第2の信頼水準を計算すること、少なくとも閾値量だけ第1の信頼水準より大きい第2の信頼水準に基づいて第2のサブモデルを作成すること、及び第2の信頼水準が第1の信頼水準以下である場合にテストするための第3のプロパティを選択することによって、予測モデルのサブモデルの木を生成することと、を含む。一部の実施形態では、予測モデルのサブモデルの木は定期的に生成される。一部の実施形態では、第1のプロパティは、ランダムプロセスを用いて選択される。一部の実施形態では、1つ以上のアプリケーションからなる第1のグループは1つのアプリケーションであり、方法は、この1つのアプリケーションで実行される複数のアクションを選択することであって、複数のアクションのそれぞれは第1のサブモデルの複数の異なるサブモデルのうち1つに対応することと、複数の異なるサブモデルのそれぞれの信頼水準をテストし、複数のアクションのうち少なくとも1つに対して第2のサブモデルを生成するかを判定することと、を含む。
一部の実施形態では、イベントに基づいて1つ以上のアプリケーションをコンピューティングデバイスのユーザに提案するための複数の命令を記憶し、コンピュータシステムの1つ以上のプロセッサ上で実行されると、コンピューティングデバイスの入力デバイスでイベントを検出することであって、このイベントはコンピューティングデバイスに対して繰り返されるタイプのものであることと、イベントに対応する予測モデルを選択することと、コンピューティングデバイスの1つ以上のプロパティを受信することと、1つ以上のプロパティを用いて、1つ以上のプロパティに対応する予測モデルの特定のサブモデルを選択することであって、特定のサブモデルはコンピューティングデバイスとのユーザの過去相互作用の特定のサブセットを用いて生成され、このユーザの過去相互作用の特定のサブセットはイベントが検出された後、及びコンピューティングデバイスが1つ以上のプロパティを有する場合に発生することと、特定のサブモデルによって、1つ以上のアプリケーションを識別し、ユーザに提案することであって、1つ以上のアプリケーションはイベントと関連してユーザによってアクセスされる1つ以上のアプリケーションのうちの少なくとも1つの少なくとも閾値確率を有することと、1つ以上のアプリケーションに対してアクションを実行することと、を実行する、非一時的コンピュータ可読記憶媒体を含むコンピュータ製品が提供される。一部の実施形態では、特定のサブモデルは、信頼度閾値を超える信頼水準で1つ以上のアプリケーションを予測し、この特定のサブモデルは、予測モデルの正確な予測のための第2の確率分布に対する情報利得を有する、過去相互作用の特定のサブセットの正確な予測のための第1の確率分布を提供する。一部の実施形態では、アクションは、1つ以上のアプリケーションと相互作用するためにユーザインタフェースをユーザに提供している。
一部の実施形態では、イベントに基づいて1つ以上のアプリケーションをコンピューティングデバイスのユーザに提案するためのコンピューティングデバイスが提供され、このコンピューティングデバイスは、入力デバイスと、コンピューティングデバイスの入力デバイスで、コンピューティングデバイスに対して繰り返されるタイプのイベントを検出し、イベントに対応する予測モデルを選択し、コンピューティングデバイスの1つ以上のプロパティを受信し、1つ以上のプロパティを用いて、1つ以上のプロパティに対応する予測モデルの特定のサブモデルを選択することであって、特定のサブモデルはコンピューティングデバイスとのユーザの過去相互作用の特定のサブセットを用いて生成され、過去相互作用の特定のサブセットはイベントが検出された後、及びコンピューティングデバイスが1つ以上のプロパティを有する場合に発生し、特定のサブモデルによって、1つ以上のアプリケーションを識別し、ユーザに提案することであって、1つ以上のアプリケーションはイベントと関連してユーザによってアクセスされる1つ以上のアプリケーションのうちの少なくとも1つの少なくとも閾値確率を有し、かつ1つ以上のアプリケーションと相互作用するためにユーザインタフェースをユーザに提供するように構成された1つ以上のプロセッサと、を備える。一部の実施形態では、特定のサブモデルは、信頼度閾値を超える信頼水準で1つ以上のアプリケーションを予測し、この特定のサブモデルは、予測モデルの正確な予測のための第2の確率分布に対する情報利得を有する過去相互作用の特定のサブセットの正確な予測のための第1の確率分布を提供する。一部の実施形態では、1つ以上のプロセッサは、イベントが検出された後、コンピューティングデバイスとのユーザの過去相互作用のセットを受信することであって、この過去相互作用のセットは過去相互作用の特定のサブセットを含み、かつ過去相互作用の特定のサブセットより大きく、この過去相互作用のセットはコンピューティングデバイスの1つ以上のプロパティの異なるセットを有する相互作用を含み、予測モデルの初期モデルを用いて、過去相互作用のセットに基づいて、イベント後、ユーザがアクセスする1つ以上のアプリケーションを予測するための初期信頼水準を計算し、コンピューティングデバイスの第1のプロパティを選択すること、コンピューティングデバイスが第1のプロパティを有した場合に発生した過去相互作用の第1サブセットを識別することであって、第1のサブセットが過去相互作用のセットから選択され、かつ過去相互作用のセットより小さいこと、第1のサブモデルを用いて、過去相互作用の第1のサブセットに基づいて、イベントと関連してユーザがアクセスすることになる1つ以上のアプリケーションからなる第1のグループのうち、少なくとも1つのアプリケーションを予測するための第1の信頼水準を計算すること、少なくとも閾値量だけ初期信頼水準より大きい第1の信頼水準に基づいて第1のサブモデルを作成すること、及び第1の信頼水準が初期信頼水準以下である場合にテストするための別のプロパティを選択することによって、予測モデルのサブモデルの木を生成する、ように更に構成される。
セクション6:検出されたトリガーイベントに基づくアプリケーションの推薦
本セクションの「検出されたトリガーイベントに基づくアプリケーションの推薦」という題材は、一部の実施形態による検出されたトリガーイベントに基づくアプリケーションの推薦を記載し、本明細書で提供された開示を補足する情報を提供する。例えば、本セクションの一部は、トリガーイベント(ヘッドホンをデバイスに差し込む、またユーザの現在のロケーションに応じて異なるアプリケーションを提案する)に基づく、使用するアプリケーションの推薦を記載し、本明細書で提供される開示、例えば、図9B~図9Cの予測部分930内の予測されたコンテンツをポピュレートすることに関すること、及びトリガー条件(図4A~図4B)の作成及び検出に関することを補足する。一部の実施形態では、本セクションに記載される予測モデルは、予測及びユーザに表示するための適切なアプリケーションの識別を支援するのに用いられる(すなわち、これらの予測モデルは、方法600、800、1000及び1200と併せて用いられる)。
検出されたトリガーイベントに基づくアプリケーションの推薦についての概要
実施形態は、トリガーイベントに基づいてアプリケーションを推薦するための改良されたデバイス及び方法を提供する。例えば、特定のイベントは、デバイスによって検出でき、トリガーイベントとして識別できる。異なるトリガーイベントは、異なる予測モデルを有することができ、これにより、より正確な推薦を可能にすることができる。選択された予測モデルは、(例えば、イベントが検出される前又は検出された後に収集された)コンテキスト情報を用いて、例えば、ロックスクリーン上でアクセスを可能にするといった、より簡単にアクセスできるようにユーザに提示するためのアプリケーションを識別することができる。
一部の実施形態では、1つ以上の入力デバイスはトリガーイベントについて監視される。トリガーイベントが検出されると、コンテキスト情報は、1つ以上のソース(例えば、コンテキスト情報を既に得たデバイスの別のアプリケーション)から集めることができる。コンテキスト情報は、ロケーション又は時間帯などの、トリガーイベントの発生時の、又はその近くでのデバイスのコンテキストに関連してもよい。コンテキスト情報が受信されると、その後、履歴情報は履歴イベントデータベースから集められてもよい。データベースは、ユーザとデバイスとの間の過去相互作用の記録を維持することができる。トリガーイベントに照らして、コンテキスト情報及び履歴情報はユーザに対する1つ以上のアプリケーションのセットを識別するように利用されてもよい。その後、識別されたアプリケーションは、どのように、いつ、又はどこで識別されたアプリケーションが普通にアクセスされるより異なる方法(例えば、ホームスクリーン上で)でユーザインタフェースを提供することでユーザに提案されてもよく、それによって、所望であれば、ユーザにアプリケーションを実行するオプションを与える。
他の実施形態は本セクションに記載の方法に関連付けられたシステム、ポータブル家庭用デバイス及びコンピュータ可読媒体を対象とする。
以下の詳細な説明及び添付の図面を参照することにより、本発明の実施形態の性質及び利点の理解をより深めることができる。
検出されたトリガーイベントに基づくアプリケーションの推薦についての詳細な説明
現在のモバイルデバイスは、そのソリッドステートドライブ上に記憶された多くのアプリケーションを有することができる。一部の場合には、モバイルデバイスは、そのソリッドステートドライブ上に記憶された数百個のアプリケーションを有することができる。ユーザが自身のモバイルデバイス上でアプリケーションを実行したい場合、ユーザは、デバイスのロックを解除し、デバイス内のアプリケーションのすべてを検索し、所望のアプリケーションを識別し、その後、アプリケーションの実行を開始しなければならない。所望のアプリケーションを見つけるプロセスを経ることは、特に他よりも頻繁に繰り返し使用されるアプリケーションについてはひどく時間がかかり冗長となる場合がある。
ユーザは、デバイスを事前にプログラムして、特定の条件が満たされた(例えば、トリガーイベントが発生した)場合は所定のアプリケーションの特定のアクションを自動的に実行することができる。例えば、デバイスは、トリガーイベントが発生した場合に所定のアプリケーションを提案するようにプログラムされてもよい。しかし、かかる操作は静的であり、ユーザによる構成を必要とする。
自動的に所定のアプリケーションを提案する代わりに、本発明の実施形態は予測モデルを利用して、トリガーイベントが発生したときにユーザによって実行されそうな所与のコンテキストでアプリケーションを提案することができる。異なるアプリケーションは、同じトリガーイベントの異なるコンテキストに対して識別されてもよい。一実施例としては、1つのアプリケーションは第1のコンテキストで提案され得るが、別のアプリケーションは第2のコンテキストで提案され得る。
ユーザが使用しそうなアプリケーションを識別するのはいくつかの利益を有する。ユーザインタフェースは、時間を節約しデバイス操作を合理化できるふさわしい方法で、又はふさわしいスクリーンでユーザに提供することができる。ユーザは、使用するアプリケーションを識別するために多数のアプリケーションの中から検索する必要はない。アプリケーションのユーザインタフェースは、様々な方法で提供され得、それは、ユーザがアプリケーションを使用する可能性がどれほど高いかに依存し得る。更に、予測モデルは、特定のアクションが実行される確率が高い場合、特定のユーザインタフェースを提供してもよい。こうして、一部の実施形態では、使用確率が高くなるほど、単にアプリケーションを開くための簡単なメカニズムを提供するのではなく、対応するユーザインタフェース(例えば、視覚又は音声コマンド)で自動的にアプリケーションを開くといった、より積極的なアクションを取ることができる。
VII.アプリケーションの予測
実施形態はトリガーイベントに基づいてアプリケーションを提案することができる。例えば、音楽アプリケーションは、ヘッドホンがヘッドホンジャックに挿入されたときに提案される場合がある。一部の実施形態では、コンテキスト情報は、ユーザに提案するアプリケーションを識別するトリガーイベントと併せて使用され得る。一例として、ヘッドホンのセットがヘッドホンジャックに挿入された場合、ロケーションに関連するコンテキスト情報が使用されてもよい。例えば、デバイスがジムにある場合、ヘッドホンがヘッドホンジャックに挿入されているときにアプリケーションAが提案されてもよい。あるいは、デバイスが自宅にある場合、ヘッドホンがヘッドホンジャックに挿入されているときにアプリケーションBが提案されてもよい。したがって、特定のコンテキストの下で使用されそうなアプリケーションを、ちょうどよい時刻に提案できるので、ユーザエクスペリエンスを向上させることができる。
図36-1は、本発明の実施形態に係る、トリガーイベントに基づいてアプリケーションを提案するための方法36_100のフローチャートである。方法100を、モバイルデバイス(例えば、電話機、タブレット)又は非モバイルデバイスによって実行することができ、またその方法は、デバイスの1つ以上のユーザインタフェースを利用することができる。
ブロック36_102では、トリガーイベントが検出される。デバイスで発生し得るすべてのイベントがトリガーイベントとは限らない。トリガーイベントは、デバイスの固有動作に相関する可能性が十分あるものとして識別され得る。トリガーイベントであるイベントのリストはデバイスに記憶され得る。かかるイベントは既定のリストとすることができ、オペレーティングシステムの一部として維持され得、ユーザによって構成変更できてもよいし、構成変更できなくてもよい。
トリガーイベントは、ユーザ及び/又は外部デバイスに誘導されたイベントとすることができる。例えば、トリガーイベントは、アクセサリデバイスがモバイルデバイスに接続された場合とすることができる。例としては、ヘッドホンのヘッドホンジャックへの挿入、Bluetooth接続などが挙げられる。本例では、これらのそれぞれは、異なるトリガーイベントとして分類され得、又はトリガーイベントはまとめて、任意のアクセサリデバイスがモバイルデバイスに接続することとすることができる。他の例としては、トリガーイベントは、デバイスとのユーザの特定の相互作用とすることができる。例えば、ユーザは、モバイルデバイスをランニングと調和した方法で移動させることができ、この場合、デバイスのランニング状態はトリガーイベントである。かかるランニング状態(又は他の状態)は、デバイスのセンサに基づいて判定され得る。
ブロック36_104では、トリガーイベントに関連付けられたアプリケーションが識別される。一例として、音楽アプリケーションは、ヘッドホンがヘッドホンジャックに挿入されたときに識別される場合がある。一部の実施形態では、2つ以上のアプリケーションが識別され得る。予測モデルは、関連アプリケーションを識別することができ、この場合、予測モデルは特定のトリガーイベントに対して選択されてもよい。例えば、異なるアプリケーションは異なるコンテキストで使用される可能性が高いので、予測モデルはコンテキスト情報を用いてアプリケーションを識別することができる。一部の実施形態は、例えば、デバイスとのユーザの過去相互作用から判定して、ユーザによって選択されるという十分な可能性がある場合しかアプリケーションを識別できない。様々なタイプの予測モデルを使用することができる。予測モデルの例としては、ニューラルネットワーク、決定木、マルチラベルロジスティック回帰、及びそれらの組み合わせが挙げられる。
ブロック36_106では、アプリケーションと関連してアクションが行われる。一実施形態では、アクションは、ユーザがアプリケーションを実行するように選択するためのユーザインタフェースを提供することとすることができる。ユーザインタフェースは、デバイスのスクリーン上に表示すること、表面に投影すること、あるいはオーディオインタフェースを提供することなど、様々な方法で提供されてもよい。
他の実施形態では、アプリケーションが実行されてもよく、アプリケーション固有のユーザインタフェースがユーザに提供されてもよい。例えば、ロックスクリーン上でのアプリケーションの識別に応答してユーザインタフェースのどちらかを提供してもよい。他の実装形態では、アプリケーションと相互作用するためのユーザインタフェースは、ユーザが(例えば、パスワード又はバイオメトリックによって)認証された後に提供されてもよい。ユーザインタフェースが表示されると、かかるユーザインタフェースは単なるホームスクリーンより具体的となり、すなわち、実行するための提案されたアプリケーションのリストは、ホームスクリーン上におけるより小さくなる。ユーザインタフェースは、トリガーイベントが検出された後、デバイスのディスプレイ上に即座に表示されてもよい。他の実施形態では、ユーザインタフェースはユーザがいくつかの入力(例えば、1つ以上のクリックジェスチャ)を提供した後に表示されてもよく、それは、アプリケーションが提案されなかった場合より、依然としてユーザ入力(例えば、クリック数)が少ない場合がある。
VIII.予測を開始するイベント
トリガーイベントは、ユーザに提供するための1つ以上のアプリケーションの識別をトリガーするイベントの所定のセットとすることができる。イベントはデバイスコンポーネントによって生成された信号を用いて検出することができる。どのようにトリガーイベントが検出されるかの更なる詳細は本セクションで更に詳細に検討する。
図36-2は本発明の実施形態に係る、トリガーイベントを判定する検出システム36_200の簡略ブロック図を図示する。検出システム36_200はトリガーイベントが判定されているデバイス内に常駐することができる。図示するように、検出システム36_200は複数の異なるイベントを検出することができる。検出されたイベントのうちの1つ以上は、検出システム36_200によってトリガーイベントであることを判定され得る。その後、他の処理モジュールはトリガーイベントを用いて処理を実行することができる。
A.イベントの検出
実施形態では、検出システム36_200は、イベントを検出するためのハードウェア及びソフトウェアコンポーネントを含む。一実施例としては、検出システム36_200は、入力デバイス36_202などの複数の入力デバイスを含むことができる。入力デバイス36_202はイベントに応答して信号を生成可能な任意の好適なデバイスとすることができる。例えば、入力デバイス36_202はデバイス接続入力デバイス36_204、ユーザ相互作用入力デバイス36_206、及びロケーション入力デバイス36_208を含むことができ、それらはそれぞれ、デバイス接続イベント、ユーザ相互作用イベント、及びロケーションのイベントを検出することができる。イベントが入力デバイスで検出されると、入力デバイスは、更に分析するために特定のイベントを示す信号を送信することができる。
一部の実施形態では、コンポーネントの集合は、単一のイベントに寄与することができる。例えば、モーションセンサ及びGPSロケーションデバイスに基づいて人がランニングしていると検出され得る。
1.デバイス接続イベント
デバイス接続イベントは他のデバイスがデバイスに接続されたときに発生するイベントとすることができる。例えば、デバイス接続入力デバイス36_204は、デバイスがデバイスに通信可能に連結されるイベントを検出することができる。有線又は無線接続を外部デバイスと形成する任意の好適なデバイスコンポーネントがデバイス接続入力デバイス36_204として使用される場合がある。デバイス接続入力デバイス36_204の例としては、ヘッドホンジャック36_210及び、データ接続36_212、例えば、無線接続回路(例えば、Bluetooth、Wi-Fiなど)又は有線接続回路(例えば、イーサネットなど)が挙げられる。
ヘッドホンジャック36_210はヘッドホンのセットがデバイスに連結するのを可能にする。例えば、ヘッドホンがヘッドホンジャック36_210に挿入されて電気的接続を作成することによってヘッドホンが連結されるときに、信号が生成され得る。より複雑な実施形態では、ヘッドホンジャック36_210は、ヘッドホンジャックのタイプを識別する識別信号をデバイスに提供する回路を含むことができる。こうして、イベントは様々な方法で検出され得、また信号は様々な方法で生成かつ/又は通信され得る。
データ接続36_212は、例えば、無線接続を介して通信可能に外部デバイスと連結することができる。例えば、Bluetooth接続は車両のコンピュータ、又は無線ヘッドセットのコンピュータに連結される場合がある。したがって、外部デバイスがデータ接続36_212を介してモバイルデバイスに連結されると、外部デバイスは接続されたと判定され得、対応するデバイス接続イベント信号が生成され得る。
2.ユーザ相互作用イベント
ユーザ相互作用入力デバイス36_206はユーザ相互作用イベントを検出するよう利用され得る。ユーザ相互作用イベントはユーザがデバイスと相互作用したときに発生する場合がある。一部の実施形態では、ユーザは、ユーザ相互作用入力デバイス36_206のうちの1つを介して表示されたユーザインタフェースを直接アクティブにすることができる。他の実施形態では、ユーザインタフェースは表示されなくてもよいが、依然として、例えば、ユーザがデバイスを振る、又はいくつかの他の種類のジャスチャを行うことによって、ユーザによりアクセス可能である。更に、相互作用は、例えば、状態エンジンがデバイスのセンサからの値を使用する場合は、ユーザインタフェースを含まなくてもよい。
ユーザインタフェースの任意の好適なデバイスコンポーネントは、ユーザ相互作用入力デバイス36_206として使用され得る。好適なユーザ相互作用入力デバイスの例は、ボタン36_214(例えば、ホームボタン又は電源ボタン)、タッチスクリーン36_216、及び加速度計36_218である。例えば、ホームボタン、電源ボタン、音量ボタンなどのモバイルデバイスのボタン36_214は、ユーザ相互作用入力デバイス36_204とすることができる。それに加えて、サイレントモードスイッチなどのスイッチは、ユーザ相互作用入力デバイス36_204とすることができる。ユーザがデバイスと相互作用する場合、ユーザがユーザ入力を提供したと判定されてもよく、また対応するユーザ相互作用イベントが生成されてもよい。かかるイベントは、デバイスの現在の状態、例えば、デバイスが朝(又は、他の、長期間にわたって非アクティブであるときに)、最初にオンされたとき、又はアクティブにされるときに依存する場合がある。かかる情報はまた、イベントがトリガーイベントかどうかを判定する際に使用される場合がある。
タッチスクリーン36_216はユーザがディスプレイスクリーンを介してユーザ入力を提供するのを可能にすることができる。例えば、ユーザは、ディスプレイ上で自身の指をスワイプしてユーザ入力信号を生成することができる。ユーザがアクションを実行する場合、対応するユーザ相互作用イベントは削除されてもよい。
加速度計36_218又は他のモーションセンサは、(例えば、ジャイロメーター又はコンパスを用いて)振動する及び傾く、などのモバイルデバイスの動きを検出するパッシブコンポーネントとすることができる。モバイルデバイスのかかる動きは、その動きが特定のタイプのものかを判定できるイベントマネージャー36_230によって検出することができる。イベントマネージャー36_230は、デバイスの所与の状態における特定のタイプのユーザ相互作用イベントに対応するイベント信号36_232を生成することができる。デバイスの状態は、状態エンジンによって判定でき、その更なる詳細は、「Activity Detection」と題する米国特許公開第2012/0310587号、及び「Determining Exit From A Vehicle」と題する米国特許公開第2015/0050923号に見られ、その開示は全体が参照により組み込まれる。
一例は、ユーザがランニングしている場合であり、加速度計は振動を感知し、イベントマネージャー36_230に提供される信号を生成することができる。イベントマネージャー36_230は加速度計信号を分析し、イベントのタイプを判定することができる。イベントの種類が判定されると、イベントマネージャー36_230はイベントのタイプに対応するイベント信号36_232を生成することができる。モバイルデバイスはまた、ユーザがランニングしていることを示すような方法で移動することができる。こうして、この特定のユーザ相互作用はランニングイベントとして識別され得る。その後、イベントマネージャー36_230はランニングイベントが検出されたことを示すイベント信号36_232を生成及び送信することができる。
3.ロケーションイベント
ロケーション入力デバイス36_208はロケーションイベントを生成するのに使用され得る。任意の好適な測位システムはロケーションイベントを生成するのに使用され得る。例えば、全地球測位システム(GPS)はロケーションイベントを生成するのに使用され得る。ロケーションイベントは特定の地理的ロケーションに対応するイベントとすることができる。一実施例としては、モバイルデバイスが特定のロケーションに到着した場合、GPSコンポーネントはロケーションイベントに対応する入力信号を生成することができる。典型的には、モバイルデバイスは一日当たり数十又は更に数百のロケーションまで移動する場合があり、それらの多くはロケーションイベントとして考えられるほど重要でない場合がある。したがって、すべての検出されたロケーションがロケーションイベントとあるとはでは限らない。実施形態では、ロケーションイベントは他よりも頻繁に起こるロケーションとすることができる。例えば、イベントは、ある期間に少なくとも閾値回数、例えば、6ヶ月間から1年間で5回と、頻繁に起こる場合、ロケーションイベントとすることができる。したがって、重要なロケーションは重要でないロケーションから分離され、ロケーションイベントであると判定されてもよい。
B.トリガーイベントの判定
図36-2に更に図示するように、入力デバイス36_202は、例えば、対応するイベントのいずれかの結果として検出されたイベント36_222を出力することができる。検出されたイベントは、どの入力デバイスが検出されたイベント36_222の信号、特定のイベントのサブタイプ(例えば、ヘッドホン又はデータ接続がどのタイプか)を送信しているかについての情報を含むことができる。かかる情報は、検出されたイベント36_222はトリガーイベントであるかどうかを判定するのに使用してもよく、どの予測モデルを使用するか、又は提案されたアプリケーションに対してどのアクションを実行するかを判定するため、後のモジュールに渡すことができる。
検出されたイベント36_222はイベントマネージャー36_230によって受信され得る。イベントマネージャー36_230は入力デバイス36_202から信号を受信でき、どんなタイプのイベントが検出されたかを判定することができる。イベントのタイプに応じて、イベントマネージャー36_230は信号(例えば、イベント信号36_232)を異なるエンジンに出力することができる。異なるエンジンは、その機能にとって重要である特定のイベント信号36_232を受信するようイベントマネージャー36_230によりサブスクリプション(subscription)を有してもよい。例えば、トリガーイベントエンジン36_224は、入力デバイス36_202からの検出されたイベント36_222に応答して生成されたイベント信号36_232を受信するようにサブスクライブされてもよい。イベント信号36_232は検出されたイベント36_222から判定されたイベントのタイプに対応することができる。
トリガーイベントエンジン36_224は、検出されたイベント36_222がトリガーイベントであるかどうかを判定するように構成されてもよい。この判定を行うには、トリガーイベントエンジン36_224は、指定されたトリガーイベントデータベース36_226を参照することができ、それは、トリガーイベントエンジン36_224に連結され得る。指定されたトリガーイベントデータベース36_226はトリガーイベントとして指定された所定のイベントのリストを含むことができる。
トリガーイベントエンジン36_224は受信した検出されたイベント36_222を所定のイベントのリストと比較して、検出されたイベント36_222が指定されたトリガーイベントデータベース36_226内にリストされた所定のイベントと一致する場合、トリガーイベント36_228を出力することができる。所定のイベントのリストの例としては、以下の任意の1つ以上を含むことができる。(1)ヘッドホンをヘッドホンジャックに挿入すること、(2)Bluetooth接続を介して外部デバイスを接続すること、(3)ある期間が経過した後(例えば、朝起きたときに)、ボタンを押すこと、(4)デバイスの特定のタイプの動きを感知すること、及び(5)特定のロケーションに到着すること。(5)については、指定されたトリガーイベントデータベース226は特定のロケーションの明細を含むことができる。
本セクションで記載したように、本技術の一態様は、ユーザにアプリケーションを提案するために、様々なソースから利用可能なデータを収集かつ使用することである。本開示は、場合によっては、この収集されたデータが、特定の人を一意的に識別するか、又はその人に連絡するか、若しくはその人のロケーションを特定するために用いられ得る個人情報データを含み得ることを企図している。このような個人情報データは、ロケーションに基づくデータ、自宅住所、又は任意のその他の識別情報を含むことができる。
本開示は、本技術における、このような個人情報データの使用は、ユーザの利益のために使用することができると認識している。例えば、個人情報データは、よりユーザの興味を引く、アプリケーションを提案するために用いられてもよい。したがって、このような個人情報データの使用は、配信されるコンテンツの意図的な制御を可能にする。更に、ユーザに利益をもたらす個人情報データの他の使用法も、本開示によって企図されている。
本開示は、このような個人情報データの収集、分析、開示、転送、記憶、又はその他の使用に関与するエンティティは、しっかり確立されたプライバシーポリシー及び/又はプライバシー慣行を遵守することを更に企図している。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための業界又は政府の要件を満たすか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し常に使用すべきである。例えば、ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共有又は販売されるべきではない。更に、そのような収集は、ユーザに告知して同意を受けた後にのみ実施するべきである。更に、そのようなエンティティは、そのような個人情報へのアクセスを保護して安全化し、その個人情報へのアクセスを有する他者が、自身のプライバシーポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じることとなる。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
前述のことがらにもかかわらず、本開示はまた、ユーザが、個人情報データの使用又は個人情報データへのアクセスを選択的に阻止する実施形態も企図している。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するためのハードウェア要素及び/又はソフトウェア要素を提供することができることを企図している。別の実施例では、ユーザは、的を絞ったコンテンツ配信サービスのために位置情報を提供しないことを選択することができる。更に別の例では、ユーザは正確な位置情報を提供しないが、位置領域情報の転送を許可することを選択することができる。
IX.提案されたアプリケーションの判定
トリガーイベントが検出されると、アプリケーションはトリガーイベントに基づいて識別され得る。一部の実施形態では、アプリケーションの識別は、事前にプログラムされたアクションではない。逆に、アプリケーションの識別は、追加情報に応じて変化し得る動的なアクションとすることができる。例えば、提案されたアプリケーションの識別は、コンテキスト情報及び/又は履歴情報に基づいて、並びに他の情報に基づいて判定され得る。
A.トリガーイベントに基づいてアプリケーションを判定するシステム
図36-3は、本発明の実施形態に係る、トリガーイベント及びコンテキスト情報に基づいてアプリケーション及び対応するアクションコマンドを識別する予測システム36_300の簡略ブロック図を図示する。予測システム36_300はアプリケーションを識別しているデバイス内に常駐する。予測システム36_300はハードウェア及びソフトウェアコンポーネントを含むことができる。
予測システム36_300は提案されたアプリケーションを識別する予測エンジン36_302を含む。予測エンジン36_302は、図36-2で検討されたトリガーイベント36_228などのトリガーイベントを受信することができる。予測エンジン36_302は、提案されたアプリケーション36_304を識別するため、トリガーイベント36_228から収集された情報を使用してもよい。図示するように、予測エンジン36_302は、トリガーイベント36_228に加えてコンテキストデータ36_306を受信することができる。予測エンジン36_302は、提案されたアプリケーション36_304を識別するため、トリガーイベント36_228及びコンテキスト情報36_306の両方から収集された情報を使用してもよい。予測エンジン36_302はまた、実行されるアクション、例えば、ユーザインタフェースが、提案されたアプリケーションと相互作用するために、ユーザに対して、どのように、かついつ提供されるかを判定することもできる。
特定の実施形態では、提案されたアプリケーション36_304はモバイルデバイスのソリッドステートドライブ上に存在する任意のアプリケーションとすることができる。こうして、予測エンジン36_302は、トリガーイベントが検出されたとき、任意のアプリケーションを提案する能力を有することができる。あるいは、実施形態では、予測エンジン36_302は、トリガーイベントが検出されたとき、すべてではないアプリケーションを提案する能力を有することができる。例えば、ユーザは、予測エンジン36_302がアクセスできないいくつかのアプリケーションを選択してもよい。こうして、予測エンジン36_302は、トリガーイベントが検出されたとき、これらのアプリケーションを提案できない場合もある。
1.コンテキスト情報
コンテキスト情報はコンテキストデータ36_306から収集することができる。実施形態では、コンテキスト情報はいつでも受信することができる。例えば、コンテキスト情報はトリガーイベント36_228が検出される前及び/又は検出された後に受信することができる。また、コンテキスト情報は、トリガーイベント36_228を検出中に受信してもよい。コンテキスト情報は特定のコンテキストに対してデバイスの1つ以上のプロパティを特定することができる。コンテキストは、トリガーイベント36_228が検出されたときのデバイスの周囲の環境(コンテキストのタイプ)としてもよい。例えば、コンテキスト情報はトリガーイベント36_228が検出されたときの時間帯としてもよい。別の実施例では、コンテキスト情報は、トリガーイベント36_228が検出されたときのデバイスの特定のロケーションとしてもよい。更に別の実施例では、コンテキスト情報は、トリガーイベント36_228が検出されたときの年の特定の日としてもよい。また、コンテキスト情報は、カレンダーから収集されたデータとしてもよい。例えば、現在時刻とイベント時刻との間の時間(数日又は数時間)。かかるコンテキスト情報は、予測エンジン36_302が正確にそのコンテキストでユーザによって使用される可能性のあるアプリケーションを提案できるようにデバイスのコンテキストについてのより有意義な情報を提供してもよい。したがって、コンテキスト情報を利用する予測エンジン36_302は、コンテキスト情報が利用されない場合より正確にアプリケーションをユーザに提案することができる。
コンテキストデータ36_306はコンテキストソース36_308によって生成され得る。コンテキストソース36_308は、モバイルデバイスの現在の状況に関するデータを提供するモバイルデバイスのコンポーネントとすることができる。例えば、コンテキストソース36_308は、時間帯、デバイスのロケーション、及び日付にそれぞれ関連する情報を提供するための内部デジタル時計36_310、GPSデバイス36_312、及びカレンダー36_314として動作するハードウェアデバイス及び/又はソフトウェアコードとすることができる。他のコンテキストソースが使用されてもよい。
予測エンジン36_302に対するコンテキストデータ36_306の収集は、電力効率的な方法で実行されてもよい。例えば、デバイスのロケーションを判定するためのGPS36_312の継続的なポーリングは、過度に電力を消費し、バッテリ寿命を低下させる場合がある。バッテリ寿命の低下を回避するため、予測エンジン36_302は、GPS36_312以外のソースからデバイスのロケーションを要求することによってデバイスのロケーションを判定することができる。ロケーション情報の別のソースは、最近、デバイスのロケーションを求めてGPS36_312をポーリングしたアプリケーションとすることができる。例えば、アプリケーションAがデバイスのロケーションを求めてGPS36_312をポーリングした一番最近のアプリケーションである場合、予測エンジン36_302は、別々にGPS36_312をポーリングするのではなく、アプリケーションAからロケーションデータを要求かつ受信することができる。
2.履歴情報
コンテキストソース36_308に加えて、履歴イベントデータベース36_316も、特定の実施形態における予測エンジン36_302によって利用されてもよい。履歴イベントデータベース36_316は、トリガーイベントが検出された後のユーザとモバイルデバイスとの間の前の相互作用からなる履歴情報を含むことができる。
履歴イベントデータベース36_316は、特定のトリガーイベントに続いてアプリケーションが開かれた回数の記録を保持することができる。例えば、データベース36_316は、ヘッドホンがヘッドホンジャックに差し込まれた後、ユーザがアプリケーションAを10回中8回開くことを示す記録を保持することができる。したがって、予測エンジン36_302は、ヘッドホンのセットがヘッドホンジャックに挿入されたとき、アプリケーションAがユーザのために識別されるべきかを判定するために、この情報を履歴データ36_318として受信することができる。
履歴イベントデータベース36_316はまた、トリガーイベントが検出されたときに、アプリケーションが異なるコンテキスト下で開かれた回数の記録を保持することもできる。例えば、データベース36_316は、ユーザが自宅にいるとき、ヘッドホンをヘッドホンジャックに挿入した後、ユーザがアプリケーションAを10回中9回開き、ユーザがジムにいるとき、10回中1回開くことを示す記録を保持することができる。したがって、予測エンジン36_302は、この情報を履歴データ36_318として受信し、ヘッドホンがジムではなく、自宅でヘッドホンジャックに挿入されたとき、アプリケーションAが識別されるべきであると判定することができる。本セクションで検討した例は「自宅」又は「ジム」としてロケーションを参照するが、「自宅」又は「ジム」を表すコンテキストデータ36_306は数値座標の形式にすることができることを、理解すべきである。当業者は、時間帯及び日付に関連する情報が、他のアプリケーションを識別するために、ロケーションの代わりに、これと同じ方法で利用され得ることを理解するものである。
履歴イベントデータベース36_316はまた、どれくらいの頻度で、かつどんな状況下でユーザが識別されたアプリケーションを実行しないように決めるかという記録を保持することができる。例えば、データベース36_316は、ユーザが自宅でヘッドホンをデバイスに挿入したとき、ユーザに提案されたアプリケーションBを、ユーザが10回中2回選択しなかったことを示す記録を保持することができる。したがって、予測エンジン36_302は、この情報を履歴データ36_318として受信し、ユーザが自宅でヘッドホンをデバイスに挿入するとき、アプリケーションBを提案する確率を調整することができる。
一部の実施形態では、コンテキスト情報36_306及び/又は履歴情報(本セクションで更に検討する)は、トリガーイベントが検出されたとき、利用できなくてもよく、又は制限されてもよい。このような場合は、既定のアプリケーションが、トリガーイベントが検出されたときに提案されてもよい。既定のアプリケーションは、トリガーイベントのタイプと一般に関連付けられたアプリケーションのタイプとすることができる。例えば、音楽アプリケーションは、ヘッドホンのセットがヘッドホンジャックに挿入されたときに提案されてもよい。あるいは、地図アプリケーションは、車とBluetooth接続を行うときに提案されてもよい。より多くの履歴情報が得られると、提案されたアプリケーションは、既定のアプリケーションの代わりに提供され得る。
B.複数の予測モデル
異なるトリガーイベントにより提案されたアプリケーションが異なることになり得るにつれて、実施形態は、異なるトリガーイベントに対して異なる予測モデルを使用することができる。このようにして、予測モデルは、特定のトリガーイベントに対してより正確な提案を提供するように精緻化され得る。
図36-4は、本発明の実施形態に係る、予測エンジン36_302をより詳細に図示する。予測エンジン36_302は、メモリデバイスに記憶されたプログラムコードとすることができる。実施形態では、予測エンジン36_302は1つ以上の予測モデルを含む。例えば、予測エンジン36_302は、予測モデル1~Nを含むことができる。各予測モデルは、特定のトリガーイベント36_228のアプリケーションを識別するように具体的に設計されたコード及び/又はデータのセクションとすることができる。例えば、予測モデル1は、ヘッドホンのセットがヘッドホンジャックに挿入されるトリガーイベントのアプリケーションを識別するように具体的に設計されてもよい。予測モデル2は、Bluetoothデバイスが接続されるトリガーイベントのアプリケーションを識別するように設計されてもよい。
予測モデル3は、長期間後にユーザがデバイスのユーザインタフェースと相互作用するトリガーイベント(例えば、ユーザが朝起きた後、最初にモバイルデバイスと相互作用するとき)のアプリケーションを識別するように設計されてもよい。他の予測モデルは、検出されたモーション(例えば、ユーザがモバイルデバイスと共にランニングしているとき)の特定のパターン、特定のロケーションへの到着、及び特定のアプリケーションの選択(例えば、車のコンピュータと通信するアプリケーションを選択する)と関連付けられたトリガーイベントのアプリケーションを識別するように設計されてもよい。任意の数の予測モデルは、トリガーイベント36_228の数に応じて予測エンジン36_302内に含まれ得る。
図示するように、各予測モデル1~Nは、コンテキストデータ36_306及び履歴データ36_318を受信するようにコンテキストソース及び履歴イベントデータベースに連結され得る。したがって、各予測モデルは、コンテキストデータ36_306及び履歴データ36_318を利用して、本セクションで検討する実施形態によって、提案されたアプリケーション36_304を識別することができる。
図36-3に戻って参照すると、予測エンジン36_302は、提案されたアプリケーション36_304をエキスパートセンターモジュール36_320に送信することができる。実施形態では、イベントマネージャー36_320は、検索スクリーン又は他のスクリーンが開かれたとき、デバイス上に、例えば、ロックスクリーン上に何が表示されるかを管理するコードのセクションとすることができる。例えば、エキスパートセンター36_320はどの情報が、例えば、提案されたアプリケーション、提案された連絡先及び/又は他の情報がユーザに表示されるかを調整することができる。エキスパートセンター36_320は、このような情報をいつユーザに提供するかを判定することもできる。
X.ユーザインタフェース
イベントマネージャー36_320が提案されたアプリケーションをユーザに出力するちょうどよい時刻であると判定した場合、イベントマネージャー36_320は、アプリケーション36_322をユーザインタフェース36_324に出力することができる。実施形態では、出力アプリケーション36_322は提案されたアプリケーション36_304に対応することができる。ユーザインタフェース36_324は、出力アプリケーション36_322をユーザに伝え、出力アプリケーション36_322に関してユーザから応答を請うことができる。
実施形態では、ユーザインタフェース36_324は、ユーザが相互作用できるデバイスコンポーネントの組み合わせとすることができる。例えば、ユーザインタフェース36_324は、情報をユーザに出力する、かつ/又はユーザがデバイスへ信号を入力するのを可能にする能力を有するデバイスコンポーネントの組み合わせとすることができる。
A.ディスプレイ
ユーザインタフェース36_324はデバイスのディスプレイに表示することができる。ディスプレイは入力信号がディスプレイとの物理的な相互作用によって生成できるようにタッチにを感知し得る。かかる実施形態では、ディスプレイは、ディスプレイに対するユーザのタッチを検出する画像表示層上に重ね合わされたタッチ感知層を含むことができる。したがって、ディスプレイは、情報をユーザに出力すると共に情報をユーザから入力することができるユーザインタフェース36_324の一部とすることができる。一例としては、ディスプレイは、提案されたアプリケーションについてのアイコンを示し、ユーザがディスプレイパネルの対応するロケーションをタップした場合、アプリケーションを実行するために信号を入力することができる。
現代のデバイスは、デバイスの認証されていない使用を防止するセキュリティ対策を有している。かかるデバイスは、ユーザがデバイス上に記憶されたアプリケーションのすべてにアクセスすることができる前に、ユーザにデバイスのロック解除を要求することができる。デバイスは、デバイスのセキュリティ状態に応じて、すべてのアプリケーションのアクセシビリティを制限することができる。例えば、デバイスは、デバイスがそのアプリケーションのすべてへのアクセスを可能にする前に、ユーザにデバイスのロック解除を要求することができる。ロック解除されたデバイスはホームスクリーンを示すディスプレイを有する場合がある。ホームスクリーンはデバイスのすべてのアプリケーションへのアクセスを表示かつ/又は提供することができる。しかし、ロックされたデバイスがロックスクリーンを示すディスプレイを有する場合がある。ディスプレイの一部の領域は、デバイスのロックを解除するプロンプトによって占められてもよい。したがって、ロックスクリーンは、デバイスセキュリティの高められた状態及び限定されたディスプレイスペースのため、ホームスクリーンより少ないアプリケーションとしか相互作用できない場合がある。例えば、ロックスクリーンは、1つ~3つのアプリケーションなど、デバイスのアプリケーションのすべてはアクセスできないようにしてもよい。一部の実施形態では、図36-3に関して本セクションで検討するような提案されたアプリケーション36_304はロックスクリーン上に表示されてもよい。
B.他の入出力デバイスコンポーネント
ディスプレイは、情報をユーザに出力すると共に情報をユーザから入力することが可能なユーザインタフェース36_324の一部とすることができるが、ユーザインタフェース36_324の他の部分はそのように限定されない。例えば、ユーザから情報を入力できる他のデバイスコンポーネントが本セクションの実施形態でも想定される。一例としては、ボタン及びスイッチがユーザインタフェース36_324の一部とすることができる。ボタンは、ユーザがその上に圧力をかけると入力を生成するデバイスコンポーネントとすることができる。スイッチは、ユーザがレバーを別の位置に指ではじくと入力を生成するデバイスコンポーネントとすることができる。したがって、ボタン及び/又はスイッチは、本セクションで検討された実施形態によって、提案されたアプリケーション36_304を実行するためにユーザによってアクティブにされ得る。
ユーザから情報を出力できるデバイスコンポーネントが、本セクションの実施形態でも想定される。一例として、スピーカ又は触覚デバイスは、情報をユーザに出力するユーザインタフェースの一部とすることができる。スピーカはオーディオ通知を出力し、識別されたアプリケーションが提案されたことを示すことができる。触覚デバイスは触覚通知を出力し、識別されたアプリケーションが提案されたことを示すことができる。このようなデバイスは単なる実施形態であり、他の実施形態は、このようなデバイスに限定されるものではないことを理解すべきである。
C.相互作用の水準
ユーザインタフェース36_324は、ユーザが出力アプリケーション36_322を実行するために異なる水準の相互作用を要求することができる。様々な水準は、ユーザが提案されたアプリケーション36_304を実行することになる確率の度合いに対応することができる。例えば、予測エンジン36_302は提案されたアプリケーション36_304が、ユーザによって実行される確率が閾値確率を超えると判定する場合には、ユーザインタフェース36_324は、ユーザが、中間工程をスキップすることによって、より迅速にアプリケーションを実行できるようにするプロンプトを出力することができる。
一例として、予測エンジン36_302はユーザが提案された音楽アプリケーションを実行する確率が高閾値確率を超えると判定する場合には、提案された音楽アプリケーションは自動的に実行されてもよいので、ユーザインタフェース36_324は、音楽アプリケーションに対する制御、例えば、再生、一時停止、早送り/巻き戻しを表示することができる。それゆえに、ユーザはアプリケーションを実行するためにクリックする中間工程を実行する必要はない場合がある。
あるいは、予測エンジン36_302がユーザが音楽アプリケーションを実行する確率が高閾値確率より低いが低閾値確率より依然として高いと判定する場合は、音楽アプリケーションがアイコンとして表示されてもよい。低閾値確率はベースライン閾値確率より高い場合がある。ベースライン閾値確率は対応するアプリケーションが提案されることになる最小確率を設定することができる。こうして、ユーザは提案された音楽アプリケーションを実行するためにアイコンをクリックする余分な工程を実行する必要があることがある。しかし、クリック数は依然としてアプリケーションがユーザに提案されない場合に要求されるクリック数より少ない場合がある。実施形態では、閾値確率はアプリケーションのタイプによって異なる場合がある。各種実施形態では、高閾値確率は75%~100%の範囲にすることができ、低閾値確率は50%~75%の範囲にすることができ、ベースライン閾値は25%~50%の範囲にすることができる。特定の実施形態では、高閾値確率は75%であり、低閾値確率は50%であり、ベースライン確率は25%である。
実施形態では、確率が高くなると、アプリケーションの提案がより積極的になり得る。例えば、アプリケーションが約90%の高い確率を有する場合、予測エンジン36_302はデバイスのロックスクリーン上にアイコンを提供し、ユーザがアイコンを1クリックすることでアプリケーションにアクセスすることが可能にすることができる。アプリケーションが約95%の更に高い確率を有する場合、予測エンジン36_302は更に、ユーザが何もクリックしなくても、自動的に、ユーザに対して提案されたアプリケーションを実行することができる。このような場合には、予測エンジン36_302は、提案されたアプリケーションを出力するだけでなく、音楽アプリケーション内の選択された音楽を再生するコマンド、又は地図アプリケーション内の特定のルートのガイダンスを開始するコマンドなどの、そのアプリケーションに特有のコマンドを出力することができる。
本発明の実施形態によれば、予測エンジン36_302はどんなレベルの相互作用が要求されるかを判定し、その後、その情報をイベントマネージャー36_320に出力することができる。その後、イベントマネージャー36_320はこの情報をユーザインタフェース36_324に送信し、ユーザに出力することができる。
実施形態では、ユーザインタフェース36_324はディスプレイスクリーン上にユーザへの通知を表示してもよい。通知は、例えば、プッシュ通知によって送信されてもよい。通知は、提案されたアプリケーションをユーザに通知する画像及び/又はテキストを含む視覚通知とすることができる。通知は、ユーザが暇なときに選択し実行するように、アプリケーションをユーザに提案することができる。選択されると、アプリケーションが実行してもよい。一部の実施形態において、より積極的な予測については、通知は提案されたアプリケーション内に提案されたアクションも含むことができる。つまり、通知は、ユーザに提案されたアプリケーション、並びに提案されたアプリケーション内の提案されたアクションを告知してもよい。こうして、ユーザには、提案されたアプリケーションを実行する、又は提案されたアプリケーション内の提案されたアクションを実行するという、オプションが与えられる。一例としては、通知は、ユーザに提案されたアプリケーションが音楽アプリケーションであり、提案されたアクションは、その音楽アプリケーション内の特定の曲を再生することであることを告知してもよい。ユーザは、提案された曲を示すアイコンをクリックすることによって、自身がその曲を再生したいことを示すことができる。あるいは、ユーザは、スクリーン上で通知をスワイプすることによって、自身が別の曲を再生するためにアプリケーションを実行しようとすることを示すことができる。
提案されたアプリケーション及び提案されたアクションを1つの通知内のユーザインタフェース36_324に出力する以外に、予測エンジン36_302は2つの提案されたアクションを1つの通知内のユーザインタフェース36_324に出力してもよい。例えば、予測エンジン36_302は、第1の曲を再生するよう提案されたアクションを出力し、第2の曲を再生するよう第2の提案されたアクションを出力してもよい。ユーザは、通知内のそれぞれのアイコンをクリックすることによって、どの曲を再生するかを選択することができる。実施形態では、提案されたアクションは、異なる基準に基づいて判定されてもよい。例えば、1つの提案されたアクションは、コンテキスト情報にかかわらず一番最近再生された曲を再生するためのものであってもよいが、他の提案されたアクションは同じ又は同様のコンテキスト情報下で、最後に再生された曲を再生するためであってもよい。一例としては、ユーザが自身の車に入って、トリガーイベントにより予測エンジン36_302が特定の曲の再生に関連する2つのアクションを提案する状況では、曲Aは最後に、たまたま家で再生された曲としてもよく、曲Bはユーザが前回車の中にいたときに再生された曲としてもよい。ユーザが再生される曲を選択する場合、曲は最初から継続してもよいし、最後に停止されたところ(例えば、曲の途中)から継続してもよい。
予測エンジン36_302がアクションを提案できるように、予測エンジン36_302はデバイスのアクティブ状態についての情報を記憶するメモリデバイスにアクセスすることができる。デバイスのアクティブ状態は、提案されたアプリケーションの選択に続いて実行されるアクションを表すことができる。例えば、音楽アプリケーションのアクティブ状態は、特定の曲を再生していることとすることができる。アクティブ状態は、曲が最後にいつ停止したかを絶えず追跡してもよい。実施形態では、図36-3からの履歴データベース36_316は、デバイスのアクティブ状態に関する履歴データを記録してもよい。したがって、予測エンジン36_302は提案されたアプリケーションによって実行されるアクションを提案することができる。
XI.提案されたアプリケーションを判定する方法
図36-5は、本発明の実施形態に係る、トリガーイベントに基づいてアプリケーションを識別する方法36_500を図示するフローチャートである。方法36_500はデバイスによって完全に又は部分的に実行することができる。様々な実施例としては、デバイスは、本セクションで既に検討したように、電話機、タブレット、ラップトップコンピュータ、又はその他のモバイルデバイスとすることができる。
ブロック36_502では、デバイス、例えば、モバイルデバイスはイベントを検出する。例えば、ヘッドホンのセットがデバイスのヘッドホンジャックに挿入されてもよい。別の実施例としては、無線ヘッドセットが、Bluetooth接続を介してデバイスに連結されてもよい。図36-2の入力デバイス36_202はイベントを検出するのに使用され得る。イベントは、モバイルデバイスが外部デバイス又はユーザなどの外部エンティティと相互作用するあらゆるアクションとすることができる。
ブロック36_504では、デバイスは、検出されたイベントがトリガーイベントであるかどうかを判定する。検出されたイベントがトリガーイベントかどうかを判定するため、検出されたイベントは、イベントの所定のリスト、例えば、図36-2の指定されたトリガーイベントデータベース36_226イベントのリストと比較されてもよい。検出されたイベントがイベントの所定のリストのうちの1つと一致する場合、検出されたイベントは、トリガーイベントであると判定され得る。
ブロック36_506では、デバイスは、予測モデル、例えば、図36-4の予測モデル1~Nのうちの1つを選択する。選択された予測モデルはトリガーイベントに依存する場合がある。例えば、Bluetooth接続のために設計された予測モデルは、トリガーイベントが外部デバイスとのBluetooth接続の確立に関連する場合に選択されてもよい。別の実施例としては、ヘッドホン接続に対して指定された予測モデルは、トリガーイベントがヘッドホンのセットのヘッドホンジャックへの挿入に関連する場合に選択されてもよい。
ブロック36_508では、デバイスは、コンテキスト情報を受信する。コンテキスト情報は様々なソース、例えば、図36-3のコンテキストソース36_308から受信することができる。実施形態では、コンテキスト情報はデバイスの周囲状況に関連してもよい。例えば、コンテキスト情報は時間帯、日付、又はデバイスのロケーションに関連してもよい。加えて、履歴情報はデバイスによっても受信されてもよい。履歴情報は、データベース内、例えば、履歴イベントデータベース36_316内に記憶された、デバイスとユーザとの間の相互作用の履歴に関連してもよい。
ブロック36_510では、デバイスは、ユーザによってアクセスされる少なくとも閾値確率を有する1つ以上のアプリケーションを識別することができる。本セクションで既に述べたように、複数の閾値があってもよい。一部の実施形態では、閾値確率は、ベースライン閾値確率、低閾値確率、又は高閾値確率とすることができる。例えば、1つ以上のアプリケーションはそれぞれ閾値確率を超える確率を有してもよい。別の実施例では、1つ以上のアプリケーションは閾値確率を超える複合確率を有してもよい。1つ以上のアプリケーションは、最上位確率を有するアプリケーションとすることができ、様々な基準(例えば、閾値を超える確率を有するすべて、閾値を超えるのに必要とされるが最大数に限定されるできるだけ多くのアプリケーションなど)に選択されてもよい。一部の実施形態では、ベースライン閾値確率未満の確率を有するアプリケーションは無視されてもよい。
ユーザによってアクセスされる確率は予測モデルによって判定されてもよい。予測モデルは、コンテキスト情報並びに履歴情報を利用することによって確率を判定することができる。実施形態では、識別されたアプリケーションは、図36-3及び図36-4に関して本セクションで検討されたアプリケーションである。
一部の実施形態では、アプリケーションが等しい確率を有する場合、それらは無視されてもよい、すなわち、識別されなくてもよい。これらの状況では、デバイスは、1つ以上のアプリケーションを適切に識別するために、追加の履歴情報を生成する必要がある場合がある。より多くの履歴情報が収集されるにつれて、デバイスは適切なアプリケーション、例えば、所与のコンテキストでユーザによってアクセスされるのを所望されるアプリケーションを識別する際により正確になる。他の実施形態では、2つのアプリケーションが上位2つの確率を有する場合など、両方のアプリケーションの複合確率が十分に高い場合、両方のアプリケーションが提供される場合がある。
ブロック36_512では、デバイスはユーザインタフェースをユーザに提供することができる。例えば、デバイスは、ユーザが識別されたアプリケーションにアクセスしたいかどうかを示すよう、ユーザが相互作用し得るインタフェースを介して、識別されたアプリケーションをユーザに表示してもよい。例えば、ユーザインタフェースは、識別されたアプリケーションのうちの1つ以上をユーザに示すタッチ感知ディスプレイを含んでもよく、タッチ感知ディスプレイと相互作用することによって、ユーザは、デバイスによって識別されたアプリケーションのうち1つ以上にアクセスするのを可能にする。
特定の実施形態では、ユーザインタフェースはロックスクリーン内、又はホームスクリーン内に提供されてもよい。ホームスクリーンは、アンロック状態でホームボタンを押した後に表示されるスクリーンとすることができる。ロックスクリーンは、デバイスを起動するために長い非アクティブな期間の後、ホームボタンを押した後に表示されるスクリーンとすることができる。実施形態では、ロックスクリーンは、ホームスクリーンよりもアプリケーションを表示するための利用可能なディスプレイスペースが少ないのは、ロックスクリーンの一部はデバイスのロックを解除するために確保されているからである。一部の実施形態では、ユーザインタフェースは既に実行中のアプリケーションに関連付けられてもよい。一例としては、ユーザインタフェースは、図36-6に図示するように、実行中の音楽アプリケーションに関連付けられたオーディオ制御を有する音楽プレーヤーインタフェースとすることができる。
図36-6は、既に実行中のアプリケーションに関連付けられたデバイス36_602の例示的なユーザインタフェース36_600を図示する。異なるアプリケーションの他のユーザインタフェースが本セクションでも想定されるが、ユーザインタフェース36_600は、音楽アプリケーションのユーザインタフェースとすることができる。ユーザインタフェース36_600はタッチスクリーンディスプレイ36_604によって提供されてもよい。タッチスクリーンディスプレイ36_604はオーディオコントロール36_608、音量コントロール36_610、曲タイトル36_612及び/又はアルバムアート36_614を表示することができる。オーディオコントロール36_608は、曲の早送り、巻き戻し、再生、及び一時停止のためのユーザインタフェースを提供することができる。音量コントロール36_610はユーザが出力された音響の音量を調整するのを可能にする。曲タイトル36_612及びアルバムアート36_614は、現在再生中の曲についての情報を表示することができる。実施形態では、ユーザインタフェース36_600がタッチスクリーンディスプレイ36_604によって表示されたとき、デバイス36_602のバックライトが照光されてもよい。バックライトの照光により、ユーザは実行中のアプリケーションを見ることができると共に、デバイス36_602が提案されたアプリケーションを実行したことに気づくことができるようになる。音楽アプリケーションを自動的に実行しユーザインタフェース36_600をユーザに提供することによって、デバイス36_602は、ユーザが1つ以上のアイコンをクリックする必要なく、自身の所望のアプリケーションにアクセスできるようにして、ユーザエクスペリエンスを高めることができる。
ユーザインタフェース36_600の部分は、一部の状況では隠されてもよい。例えば、デバイス36_602の図36-3のエキスパートセンター36_320などのエキスパートセンターが別のアプリケーションが提案されたアプリケーションよりも優先されると判断する場合は、アルバムアート36_614は隠されてもよく、他のアプリケーションがその代わりに表示されてもよい。他のアプリケーションが、他のアプリケーションを実行するためのディスプレイ36_604上のアクセス可能なアイコンとして表示されてもよい。他の実施形態では、他のアプリケーションが、ユーザが通知をクリックすると、他のアプリケーションのアイコンへアクセスできるようにする通知として表示されてもよい。かかる状況では、通知はアルバムアート36_614の代わりに表示されるであろう。実施形態では、ユーザインタフェースがロックスクリーン上に表示される場合、通知もロックスクリーン上に表示されてもよい。したがって、ユーザは優先度が高いと思われるアプリケーションに気づかされ、それを実行する機会が与えられてもよい。
XII.アプリケーションを実行するための時間制限
実施形態では、識別されたアプリケーションが特定の期間にアクセスされない場合、まるでユーザインタフェースがそもそも提供されなかったかのように、デバイスは、ユーザインタフェースを除去することができる。ユーザが特定の期間アプリケーションにアクセスしない場合、ユーザがアプリケーションへのアクセスに興味がないとみなされる。したがって、ユーザインタフェースは、ユーザが識別されたアプリケーションにアクセスできないように除去され、ユーザの気は散らされない。
図36-7A及び図36-7Bは、実施形態に係る、ユーザインタフェースを除去する方法を図示するフローチャートである。具体的には、図36-7Aは、一定期間の後、ユーザインタフェースを除去するための方法36_700を図示するフローチャートである。図36-7Bは、トリガーイベントが閾値期間内に除去された後、ユーザインタフェースを除去するための方法36_703を図示するフローチャートである。方法36_700及び方法36_703はデバイスによって完全に又は部分的に実行することができる。
図36-7Aを参照すると、方法36_700はブロック36_701でユーザインタフェースをユーザに提供して開始する。ブロック36_701は、図36-5に関して本セクションで検討したブロック36_512で述べたように実行され得る。
ブロック36_702では、デバイスは、ユーザインタフェースが最初にユーザに提供されてから、閾値期間が経過したかを判定する。ユーザインタフェースは、ロックスクリーン又はホームスクリーンのいずれかでユーザに提供されてもよい。実施形態では、閾値期間は、ユーザがデバイスと相互作用しなかった場合の、ユーザインタフェースをユーザに提供した直後に開始する所定の期間を表す。
閾値期間はトリガーイベントのタイプに応じて異なる場合がある。例えば、トリガーイベントが直接的なユーザ相互作用を伴うイベントのタイプ(例えば、イベントを起こそうとするユーザによる認識アクション)である場合、閾値期間は相対的に短くなり得る(例えば、15~30秒)。かかるトリガーイベントの例としては、ヘッドホンのセットのヘッドホンジャックへの挿入が挙げられる。別の例としては、長い期間後にボタンを押すことによってデバイスを起動することが挙げられる。閾値期間は相対的に短くなり得るのは、ユーザが直接、電話機と相互作用し、出力された識別アプリケーションにすぐに気づき得ることを想定できるからである。ユーザが識別されたアプリケーションにすぐに気づくので、識別されたアプリケーションにアクセスされない短い期間が経過することで、ユーザが識別されたアプリケーションにアクセスするつもりはないことが示される。
あるいは、トリガーイベントが直接的なユーザ相互作用を伴わないイベントのタイプである場合、閾値期間は、直接的なユーザ相互作用を伴うトリガーイベントの閾値期間より長くなり得る。実施形態では、直接的なユーザ相互作用を伴わないトリガーイベントの閾値期間は、相対的に長く、例えば、15~30分とすることができる。かかる一つの例としては、あるロケーションに到着することが挙げられる。デバイスが特定のロケーションに到着する場合、ユーザは移動していて、デバイスに注目していないことが想定される。ユーザは、出力された識別されたアプリケーションにすぐに気づかない場合がある。したがって、ユーザがデバイスをチェックし、識別されたアプリケーションに気づく前に、より多くの時間が経過する場合がある。
ブロック36_704では、閾値期間は経過する場合、ユーザインタフェースは、ユーザがアプリケーションが提案されたことを全く認識しない可能性があるように除去されてもよい。しかし、閾値期間が経過しない場合、ブロック36_706では、デバイスはユーザがアプリケーションにアクセスしたいかを判定する。ユーザは、ユーザインタフェースを介したユーザ入力の任意の形態によって、例えば、タッチスクリーンと相互作用する、ボタンを押す、スイッチを指ではじく、又はバイオメトリックデバイスを使用することによって、自分がアプリケーションにアクセスしたいことを示すことができる。
ユーザがアプリケーションにアクセスしたいことをまだ示していないと判定される場合は、デバイスは、ブロック36_701で継続してユーザインタフェースをユーザに提供することができる。しかし、ユーザがアプリケーションにアクセスしたいというインジケーションをデバイスが受信すると、ブロック36_708では、デバイスはアプリケーションを実行することができる。したがって、デバイスは、所望のアプリケーションへのショートカットを提供することで、ユーザの時間を節約することができ、それによって、ユーザのエクスペリエンスを高めることができる。
一部の実施形態では、ユーザインタフェースは閾値期間の持続時間前に除去されてもよい。図36-7Bに図示するように、ブロック36_710では、デバイスはトリガーイベントが除去されたか、例えば、トリガーイベントの反対のアクションが検出されたかを判定する。例えば、トリガーイベントがヘッドホンのセットのヘッドホンジャックへの挿入である場合、トリガーイベントの除去は、ヘッドホンのセットをヘッドホンジャックから引き抜くことである。別の実施例では、トリガーイベントがBluetooth接続の確立である場合、トリガーイベントの除去は、Bluetooth接続を切断することである。トリガーイベントの除去は、ユーザが提案されたデバイスにアクセスするつもりはないことを意味するように、デバイスによって解釈される場合がある。したがって、トリガーイベントが除去される場合、ユーザインタフェースを、ブロック36_704で除去でき、例えば、アプリケーションはクリアでき、アプリケーションの任意のユーザインタフェースを隠すことができる。
XIII.トレーニングルーチン
モバイルデバイスの使用を通して履歴情報が蓄積されるについて、予測モデル(例えば、図36-4で検討した予測モデル1~N)は、新しい履歴情報を考慮して定期的にトレーニング(すなわち、更新)されてもよい。トレーニングされた後、予測モデル1~Nは、ユーザとモバイルデバイスとの間の一番最近の相互作用パターンにしたがって、より正確にアプリケーション及びアクションを提案することができる。トレーニング予測モデル1~Nは、大量の履歴情報が記録された場合は、最も効果的となり得る。こうして、トレーニングは、モバイルデバイスがユーザとの多数の相互作用を検出できるほど十分に長い間隔で発生することができる。しかし、トレーニングセッションの間あまりに長時間待つことは、予測エンジンの適応性を妨げる場合がある。したがって、トレーニングセッションの間の好適な時間は、15~20時間、例えば、18時間とすることができる。
トレーニング予測モデル1~Nは時間がかかる場合があり、モバイルデバイスの使用と干渉する場合がある。したがって、トレーニングはユーザが最もデバイスを使用しそうもないときに発生してもよい。ユーザがデバイスを使用しないであろうことを予測する一つの方法は、デバイスが使用されていないときの時間、例えば、ボタンが押されていないとき、及びデバイスが移動していないときを待つ方法がある。これは、ユーザが近い将来に一定期間、例えば、ユーザが寝ているとき、電話機と相互作用しない状態にあることを示すことができる。任意の好適な持続時間は、1時間から3時間などの待ち時間に使用することができる。特定の実施形態では、待ち時間は2時間である。
2時間の終わりに、予測モデル1~Nは更新され得る。しかし、この2時間の終了前に、ユーザがモバイルデバイスと相互作用する(ボタンを押すか、又はデバイスを移動する)場合は、2時間の期間のカウントダウンが再始動してもよい。この時間が活動していない2時間に達する前に絶えず再始動する場合は、モバイルデバイスは、絶対時間後に予測モデル1~Nのトレーニングを強制してもよい。一実施形態では、絶対時間は、旧式の予測モデルのため、ユーザによるモバイルデバイスの使用しやすさが低下し始める閾値時間であると判定されてもよい。絶対時間は、10~15時間にわたる場合があり、あるいは特定の実施形態では12時間としてもよい。したがって、トレーニング間の最大時間は、28時間(18+10時間)~33時間(18+15時間)とすることができる。特定の実施形態では、最大時間は、30時間(18+12時間)である。
一部の実施形態では、デバイス100(図1A)のソフトウェアコンポーネントはトリガーイベントモジュール及び予測モジュールを含む。トリガーイベントモジュールは、例えば、図36-2に関して本セクションで記載したように、様々なサブモジュール又はシステムを含むことができる。更に、予測モジュールは、例えば、図36-3に関して本セクションに記載したように、様々なサブモジュール又はシステムを含むことができる。
検出されたトリガーイベントに基づくアプリケーション推薦の例示の方法、デバイス、及びコンピュータ可読媒体
一部の実施形態では、イベントは入力デバイスによって検出され得る。イベントは、そのイベントをトリガーイベントからなるグループと比較することで、トリガーイベントであると判定され得る。その後、そのイベントに対応する第1の予測モデルが選択される。その後、第1のコンテキストにおいてコンピューティングデバイスの1つ以上のプロパティを特定するデバイスについてのコンテキスト情報が受信され、1つ以上のアプリケーションのセットが識別される。1つ以上のアプリケーションのセットは、イベントが第1のコンテキストで発生した場合、ユーザによってアクセスされる少なくとも閾値確率を有し得る。その後、1つ以上のアプリケーションのセットと相互作用するために、ユーザインタフェースがユーザに提供される。
一部の実施形態では、コンピューティングデバイス上で実行される提案されたアプリケーションと相互作用するためにユーザインタフェースをユーザに提供するための、コンピュータにより実行される方法が提供され、その方法は、コンピューティングデバイスにおいて、コンピューティングデバイスの入力デバイスでイベントを検出することと、このイベントが1つ以上の提案されたアプリケーションを識別するために指定されたトリガーイベントからなるグループのうちの1つに対応することを判定することと、イベントに対応する第1の予測モデルを選択することと、第1のコンテキストに対してコンピューティングデバイスの1つ以上のプロパティを特定する、コンピューティングデバイスについてのコンテキスト情報を受信することと、第1の予測モデルによって、第1のコンテキストと関連してイベントが発生したとき、ユーザによってアクセスされる少なくとも閾値確率を有する1つ以上のアプリケーションのセットを識別することであって、この第1の予測モデルはイベントが検出された後、ユーザのコンピューティングデバイスとの過去相互作用を使用する、ことと、1つ以上のアプリケーションのセットと相互作用するために、ユーザインタフェースをユーザに提供することと、を含む。一部の実施形態では、コンピューティングデバイスの入力デバイスでイベントを検出することは、コンピューティングデバイスのアクセサリデバイスへの接続を検出することを含む。一部の実施形態では、アクセサリデバイスはヘッドホン又は車両のコンピュータを含む。一部の実施形態では、コンテキスト情報はコンピューティングデバイスのロケーションを特定する。一部の実施形態では、ユーザインタフェースは、コンピューティングデバイスのホームスクリーン上で提供されるよりも、少ないアプリケーションと、スクリーン上で相互作用することを可能にする。一部の実施形態では、コンピューティングデバイスの入力デバイスでイベントを検出することは、1つ以上のモーションセンサでコンピューティングデバイスの動きを検出することと、この動きに基づいてコンピューティングデバイスのモーション状態を判定することと、を含み、1つ以上の提案されたアプリケーションを識別するために指定されたトリガーイベントからなるグループのうちの1つは、コンピューティングデバイスのモーション状態を含む。一部の実施形態では、第2の予測モデルが、イベントとは異なる別のトリガーイベントが検出されたときに選択され、第2の予測モデルは第1の予測モデルとは異なるものである。一部の実施形態では、1つ以上のアプリケーションのセットは、複数のアプリケーションを含み、1つ以上のアプリケーションのセットは全体として閾値確率を超える確率を有する。一部の実施形態では、ユーザインタフェースがコンピューティングデバイスのロックスクリーン上に提供され、ユーザインタフェースはロックスクリーンからアプリケーションのセットのうちの1つを選択できるようにする。一部の実施形態では、方法は、1つ以上のアプリケーションのセットを実行することを含み、ユーザインタフェースは実行される1つ以上のアプリケーションに特有である。一部の実施形態では、1つ以上のプロパティは、コンピューティングデバイスのロケーション、コンピューティングデバイスによって判定された時間帯、及びコンピューティングデバイスによって判定された日付のうちの少なくとも1つを含む。一部の実施形態では、方法は、閾値期間が経過したかを判定することと、閾値期間が経過したと判定された場合は、ユーザインタフェースを除去することと、閾値期間が経過していないと判定された場合は、ユーザが1つ以上のアプリケーションのセットにアクセスしようと捜し求めているかを判定することと、ユーザが1つ以上のアプリケーションのセットにアクセスしようと捜し求めていると判定された場合、1つ以上のアプリケーションのセットを実行することと、を含む。一部の実施形態では、閾値期間は、直接的なユーザ相互作用を伴わないトリガーイベントよりも直接的なユーザ相互作用を伴うトリガーイベントについては短い。
一部の実施形態では、実行されたとき、1つ以上のプロセッサを含むデバイスを制御する複数の命令を記憶する非一時的コンピュータ可読記憶媒体を含むコンピュータ製品であって、命令は、デバイスの入力デバイスでイベントを検出する、ことと、イベントが1つ以上の提案されたアプリケーションを識別するために指定されたトリガーイベントからなるグループのうちの1つに対応することを判定することと、イベントに対応する第1の予測モデルを選択することと、第1のコンテキストに対してデバイスの1つ以上のプロパティを特定する、デバイスについてのコンテキスト情報を受信することと、第1の予測モデルによって、第1のコンテキストでイベントが発生したとき、ユーザによってアクセスされる少なくとも閾値確率を有する1つ以上のアプリケーションのセットを識別することであって、この第1の予測モデルはイベントが検出された場合、デバイスとのユーザの過去相互作用を使用する、ことと、1つ以上のアプリケーションのセットと相互作用するために、ユーザインタフェースをユーザに提供することと、を含む。一部の実施形態では、デバイスの入力デバイスでイベントを検出することは、コンピューティングデバイスのアクセサリデバイスへの接続を検出することを含む。
一部の実施形態では、トリガーイベントを記憶するためのトリガーイベント記憶装置と、履歴データを記憶するための履歴記憶装置と、1つ以上の入力デバイスと、1つ以上のコンテキストソースと、1つ以上の入力デバイスでイベントを検出し、イベントが、1つ以上の提案されたアプリケーションを識別するために指定されたトリガーイベントからなるグループのうちの1つに対応することを判定し、イベントに対応する第1の予測モデルを選択し、1つ以上のコンテキスト情報から、第1のコンテキストに対してコンピューティングデバイスの1つ以上のプロパティを特定するデバイスについてのコンテキスト情報を受信し、第1の予測モデルによって、第1のコンテキストでイベントが発生したとき、ユーザによってアクセスされる少なくとも閾値確率を有する1つ以上のアプリケーションのセットを識別することであって、この第1の予測モデルはイベントが検出された場合、ユーザのコンピューティングデバイスとの過去相互作用を使用し、1つ以上のアプリケーションのセットと相互作用するためにユーザインタフェースをユーザに提供するように構成された1つ以上のプロセッサと、を備えるデバイスが提供される。一部の実施形態では、1つ以上の入力デバイスはヘッドホンジャック、Bluetoothデバイス、ボタン、タッチスクリーン、加速度計、及びGPSのうちの少なくとも1つを含む。一部の実施形態では、トリガーイベントは所定のイベントである。一部の実施形態では、ユーザインタフェースは、コンピューティングデバイスのホームスクリーン上で提供されるよりも、少ないアプリケーションとの相互作用を可能にする。一部の実施形態では、1つ以上のアプリケーションのセットは、複数のアプリケーションを含み、複数のアプリケーションのそれぞれは閾値確率を超える確率を有する。
セクション7:人々中心の予測/デバイスのコンテキストに基づいて宛先を提案する技法
本セクションの「人々中心の予測」という題材は、一部の実施形態による、人々中心の予測及びデバイスのコンテキストに基づいて宛先を提案する技法を記載し、本明細書に提供される開示を補足する情報を提供する。例えば、本セクションの部分は連絡先を識別及び予測する方法、並びにユーザによって使用される連絡先を推薦する方法を記載し、それらは本明細書に提供される開示を補足するものであり、特に、図9B~図9Cの予測部分930内に提案された人々をポピュレートすることを参照して、例えば、以下に検討する方法600及び方法800に関連するものである。一部の実施形態では、本セクションに記載される連絡先の予測及び提案を支援するのに使用される予測モデル及び過去相互作用データベースは、予測、提案及び/又は、ユーザによって即座に使用できるように検索インタフェース又はロックスクリーンなどのユーザインタフェース内への包含のために適切な連絡先の識別を支援するのに使用される(すなわち、これらの予測モデルは連絡先を提案/予測するための方法600、方法800、方法1000、及び方法1200と併せて使用される)。
人々中心の予測の概要
実施形態は、デバイスの現在のコンテキストに基づいてコンピューティングデバイスのユーザと最も関連しそうな、通信及び相互作用のための宛先を提案する。コンピューティングデバイスの例は、電話機コンピュータ、タブレットコンピュータ、ラップトップコンピュータ、又はデスクトップコンピュータである。例示のシステムは、以前の相互作用の知識を収集し、この知識に基づいて予測された宛先を提案する。知識は、いつ、どこで、かつどのようにユーザが他のユーザと相互作用したかを示す情報と共に過去相互作用データベース内に記憶することができる。システムは、特定のコンテキストの場合、宛先と相互作用するメカニズムと共に宛先(例えば、人々)を推薦することができる。コンテキストは、時間、ロケーション及びアカウント識別子(例えば、電子メールアカウント)を示す状態変数に関して記載され得る。コンテキストはまた、キーワード(例えば、電子メールの件名又はカレンダーイベントのタイトルからのキーワード)及び、例えば、ユーザが過去に相互作用した宛先のセットなど他の要因に基づくものとすることもできる。特定のユーザ、アカウント、アプリケーション(例えば、通信アプリケーション)、又は相互作用のメカニズムに対する提案を絞り込むのに役立つように、追加の制約が課される場合がある。
実施形態は、イベント及びコンテキストに基づいてコンピューティングデバイスと連絡するための1つ以上の宛先を提案するシステム、方法、及び装置を提供することができる。例示のイベントとしては、検索を開始するための入力の受信、電子メールアプリケーションにアクセスするための入力の受信、電子メールの構成、テキストメッセージアプリケーションにアクセスするための入力の受信、テキストメッセージの構成、カレンダーアプリケーションにアクセスするための入力の受信、カレンダーエントリの作成、カレンダーエントリの編集、電話機通話の開始、テレビ通話の開始、及びテレビ会議の開始が挙げられる。例示のコンテキストはロケーション及び時間を含む。実施形態は、ユーザが通信を開始又は構成するのに使用しているデバイスのコンテキスト(例えば、自宅で、通勤中、仕事中など)に基づいて通信の宛先を予測することができる。例えば、通信について知られた情報(例えば、通信が電子メール、インスタントメッセージ、テキストメッセージ、テレビ会議又はカレンダーの招待かどうか)に基づいて、通信の宛先が予測される。通信の宛先はまた、以前の通信に基づいて予測される。例えば、ユーザ又はユーザが過去に、以前の電子メール、メッセージ又は通話を介して相互作用した連絡先が通信の宛先として提案され得る。
実施形態は、ユーザが特定の時間及び場所で相互作用することを望む場合がある人々を予測するために、コンテキスト情報を用いることで、連絡する宛先を提案する方法を提供することができる。一部の実施形態は、デバイス(例えば、モバイルデバイス)のユーザがアプリケーション内で通信を構成又は開始している際の、現在の状態を表す現在のコンテキストを判定する。実施形態では、現在のコンテキストは、時間、ロケーション、次のカレンダーエントリ、通信のタイトル又は件名(例えば、電子メールの件名又はカレンダーエントリのタイトル)、同様の通信における以前の宛先、及びアカウント情報(例えば、私的な電子メールアカウント又は仕事の電子メールアカウント)などのコンテキスト情報を含むことができる。一部の実施形態は、現在のコンテキストを使用し、ユーザが通信の宛先として追加する可能性の最も高い宛先は誰かを予測する。
他の実施形態は、本明細書に記載の方法に関連付けられたシステム、ポータブル家庭用デバイス及びコンピュータ可読媒体を対象とする。
以下の詳細な説明及び添付の図面を参照することにより、本発明の実施形態の性質及び利点の理解をより深めることができる。
人々中心の予測の詳細な説明
実施形態は、コンピューティングデバイスのユーザに宛先を提案するための、カスタマイズされ、かつパーソナライズされたエクスペリエンスを提供でき、それによって他のユーザと相互作用及び通信するためのデバイスの使用を容易にするものである。実施形態は、人々中心の予測を用いて連絡するための宛先を提案する方法を提供することができる。人々中心の予測は、コンテキスト情報を用いて、ユーザが特定の時間及び場所で相互作用することを望む場合がある人々を予測する。コンピューティングデバイスのユーザは他のユーザのセット(例えば、連絡先)と相互作用及び通信することができる。コンピューティングデバイスの例は、電話機コンピュータ、タブレットコンピュータ、ラップトップコンピュータ、又はデスクトップコンピュータである。他のユーザとの相互作用及び通信は、特定のイベント後に発生してもよい。例示のイベントとしては、検索の開始、通信アプリケーションへのアクセス、及び通信の構成又は開始が挙げられる。例示の通信アプリケーションとしては、電子メールアプリケーション、カレンダーアプリケーション、テレビ通話アプリケーション、インスタントメッセージアプリケーション、テキストメッセージアプリケーション、テレビ会議アプリケーション、Web会議アプリケーション、及び音声通話アプリケーションが挙げられる。例示の通信としては、例えば、電子メールメッセージ、カレンダーの招待、テキストメッセージ、インスタントメッセージ、テレビ通話、音声通話、及びテレビ会議などの音声及びデータ通信が挙げられる。通信アプリケーションがデバイス上で使用される場合、通信の宛先は、デバイスの現在のコンテキストと履歴情報との比較に基づいて提案され得る。
実施形態では、過去の過去相互作用からのデータは、データベースのテーブルに記憶され、通信の宛先を提案するのに使用される。データベースは、例えば、タイムスタンプ、相互作用に使用されたアプリケーション、アカウント情報(例えば、電子メールアカウントのアカウント識別子)、及びロケーションなどの過去の相互作用のコンテキスト情報を含むことができる。過去の相互作用は、デバイスのコンテキストと比較され、デバイス上で開始される通信の宛先を提案することができる。例えば、デバイスの現在のコンテキストは、過去相互作用データと比較されて、現在のコンテキストと、以前の宛先と同様の過去の相互作用と一致させることができる。
履歴データ内の各データポイント(例えば、記録)は、特定のコンテキストに対応する(例えば、デバイスの1つ以上のプロパティに対応する)ことができ、特定のコンテキストに対する一層多くのデータが長時間にわたって得られる。特定のイベントに対する履歴データは、ユーザに宛先を提案するのに使用され得る。様々なユーザが様々な履歴データを有するにつれて、実施形態は、パーソナライズされたエクスペリエンスを提供することができる。
一部の実施形態では、以前の同様の通信の宛先が、構成又は開始される通信の宛先を提案するのに使用される。例えば、ユーザが現在の通信に対する最初の宛先を選択する場合、選択される最初の宛先と過去の通信に追加された他の宛先を使用して、現在の通信に対する追加の宛先を予測することができる。一実施形態では、宛先は、相互作用の周期性(例えば、同様の時間帯又は同じ曜日に繰り返し送信された通信)を示すコンテキストデータに基づいて提供することができる。宛先はまた、ユーザの現在のロケーションが、過去の通信が特定の連絡先に送信されたときにユーザがいたロケーションと同じであることを示すロケーション情報に基づいて提供することができる。
実施形態では、ユーザが提供した情報が宛先を予測するのに使用され得る。ユーザが提供した情報は、電子メールの件名、電子メールのコンテンツ、カレンダーエントリのタイトル、イベント時刻、及び/又はユーザが選択した宛先を含むことができる。かかるユーザが提供した情報は、過去コンテキスト情報と比較されて、宛先を予測することができる。例えば、ユーザが提供した情報と同様の特性を有する過去の通信の宛先が、現在の通信の提案された宛先としてユーザに提示される場合がある。一部の実施形態は、ユーザが通信内に入力した情報(例えば、ユーザが件名又は添付を含めた場合)を使用して、かかる情報が潜在的な宛先の識別に関連すると判定することができる。例えば、実施形態は、電子メールメッセージの件名又はカレンダーエントリを解析し、かかる情報が利用可能な場合には、潜在的な宛先の提案に関連する場合がある1つ以上のキーワードを識別することができる。
正確にパーソナライズされたエクスペリエンスを提供するため、各種実施形態は、宛先の提案を提供せずに単にトレーニングされた、又は種々のコンテキストに対する宛先(単数又は複数)の同一のセットを提案する広範なモデルで始めることができる。十分な履歴データを用いて、広範なモデルは、サブモデル、例えば、人々又は相互作用のグループにセグメント化され得、各サブモデルは過去相互作用データの異なるサブセットに対応するものである。次に、イベントが発生すると、デバイスの現在のコンテキストに対応する1つ以上の提案された宛先を提供するために特定のサブモデルが選択され得る。例えば、履歴データのサブセット内の正確な予測を提供するサブモデル内の信頼水準及び親モデルに対する履歴データの分布内の情報利得(エントロピーの低下)など、様々な基準がサブモデルをいつ生成すべきかを判定するのに使用され得る。
したがって、一部の実施形態は、宛先推薦のコンテキストで履歴データをいつ、どのようにセグメント化するかを決定することができる。例えば、ユーザ相互作用アクティビティの期間を収集した後、実施形態は、予想されるセグメント化候補(例えば、ロケーション、曜日、時間帯など)のリストを蓄積することができる。実施形態はまた、全データセットのモデルをトレーニングし、データセット及びモデルの合わせた分布内の信頼度のメトリックを計算することができる。モデルのセットは、セグメント化されたデータセット(サブセット)のそれぞれに対して1つでトレーニングでき、データモデル分布のそれぞれの信頼度を測定することができる。すべてのデータモデル分布の信頼度が許容される場合、実施形態はセグメント化(分割)を行い、更なるセグメント化のためのセグメント化された空間を再帰的に検査することができる。
このようにして、一部の実施形態は、セグメント化と一般化との間のトレードオフを探査するよう推論を使用でき、より別個の、複合パターンを有するユーザに対してより複合モデルを、よりノイジー(noisier)でより簡潔なパターンを有するユーザに対して簡潔で一般的なモデルを生成することができる。また、一部の実施形態は、可能な候補モデル間の発散分布の発見に基づいて確率的モデルの木を生成することができる。
I.イベントに基づいた宛先の提案
実施形態は、イベントに基づいて1つ以上の宛先を提案することができ、それは、特定の所定のイベント(トリガーイベントとも呼ばれる)に限定されてもよい。例示のトリガーイベントとしては、検索の開始、電子メールメッセージの構成、カレンダーエントリの作成などを含み得る。例えば、ユーザが以前に、特定の電子メールアカウントを用いて電子メールを送信したことがある連絡先が、ユーザが電子メールアカウントを用いて電子メールを構成し始める時に提案され得る。一部の実施形態では、コンテキスト情報は、ユーザに提案する宛先を識別するためにイベントと併せて使用され得る。一実施例としては、カレンダーエントリ(例えば、カレンダーイベント、ミィーティング又は約束)が作成又は修正される場合、ロケーションに関連するコンテキスト情報を使用してもよい。デバイスがオフィスのロケーションにある場合、例えば、そのロケーションにオフィスを有する宛先Aが、カレンダーイベントの参加者として提案される場合がある。あるいは、デバイスが自宅にある場合、自宅ロケーションに関連付けられた宛先B(すなわち、家族又はルームメイト)が、カレンダーエントリの参加者として提案され得る。したがって、特定のコンテキスト下で関連すると予測されるアプリケーションをちょうどよい時刻に提案することができるので、ユーザエクスペリエンスを向上させることができる。別の実施例としては、カレンダーエントリが作成又は修正のため開かれている場合、時間に関連するコンテキスト情報が使用されてもよい。カレンダーエントリのスケジュールされた開始時刻がユーザの典型的な勤務時間に対応する場合は、同僚である宛先Aがカレンダーイベントの参加者として提案されてもよい。あるいは、カレンダーエントリが夕方又は週末に対応する開始時刻を有する場合、友人又は家族である宛先Bがカレンダーイベントの参加者として提案され得る。
図37-1は、本発明の実施形態に係る、検出されたイベントに基づいて宛先を提案する方法37_100のフローチャートである。方法37_100を、モバイルデバイス(例えば、電話機、タブレット)又は非モバイルデバイスによって実行することができ、またその方法は、デバイスの1つ以上のユーザインタフェースを使用することができる。
ブロック37_102では、ユーザデバイスでのユーザ入力が検出される。一部の実施形態では、入力が宛先を提案するためのトリガーイベントに対応するかを判定することができる。一部の実装形態では、提案された1つ以上の宛先(単数又は複数)の判定は、特定の所定のイベント(例えば、トリガーイベント)に対してのみ行われる。他の実装形態では、提案された1つ以上の宛先(単数又は複数)の判定は、イベントの動的リストに対して行うことができ、それはユーザデバイスを用いて行われた履歴ユーザ相互作用に基づいて更新され得る。
一部の実施形態では、トリガーイベントは、デバイスの通信アプリケーションの動作に相関する可能性が十分あるものとして識別され得る。トリガーイベントであるイベントのリストはデバイスに記憶され得る。かかるイベントは既定のリストとすることができ、オペレーティングシステムの一部として維持され得、ユーザによって構成変更できてもよいし、構成変更できなくてもよい。
トリガーイベントは、ユーザ及び/又は外部デバイスに誘導されたイベントとすることができる。例えば、トリガーイベントは、入力がモバイルデバイスで受信された場合とすることができる。例としては、検索を開始するための入力の受信、通信アプリケーションにアクセスするための入力の受信などが挙げられる。本例では、これらのイベントのそれぞれは、異なるトリガーイベントとして分類することができる。他の例としては、トリガーイベントは、デバイスとのユーザの特定の相互作用とすることができる。例えば、ユーザはデバイス上で検索を開始し、デバイス上で通信アプリケーションにアクセスし、又はデバイス上で通信メッセージの構成を開始することができる。また、例えば、ユーザは、モバイルデバイスを職場のロケーションまで移動させることができ、この場合、デバイスのロケーション状態はトリガーイベントである。かかるロケーション状態(又は他の状態)は、デバイスのセンサに基づいて判定され得る。
ブロック37_104では、デバイスの現在の状態を表すコンテキスト情報が判定される。一実施例では、コンテキスト情報はデバイス上で実行されるアプリケーションを示すことができる。例えば、コンテキスト情報は、通信を開始するのに用いられる通信アプリケーションの状態を示すことができる。コンテキスト情報はまた、通信を開始するのに用いられる検索アプリケーションの状態を示すこともできる。一実施例としては、ブロック37_104は、時間、アカウント情報(例えば、電子メールアカウント識別子)、及び/又はデバイス上で使用される通信アプリケーションに対応するロケーションを含むことができる。ブロック37_104はまた、デバイスのサブ状態を判定することも含むことができ、サブ状態は、実行中のアプリケーションのアプリケーション状態である。例えば、アプリケーション状態は、電子メールメッセージを構成するのに使用される電子メールアプリケーションの状態、カレンダーイベントを作成するのに使用されるカレンダーアプリケーションの状態、インスタントメッセージを開始するのに使用されるインスタントメッセージングクライアントの状態、テキストメッセージを構成するのに使用されるアプリケーションの状態、又は電話機通話、テレビ通話若しくはテレビ会議を開始するのに使用されるアプリケーションの状態を示すことができる。
コンテキスト情報は特定のコンテキストに対してデバイスの1つ以上のプロパティを特定することができる。コンテキストは、トリガーイベントが受信されたときのデバイスの周囲の環境(コンテキストのタイプ)としてもよい。例えば、コンテキスト情報はイベントが検出される時間帯としてもよい。別の実施例では、コンテキスト情報は、イベントが検出されたときのデバイスの特定のロケーションとしてもよい。更に別の実施例では、コンテキスト情報は、トリガーイベントが検出された時の特定の日付としてもよい。かかるコンテキスト情報は、提案エンジンがにそのコンテキストでユーザによって選択される可能性のある宛先を正確に提案できるようにデバイスのコンテキストについてのより有意義な情報を提供してもよい。したがって、コンテキスト情報を利用する予測エンジンは、コンテキスト情報が利用されない場合より、正確に宛先をユーザに提案することができる。
ブロック37_106では、ユーザと他のユーザとの間の過去の相互作用を表す履歴データが取り出される。取り出しは、コンテキスト情報に基づくものである。例えば、ブロック37_106は、過去の電子メール、メッセージ、電話機通話、カレンダーエントリ、テレビ通話、及びテレビ会議に対応するデータを取り出すことを含むことができる。履歴データは、ユーザデバイスを用いて行われた以前の通信に対応するテーブルから取り出すことができ、テーブルのそれぞれは、ユーザデバイスの異なるデバイスサブ状態に対応し、異なる宛先に対する以前の通信の複数の連絡測定値を含む。一実施例としては、ブロック37_106は、1つ以上の状態変数を用いて1つ以上の状態変数に対応するテーブルの第1のセットを識別し、その後、テーブルの第1のセットから1つ以上の潜在的な宛先に対する連絡測定値を得ることを含むことができる。
ブロック37_108では、コンテキスト情報は履歴データと比較される。ブロック37_108は、ブロック37_106で識別されたテーブルの第1のセットを問い合わせ、テーブルのセット内の履歴データとコンテキスト情報との間の相関関係を判定することを含むことができる。
ブロック37_110では、通信の1つ以上の宛先が予測される。図37-1に示すように、宛先は、ブロック37_108で実行された比較に基づいて予測される。一実施例としては、電子メールが勤務時間中にユーザデバイスが職場ロケーションにある間に、仕事の電子メールアカウントを用いて構成されている場合は、仕事の電子メールアドレスを有する以前に使用した連絡先が、予測された宛先として識別され得る。一部の実施形態では、1つを超える宛先が識別され得る。
ブロック37_110は、予測エンジン又は予測モデルを使用して予測された宛先を識別することができる。例えば、予測モデルは、特定のトリガーイベントに対して選択されてもよい。予測モデルは、コンテキスト情報を使用して、宛先(単数又は複数)を識別することができ、例えば、異なる宛先との相互作用又は通信は、異なるコンテキストでより可能性が高い場合がある。一部の実施形態は、例えば、デバイスを使用中、デバイスとのユーザの過去相互作用から判定され、ユーザによって選択される提案された宛先の確率が十分にある場合しか宛先を提案できない。過去相互作用の例としては、ユーザが電子メールアプリケーション、テキストメッセージ(例えば、SMSベースのメッセージング)、インスタントメッセージアプリケーション、及びテレビ会議アプリケーションを用いて、宛先とやりとりした通信の少なくとも一部分を含むことができる。
一部の実施形態では、過去の通信及び相互作用に基づいた社会的要素が宛先を予測するのに使用され得る。例えば、ブロック37_106で得られた履歴データは、以前に送信された電子メールの宛先を重み付けするのに使用され得る。社会的要素は、ユーザデバイスのユーザとユーザの通信の過去の宛先のグループ(例えば、連絡先及び連絡先のグループ)との間の過去相互作用データを反映する。共起(すなわち、同じグループの宛先に送信された通信)が、電子メールの宛先を予測するのに使用され得る。例えば、社会的要素は、ユーザが電子メールを送信したことがある各宛先を重み付けすることができ、より高い重み付けは、宛先のグループ(例えば、CCリスト又は連絡先の規定されたグループ)に繰り返して含まれたことがある宛先に割り当てられる。宛先は、それぞれの電子メールアドレスによって履歴データ内で個別に識別され得る。社会的要素の重み付けは、受信した電子メールに比べて送信した電子メールメッセージに対してより高い場合がある。社会的要素はまた、ユーザが電子メールメッセージを送信するのに使用したことがある電子メールアカウント(例えば、私的なアカウント又は仕事のアカウント)に基づいて重み付けされてもよい。コンテキスト情報が電子メールが構成されていることを示す場合、社会的要素は、過去の電子メールメッセージについての宛先の共起を識別するのに使用され得る。これらの共起はひいては、特にユーザが過去の電子メールメッセージ内の宛先のグループに含まれたことがある宛先を選択するときに、構成中の電子メールの宛先を予測するのに使用され得る。
ブロック37_112では、1つ以上の予測された宛先のインジケーションがユーザに提供される。ブロック37_112は、ユーザデバイスのユーザインタフェース内、又はユーザデバイス上で実行される通信アプリケーション内に1つ以上の予測された宛先のリストを提示することを含むことができる。一部の実施形態では、ブロック37_112で実行中のアプリケーションに関連してアクションが実行され得る。一実施形態では、アクションは、ユーザが1つ以上の予測された宛先を選択するためのユーザインタフェースを表示することとすることができる。ユーザインタフェースは、デバイスのスクリーン上に表示すること、表面に投影すること、あるいはオーディオインタフェースを提供することなど、様々な方法で提供されてもよい。
他の実施形態では、アプリケーションが実行されてもよく、アプリケーション固有のユーザインタフェースがユーザに提供されてもよい。宛先、例えば、通信の潜在的宛先の識別に応答してユーザインタフェースのどちらかを提供してもよい。他の実装形態では、アプリケーションと相互作用するためのユーザインタフェースは、ユーザが(例えば、パスワード又はバイオメトリックによって)認証された後、提供されてもよいが、かかるユーザインタフェースは、提案された宛先のリストを有するインタフェースなど、ただのホームスクリーンより具体的であろう。
II.宛先予測を開始するイベント
トリガーイベントは、ユーザに提供するための1つ以上の宛先の識別をトリガーするイベントの所定のセットとすることができる。イベントはデバイスコンポーネントによって生成された信号を用いて検出することができる。トリガーイベントがどのように検出されるかについての詳細は、図37-2を参照して以下に更に詳細に検討する。
図37-2は本発明の実施形態に係る、トリガーイベントを判定する検出システム37_200の簡略ブロック図を図示する。検出システム37_200はトリガーイベントが判定されているデバイス内に常駐することができる。図示するように、検出システム37_200は複数の異なるイベントを検出することができる。検出されたイベントのうちの1つ以上は、検出システム37_200によってトリガーイベントであることを判定され得る。その後、他の処理モジュールはトリガーイベントを用いて処理を実行することができる。
A.イベントの検出
実施形態では、検出システム37_200は、トリガーイベントを検出するためのハードウェア及びソフトウェアコンポーネントを含む。一実施例としては、検出システム37_200は、入力デバイス37_202などの複数の入力デバイスを含むことができる。入力デバイス37_202はイベントに応答して信号を生成可能な任意の好適なデバイスとすることができる。例えば、入力デバイス37_202はユーザ相互作用入力デバイス37_204、及びロケーション入力デバイス37_206を含むことができ、それらはそれぞれ、デバイス接続イベント、ユーザ相互作用イベント、及びロケーションのイベントを検出することができる。イベントが入力デバイスで検出されると、入力デバイスは、更に分析するために特定のイベントを示す信号を送信することができる。
一部の実施形態では、コンポーネントの集合は、単一のイベントに寄与することができる。例えば、モーションセンサ、GPSロケーションデバイス、及びタイムスタンプに基づいて人が仕事へ、又は仕事から通勤することを検出することができる。
1.ユーザ相互作用イベント
ユーザ相互作用入力デバイス37_204はユーザ相互作用イベントを検出するよう利用されてもよい。ユーザ相互作用イベントはユーザがデバイスと相互作用したときに発生する場合がある。一部の実施形態では、ユーザは、ユーザ相互作用入力デバイス37_204のうちの1つを介してアプリケーションの表示されたユーザインタフェースに入力を提供することができる。他の実施形態では、ユーザインタフェースは表示されなくてもよいが、依然として、デバイスを振る、又はいくつかの他のタイプのジャスチャを行うユーザを介してユーザにアクセス可能である。更に、相互作用は、例えば、状態エンジンがデバイスのセンサからの値を使用する場合は、ユーザインタフェースを含まなくてもよい。
ユーザインタフェースの任意の好適なデバイスコンポーネントは、ユーザ相互作用入力デバイス37_204として使用され得る。好適なユーザ相互作用入力デバイスの例は、ボタン37_208(例えば、ホームボタン又は電源ボタン)、タッチスクリーン37_210、カメラ37_212,加速度計37_214、マイクロフォン37_216及びマウス37_218である。例えば、ホームボタン、電源ボタン、及び音量ボタンなどのモバイルデバイスのボタン37_208は、ユーザ相互作用入力デバイス37_204とすることができる。それに加えて、サイレントモードスイッチなどのスイッチは、ユーザ相互作用入力デバイス37_204とすることができる。また、例えば、音声コマンドを検出するように構成された一体型マイクロフォンなどのモバイルデバイスのマイクロフォン37_216は、ユーザ相互作用入力デバイス37_204とすることができる。更に例えば、マウス37_218又はスタイラスなどのポインティングデバイスは、通信アプリケーションにユーザ入力を提供するのに使用されるユーザ相互作用入力デバイス37_204とすることができる。
ユーザがデバイスと相互作用する場合、ユーザがアプリケーションにユーザ入力を提供したと判定されてもよく、また対応するトリガーイベントが生成されてもよい。かかるイベントは、デバイスの現在の状態、例えば、デバイスが位置する場所、又はイベントが発生する時に依存する場合がある。つまり、トリガーイベントは、デバイスのロケーション状態(例えば、職場ロケーション)及び時間コンテキスト(例えば、平日の朝)と併せてユーザ相互作用入力デバイス37_204からの入力に部分的に基づいて生成され得る。かかる情報はまた、イベントがトリガーイベントかどうかを判定する際に使用される場合もある。
タッチスクリーン37_210はユーザがディスプレイスクリーンを介してユーザ入力を提供するのを可能にすることができる。例えば、ユーザは、ディスプレイを自身の指をスワイプしてユーザ入力信号を生成することができる。ユーザがアクションを実行する場合、対応するトリガーイベント37_228が検出されてもよい。
加速度計37_218又は他のモーションセンサは、(例えば、ジャイロメーター又はコンパスを用いて)振動する及び傾くなどのモバイルデバイスの動きを検出するパッシブコンポーネントとすることができる。モバイルデバイスのかかる動きは、その動きが特定のタイプのものかを判定できるイベントマネージャー37_230によって検出することができる。イベントマネージャー37_230は、デバイスの所与の状態における特定のタイプのユーザ相互作用イベントに対応するイベント信号37_232を生成することができる。デバイスの状態は、状態エンジンによって判定でき、その更なる詳細は、「Activity Detection」と題する米国特許公開第2012/0310587号、及び「Determining Exit From A Vehicle」と題する米国特許公開第2015/0050923号に見られ、その開示はその全体が参照により組み込まれる。
一例は、ユーザがランニングしている場合であり、加速度計は振動を感知し、イベントマネージャー37_230に提供される信号を生成することができる。イベントマネージャー37_230は加速度計信号を分析し、イベントのタイプを判定することができる。イベントのタイプが判定されると、イベントマネージャー37_230はイベントのタイプに対応するイベント信号37_232を生成することができる。モバイルデバイスはまた、ユーザがランニングしていることを示す方法で移動することができる。こうして、この特定のユーザ相互作用はランニングイベントとして識別され得る。その後、イベントマネージャー37_230はランニングイベントが検出されたことを示すイベント信号37_232を生成かつ送信することができる。
2.ロケーションイベント
ロケーション入力デバイス37_206はロケーションイベントを生成するのに使用され得る。ロケーションイベントは、宛先の提案をトリガーするために、ユーザ相互作用イベントと組み合わせて使用され得る。任意の好適な測位システムはロケーションイベントを生成するのに使用され得る。例えば、全地球測位システム(GPS)はロケーションイベントを生成するのに使用され得る。ロケーションイベントは特定の地理的ロケーションに対応するイベントとすることができる。一実施例としては、モバイルデバイスが特定のロケーションに到着した場合、GPSコンポーネントはロケーションイベントに対応する入力信号を生成することができる。
B.トリガーイベントの判定
図37-2に更に図示するように、入力デバイス37_202は、例えば、対応するイベントのいずれかの結果として検出されたイベント37_222を出力することができる。検出されたイベントは、どの入力デバイスが検出されたイベント37_222に対する信号、特定のイベントに対するサブタイプ(例えば、ヘッドホン又はデータ接続がどのタイプか)についての情報を含むことができる。かかる情報は、検出されたイベント37_222はトリガーイベントであるかどうかを判定するのに使用してもよく、どの予測モデルを使用するか、又は提案された宛先に対してどのアクションを実行するか(例えば、電子メールを構成する、カレンダーの招待を作成する、音声通話又はテレビ通話を開始する)を判定するため、後のモジュールに渡すことができる。
検出されたイベント37_222はイベントマネージャー37_230によって受信することができる。イベントマネージャー37_230は入力デバイス37_202から信号を受信でき、どんなタイプのイベントが検出されるかを判定することができる。イベントのタイプに応じて、イベントマネージャー37_230は信号(例えば、イベント信号37_232)を異なるエンジンに出力してもよい。異なるエンジンは、その機能にとって重要である特定のイベント信号37_232を受信するようイベントマネージャー37_230によりサブスクリプションを有してもよい。例えば、トリガーイベントエンジン37_224は、入力デバイス37_202からの検出されたイベント37_222に応答して生成されたイベント信号37_232を受信するように加入されてもよい。イベント信号37_232は検出されたイベント37_222から判定されたイベントのタイプに対応することができる。
トリガーイベントエンジン37_224は、検出されたイベント37_222がトリガーイベントであるかどうかを判定するように構成されてもよい。この判定を行うには、トリガーイベントエンジン37_224は、指定されたトリガーイベントデータベース37_226を参照することができ、それは、トリガーイベントエンジン37_224に連結されてもよい。指定されたトリガーイベントデータベース37_226はトリガーイベントとして指定された所定のイベントのリストを含むことができる。
トリガーイベントエンジン37_224は受信した検出されたイベント37_222と所定のイベントのリストと比較して、検出されたイベント37_222が指定されたトリガーイベントデータベース37_226内にリストされた所定のイベントと一致する場合、トリガーイベント37_228を出力することができる。所定のイベントのリストの例としては、以下の任意の1つ以上を含むことができる。(1)通信アプリケーションにアクセスすること、(2)検索を開始すること、(3)通信を構成すること、(4)デバイスの特定のタイプの動きを感知すること、及び(5)特定のロケーションに到着すること。(5)については、指定されたトリガーイベントデータベース37_226は特定のロケーションの明細を含むことができる。所定のイベント(1)~(5)のそれぞれについては、イベント発生の時刻又は時間の範囲が指定されたトリガーイベントデータベース37_226に含まれてもよい。例えば、指定されたトリガーイベントデータベース37_226は、午前8時~午前10時の間に職場のロケーションへの到着の感知に対応する指定されたトリガーイベントを記憶することができる。
III.提案された宛先の判定
トリガーイベントが検出されると、1つ以上の潜在的な宛先はトリガーイベントに基づいて識別することができる。一部の実施形態では、宛先(単数又は複数)の識別は、事前にプログラムされたアクションではない。逆に、宛先(単数又は複数)の識別は、追加情報に応じて変化し得る動的なアクションとすることができる。例えば、提案された宛先(単数又は複数)の識別は、コンテキスト情報及び/又は人々中心の過去相互作用情報に基づいて、並びに他の情報に基づいて判定することができる。
特定のトリガーイベントが発生する(例えば、デバイス上で電子メールクライアント、カレンダーアプリケーション、インスタントメッセージングアプリケーション、又はテレビ会議アプリケーションにアクセスする)たびに、デバイスは、どの宛先(単数又は複数)がイベントに関連して通信の宛先として選択されるかを追跡することができる。特定のイベントの発生それぞれに応答して、デバイスは、選択された宛先に対応するデータポイント、アプリケーションを用いて実行された宛先との相互作用、及びイベントを保存することができる。各種実施形態では、データポイントは、個々に保存するか、あるいは集約することができ、カウントは、特定の宛先が選択される回数に対して判定され、それは特定のアクションに対するカウントを含んでもよい。例えば、ある宛先に送信された電子メールの数を示すカウントは、どの電子メールアカウントがその電子メールを送信するのに使用されたか、その電子メールが送信された時刻、及び電子メールが送信されたときのデバイスのロケーションを示す情報と共に保存されてもよい。本例では、データポイントはまた、宛先が電子メールの最初の受取人である回数、宛先が電子メールグループ又は分配リストの部分として含まれた回数、宛先がコピーされた(例えば、カーボンコピー/CC、又はブラインドカーボンコピー/BCC)回数を示すこともできる。こうして、異なるカウントが、選択された同一の宛先に対する異なるアクションに対して判定される。
宛先との以前のユーザ相互作用及び通信を示す履歴データは、所与の宛先が将来の通信の宛先として提案されるべきかを予測する予測モデルへの入力として使用され得る。例えば、宛先を予測する/提案するために用いられる履歴データは、他のユーザとの過去の相互作用(すなわち、過去相互作用)の記録を含むことができる。かかる過去相互作用の例としては、音声通話、電子メール、カレンダーエントリ/イベント、インスタントメッセージ、テキストメッセージ(例えば、SMSベースのメッセージ)、テレビ会議、及びテレビ通話が挙げられる。例えば、過去相互作用は、過去の音声通話に対応する時刻、持続時間、及び(電話番号によって識別された)宛先を示す通話履歴を含むことができる。また、例えば、過去相互作用は、過去の電子メールメッセージに対応する時刻、周期性(例えば、毎日、毎週)、及び(電子メールアドレスによって識別された)宛先を示す電子メールの履歴を含むことができる。
特定のイベントが検出されると、特定のイベントに対応する予測モデルが選択され得る。予測モデルは、トレーニング手順への入力として、特定のイベントに対応する過去相互作用データを用いて判定されるであろう。しかし、異なる宛先が異なるコンテキストで選択されている状態で、履歴データは異なる多くのコンテキスト(すなわち、コンテキスト情報の異なる組み合わせ)において発生する場合がある。こうして、集約されると、過去相互作用データは、特定のイベントが発生するときに明らかにユーザによって選択されることになる宛先を提案しない場合がある。
予測モデルは、特定のイベントに対応することができる。連絡するための提案された宛先は、コンピューティングデバイスの1つ以上のプロパティを用いて判定され得る。例えば、特定のサブモデルは、イベントの出来事の後の、他のユーザとのユーザ相互作用に対応する履歴データのサブセットから生成され得る。過去相互作用データのサブセットは、デバイスが1つ以上のプロパティを有する場合に収集され得る(例えば、特定のロケーション及び/又は時間帯のプロパティを有する、電子メールアプリケーションにアクセスするイベントの後に選択された宛先との過去相互作用)。予測モデルは、サブモデルから構成され得、各サブモデルはコンテキストデータの異なる組み合わせに対するものである。異なる組み合わせは、異なる量のコンテキストデータを有することができる。サブモデルは、階層木で生成され得、より具体的な組み合わせのサブモデルは階層木の下位にある。一部の実施形態では、サブモデルが木の高位のモデルより高精度に宛先を予測できる場合しか、サブモデルは生成できない。このように、より正確な予測は、どのアプリケーションをユーザが選択することになるかに対して行われ得る。一部の実施形態では、予測モデル及びサブモデルは、特定の組み合わせのコンテキストデータが存在するイベントの後に、ユーザによって選択される上位N個の宛先(例えば、パーセンテージの固定数)を識別してもよい。
ニューラルネットワーク又は回帰などのモデルは、特定のコンテキストに対する特定のアプリケーションを識別するようにトレーニングされる場合があるが、これは、対応する履歴データのすべてを用いる場合に困難になる場合がある。すべての過去相互作用データを用いると、結果的に、予測モデルを過剰適合し精度が低くなることになる。本発明の実施形態は、履歴データを、それぞれが異なるコンテキストに対応する、履歴データの異なる入力セットにセグメント化することができる。異なるサブモデルは、履歴データの異なる入力セットにおいてトレーニングされ得る。
A.異なるコンテキストデータに基づく異なるモデル
特定のイベントが発生する場合、デバイスは様々なコンテキスト、例えば、異なるロケーション(職場、自宅、又は学校など)、異なる時刻、異なる曜日(営業日又は週末など)、デバイスの異なるモーション状態(ランニング、歩行、車でドライブ、又は静止など)、又は通信アプリケーションの異なる使用状態(電子メールを構成する、又はカレンダーエントリを作成するのに使用されるなど)にあり得る。コンテキスト情報は、検出されたイベントと関連して取り出される、例えば、イベントが検出された後に取り出される場合がある。コンテキスト情報は、予測されたどの宛先が検出されたイベントに関連して通信の宛先に選択されるかの予測を支援するのに用いられる場合がある。異なるロケーションが、GPSセンサを用いて判定でき、また時刻は、前の通信が送受信された時に基づいて判定できる。異なるモーション状態は、加速度計、ジャイロメーター、又はGPSセンサなどのモーションセンサを用いて判定することができる。
実施形態は、コンテキスト情報を様々な方法で使用することができる。一実施例では、1つのコンテキストデータ(例えば、デバイスの一つのプロパティに対応する)は、どの宛先(単数又は複数)が最も選択されそうかを予測するのに用いられる場合がある。例えば、デバイスの特定のロケーションは、予測モデルへの入力として提供され得る。
別の実施例では、コンテキスト情報のコンテキストデータのうち一部又は全部はセグメント化プロセスで使用される場合がある。特定の1つのコンテキストデータは、入力履歴データをセグメント化するのに用いられ得るので、特定のサブモデルは、そのコンテキストデータの対応プロパティに対応する履歴データを用いてしか判定されない。例えば、デバイスの特定のロケーションはサブモデルへの入力として用いられないが、どのサブモデルを使用するか、またそれに対応して、特定のサブモデルを生成するために、どの入力データを使用するか選択するのに使用されるであろう。
こうして、一部の実施形態では、特定のコンテキストデータはどのサブモデルを使用するかを識別するのに使用される場合があり、また他のコンテキストデータは、ユーザが相互作用し得るのはどの宛先(単数又は複数)かを予測するため、サブモデルへの入力として用いられる場合がある。特定のプロパティ(例えば、特定のロケーション)は、特定のサブモデルに対応せず、特定のプロパティは使用されるサブモデルに対する特徴(入力)として用いられる場合がある。特定のプロパティが特定のサブモデルに対応している場合、そのプロパティの使用は、全モデルが特定のプロパティに割り当てられるので、豊富になることができる。
サブモデルを特定のプロパティ(又はプロパティの組み合わせ)に割り当てることの一つの欠点は、その特定のプロパティに対応する大量の履歴データが存在しない場合があることである。例えば、ユーザは、特定のロケーションで数回、特定のイベント(例えば、電子メールを構成する)しか実行しなかった可能性がある。この限定されたデータ量はまた、データが乏しいとも言われる。データは、プロパティの組み合わせが、例えば、特定のロケーションで特定の時刻に使用された場合、更に乏しくなる場合がある。この欠点を対処するため、実施形態は、新しいサブモデルをセグメント化プロセスの一部としていつ生成するかを選択して判定することができる。
1.既定モデル
デバイスがユーザによって初めて入手(例えば、購入)されると、既定モデルが使用され得る。既定モデルは、イベントのグループ(例えば、トリガーイベントと指定されるすべてのイベント)に適用することができる。既定モデルは、ユーザに関連付けられた他のデバイスから集約されたデータをシードにすることができる。一部の実施形態では、既定モデルは、例えば、任意の一つのコンテキストに対して利用できるデータが十分でないので、コンテキストにかかわらず、単に最も人気のある宛先を選ぶことができる。より多くのデータが収集されると、既定モデルを廃棄することができる。
一部の実施形態では、既定モデルは、提案される所定の宛先(単数又は複数)及び実行されるアクションを特定するハードコードされたロジックを有することができる。このようにして、ユーザがどのように応答するか(例えば、否定的な応答はユーザが提案された宛先を選択しない)についてユーザは深く調査される場合があり、それにより、単に肯定的な応答の使用を追跡する追加データを提供することができる。かかる既定モデルと並列に、その予測と実際の結果を比較するため、予測モデルが実行される場合がある。その後、予測モデルは、実際の結果に応答して精緻化され得る。予測モデルが十分な信頼度を有する場合、既定モデルから予測モデルに切り替えを行うことができる。同様に、サブモデルの性能を追跡することができる。サブモデルが十分な信頼度を有する場合、サブモデルは、所与のコンテキストに対して使用され得る。一部の実施形態では、異なるイベントに対する異なるサブモデルが存在する。例えば、電子メールのサブモデルは、電子メールの宛先を予測する電子メールコンテキストに対して使用され得、また別個のカレンダーサブモデルは、カレンダーイベントの参加者を予測するのに使用され得る。これらの異なるサブモデルは、過去相互作用データベース内の対応するテーブルからのデータを使用して、以前の電子メール及びカレンダーの招待の宛先を識別することができる。本例では、電子メールテーブルは、ユーザが以前にメッセージに追加した宛先を示す過去の電子メールメッセージの記録を有することができる。同様に、過去相互作用データベース内のカレンダーテーブルは、カレンダーイベントに招待されたユーザを示す過去のカレンダーイベントの記録を有することができる。
2.初期トレーニング
予測モデル(例えば、イベントモデル)は、これまで収集された履歴データを用いて初期トレーニングを受けることができ、この場合モデルはユーザに宛先の提案を提供しない。トレーニングは、初期トレーニングと呼ばれる場合がある。予測モデルは、定期的に(例えば、毎日)バックグラウンドプロセスの一部として更新される場合があり、それはデバイスが充電中で使用されていないときに発生してもよい。トレーニングは、正確な予測数を最適化すると共に、過去相互作用データ内の実際の結果と比較されるようにモデルの係数を最適化することを伴う場合がある。別の実施例では、トレーニングは、実際に選択された上位N(例えば、所定の数、所定のパーセンテージ)のアプリケーションを識別することを含んでもよい。トレーニング後、モデルの精度は、モデルが提案された宛先(及び対応する潜在的なタイプの相互作用)をユーザに提供するのに用いられるべきかを判定するのに測定され得る。
モデルが十分な精度を得る(例えば、最上位選択アプリケーションが十分に高い精度で選択されている)と、モデルを実装することができる。かかる出来事は、最上位水準のモデル(例えば、最初のイベントモデル)には起こらない場合があるが、サブモデルが特定のコンテキストに対してテストされた場合は、発生する場合がある。したがって、かかる初期トレーニングは、サブモデルに対して同様に実行することができる。
B.多くのデータが得られる際のセグメント化
ユーザが最初にデバイスを使用し始めると、特定のイベント後(例えば、電子メールアプリケーション、カレンダーアプリケーション、テレビ会議アプリケーション、又はカレンダーアプリケーションにアクセスした後)にユーザが相互作用するのに選択し得る宛先についての予測を行うための過去相互作用データが存在しないであろう。初期モードでは、予測された宛先は提案されないが、過去相互作用データを得ることができる。より多くの履歴データが得られるにつれて、予測モデルをサブモデルにセグメント化するかどうかについての判定を行うことができる。更に多くの過去相互作用データを用いると、サブモデルは更なるサブモデルにセグメント化され得る。宛先とのユーザ相互作用に利用可能な履歴データが限定されている場合、いかなる宛先も提案されないことがあり、あるいはより一般的なモデルが使用される場合がある。
セグメント化プロセスは、ユーザデバイス(例えば、スマートホンなどのモバイルデバイス)によって実行され得、それは、データのプライバシーを保持することができる。他の実施形態では、セグメント化プロセスは、ユーザデバイスと通信しているサーバによって実行することができる。セグメント化プロセスは、期間にわたって(例えば、数日又は数ヶ月にわたって)部分的に実行することができ、あるいはセグメント化プロセスの全部を同時に実行することができ、また定期的に潜在的に再実行することができる。セグメント化プロセスは宛先予測エンジンのルーチンとして実行されることができる。
より多くのデータが収集されるにつれて、予測モデルはサブモデルにセグメント化され得る。データを収集する異なるポイントにおいて、セグメント化は発生する場合がある。一層多くのデータが得られるにつれて、別のセグメント化が発生する場合がある。各セグメント化は、完全にセグメント化を再実行することを伴う場合があり、それは、以前のセグメント化と同じサブモデルの作成が生じる場合も、生じない場合もある。
本例では、第1のイベントモデルは特定のイベント(例えば、電子メールを、同僚などの特定の連絡先に送信する)に対応することができる。イベントモデルは、特定のイベントの予測エンジンの最上位水準に対応することができる。初期には、特定のイベントのたった一つのモデルしか存在しない場合があり、最小限度の過去相互作用データしか利用できない。この時点では、イベントモデルはトレーニング目的で履歴データを追跡できるだけである。イベントモデルは予測を行うことができ、これらの予測を実際の結果と比較することができる(例えば、イベントが検出された後、特定の時間内にユーザが提案された宛先と相互作用するかどうか)。閾値より高い確率を有する宛先がない場合、特定のイベントが発生しても、宛先は提案されない場合がある。
一部の実施形態では、イベントモデルは、特定のデバイスに対して収集されたデータのみを使用する。他の実施形態では、イベントモデルは、ユーザに関連付けられた他のデバイスから集約された過去相互作用データをシードにすることができる。かかる過去相互作用データはイベントモデルが一部の宛先の推薦を提供できるようにする場合があり、その後、追加のデータポイントを得るのを可能にすることができる。例えば、ユーザが特定のアプリケーション(例えば、電子メール、オーディオ通話、テレビ会議、インスタントメッセージ、又はテキストメッセージ)を介して提案された宛先と相互作用するかどうかを追跡でき、それにより、単にユーザが宛先を選択するかどうかより多くのデータポイントを提供することができる。
多くのデータが収集されるにつれて、セグメント化が発生すべきかどうかについて定期的に判定を行うことができる。かかる判定は、より高精度がセグメント化を介して達成できるかどうかに基づくことができる。精度は、以下に詳細に説明するが、予測が行われ得る確率の水準として測定することができる。例えば、宛先を、イベントモデルを用いるより、サブモデルに対して高水準の確率で予測できる場合、セグメント化を行ってもよい。また、1つ以上の他の基準も用いて、サブモデルがセグメント化プロセスの一部として作成されるべきかどうかを判定することができる。例えば、基準は、サブモデルが実装される前に、サブモデルが統計的に有意な量の入力履歴データを有していなくてはいけないこととすることができる。少ないデータ量でトレーニングされたモデルは不正確となる場合があるので、データ量の要件により、サブモデルに安定性を向上させ、最終的に、精度を向上させることができる。
C.トリガーイベントに基づいて宛先を提案するシステム
図37-3は、本発明の実施形態に係る、トリガーイベント及びコンテキスト情報に基づいて宛先及び対応するアクションコマンドを識別する予測システム37_300の簡略ブロック図を図示する。予測システム37_300はアプリケーションを識別しているデバイス内に常駐する。予測システム37_300はハードウェア及びソフトウェアコンポーネントを含むことができる。
予測システム37_300は提案された宛先(単数又は複数)を識別する予測エンジン37_302を含む。予測エンジン37_302は、トリガーイベントを受信することができる。予測エンジン37_302は、提案された宛先37_304を識別するため、トリガーイベント37_328から収集された情報を使用してもよい。図示するように、予測エンジン37_302は、トリガーイベント37_328に加えてコンテキストデータ37_306を受信することができる。予測エンジン37_302は、提案された宛先37_304を識別するため、トリガーイベント37_328及びコンテキスト情報37_306の両方から収集された情報を使用してもよい。実施形態では、受信したコンテキストデータ37_306に基づいて、予測エンジン37_302は異なるモデルを用いて、異なるタイプの通信に対して提案された宛先を識別する。例えば、予測エンジン37_302は、コンテキストデータ37_306が電子メールアプリケーションがアクセスされているか、又は電子メールが構成されていることを示す場合は、電子メールのサブモデルを使用することができる。電子メールのサブモデルは、かかるコンテキストデータ37_306を履歴イベントデータベース37_316からの履歴電子メールデータと併せて使用し、電子メールの宛先を予測することができる。電子メールのサブモデルは、電子メールの宛先を予測するのに使用され得、また別個のカレンダーサブモデルは、カレンダーイベントの参加者を予測するのに使用され得る。予測エンジン37_302はまた、実行されるアクション、例えば、ユーザインタフェースが、提案された宛先と相互作用するために、ユーザに対して、どのように、いつ提供されるかを判定することもできる。
1.コンテキスト情報
コンテキスト情報はコンテキストデータ37_306から収集することができる。実施形態では、コンテキスト情報はいつでも受信することができる。例えば、コンテキスト情報はトリガーイベント37_328が検出される前及び/又は検出された後に受信され得る。それに加えて、コンテキスト情報は、トリガーイベント37_328を検出中に受信されてもよい。コンテキスト情報は特定のコンテキストに対してデバイスの1つ以上のプロパティを特定することができる。コンテキストは、トリガーイベント37_328が検出されたときのデバイスの周囲の環境(コンテキストのタイプ)としてもよい。例えば、コンテキスト情報はトリガーイベント37_328が検出されたときの時間帯としてもよい。別の実施例では、コンテキスト情報は、トリガーイベント37_328が検出されたときのデバイスの特定のロケーションとしてもよい。更に別の実施例では、コンテキスト情報は、トリガーイベント37_328が検出されたときの年の特定の日付としてもよい。かかるコンテキスト情報は、予測エンジン37_302がそのコンテキストでユーザによって宛先として選択される可能性のある宛先を正確に提案できるようにデバイスのコンテキストについてのより有意義な情報を提供してもよい。したがって、コンテキスト情報を利用する予測エンジン37_302は、コンテキスト情報が利用されなかった場合より正確に宛先をユーザに提案することができる。
コンテキストデータ37_306はコンテキストソース37_308によって収集され得る。コンテキストソース37_308は、モバイルデバイスの現在の状況に関するデータを提供するモバイルデバイスのコンポーネントとすることができる。例えば、コンテキストソース37_308は、時間帯、デバイスのロケーション、及び日付にそれぞれ関連する情報を提供するための内部デジタル時計37_310、GPSデバイス37_312、及びカレンダー37_314として動作するハードウェアデバイス及び/又はソフトウェアコードとすることができる。他のコンテキストソースが使用されてもよい。
予測エンジン37_302に対するコンテキストデータ37_306の収集は、電力効率的な方法で実行されてもよい。例えば、デバイスのロケーションを判定するためのGPS37_312の継続的なポーリングは、過度に電力を消費する場合があり、それにより、バッテリ寿命を低下させる場合がある。バッテリ寿命の低下を回避するため、予測エンジン37_302は、GPS37_312以外のソースからデバイスのロケーションを要求することによってデバイスのロケーションを判定することができる。ロケーション情報のための別のソースは、最近、デバイスのロケーションを求めてGPS37_312をポーリングしたアプリケーションとすることができる。例えば、アプリケーションAがデバイスのロケーションを求めてGPS37_312をポーリングした一番最近のアプリケーションである場合、予測エンジン37_302は、別々にGPS37_312をポーリングするのではなく、アプリケーションAからロケーションデータを要求及び受信することができる。
2.履歴情報
コンテキストソース37_308に加えて、履歴イベントデータベース37_316も、特定の実施形態において予測エンジン37_302によって利用されてもよい。履歴イベントデータベース37_316は、トリガーイベントが検出された後のユーザとモバイルデバイスとの間の前の相互作用からなる履歴情報を含むことができる。
履歴イベントデータベース37_316は、特定のトリガーイベントに続いてユーザが宛先と相互作用した回数の記録を保持することができる。例えば、データベース37_316は、ユーザが、宛先Aを含めるときは10回中8回宛先Bを電子メール又はカレンダーの招待に含めることを示す記録を保持することができる。したがって、予測エンジン37_302は、宛先Aが電子メール又はカレンダー通信に選択されたとき、宛先Bがユーザに識別されるべきかを判定するために、この情報を履歴データ37_318として受信することができる。
履歴イベントデータベース37_316はまた、トリガーイベントが検出されたとき、宛先が、異なるコンテキスト下で相互作用された回数の記録を保持することもできる。例えば、データベース37_316は、ユーザが自宅にいるとき、ユーザが私的な電子メールアカウントにアクセスした後、10回中9回宛先Aと相互作用することの記録を保持し、ユーザが職場のロケーションにいるときは、10回中1回、仕事の電子メールアカウントを用いて相互作用することを示す記録を保持することができる。したがって、予測エンジン37_302は、この情報を履歴データ37_318として受信し、ユーザが自宅で私的な電子メールアカウントにアクセスするときは、宛先Aが提案されるべきであるが、職場で、仕事の電子メールアカウントにアクセスするときは、提案されるべきではないと判定することができる。本セクションで検討した例は「自宅」又は「仕事」としてロケーションを参照するが、「自宅」又は「仕事」を表すコンテキストデータ37_306は数値座標、例えば、地理座標の形式にすることができることを理解すべきである。当業者は、時間帯、曜日及び日付に関連する時間情報が、宛先を識別するのと同じ方法でロケーションの代わりに使用される場合があることを理解するものである。
履歴イベントデータベース37_316はまた、どれくらいの頻度で、かつどんな状況下でユーザが識別された宛先を通信の宛先として選択しないように決めるかの記録を保持することができる。例えば、データベース37_316は、ユーザが自宅でヘッドセットをデバイスに挿入したとき、人がユーザに提案された10回中2回は、ユーザが電話機通話の宛先Bを選択しなかったことを示す記録を保持することができる。したがって、予測エンジン37_302は、この情報を履歴データ37_318として受信し、ユーザが自宅でヘッドセットをデバイスに挿入するとき、宛先Bを提案する確率を調整することができる。
上述のように、本技術の一態様は、あるユーザが通信に興味を持ち得るユーザの予測を向上させるために、様々なソースから利用可能なデータを収集及び使用することである。本開示は、場合によっては、この収集されたデータが、特定の人を一意的に識別するか、又はその人に連絡するのに用いることができる個人情報データを含んでよいことを企図している。かかる個人情報データはロケーションベースのデータ、電話番号、電子メールアドレス、職場の住所、自宅の住所、過去の相互作用の記録、又は任意の他の識別情報を含むことができる。
本開示は、本技術における、このような個人情報データの使用は、ユーザの利益のために使用することができると認識している。例えば、個人情報データは、あるユーザが特定の時刻及び場所で通信をとりたいことがあるユーザを予測するのに使用され得る。したがって、コンテキスト情報に含まれるかかる個人情報データを使用することは、ユーザが特定の時刻及び場所で相互作用したいことがある人々の人々中心の予測を可能にする。
本開示は、このような個人情報データの収集、分析、開示、転送、記憶、又はその他の使用に関与するエンティティは、しっかり確立されたプライバシーポリシー及び/又はプライバシー慣行を遵守することを更に企図している。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための業界又は政府の要件を満たすか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し常に使用すべきである。例えば、ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共有又は販売されるべきではない。更に、そのような収集は、ユーザに告知して同意を受けた後にのみ実施するべきである。更に、そのようなエンティティは、そのような個人情報へのアクセスを保護して安全化し、その個人情報へのアクセスを有する他者が、自身のプライバシーポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じることとなる。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
前述のことがらにもかかわらず、本開示はまた、ユーザが、個人情報データの使用又は個人情報データへのアクセスを選択的に阻止する実施形態も企図している。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するためのハードウェア要素及び/又はソフトウェア要素を提供することができることを企図している。例えば、人々中心の予測サービスの場合、本技術は、ユーザがサービスの登録中に個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするよう構成することができる。別の実施例では、ユーザは、宛先提案サービスのためにロケーション情報を提供しないように選択することができる。更に別の例では、ユーザは正確な位置情報を提供しないが、位置領域情報の転送を許可することを選択することができる。
D.ユーザインタフェース
図37-4及び図37-5は、提案された宛先のリストを提示するための例示的なユーザインタフェースを図示する。特に、図37-4は、既に実行中の電子メールアプリケーションに関連付けられたデバイス37_402の例示的なユーザインタフェース37_400を図示する。ユーザインタフェース37_400は、クライアント電子メールアプリケーションのユーザインタフェースとすることができるが、本セクションでは、異なるアプリケーションには他のユーザインタフェースも想定される。例えば、ユーザインタフェース37_400は、インスタントメッセージングアプリケーション、テレビ会議アプリケーション、及びカレンダーアプリケーションなどの宛先と相互作用できないいずれかのアプリケーションのユーザインタフェースとすることができる。ユーザインタフェース37_400はタッチスクリーンディスプレイ37_404によって提供されてもよい。タッチスクリーンディスプレイ37_404は、件名行37_408を含む電子メールインタフェース37_406を表示することができる。件名行37_408は、ユーザが電子メールメッセージの件名を入力するのを可能にすることができる。提案された宛先リスト37_410は、ユーザが1つ以上の提案された宛先を選択できるようにする。図示するように、実施形態は、件名又はタイトルが件名行37_408に入力されなくてもデバイス37_402のコンテキストに基づいて検索結果ウィンドウ37_410に提案された宛先を提示することができる。かかるゼロキーワード検索は、デバイス37_402の現在のコンテキストに基づいてデバイス37_402によって実行され得る。例えば、デバイス37_402の現在のロケーション、現在時刻、デバイス37_402上で使用している電子メールアカウントの識別子及び他のコンテキスト情報に基づいて、件名行37_408内に提供された電子メールメッセージの完全な又は部分的な件名によらず、提案された電子メールの宛先が判定され、検索結果ウィンドウ37_410内に表示されてもよい。一部の実施形態では、ユーザが件名行37_408に件名(又はその一部分)を入力する場合、提案された宛先リスト37_410は、件名行内のキーワードに基づいて更新することができる。
ユーザインタフェース37_400の部分は、一部の状況では隠されてもよい。例えば、デバイス37_402の図37-3の提案センター37_320などの提案センターが別の宛先(例えば、図37-4に示された宛先B)が最初に提案された宛先(例えば、図37-4に示された宛先A)よりも優先されると判断する場合は、最初の宛先は隠されてもよく、他の宛先がその代わりに表示されてもよい。その後、他の宛先は、ディスプレイ37_404上の提案された宛先のリスト37_410内に初めて表示されてもよい。したがって、ユーザは優先度が高いと思われる宛先に気づかされ、それと相互作用する機会が与えられてもよい。図37-4の例示の実施形態では、宛先に関する入力がインタフェース37_400内にユーザによって提供されていない。図示するように、実施形態は、インタフェース37_400内に何の宛先(又は部分的な宛先の名前)も入力されなくてもデバイス37_402のコンテキストに基づいて提案された宛先リスト37_410内に提案された宛先を提示することができる。つまり、提案された宛先は、部分的に入力された連絡先の名前又は電子メールアドレスに基づいて連絡先を予測する任意の自動完了技法を用いずに識別され、提案された宛先リスト37_410内に表示され得る。かかるゼロキーワード検索は、デバイス37_402の現在のコンテキストに基づいてデバイス37_402によって実行され得る。例えば、デバイス37_402の現在のロケーション、現在時刻、及び、デバイス37_402上で使用される電子メールアカウント(例えば、仕事の、又は私的な電子メールアカウント)などの他のコンテキスト情報に基づいて、提案された電子メールの宛先は判定でき、検索結果ウィンドウ37_410内に表示され得る。
図37-5は、既に実行中の検索アプリケーションに関連付けられたデバイス37_502のユーザインタフェース37_500を図示する。ユーザインタフェース37_500はタッチスクリーンディスプレイ37_504によって提供されてもよい。タッチスクリーンディスプレイ37_504は、検索ウィンドウ37_508を含む検索インタフェース37_506を表示してもよい。検索ウィンドウ37_508はユーザが1つ以上の検索用語を入力するのを可能にすることができる。検索結果ウィンドウ37_510は提案された宛先を提示することができる。図37-5の例では、検索ウィンドウ37_508には、ユーザによってキーワードが提供されていない。図示するように、実施形態は、何の検索用語又はキーワードも検索ウィンドウ37_508に入力されなくても、デバイス37_502のコンテキストに基づいて検索結果ウィンドウ37_510に提案された宛先を提示することができる。かかるゼロキーワード検索は、デバイス37_502の現在のコンテキストに基づいてデバイス37_502によって実行され得る。例えば、デバイスの現在のロケーション、現在時刻、及び、デバイス37_502上で使用されるユーザアカウント識別子などの他のコンテキスト情報に基づいて、提案された宛先は判定でき、検索結果ウィンドウ37_510内に表示され得る。その後、ユーザは、検索結果ウィンドウ37_510と相互作用し、1つ以上の提案された宛先を選択することができる。実施形態では、ユーザが検索ウィンドウ37_508内に検索用語(又はその一部)を入力する場合、検索結果ウィンドウ37_510内の提案された宛先は、検索用語に基づいて更新され得る。
一部の実施形態では、検索結果ウィンドウ37_510は、図37-5に示す連絡先の例示のリストより多い場合がある。例えば、検索結果ウィンドウ37_510は、ユーザがどのように提案された宛先と相互作用することができるかを示す情報を含むことができる。検索結果ウィンドウ37_510はまた、相互作用が発生すべき理由を示すこともできる。例えば、検索結果ウィンドウ37_510はユーザが、ユーザの私的アカウントを用いて宛先の私的アカウント上の宛先Aにテレビ通話を開始することを提案することができるのは、ユーザがこの時間帯の頃にそのようにすることが多いからである。提案は、宛先Aに連絡するのに使用される特定の通信アプリケーションを提案するものまである場合がある。
B.方法
図37-6は、本発明の実施形態に係る、イベントに基づいてコンピューティングデバイスのユーザに1つ以上の宛先を提案するための方法37_600のフローチャートである。方法37_600は、コンピューティングデバイスによって(例えば、ユーザデバイスとのユーザ相互作用を追跡しているユーザデバイスによって)実行され得る。方法37_600は、コンピューティングデバイスの1つ以上のプロパティの異なるセットを有する相互作用を含む過去相互作用のセットを使用して、宛先を提案することができる。
ブロック37_602では、デバイスは入力デバイスでイベントを検出する。図示するように、ブロック37_602は、ユーザに関連付けられたユーザデバイスでユーザ入力を検出することを含むことができる。入力デバイスの例は、タッチスクリーン、音声コマンドを提供するためのマイクロフォン、カメラ、ボタン、マウス、スタイラス、キーボードなどである。イベントは、モバイルデバイスが外部デバイス又はユーザなどの外部エンティティと相互作用するあらゆるアクションとすることができる。イベントはデバイスに対して繰り返されるタイプのものとすることができる。こうして、履歴統計データを、イベントの異なる出来事に対して得ることができる。モデル及びサブモデルは、かかる履歴データを用いてトレーニングされ得る。
ブロック37_602は、ユーザデバイスの1つ以上のプロパティを受信することを含むことができる。1つ以上のプロパティが、デバイス上で実行される宛先提案エンジンによって受信されてもよい。本セクションで述べるように、プロパティは、時間、ロケーション、モーション状態、カレンダーイベントなどに対応することができる。かかる1つ以上のプロパティは、デバイスの特定のコンテキストを規定するコンテキストデータに対応することができる。イベントを検出した頃の時刻に、例えば、ある時間内に、1つ以上のプロパティを測定することができる。時間は、イベント検出前後の時間、イベント検出直前の時間、又はイベント検出直後の時間を含むことができる。
ブロック37_604では、ユーザ入力が提案エンジンを介して提案された宛先を提供するためのトリガーに対応することが判定される。例えば、電子メールアプリケーション内に電子メールを構成するためのユーザ入力が受信される場合、ブロック 37_604は、電子メールの提案された宛先が提供されるべきであると判定することができる。また、例えば、検索アプリケーション内に検索を開始するためのユーザ入力が受信される場合、ブロック37_604は予測された連絡先が検索結果内に含まれることになることを判定することを含むことができる。
ブロック37_606では、ユーザデバイスを用いて行われた以前の通信に対応する1つ以上のテーブルがポピュレートされる。図37-6の例では、1つ以上のテーブルのそれぞれは、ユーザデバイスの異なるサブ状態に対応し、異なる宛先との以前の通信の複数の連絡測定値を含むものである。例えば、以前の通信は、例えば、以前の電子メール、音声通話、テキストメッセージ、インスタントメッセージ、テレビ通話及びカレンダーの招待などの、他のユーザとの以前の相互作用を含むことができる。
ブロック37_608では、1つ以上の状態変数は、1つ以上の状態変数に対応する1つ以上のテーブルの第1のセットを識別するのに使用される。例えば、ロケーションの状態変数がユーザデバイスがユーザの自宅にあることを示す場合、ブロック37_608は、ユーザの自宅に関連付けられた以前の通信に対応するテーブルを識別することを含むことができる。つまり、ユーザデバイスを用いて行われた以前の通信に対応するテーブルは、ユーザが自宅にいた間に開始又は実行された以前の通信に対応するテーブルのみにフィルタリングされ得る。本例では、ユーザが自宅にいた間に、構成、判読又は編集された過去の電子メールのテーブルのセットは、ロケーションの状態変数がユーザデバイスがユーザの自宅にあることを示すときに、識別され得る。また、例えば、アカウントの状態変数がユーザが仕事の電子メールアカウントを用いていることを示す場合、ブロック37_608は、仕事の電子メールアカウントを用いて行われた過去の通信に対応するテーブルのセットを識別することを含むことができる。実施形態は、複数の状態変数(例えば、ロケーション状態及びアカウント状態)を用いることができる。
ブロック37_610では、第1のセットのテーブルは、1つ以上の潜在的な宛先のための連絡測定値を得るために問い合わせられる。連絡測定値は、例えば、ユーザデバイスを用いて行われた以前のカレンダーイベントに対するカレンダーの招待の宛先、以前の電子メールメッセージが行われた(すなわち、構成又は送信された)時の時間、以前の電子メールメッセージに関連付けられた電子メールアカウントの識別子、電子メールメッセージにコピーされた他の宛先、それぞれの宛先に送信された電子メールメッセージの数、の連絡測定値を含むことができる。一実施例では、第1のセットのテーブルを問い合わせることは、1つ以上の潜在的な宛先のそれぞれに送信された以前の通信の総数を計算するように行われ得る。例えば、第1のセットのテーブルを問い合わせることは、電子メールテーブルを問い合わせ、潜在的な宛先のそれぞれに送信された、かつ潜在的な宛先のそれぞれから受信した電子メールメッセージの累積数を判定することを含むことができる。第1のセットのテーブルを問い合わせることはまた、カレンダーイベントテーブルを問い合わせ、潜在的な宛先のそれぞれに送信された、かつ潜在的な宛先のそれぞれから受信したカレンダーの招待の総数を判定することを含むこともできる。
ブロック37_610は、潜在的な宛先との個々の相互作用、並びに宛先のグループとのグループ相互作用に基づいてテーブルを問い合わせるることができる。例えば、ブロック37_610は、電子メールテーブルからのコンテキストデータがユーザと宛先との間の以前の電子メールの相互作用(例えば、送信された、又は受信した電子メールメッセージ)を示す、次の電子メールの宛先を予測することができる。ブロック37_610は、現在のコンテキストに対応する過去相互作用をランク付けすることを含むことができる。例えば、相互作用に対する重み付けは、複数の宛先の共起を示す社会的要素を含むことができる。本例では、宛先のグループとのユーザの過去相互作用に対するランクは、ユーザが以前に過去の他の相互作用においてそのグループと相互作用したかに基づいて上がる場合がある。つまりランク付けの上昇は、共通の、過去の相互作用に含まれたことがある宛先のセット(例えば、ユーザによって送信された電子メールのグループとして繰り返しコピーされた宛先)に基づいて宛先のセットのメンバーに対して与えられる場合がある。このようにして、ユーザが以前に過去の電子メールに対して2つの宛先を選択し、両方の宛先が第3の宛先に送信された電子メールにコピーされた場合、この第3の宛先は、以前に2つの宛先と共に含まれていることに基づいてランク付けが上昇することになる。しかし、ユーザがこれらの3つの宛先のうちの1つしか含まれない別の相互作用をした場合、この相互作用は、同様にランク付けが上昇することはないであろう。
ブロック37_612では、得られた連絡測定値を用いた以前の通信及び相互作用の総連絡測定値は、1つ以上の潜在的な宛先のそれぞれに対して計算される。一実施例では、以前の通信の総連絡測定値は、1つ以上の潜在的な宛先のそれぞれに送信された以前の通信の累積総数である。本例では、潜在的な宛先のそれぞれに送信された電子メール、メッセージ、通話及びカレンダーの招待の総数は、1つ以上のテーブルに問い合わせることによって計算することができる。
ブロック37_614では、予測エンジンは、1つ以上の予測された宛先を識別し、1つ以上の潜在的な宛先の総連絡測定値に基づいて、かつ1つ以上の基準を用いてユーザに提案するのに使用される。一部の実施形態では、基準は、提案するための予測された宛先の最小数(例えば、上位N個の宛先)、提案するための予測された宛先のパーセンテージ(例えば、上位25%)及び/又は予測された宛先を提案するための閾値信頼水準を含むことができる。ブロック37_614は、基準としてハードカットオフを用いることを含むことができる。例えば、ユーザとの前の相互作用の最小数を有していた宛先しか、考えられない場合がある。一部の実施形態では、社会的基準が、宛先を提案するのに使用される。例えば、予測された宛先は、ユーザが以前に相互作用したことがある別の提案された宛先と共起を有する場合に提案される場合がある。一部の実施形態では、他の予測された宛先と同様の特性を有する宛先が提案される場合がある。例えば、同じ電子メールアドレスドメインを有し、予測された宛先と同じロケーションに関連付けられた宛先が、通信の追加の宛先として提案されてもよい。
ブロック37_614は、特定のサブモデルを使用し、1つ以上の宛先を識別し、ユーザに提案することを含むことができる。1つ以上の宛先は、トリガーイベントと関連してユーザによって相互作用される1つ以上の宛先のうち少なくとも1つの少なくとも閾値確率を有してもよい。履歴データ内の1つ以上の宛先のうち1つの予測は、正確な予測として識別され得る。閾値確率は、様々な方法で測定することができ、以下に詳述するように、履歴データから測定された確率分布を使用することができる。例えば、確率分布の平均(average)(平均(mean))確率、中央(median)確率、又はピーク値は、閾値確率を超える(例えば、0.5を超える、37_60%と同等である)ように要求され得る。こうして、信頼水準は、確率分布の平均値、中央値又はピーク値とすることができる。別の例は、特定の値を超える確率分布のための面積が閾値確率より大きいことである。
ブロック37_616では、1つ以上の予測された宛先がユーザに提供される。ブロック37_614は、1つ以上の宛先と通信するためにユーザインタフェースをユーザに提供することを含むことができる。例えば、デバイスは、ユーザが識別された宛先にアクセスしたいかどうかを示すようユーザが相互作用し得るリストインタフェースを介して、識別された宛先をユーザに表示してもよい。例えば、ユーザインタフェースは、識別された宛先のうちの1つ以上をユーザに示すタッチ感知ディスプレイを含んでもよく、タッチ感知ディスプレイと相互作用することによって、ユーザは、デバイスによって識別された宛先のうち1つ以上と通信するのを可能にすることができる。ユーザインタフェースは、ユーザの宛先のすべてのリスト内に提供されるよりも、少ない宛先とディスプレイスクリーン上で相互作用するのを可能にすることができる。
一実施例としては、1つ以上の提案された宛先が、検索スクリーン上の宛先リスト内に提供されてもよい。ユーザは、宛先を選択でき、その後、検索スクリーンから、選択された宛先がどのように伝達されるかを選択し、それによって、ユーザが選択された宛先と相互作用するのを容易にすることができる。例えば、通信アプリケーション(例えば、電子メールアプリケーション)に特有のユーザインタフェースは、(例えば、パスワード又はバイオメトリックを介して)ユーザを認証した後に出現することができる。
電子メールのコンテキストでは、ブロック37_614は、電子メールメッセージの潜在的な宛先として提案された宛先を提供することができる。このコンテキストでは、図37-4の例示の電子メールアプリケーションのインタフェースが提案された電子メールの宛先をユーザに提供するのに使用され得る。検索のコンテキストでは、ブロック37_614は、検索インタフェース内の検索結果として提案された宛先を提供することを含むことができる。例えば、図37-5の検索インタフェースは、検索結果のリスト内に提案された宛先を提示するのに使用され得る。
F.例示のモデル
一部の実施形態では、モデルは、所与のセット(又はサブセット)のデータのための上位N個の宛先を選択することができる。このN個の宛先は過去に最も選ばれたものなので、将来の行動が過去の行動を映すものと予測され得る。Nは、宛先の所定の数(例えば、1、2、又は3)又はパーセンテージとすることができ、それは、イベントに関連付けられた実際の過去の宛先であった宛先の数としてもよい。かかるモデルはユーザに提供するための上位N個の宛先を選択することができる。更なる分析が実行され、例えば、信頼水準に依存し得る、N個の宛先をユーザに提供するか、及びN個の宛先をユーザにどのように提供するか(例えば、アクション)を判定するために、N個の宛先のそれぞれに対して確率(信頼)水準を測定することができる。
Nが3に等しい例では、コンテキスト情報が特定のサブモデルに相当する状態でイベントが発生した場合、モデルは、上位3個の最も選択された宛先を返すであろう。
他の実施形態では、サブモデルは、合成信号を使用することができ、この場合、一部のコンテキスト情報は、単にサブモデルを選択するためにコンテキスト情報を用いるのではなく、予測された宛先(単数又は複数)を判定する際に使用される。例えば、ニューラルネットワーク又はロジスティック回帰モデルは、宛先(単数又は複数)を予測するため、ロケーション(又はその他の特徴)を使用すると共に、これらの特徴のいくらかの線形重み付き組み合わせを構築することができる。このようなより複雑なモデルは、サブモデルに対するデータ量が著しく大きい場合は、より好適となり得る。一部の実施形態は、より多くのデータが特定のノードに対して得られると、その特定のノードで用いられるサブモデルのタイプ(すなわち、コンテキストデータの特定の組み合わせ)を切り替えることができる。
モデルの精度は、過去相互作用データに照らしてテストされ得る。所与のイベントについては、過去相互作用データは、そのイベントと関連して(例えば、イベントの1分以内のように直前又は直後に)ユーザがどの宛先(単数又は複数)と相互作用したかを識別することができる。各イベントについては、コンテキストデータが使用され、特定のモデルを判定することができる。更に、コンテキストデータはモデルへの入力特徴として使用することができる。
モデル(又はサブモデル)が最上位の宛先を選択する実施例では、最上位の宛先が実際に選択された(すなわち、通信を送信した)履歴データポイントの数が正確なカウントとして判定され得、また最上位の宛先が選択されなかった履歴データポイントの数は不正確なカウントとして判定され得る。上位N個の宛先を選択するモデルに対してNが1より大きい実施形態では、正確なカウントは、上位N個の宛先のうち1つが通信の宛先として選ばれた任意の履歴データポイントに対応することができる。
過去相互作用の第1のサブセットに基づいて、第1のサブモデルは、イベントと関連してユーザが相互作用することになる1つ以上の宛先からなる第1のグループのうち少なくとも1つの宛先を、第1の信頼水準で予測することができる。第1のサブモデルは、0以上とすることができる少なくとも閾値量だけ初期信頼水準を超える第1の信頼水準に少なくとも基づいて作成され得る。この閾値量は差分閾値に対応することができる。一部の実装形態では、第1のサブモデルは作成され得、この基準が満たされたときにいつも作成されるわけではなく、更なる基準が使用されてもよい。信頼水準が初期信頼水準以下の場合は、別のプロパティがテストのために選択され得る。信頼水準のこうした比較は、情報利得のテストに対応することができる。1つ以上の宛先からなる第2のグループを予測するための第1のサブモデルの(第2のプロパティのための)第2のサブモデルの第2の信頼水準を判定するために、同じプロセスを繰り返すことができる。過去相互作用の第2のサブセットは、第2のサブモデルに使用され得る。第3のプロパティ又はそれ以上のプロパティは同様の方法でテストされ得る。
G.決定木の再生
実施形態は、定期的に、例えば、毎日、モデルの決定木を生成することができる。生成はその時に利用可能な過去相互作用データを使用することができる。こうして、決定木は、1つの生成から別の生成へ変化することができる。一部の実施形態では、決定木は、以前の決定木の知識がなくても構築される。他の実施形態では、新しい決定木が、かかる以前の知識から、例えば、どんなサブモデルが起こりそうかを知るか、又は以前の決定木から開始することによって、構築され得る。
一部の実施形態では、すべてのコンテキスト(又はコンテキストの所定のリスト)が試みられ、どのサブモデルが最大の情報利得を提供するかを判定する。例えば、ロケーションがサブモデルにセグメント化するための最大の情報利得を提供する場合、少なくとも1つの特定のロケーションのサブモデルが作成され得る。セグメント化の各水準では、コンテキストはかかる貪欲なやり方でテストされ、どのコンテキストが情報利得の最大の増加を提供するかを判定することができる。
IV.確率水準に基づいたアクションの判定
予測モデルは、選択された宛先(単数又は複数)に対してだけでなく、特定のアクション(例えば、以前に追加された宛先に基づいて宛先(単数又は複数)を電子メール上にコピーすること)をテストすることができる。一部の実施形態では、宛先を選択する確率が十分に正確になると、提案された宛先をただ提供するよりも、積極的なアクションを提供することができる。例えば、宛先が提供されると、電子メールアプリケーションは、その宛先が新しい電子メールメッセージ内に宛先として含まれた状態で自動的に起動することができる。
宛先の選択が十分な確率(例えば、信頼水準が高い閾値を超える)で予測されると、その予測はアクションのテストを開始することができる。したがって、テストは、宛先の予測のためだけでなく、特定のアクションが十分な精度で予測され得るかをテストするためでもある。異なる可能性のあるアクション(電子メール、テキストメッセージング、カレンダー、又はテレビ会議アプリケーションを起動することを含む)が過去相互作用データから得られる場合がある。
したがって、実施形態は、より信頼度が高い場合に、アクションが実行されるので、より積極的になる場合がある。予測モデルは、特定の通信手段(例えば、電子メール、テキストメッセージ、音声通話、テレビ通話、及びテレビ会議)が宛先と通信するのに使用される確率が高い場合は、通信アプリケーション用の特定のユーザインタフェースを提供することができる。例えば、ユーザが電子メールを提案された宛先に送信する確率が高い場合、電子メールアプリケーションのインタフェースが予測モデルによって提供され得る。したがって、一部の実施形態では、使用する確率が高くなるほど、ただ提案された宛先を提供するのではなく、対応する通信アプリケーション(例えば、電子メール、カレンダー、インスタントメッセージ、テキストメッセージ、音声通話、又はテレビ会議)を用いて自動的に宛先と相互作用するためのインタフェースを提供するなどの、より積極的なアクションがとられる場合がある。
例えば、ベースモデルは、アクションが検索スクリーン上で宛先(単数又は複数)を提案することであり得る特定水準の統計的有意性(精度及び信頼度)を有することができる。他の実施例としては、統計的有意性の水準が高いと、スクリーンがライトアップされ得(それによって、その宛先に注意を促し、たった1つの宛先が選択され得、又は特定のアプリケーションのユーザインタフェース(UI)が提供され得る(すなわち、電子メールアプリケーションのUI)。
アクションは、モデルがたった1つの宛先を予測するか、それとも宛先のグループを予測するかに依存する場合がある。例えば、1つではなく3つの宛先の推薦をする機会がある場合、その3つの宛先のうち任意の1つを選択すると正確な予測が提供されることになるので、確率分布も変更されるであろう。1つの宛先の推薦に対して信頼できなかったモデルが、3つに対して十分に信頼できるものとなり得る。実施形態は、別の宛先(例えば、グループ内にはまだない、次に最も可能性の高い連絡先)をモデルによって予測される宛先のグループに追加することを実行でき、それによって、モデルをより信頼できるものにすることができる。モデルが1つより多い連絡先の予測に基づく場合、提供されるユーザインタフェースは次いで、UIのフォームに影響する場合がある1つより多い連絡先との相互作用を提供する。例えば、連絡先のすべてはリスト内に提供することができ、1つの連絡先が自動的に選択されない。実施形態では、予測は最上位連絡先を含むことができ、その連絡先が選択された場合は、他の連絡先は、メッセージにコピーされてもよい(すなわち、過去相互作用データにおける共起のため)。図37-4の例では、これらの他の宛先は、電子メールアプリケーションインタフェース37_406のCC/BCC部分内にリスト化され得る。
また、複数のアクション、及び異なるアクションに対する提案がある場合もある。例えば、サブモデルの一部として、ジムにおいて2つのプレイリストが存在することができる(例えば、1つのアプリケーションが識別されるが、2つのアクションが、同様の尤度で選択される場合、その2つのアクションはそのモデル内で識別される)。2つのアクションは合わせると、統計的有意性を有する場合があるが、分割すると、そうでなかった。
一実施例としては、イベント(例えば、電子メールを構成する)に対するモデルが最初にトレーニングされているときは、モデルはあらゆるアクションを実行するほどには十分に信頼できない場合がある。初期水準の信頼度では、宛先名、アイコン、又は他の宛先識別子を表示することができる。次に高い水準の信頼度では、宛先に連絡する手段が表示されてもよい(例えば、電子メールアドレス又は電話番号)。更なる水準の信頼度では、特定の通信アプリケーションに特有のユーザインタフェースが表示されてもよい(例えば、予測された宛先を新しい電子メール、インスタントメッセージ、電話機通話又はテレビ通話の宛先として追加するためのコントロール)。これらの異なる水準は、信頼水準を規定するのに使用される様々な値とすることができる。
他の例示のアクションは、現在再生中の曲の変更、通知(スクリーンの前面及び中央とすることができる)の提供を含むことができる。アクションは、デバイスのロックを解除した後に発生することができ、例えば、アプリケーションに特有のUIをロック解除後に表示することができる。アクションは、ディープリンクを用いて規定でき、アプリケーションの特定の機能を開始することができる。
V.データフロー及びモジュール
図37-7は、連絡するための宛先を提案するための例示のデータフロー図37-700である。データフロー図37-700は、宛先の提案37_702を各種通信アプリケーション及び相互作用メカニズム37_701に提供する。図37-7の例では、アプリケーション及びメカニズム37_701としては、カレンダー37_704、メール37_706、メッセージ37_708、電話機37_710、及びテレビ通話37_712が挙げられる。図37-7に示すように、例示のメール37_706アプリケーションは電子メールアプリケーションであり、例示のメッセージ37_708アプリケーションはインスタントメッセージングアプリケーションである。図示するように、電話機アプリケーション37_710は、音声通話を開始すると共にテキストメッセージを構成するのに使用することができる。テレビ通話アプリケーションの一例は、FaceTime(登録商標)アプリケーションである。
データフロー図37-700は、宛先の提案37_702が各種のデータソース37_714からのデータに基づくものとすることができる。データソース37_714は過去の通信の情報を含むことができる。データソースは、イベント37_716、検索37_718、発見された連絡先37_720、最近のアクティビティ37_722、コレクションデーモン37_724、通信履歴37_726及び連絡先37_728を含むことができる。データソース37_714は、通信アプリケーション及び相互作用メカニズム37_701からのデータでポピュレートされ得る。例えば、カレンダー37_704はカレンダーイベントデータをイベント37_716に提供することができる。同様に、電話機37_710及びテレビ通話37_712は音声通話及びテレビ通話の通話履歴を、それぞれ、通信履歴37_726に提供することができる。図37-7の例では、発見された連絡先37_720は、電子メールメッセージ及び他のタイプのメッセージ(例えば、インスタントメッセージ及びテキストメッセージ)内で発見された連絡先を含むことができる。
図37-8は例示の相互作用モジュール37_810のブロック図である。図示するように、相互作用モジュール37_810は、記録エンジン37_814及び提案エンジン37_816を含むデーモンとして実装されてもよい。相互作用モジュール37_810は相互作用データベース37_818内の相互作用の記憶を保持することができ、提案エンジン37_816を用いて宛先の提案アルゴリズムを実行することができる。相互作用モジュール37_810は相互作用データベース37_818と通信するための相互作用記憶サービス37_817を含む。相互作用モジュール37_810は相互作用データベース37_818に問い合わせ、過去の相互作用の情報を取り出すことができる。相互作用モジュール37_810はまた、相互作用データベース37_818内のテーブルをポピュレートするために相互作用データを相互作用データベース37_818に送信することもできる。例えば、アプリケーション37_800を用いて行われた以前の通信に対応する相互作用データベース37_818内のデータベーステーブルがポピュレートされてもよい。図37-8の例では、相互作用データベース37_818内のテーブルのそれぞれは、アプリケーション37_800が実行されるユーザデバイスの異なるサブ状態に対応し、デバイスを用いて実行された、以前に記録された他のユーザとの相互作用の連絡測定値を含むものである。例えば、記録された相互作用は、例えば、以前の電子メール、音声通話、テキストメッセージ、インスタントメッセージ、テレビ通話及びカレンダーの招待などの、他のユーザとの以前の相互作用を含むことができる。
相互作用モジュール37_810はまたアプリケーション37_800と通信するためのXPCサービス37_813も含む。アプリケーション37_800は、図37-7に示す通信アプリケーション又は相互作用メカニズムのうちの1つとすることができる。アプリケーション37_800は、フレームワーク37_820を含み、それは更に、アプリケーション37_800を用いて実行された相互作用及び通信を記録するための相互作用記録部37_824を含む。フレームワーク37_820はまた、相互作用アドバイザー37_826も含み、それは、提案された宛先をアプリケーション37_800に提供するのに使用され得る。フレームワーク37_820は、相互作用記録部37_824を使用し、相互作用を記録するためのインタフェースを提供することができる。相互作用記録部37_824及び相互作用アドバイザー37_826インタフェースは、XPCサービス37_822を介してデータを相互作用モジュール37_810に伝達する。
VI.アーキテクチャ
図37-9は、1つ以上の宛先と相互作用するためにユーザインタフェースをユーザに提供する例示のアーキテクチャ37_900を示す。アーキテクチャ37_900は、イベントを検出すると共に、宛先に提案を提供するための要素を示す。アーキテクチャ37_900はまた、例えば、通信アプリケーションを提案するための他の提案を提供することもできる。宛先の提案は、提案されたアプリケーションと併せて提供されてもよい。例えば、アーキテクチャ37_900は提案された宛先を提供でき、また、提案された宛先が特定の通信アプリケーションを介して連絡されるのを推薦することもできる。アーキテクチャ37_900は、ユーザデバイス内に存在することができる。
上部にはUI要素がある。図に示すように検索インタフェース37_910、検索スクリーン37_920、及び音声インタフェース37_925がある。これらはユーザインタフェースをユーザに提供できる方法である。他のUI要素を使用することもできる。
下部には、アプリケーション提案エンジン37_940及び宛先提案エンジン37_950のデータソースがある。イベントマネージャー37_942はイベントを検出しイベントについての情報をアプリケーション提案エンジン37_940に提供することができる。一部の実施形態では、イベントマネージャー37_942は、イベントがアプリケーションの提案をトリガーするかどうかを判定することができる。アプリケーションの提案をトリガーするための所定のイベントのリストが特定され得る。ロケーションユニット37_944は、ユーザデバイスのロケーションを提供することができる。例としては、ロケーションユニット37_944は、GPSセンサ及びモーションセンサを含むことができる。ロケーションユニット37_944はまた、ユーザの最後のロケーションを記憶できる他のアプリケーションも含むことができ、それは、アプリケーション提案エンジン37_940に送信され得る。他のコンテキストデータは他のコンテキストユニット37_946から提供され得る。
アプリケーション提案エンジン37_940は1つ以上のアプリケーション、及び対応するアクションを識別することができる。アプリケーション提案エンジン37_940と同じ水準で、宛先提案エンジン37_950は、ユーザに提示するための提案された宛先を提供することができる。イベントマネージャー37_952は宛先に関連するイベントを検出し、そのイベントについての情報を宛先提案エンジン37_950に提供することができる。一部の実施形態では、イベントマネージャー37_952は、イベントが宛先の提案をトリガーするかどうかを判定することができる。所定のイベントのリストは、宛先の提案をトリガーするために特定され得る。相互作用履歴37_954は、他のユーザとの以前の相互作用及び通信のデータを提供することができる。例えば、相互作用履歴37_954は、デバイスのユーザと他のユーザとの間でやりとりされた以前の電子メールから記録された情報のデータソースとすることができる。ロケーションユニット37_956は、ユーザデバイスのロケーションを提供することができる。例えば、ロケーションユニット37_956は、GPSセンサ及びモーションセンサを含むことができる。ロケーションユニット37_956はまた、ユーザデバイスの最後のロケーションを記憶できる他のアプリケーションも含むことができ、それは、宛先提案エンジン37_950に送信され得る。他のコンテキストデータは他のコンテキストユニット37_958から提供され得る。
提案された宛先(単数又は複数)は、提案センター37_930に提供され得、それは、ユーザに何を提供するかを判定することができる。例えば、提案センター37_930は提案されたアプリケーション又は宛先を提供するかを判定することができる。他の実施例では、アプリケーション(単数又は複数)及び宛先(単数又は複数)が提供されてもよい。提案センターはユーザに提供するための最良の方法を判定することができる。ユーザへの異なる提案は、異なるUI要素を使用してもよい。このようにして、提案センター37_930はユーザへの提案を制御することができるので、異なるエンジンは、他のエンジンによって提供される提案に割り込まない。各種実施形態では、エンジンは提案(推薦)を提案センター37_930にプッシュすることができ、又は提案センター37_930からの提案に対する要求を受信することができる。提案センター37_930は、特定量の時間の提案を記憶し、その後、その提案がユーザに提供されなかった場合、又はユーザがユーザインタフェースと相互作用しなかった場合は、その提案を削除するよう判定することができる。
提案センター37_930はまた、いつ提案を送信するかをデバイスに告知するために、他のどんなアクションがユーザデバイスで発生しているかも識別することができる。例えば、ユーザがアプリケーションを使用している場合は、提案された宛先が提供されてもよいが、アプリケーションに対する提案は提供されなくてもよい。提案センター37_930は、例えば、デバイスのモーション状態、ロックスクリーンがオンしているか、又はアクセスの認証が行われたか、ユーザが職場、自宅などでデバイスを使用しているかなど、様々な要因に基づいて、いつ提案を送信するかを判定することができる。
一部の実施形態では、デバイス37_100(図1A)のソフトウェアコンポーネントは宛先提案/予測モジュール(又は命令のセット)を含む。一部の実施形態では、宛先提案モジュールは、例えば、図37-7~図37-9を参照して上記したように様々なサブモジュール又はシステムを含むことができる。宛先提案モジュールは方法37_100又は方法37_600の全部又は部分を実行することができる。
人々中心の予測のための例示の方法、デバイス及びコンピュータ可読媒体
一部の実施形態は、宛先を提案するためのシステム及び方法を提供する。デバイスでのユーザ入力の検出が提案された宛先を提供するトリガーに対応した後、デバイスの現在の状態を表すデバイスのコンテキスト情報が判定され、この場合、現在の状態は、状態変数によって規定される。デバイスを用いて行われた以前の通信に対応するテーブルがポピュレートされ、テーブルのそれぞれは、デバイスの異なるサブ状態に対応し、異なる宛先との以前の通信の連絡測定値を含む。状態変数は、状態変数に対応するテーブルのセットを識別するのに使用され得る。潜在的な宛先の連絡測定値はテーブルのセットから得られる。以前の通信の総連絡測定値は、各潜在的な宛先に対して計算される。提案するための予測された宛先は、潜在的な宛先の総連絡測定値に基づいて、かつ基準を用いて識別され、予測された宛先はユーザに提供される。
一部の実施形態では、ユーザのユーザデバイスと連絡するために提案された宛先を提供するコンピュータにより実行される方法が提案され、この方法は、ユーザデバイスにおいて、ユーザデバイスでユーザ入力を検出することと、ユーザ入力が、提案エンジンを介して提案された宛先を提供するためのトリガーに対応することを判定することと、ユーザデバイスのコンテキスト情報を判定することであって、コンテキスト情報はユーザデバイスの現在のデバイス状態を表すものであり、現在のデバイス状態は1つ以上の状態変数によって規定されることと、ユーザデバイスを用いて行われた以前の通信に対応する1つ以上のテーブルをポピュレートすることであって、1つ以上のテーブルのそれぞれは、ユーザデバイスの異なるデバイスサブ状態に対応し、異なる宛先との以前の通信の複数の宛先測定値を含むものであることと、1つ以上の状態変数を使用して、1つ以上の状態変数に対応する1つ以上のテーブルの第1のセットを識別することと、テーブルの第1のセットから、1つ以上の潜在的な宛先の連絡測定値を得ることと、1つ以上の潜在的な宛先のそれぞれについては、得られた連絡測定値を用いて以前の通信の総連絡測定値を計算することと、1つ以上の潜在的な宛先の総連絡測定値に基づいて、かつ1つ以上の基準を用いてユーザに提案するための1つ以上の予測された宛先を識別する提案エンジンを使用することと、1つ以上の予測された宛先をユーザに提供することと、を含む。一部の実施形態では、コンテキスト情報は、ユーザデバイス上で実行される通信アプリケーション内のオープンな通信の1つ以上の宛先を含み、現在のデバイス状態は現在のアプリケーション状態を含み、現在のアプリケーション状態は1つ以上の宛先を含む。一部の実施形態では、コンテキスト情報は、ユーザデバイス上で実行される通信アプリケーションに対応するアカウント識別子を含み、現在のデバイス状態は現在のアプリケーション状態を含み、現在のアプリケーション状態はアカウント識別子を含む。一部の実施形態では、方法は、ユーザデバイスの現在のロケーションを判定することを含み、コンテキスト情報は現在のロケーションを含み、現在のデバイス状態は現在のロケーション状態を含み、現在のロケーション状態は現在のロケーションを含む。一部の実施形態では、コンテキスト情報は現在時刻及び現在の日を含み、また1つ以上の基準は提案するための予測された宛先の最小数を含む。一部の実施形態では、1つ以上の基準は閾値信頼水準を含み、方法は、ユーザデバイスにおいて、1つ以上の予測された宛先がどのようにユーザに提供されるかを、1つ以上の予測された宛先のそれぞれの各信頼水準に基づいて判定することを更に含む。一部の実施形態では、コンテキスト情報は、ユーザデバイス上で実行される通信アプリケーション内のオープンな通信の件名を含み、現在のデバイス状態は現在のアプリケーション状態を含み、現在のアプリケーション状態は件名を含む。一部の実施形態では、オープンな通信の件名は、電子メールメッセージの件名、カレンダーイベントの件名、及びテレビ会議の件名のうちの1つ以上である。一部の実施形態では、コンテキスト情報は、ユーザデバイス上で実行されるカレンダーアプリケーション内のオープンなカレンダーイベントのスケジュールされた時刻を含み、現在のデバイス状態は現在のアプリケーション状態を含み、現在のアプリケーション状態はスケジュールされた時刻を含む。一部の実施形態では、コンテキスト情報は、ユーザデバイス上で実行されるカレンダーアプリケーション内のオープンなカレンダーイベントのロケーションを含み、現在のデバイス状態は現在のアプリケーション状態を含み、現在のアプリケーション状態はロケーションを含む。一部の実施形態では、1つ以上のテーブルのうちの1つは、ユーザデバイスのカレンダーサブ状態に対応するカレンダーテーブルであり、このカレンダーテーブルは、ユーザデバイスを用いて行われた以前のカレンダーイベントに対するカレンダーの招待の宛先の連絡測定値を含む。一部の実施形態では、1つ以上のテーブルのうちの1つは、ユーザデバイスの電子メールサブ状態に対応する電子メールテーブルであり、この電子メールテーブルは、ユーザデバイスを用いて行われた以前の電子メールメッセージの宛先の連絡測定値を含み、連絡測定値は、以前の電子メールメッセージが行われた時、以前の電子メールメッセージに関連付けられた電子メールアカウント識別子、以前の電子メールメッセージ上にコピーされた他の宛先、及びそれぞれの宛先に送信された電子メールメッセージの数を含む。一部の実施形態では、以前の通信の総連絡測定値を計算することは、1つ以上のテーブルに照会して、1つ以上の潜在的な宛先のそれぞれに送信された以前の通信の総数を計算することを含む。
一部の実施形態では、ユーザのユーザデバイスで連絡するために提案された宛先を提供するための複数の命令を記憶する非一時的コンピュータ可読記憶媒体を含むコンピュータ製品であって、ユーザデバイスの1つ以上のプロセッサ上で実行されると、命令は、ユーザデバイスでユーザ入力を検出することと、ユーザ入力が、提案エンジンを介して提案された宛先を提供するためのトリガーに対応することを判定することと、ユーザデバイスのコンテキスト情報を受信することであって、コンテキスト情報はユーザデバイスの現在のデバイス状態を表すものであり、現在のデバイス状態は1つ以上の状態変数によって規定されることと、ユーザデバイスを用いて行われた以前の通信に対応する1つ以上のテーブルをポピュレートすることであって、1つ以上のテーブルのそれぞれは、ユーザデバイスの異なるデバイスサブ状態に対応し、異なる宛先との以前の通信の複数の連絡測定値を含むものであることと、1つ以上の状態変数を使用して、1つ以上の状態変数に対応する1つ以上のテーブルの第1のセットを識別することと、テーブルの第1のセットから、1つ以上の潜在的な宛先の連絡測定値を得ることと、1つ以上の潜在的な宛先のそれぞれについては、得られた連絡測定値を用いて以前の通信の総連絡測定値を計算することと、1つ以上の潜在的な宛先の総連絡測定値に基づいて、かつ1つ以上の基準を用いてユーザに提案するための1つ以上の予測された宛先を識別する提案エンジンを使用することと、1つ以上の予測された宛先をユーザに提供することと、を含む、動作を実行する。一部の実施形態では、コンテキスト情報は、ユーザデバイス上で実行される通信アプリケーション内のオープンな通信の1つ以上の宛先を含み、現在のデバイス状態は現在のアプリケーション状態を含み、現在のアプリケーション状態は1つ以上の宛先を含む。一部の実施形態では、コンテキスト情報は、現在時刻及びユーザデバイス上で実行される通信アプリケーションに対応するアカウント識別子を含み、現在のデバイス状態は現在のアプリケーション状態を含み、現在のアプリケーション状態は現在時刻及びアカウント識別子を含む。
一部の実施形態では、ユーザデバイスで連絡するために提案された宛先を提供するためのユーザデバイスが提供され、そのユーザデバイスは、入力デバイスと、入力デバイスでユーザ入力を検出し、ユーザ入力が、提案エンジンを介して提案された宛先を提供するためのトリガーに対応することを判定し、ユーザデバイスのコンテキスト情報を判定することであって、コンテキスト情報はユーザデバイスの現在のデバイス状態を表すものであり、現在のデバイス状態は1つ以上の状態変数によって規定され、ユーザデバイスを用いて行われた以前の通信に対応する1つ以上のテーブルをポピュレートすることであって、1つ以上のテーブルのそれぞれは、ユーザデバイスの異なるデバイスサブ状態に対応し、異なる宛先との以前の通信の複数の連絡測定値を含み、1つ以上の状態変数を使用して、1つ以上の状態変数に対応する1つ以上のテーブルの第1のセットを識別し、テーブルの第1のセットから、1つ以上の潜在的な宛先の連絡測定値を得て、1つ以上の潜在的な宛先のそれぞれについては、得られた連絡測定値を用いて以前の通信の総連絡測定値を計算し、1つ以上の潜在的な宛先の総連絡測定値に基づいて、かつ1つ以上の基準を用いてユーザに提案するための1つ以上の予測された宛先を識別する提案エンジンを使用することと、1つ以上の予測された宛先をユーザに提供する、ように構成された1つ以上のプロセッサと、を備える。一部の実施形態では、コンテキスト情報は、ユーザデバイス上で実行される通信アプリケーション内のオープンな通信の1つ以上の宛先を含み、現在のデバイス状態は現在のアプリケーション状態を含み、現在のアプリケーション状態は1つ以上の宛先を含む。一部の実施形態では、1つ以上のテーブルのうちの1つは、ユーザデバイスの電子メールサブ状態に対応する電子メールテーブルであり、この電子メールテーブルは、ユーザデバイスを用いて行われた以前の電子メールメッセージの宛先の連絡測定値を含み、連絡測定値は、以前の電子メールメッセージが行われた時間、以前の電子メールメッセージに関連付けられた電子メールアカウント識別子、以前の電子メールメッセージ上にコピーされた他の宛先、及びそれぞれの宛先に送信された電子メールメッセージの数を含む。一部の実施形態では、1つ以上の基準は閾値信頼水準を含み、1つ以上のプロセッサは、ユーザデバイスにおいて、1つ以上の予測された宛先がどのようにユーザに提供されるかを、1つ以上の予測された宛先のそれぞれの各信頼水準に基づいて判定するように更に構成されている。
セクション8:プロアクティブアシスタントのアプリモデル
本セクションの「プロアクティブアシスタントのアプリモデル」という題材は、一部の実施形態による、プロアクティブアシスタントのアプリケーションモデル及びコンピューティングデバイスのユーザに対して、事前に推薦を提供することに関連する詳細を記載し、本明細書に提供される開示を補足する情報を提供する。例えば、本セクションの部分は、ユーザがアクセスすることに関心を持ち得るアプリケーションの予測を記載し、本明細書で提供される開示、例えば、図9B~図9Cの予測部分930内の予測されたコンテンツをポピュレートすることに関すること、及びトリガー条件(図4A~図4B)の作成及び検出に関することを補足する。一部の実施形態では、アプリケーション予測エンジン及び検索インタフェースに包含するためのアプリケーションの予測に関連する詳細も、本明細書に記載する他の方法(例えば、方法600、800、1000及び1200)に適用可能である。
プロアクティブアシスタントのアプリモデルの概要
本セクションに記載する実施形態は、ユーザがいつ自身のモバイルコンピューティングデバイス上の検索アプリケーションをアクティブにするかを識別する技法を説明する。具体的には、技法は、ユーザからの検索パラメータの入力を受信する前に、ユーザがアクセスすることに関心を持ち得る1つ以上の予測を提示することを伴い、これにより、ユーザが手動で検索パラメータを検索アプリケーションに提供しなければならない尤度又は必要性を低減することができる。一部の実施形態によれば、検索アプリケーションは、検索アプリケーションがアクティブにされる(例えば、モバイルコンピューティングデバイスのユーザインタフェース内に表示される)たびに、予測エンジン(本セクションでは、「アプリケーション予測エンジン」と呼ばれる)とインタフェース接続するように構成され得る。より具体的には、検索アプリケーションがアプリケーション予測エンジンとインタフェース接続するときは、検索アプリケーションは、ユーザがアクセスすることに関心を持ち得る1つ以上のアプリケーションの予測に対する要求を発行することができる。次に、アプリケーション予測エンジンは、予測を生成するために、モバイルコンピューティングデバイスにインストールされたアプリケーションに関連付けられた情報を分析することができる。その後、検索アプリケーションは、ユーザが選択するために、検索アプリケーションのユーザインタフェース内に予測された1つ以上のアプリケーションを表示することができる。
一実施形態は、モバイルコンピューティングデバイスのユーザに予測を提供する方法を説明する。具体的には、方法は、モバイルコンピューティングデバイス上で実行されるアプリケーション予測エンジンによって実施され、(1)モバイルコンピューティングデバイス上で実行される検索アプリケーションから、モバイルコンピューティングデバイスにインストールされ、ユーザがアクティブにすることに関心を持ち得る1つ以上のアプリケーションの予測を提供する要求を受信する工程と、(2)モバイルコンピューティングデバイスにインストールされたアプリケーションのリストを識別する工程と、(3)アプリケーションのリストに含まれる各アプリケーションに対して、(i)アプリケーションに対応する1つ以上のデータ信号に1つ以上の関数を実行することによって、アプリケーションのスコアを生成し、(ii)このスコアをアプリケーションと関連付ける工程と、(4)生成されたスコアにしたがって、アプリケーションのリストをフィルタリングし、フィルタリングされたアプリケーションのリストを生成する工程と、(5)予測をフィルタリングされたアプリケーションのリストでポピュレートする工程と、(6)予測を検索アプリケーションに提供する工程と、を含む。
別の実施形態は、モバイルコンピューティングデバイスのユーザに予測を提示する方法を説明する。具体的には、方法は、モバイルコンピューティングデバイス上で実行される検索アプリケーションによって実施され、(1)検索アプリケーションのアクティブ化を検出する工程と、(2)アプリケーション予測エンジンに対して、モバイルコンピューティングデバイスにインストールされ、ユーザがアクティブにすることに関心を持ち得る1つ以上のアプリケーションに対する要求を発行する工程と、(3)アプリケーション予測エンジンから予測を受信する工程であって、この予測は1つ以上のアプリケーションのリストを含み、アプリケーションそれぞれは各スコアに関連付けられている工程と、(4)スコアにしたがって、検索アプリケーションのユーザインタフェース内に、1つ以上のアプリケーションのうち少なくとも1つのアプリケーションのユーザインタフェースエントリを表示する工程と、を含む。
更に別の実施形態は、モバイルコンピューティングデバイスのユーザに予測を提示するように構成されたモバイルコンピューティングデバイスを説明する。具体的には、モバイルコンピューティングデバイスは、(1)検索アプリケーションのアクティブ化を検出すること、(2)検索アプリケーションのユーザインタフェース内にユーザからの入力を受信する前に、(i)モバイルコンピューティングデバイス上で実行されるアプリケーション予測エンジンに対して、モバイルコンピューティングデバイスにインストールされ、ユーザがアクティブにすることに関心を持ち得る1つ以上のアプリケーションのリストに対する要求を発行することと、(ii)アプリケーション予測エンジンからリストを受信することと、(iii)検索アプリケーションのユーザインタフェース内に、リストに含まれる1つ以上のアプリケーションのうち少なくとも1つのアプリケーションのユーザインタフェースエントリを表示すること、を含む工程を行うように構成された検索アプリケーションを実行するように構成されたプロセッサを含む。上に示すように、プロセッサはまた、アプリケーション予測エンジンを実行するように構成され、このアプリケーション予測エンジンは、(1)検索アプリケーションから、ユーザがアクティブにすることに関心を持ち得る1つ以上のアプリケーションのリストに対する要求を受信することと、(2)リストを生成することと、(3)検索アプリケーションにリストを提供することと、を含む工程を行うように構成されている。
他の実施形態は、プロセッサによって実行されると、プロセッサに、本セクションで説明した前述の技法のいずれかを実施させる命令を記憶するように構成された非一時的コンピュータ可読記憶媒体を含む。
本概要は、本セクションで記載する主題のいくつかの態様の基本的理解を提供するように、一部の例示の実施形態を要約することを目的として提供されるものにすぎない。したがって、上述した特徴は単なる例にすぎず、いかなる方法でも、本セクションに記載する主題の範囲又は趣旨を狭めるものとして解釈すべきではないことが理解されよう。本セクションに記載する主題の他の特徴、態様及び利点は、以下の発明を実施するための形態、図面及び特許請求の範囲から明らかになるであろう。
本セクションに記載する実施形態の他の態様及び利点は、記述する実施形態の原理を例として図示する添付図面と併せて、以下の詳細な説明から明らかになるであろう。
プロアクティブアシスタントのアプリモデルの詳細な説明
本明細書に記載される実施形態に係る、装置及び方法の代表的な用途が、この項において提示される。これらの例は、更なる前後関係を提供し、説明する実施形態の理解を助けることのみを目的として提供される。したがって、これらの具体的な詳細のうちの一部又は全部を使用することなく、ここで説明される実施形態を実践できるということが、当業者には明らかであろう。他の例では、ここで説明される実施形態を不必要に不明瞭化することを回避するために、周知のプロセス工程は、詳細には説明されていない。他の適用例が可能であり、それゆえ以下の実施例は、限定的なものとして解釈されるべきではない。
本セクションで記載する実施形態は、ユーザがいつ自身のモバイルコンピューティングデバイス上の検索アプリケーションをアクティブにするかを識別し、ユーザからの検索アプリケーションの入力を受信する前に、ユーザがアクセスすることに関心を持ち得る1つ以上のアプリケーションの予測を提示する技法を説明する。一部の実施形態によれば、検索アプリケーションは、検索アプリケーションがアクティブにされる(例えば、モバイルコンピューティングデバイスのユーザインタフェース内に表示される)たびにアプリケーション予測エンジンとインタフェース接続すると共に、ユーザがアクセスすることに関心を持ち得る1つ以上のアプリケーションの予測のためにアプリケーション予測エンジンに問い合わせるように構成され得る。次に、アプリケーション予測エンジンは、予測を生成するために、モバイルコンピューティングデバイスにインストールされたアプリケーションに関連付けられた情報を分析することができる。この情報は、例えば、アプリケーションインストールタイムスタンプ、アプリケーションアクティブ化タイムスタンプ、アプリケーションアクティブ化合計、アプリケーション使用メトリック、メインユーザインタフェース内(例えば、ホームスクリーン上、フォルダ内など)におけるアプリケーションアイコンの位置、ユーザによって最近提供された検索パラメータ、以前の予測が正確であったかどうかを示す収集されたフィードバックなどを含むことができ、これにより、アプリケーション予測エンジンが有意義で関連のある予測を検索アプリケーションに提供するのを可能にすることができる。次に、検索アプリケーションは、ユーザが選択するために、検索アプリケーションのユーザインタフェース内に予測された1つ以上のアプリケーションを表示することができる。とりわけ、この技法は、ユーザが特定のアプリケーションにアクセスしようとするたびにユーザが検索パラメータを入力するという煩わしいプロセスを経る出来事を大幅に低減することができ、これにより、ユーザ自身のモバイルコンピューティングデバイスで全体としてのユーザ満足度を大幅に改善することができる。
本セクションで説明した実施形態は主に、ユーザがアクセスを望み得るアプリケーションを予測するように構成されたアプリケーション予測エンジンを伴うが、異なる種類の予測(例えば、ユーザが連絡する可能性のある人々)を提供するように作用する他の予測エンジンがモバイルコンピューティングデバイス内に実装される場合があることに留意されたい。より具体的には、一部の実施形態によれば、各予測エンジンは、それ自体を、モバイルコンピューティングデバイス内の特定の予測カテゴリに対する「エキスパート」として割り当てるように構成されてもよい。例えば、アプリケーション予測エンジンは、それ自体を、「アプリケーション」予測カテゴリに対するエキスパートとして割り当てて、アプリケーション予測エンジンが、モバイルコンピューティングデバイスのユーザがアクセスすることに関心を持ち得るアプリケーションを予測するのに特化していることを示すことができる。一部の実施形態によれば、アプリケーション予測エンジンは、アプリケーション予測エンジンにより、データ(例えば、上記の情報)を分析し、そのデータにしたがって予測を提供することを可能にする学習モデルを採用することができる。本開示は主に、学習モデルを実行するように構成されたアプリケーション予測エンジンを検討するが、行動データを分析し予測を提供する任意の技法が本セクションに記載するアプリケーション予測エンジンによって採用され得ることに留意されたい。また、アプリケーション予測エンジンは、異なるタイプのユーザデバイスに対して特化された予測を提供するために、異なるタイプのユーザデバイス(例えば、スマートホン、タブレット、ウォッチ、ラップトップコンピュータなど)にわたって機能が異なる場合があることに留意されたい。例えば、第1のタイプのアプリケーション予測エンジンは、スマートホンに割り当てられてもよく、第2のタイプのアプリケーション予測エンジンはタブレットに割り当てられてもよいなどである。
上記に説明したように、モバイルコンピューティングデバイス上に実装される各予測エンジンは、それ自体を、モバイルコンピューティングデバイス内の1つ以上の予測カテゴリ上のエキスパートとして割り当てることができる。結果として、一部の場合には、2つ以上のアプリケーション予測エンジンがそれら自体を、「アプリケーション」予測カテゴリ上のエキスパートとして割り当てることができる。このシナリオでは、本セクションで記載する検索アプリケーションが予測に対する要求を発行するとき、2つ以上のアプリケーション予測エンジンのうちの各アプリケーション予測エンジンは、それ自身の分析(例えば、アプリケーション予測エンジンによって採用される学習モデルにしたがって)を行い、その要求にしたがって予測を生成することになる。このシナリオでは、少なくとも2つの予測が予測に対する要求に応答して生成され、それにより、検索アプリケーションが解釈することができない場合がある冗長性と競合する予測を生じさせる場合がある。
したがって、実施形態はまた、アプリケーション予測エンジンと検索アプリケーションとの間の仲介として作用するように構成される「予測センター」も説明する。この機能を提供するには、予測センターは、予測エンジンが初期化し、それら自身を、1つ以上の予測カテゴリ(例えば、「アプリケーション」予測カテゴリ)に対するエキスパートとして割り当てようとするとき、予測エンジン(例えば、アプリケーション予測エンジン)のレジストラとして作用するように構成されてもよい。同様に、一部の実施形態によれば、予測センターはまた、消費者用のアプリケーション(例えば、本セクションに記載する検索アプリケーション)が提供され得る予測のカテゴリを識別するよう予測センターに問い合わせできるように、モバイルコンピューティングデバイス内に異なるタイプの予測カテゴリを管理するように構成されてもよい。このようにして、消費者用のアプリケーションが特定の予測カテゴリの予測に対する要求を発行し、2つ以上の予測エンジンがそれぞれの予測(単数又は複数)に応答する場合、予測センターは、消費者用のアプリケーションによって発行された要求に応答する前に予測を受信し処理するように構成されてもよい。予測を処理することは、例えば、予測間に存在する重複情報を除去すること、予測エンジンに関連付けられた履歴性能(すなわち、精度)メトリックにしたがって予測に重み付けを適用すること、予測を生成する際に予測エンジンによって広告されたスコアにしたがって予測を分類すること、などを伴うことができる。このようにして、予測センターは、複数の予測を最適された予測に抽出し、最適化された予測を消費者用のアプリケーションに提供することができる。したがって、こうした設計は、有益なことに、(消費者用のアプリケーションが複数の予測を処理することが可能である必要がないように)消費者用のアプリケーションの操作要件を簡略化し、困難な仕事を予測センターに統合し、消費者用のアプリケーションが対象とする予測カテゴリ上のエキスパートとして自身を割り当てた様々な予測エンジンの入力を表す予測を得るのを可能にする。
したがって、上記で説明した様々な技法は、検索アプリケーションが、潜在的に全体のユーザエクスペリエンスを向上させるのに使用され得る予測を受信するよう予測センターと相互作用できるようにする。一部の場合には、検索アプリケーションが、予測が正確だったかを示すようにフィードバックを予測センター/アプリケーション予測エンジンに提供するのは価値ある場合がある。かかるフィードバックは、例えば、学習アルゴリズムがアプリケーション予測エンジンによって実行される場合に有益となり得るのは、フィードバックが学習アルゴリズムを「トレーニングする」と共に予測の全体的な精度を向上させるのに使用され得るからである。例えば、アプリケーション予測エンジンは、特定のアプリケーションがユーザによってアクティブにされる可能性が最も高い予測を生成する場合(例えば、ユーザからの検索入力を受信する前に、検索アプリケーション内に表示される場合)、検索アプリケーションは、予測が真である(例えば、特定のアプリケーションがユーザによって選択されアクティブにされた)ことを示すフィードバックを提供することができる。次に、アプリケーション予測エンジンは、同様の、かつ後続の予測が予測エンジンによって生成されるときに広告されるスコアを増加することができる。
加えて、予測センターのアーキテクチャは、アプリケーション予測エンジンなどの本セクションで記載する様々なエンティティがモバイルコンピューティングデバイス内のモジュールコンポーネントとして機能できるように構成され得ることに留意されたい。一つのアーキテクチャのアプローチでは、各アプリケーション予測エンジンは、フォーマット(例えば、ツリー状の構造)が予測センターによって理解され、予測センターが、アプリケーション予測エンジンの機能を実装するためのプラットフォームとして機能するのを可能にするバンドルとして構成されてもよい。このアプローチによれば、予測センターは、例えば、モバイルコンピューティングデバイス内に常駐する異なるバンドルを識別するために、(例えば、初期化時に)異なるファイルシステムパスを解析するように構成されてもよい。このようにして、バンドルを、都合よく、モバイルコンピューティングデバイスのファイルシステムに追加し、その内部で更新し、またそこから除去することができ、それによって、モバイルコンピューティングデバイスに対して大幅な更新(例えば、オペレーティングシステムの更新)を要求せずに、時間の経過と共に効率的に進展できるモジュール構成を促進することができる。例えば、アプリケーション予測エンジンは、アプリケーション予測エンジンによって実装されるロジックの全部又は一部を(例えば、OTA(over the air)更新を通して)更新できるように構成されてもよい。前述のアーキテクチャは例示的なものであり、本セクションに記載する様々なエンティティが互いに通信し、かつ異なる機能を提供するのを可能にするあらゆるアーキテクチャを使用できることに留意されたい。
それに加えて、予測センター/アプリケーション予測エンジンはまた、予測を生成する際に起こる処理量を低減するのに使用され得る1つ以上のキャッシュを実装するように構成されてもよい。一部の実施形態によれば、予測は、生成時に、予測が記憶されたキャッシュからいつ予測を除去すべきかを示す「有効性パラメータ」を伴うことがある。有効性パラメータ(本セクションでは、「有効期限情報」とも呼ばれる)は、例えば、時間ベースの有効期限、イベントベースの有効期限などを規定することができる。このようにして、アプリケーション予測エンジンが頻繁に検索アプリケーションから予測に対する要求を受信する場合、アプリケーション予測エンジンは、予測に対する、繰り返される要求を処理する際に、本来発生するであろう将来の処理量を大幅に低減するために、予測を生成し、キャッシュすることができる。予測センター/アプリケーション予測エンジンは各種アプローチを用いて予測をキャッシュするように構成され得ることに留意されたい。例えば、利用可能なキャッシュメモリが制限されている場合、予測センター/アプリケーション予測エンジンは、(例えば、時間ウィンドウ内の)閾値回数、予測を生成し、閾値が満たされたときには、(有効期限情報が予測が有効であることを示す限り)予測をキャッシュし、予測に対する後続の要求のキャッシュを参照するよう移行するように構成されてもよい。
したがって、本セクションで記載する実施形態は、ユーザがいつ自身のモバイルコンピューティングデバイス上の検索アプリケーションをアクティブにするかを識別し、ユーザからの検索アプリケーションの入力を受信する前に、ユーザがアクセスすることに関心を持ち得る1つ以上のアプリケーションの予測を提示する技法を説明する。これらの技法を実行するのに使用され得るシステム、方法及びユーザインタフェースの詳細図を図示する図38-1~図38-4と併せて、以下に、これらの技法のより詳細な検討を説明し記載する。
図38-1は、一部の実施形態に係る、本セクションに記載する様々な技法を実行するように構成されているモバイルコンピューティングデバイス38_100の異なるコンポーネントのブロック図を図示する。より具体的には、図38-1は、モバイルコンピューティングデバイス38_100の高水準の概要を図示し、それは、図示するように、予測センター38_102、アプリケーション予測エンジン38_104、及び検索アプリケーション38_116を実装するように構成されている。一部の実施形態によれば、予測センター38_102、アプリケーション予測エンジン38_104、及び検索アプリケーション38_116は、モバイルコンピューティングデバイス38_100上で実行されるように構成されたオペレーティングシステム(OS)(図38-1には図示しない)内に実装されてもよい。図38-1に示すように、予測センター38_102は、アプリケーション予測エンジン38_104と検索アプリケーション38_116との間の仲介として作用するように構成されてもよい。図38-1には図示しないが、予測センター38_102は、例えば、2つ以上のアプリケーション予測エンジン38_104が実装され、2つ以上の予測が検索アプリケーション38_116によって発行された要求に応答して生成される場合には、複数の予測を統合するように構成されたアグリゲータを実装するように構成されてもよい。しかし、予測センター38_102がモバイルコンピューティングデバイス38_100内に実装される必要性を低減するか、又は更に取り除くように、アプリケーション予測エンジン38_104及び検索アプリケーション38_116の両方が互いに直接通信するように構成され得ることに留意されたい。アプリケーション予測エンジン38_104及び検索アプリケーション38_116は、論理上互いに分離される必要はなく、これらのエンティティによって実装される異なる機能が、同じ結果をもたらす異なるアーキテクチャのアプローチを確立するように組み合わされてもよいことに更に留意されたい。
図38-1に示すように、予測38_112はアプリケーション予測エンジン38_104と検索アプリケーション38_116との間で通信されることができ、例えば、予測センター38_102は、アプリケーション予測エンジン38_104によって生成された予測38_112を受信すると共に、予測38_112を検索アプリケーション38_116に転送することができる。フィードバック38_114はまた、アプリケーション予測エンジン38_104と検索アプリケーション38_116との間で通信されることができ、例えば、予測センター38_102は、アプリケーション予測エンジン38_104が経時的に予測38_112の精度を上げることができるように、検索アプリケーション38_116からフィードバック38_114を受信し、フィードバック38_114をアプリケーション予測エンジン38_104に提供することができる。
それに加えて、予測センター38_102は、モバイルコンピューティングデバイス38_100における処理及びエネルギー消費効率を向上させるために、予測センター38_102/アプリケーション予測エンジン38_104が予測38_112をキャッシュできるようにするキャッシュを実装するように構成されてもよい。例えば、キャッシュは、複数のエントリを含むことができ、この場合、それぞれのエントリは予測38_112、並びに予測38_112がどれくらい有効であると考えられるかを示す有効期限情報を含む。有効期限情報は、例えば、時間ベースの有効期限、イベントベースの有効期限などを含むことができる。このようにして、アプリケーション予測エンジン38_104が頻繁に予測38_112に対する要求を受信する場合、アプリケーション予測エンジン38_104は、モバイルコンピューティングデバイス38_100において本来発生するであろう処理量を大幅に低減するために、予測38_112を生成し、キャッシュすることができ、それによって、性能を向上させることができる。
本セクションで以前に説明したように、アプリケーション予測エンジン38_104は、各種アーキテクチャのアプローチを用いて実装でき、例えば、アプリケーション予測エンジン38_104は、予測センター38_102の外部にあり、予測センター38_102によってサポートされ、アプリケーション予測エンジン38_104によって利用されるアプリケーション・プログラミング・インタフェース(API)コマンドを介して予測センター38_102と通信するスタンドアローンの実行可能ファイルとすることができ、アプリケーション予測エンジン38_104は、モバイルコンピューティングデバイス38_100のファイルシステム内に記憶され、予測センター38_102などによって解釈され実行されるバンドルとすることができる。図38-1に示すように、アプリケーション予測エンジン38_104は、アプリケーション予測エンジン38_104が検索アプリケーション38_116に対して予測を生成する方法を定める構成パラメータ38_106を含むことができる。特に、構成パラメータ38_106は、データ信号38_110(それは、モバイルコンピューティングデバイス38_100内のアプリケーション予測エンジン38_104が利用可能なインストールされたアプリケーション情報38_108に対応する)がアプリケーション予測エンジン38_104によって受信され、アプリケーション予測エンジン38_104によって処理される方法を規定することができる。一部の実施形態によれば、データ信号38_110は、アプリケーションインストールタイムスタンプ(例えば、各アプリケーションがインストールされた時)、アプリケーションアクティブ化タイムスタンプ(例えば、各アプリケーションがアクティブにされた最後の時刻)、アプリケーションアクティブ化合計(例えば、アプリケーションがこれまでアクティブにされた総回数)、アプリケーション使用メトリック(例えば、アプリケーションがアクティブにされる頻度)などを表すことができる。データ信号38_110はまた、モバイルコンピューティングデバイス38_100のメインユーザインタフェース内(例えば、ホームスクリーン上、フォルダ内など)におけるアプリケーションアイコンの位置、ユーザによって最近提供されたアプリケーション検索パラメータ、アプリケーション予測エンジン38_104によって提供された以前の予測が正確だったかを示す収集されたフィードバックなど、を含むことができる。
図38-1には図示しないが、アプリケーション予測エンジン38_104は、アプリケーション予測エンジン38_104が、時間の経過と共に進展し、モバイルコンピューティングデバイス38_100のユーザに関連したままである予測38_112を提供できるようにする学習モデルを実装するように構成されてもよい。一部の実施形態によれば、学習モデルは、情報(例えば、データ信号38_110)を分析すると共に、モバイルコンピューティングデバイス38_100を動作させる際の全体的なユーザエクスペリエンスを向上させることができる予測38_112を生成するように構成されたアルゴリズムを表すことができる。一部の実施形態によれば、アプリケーション予測エンジン38_104によって処理される情報は、モバイルコンピューティングデバイス38_100内の様々なソース、例えば、モバイルコンピューティングデバイス38_100上で実装されるファイルシステム、検索アプリケーション38_116によって提供されたフィードバック情報、モバイルコンピューティングデバイス38_100のセンサ(例えば、全地球測位システム(GPS)センサ、マイクロフォンセンサ、温度センサ、加速度計センサなど)によって収集された情報、外部ソース(例えば、モバイルコンピューティングデバイス38_100上で実行されるその他のアプリケーション、OSカーネルなど)によって提供された情報などから収集することができる。
それに加えて、図38-1に示すように、モバイルコンピューティングデバイス38_100は、アプリケーション予測エンジン38_104、予測センター38_102及び検索アプリケーション38_116のうち1つ以上を部分的に又は完全に更新するのに使用され得るOTA(over the air)更新38_122を受信するために、(例えば、インターネット接続を介して)1つ以上のサーバ38_120とインタフェース接続するように構成されてもよい。したがって、図38-1は、本セクションで説明する技法を実装するのに使用され得る様々なコンポーネントの高水準の概要を提供する。
図38-2は、一部の実施形態に係る、アプリケーション予測エンジン38_104によって実行される方法38_200を図示する。方法38_200は互いに直接通信しているアプリケーション予測エンジン38_104及び検索アプリケーション38_116として記載されるが、予測センター38_102は本セクションに記載する予測センター38_102によって提供される様々な機能により、アプリケーション予測エンジン38_104と検索アプリケーション38_116との間の仲介として作用することができることに留意されたい。図示するように、方法38_200は、工程38_202で開始し、ここでアプリケーション予測エンジン38_104は、検索アプリケーション38_116から、モバイルコンピューティングデバイス38_100のユーザがアクセスすることに関心を持ち得る、モバイルコンピューティングデバイス38_100上にインストールされた1つ以上のアプリケーションの予測38_112を提供するための要求を受信する。この要求は、例えば、モバイルコンピューティングデバイス38_100のユーザが検索アプリケーションをアクティブにさせるジェスチャを入力する場合に、モバイルコンピューティングデバイス38_100上で検索アプリケーションがアクティブになるのに応答して、検索アプリケーション38_116によって発行され得る。
工程38_204では、アプリケーション予測エンジン38_104は、モバイルコンピューティングデバイス38_100上にインストールされているアプリケーションのリストを識別する。この情報は、例えば、インストールされたアプリケーション情報38_108及びデータ信号38_110によって得ることができる。工程38_206では、アプリケーション予測エンジン38_104は、現在のアプリケーションをアプリケーションのリスト内の最初のアプリケーションとして設定する。工程38_208では、アプリケーション予測エンジン38_104は、1つ以上の関数を、現在のアプリケーションに対応する1つ以上のデータ信号38_110に対して実行することによって現在のアプリケーションに対するスコアを生成する。一部の実施形態によれば、データ信号38_110に関数を実行することは、データ信号38_110のスコアを計算することと、データ信号38_110に関連付けられた一定の重み付けにしたがってそのスコアを調整することを伴う場合がある。例えば、データ信号38_110がアプリケーションのインストール日に対応する場合、スコアは、アプリケーションがインストールされてから経過した時間に基づく場合があり、例えば、より最近のインストール日に対しては、より高いポイントになる場合がある。一部の場合には、スコアは、減衰値(半減期)にしたがって調整され得、それは、アプリケーションに関連付けられた時間的情報(例えば、アプリケーションインストールタイムスタンプ、アプリケーションアクティブ化タイムスタンプなど)を表すデータ信号38_110に特に適用できる。次に、データ信号38_110に関連付けられた一定の重み付けは、スコアに適用され、スコアの更新形態を生成することができる。このようにして、現在のアプリケーションに対応する1つ以上のデータ信号38_110に対する1つ以上の関数が完了すると、予測エンジンは、現在のアプリケーションに対してスコアの最終形態(例えば、個々のスコアの和)を生成することができる。
工程38_210では、アプリケーション予測エンジン38_104は、追加のアプリケーションがアプリケーションのリスト内に含まれるかどうかを判定する。工程38_210で、アプリケーション予測エンジン38_104が、追加のアプリケーションがアプリケーションのリスト内に含まれると判定する場合は、方法38_200は工程38_212に進む。そうでなければ、方法38_200は、以下に詳細に記載する工程38_214に進む。工程38_212では、アプリケーション予測エンジン38_104は、現在のアプリケーションをアプリケーションのリスト内の次のアプリケーションとして設定する。工程38_214では、アプリケーション予測エンジン38_104は、(1)生成されたスコア、及び(2)工程38_202で受信した要求にしたがってアプリケーションのリストをフィルタリングする。例えば、要求は、たった3つのアプリケーションの提案しかモバイルコンピューティングデバイス38_100のユーザインタフェース内に(例えば、スクリーンサイズ又は解像度の設定にしたがって)表示できないことを示すことができ、これにより、アプリケーション予測エンジン38_104はアプリケーションのリストから、スコアがリストの上位3つの位置にないすべてのアプリケーションを取り除くことができる。工程38_216では、アプリケーション予測エンジン38_104は予測38_112をフィルタリングされたアプリケーションのリストでポピュレートし、予測38_112を検索アプリケーション38_116に提供する。
図38-3は、一部の実施形態に係る、検索エンジン38_116によって実行される方法38_300を図示する。図示するように、方法38_300は、工程38_302で開始し、そこで、検索アプリケーション38_116がアクティブにされる。工程38_304では、検索アプリケーション38_116は、ユーザがアクセスすることに関心を持ち得る1つ以上のアプリケーションの予測38_112に対する要求を発行する。工程38_306では、検索アプリケーション38_116は要求に応答して予測38_112を受信し、その予測38_112は、1つ以上のアプリケーションのリストを含み、各アプリケーションはそれぞれのスコアに関連付けられている。工程38_308では、(例えば、図38-4に図示し、以下に記載するように)検索アプリケーション38_116は、スコアにしたがって、検索アプリケーション38_116のユーザインタフェース内に、1つ以上のアプリケーションのうち少なくとも1つのアプリケーションに対するユーザインタフェースエントリを表示する。工程38_310では、検索アプリケーション38_116は、ユーザインタフェースを通してユーザ入力を受信する。
工程38_312では、検索アプリケーション38_116は、ユーザ入力がユーザインタフェースエントリに対応するかどうかを判定する。工程38_312で、検索アプリケーション38_116が、ユーザ入力がユーザインタフェースエントリに対応すると判定する場合は、方法38_300は工程38_314に進む。そうでなければ、方法38_300は、以下に詳細に記載する工程38_318に進む。工程38_314では、検索アプリケーション38_116は、ユーザインタフェースエントリに対応するアプリケーションをアクティブにする。工程38_316では、検索アプリケーション38_116はアプリケーションがアクティブにされたことを示すフィードバックを提供する。最後に、工程38_318では、検索アプリケーション38_116は自身を非アクティブにする。
図38-4は、一部の実施形態に係る、本セクションに記載する検索アプリケーション38_116の例示のユーザインタフェース38_402の概念図38-400を図示する。図38-4に示すように、ユーザインタフェース38_402は、モバイルコンピューティングデバイス38_100のユーザが(例えば、ユーザインタフェース38_402に含まれる仮想キーボード38_408を用いて)検索パラメータを入力できるようにする検索フィールド38_404を含むことができる。また、ユーザインタフェース38_402は、ユーザがアクティブにすることに関心を持ち得るアプリケーションに対する複数のユーザインタフェースエントリ38_406のリストを含むことができ、それは、本セクションに記載するアプリケーション予測エンジン38_104によって生成される予測38_112によって得ることができる。次に、フィードバックがユーザによって提供される場合(これは、例えば、検索を取消すこと、提案されたアプリを無視し、検索パラメータを入力すること、又はユーザインタフェースエントリ38_406のうち1つを選択することを含むことができる)、フィードバックは、対処するためのアプリケーション予測エンジン38_104に転送され得る。
上記の図1Aは、一部の実施形態に係る、本セクションに記載する様々なコンポーネントを実装するのに使用され得るコンピューティングデバイス100の詳細図を図示する。特に、詳細図は、図37-1に図示するモバイルコンピューティングデバイス37_100に含まれ得る様々なコンポーネントを図示する。
プロアクティブアシスタントのアプリモデルの例示の方法及びデバイス
本セクションで記載する実施形態は、ユーザがいつ自身のモバイルコンピューティングデバイス上の検索アプリケーションをアクティブにするかを識別し、ユーザからの検索アプリケーションの入力を受信する前に、ユーザがアクセスすることに関心を持ち得る1つ以上のアプリケーションの予測を提示する技法を説明する。一部の実施形態によれば、検索アプリケーションは、検索アプリケーションがアクティブにされるたびに「アプリケーション予測エンジン」とインタフェース接続すると共に、ユーザがアクセスすることに関心を持ち得る1つ以上のアプリケーションの予測のためにアプリケーション予測エンジンに問い合わせるように構成され得る。次に、アプリケーション予測エンジンは、予測を生成するために、モバイルコンピューティングデバイスにインストールされたアプリケーションに関連付けられた情報を分析することができる。予測を用いると、検索アプリケーションは、ユーザが選択するために、検索アプリケーションのユーザインタフェース内に予測された1つ以上のアプリケーションを表示することができる。
一部の実施形態では、モバイルコンピューティングデバイスのユーザに対して、事前に予測を提供する方法が提供され、その方法は、モバイルコンピューティングデバイス上で実行されるアプリケーション予測エンジンにおいて、モバイルコンピューティングデバイスにインストールされたアプリケーションのリスト内に含まれる各アプリケーションに対して、アプリケーションに対応する少なくとも1つのデータ信号に少なくとも1つの関数を実行し、アプリケーションに対し、アプリケーションがユーザによってアクティブにされる尤度を示すスコアを確立し、そのスコアをアプリケーションと関連付けることと、予測をモバイルコンピューティングデバイス上で実行される検索アプリケーションに提供することであって、その予測がアプリケーションのリスト及びそれらの関連するスコアを含むことと、を含む。一部の実施形態では、方法は、予測を検索アプリケーションに提供する前に、検索アプリケーションから、予測に対する要求を受信することであって、検索アプリケーションが検索アプリケーションのアクティブ化に応答して、かつユーザからの検索入力を受信する前に要求を発行することを含む。一部の実施形態では、要求は、予測に含まれるアプリケーションのリスト内に含まれるべき、特定数のアプリケーションを示す。一部の実施形態では、方法は、アプリケーションのリストに含まれるアプリケーションそれぞれに対して、少なくとも1つのデータ信号に関連付けられた重み付けにしたがってスコアを調整することを含む。一部の実施形態では、少なくとも1つのデータ信号がモバイルコンピューティングデバイス内のアプリケーションアクセスの時間的態様に対応する場合、少なくとも1つのデータ信号に少なくとも1つの関数を実行することは、少なくとも1つのデータ信号に関連付けられた重み付けにしたがってスコアを調整する前に、少なくとも1つのデータ信号に対するスコアを、少なくとも1つのデータ信号に適用する減衰要因にしたがって調整することを更に含む。一部の実施形態では、この少なくとも1つのデータ信号はアプリケーションインストールタイムスタンプ、アプリケーションアクティブ化タイムスタンプ、アプリケーションアクティブ化合計、アプリケーション使用メトリック、モバイルコンピューティングデバイスのメインユーザインタフェース内におけるアプリケーションアイコンの位置、ユーザによって最近提供された検索パラメータ、及び以前の予測が正確だったかを示す収集されたフィードバックのうちの1つ以上から選択される。一部の実施形態では、モバイルコンピューティングデバイスのメインユーザインタフェース内におけるアプリケーションアイコンの位置は、アプリケーションアイコンが含まれるメインユーザインタフェースのページ数、及びアプリケーションがメインユーザインタフェース内のフォルダ内に含まれるかどうかを示すことができる。一部の実施形態では、方法は、予測を検索アプリケーションに提供するのに続き、検索アプリケーションからフィードバックを受信することであって、フィードバックが、予測を検索アプリケーションに提供した後のユーザの行動を示すことと、検索アプリケーションから受信したフィードバックを反映するように、収集されたフィードバックを更新することと、を含む。
一部の実施形態では、モバイルコンピューティングデバイスのユーザに対して、事前に予測を提示する方法が提供され、その方法は、モバイルコンピューティングデバイス上で実行される検索アプリケーションにおいて、検索アプリケーションのアクティブ化を検出することと、アプリケーション予測エンジンに対して、モバイルコンピューティングデバイス上にインストールされ、ユーザがアクティブにすることに関心を持ち得る1つ以上のアプリケーションの予測に対する要求を発行することと、アプリケーション予測エンジンから予測を受信することであって、予測が1つ以上のアプリケーションのリストを含み、各アプリケーションは、それぞれのスコアに関連付けられていることと、このスコアにしたがって、検索アプリケーションのユーザインタフェース内に、1つ以上のアプリケーションのうち少なくとも1つのアプリケーションに対するユーザインタフェースエントリを表示することと、を含む。一部の実施形態では、要求は、検索アプリケーションのユーザインタフェースに含まれる検索フィールドを介して検索入力を受信する前に、アプリケーション予測エンジンに対して発行される。一部の実施形態では、方法は、検索アプリケーションのユーザインタフェースを通してユーザ入力を受信することと、フィードバックの形態で、ユーザ入力に関連付けられた情報を提供することと、を含む。一部の実施形態では、フィードバックは、ユーザが少なくとも1つのアプリケーションに対するユーザインタフェースエントリを選択したか、それとも検索パラメータを入力したかを示す。一部の実施形態では、要求は、予測に含まれるべきアプリケーションの特定数を示し、このアプリケーションの特定数は、検索アプリケーションのユーザインタフェース内にユーザに対して表示可能なアプリケーションのユーザインタフェースエントリの数に基づくものである。
一部の実施形態では、モバイルコンピューティングデバイスのユーザに予測を事前に提示するように構成されたモバイルコンピューティングデバイスが提供され、モバイルコンピューティングデバイスは、検索アプリケーションのアクティブ化を検出することと、検索アプリケーションのユーザインタフェース内にユーザからの入力を受信する前に、モバイルコンピューティングデバイス上で実行されるアプリケーション予測エンジンに対して、モバイルコンピューティングデバイスにインストールされ、ユーザがアクティブにすることに関心を持ち得る1つ以上のアプリケーションのリストに対する要求を発行することと、アプリケーション予測エンジンからリストを受信することと、検索アプリケーションのユーザインタフェース内に、リスト内に含まれる1つ以上のアプリケーションのうちの少なくとも1つのアプリケーションに対するユーザインタフェースエントリを表示することと、を含む工程を行うように構成された検索アプリケーション、及び、検索アプリケーションから、ユーザがアクティブにすることに関心を持ち得る1つ以上のアプリケーションのリストに対する要求を受信することと、リストを生成することと、リストを検索アプリケーションに提供することと、を含む工程を行うように構成されたアプリケーション予測エンジン、を実行するように構成されているプロセッサを備える。一部の実施形態では、リストを生成することは、モバイルコンピューティングデバイスにインストールされた各アプリケーションについては、1つ以上の関数を、アプリケーションに対応する1つ以上のデータ信号に実行することによって、アプリケーションに対するスコアを生成し、そのスコアをアプリケーションに関連付けることと、生成されたスコアにしたがってアプリケーションをフィルタリングすることと、フィルタリングされたアプリケーションをリストに組み込むことと、を含む。一部の実施形態では、1つ以上の関数のうちある関数を1つ以上のデータ信号のうちのあるデータ信号に実行することは、データ信号に関連付けられた情報に基づいてデータ信号に対するスコアを確立することと、データ信号に関連付けられた重み付けにしたがってスコアを調整することと、を含む。一部の実施形態では、データ信号がモバイルコンピューティングデバイス内のアプリケーションアクセスの時間的態様に対応し、データ信号に関数を実行することは、データ信号に関連付けられた重み付けにしたがってスコアを調整する前に、データ信号に対するスコアを、データ信号に適用する減衰要因にしたがって調整することを更に含む。一部の実施形態では、この1つ以上のデータ信号は、アプリケーションインストールタイムスタンプ、アプリケーションアクティブ化タイムスタンプ、アプリケーションアクティブ化合計、アプリケーション使用メトリック、モバイルコンピューティングデバイスのメインユーザインタフェース内におけるアプリケーションアイコンの位置、ユーザによって最近提供された検索パラメータ、及び以前の予測が正確だったかを示す収集されたフィードバックを含む。一部の実施形態では、モバイルコンピューティングデバイスのメインユーザインタフェース内におけるアプリケーションアイコンの位置は、アプリケーションアイコンが含まれるメインユーザインタフェースのページ数、及びアプリケーションがメインユーザインタフェース内のフォルダ内に含まれるかどうかを示すことができる。一部の実施形態では、アプリケーション予測エンジンは、リストを検索アプリケーションに提供するのに続き、検索アプリケーションからフィードバックを受信することであって、フィードバックが、リストを検索アプリケーションに提供するのに続いたユーザの行動を示すことと、検索アプリケーションから受信したフィードバックを反映するように、収集されたフィードバックを更新することと、を含む工程を行うように更に構成されている。
セクション9:エキスパートセンター(電子デバイスの構成要素に予測コンテンツアイテムを提供する)
本「エキスパートセンター」セクションの内容はエキスパートセンターを説明し、一部の実施形態による電子デバイスの構成要素(図1Aのデバイス100の構成要素のいずれか)に予測コンテンツアイテムを提供することを説明し、本明細書に記載する開示を補足する情報を提供する。例えば、このセクションの一部は、本明細書に記載する開示を補足する予測エンジン及び予測カテゴリの創出、例えば、トリガー条件の創出/記憶(図4A~図4B)に関するもの、並びに検索インタフェースで予測コンテンツアイテムの取出し及び提示に関するもの(例えば、方法600、800、1000、及び1200)、又はメッセージングアプリケーション内での提案アイテム(例えば、方法2200、2900、2280、2400、2600、及び2700)として、説明する。一部の実施形態では、本明細書に開示する方法は、第9セクションにて以下に説明する予測エンジンを利用又は活用し、多種多様な関連するコンテンツアイテムをユーザに対して適切な時に提供する(例えば、予測されたアプリケーション、予測された人/連絡先、予測された位置、様々な種類のアプリケーションにコンテンツを素早く加えるために用いられるイベント/連絡先/位置に関する情報、及びそれらの方法のいずれかを参照する上記の関連するコンテンツアイテム)。
エキスパートセンターについての概要
よう本セクションに説明する実施形態は、モバイルコンピューティングデバイス内にて異なる種類の予測を提供するように構成可能な様々な「予測エンジン」を実装するための方法を記載する。一部の実施形態では、予測エンジンはそれぞれ、モバイルコンピューティングデバイス内で1つ以上の「予測カテゴリ」についての「エキスパート」として自身を割り当てることができる。消費者向けアプリケーションが特定の予測カテゴリについての予測の要求を発行し、2つ以上の予測エンジンがそれぞれの予測で応答したとき、「予測センター」が、要求に応答する前に予測を受信して処理するように構成され得る。予測を処理することは、複数の予測にわたって存在する重複する情報を除去すること、予測エンジンによって示される信頼水準に従って予測をソートすることなどを含み得る。このようにして、予測センターは複数の予測から最適化された予測を精製して、最適化された予測を消費者向けアプリケーションに提供することができる。
一実施形態は、モバイルコンピューティングデバイス上で実行しているアプリケーションに予測を同期して提供する方法を記載する。具体的には、方法は、モバイルコンピューティングデバイス上で実行している予測センターにて実施され、(1)アプリケーションから、ある予測カテゴリについての予測を同期して提供することの要求を受信するステップと、(2)予測カテゴリに関連付けられた1つ以上の予測エンジンを特定するステップと、(3)要求に従って1つ以上の予測エンジンによって生成された1つ以上の予測を受信するステップと、(4)1つ以上の予測を集約して、アプリケーションから要求された予測を生成するステップと、(5)アプリケーションに予測を提供するステップと、を含む。
別の実施形態は、モバイルコンピューティングデバイス上で実行しているアプリケーションに非同期的に予測を提供する方法を記載する。具体的には、方法はモバイルコンピューティングデバイス上で実行している予測センターにて実装され、(1)アプリケーションから、ある予測カテゴリについての予測を非同期的に提供することの要求を受信するステップと、(2)予測カテゴリに関連付けられる1つ以上の予測エンジンを特定するステップと、(3)1つ以上の予測エンジンのうちのそれぞれの予測エンジンに、要求に従って1つ以上の予測を非同期的に提供するように通知するステップと、を含む。
更に別の実施形態は、ユーザの行動に従って予測を生成するように構成されたモバイルコンピューティングデバイスを記載する。具体的には、モバイルデバイスは、(1)1つ以上の予測エンジンと1つ以上のアプリケーションとの間でのメディエータとして機能し、複数の予測カテゴリを管理する、予測センターと、(2)それぞれが、予測センターによって管理される複数の予測カテゴリのうちの少なくとも1つの予測カテゴリに対するエキスパートとして機能する、1つ以上の予測エンジンと、(3)1つ以上のアプリケーションであって、1つ以上のアプリケーションのそれぞれが、(i)予測センターに、複数の予測カテゴリのうちの特定の予測カテゴリについて予測の要求を発行するステップと、(ii)要求に従って、特定の予測カテゴリに対するエキスパートとして機能する予測エンジンによって作成された少なくとも2つの予測の集約である予測を、予測センターから受信するステップと、を含むステップを行うように構成された、1つ以上のアプリケーションと、を実施するように構成される。
他の実施形態は、プロセッサによって実行されたときに、本セクションに記載の上記の方法のいずれかをプロセッサに実装させる命令を記憶するように構成される、非一時的なコンピュータ可読記憶媒体を備える。
この概要は、本セクションで説明する主題のいくつかの態様の基本的理解を提供するように、一部の例示的実施形態を要約することを目的として提供されるものにすぎない。したがって、上述した特徴は単なる例にすぎず、いかなる方法でも、本セクションに記載する主題の範囲又は趣旨を狭めるように解釈すべきではないことが理解されよう。本セクションに記載する主題の他の特徴、態様及び利点は、後続の発明を実施するための形態、図面及び特許請求の範囲から明らかになるであろう。
本セクションに記載の実施形態の他の態様及び利点は、記述する実施形態の原理を例として例示する添付図面と併せて、以下の詳細な説明から明らかになるであろう。
エキスパートセンターの詳細な説明
本明細書に説明される実施形態に係る、装置及び方法の代表的な用途が、このセクションにおいて提示される。これらの例は、更なる前後関係を提供し、説明する実施形態の理解を助けることのみを目的として提供される。したがって、これらの具体的な詳細のうちの一部又は全てを使用することなく、ここで説明される実施形態を実践できるということが、当業者には明らかであろう。他の例では、ここで説明される実施形態を不必要に不明瞭化することを回避するために、周知のプロセスステップは、詳細には説明されていない。他の適用例が可能であり、それゆえ以下の実施例は、限定的なものとして解釈されるべきではない。
本セクションに説明する実施形態は、モバイルコンピューティングデバイスがエンドユーザに意味のある予測を提供することを可能にするように、行動データを集めて整理するための方法を記載する。一部の実施形態によれば、モバイルコンピューティングデバイスは、それぞれが異なる種類の予測をモバイルコンピューティングデバイス内で提供することができるように構成することができる,様々な「予測エンジン」を実装するように構成することができる。より具体的に、及び一部の実施形態によれば、それぞれの予測エンジンは1つ以上の「予測カテゴリ」について自身を「エキスパート」として割り当てることができ、モバイルコンピューティングデバイスの全体的な動作を向上させるために用いることができる。予測カテゴリの例としては、アプリケーション(例えば、アクティブ化/非アクティブ化)、人(例えば、通話、チャット等)、ジオデータ(例えば、モバイルコンピューティングデバイスの動き/ロケール)、通知(例えば、プッシュ通知到達)、物理入力(例えば、ヘッドホン接続/モバイルコンピューティングデバイスへの電源供給)などを挙げることができる。なお、上述の予測カテゴリは単に例示的であり、本セクションに記載する実施形態は、モバイルコンピューティングデバイスが維持することができる任意の予測カテゴリを採用することができる。一部の実施形態によれば、予測エンジンは、予測エンジンがデータ(例えば、モバイルコンピューティングデバイスのユーザの操作に関連付けられた行動データ)を分析することを可能とする学習モデルを採用し、データに従って予測を提供することができる。この開示は主に学習モデルを実施するように構成される予測エンジンについて記載するが、行動データを分析して予測を提供する任意の方法が、本セクションに説明する予測エンジンによって採用され得る。
本セクションに前述のとおり、及び一部の実施形態によれば、予測エンジンは、モバイルコンピューティングデバイス内の1つ以上の予測カテゴリに対して、エキスパートとして自身を割り当てることができる。したがって、一部の場合では、2つ以上の予測エンジンが、モバイルコンピューティングデバイス内の同一の予測カテゴリについてエキスパートとして自身を割り当ててもよい。よって、要求エンティティ(本セクションでは「消費者向けアプリケーション」と称する)が、2つ以上の予測エンジンが自身をエキスパートとして割り当てる予測カテゴリについて予測の要求を発行した場合、2つ以上の予測エンジンのうちのそれぞれの予測エンジンは自身の分析を実施し(例えば、予測エンジンによって採用される学習モデルに従って)、要求に従って(1つ又はそれ以上の)予測を生成する。このシナリオでは、少なくとも2つ以上の予測が予測の要求に応じて生成され、このことで、消費者向けアプリケーションが解釈できない可能性のある冗長性及び競合する予測を確立する可能性がある。
よって、実施形態は、予測エンジンと消費者向けアプリケーションとの間のメディエータとして機能するように構成される「予測センター」をも記載する。一部の実施形態によれば、予測センターは、予測エンジンが初期化して1つ以上の予測カテゴリについて自身をエキスパートとして割り当てることを求めるときに、予測エンジンのためのレジストラとして機能するように構成することができる。同様に、一部の実施形態によれば、予測センターはまた、消費者向けアプリケーションが予測センターに問い合わせをして提供可能な予測のカテゴリを特定することができるように、モバイルコンピューティングデバイス内の異なる種類の予測カテゴリを管理するように構成することができる。このようにして、消費者向けアプリケーションが特定の予測カテゴリについての予測の要求を発行し、2つ以上の予測エンジンがそれぞれの対応する予測で応答したときに、予測センターは、消費者向けアプリケーションから発行された要求に応答する前に、予測を受信して処理するように構成することができる。予測を処理することは、例えば、複数の予測にわたって存在する重複情報を除去すること、予測エンジンに関連付けられた過去の性能(すなわち、正確性)指標に従って予測に重みを適用すること、予測エンジンがそれらの予測を生成するときに予測エンジンが示した信頼水準に従って予測をソートすること、などを伴うことができる。このようにして、予測センターは複数の予測から最適化された予測を精製して、最適化された予測を消費者向けアプリケーションに提供することができる。よって、この設計は有利に消費者向けアプリケーションの動作要件を簡略化し(消費者向けアプリケーションは複数の予測を処理する能力を必要としないため)、難しい仕事を予測センターに集約し、消費者向けアプリケーションが、対象の予測カテゴリのエキスパートとして自身を割り当てている様々な予測エンジンの入力を表す予測を得ることを可能とする。
一部の実施形態によれば、予測センターは、消費者向けアプリケーションが「同期的な」方式で予測を受信することを可能にすることができる。より具体的には、消費者向けアプリケーションは、予測センターに1つ以上の予測エンジンと相互作用していくぶん即時的な(すなわち、同期的な)応答/予測を消費者向けアプリケーションに提供するようにさせる要求を、予測センターに発行するように構成することができる。この同期的な構成は、例えば、消費者向けアプリケーション(チャットアプリケーションなど)が、起動されつつあって、モバイルコンピューティングデバイスのユーザが(例えば、一日の現在時刻に従って)最もメッセージを送る可能性が高い連絡先を先回りして特定しようとしているときに、用いることができる。他の実施形態によれば、予測センターは、消費者向けアプリケーションが予測を「非同期的な」方式で受信することを可能とすることができる。より具体的には、消費者向けアプリケーションは、必要に応じた(すなわち、非同期的/トリガー)基準で予測を提供するように1つ以上の予測エンジンに通知する/1つ以上の予測エンジンを構成するように、予測センターにさせる要求を、予測センターに発行するように構成することができる。この非同期的な構成は、例えば、消費者向けアプリケーション(モバイルコンピューティングデバイス上のアプリケーションをアクティブ化する(すなわち、起動する)及び非アクティブ化する(すなわち、閉じる)ように構成されたOSカーネルなど)が、モバイルコンピューティングデバイスにおいて生じている物理入力に応じて反応的にアプリケーションをローディングしようとしているときに用いることができる。例えば、予測エンジンは、ヘッドホンが彼又は彼女のモバイルコンピューティングデバイスに差し込まれる時の大半において、特定のミュージックアプリケーションがユーザによって手動で起動されると判定することができる。これを受けて、予測エンジンは、ヘッドホンがモバイルコンピューティングデバイスに接続されるときに予測を介して、この特定のミュージックアプリケーションをOSカーネルに示すことができる。これを受けて、OSカーネルは先回りして(予測に従って)適切なミュージックアプリケーションをローディングすることができ、そのことでユーザエクスペリエンスを改善し、モバイルコンピューティングデバイスの性能を向上させる助けとなることができる。
よって、上述の様々な方法は、消費者向けアプリケーションが、予測センターと相互作用して、全般的なユーザエクスペリエンスを向上するために用いることができる可能性のある予測を受信することを可能とする。一部の場合には、消費者向けアプリケーションが、予測エンジンが作成した予測が正確だったか否かを示すフィードバックを予測センターに提供することは、有益であり得る。かかるフィードバックは、例えば、学習アルゴリズムが予測エンジンによって実装されるときに利益となり得る。なぜなら、フィードバックを用いて、学習アルゴリズムを「トレーニング」し、その予測の全般的な正確性を向上させることができるからである。例えば、ユーザが特定のアクションを取るという予測を予測エンジンが生成し、消費者向けアプリケーションが、予測が真である(すなわち、その特定のアクションがユーザによってとられた)ことを示すフィードバックを提供したときに、予測エンジンは同様の後続の予測が予測エンジンによって作成されるときに示す信頼水準を上げることができる。信頼水準が上昇するにつれて、予測エンジンによって作成される予測は、他の予測エンジンによって作成される競合する予測(もし、あれば)より優先され得る。あるいは、ユーザが特定のアクションをとると予測エンジンが予測し、消費者向けアプリケーションが、予測が真でない(すなわち、別のアクションがユーザによってとられた)ことを示すフィードバックを提供したときに、予測エンジンは同様の後続の予測が予測エンジンによって作成されるときに示す信頼水準を下げることができる。信頼水準が下落するにつれて、この予測エンジンによって作成される予測より、他の予測エンジン(もし、あれば)によって作成される競合する予測の方がまさる可能性がある。
それに加え、及び一部の実施形態によれば、予測センター/予測エンジンは、生成された予測及びそれらの対応するフィードバックの記録を維持するロガーを実装するように構成することができる。これらの記録は様々な仕方で有益であり得る。例えば、予測エンジンの開発者は多くのモバイルコンピューティングデバイスから、予測エンジンが連続的に不正確な予測を生成していることを示す記録を受信し得る。これを受けて、予測エンジンの開発者は、その正確性を向上させるために、予測エンジンの構成に立ち返ることができる。様々なモバイルコンピューティングデバイスにわたる予測センターはまた、互いに情報を交換することで、観察されて全般的なユーザエクスペリエンスを向上させるのに用いることができる高レベルの傾向を特定することができる。例えば、複数の予測センターが、大多数のモバイルコンピューティングデバイスが特定の地理的エリア(例えば、映画館の周辺)に進入したときに、モバイルコンピューティングデバイスのユーザが手動でモバイルコンピューティングデバイスをサイレントモードにすることを、互いに識別し合うことができる。これを受けて、ユーザがその特定の地理的エリア内に入るときに、この識別を用いて、モバイルコンピューティングデバイスをサイレントモードに入れることの提案をユーザに与えることができる。この識別はまた、モバイルコンピューティングデバイスがその特定の地理的エリアに入るときに自動的にサイレントモードへと移行するように自動ルールを設定することを提案するのに用いることができ、これによってユーザが彼又は彼女のモバイルコンピューティングデバイスにアクセスして手動でモバイルコンピューティングデバイスをサイレントモードにする必要を無くすことができる。
上述の技術に加えて、予測センターはまた、予測がモバイルコンピューティングデバイス内で生成される様態を更に向上させるために用いることができる1つ以上の「フィルタ」を実装するように、構成することができる。一部の実施形態によれば、フィルタを用いて、(予測エンジンの範囲内で)正確かつ信頼できるものの、実世界でのシナリオでは実のところ非実用的かつ非効率的である予測の発生を減少させる又は無くす助けとなる追加の処理の層を提供することができる。例えば、モバイルコンピューティングデバイス上のロックスクリーンアプリケーションが消費者向けアプリケーションを表し、ロックスクリーンアプリケーションがカメラアプリケーション用の静的アイコンと、(例えば、一日の現在時刻に基づいて)最もユーザがアクセスする可能性が高いアプリケーションについての動的アイコンを表示するシナリオを検討しよう。この例では、ロックスクリーンアプリケーションは、ロックスクリーンアプリケーション内に表示される動的アイコンと関連付けられるべきであるアプリケーションを特定しようとするとき、「アプリケーション」予測カテゴリに関連付けられた予測の要求を予測センターに発行することができる。更に、この例で、単一の予測エンジンが「アプリケーション」予測カテゴリに関連付けられており、その単一の予測エンジンが、カメラアプリケーションがユーザによって最もアクセスされる可能性が高いと判定した(ロックスクリーンアプリケーションが表示されている時に非常によくあるため)と考えよう。この例では、明らかにこの予測はいくぶん意味がない。なぜなら、ロックスクリーンアプリケーション内に同一のカメラアプリケーションのための2つの異なるアイコンを表示するのが無駄だからである。よって、フィルタを用いてこれらのシナリオが起きるのを防止する助けとすることができる。例えば、フィルタは、ロックスクリーンアプリケーションがモバイルコンピューティングデバイス上でアクティブであるときいつも、「アプリケーション」予測カテゴリと関連付けられる予測からカメラアプリケーションを除外するように構成することができる。
それに加えて、予測センター/予測エンジンはまた、予測を生成するときに行われる処理の量を減らすために用いることができる1つ以上のキャッシュを実装するように構成することができる。一部の実施形態によれば、予測は、生成される際に、予測がいつ、予測が記憶されているキャッシュから削除されるべきかを示す「有効性パラメータ」を伴うことができる。有効性パラメータ(本セクションでは有効期限情報とも称する)は、例えば、時間に基づく有効期限、イベントに基づく有効期限などを定義することができる。このようにして、予測エンジンが特定の予測カテゴリについての予測の要求を頻繁に受信する場合に、予測エンジンは予測を生成し、キャッシュすることができ、それにより、繰り返される予測の要求を処理するときにさもなければ発生するであろう今後の処理量を大幅に減らすことができる。なお、予測センター/予測エンジンは、多種多様なアプローチを用いて予測をキャッシュするように構成することができる。例えば、利用可能なキャッシュメモリが限られている場合、予測センター/予測エンジンは(例えば、ある時間ウィンドウ以内に)予測を閾値回数だけ生成するように構成され得て、閾値が満たされると、予測をキャッシュすることに移行し、(有効期限情報が予測を有効と示す限り)その予測のための後続の要求のためにキャッシュを参照するように構成することができる。
更に、予測センターのアーキテクチャは、本セクションにて説明する様々なエンティティ(予測エンジン、予測カテゴリ、フィルタ、ロガーなどを含む)がモバイルコンピューティングデバイス内でモジュラー構成要素として機能することができるような態様で、構成することができる。1つの構造的なアプローチでは、それぞれのエンティティは、エンティティが予測センターと通信をして本セクションにて説明する様々な機能を提供することを可能とするアプリケーションプログラミングインタフェース(Application Programming Interface;API)関数コールのセットを実装するように構成することができる。この構造的なアプローチによれば、例えば、エンティティは、予測センターの外部で動作することができ、かつ本セクションにて説明する様々な機能性を提供することができる、自己包含型実行可能ファイル(self-contained executable)として構成することができる。別の構造的アプローチでは、それぞれのエンティティは、バンドルとして構成することができ、そのフォーマット及びコンテンツが、予測センターによって理解され、予測センターがエンティティの機能性を実施するためのプラットフォームとして機能することを可能にする。このアプローチによれば、予測センターは、例えば、様々なファイルシステム経路を(例えば、初期化時に)解析して、モバイルコンピューティングデバイス内に存在する様々なバンドルを識別することができるように構成することができる。このようにすると、バンドルは、モバイルコンピューティングデバイスのファイルシステムに便利に追加、その中で更新、及びそこから除去され得て、そのことでモバイルコンピューティングデバイスに実質的な更新(例えば、オペレーティングシステムアップグレード)を必要とすることなく、経時的に効率的に発展することができるモジュラー構成を促進する。なお、上記のアーキテクチャは例示的であり、本セクションにて説明する様々なエンティティに互いに通信させてそれらの異なる機能性を提供するのを可能とする任意のアーキテクチャを利用することができる。
よって、記載の実施形態は、モバイルコンピューティングデバイスがエンドユーザに意味のある予測を提供することを可能にする、行動データの収集及び整理方法を記載する。以下にこれらの方法のより詳細な記載を、以下に記載し、図39-1、39_2、39_3A~39_3C、39_4A~39_4B、39_5A~39_5C、及び、図1Aに示すモバイルデバイス100と関連して説明する。これらの図は、これらの方法を実装するために用いることができるシステム及び方法の詳細図を示す。
図39-1は、一部の実施形態による、本セクションに説明される様々な方法を実装するように構成されるモバイルコンピューティングデバイス39_100の様々な構成要素のブロック図を示す。より具体的には、図39-1はモバイルコンピューティングデバイス39_100の高レベルの概要を示し、示されているように、予測センター39_102及び様々な消費者向けアプリケーション39_112を実装するように構成される。一部の実施形態によれば、予測センター39_102及び様々な消費者向けアプリケーション39_112は、モバイルコンピューティングデバイス39_100上で実行するように構成されるオペレーションシステム(operating system;OS)(図39-1には示さず)内に実装可能である。図39-1にも示すように、予測センター39_102は様々なロガー39_105、様々な予測カテゴリ39_106、様々な予測エンジン39_108、及び様々なフィルタ39_110を管理するように構成可能である。予測センター39_102はまた、予測エンジン39_108と消費者向けアプリケーション39_112との間のメディエータとして機能するように構成されるマネジャー39_104をも、実装することができる。例えば、マネジャー39_104は予測エンジン39_108によって生成される予測(図39-1に予測39_114として示される)を受信して予測39_114を消費者向けアプリケーション39_112に転送することができる。予測センター39_102はまた、消費者向けアプリケーション39_112からフィードバック情報39_116を受信し、そのフィードバック情報39_116を予測エンジン39_108に提供してより正確な予測39_114を経時的に作成できるようにすることができるように、構成することができる。よって、図39-1は、本セクションに記載の技術を実装するために用いることができる様々な構成要素の高レベルの概要を提供する。
図39-2は、一実施形態による、図39-1のモバイルコンピューティングデバイス39_100の特定の構成要素のより詳細な図39-200のブロック図を示す。図39-2に示すように、それぞれの予測エンジン39_108は、1つ以上の学習モデル39_202、対応する状態39_204、及び予測エンジン39_108が自身をエキスパートとして指定した予測カテゴリ39_106のリストを含むように、構成することができる。一部の実施形態によれば、学習モデル39_202は、情報(例えば、状態39_204)を分析してユーザがモバイルコンピューティングデバイス39_100を操作する時のユーザの全体的なエクスペリエンスを向上させることができる予測を生成するように構成されるアルゴリズムを、表すことができる。一部の実施形態によれば、状態39_204はモバイルコンピューティングデバイス39_100内の様々なソース、例えば、消費者向けアプリケーションから提供されるフィードバック情報39_116、モバイルコンピューティングデバイス39_100のセンサ(例えば、全地球測位システム(Global Positioning System;GPS)センサ、マイクロフォンセンサ、温度センサ、加速度計センサなど)によって集められた情報、外部ソースから提供される情報(例えば、モバイルコンピューティングデバイス39_100上で実行されるアプリケーション、OSカーネルなど)から集めることができる。
図39-2にも示すように、マネジャー39_104は、様々なロガー39_105、様々な予測カテゴリ39_106、様々な予測エンジン39_108、及び様々なフィルタ39_110を管理するように構成することができる。上述のように、これらのエンティティは多種多様な構造的なアプローチを用いて実装することができる。例えば、エンティティは予測センター39_102外にあって、APIコマンドを介してマネジャー39_104と通信することができる独立した実行可能ファイルであってもよく、エンティティはモバイルコンピューティングデバイス39_100のファイルシステム内に記憶され、マネジャー39_104によって解釈可能である/実装されるバンドルなどであってもよい。図39-2にも示すように、マネジャー39_104は、複数の予測39_114を(例えば、異なる予測エンジン39_108によって作成された時に)統合するように構成されるアグリゲータ39_220を実装することができる。また、図39-2に示すように、マネジャー39_104は、予測センター39_102と相互作用する消費者向けアプリケーション39_112の記録を維持するように構成することができる。本セクションにてより詳細に説明するように、これらの記録は、予測エンジン39_108を、登録して予測エンジン39_108から予測を非同期的に受信する消費者向けアプリケーション39_112と関連付けるように機能することができる。
それに加えて、及び図39-2に示すように、予測センター39_102は、モバイルコンピューティングデバイス39_100における処理及びエネルギー消費効率の向上を試みるために、予測センター39_102/予測エンジン39_108が生成された予測39_114をキャッシュすることを可能にするキャッシュ39_206を実装するように構成することができる。図39-2に示すように、キャッシュ39_206はエントリ39_208を含むことができ、エントリ39_208のそれぞれは、予測39_114に加えて、予測39_114がいつまで有効であるかを示す有効期限情報39_210を含む。有効期限情報39_210は、例えば、時間に基づく有効期限、イベントに基づく有効期限などを含むことができる。このようにして、予測エンジン39_108が頻繁に、特定の予測カテゴリ39_106についての予測39_114の要求を受信するときに、予測エンジン39_108は、モバイルコンピューティングデバイス39_100にてそうでなければ発生するであろう処理量を実質的に減少させるために、予測39_114を生成してキャッシュすることができ、このことによって性能が向上する。
図39-3Aは、一部の実施形態による予測エンジン39_108の高レベルの初期化及び動作についての方法39_300を示す。図39-3Aに示すように、方法39_300はステップ39_302から始まり、予測エンジン39_108が1つ以上の学習モデル39_202をローディングする。任意選択的なステップ39_304では、予測エンジン39_108は、1つ以上の学習モデル39_202と関連付けられる、以前に確立された状態39_204をローディングする。一部の実施形態によれば、以前に確立された状態39_204は、予測エンジン39_108が利用可能である任意の記憶リソース、例えば、ローカル不揮発性メモリ、クラウドストレージなどから取り出すことができる。ステップ39_306では、予測エンジン39_108は、予測センター39_102に、少なくとも1つの予測カテゴリ39_106に対するエキスパートとして機能する(及びその予測カテゴリに関する予測39_114を提供する)要求を発行する。ステップ39_308では、予測エンジン39_108は、少なくとも1つの予測カテゴリ39_106について予測39_114を同期して提供する、又は予測39_114を非同期的に提供することの要求を受信する。ステップ39_310では、予測エンジン39_108は、1つ以上の学習モデル39_202に従って、予測を非同期に及び/又は同期して提供し、それぞれの予測39_114は信頼水準情報を含む。ステップ39_312では、予測エンジン39_108は、提供された予測39_114に関連付けられる正確性水準を示すフィードバック情報を受信する。かかるフィードバック情報39_116を用いて、学習モデル39_202を「トレーニング」し、それらの予測39_114の全体的な正確性を向上させることができる。例えば、予測エンジン39_108がモバイルコンピューティングデバイス39_100のユーザが特定のアクションを取るという予測39_114を生成し、消費者向けアプリケーション39_112が予測39_114を真であった(すなわち、特定のアクションがユーザによって取られた)ことを示すフィードバックを提供したときに、予測エンジン39_108は、同様の後続の予測39_114が予測エンジン39_108によって作成されるときに、公言される信頼水準を上げることができる。ステップ39_314では、予測エンジン39_108は、フィードバック情報に従って1つ以上の学習モデル39_202を更新する。
図39-3Bは、一部の実施形態による、予測エンジン39_108にて同期して予測39_114を提供する、方法39_330を示す。図39-3Bに示すように、方法39_330はステップ39_332から始まり、予測エンジン39_108が、特定の予測カテゴリ39_106についての予測39_114を同期して提供することの要求を受信する。一部の実施形態によれば、要求は、特定の予測カテゴリ39_106について予測39_114を要求している消費者向けアプリケーション39_112の代理として、予測センター39_102によって生成されてもよい。あるいは、要求は消費者向けアプリケーション39_112によって生成されて予測エンジン39_108に直接提供されてもよい。このようにして、予測センター39_102が予測エンジン39_108と消費者向けアプリケーション39_112との間のメディエータとして機能することに関して、予測センター39_102の全体的な関与を減少させるか排除さえもすることができる。ステップ39_334では、予測エンジン39_108は、特定の予測カテゴリ39_106に関連付けられる少なくとも1つの学習モデル39_202を識別する。ステップ39_336では、予測エンジン39_108は、少なくとも1つの学習モデル39_202に従って、特定の予測カテゴリ39_106についての予測39_114を生成する。ステップ39_338では、予測エンジン39_108は予測39_114を信頼水準情報に関連付ける。ステップ39_340では、予測エンジン39_108は予測39_114を提供する。より具体的には、及び構成によっては(例えば、ステップ39_332に関連して上述したように)、予測エンジン39_108は予測39_114を、予測センター39_102に、又は直接消費者向けアプリケーション39_112に、提供することができる。これを受けて、他の予測エンジン39_108が同様の予測39_114を提供したときに、予測39_114は(あれば)他の予測39_114と共に(例えば、予測39_114が予測センター39_102に提供されたときにアグリゲータ39_220によって)集約される。
図39-3Cは、一部の実施形態による、予測エンジン39_108にて非同期的に予測39_114を提供する方法39_350を示す。図39-3Cに示すように、方法39_350はステップ39_352から始まり、予測エンジン39_108が、特定の予測カテゴリ39_106についての予測39_114を非同期的に提供することの要求を受信する。ステップ39_354では、予測エンジン39_108は、特定の予測カテゴリ39_106に関連付けられた少なくとも1つの学習モデル39_202を識別する。ステップ39_356では、予測エンジン39_108は、特定の予測カテゴリ39_106及び/又は少なくとも1つの学習モデル39_202に関連付けられた少なくとも1つのトリガーを識別する。ステップ39_358では、予測エンジン39_108は、トリガーがアクティブ化/発生したかどうかを判定する。もし、ステップ39_358にて、予測エンジン39_108が、トリガーがアクティブ化されたと判定した場合には、方法39_350はステップ39_360に進む。そうでない場合は、方法39_350は、トリガーがアクティブ化/発生するまで、ステップ39_358を繰り返す。ステップ39_360では、予測エンジン39_108は、少なくとも1つの学習モデル39_202に従って、特定の予測カテゴリ39_106についての予測39_114を生成する。ステップ39_362では、予測エンジン39_108は予測39_114を信頼水準情報に関連付ける。ステップ39_364では、予測エンジン39_108は予測39_114を(例えば、集約のために予測センター39_102に)提供する。
図39-4Aは、一部の実施形態による、消費者向けアプリケーション39_112が予測39_114を同期して受信することを要求する、方法39_400を示す。図39-4Aに示すように、方法39_400はステップ39_402から始まり、消費者向けアプリケーション39_112が、特定の予測カテゴリ39_106についての予測39_114の要求を発行する。一部の実施形態によれば、消費者向けアプリケーション39_112は、要求を予測センター39_102に発行するように構成され得て、それを受けて、予測センター39_102は、特定の予測カテゴリ39_106に対するエキスパートとして登録されている予測エンジン39_108と接続する。あるいは、消費者向けアプリケーション39_112は、例えば、予測エンジン39_108が、モバイルコンピューティングデバイス39_100内における特定の予測カテゴリ39_106に対する唯一のエキスパートであるときに、予測エンジン39_108に直接要求を発行するように構成され得る。ステップ39_404では、消費者向けアプリケーション39_112は、ステップ39_402で発行された要求に伴って、特定の予測カテゴリ39_106についての予測39_114を同期して受信する。ステップ39_406では、消費者向けアプリケーション39_112はモバイルコンピューティングデバイス39_100での行動(例えば、ユーザの行動)を観察して、予測39_114が正確かどうかを判定する。ステップ39_408では、消費者向けアプリケーション39_112は、予測39_114と関連付けられた正確性水準を示すフィードバック情報39_116を提供する。
図39-4Bは、一部の実施形態による、消費者向けアプリケーション39_112が予測39_114を非同期的に受信するように登録するための方法39_450を示す。図39-4Bに示すように、方法39_450はステップ39_452から始まり、消費者向けアプリケーション39_112が、特定の予測カテゴリ39_106についての予測39_114を非同期的に受信することの要求を発行する。ステップ39_454では、消費者向けアプリケーション39_112は、特定の予測カテゴリ39_106についての予測39_114を非同期的に受信する。ステップ39_456では、消費者向けアプリケーション39_112はモバイルコンピューティングデバイス39_100での行動(例えば、ユーザの行動)を観察して、予測39_114が正確かどうかを判定する。ステップ39_458では、消費者向けアプリケーション39_112は、予測39_114と関連付けられた正確性水準を示すフィードバック情報39_116を提供する。
図39-5Aは、一部の実施形態による、予測センター39_102にて予測エンジン39_108の登録を管理するための方法39_500を示す。示すように、方法39_500はステップ39_500から始まり、予測センター39_102のマネジャー39_104が、予測エンジン39_108から、予測エンジン39_108として機能して少なくとも1つの予測カテゴリ39_106についての予測39_114を提供することの要求を受信する。ステップ39_504では、マネジャー39_104は、予測エンジン39_108を、少なくとも1つの予測カテゴリ39_106についての予測39_114を提供するように割り当てられている予測エンジン39_108のリストに加える。任意選択的なステップ39_506では、マネジャー39_104は、予測エンジン39_108と関連付けられた過去の性能指標に従って、予測エンジン39_108に重みを割り当てる。任意選択的なステップ39_508では、マネジャー39_104は、予測エンジン39_108及び/又は少なくとも1つの予測カテゴリ39_106に関連付けられたフィルタ39_110が存在する場合は、それを初期化する。ステップ39_510では、マネジャー39_104は予測センター39_102の構成を更新して、消費者向けアプリケーション39_112が、少なくとも1つの予測カテゴリ39_106に関連付けられた予測39_114を同期して及び/又は非同期的に受信することの要求を発行できるようにする。
図39-5Bは、一部の実施形態による、予測センター39_102にて消費者向けアプリケーション39_112に同期して予測39_114を提供する方法39_550を示す。図39-5Bに示すように、方法39_550はステップ39_552から始まり、マネジャー39_104が、特定の予測カテゴリ39_106についての予測39_114を同期して提供することの要求を、消費者向けアプリケーション39_112から受信する。一例示的なシナリオでは、モバイルコンピューティングデバイス39_100にてアクティブ化されるメッセージングアプリケーションが関与し、メッセージングアプリケーションを操作するユーザによって宛て先にされる可能性の最も高い3つの連絡先について、予測39_114の要求を発行することを含むことができる。ステップ39_554では、マネジャー39_104は、特定の予測カテゴリ39_106に関連付けられた予測エンジン39_108のリストを識別する。上記の例示的なシナリオで続けると、2つの異なる予測エンジン39_108が、「人」予測カテゴリ39_106に対して自身をエキスパートとして登録したと更に考える。ステップ39_556では、マネジャー39_104は、予測39_114について、予測エンジン39_108のリストに含まれる予測エンジン39_108それぞれに問い合わせる。
ステップ39_558では、マネジャー39_104は、予測エンジン39_108のリストに含まれるそれぞれの予測エンジン39_108から、信頼水準情報に関連付けられた対応する予測39_114を受信する。上記の例示的なシナリオで続けると、2つの予測エンジン39_108が、ユーザが連絡する可能性の高い3つの連絡先の別々のリストをそれぞれ含む、予測39_114を提供すると更に考える。例えば、第1のリストは「Greg:0.7」、「Amy:0.5」、及び「Mom:0.3」(なお、名前(例えば、「Greg」)は連絡される予測された個人を表し、名前に続く数字(例えば、0.7)は予測された個人が連絡される対応する信頼水準を表す)と読めるエントリを含むことができ、第2のリストは「Mom:0.7」、「Greg:0.4」、及び「Julie:0.2」と読めるエントリを含むことができる。ステップ39_560では、マネジャー39_104は、予測39_114に関連付けられた信頼水準情報を、対応する予測エンジン39_108に割り当てられた重み(あれば)に従って更新する。例えば、第1のリストを作成する予測エンジン39_108が、マネジャー39_104によって(例えば、フィードバック情報39_116を介して)常に性能が悪いと観察されていることに従って0.75の割り当てられた重みづけを有する場合、第1のリストにおけるそれぞれのエントリの信頼水準情報は0.75だけ低下させられる。ステップ39_562では、マネジャー39_104は、関連付けられた信頼水準情報に従って、予測39_114を(例えば、アグリゲータ39_220を用いて)集約する。上記の例で続けると、及び、ステップ39_560では重みづけがなされないと仮定して、ステップ39_562は、マネジャー39_104が以下の更新されたリスト:「Greg:1.1」(すなわち、0.7+0.4=1.1)、「Mom:1.0」(すなわち、0.3+0.7=1.0)、「Amy:0.5」、及び「Julie:0.2」を確立することを含む(なお、「Julie:0.2」のエントリは、メッセージングアプリケーションが3つの連絡先のみについて予測を受信したいと望むために外されている)。ステップ39_564では、マネジャー39_104は、消費者向けアプリケーション39_112に、「Greg:1.1」、「Mom:1.0」、及び「Amy:0.5」を含む、集約された予測39_114に従って予測39_114を提供する。
図39-5Cは、一部の実施形態による、予測センター39_102にて消費者向けアプリケーション39_112に非同期的に予測39_114を提供するための方法39_570を示す。示すように、方法39_570はステップ39_572から始まり、マネジャー39_104が、消費者向けアプリケーション39_112から、特定の予測カテゴリ39_106についての予測39_114を非同期的に提供することの要求を受信する。ステップ39_574では、マネジャー39_104は、特定の予測カテゴリ39_106に関連付けられた予測エンジン39_108のリストを識別する。ステップ39_576では、マネジャー39_104は、予測エンジン39_108のリストに含まれるそれぞれの予測エンジン39_108に、特定の予測カテゴリ39_106に関連付けられた予測39_114を非同期的に提供するように通知する。ステップ39_578では、マネジャー39_104は、予測エンジン39_108のリストに含まれるそれぞれの予測エンジン39_108から、信頼水準情報に関連付けられた対応する予測39_114を受信する。ステップ39_580では、マネジャー39_104は、予測39_114に関連付けられた信頼水準情報を、対応する予測エンジン39_108に割り当てられた重み(あれば)に従って更新する。ステップ39_582では、マネジャー39_104は、関連付けられた信頼水準情報に従って、予測39_114を集約する。ステップ39_584では、マネジャー39_104は、消費者向けアプリケーションに39_112に、集約された予測39_114に従った予測39_114を提供する。
エキスパートセンターについての例示的な方法及びデバイス
実施形態は、モバイルコンピューティングデバイス内での様々な種類の予測を提供するように構成可能な様々な「予測エンジン」を実装するための方法を記載する。一部の実施形態では、予測エンジンはそれぞれ、モバイルコンピューティングデバイス内で1つ以上の「予測カテゴリ」についての「エキスパート」として自身を割り当てることができる。消費者向けアプリケーションが特定のカテゴリについての予測要求を発行し、2つ以上の予測エンジンがそれぞれの予測で応答したとき、「予測センター」が、要求に応答する前に予測を受信して処理するように構成され得る。予測を処理することは、予測にわたって存在する重複する情報を除去すること、予測エンジンによって公言される信頼水準に従って予測を仕分けすることなどを含み得る。このようにして、予測センターは複数の予測から最適化された予測を精製して、最適化された予測を消費者向けアプリケーションに提供することができる。
一部の実施形態では、モバイルコンピューティングデバイス上で実行しているアプリケーションに予測を同期して提供する方法を提供しており、その方法は、モバイルコンピューティングデバイス上で実行中の予測センターにおいて、アプリケーションから、予測カテゴリについての予測を同期して提供することの要求を受信することと、予測カテゴリに関連付けられた1つ以上の予測エンジンを識別することと、要求に従って、1つ以上の予測エンジンによって作成された1つ以上の予測を受信することと、1つ以上の予測を集約して、アプリケーションによって要求された予測を作成することと、アプリケーションに予測を提供することと、を含む。一部の実施形態では、1つ以上の予測を集約することは、1つ以上の予測から重複する予測を取り除くことと、1つ以上の予測を、予測センターによって実装される1つ以上のフィルタに従ってフィルタリングすることと、1つ以上の予測のそれぞれの予測について、予測を作成する予測エンジンに割り当てられる重みに従って、予測に関連付けられた信頼水準を調整することであって、予測に関連付けられた信頼水準は予測を作成する時に予測エンジンが生成する、ことと、1つ以上の予測のそれぞれの予測を、予測に関連付けられた信頼水準に従って仕分けることと、から選択される1つ以上の動作を行うことを含む。一部の実施形態では、方法は、予測の要求を受信する前に、1つ以上の予測エンジンのそれぞれの予測エンジンについて、予測エンジンから、予測エンジンが予測カテゴリのエキスパートとして機能することの要求を受信することと、予測エンジンを予測カテゴリと関連付けることと、を含む。一部の実施形態では、方法は、アプリケーションによって要求された予測を作成することに続いて、予測に関連付けられた有効性パラメータを確立することと、有効性パラメータを予測に関連付けることと、予測と有効性パラメータとをキャッシュに記憶することと、を含む。一部の実施形態では、有効性パラメータは時間に基づく有効期限又はトリガーに基づく有効期限のうちの1つ以上を定義する。一部の実施形態では、方法は、キャッシュに予測及び有効性パラメータを記憶することに続いて、第2のアプリケーションから、予測カテゴリについての予測を同期して提供することの第2の要求を受信することと、予測をキャッシュ内に配置することと、予測に関連付けられた有効性パラメータが、予測が有効であると示すときに、第2のアプリケーションに予測を提供することと、を含む。一部の実施形態では、予測カテゴリは、予測センターによって管理される複数の予測カテゴリに含められており、複数の予測カテゴリのうちの予測カテゴリはそれぞれ、モバイルコンピューティングデバイス上で実行しているアプリケーションのアクティブ化と非アクティブ化、モバイルコンピューティングデバイスが知っている連絡先、モバイルコンピューティングデバイスが利用できる全地球測位システム(GPS)情報、モバイルコンピューティングデバイスによって処理される通知、又はモバイルコンピューティングデバイスに対して行われた物理入力、に関連付けられる。一部の実施形態では、方法は、アプリケーションに予測を提供したことに続いて、アプリケーションから、予測の正確性を示すフィードバック情報を受信することと、1つ以上の予測エンジンにフィードバック情報を提供することと、を含み、フィードバック情報は、1つ以上の予測エンジンによって作成される後続の予測の正確性を向上させるために、1つ以上の予測エンジンによって利用することができる。
一部の実施形態では、モバイルコンピューティングデバイス上で実行しているアプリケーションに予測を非同期的に提供する方法を提供しており、方法は、モバイルコンピューティングデバイス上で実行中の予測センターにおいて、アプリケーションから、予測カテゴリについての予測を非同期的に提供することの要求を受信することと、予測カテゴリに関連付けられる1つ以上の予測エンジンを識別することと、1つ以上の予測エンジンのそれぞれの予測エンジンに、要求に従って1つ以上の予測を非同期的に提供するように通知することと、を含む。一部の実施形態では、方法は、1つ以上の予測エンジンのそれぞれの予測エンジンに通知したことに続いて、1つ以上の予測を受信することと、1つ以上の予測を集約して、アプリケーションによって要求された予測を作成することと、アプリケーションに予測を提供することと、を含む。一部の実施形態では、方法は、アプリケーションによって要求された予測を作成することに続いて、予測に関連付けられた有効性パラメータを確立することと、有効性パラメータを予測に関連付けることと、予測と有効性パラメータとをキャッシュに記憶することと、を含む。一部の実施形態では、有効パラメータは1つ以上の予測エンジンによって提供され、時間に基づく有効期限又はトリガーに基づく有効期限のうちの1つ以上を定義する。一部の実施形態では、1つ以上の予測を集約することは、1つ以上の予測から重複する予測を取り除くことと、1つ以上の予測を、予測センターによって実装される1つ以上のフィルタに従ってフィルタリングすることと、1つ以上の予測のそれぞれの予測について、予測を作成する予測エンジンに割り当てられる重みに従って、予測に関連付けられた信頼水準を調整することであって、予測に関連付けられた信頼水準は予測を作成する時に予測エンジンが生成する、ことと、1つ以上の予測のそれぞれの予測を、予測に関連付けられた信頼水準に従って仕分けることと、から選択される1つ以上の動作を行うことを含む。一部の実施形態では、1つ以上の予測エンジンは1つ以上の予測を、モバイルコンピューティングデバイス上で発生するトリガーに基づくイベントに応じて、予測センターに非同期的に提供する。一部の実施形態では、方法は、予測の要求を受信する前に、1つ以上の予測エンジンのそれぞれの予測エンジンについて、予測エンジンから、予測エンジンが予測カテゴリのエキスパートとして機能することの要求を受信することと、予測エンジンを予測カテゴリと関連付けることと、を含む。一部の実施形態では、予測カテゴリは、予測センターによって管理される複数の予測カテゴリに含められており、複数の予測カテゴリのうちの予測カテゴリはそれぞれ、モバイルコンピューティングデバイス上で実行しているアプリケーションのアクティブ化と非アクティブ化、モバイルコンピューティングデバイスが知っている連絡先、モバイルコンピューティングデバイスが利用できる全地球測位システム(GPS)情報、モバイルコンピューティングデバイスによって処理される通知、又はモバイルコンピューティングデバイスに対して行われた物理入力、に関連付けられる。
一部の実施形態では、ユーザの行動に従って予測を生成するように構成されるモバイルコンピューティングデバイスが提供され、モバイルコンピューティングデバイスは、1つ以上の予測エンジンと1つ以上のアプリケーションとの間のメディエータとして機能するように構成される予測センターであって、複数の予測カテゴリを管理する予測センターと、それぞれが、予測センターによって管理される複数の予測カテゴリのうちの少なくとも1つの予測カテゴリに対するエキスパートとして機能する、1つ以上の予測エンジンと、1つ以上のアプリケーションであって、それぞれが、予測センターに、複数の予測カテゴリのうちの特定の予測カテゴリについての予測要求を発行するステップと、要求に従って、特定の予測カテゴリに対するエキスパートとして機能する予測エンジンによって生成された少なくとも2つの予測の集約である予測を、予測センターから受信するステップと、を含むステップを実行するように構成される、1つ以上のアプリケーションと、を実行するように構成される、プロセッサを備える。一部の実施形態では、1つ以上の予測を集約することは、少なくとも2つの予測から重複する予測を取り除くことと、予測センターによって実装される1つ以上のフィルタに従って、少なくとも2つの予測をフィルタリングすることと、少なくとも2つの予測のそれぞれの予測について、予測を作成する予測エンジンに割り当てられる重みに従って、予測に関連付けられる信頼水準を調整することであって、予測に関連付けられた信頼水準は予測を作成する時に予測エンジンが生成する、ことと、少なくとも2つの予測のそれぞれの予測を予測に関連付けられた信頼水準に従って仕分けることと、から選択される1つ以上の動作を行うことを含む。一部の実施形態、予測センターは、アプリケーションに予測を提供したことに続いて、アプリケーションから、予測の正確性を示すフィードバック情報を受信するステップと、少なくとも2つの予測を生成した予測エンジンにフィードバック情報を提供するステップと、を含むステップを行うように構成され、フィードバック情報は、予測エンジンによって作成される後続の予測の正確性を向上させるために予測エンジンよって利用することができる。一部の実施形態では、複数の予測カテゴリのうちのそれぞれの予測カテゴリは、モバイルコンピューティングデバイス上で実行しているアプリケーションのアクティブ化と非アクティブ化、モバイルコンピューティングデバイスが知っている連絡先、モバイルコンピューティングデバイスが利用できる全地球測位システム(GPS)情報、モバイルコンピューティングデバイスによって処理される通知、又はモバイルコンピューティングデバイスに対して行われた物理入力、に関連付けられる。
セクション10:コンテキスト監視、コンテキスト通知、コンテキスト予測、及び効率的なコンテキスト監視
本セクション「コンテキスト監視、コンテキスト通知、コンテキスト予測、及び効率的なコンテキスト監視」の内容は、一部の実施形態によるデバイスコンテキスト監視、コンテキスト通知、コンテキスト予測、及び効率的なコンテキスト監視を説明し、本明細書に提供される開示を補足する情報を提供する。例えば、本セクションの一部は、コンピューティングデバイスの動作コンテキストを監視することを説明し、本明細書に提供される開示、例えば、使用データの収集/記憶に関するもの(図3A~3B)、トリガー条件の作成/記憶(図4A~4B)、並びに使用データ及びトリガー条件に基づくユーザに対しての該当するコンテンツの表面化(例えば、方法600及び800)などを補足する。一部の実施形態では、本セクションで取り上げるコンテキスト監視/予測の詳細は、本明細書に記載するいずれかの方法についての検索結果及び他の提案されるコンテンツの提示を改善するためにデータを提供するために用いられるコンテキスト情報を提供するのに用いられる(例えば、方法600、800、1000、1200、2200、2280、2900、又は追加のコンテキスト情報を用いることで利益を得ることができる本明細書に記載の任意の他の方法を補足するために)。
コンテキスト監視/予測の概要
コンピューティングデバイスの現在のコンテキストを監視するための、システム、方法、及び非一時的コンピュータ可読記憶媒体を開示する。いくつかの実装では、コンテキストデーモンは、コンピューティングデバイスについてのコンテキスト情報を集めることができる。コンテキスト情報は、現在のデバイスハードウェア状態情報を含むことができる。コンテキスト情報は、現在のソフトウェア状態情報を含むことができる。コンテキストは、ハードウェア状態情報、ソフトウェア状態情報、又は任意の他の種類の状態情報の組み合わせから導出される、又はそこから暗示されることができる。例えば、導出されたコンテキストは、ハードウェア又はソフトウェアの状態情報から導出される、又はそこから暗示されるユーザ状態(例えば、ユーザアクティビティ、睡眠中、ランニング中など)であり得る。
一部の実装では、コンテキスト情報はコンテキストモニタによってコンテキストデーモンに報告され得る。コンテキストモニタは、コンテキストデーモンによって監視されるコンテキスト情報を収集するために具体的に作られ得る。コンテキストモニタは、他の目的、使用のために作成されたアプリケーション、ユーティリティ、ツールなどであり得て、又はハードウェア若しくはソフトウェア状態情報を生成して、状態情報をコンテキストデーモンに報告する。コンテキスト情報が収集されると、コンテキストデーモンはコンピューティングデバイスの現在のコンテキストを中央の位置に記憶させて、コンテキストクライアント(例えば、ソフトウェア、アプリケーション、ユーティリティ、オペレーティングシステムなど)が現在のコンテキスト情報を単一のソースから取得できるようにする。一部の実装では、コンテキストデーモンは過去コンテキスト情報を生成及び/又は収集することができる。過去コンテキスト情報は、古い又は過去のコンテキスト情報を含み得る。過去コンテキスト情報は、コンテキスト情報から導出され得る。よって、コンテキストデーモンは、コンテキストクライアント(例えば、プロセス)がコンピューティングデバイスの現在のコンテキストを判定するのに用いることができるコンテキスト情報の中央リポジトリを提供することができる。
コンピューティングデバイスの現在のコンテキストへの変更をコンテキストクライアントに通知するための、システム、方法、及び非一時的コンピュータ可読記憶媒体を開示する。一部の実装では、コンテキストクライアントは、コンテキストデーモンが特定のコンテキストを検出した時にコールバックされるように登録することができる。例えば、コンテキストクライアントは、コンテキストクライアントが対象とするコンテキストを指定することができる。コンテキストデーモンが、コンピューティングデバイスの現在のコンテキストが登録されたコンテキストに対応すると検出したときに、コンテキストデーモンはコンテキストクライアントに、現在のコンテキストが、コンテキストクライアントが対象とするコンテキストと一致することを通知することができる。よって、コンテキストクライアントはコンテキストの更新を独立して取得してコンテキストクライアントに関係する又はコンテキストクライアントが対象とするコンテキストにおける変更を検出するのに必要なプログラミングを必要としない。
コンピューティングデバイスの動作コンテキストを効率的に監視するための、システム、方法、及び非一時的コンピュータ可読記憶媒体を開示する。一部の実装では、コンテキストデーモン及び/又はコンテキストクライアントは、システムリソースを節約するために終了されていてもよい。例えば、コンテキストデーモン及び/又はコンテキストクライアントがアイドル状態にある場合、バッテリ電源を節約する、又は他のシステムリソース(例えば、メモリ)を空けるために、コンテキストデーモン及び/又はコンテキストクライアントをシャットダウンしてもよい。コンテキストデーモン及び/又はコンテキストクライアントが稼働している必要のあるイベント(例えば、現在のコンテキストにおける変更)が生じたときに、コンテキストデーモン及び/又はコンテキストクライアントをイベントに対応するために再起動され得る。よって、関連するコンテキスト情報の収集及びコールバック通知機能を提供しながらも、システムリソースを節約することができる。
コンピューティングデバイスの今後のコンテキストを予測するための、システム、方法、及び非一時的コンピュータ可読記憶媒体を開示する。一部の実装では、コンテキストデーモンは、過去コンテキスト情報を用いて、今後のイベント及び/又はコンテキスト変更を予測することができる。例えば、コンテキストデーモンは、過去コンテキスト情報を分析して、ユーザの睡眠パターン、ユーザの運動パターン、及び/又は他のユーザアクティビティを予測することができる。一部の実装では、コンテキストクライアントは、予測された今後のコンテキストためのコールバックを登録することができる。例えば、コンテキストクライアントは、予測されるイベント及び/又はコンテキスト変更の10分前に通知されるように、要求することができる。コンテキストデーモンは予測を用いて、予測されるイベントの前にコンテキストクライアントに通知することができる。
コンテキスト監視/予測の詳細な説明
現在のコンテキストを判定する
図40-1は、コンピューティングデバイスの動作コンテキストにおける変更を監視し、予測し、コンテキストクライアントに通知するための、例示的なシステム40_100である。コンピューティングデバイスは、例えば、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、又は任意の他の種類のコンピューティングデバイスであり得る。システム40_100は、例えば、コンピューティングデバイス上で稼働するように構成することができる。一部の実装では、システム40_100はコンテキストデーモン40_102を含むことができる。例えば、コンテキストデーモン40_102は、コンピューティングデバイス上で実行されるバックグラウンド処理であり得る。コンテキストデーモン40_102は、例えば、コンピューティングデバイスのオペレーティングシステムに含まれるプロセスであり得る。
一部の実装では、コンテキストデーモン40_102は、コンピューティングデバイスの現在の動作コンテキストについての情報を収集するように構成することができる。例えば、コンテキスト情報は、コンピューティングデバイスの内部及び/又は外部コンテキストを説明する情報を含むことができる。一部の実装では、内部コンテキスト情報はハードウェア状態情報を含むことができる。例えば、ハードウェア状態情報は、使用中のハードウェア識別し、そのハードウェアがどのように使用されているかを識別することができる。ハードウェアが別のデバイスと通信するのに用いられている無線トランシーバである場合、ハードウェア状態情報は、他のデバイス、いつ接続が生成されたか、どれだけのデータが送信されているか、などを識別することができる。一部の実装では、内部コンテキスト情報はソフトウェア状態情報を含むことができる。例えば、カレンダーアプリケーションについての状態情報は、カレンダーイベント、ミーティング、ミーティングに出席する連絡先の名前、ミーティングの開始及び終了時刻などを含むことができる。
一部の実装では、外部コンテキスト情報はユーザアクティビティを含むことができる。例えば、外部コンテキスト情報は、ハードウェア状態情報及び/又はソフトウェア状態情報から導出され得る。例えば、コンテキストデーモン40_102は、以下に更に説明するように、ユーザの行動(例えば、睡眠パターン、勤務パターン、食事パターン、移動パターン等)をハードウェア及び/又はソフトウェア状態情報から得ることができる。
一部の実装では、コンテキストデーモン40_102は、様々な種類のコンテキスト情報を収集するためのモニタバンドル40_104を含むことができる。モニタバンドル40_104内のそれぞれのモニタバンドル40_106は、対応するコンテキストアイテムについてのコンテキスト情報を収集するように構成され得る。例えば、モニタバンドル40_106は、コンテキストデーモン40_102に対して外部のプロセスであり得る。モニタバンドル40_106は、コンテキストデーモン40_102内で実行することができる、動的にローディングされたソフトウェアパッケージであり得る。
一部の実装では、モニタバンドル40_106はコンテキストモニタ40_108を含むことができる。例えば、コンテキストモニタ40_108は、コンピューティングデバイスの現在のコンテキストについての情報を収集するように構成することができる。一部の実装では、モニタバンドル40_106は過去モニタ40_110を備えることができる。例えば、過去モニタ40_110は、以下に更に説明するように、コンピューティングデバイスについての過去コンテキストを収集又は判定するように構成され得る。
一部の実装では、モニタバンドル40_104内のそれぞれのモニタバンドル40_106は、特定の種類のコンテキスト情報を収集するように構成することができる。例えば、コンテキストデーモン40_102は、多くの異なるモニタバンドル40_106をローディングすることができる。モニタバンドル40_106はそれぞれ、コンピューティングデバイス内の異なるソース40_130から異なるコンテキスト情報を収集するように構成することができる。例えば、1つのモニタパンドル40_106はBluetoothコンテキストアイテムについてのコンテキスト情報を収集することができる一方で、別のモニタバンドル40_106はロック状態コンテキストアイテムについてのコンテキスト情報を収集することができる。
一部の実装では、モニタバンドル40_106は、位置API40_132から位置コンテキスト情報を収集するように構成することができる。例えば、コンテキストモニタ40_108は、位置API40_132から、GNSS受信機から受信された現在のグローバル衛生航法システム(global navigational satellite system;GNSS)位置データを受信することができる。モニタバンドル40_106は、位置API40_132から、現在のセルラ及び/又はWiFiから導き出された位置データを受信することができる。
一部の実装では、モニタバンドル40_106は、ロック状態API40_134からロック状態コンテキスト情報を収集するように構成することができる。例えば、コンテキストモニタ40_108は、コンピューティングデバイスの現在のロック状態(例えば、ロックされている、ロック解除されているなど)を記載するロック状態コンテキスト情報を収集することができる。例えば、コンピューティングデバイスのユーザは、使用するコンピューティングデバイスをロック解除する、又はコンピューティングデバイスと相互作用する必要がある。デバイスがロックされているときは、デバイスはユーザ入力を受け入れない。デバイスがロック解除されているときは、デバイスはユーザ入力を受け入れる。タッチスクリーンディスプレイのあるハンドヘルドデバイスについては、デバイスがロック解除されているときは、ディスプレイは照明されてユーザからのタッチ入力を受け入れることができる。タッチスクリーンデバイスがロックされているときは、ディスプレイは暗い場合があり、タッチスクリーンディスプレイはタッチ入力を受け入れない。よって、コンピューティングデバイスのロック状態は、ユーザがコンピューティングデバイスと相互作用していたという証拠を提供することができる。
一部の実装では、モニタバンドル40_106は、アプリケーションマネジャーAPI40_136からアプリケーションコンテキスト情報を収集するように構成することができる。例えば、コンテキストモニタ40_108はアプリケーションマネジャーAPI40_136から、どのアプリケーションが現在コンピューティングデバイス上で稼働しているのか、どれだけ長くアプリケーションが稼働しているのか、いつアプリケーションが呼び出されたのか、及び/又はどのアプリケーションが現在のフォーカスアプリケーションなのか(例えば、前面にある、ディスプレイ上に見えている)を記述する情報を受信することができる。
一部の実装では、モニタバンドル40_106は、Bluetooth API40_138から、Bluetoothコンテキスト情報を収集するように構成することができる。例えば、コンテキストモニタ40_108はBluetooth API40_138から、コンピューティングデバイスに接続されているBluetoothデバイスの識別情報及び種類、いつ接続が確立されたか、及びどれだけ長く(例えば、持続時間)コンピューティングデバイスがBluetoothデバイスに接続されているかを含む、アクティブなBluetooth接続を記述する情報を受信することができる。
一部の実装では、モニタバンドル40_106は、ヘッドホンAPI40_140から、ヘッドホンジャック情報を収集するように構成することができる。例えば、コンテキストモニタ40_108はヘッドホンAPI40_140から、有線のヘッドホン若しくはヘッドセット(又は他のデバイス)がコンピューティングデバイスのヘッドホンジャックに現在接続されているかを記述する情報を受信することができる。一部の実施形態では、モニタバンドル40_106は、ヘッドホンAPI40_140から、ヘッドホンジャックに接続されるデバイスの種類についての情報を受信することができる。
一部の実装では、モニタバンドル40_106は、他デバイス状態API40_142から他のコンテキスト情報を収集するように構成することができる。例えば、コンテキストモニタ40_108は、他デバイス状態API40_142から、WiFi接続、電話接続、アプリケーション使用、カレンダーイベント、写真、媒体使用情報、バッテリ充電状態、並びに/又はコンピューティングデバイスの現在の内部及び/若しくは外部コンテキストを記述又は推測するために用いることができる任意の他の状態情報を記述する情報を受信することができる。
一部の実装では、モニタバンドル40_106は、必要に応じてコンテキストデーモン40_102に動的にローディングされ得る。例えば、コンテキストデーモン40_102が位置コンテキスト情報を必要とするとき(例えば、クライアントが位置情報を要求してきたとき)は、コンテキストデーモン40_102はモニタバンドル40_104に位置特有モニタバンドル40_106をローディングさせることができる。ローディングされると、モニタバンドル40_106のコンテキストモニタ40_108は、現在の位置特有コンテキストを収集し始める。モニタバンドル40_106を必要に応じてローディングすることで、コンテキストデーモン40_102は、メモリやバッテリ電源などの、コンピューティングデバイスのシステムリソースを節約することができる。一部の実装では、モニタバンドル40_106は、報告クライアント40_124などの外部プロセスであり得る。コンテキストデーモン40_102は外部プロセスのモニタバンドル40_106を必要に応じて呼び出して、コンテキスト情報を収集することができる。例えば、コンテキストデーモン40_102は、以下に説明するように、コールバック要求を受信したことに応じて、モニタバンドル40_106をローディングする又は呼び出すことができる。
一部の実装では、コンテキストデーモン40_102は、報告クライアント40_124からコンテキスト情報を受信することができる。例えば、報告クライアント40_124(コンテキストクライアント)は、コンテキスト情報を生成又は収集してコンテキスト情報をコンテキストデーモン40_102に報告する、コンピューティングデバイス上で稼働している任意のソフトウェアであり得る。例えば、コンピューティングデバイス上で稼働しているマップアプリケーションは、位置API40_132を用いて位置情報を取得し、ユーザを開始位置から目的地位置までどのように経路決めするかを判定することができる。経路を判定することに加え、マップアプリケーションは位置API40_132から取得した位置情報をコンテキストデーモン40_102に報告することができる。よって、報告クライアント40_124はモニタバンドル40_106のようにコンテキスト情報を収集及び報告する目的で作られていないが、報告クライアント40_124は、報告クライアント40_124が主要機能を実行しながらコンテキスト情報を取得したときにコンテキスト情報を報告するように構成することができる。
一部の実装では、コンテキストデーモン40_102は現在のコンテキスト40_112を含むことができる。例えば、現在のコンテキスト40_112は、モニタバンドル40_104(例えば、モニタバンドル40_106)及び/又は報告クライアント40_124から受信されるコンテキスト情報のメモリ内レポジトリであることができる。モニタバンドル40_104及び/又は報告クライアント40_124がコンテキスト情報をコンテキストデーモン40_102に報告するとき、コンテキストデーモン40_102は現在のコンテキスト40_112を新しく受信されたコンテキスト情報に更新することができる。よって、現在のコンテキスト40_112は、コンピューティングデバイスの現在のコンテキストを記述するコンテキスト情報(例えば、コンテキストアイテム)を含むことができる。
図40-2A及び図40-2Bは、例示的な現在のコンテキスト40_200及び40_250を示す。図40-2Aは、現在のコンテキスト40_200を構成し得るコンテキストアイテムの例を示す。例えば、現在のコンテキスト40_200(例えば、現在のコンテキスト40_112)は、時間Tでのコンピューティングデバイスについてのコンテキスト情報を含むことができる。例えば、現在のコンテキスト40_200は、現在のロック状態(偽)を表すコンテキストアイテムを含むことができる。現在のコンテキスト40_200は、ヘッドホンジャックの差し込まれた状態(偽)を表すコンテキストアイテムを含むことができる。現在のコンテキスト40_200は、バッテリの充電状態(偽)を表すコンテキストアイテムを含むことができる。現在のコンテキスト40_200は、Bluetooth送受信機の接続状態(偽)を表すコンテキストアイテムを含むことができる。現在のコンテキスト40_200は、現在コンピューティングデバイス上でフォーカスされているアプリケーションを特定するコンテキストアイテムを含むことができる。現在のコンテキスト40_200に示されるコンテキスト情報は、例えば、モニタバンドル40_106及び/又は報告クライアント40_124から受信され得る。
図40-2Bは、現在のコンテキスト40_250に新たなコンテキストアイテムが追加される例を示す。現在のコンテキスト40_250(現在のコンテキスト40_112)は、コンピューティングデバイスのいくらか後の時間T'についてのコンテキスト情報を含むことができる。例えば、現在のコンテキスト40_250は、コンピューティングデバイスの現在の位置を特定する新たなコンテキストアイテムを含む。新たな位置コンテキストアイテムは、新たな位置モニタバンドル40_106がコンテキストデーモン40_102にローディングされ、位置コンテキスト情報をコンテキストデーモン40_102に報告し始めたときに、追加することができる。例えば、新たな位置モニタバンドル40_106を、コンテキストクライアントからの位置情報についての要求に応じてローディングすることができる。
コールバック要求
図40-1を参照すると、一部の実装では、コンテキストデーモン40_102は、コンピューティングデバイス上で稼働しているコンテキストクライアントソフトウェアに、現在のコンテキスト40_112内の情報にアクセスすること(例えば、問い合わせる、閲覧するなど)を可能にするAPIを露出させることができる。一部の実装では、コンテキストデーモン40_102は、要求クライアント40_126(コンテキストクライアント)から、特定のコンテキストがコンテキストデーモン40_102によって検出されたときに、要求クライアント40_126をコールバックすることの要求を受信することができる。例えば、要求クライアント40_126は、コンテキストデーモン40_102にコールバック要求を送ることができる。コールバックデーモン40_102は、コールバックレジストリ40_114にコールバック要求情報を記憶させることができる。コールバックレジストリ40_114は、コールバック情報のメモリ内リポジトリであり得る。例えば、コールバックリクエストは、要求クライアント40_126に通知するための述語(predicate)(例えば、コンテキスト条件)を指定することができる。コールバック要求は、要求クライアント40_126のクライアント識別子を含むことができる。
一部の実装では、コールバック要求が受信されたときに、コールバックレジストリ40_114はコールバック要求についての固有の識別子を生成して、コールバック要求識別子、クライアント識別子、及びコールバック述語をコールバック述語データベース40_116に記憶させることができる。コンテキストデーモン40_102は、コールバック要求を受信したことに応じて、コールバック要求識別子を要求クライアント40_126に返すことができる。現在のコンテキスト40_112内のコンテキスト情報が述語を満たすときに、コンテキストデーモン40_102は要求クライアント40_126に通知する。例えば、コールバック通知はコールバック要求識別子を含むことができ、そのことで要求クライアント40_126は通知に対応するコールバック要求を判定することができる。例えば、要求クライアント40_126は、コンテキストデーモン40_102で多くのコールバック要求を登録することができる。コールバックデーモン40_102が要求クライアント40_126にコールバック通知を送信するときに、要求クライアント40_126は、コールバック通知がどのコールバック要求に関するのかを判定する際にコールバック要求識別子を用いることができる。
一部の実装では、コンテキストデーモン40_102は、コールバック要求を要求クライアント40_126から受信したのに応じて、モニタバンドル40_106をローディングすることができる。例えば、コンテキストデーモン40_102は、モニタバンドル40_106の遅延初期化(lazy initialization)をサポートすることができる。言い換えると、コンテキストデーモン40_102はコールバック要求にサービスする必要があるときに、モニタバンドル40_106をローディングして初期化することができる。例えば、もしどのクライアントも位置情報を対象としない場合、コンテキストデーモン40_102は、必要でないコンテキストアイテムを監視するためにシステムリソース(例えば、バッテリ、メモリなど)が無駄にされないように、位置モニタバンドル40_106をローディングしなくてもよい。しかしながら、位置コンテキストアイテムのコールバック要求を受信すると、コンテキストデーモン40_102は、位置コンテキストアイテムに関連付けられたモニタバンドル40_106をローディングする、初期化する、又は呼び出して、コンピューティングデバイスの位置に関するコンテキスト情報を受信し始めることができる。
一部の実装では、モニタバンドル40_106はコンテキストデーモン40_102用のソフトウェアプラグインであり得る。例えば、モニタバンドル40_106は、コンテキスト情報を監視するために動的にコンテキストデーモン40_102にローディングして実行できるソフトウェアコード(例えば、ライブラリ、オブジェクトコード、Java jarファイルなど)であり得る。一部の実装では、モニタバンドル40_106は、コンテキストデーモン40_102に対して外部の別プロセスであり得る。例えば、モニタバンドル40_106は、コンテキスト情報を監視して報告するためにコンテキストデーモン40_102が呼び出すことができる、独立した実行可能ファイルであり得る。
図40-3は、例示的なコールバック述語データベース40_300を示す。例えば、述語データベース40_300は、図1の述語データベース40_116と対応することができる。一部の実装では、述語データベース40_300内のそれぞれのエントリ40_302~40_316は、コールバック要求識別子を含むことができる。例えば、コンテキストデーモン40_102が要求クライアント40_126からコールバック要求を受信したときに、コンテキストデーモン40_102はコールバック要求についての固有の要求識別子を生成することができる。上述のように、コンテキストデーモン40_102はコールバック要求識別子を、コールバック要求に応じて、要求クライアント40_126に返すことができる。コンテキストデーモン40_102は生成されたコールバック要求識別子を、クライアント識別子及びコールバックデータベース内のコールバック述語に関連付けることができる。コンテキストデーモン40_102が要求クライアント40_126にコールバック通知を送信するときに、コンテキストデーモン40_102は通知にコールバック識別子を含むことで、なぜコンテキストデーモン40_102がコールバック通知を送信しているのか、要求クライアント40_126は判定することができる。例えば、要求クライアント40_126は、コンテキストデーモン40_102に複数のコールバック要求を送信してもよい。要求クライアント40_126は、どのコールバック要求に対してコンテキストデーモン40_102がコールバック要求識別子に基づいて通知を送信しているのかを判定することができる。
一部の実装では、述語データベース40_300内のそれぞれのエントリ40_302~40_316は、クライアント識別子及びコールバック述語を含むことができる。クライアント識別子は、コンピューティングデバイスの現在のコンテキストが要求クライアント40_126によって指定された対応する述語を満たしたときに、通知される(例えば、コールバックされる)ことを要求したクライアントに対応することができる。一部の実装では、クライアント識別子は、以下に更に説明するように、コンピューティングデバイス上のプロセスを起動する(例えば、実行する、呼び出すなど)ように構成される起動デーモンによって生成することができる。例えば、エントリ40_302は、コンピューティングデバイスの現在のコンテキストが、そのデバイスがロックされており、かつフォーカスアプリケーションがミュージックアプリケーションであることを示すときに、通知されることを要求しているクライアント識別子「Client_ID1」を有する、要求クライアント40_126に対応する。言い方を変えると、クライアント識別子「Client_ID1」に対応するコンテキストクライアント(例えば、要求クライアント40_126)は、コンテキストクライアントに通知する(例えば、コールバックする)ための述語は、デバイスがロックされており、ユーザによって現在使用されているアプリケーションがミュージックアプリケーションであることを指定している。例えば、要求クライアント40_126によって指定された述語は、論理(例えば、Boolean)演算子によって分けられた1つ以上のコンテキスト条件(例えば、ハードウェア状態値、ソフトウェア状態値、導出されたコンテキストなど)を識別することができる。コンピューティングデバイスの現在の状態が指定された述語と対応するときに、コンテキストデーモン40_102は要求クライアント40_126に通知する(例えば、コールバックする)。
一部の実装では、述語は時間構成要素を含むことができる。例えば、述語は、要求クライアント40_126に、要求クライアント40_126が通知されるべきときに何かのイベント(例えば、状態変更、コンテキスト変更など)の前又は後の時間を示すことを可能とする「前」及び/又は「後」演算子(項)を含むことができる。例えば、コンテキストデーモン40_102は、今後の特定の時間にミーティングがスケジューリングされていることを示すカレンダーアプリケーション状態情報を受信することができる。要求クライアント40_126は、コンテキストデーモン40_102が要求クライアント40_126にミーティングの30分前に通知すべきであると指定する述語(例えば、エントリ40_316)を登録することができる。現在時刻がミーティングの30分前に対応する時、コンテキストデーモン40_102は要求クライアント40_126に通知を送信することができる。同様に、コンテキストデーモン40_102は、過去コンテキスト情報に基づいて、今後のイベント(例えば、ユーザの睡眠期間、ユーザの帰宅、ユーザの出勤、ユーザの起床など)を予測することができる。例えば、要求クライアント40_126は、コンテキストデーモン40_102が要求クライアント40_126にユーザの予測睡眠期間の30分前に通知すべきであると指定する述語(例えば、エントリ40_306)を登録することができる。現在時刻が予測睡眠期間の30分前に対応する時、コンテキストデーモン40_102は要求クライアント40_126に通知を送信することができる。同様に、要求クライアント40_126は、コンテキストデーモン40_102が要求クライアント40_126に、ユーザの予測睡眠期間に基づいてユーザが目覚めると予測される5分後に通知すべきであると指定する述語(例えば、エントリ40_310)を登録することができる。例えば、現在時刻が、ユーザが目覚めた5分後に対応する時、コンテキストデーモン40_102は要求クライアント40_126に通知を送信することができる。
イベントストリーム
図40-1を参照すると、一部の実装では、コンテキストデーモン40_102は過去知識リポジトリ40_118を含むことができる。例えば、現在のコンテキスト40_112が現在のコンピューティングデバイスの状態を反映するコンテキスト情報を含む一方で、上述したように、過去知識40_118は過去コンテキスト情報を含む。過去知識40_118は、過去コンテキスト情報のメモリ内リポジトリであり得る。例えば、過去知識40_118は、コンテキスト(例えば、状態)における経時的な変化を表すイベントストリームを含むことができる。例えば、現在のコンテキスト40_112にて追跡されるイベント又はコンテキストアイテムのそれぞれは、対応する値を有する。現在のコンテキスト40_112におけるコンテキストアイテムの値が変化すると、古い値は過去知識40_118に記録され得る。状態変化を分析することで、各コンテキストアイテム値について、開始時間、終了時間、及び持続時間を計算することができる。
図40-4は、コンテキストアイテムに関連付けられる例示的な値の経時的な変化を示すグラフ40_400である。例えば、グラフ40_400は、ロック状態、ヘッドホン、充電、Bluetooth、フォーカスアプリ、睡眠、及び位置コンテキストアイテムについての現在の値を示す、現在のコンテキスト40_402を含む。グラフ40_400は、同様のコンテキストアイテムについての経時的な過去(履歴)値40_404を含む。コンテキストアイテム値での変化を分析することで、コンテキストデーモン40_102は、以下の図5に示すように、コンテキストアイテムに関連付けられるそれぞれの値についての開始時間、終了時間、及び持続時間を判定することができる。
図40-5は、コンテキストアイテムに関連付けられた例示的なイベントストリームを示すグラフ40_500である。一部の実装では、図40-4のグラフ40_400に表されるそれぞれの状態変化は、システム内に特定の状態が存在した持続時間を記述するデータ及び状態に関連付けられたメタデータを含むデータオブジェクト(例えば、オブジェクト40_502)に変換することができる。一部の実装では、過去モニタ40_110は、現在及び/又は過去コンテキスト情報を過去イベントストリームオブジェクトに変換するように構成することができる。例えば、特定のモニタバンドル40_106に対応するコンテキストアイテムについて値の変化が検出されたとき、過去モニタ40_110はコンテキストアイテムの前の値に基づいて過去イベントストリームオブジェクトを生成することができる。例えば、一部のコンテキストモニタ40_106は、コンピューティングデバイスのソフトウェア及び/又はハードウェア構成要素の状態を定期的に報告するように構成することができる。コンテキストモニタ40_106は、例えば、Bluetooth状態情報を定期的に報告するように構成することができる。報告されたBluetooth状態情報は、連続の同一状態値を含んでもよく、次に状態変化が続いてもよい。例えば、コンテキストモニタ40_106は、Bluetoothの状態が「オフ、オフ、オフ、オフ、オン」であると報告することができる。過去モニタ40_110は一連の「オフ」のBluetoothコンテキストアイテムの値を組み合わせて、「オフ」値の開始時間及び終了時間を判定し、どれだけ長くBluetooth構成要素が「オフ」状態であったかを計算することができる。
一部の実装では、過去モニタ40_110はイベントストリームオブジェクトについて、追加情報(例えば、メタデータ)を収集することができる。例えば、上記のBluetoothについて続けると、過去モニタ40_110は、Bluetoothコンテキストアイテムが「オン」値を有していたと判定し、Bluetooth API40_138からの追加情報を要求することができる。例えば、過去モニタ40_110は、コンピューティングデバイスに接続されるBluetoothデバイスの種類を識別する情報、用いられているBluetoothプロトコル、Bluetooth接続を介して送信されるデータ量、及び/又はBluetooth接続に関連する任意の他の情報を、Bluetooth API40_138から受信することができる。
別の例では、コンテキストモニタ40_108が、現在のコンテキスト情報(例えば、通話情報)を、テレフォニーAPI(例えば、掛けられた電話番号、通話が開始された時間、通話が終了した時間など)から収集するように構成することができる一方で、過去モニタ40_110は連絡先API(例えば、電話を掛けられた人の名前など)又は通話履歴API(例えば、電話を掛けられた人の名前、通話時間など)から、通話についてのイベントストリームメタデータを収集することができ、この追加情報をテレフォニーコンテキストアイテムについてのイベントストリームオブジェクトに追加することができる。よって、過去モニタ40_110は、過去イベント(例えば、イベントストリーム、イベントストリームオブジェクト)を過去資料として、及び今後のイベントを予測するためにより価値のあるものとするために、過去イベントについての追加データを生成又は収集するように構成することができる。過去モニタ40_110がイベントストリームメタデータを収集又は生成すると、過去モニタ40_110はイベントストリームメタデータを過去知識リポジトリ40_118に記憶させることができる。一部の実装では、コンテキストデーモン40_102及び/又は過去モニタ40_110は、イベントストリームオブジェクト(例えば、開始時間、終了時間、持続時間、及び/又はメタデータ)を履歴データベース40_120に記憶させることができる。
図40-6は、例示的な過去イベントストリームデータベース40_600を示す。例えば、過去イベントストリームデータベースは、履歴データベース40_120に対応することができる。例示的な過去イベントストリームデータベース40_600は、履歴データベース40_600に記憶される過去イベントストリームデータの概念図を表し、履歴データベース40_600の実際の実装を反映しなくてもよい。当業者であれば、データベース40_600内の過去イベントストリームデータが多くの異なる方法で編成及び記憶され得ることを認識するであろう。
一部の実装では、履歴データベース40_600はイベントストリーム表40_602~40_614を含むことができる。例えば、各イベントストリーム表40_602~614は単一のイベントストリーム(例えば、コンテキストアイテム)に対応することができる。それぞれのイベントストリーム表(例えば、表40_602)は、イベントストリーム内のイベントストリームオブジェクトに対応する記録(例えば、40_616、40_618など)を含むことができる。例えば、「ロック状態(locked)」イベントストリーム表40_602は、「ロック状態」イベントストリームのロックされている(又はロック解除されている)状態を記述するイベントストリームオブジェクト記録40_616、40_618を含むことができる。イベントストリームオブジェクト記録は、いつイベントが開始したかを示すタイムスタンプ(timestamp;TS)値を有する「開始」フィールドを含むことができる。イベントストリームオブジェクト記録は、イベントの持続時間(duration;D)を示す「持続時間」フィールドを含むことができる。イベントストリームオブジェクト記録は、イベントに対応する状態変化を記述する状態情報(例えば、デバイスがロックされていなかったことを示す「ロック状態:偽」)を含むことができる。
一部の実装では、イベントストリームオブジェクト記録は、イベントに関連付けられた他のデータを記載するメタデータを含むことができる。例えば、過去イベントストリームデータを生成する時に、過去モニタ40_110は、イベント時のシステムの状態の追加属性、又はそれを取り囲む状況を記述するメタデータを、収集及び/又は生成することができる。例えば、「充電」イベントストリーム40_606については、過去モニタ40_110は、充電イベントの始め及び/又は終わりに、バッテリ充電の状態(例えば、充電率、充電レベルなど)に関する情報を収集することができる。Bluetoothイベントストリーム40_608については、過去モニタ40_110は、コンピューティングデバイスに接続されたBluetoothデバイスの種類及び/又はBluetoothデバイスに送信される媒体のソースに関する情報を収集することができる。位置イベントストリーム40_612については、過去モニタ40_110は生の位置データ(例えば、グリッド座標、GNSSデータ、セルタワー識別データ、WiFiネットワーク識別子など)を、人間のユーザが理解できる位置用語(例えば、自宅、職場、学校、食料品店、レストラン名など)に変換することができる。
一部の実装では、過去モニタ40_110はコンテキストモニタ40_108に比べて、より正確な位置情報を生成又は取得することができる。例えば、コンテキストモニタ40_108は、プロセッシングを、あったとしてもほとんど必要とすることなく、現在の(例えば、瞬間的な)位置情報を提供することができる。この初期位置データは、位置技術(例えば、信号マルチパス問題、十分な数の衛星と接続する困難性など)の多種多様な問題によって不正確であり得る。追加の時間及び追加のデータを与えられると、位置をより正確に判定することができる。過去モニタ40_110が(現在又は瞬間的なデータではなく)過去データを処理するため、過去モニタ40_110は、例えば、位置API40_132からのより正確な位置情報を取得するのに時間を取ることがある。イベントを説明するこの追加のメタデータを、履歴データベース40_600のイベントストリーム記録内に記憶することができる。
一部の実装では、過去モニタ40_110は、モニタバンドル40_106初期化後にコンテキストアイテムについての過去情報を取得することができる。例えば、モニタバンドル40_106が位置コンテキストを監視するように構成される場合、コンテキストデーモン40_102は、上記のとおり、必要に応じて、モニタバンドル40_106をローディングする、呼び出す、及び/又は初期化することができる。モニタバンドル40_106が初期化されるときに、コンテキストモニタ40_108は位置コンテキストアイテムについてのコンテキスト情報を収集する。しかしながら、モニタバンドル40_106が初期化されると、位置コンテキストアイテムが前に監視されていなかったために位置コンテキストアイテムの過去データがない。よって、一部の実装では、過去モニタ40_110は位置API40_132からの位置履歴データを要求して、過去コンテキスト情報(例えば、イベントストリーム、イベントストリームオブジェクトなど)を、位置API40_132から受信される位置履歴データに基づいて生成することができる。
イベントストリームプライバシー
一部の実装では、イベントストリームはそれぞれ、対応するプライバシーポリシーを有することができる。一部の実装では、イベントストリームはデフォルトのプライバシーポリシーで構成され得る。一部の実装では、管理者ユーザは、それぞれのイベントストリームについて(例えば、それぞれのコンテキストアイテムについて)のプライバシーポリシーを構成するために、コンピューティングデバイスに入力を提供することができる。例えば、それぞれのイベントストリームに対応するプライバシーポリシーは経時的に変化し得る。
一部の実装では、コンテキストアイテムについてのイベントストリームは、コンテキストアイテムについての過去情報を保持するのを防止するプライバシーポリシーを有することができる。例えば、位置コンテキストアイテムに対応するイベントストリームは、コンピューティングデバイスの位置の過去記録を保持するのを許可しないポリシーを有することができる。この「履歴無し」ポリシーがイベントストリームについて構成されると、過去モニタ40_110はイベントストリームについて過去コンテキスト情報(例えば、イベントストリームオブジェクト)を生成しない。
一部の実装では、コンテキストアイテムについてのイベントストリームは、過去コンテキスト情報が削除される前に記憶されるべき時間量(例えば、存続時間)を指定するプライバシーポリシーを有することができる。例えば、「フォーカスアプリ」コンテキストアイテムに対応するイベントストリームは、指定された時間量(例えば、3日、1カ月など)よりも古い「フォーカスアプリ」コンテキストアイテムについてのイベントストリームデータは削除されるべきであると指定する存続時間ポリシーを有することができる。コンテキストデーモン40_102は、イベントストリーム上でメンテナンスを定期的に実行して、存続時間ポリシーに指定された時間量よりも古いイベントストリームオブジェクトを削除することができる。
一部の実装では、コンテキストアイテムについてのイベントストリームは、タイムスタンプ解像度低下(timestamp de-resolution)ポリシーを有することができる。例えば、タイムスタンプ解像度低下ポリシーが有効であるとき、過去モニタ40_110はイベントストリーム内のイベント(例えば、状態変化)に関する精細なタイムスタンプを、より不精細にする。例えば、位置変化イベントは、ミリ秒まで正確なタイムスタンプを有することができる。解像度低下ポリシーがイベントストリームに適用されると、過去モニタ40_110は、秒又は分まで正確な、より正確性の低いタイムスタンプを用いることができる。例えば、位置イベントストリームにより正確性の低いタイムスタンプを使用することで、システムはコンテキストクライアントがユーザの動作の正確なタイミングを判定することを妨げることによって、ユーザのプライバシーを保護することができる。
一部の実装では、コンテキストアイテムについてのイベントストリームは、記憶場所ポリシーを有することができる。例えば、コンピューティングデバイスは、コンピューティングデバイスのセキュリティ状態に対応する、異なる記憶場所で構成することができる。例えば、コンピューティングデバイスは、コンピューティングデバイスがロック解除されている(例えば、ユーザがデバイスをロック解除するためにパスコードを入力した)時にのみアクセスできる、「A」クラスデータベースを有することができる。コンピューティングデバイスは、コンピューティングデバイスの再起動又は起動した後の最初のロック解除の後(例えば、後続のロック解除を必要とせずに)アクセスすることができる、「B」クラスデータベースを有することができる。コンピューティングデバイスは、いつでも(例えば、パスコード入力に関わらず)アクセスすることができる、「C」クラスデータベースを有することができる。イベントストリームについての記憶場所プライバシーポリシーは、対応するイベントストリームデータをどのクラスのデータベースに記憶するかを識別することができる。
効率的なコンテキスト監視
一部の実装では、コンピューティングデバイスは、ソフトウェアが使用されていない時にコンピュータデバイス上で稼働しているソフトウェアを終了させるように構成することができる。例えば、コンピューティングデバイスのオペレーティングシステムは、アイドル状態のプロセスを識別するように構成することができる。オペレーティングシステムは、アイドル状態のプロセスをシャットダウン(例えば、終了、強制終了)して、システムの他の構成要素(例えば、ソフトウェア、ハードウェア)による使用のために、メモリを空ける、又はバッテリリソースを節約することができる。しかしながら、オペレーティングシステムがアイドル状態のコンテキストデーモン40_102を終了させた場合、コンテキストデーモン40_102はシステムの現在のコンテキストをそれ以上監視できなくなり、要求クライアント40_126にコンテキスト変更を通知することができなくなる。同様に、オペレーティングシステムがアイドル状態の要求クライアント40_126を終了させた場合、要求クライアント40_126はコンテキストデーモン40_102からのコールバック通知を受信するように稼働していないことになる。以下の段落では、コンテキストの監視及び/又はコールバック動作を対処するためにコンテキストデーモン40_102及び/又は要求クライアント40_126を再起動できる様々な機構を説明する。
図40-7は、コンテキストコールバック通知を要求クライアント40_126に提供するための例示的なシステム40_700のブロック図である。例えば、システム40_700は、上記図1のシステム40_100に対応することができる。一部の実装では、システム40_700は起動デーモン40_702を含むことができる。例えば、起動デーモン40_702は、コンピューティングデバイス上に、アプリケーション、ユーティリティ、ツール、及び/又は他のプロセスを起動する(例えば、呼び出す、開始する、実行する、初期化するなど)ように構成することができる。起動デーモン40_702は、コンピューティングデバイス上でプロセスを監視したり、アイドル状態のプロセスを終了させたりするように構成することができる。
一部の実装では、起動デーモン40_702は要求クライアント40_126を起動することができる。例えば、コンピューティングデバイス上で稼働しているプロセス(オペレーティングシステム、ユーザアプリケーション等)は、要求クライアント40_126を呼び出すことができる。起動デーモン40_702は呼び出しに対応するメッセージを受信することができ、要求クライアント40_126を起動することができる。要求クライアント40_126を起動すると、起動デーモン40_702は、コンピューティングデバイス内で要求クライアント40_126を識別するのに用いることができるクライアント識別子40_704を要求クライアント40_126に提供することができる。
一部の実装では、クライアント識別子40_704は、起動デーモン40_702によって生成され、起動デーモン40_702によって要求クライアント40_126に割り当てられるトークン(例えば、暗号化データ)であることができる。起動デーモン40_702は、トークンと、クライアント識別子データベース40_706内の要求クライアント40_126に対応する(例えば、定義する)ソフトウェアパッケージとの間のマッピングを記憶することができる。トークンは、トークン自体は対応する要求クライアント40_126を特定しないように生成することができる。しかしながら、起動デーモン40_702が後程トークンを受信したときに、起動デーモン40_702はクライアント識別子データベース40_706内にて対応する要求クライアント40_126をルックアップするために、トークンを利用することができる。よって、トークンは、コンピューティングデバイス内で他のソフトウェアに対して不透明でありながら、起動デーモン40_702によって対応する要求クライアントを特定するためのインデックスとして用いられ得る。
一部の実装では、クライアント識別子40_704は、要求クライアント40_126の特定のインスタンスに対応するインスタンス識別子であり得る。一部の実装では、クライアント識別子40_704は、要求クライアント40_126の全てのインスタンスにわたって、ソフトウェアパッケージ(例えば、アプリケーション、ユーティリティ、ツールなど)を特定することができる。例えば、起動デーモン40_702が要求クライアント40_126の第1のインスタンスを起動したときに、クライアント識別子40_704は要求クライアント40_126の第1のインスタンスを特定することができる。要求クライアント40_126が終了すると(例えば、要求クライアント40_126がアイドル状態になったために)、同じクライアント識別子40_704を、起動デーモン40_702によって起動された要求クライアント40_126のその後のインスタンスを特定するために用いることができる。起動デーモン40_702は、要求クライアント40_126と同様の機構を用いて、コンテキストデーモン40_102を起動することができる。
一部の実装では、要求クライアント40_126は、コンテキストデーモン40_102にコールバック要求40_708を送ることができる。例えば、コールバック要求40_708は、上記のとおり、クライアント識別子40_704とコールバック述語とを、含むことができる。コールバック要求40_708を受信すると、コンテキストデーモン40_102はクライアント識別子40_704及び述語を、上記のとおり、述語データベース40_116に記憶させることができる。
一部の実装では、要求クライアント40_126がコールバック要求40_708をコンテキストデーモン40_102に送るとき、要求クライアントは、要求クライアント40_126とコンテキストデーモン40_102との間で通信セッション40_709を確立する。一部の実装では、システム40_700は、要求クライアント40_126とコンテキストデーモン40_102との間の通信セッションが要求クライアント40_126によってのみ、初期化できるように、構成可能である。例えば、コンテキストデーモン40_102は、要求クライアント40_126との通信セッションを直接確立することができないことがある。よって、一部の実装では、コンテキストデーモン40_102は、要求クライアント40_126によって確立された通信セッション40_709がまだ開いている間にしか、要求クライアント40_126と通信する(例えば、コールバック通知を送る)ことができない。
一部の実装では、コンテキストデーモン40_102は、コンピューティングデバイスで発生しているイベントについてのコンテキスト情報を収集することができる。例えば、コンテキストデーモン40_102は、上記のとおり、モニタバンドル40_106及び報告クライアント40_124からコンテキスト情報を収集することができる。一部の実装では、コンテキストデーモン40_102は、現在のコンテキストをコンテキストデータベース40_712に記憶させることができる。例えば、コンテキストデーモン40_102は、現在のコンテキストをコンテキストデータベース40_712に記憶させて、コンテキストデーモン40_102へのコンテキスト情報のリストアを容易にすることができる。コンテキストデーモン40_102が終了されて再起動されたとき、コンテキストデーモン40_102は、コンテキストデーモン40_102がモニタバンドル40_106からのコンテキスト更新を待っている間に、現在のコンテキスト(例えば、今は古いコンテキスト)をコンテキストデータベース40_712からリストアすることができる。
一部の実装では、コンテキストデーモン40_102は、現在のコンテキストが要求クライアント40_126から受信した述語に対応するかどうかを判定することができる。例えば、現在のコンテキストを更新する(例えば、コンテキストアイテムの状態を変更する)新たなコンテキストデータが取得されたとき、コンテキストデーモン40_102は、コールバックレジストリ40_114又は述語データベース40_116内にコンテキストデーモン40_102によって記憶されたコールバック述語を現在のコンテキスト40_112内のコンテキストアイテムと比較して、現在のコンテキストが述語によって指定された条件と一致する(対応する)かどうかを判定することができる。現在のコンテキストが要求クライアント40_126によって登録された述語と一致するとき、コンテキストデーモン40_102は要求クライアント40_126に通知40_701を送ることができる。例えば、通知40_701は、上記のように、以前に要求クライアント40_126によってコンテキストデーモン40_102に送られたコールバック要求を特定することができる。よって、コンテキストデーモン40_102は、コンテキストデーモン40_102が、要求クライアント40_126が対象とする現在のコンテキストを検出した時に、要求クライアント40_126に通知する(例えば、コールバックする)ことができる。
図40-8A及び図40-8Bは、終了されている要求クライアントを再起動することを示す例示的なシステム40_700のブロック図である。例えば、図40-8Aでは、システム40_700は、要求クライアント40_126がアイドル状態にあると判定し、要求クライアント40_126を終了させている(例えば、要求クライアント40_126の破線の外枠は終了していることを示す)。図40-8Aでは、コンテキストデーモン40_102はまだ稼働している。しかしながら、要求クライアント40_126が終了しているため、コミュニケーションセッション40_709もまた、終了している。
図40-8Bは、システム40_700を用いて、要求クライアント40_126を再起動するための例示的な機構を示すブロック図である。図40-8Aの例で続けると、コンテキストデーモン40_102は、要求クライアント40_126によって登録されたコールバック述語に一致するコンテキスト情報を受信することができる。コンテキスト情報がコールバック述語と一致すると判定したことに応じて、コンテキストデーモン40_102は要求クライアント40_126に通知しようと試みることができる。要求クライアント40_126に通知しようと試みる間、コンテキストデーモン40_102は、コンテキストデーモン40_102と要求クライアント40_126との間の通信セッション40_709が終了していると判定することができる。通信セッション40_709が終了していると判定したことに応じて、コンテキストデーモン40_102は起動デーモン40_702が要求クライアント40_126を再起動するように要求することができる。例えば、コンテキストデーモン40_102は、要求クライアント40_126を再起動する要求において、要求クライアント40_126から受信されたクライアント識別子40_704を起動デーモン40_702に送信することができる。
一部の実装では、起動デーモン40_702は、クライアント識別子40_704を受信すると、要求クライアント40_126を起動することができる。例えば、起動デーモン40_702は、コンテキストデーモン40_102には、要求クライアント40_126を再起動するように要求する権限があると、コンテキストデーモン40_102によって提供されたクライアント識別子に基づいて判定することができる。例えば、要求クライアント40_126が以前に、コンテキストデーモン40_102からのコールバックを要求し、コンテキストデーモン40_102にクライアント識別子40_704を提供していなければ、コンテキストデーモン40_102はクライアント識別子40_704(例えば、トークン)を有していないであろう。
一部の実装では、再起動の際、要求クライアント40_126は、コンテキストデーモン40_102にコールバック要求40_708を送ることができる。例えば、要求クライアント40_126は、コンテキストデーモン40_102にコールバック要求40_708を送ることによって、要求クライアント40_126とコンテキストデーモン40_102との間に新たな通信セッション40_802を確立することができる。通信セッション40_802が確立されれば、コンテキストデーモン40_102は通知40_710を要求クライアント40_126に送信して、要求クライアント40_126によって提供されたコールバック述語が現在のコンテキストによって満足されていることを要求クライアント40_126に通知することができる。
図40-9A及び図40-9Bは、終了しているコンテキストデーモンを再起動することを示す、例示的なシステム40_700のブロック図である。例えば、図40-9Aでは、システム40_700は、コンテキストデーモン40_102がアイドル状態であると判定し、コンテキストデーモン40_102を終了させている(例えば、コンテキストデーモン40_102の破線の外枠は、終了していることを示す)。図40-9Aでは、要求クライアント40_126はまだ稼働している。しかしながら、コンテキストデーモン40_102が終了しているため、通信セッション40_709もまた、終了している。
図40-9Bは、システム40_700を用いて、コンテキストデーモン40_102を再起動するための例示的な機構を示すブロック図である。図40-9Aの例で続けると、システム40_700はコンテキストデーモン40_102を、コンテキストデーモン40_102に向けられた要求クライアント40_126からのメッセージを受信したことに応じて再起動することができる。
一部の実装では、要求クライアント40_126は、要求クライアント40_126とコンテキストデーモン40_102との間の通信セッション40_709が終了していると検出することができる。通信セッション40_709が終了していることを検出したことに応じて、要求クライアント40_126は、終了したコンテキストデーモン40_102にメッセージを送信することで通信セッションを再確立することができる。一部の実装では、要求クライアントは、メッセージをメッセージングシステム40_902を用いてコンテキストデーモン40_102に送ることができる。システム40_700のメッセージングシステム40_902は、コンテキストデーモン40_102が稼働していないと判定することができ、起動デーモン40_702にコンテキストデーモン40_102を再起動させるように、起動デーモン40_702にメッセージを送ることができる。メッセージを受信したことに応じて、起動デーモン40_702はコンテキストデーモン40_102を再起動することができる。コンテキストデーモン40_102が稼働すると、メッセージングシステム40_902は要求クライアント40_126からのメッセージをコンテキストデーモン40_102に送ることができ、そのことによって、要求クライアント40_126とコンテキストデーモン40_102との間の通信チャネルを再確立することができる。
一部の実装では、再起動後、コンテキストデーモン40_102はそのコールバックレジストリ40_114及び現在のコンテキスト40_112をリストアすることができる。例えば、コールバックレジストリ40_114は述語データベース40_116からリストアされ得る。現在のコンテキスト40_112は、コンテキストデータベース40_712からリストアされ得る。再起動後、コンテキストデーモン40_102は、述語データベース40_116からリストアされたコールバック要求にサービスするために、コンテキスト情報を収集するのに必要なモニタバンドル40_106をローディングすることができる。コンテキストデーモン40_102は、上記のように、現在のコンテキスト40_112を、ローディングされたモニタバンドル40_104によって報告されたコンテキスト情報で更新し、現在のコンテキスト40_112におけるコンテキストアイテムが要求クライアント40_126によって登録された述語と一致するときに、要求クライアント40_126に通知することができる。
図40-10A及び図40-10Bは、終了しているコンテキストデーモン及び要求クライアントを再起動することを示す、例示的なシステム40_700のブロック図である。例えば、図40-10Aでは、システム40_700は、コンテキストデーモン40_102及び要求クライアント40_126の両方がアイドル状態にあると判定し、コンテキストデーモン40_102及び要求クライアント40_126を終了させている(例えば、破線の外枠は終了していることを示す)。図40-10Aでは、コンテキストデーモン40_102及び要求クライアント40_126の両方が終了しているため、通信セッション40_709は終了している。
図40-10Bは、システム40_700を用いて、コンテキストデーモン40_102及び要求クライアント40_126を再起動するための例示的な機構を示すブロック図である。図40-10Aの例で続けると、システム40_700は、終了しているコンテキストデーモン40_102に向けられた介在クライアント40_1002からのメッセージを受信したことに応じて、コンテキストデーモン40_102を再起動することができる。例えば、図40-9Bにおける要求クライアント40_126と同様に、介在クライアント40_1002は今は終了しているコンテキストデーモン40_102にメッセージを送ることができる。メッセージングシステム40_902はメッセージを受信して、コンテキストデーモン40_102が稼働していないと判定することができる。コンテキストデーモン40_102が稼働していないと判定したことに応じて、メッセージングシステム40_902は起動デーモン40_702にメッセージを送信して、起動デーモン40_702にコンテキストデーモン40_102を再起動させることができる。
一部の実装では、再起動後、コンテキストデーモン40_102はそのコールバックレジストリ40_114を述語データベース40_116からリストアすることができる。再起動後、コンテキストデーモン40_102はその現在のコンテキスト40_112をコンテキストデータペース40_712からリストアすることができ、上記のとおり、更新されたコンテキスト情報を収集し始めることができる。コンテキストデーモン40_102が、登録された述語が現在のコンテキスト情報と一致すると判定すると、コンテキストデーモン40_102は要求クライアント40_126に通知しようと試みることができる。図40-8Bを参照して上述したように、コンテキストデーモン40_102が、要求クライアント40_126とコンテキストデーモン40_102との間に通信セッション40_709が存在しないと判定すると、コンテキストデーモン40_102は、通信セッションが再確立されて、コンテキストデーモン40_102が要求クライアント40_126をコールバックすることができるように、起動デーモン40_702が要求クライアント40_126を再起動することを要求することができる。
図40-11は、起動デーモン40_702から受信されたデバイス状態情報に基づいて、要求クライアント40_126及び/又はコンテキストデーモン40_102を再起動するように構成される、例示的なシステム40_1100のブロック図である。例えば、システム40_1100はシステム40_700に対応することができ、上記のように、システム40_700と同様の機能を実行することができる。
一部の実装では、起動デーモン40_702は、デバイス状態40_1104を受信するように構成することができる。例えば、デバイス状態40_1104は、コンピューティングデバイスの様々なハードウェア及び/又はソフトウェア構成要素によって生成される低レベルの具体的な状態データであり得る。例えば、起動デーモン40_702は、コンピューティングデバイスの位置サービス構成要素(例えば、GPS受信機,WiFi、又はセルラデータ構成要素など)によって生成された位置データを含むデバイス状態40_1104を受信することができる。一部の実装では、デバイス状態40_1104は位置の変更を示すことはできるが、高レベルの位置情報(例えば、人が読み取れる標識(label))を提供しないことがある。
例えば、要求クライアント40_126は、位置に基づく述語を有するコールバック要求40_708をコンテキストデーモン40_102に送ることができる。述語は、要求クライアント40_126が、コンピューティングデバイスの現在の位置(例えば、現在のコンテキスト)がユーザの自宅(例えば、位置==自宅)であると通知される必要がある、と指定してもよい。デバイス位置がユーザの自宅であると判定するには、コンテキストデーモン40_102及び/又はモニタバンドル40_106は、位置API40_132からの情報、及び、「自宅」がどこに位置するのかを定義する(例えば、「自宅」標識と関連付けられた地理的位置を定義する)ユーザのデバイス上で稼働する連絡先アプリケーションから情報を収集することができる。位置API40_132からの位置情報を連絡先アプリケーションにおける「自宅」の定義と比較することで、コンテキストデーモン40_102は、コンテキストアイテム「位置」が「自宅」と等しいときを判定することができる。この例で示すように、要求クライアント40_126によって定義される位置述語(例えば、「自宅」)が満たされていると判定することは、現在の地理的位置データ(例えば、グリッド座標)と、標識(例えば、「自宅」)を地理的位置と相関させるユーザデータとの両方を組み合わせることによるものである。よって、概念的な位置コンテキスト「自宅」は、コンピューティングデバイスの位置サービス及び連絡先アプリケーションによって生成される具体的な状態データを分析することで、判定することができる。
一部の実装では、コンテキストデーモン40_102が要求クライアント40_126からコールバック要求40_708を受信したときに、コンテキストデーモン40_102は、デバイス状態要求40_1102を起動デーモン40_702に送信して、コンピューティングデバイスの特定の構成要素の状態変化への関心を登録することができる。起動デーモン40_702がデバイス状態40_1104を受信すると、起動デーモン40_702は特定構成要素について状態変化があったと判定し、コンテキストデーモン40_102及び/又は要求クライアント40_126に通知することができる。
一部の実装では、デバイス状態要求40_1102は、起動デーモン40_702がコンテキストデーモン40_102に、特定の状態変化が発生したときに通知するべきであることを指定することができる。例えば、要求クライアント40_126が、位置に基づくコールバック述語を指定するコールバック要求をコンテキストデーモン40_102に送るときに、コンテキストデーモン40_102は、位置構成要素状態変化が起動デーモン40_702によって検出されたときに、起動デーモン40_702がコンテキストデーモン40_102に通知することを要求するデバイス状態要求40_1102を起動デーモン40_702に送信することができる。
一部の実装では、デバイス状態要求40_1102は、起動デーモン40_702が、特定の状態変化が発生したときに要求クライアント40_126に通知するべきであると指定することができる。例えば、要求クライアント40_126が位置に基づくコールバック述語を指定するコールバック要求をコンテキストデーモン40_102に送るときに、コンテキストデーモン40_102は、位置構成要素の状態変化が起動デーモン40_702によって検出されたときに、起動デーモン40_702が要求クライアント40_126に通知することを要求するデバイス状態要求40_1102を、起動デーモン40_702に送信することができる。一部の実装では、デバイス状態要求40_1102は起動デーモン40_702がどの要求クライアント40_126に通知するかを判定することができるように、要求クライアント40_126に対応するクライアント識別子40_704を含むことができる。
図40-12A及び図40-12Bは、起動デーモンを用いてコンテキストデーモンを再起動することを示す例示的なシステム40_1100のブロック図である。例えば、図40-12Aでは、システム40_1100は、コンテキストデーモン40_102及び要求クライアント40_126の両方がアイドル状態にあると判定しており、コンテキストデーモン40_102及び要求クライアント40_126を終了させている(例えば、破線の外枠は終了していることを示す)。図40-12Aでは、コンテキストデーモン40_102及び要求クライアント40_126の両方が終了しているため、通信セッション40_709もまた、終了している。
図40-12Bは、システム40_1100の起動デーモン40_702を用いて、コンテキストデーモン40_102を再起動するための例示的な機構を示すブロック図である。図40-11を参照して上述したように、コンテキストデーモン40_102は、コンテキストデーモン40_102から要求クライアント40_126に通知40_710を送信するためのコンテキスト述語を指定するコールバック要求を、要求クライアント40_126から受信することができる。述語を受信したことに応じて、コンテキストデーモン40_102はデバイス状態要求40_1102を起動デーモン40_702に送信して、述語と関連付けられるデバイス状態変化に関心があることを登録することができる。例えば、要求クライアント40_126が位置に基づくコールバック述語を指定する場合、コンテキストデーモン40_102は、コンピューティングデバイスの位置が変わるときをコンテキストデーモン40_102に通知するように、起動デーモン40_702に依頼することができる。起動デーモン40_702が、位置の変更を示すデバイス状態40_1104を受信したときに、起動デーモン40_702はコンテキストデーモン40_102に通知しようと試みることができる。図40-12Aの例を続けると、コンテキストデーモン40_102がコンピューティングデバイス上で稼働していないため、起動デーモン40_702はコンテキストデーモン40_102が稼働していないと判定して、コンテキストデーモン40_102を起動(例えば、再起動、開始、呼び出し、実行など)することができる。コンテキストデーモン40_102が再起動されると、図40-8Bを参照して上述したように、コンテキストデーモン40_102は、起動デーモン40_702が要求クライアント40_126を再起動するように要求することができる。
図40-13A及び図40-13Bは、起動デーモンを用いて要求クライアント40_126を再起動することを示す、例示的なシステム40_1100のブロック図である。例えば、図40-13Aでは、システム40_1100は、コンテキストデーモン40_102及び要求クライアント40_126の両方がアイドル状態にあると判定しており、コンテキストデーモン40_102及び要求クライアント40_126を終了させている(例えば、破線の外枠は終了していることを示す)。図40-13Aでは、コンテキストデーモン40_102及び要求クライアント40_126の両方が終了しているため、通信セッション40_709もまた、終了している。
図40-13Bは、システム40_1100の起動デーモン40_702を用いて、要求クライアント40_126を再起動するための例示的な機構を示すブロック図である。図40-11を参照して上述したように、コンテキストデーモン40_102は、コンテキストデーモン40_102から要求クライアント40_126にコールバック通知40_710を送信するためのコンテキスト述語を指定するコールバック要求を、要求クライアント40_126から受信することができる。述語を受信したことに応じて、コンテキストデーモン40_102はデバイス状態要求40_1102を起動デーモン40_702に送信して、述語と関連付けられるデバイス状態変化に関心があることを要求クライアント40_126の代わりに登録することができる。例えば、コンテキストデーモン40_102は、述語に関連付けられるデバイス状態の変化の関心を登録するときに、クライアント識別子40_704を起動デーモン40_702に提供することができる。例えば、要求クライアント40_126が位置に基づくコールバック述語を指定する場合、コンテキストデーモン40_102は、コンピューティングデバイスの位置が変わったときを要求クライアント40_126に通知するように、起動デーモン40_702に依頼することができる。起動デーモン40_702が、位置の変更を示すデバイス状態40_1104を受信したときに、起動デーモン40_702は(例えば、クライアント識別子40_704によって特定された)要求クライアント40_126に通知しようと試みることができる。図40-13Aの例に続けると、要求クライアント40_126がコンピューティングデバイス上で稼働していないため、起動デーモン40_702は、要求クライアント40_126が稼働していないと判定して、要求クライアント40_126を起動(例えば、再起動、開始、呼び出し、実行など)することができる。要求クライアント40_126が再起動されると、要求クライアント40_126は、図40-9Bを参照して上述したように、コンテキストデーモン40_102にメッセージを送信することで、起動デーモン40_702にコンテキストデーモン40_102を再起動させることができる。
今後のイベントを予測する
一部の実装では、コンテキストデーモン40_102は、イベントストリーム情報に基づいて今後のイベントを予測することができる。例えば、コンテキストデーモン40_102は過去コンテキスト情報(例えば、イベントストリーム、イベントストリームオブジェクトなど)を分析してユーザの過去の行動パターンを判定することができる。コンテキストデーモン40_102は、これらの過去の行動パターンに基づいて、今後のユーザの行動を予測することができる。例えば、予測可能なユーザの行動としては、睡眠パターン、勤務パターン、運動パターン、食事パターン、及び他の繰り返されるユーザの行動を挙げることができる。コンテキストデーモン40_102は、これらのユーザの行動がいつ起きるかを、これらのユーザアクティビティ中にどのようにユーザがコンピューティングデバイスと相互作用するかを反映したイベントストリーム内の手がかりに基づいて、判定することができる。
説明を容易にするために、以下の記載は、デバイスの過去のロック状態イベントストリームデータに基づく、例示的な睡眠予測実装を説明する。しかしながら、睡眠予測のために用いられる機構を用いて、他のイベントストリームデータを分析することにより、他のユーザの行動を予測することができる。例えば、コンテキストデーモン40_102は、位置データを用いて、ユーザの勤務パターンを推論することができる。コンテキストデーモン40_102は、加速度計データを用いてユーザの運動パターンを推論することができる。コンテキストデーモン40_102は、アプリケーションデータ(例えば、ソーシャルメディアソフトウェアアプリケーション上でレストランにチェックインすること)を用いて、食事パターンを推論することができる。
一部の実装では、コンテキストデーモン40_102は、デバイスロック状態イベントストリームデータを用いて、ユーザの睡眠パターンを判定及び/又は予測することができる。例えば、コンピューティングデバイス(例えば、ハンドヘルドデバイス、スマートフォンなど)が長時間(例えば、5時間以上)ロックされたままであると、コンテキストデーモン40_102はユーザが寝ていると推論することができる。一部の実装では、他のイベントストリーム情報(例えば、加速度計データ、アプリケーション使用データなど)を用いて、睡眠パターン及び/又は睡眠予測を確認することができる。一部の実装では、コンテキストデーモン40_102は現在の日についての睡眠予測を、ユーザが前の日の睡眠から目覚めた後かつ次の予測される睡眠期間前のどこかの時間で実行することができる。例えば、コンテキストデーモン40_102は次の睡眠期間を予測するための計算を、ユーザが現在の睡眠期間から目覚めたことを検出したときに実行することができる。例えば、コンテキストデーモン40_102は、「ロック状態(locked)」コンテキストアイテムについての現在の値が偽である(例えば、ユーザがデバイスをロック解除している)、かつ現在時刻が予測睡眠期間の終了後であると判定することで、ユーザが起きていると検出することができる。
今後のイベントのスロットワイズ(slot-wise)予測
一部の実装では、コンテキストデーモン40_102は、今後のイベントを予測するためにスロットワイズの平均化を実行することができる。例えば、ユーザの睡眠パターンを予測又は判定するために、上記のようにコンテキストデーモン40_102はロック状態イベントストリームを分析することができる。コンテキストデーモン40_102は、ロック状態イベントストリームを以前の28日にわたって連続する24時間期間に分割することによって、ロック状態イベントストリームを分析することができる。コンテキストデーモン40_102は各24時間期間を、96個の15分間の分単位スロットに分割することができる。コンテキストデーモン40_102は、24時間期間のそれぞれについて15分間の分単位ブロックについてのロック状態を判定することができる。例えば、コンピューティングデバイスが15分間の分単位スロット全体でロックされたままとなると、そのスロットのロック状態は真(例えば、1)となり得る。コンピューティングデバイスが15分間の分単位スロット中にロック解除された場合、スロットのロック状態は偽(例えば、0)となり得る。24時間期間内のそれぞれの15分間の分単位スロットについてのロック状態データを組み合わせて、以前の28日のそれぞれを表す28のデータベクトルを生成することができる。例えば、各ベクトル(例えば、長さは96である)は、1日のうちの15分間の分単位スロットのそれぞれに対応する96のロック状態値を含むことができる。コンテキストデーモン40_102は次に、28日期間にわたって15分間の分単位スロットそれぞれを平均化して、ユーザの過去睡眠パターンを判定することができる。
図40-14は、今後のイベントを予測するためのスロットワイズ平均化の例を示すグラフ40_1400である。例えば、グラフ40_1400は、デバイスロック状態を用いて睡眠パターンを判定して今後の睡眠期間を予測することを示す。例えば、それぞれの水平の線は、24時間期間についてのロック状態データベクトルを表す。24時間期間はt-n~t+nの範囲にあることができ、「t」はユーザの睡眠サイクルのほぼ(例えば、推定される、典型的な、計算されたなど)中間に相当するある時間であり、「n」は12であり得る。例えば、典型的な人が午後10時から午前6時まで寝る場合、「t」は午前2時となり得る。グラフ40_1400では、「C」は現在の日を表す。よって、C-1は昨日、C-2は一昨日、C-7は1週間前、及びC-28は4週間前になる。それぞれの日には、96の対応する15分間の分単位スロットがある。例えば、グラフ40_1400は、午前3時30分~3時45分、午前5時~5時15分、及び午前6時15分~6時30分に対応する15分間の分単位スロットを示す。グラフ40_1400上では、グラフ40_1400上の乱雑さを減らすために3つの15分間の分単位スロットしか示していないが、各ベクトルには96の15分間の分単位スロットがあり、グラフ40_1400上の3つの15分間の分単位スロットを参照して説明される動作は、24時間期間のそれぞれにて、96のスロットのそれぞれについて実行される。
グラフ40_1400上のベクトルC-1を参照すると、3時30分のスロット及び5時のスロットにおける1という値(例えば、1、真)は、コンピューティングデバイスが、対応する15分間の分単位スロット全体にわたってロックされたままであったことを示す。6時15分のスロット中のゼロという値(例えば、0、偽)は、コンピューティングデバイスが15分間の分単位期間中のどこかでロック解除されたことを示す。例えば、コンテキストデーモン40_102は、ユーザが6時15分のスロットでは起きていてコンピューティングデバイスをロック解除したのであろうと推論することができる。以下により詳しく説明するように、コンテキストデーモン40_102は、閾値時間期間(例えば、5時間)にわたってデバイスがロックされていたときに、ユーザが寝ていたと推論することができる。
現在の日においてユーザが各15分間の分単位スロットでコンピューティングデバイスをロックしたままにする(及び、よって寝たままとなる)確率を判定するために、コンテキストデーモン40_102は各15分間の分単位スロットの値を過去28日にわたって平均化して、現在の24時間期間における15分間の分単位スロットのそれぞれについて値を予測することができる。コンテキストデーモン40_102は、現在の24時間期間について計算された15分間の分単位スロットの平均を用いて、デバイスがロックされたままである可能性が高い、睡眠閾値(例えば、5時間)を超える現在の24時間期間内の時間期間を特定することができる。例えば、15分間の分単位スロットの平均値が何らかの閾値(例えば、0.5、50%など)を超えるところでは、コンテキストデーモン40_102は、コンピューティングデバイスがその15分間の分単位スロット内ではロックされたままとなると判定することができる。コンテキストデーモン40_102は、組み合わされると睡眠閾値時間を超える、閾値よりも大きい値の連続する(又はほぼ連続する)一連の15分間の分単位スロットを判定することができる。一連の15分間の分単位スロットが判定されると、コンテキストデーモン40_102は一連の15分間の分単位スロットによってカバーされる時間期間を予測された睡眠期間として特定することができる。
一部の実装では、コンテキストデーモン40_102はロック状態データベクトルにわたって、加重平均化を実行することができる。例えば、それぞれのベクトルは、より古いロック状態データが、より新しいロック状態データよりも平均に影響を与えないように加重することができる。一部の実装では、コンテキストデーモン40_102は一連の最近の日にわたる(例えば、過去7日間それぞれにわたる)短期間での平均化、及び/又は一連の週にわたる(例えば、7日前、14日前、21日前、28日前)長期間での平均化を実行することができる。例えば、短期間での平均化は日々のパターンを予測するのにより良い場合がある一方で、ユーザが特定の曜日で何をするかを予測するためには長期間での平均化がより良い場合がある。例えば、今日が土曜日である場合、今日のユーザの行動についてのプレディクタとしては、特にユーザが月曜日から金曜日まで働いている場合に、昨日のユーザのアクティビティよりも前の土曜日のユーザのアクティビティの方が良いであろう。
短期間での平均化
一部の実装では、コンテキストデーモン40_102が以下の短期間加重平均化アルゴリズムを用いて、デバイスが15分間の分単位スロット内でロックされたままとなる確率(PS)を判定することができる。
Figure 0007478304000004
(式中、V1はC-1に相当し、V2はC-2に相当し、などであり、V7はC-7に相当し、λは0から1の間の値を有する実験によって決定された重みである)。例えば、短期間での加重アルゴリズムを用いて、過去7日間にわたっての15分間の分単位スロットそれぞれの加重平均を計算することができる。
長期間での平均化
一部の実装では、コンテキストデーモン40_102が以下の長期間加重平均化アルゴリズムを用いて、デバイスが15分間の分単位スロット内でロックされたままとなる確率(PL)を判定することができる。
Figure 0007478304000005
(式中、V7はC-7に相当し、V14はC-14に相当し、V21はC-21に相当し、V28はC-28に相当し、「λ」は0から1の間の値を有する実験によって決定された重みである)。例えば、長期間での加重アルゴリズムを用いて、過去4週間にわたる同じ曜日についての15分間の分単位スロットそれぞれの加重平均を計算することができる。
一部の実装では、短期間での加重平均アルゴリズムと長期間での加重平均アルゴリズムとを組み合わせて、15分間の分単位スロット内で15分間の分単位スロットがロックされたままとなる組み合わされた(例えば、複合的、全体的など)の確率(P)を生成することができる。
Figure 0007478304000006
(式中、「r」は長期間加重平均が確率計算に与える影響を調節するために用いることができる実験によって決められた数字(例えば、0.5)である)。
比例スロット値
図40-15は、比例スロット値を計算することを示す、例示的なグラフ40_1500及び40_1550を示す。例えば、24時間期間C-n内での15分間の分単位スロットそれぞれに真(1)及び偽(0)の値を割り当てるのではなく、上記の説明にあるように、コンテキストデーモン40_102は、15分間の分単位スロットそれぞれのうちのどれくらいの間でコンピューティングデバイスがロックされていた、又はロック解除されていたかを判定し、そのスロットの間でデバイスがロックされている比例的な時間量を表す比例値をスロットに割り当てることができる。
グラフ40_1500を参照すると、それぞれの15分間の分単位タイムスロットの影領域は、タイムスロット内のデバイスがロックされていた時間を表すことができる。例えば、デバイスは、午前3時30分~3時45分と午前5時~5時15分とのタイムスロットの両方で、その全体にわたってロックされていた。よって、3時30分及び5時のタイムスロットは1という値(1)を割り当てることができる。しかしながら、コンピューティングデバイスは午前6時15分~6時30分のタイムスロットでは一部でしかロックされていなかった。コンピューティングデバイスが6時15分のタイムスロットの最初の10分のみについてロックされていたのであれば、6時15分のタイムスロットには、グラフ40_1550で示すように、15分間の分単位スロットのデバイスがロックされていた比例量を表す10/15又は0.67という値が割り当てられ得る。コンピューティングデバイスが繰り返し、ロックされたりロック解除されたりした場合(例えば、5分間ロックされ、2分間ロック解除され、1分間ロックされ、5分間ロック解除され、など)、コンピューティングデバイスはロックされていた時間期間を合計し、ロック解除されていた時間を合計し、15分間の分単位スロットのコンピューティングデバイスがロックされていた割合を計算することができる。一部の実装では、比例値は、24時間期間内の15分間の分単位スロット(例えば、データベクトル)それぞれについて、比例値を決定することができる。一部の実装では、15分間の分単位スロットそれぞれについての比例値は、上記の短期及び/又は長期の確率を計算するときに用いることができる。
睡眠曲線の生成
図40-16Aは、今後のコンテキストを予測するための例示的な方法を示すグラフ40_1600である。例えば、グラフ40_1600によって示す方法を用いて、コンピューティングデバイスのユーザについて、今後の睡眠期間を予測することができる。例えば、グラフ40_1600におけるそれぞれの棒(例えば、棒40_1602、棒40_1606)は、上述したように、15分間の分単位タイムスロットを表すことができる。それぞれの15分間の分単位タイムスロットの値は棒の高さによって表すことができ、上述したように、タイムスロットについての組み合わされた加重平均確率(P)に対応することができる。例えば、確率(P)はゼロ(例えば、0、0%)から1(例えば、1、100%)の範囲であることができる。確率は、例えば、上述したように、コンピューティングデバイスが、その15分間の分単位スロット中にロックされたままとなる確率を表すことができる。確率は、バイナリー(例えば、0、1)の15分間の分単位タイムスロットの値に基づいて計算することができる。確率は、比例的な15分間の分単位タイムスロット値に基づいて計算することができる。
一部の実装では、コンテキストデーモン40_102は、確率グラフ40_1600を、コンピューティングデバイスのユーザの睡眠サイクルを表す確率曲線に変換することができる。例えば、コンテキストデーモン40_102は、どの15分間の分単位スロットがユーザの睡眠期間と対応するかを判定するために、睡眠確率閾値40_1606を決定することができる。一部の実装では、睡眠確率閾値40_1606は動的に判定することができる。例えば、最小の睡眠期間(例えば、5時間、7時間など)が所与の場合、コンテキストデーモン40_102は、少なくとも最小の睡眠期間の長さでありが、かつ睡眠確率閾値40_1606を超過する(例えば、確率、平均)値を有する15分間の分単位スロットを含む連続する15分間の分単位スロットのブロックをもたらす、睡眠確率閾値40_1606の値(例えば、0.65、50%など)を決定することができる。言い換えると、コンテキストデーモン40_102は、一連の15分間の分単位スロットが、組み合わされたときに最小睡眠期間を満たすかそれを超え、かつ睡眠確率閾値よりも高い値を有するまで、睡眠確率閾値40_1606を上下に調整することができる。
一部の実装では、睡眠確率閾値40_1606が決定されると、コンテキストデーモン40_102は、連続する15分間の分単位スロットに基づいてユーザの睡眠期間40_1608を決定することができる。例えば、睡眠期間40_1608は、それら連続する15分間の分単位スロットによってカバーされる時間期間に対応することができる。図40-16Aを参照すると、睡眠期間は、午後11時に始まり午前7時に終わる時間期間に対応することができる。
図40-16Bは、スロットワイズの確率を確率曲線に変換するための例示的な方法を示すグラフ40_1650である。例えば、ユーザの睡眠サイクルの一貫した予測を可能とするために、ユーザが眠りに落ちると単調に上昇し(例えば、デバイスがロックされたままとなる確率が上がる)、ユーザが目覚めると単調に下がる(例えば、デバイスがロックされたままとなる確率が下がる)確率曲線(例えば、鐘形曲線に類似する)を生成することが有用であり得る。
一部の実装では、確率曲線40_1652を生成するために、コンテキストデーモン40_102は上記にて決定された睡眠確率閾値を用いて、15分間の分単位タイムスロットそれぞれについて計算された確率(例えば、平均)をバイナリー(例えば、1又は0)値に変換することができる。例えば、睡眠期間内の(例えば、睡眠閾値40_1606を超える)15分間の分単位タイムスロットには1という値(1)を割り当てることができ、睡眠期間の外の15分間の分単位タイムスロットにはゼロ(0)の値を割り当てることができる。バイナリー値が15分間の分単位タイムスロットのそれぞれに割り当てられると、コンテキストデーモン40_102はバイナリー値に曲線(例えば、確率曲線40_1652)を適合させることができる。生成されると、コンテキストデーモン40_102は確率曲線40_1652を用いて、特定の時刻及び/又は一日の間の特定の時間期間にユーザが寝ている確率を予想することができる。例えば、コンテキストデーモン40_102は、確率曲線40_1652を用いて、ユーザが今後いつ寝ている可能性が高いかを予測することができる。図40-16Bを参照すると、グラフ40_1650で表される計算された睡眠期間が午後11時~午前7時の間にあるため、コンテキストデーモン40_102は、ユーザが今後、午後11時~午前7時の間は寝ているであろうと予測することができる。例えば、睡眠予測が日常的に(例えば、ユーザが朝に目覚めた後に)行われるのであれば、コンテキストデーモン40_102は現在の日の後ほどに午後11時~午前7時の間でユーザが寝るであろうと予測することができる。
不規則部分を扱う-外れ値データと欠落データ
一部の実装では、コンテキストデーモン40_102は、過去イベントストリームデータ内の外れ値データを扱うように構成することができる。一部の実装では、コンテキストデーモン40_102は、そうでなければ睡眠期間に対応する時間ブロック内の外れ値の15分間の分単位スロットを扱うように構成することができる。例えば、睡眠期間についての候補であり得る時間ブロック(例えば、睡眠閾値を超える値を有し、組み合わされると最小の睡眠期間を超過する、連続する15分間の分単位スロットのブロック)には、睡眠閾値を超えない15分間の分単位スロットを含んでいることがある。例えば、最小睡眠期間が5時間であれば、睡眠期間内には少なくとも20の15分間の分単位スロットがある。20の15分間の分単位スロットがある時、睡眠閾値を超えるものが10スロットあり、その後に睡眠閾値を超えない(例えば、外れ値の)スロットが1つあり、その後に睡眠閾値を超えるスロットが9つあってもよい。このシナリオの例は図40-16Aを参照してみることができ、ここでは、外れ値のスロット40_1608は睡眠閾値40_1606を超えず、睡眠閾値40_1606を超えるスロット(例えば、40_1604)で囲まれている。睡眠閾値を超える15分間の分単位スロットのブロック内に少数(例えば、1、2)の外れ値の15分間の分単位スロットがあるとき、上述したように、コンテキストデーモン40_102は、睡眠期間(例えば、睡眠曲線)を生成できるように、外れ値の15分間の分単位スロットを睡眠閾値を超えているかのように扱うことができる。例えば、睡眠期間に対応する連続する15分間の分単位スロットのブロックを判定するとき、コンテキストデーモン40_102は外れ値の15分間の分単位スロットを無視することができる。15分間の分単位スロットをバイナリー値に変換して確率曲線を生成するとき(図40-16Bにあるように)、コンテキストデーモン40_102は外れ値の15分間の分単位スロットに1という値を割り当て、確率曲線が生成できるようにすることができる。
一部の実装では、コンテキストデーモン40_102は、睡眠期間を予測するときに過去イベントストリーム内で外れ値の日(例えば、24時間期間、過去データベクトルなど)を扱うように構成することができる。例えば、短期平均を計算する前に、コンテキストデーモン40_102は、過去7日間のロック状態イベントデータ(例えば、過去コンテキストデータ)を比較することができる。例えば、コンテキストデーモン40_102は、過去の7つの24時間期間のそれぞれについて、過去データベクトルの類似分析を実行することができる。7日間のうちの1つ(例えば、外れ値の日)のデータが他の6日間と完全に異なるようであれば、コンテキストデーモン40_102は外れ値の日を短期平均計算から外すことができる。例えば、15分間の分単位スロットについての過去のデバイスロック状態データにおける小さな日々の変動は、正常であり得る。しかしながら、ロックデータ(例えば、ユーザ睡眠期間に対応する)の大きなブロックでのずれは異常である。コンテキストデーモン40_102は、過去データ内の日々のパターンを比較し、ある1日について観察された使用パターン(例えば、ユーザの行動)がその週の他の日について観察される使用パターンに対応しないことを検出することにより、外れ値の日を検出することができる。例えば、コンテキストデーモン40_102は、外れ値の日における15分間の分単位スロットのブロック(24時間期間)が、15分間の分単位スロットの同一ブロックが他の日では通常ロックされているときに、ロック解除されていると判定することができる。一度外れ値の日が検出されると、コンテキストデーモン40_102は上記の短期平均化計算から外れ値の日を外すことができる。
同様に、長期平均を計算する前に、コンテキストデーモン40_102はロック状態イベントデータ(例えば、過去コンテキストデータ)を、例えば、過去4週間について、同じ曜日について比較することができる。複数の日のうちの1日のデータが他の4日と著しく異なるようであれば(例えば、外れ値の日)、コンテキストデーモン40_102は外れ値の日を長期平均計算から外すことができる。例えば、15分間の分単位スロットについての過去デバイスロック状態データにおける週毎の変動は通常であり得る。しかしながら、ロックデータ(例えば、ユーザ睡眠期間に対応する)の大きなブロックでのずれは異常である。コンテキストデーモン40_102は、過去データ内の週毎のパターンを比較し、ある日について観察された使用パターン(例えば、ユーザの行動)が過去の週の同じ曜日について観察された使用パターンに対応しないことを検出することで、外れ値の日を検出することができる。外れ値の日が検出されると、コンテキストデーモン40_102は上記の長期平均化計算から外れ値の日を外すことができる。
一部の実装では、コンテキストデーモン40_102は、ユーザの行動パターンのずれに基づいて外れ値の日を検出することができる。例えば、ユーザが通常午後11時~午前7時まで寝る場合、過去のロックイベントデータは、デバイスが午後11時~午前7時の間は(ほぼ)ロックされたままとなっていたことを示す。しかしながら、珍しい日にはユーザが一晩中、勉強又は仕事で起きているかもしれず、よって、その日の睡眠期間は別の時間期間(例えば、午前6時~午後0時)にずれる可能性がある。一部の実装では、コンテキストデーモン40_102はこの睡眠パターンのずれを過去のロック状態データに基づいて検出して、平均化計算からこの日を外すことができる。
一部の実装では、コンテキストデーモン40_102は、既知又は一般的に受け入れられる人の行動における制限に基づいて外れ値の日を検出することができる。例えば、ユーザが週末に旅行に行って、コンピューティングデバイス(例えば、スマートフォン)を誤って、週末中ずっと、自宅に置きっぱなしにするかもしれない。この場合、デバイスは週末中ずっと(例えば、2日間)ロックされたままとなり、コンテキストデーモン40_102によって睡眠期間として間違って解釈され得るロック状態データのブロックが生成されてしまう。コンテキストデーモン40_102は、ロック状態データのブロックに対応する時間期間(例えば、睡眠期間)を最大睡眠期間(例えば、12時間、24時間など)と比べることによって、この状況を検出することができる。例えば、最大睡眠期間は常識(例えば、人は通常、24時間を越えて寝ない)に基づいてもよく、又は観察データ(例えば、ユーザについて観察された最大の睡眠期間は10時間である)に基づくことができる。時間のブロックが最大睡眠期間を超過した場合、コンテキストデーモン40_102は、上記の長期及び/又は短期計算を実行するときに、この時間のブロックに対応する日又は複数の日を無視することができる。
一部の実装では、コンテキストデーモン40_102は、過去イベントストリーム内の欠落データを扱うように構成することができる。例えば、ユーザがコンピューティングデバイスをある期間にわたって電源を落とすことがある、又はデバイスは、長期間外部電源からプラグを抜かれた後にバッテリ電力を失うことがある。デバイスの電源が落ちている間、デバイスはコンテキスト情報を収集することができず、過去イベントストリームを生成することができない。再びコンピューティングデバイスの電源がオンされると、コンテキストデーモン40_102は、デバイスの電源が落とされたときの期間に対応する欠落データに基づいて今後のイベント(例えば、今後の睡眠期間)を予測しようとしてもよい。この場合、コンテキストデーモン40_102はこの期間についてイベント(例えば、コンテキストアイテム)データ値が存在しないと判定して、上記の短期及び/又は長期平均化計算を実行する時にこの期間に対応する日又は複数の日(例えば、過去データベクトル)を無視する(例えば、省く)ことができる。
予測されるイベントに基づくアクティビティのスケジューリング
図40-17は、予測された今後のイベントを含む例示的なイベントストリーム40_1700を示す。例えば、上記の機構を用いて、コンテキストデーモン40_102は今後の睡眠期間40_1702を予測することができる。一部の実装では、予測された今後のイベントを用いて、コンピューティングデバイス内のアクティビティ(例えば、コンテキストコールバック)をスケジューリングすることができる。図40-1を参照すると、要求クライアント40_126は、予測されるイベントの前にコールバック通知を要求することができる。例えば、要求クライアント40_126は、コンテキストデーモン40_102が要求クライアント40_126にユーザが眠りに落ちる30分前に通知すべきであると指定する述語を含むコールバック要求を、コンテキストデーモン40_102に送ることができる。コールバック要求が受信されたときに、コンテキストデーモン40_102は、予測される睡眠期間が始まる30分前に通知することをスケジューリングすることができる。同様に、要求クライアントは、コンテキストデーモン40_102が要求クライアント40_126にユーザが眠りに落ちた1時間後に通知すべきであると指定する述語を含むコールバック要求を、コンテキストデーモン40_102に送ることができる。コールバック要求が受信されたときに、コンテキストデーモン40_102は、予測される睡眠期間が始まった1時間後に通知することをスケジューリングすることができる。
一部の実装では、コンテキストデーモン40_102は、イベントの予測される時間での現在のコンテキストに基づいて、今後のイベントの予測を確認することができる。例えば、要求クライアント40_126が、コンテキストデーモン40_102が要求クライアント40_126に予測睡眠期間が始まった30分後に通知するように要求する場合、コンテキストデーモン40_102は、現在のコンテキスト40_112(例えば、コンテキストアイテム値)を分析してデバイスがロックされているかどうかを判定することにより、ユーザがその時間に実際に寝ていることを確認することができる。予測睡眠期間が始まってから30分後にデバイスがロック解除されている場合(例えば、ユーザが寝ていない)、コンテキストデーモン40_102は要求クライアント40_126に通知しない。一部の実装では、他のコンテキスト情報を用いて予測睡眠期間を確認することができる。例えば、加速度計状態を、睡眠期間を確認するために用いることができる。例えば、ほとんどのスマートフォンユーザが、寝る時にスマートフォンをテーブルの上か床の上に置くであろう。テーブル及び床は、通常動かないものである。よって、スマートフォンは加速度計データを、生成したとしても、ほとんど生成しない。もしスマートフォンが加速度計データを生成しているのであれば、スマートフォンはおそらく、ユーザが動いている間、ユーザのポケットの中にある可能性が高い。よって、加速度計データは、予測睡眠期間中にユーザが動いていて寝ていないことを示すことができる。
一部の実装では、コンテキストデーモン40_102は、前触れ(precursor)イベントを識別することで、今後のイベントの予測を改善することができる。例えば、コンテキストデーモン40_102は過去イベントストリームデータを分析して、ユーザアクティビティと予測されるイベントとの間の関係性を特定することができる。例えば、ユーザは、電子メールアプリケーション、ソーシャルネットワーキングアプリケーション、ニュースアプリケーション、又は別のアプリケーションを、寝る前に確認する習性があるかもしれない。コンテキストデーモン40_102はこれらのパターン(例えば、アラーム時計アプリケーションを用いてから寝る)を検出して、前触れのアプリケーション又は複数のアプリケーションを特定する(例えば、時計アプリケーション、ニュースアプリケーションなど)。前触れアプリケーション(又は複数のアプリケーション)が特定されると、コンテキストデーモン40_102は前触れアプリケーションを用いて、ユーザが間もなく寝ることを予測することができる。例えば、コンテキストデーモン40_102は、過去イベントデータに基づいて、ユーザがアラーム時計アプリケーションを用いた10分後に典型的に眠りに落ちると判定することができる。コンテキストデーモン40_102が、ユーザが午後11時に寝ると予測していて、ユーザがアラーム時計アプリケーションを午後10時に使用している場合、コンテキストデーモン40_102は、前触れのアラーム時計アプリケーションアクティビティに基づいて予測睡眠期間の開始を午後11時から午後10時10分に調節することができる。一部の実装では、コンテキストデーモン40_102は、予測睡眠期間の開始と終了時間を、予測睡眠期間の持続時間を調節することなく、調節することができる。一部の実装では、コンテキストデーモン40_102は、終了時間は調節せずに予測睡眠時間の開始時間を調節することで、予測睡眠期間の開始時間を調節することができ、よって、予測睡眠期間の持続時間が延長される。あるいは、ユーザが前触れアプリケーションを使用しているとコンテキストデーモン40_102が検出した(例えば、現在のコンテキストが、フォーカスアプリケーションがその前触れアプリケーションであると示す)とき、コンテキストデーモン40_102はユーザのアクティビティを監視して、ユーザがいつコンピューティングデバイスをロックして、デバイスがロックされてから現在の睡眠期間を開始するかを判定することができる。
他の使用事例
一部の実装では、コンピューティングデバイスにて稼働するコンテキストクライアントは、上記の睡眠予測を用いて、ユーザが寝ている間の背景タスクをスケジューリングすることができる。例えば、オペレーションシステムプロセス(例えば、アプリケーション更新部)は、システムメンテナンスにシステムリソースを充てることでユーザにとって不便とならないよう、ユーザが寝ている間にいくらかのシステムメンテナンスタスク(例えば、アプリケーション更新のダウンロード及び/又はインストール)をスケジューリングする必要がある場合がある。コンテキストデーモン40_102は、以下に更に説明するように、様々なデバイス構成要素(例えば、ハードウェア、ソフトウェアなど)の状態を分析して、スケジューリングされるアクティビティが何らかのユーザアクティビティと干渉する可能性があるかを判定することができる。
一部の場合では、オペレーティングシステムプロセスは、システムメンテナンスタスクを行う前にユーザのパスコード(例えば、パスワード)を必要とする可能性がある。ユーザが寝ている間はユーザがパスコートを提供することができないため、オペレーティングシステムプロセスは、ユーザの予測睡眠期間前のどこか(例えば、40_10分)でコンテキストデーモン40_102からのコールバック通知を要求することができる。コールバック要求を受信すると、コンテキストデーモン40_102は、予測された睡眠期間が始まる10分前にコールバック通知をスケジューリングすることができる。スケジューリングされた時間になる(例えば、現在時刻が予定時刻と一致する)と、コンテキストデーモン40_102はコールバック通知をオペレーティングシステムプロセスに送ることができる。オペレーティングシステムプロセスがコールバック通知を受信すると、オペレーティングシステムプロセスは、ユーザが寝ている間にオペレーティングシステムがメンテナンスタスクを実行できるように、ユーザにユーザのパスコードを入力するように促すことができる。例えば、オペレーティングシステムプロセスはユーザからパスコードを受信して、システムメンテナンスタスクを実行中にパスコードを使うために記憶することができる。システムメンテナンスタスクが完了し、パスコードがもう必要でなくなると、オペレーティングシステムはユーザのパスコードをコンピューティングデバイスから削除することができる。
ユーザが寝ている間にメンテナンスタスクを開始するために、オペレーティングシステムプロセスは、予測睡眠期間が始まったいくらか後の時間(例えば、30分)にコールバック通知を要求することができる。コールバック要求を受信すると、コンテキストデーモン40_102は、予測睡眠期間が始まった45分後に対するコールバック通知を、スケジューリングすることができる。スケジューリングされた時刻になったとき(例えば、現在時刻がスケジューリングされた時刻と等しい)、コンテキストデーモン40_102は、ユーザが、コールバック通知をオペレーティングシステムに送る前にコンピューティングデバイスを使用しておらず、かつ/又は使用しようとしていないことを確かめることができる。
一部の実装では、コンテキストデーモン40_102は、ユーザがコンピューティングデバイスを使用していないことを、コンピューティングデバイスがユーザによって始められたアクティビティにサービスしているかどうかで判定することができる。例えば、コンピューティングデバイスがロックされていても(例えば、ユーザが寝ている可能性があることを示す)、コンピューティングデバイスはユーザのナビゲーション要求にサービスするナビゲーション関連のアクティビティを実行することができる。よって、コンテキストデーモン40_102が、コンピューティングデバイスのナビゲーション構成要素(例えば、グローバルナビゲーション衛生システム受信機)がオンになっていると判定したときに、コンテキストデーモン40_102はユーザがコンピューティングデバイスを使用していると判定して、予測睡眠期間中にオペレーションシステムプロセスへのコールバック通知を送信するのをキャンセル又は遅延させることができる。同様に、コンテキストデーモン40_102が、コンピューティングデバイスが、個人的なホットスポットサービスを提供している、ユーザ要求に応じて別のユーザデバイスとデータを同期させている(例えば、自動バックグラウンド同期と対照的に)、又はコールバック通知がスケジューリングされている時間に他のユーザが開始したサービスを何かしら提供していると判定すると、コンテキストデーモン40_102は、デバイスはロックされているにも関わらずユーザがまだコンピューティングデバイスを使用しているために、オペレーションシステムプロセスへのコールバック通知の送信を取り消す又は遅延させることができる。
一部の実装では、コンテキストデーモン40_102は、ユーザがコンピューティングデバイスを使用しようとしていないことを、コンピューティングデバイスがユーザから見えるアクティビティを開始しようとしているか否かで確かめることができる。例えば、コンピューティングデバイス上で稼働する様々なプロセスが、ユーザに通知する又はユーザの注意を引くことができる。通信アプリケーション(例えば、インスタントメッセージング、テキストメッセージング、電子メール、電話など)は、受信したメッセージについてユーザに思い出させることができる。例えば、通信アプリケーションは、メッセージが受信された10分後に、ユーザに対して受信メッセージを読む又はそれに返信するように思い出させるように構成することができる。時計アプリケーションは、どこかの今後の時間でユーザに通知する(例えば、起こす)ように構成されるアラーム時計機能を含むことができる。カレンダーアプリケーションは、今後にスケジューリングされているカレンダーイベントについて、ユーザに思い出させるように構成することができる。もしユーザが会議に出席するようにスケジューリングされているのであれば、ナビゲーションアプリケーションは、ユーザの現在地から会議場所まで移動するのにどれくらいの時間が掛かるかに基づいて、ユーザに出発時刻リマインダを提示することができる。運動アプリケーションは、ユーザに立ち上がる、歩き回る、ランニングしに行く、又は他の種類の運動をするように思い出させるよう、構成することができる。これらの通知、助言、警告などのそれぞれはユーザに向けられており、ユーザにコンピューティングデバイスと相互作用するように促す、又は相互作用させる。コンテキストデーモン40_102は、これらのユーザに見えるイベントのうちの1つが閾値時間期間内(例えば、1分、10分、システムメンテナンスタスクを完了させるのに必要な時間など)に発生するかどうかを判定して、ユーザがコンピューティングデバイスを使い始めるところであるためにオペレーティングシステムプロセスへのコールバック通知を送るのを遅延させるか取り消すことができる。
プロセス
図40-18は、コンピューティングデバイス上でのコンテキスト変更をクライアントに通知するための例示的なプロセス40_1800のフロー図である。例えば、上記の、システム40_100に対応するコンピューティングデバイスが、プロセス40_1800を実行することができる。
ステップ40_1802では、コンピューティングデバイスはコンテキストコールバック要求を受信することができる。例えば、コンテキストデーモン40_102は、上記のように、要求クライアント40_126からコールバック要求を受信することができる。コールバック要求は、要求クライアント40_126の識別子と、コンテキストデーモン40_102が要求クライアント40_126にコールバック通知を送るべきコンテキスト(例えば、デバイス状態)条件を定義する述語と、を含むことができる。一部の実装では、コールバック要求を受信した後、コンテキストデーモン40_102は、コールバック要求を特定するためにコンテキストデーモン40_102及び要求クライアント40_126が用いることのできるコールバック識別子を生成することができる。例えば、コンテキストデーモン40_102は、要求クライアント40_126からコールバック要求を受信したことに応じて、要求クライアント40_126にコールバック識別子を返すことができる。コンテキストデーモン40_102は、例えば、コールバック要求を、コールバックレジストリ40_114及び/又は述語データベース40_116に記憶することができる。
ステップ40_1804では、コンピューティングデバイスはコールバック要求にサービスするためにコンテキストモニタを初期化することができる。例えば、コンテキストデーモン40_102は、上記のように、コールバック要求述語に指定されたコンテキストアイテムに対応するモニタバンドル40_106(又は複数のバンドル)をローディングすることができる。
ステップ40_1806では、コンピューティングデバイスは、コンテキストモニタバンドル40_106(コンテキストモニタ40_108)から現在のコンテキスト情報を受信することができる。例えば、コンテキストモニタ40_108のそれぞれは、様々なシステム構成要素とインタフェースして、システム構成要素の状態を取得することができる。コンテキストモニタ40_108は次に、状態をコンテキストデーモン40_102に報告することができる。あるいは、コンテキストデーモン40_102は報告クライアント40_124から状態情報を受信することができる。コンテキストデーモン40_102は、上記のように、受信された状態情報に基づいて現在のコンテキスト40_112を生成することができる。
ステップ40_1808では、コンピューティングデバイスは、現在のコンテキストが要求されたコンテキストと一致すると判定することができる。例えば、コンテキストデーモン40_102はコンテキスト要求述語を現在のコンテキストと比較して、現在のコンテキストが述語に指定された条件を満たすと判定することができる。
ステップ40_1810では、コンピューティングデバイスは要求クライアント40_126にコールバック通知を送ることができる。例えば、現在のコンテキストが要求コンテキストと一致すると判定したことに応じて、コンテキストデーモン40_102は、コールバック要求を特定するコールバック通知を要求クライアント40_126に送ることができる。要求クライアント40_126は、コールバック要求識別子を用いて、どのコールバック述語がコールバックをトリガーしたのかを(例えば、コンピューティングデバイスの現在の動作コンテキストを判定するために)判定することができる。要求クライアント40_126は次に、現在のコンテキストに適切なアクションを実行することができる。
図40-19は、コールバック要求にサービスするためにコンテキストデーモンを再起動するための例示的なプロセス40_1900のフロー図である。例えば、コンピューティングデバイス上で稼働しているプロセスは、プロセスマネジャーが、プロセスが一定期間アイドル状態であると判定した時に、オペレーティングシステムのプロセスマネジャーサービスによって終了させられてもよい。プロセスマネジャー(又は何らかの他のプロセス)がコンテキストデーモン40_102を終了させると、コンピューティングデバイスはプロセス40_1900を実行してコンテキストデーモン40_102を再起動して、コンテキストデーモン40_102がコンテキスト情報を収集して要求クライアント40_126にコールバック通知を送るようにすることができる。例えば、プロセス40_1900は、図7~13を参照して説明するコンテキストデーモン再起動機構に対応することができる。
ステップ40_1902では、コンピューティングデバイスは、コンテキストデーモン40_102と要求クライアント40_126との間で通信セッションを開始することができる。一部の実装では、要求クライアント40_126は、コンテキストデーモン40_102に、上記のように、コールバック要求を送信することにより、コンテキストデーモン40_102との通信セッションを開始することができる。コールバック要求は、上記のように、クライアント識別子とコールバック述語とを含むことができる。一部の実装では、コンテキストデーモン40_102は、要求クライアント40_126によって開始された通信セッションを用いてでしか、要求クライアント40_126と通信する(例えばコールバック通知を送る)ことができない。一部の実装では、コンテキストデーモン40_102は、コールバック要求をコールバックデータベース(例えば、述語データベース40_116)に記憶させることができる。
ステップ40_1904では、コンピューティングデバイスはコンテキストデーモン40_102が非アクティブであると判定することができる。例えば、コンテキストデーモン40_102がコールバック要求又はコンテキスト情報の更新を一定期間受信しないときに、プロセスマネジャーはコンテキストデーモン40_102がアイドル状態又は非アクティブであると判定することができる。
ステップ40_1906では、コンピューティングデバイスはコンテキストデーモン40_102をシャットダウンすることができる。例えば、コンテキストデーモン40_102が非アクティブであるという判定に基づいて、プロセスマネジャーは、システムリソース(例えば、バッテリ電力、メモリなど)を節約するために、コンテキストデーモン40_102をシャットダウン又は終了することができる。コンテキストデーモン40_102をシャットダウンした後、要求クライアント40_126とコンテキストデーモン40_102との間の通信セッションもまた、終了する。
ステップ40_1908では、コンピューティングデバイスは、コンテキストデーモン40_102に関連付けられたイベントを検出することができる。例えば、イベントは、コンテキストクライアント(例えば、要求クライアント40_126、報告クライアント40_124など)がコンテキストデーモン40_102にメッセージを送ることであってもよい。例えば、メッセージは、要求クライアント40_126からのコールバック要求であってもよい。メッセージは、報告クライアント40_124から受信されたコンテキスト情報更新であってもよい。一部の実装では、イベントは、コンテキストデーモン40_102が関心があると登録している起動デーモン40_702によって受信されたデバイス状態更新であり得る。
ステップ40_1910では、コンピューティングデバイスはコンテキストデーモン40_102を再起動することができる。例えば、コンテキストクライアントが終了されたコンテキストデーモン40_102にメッセージを送るときに、コンピューティングデバイスはコンテキストデーモン40_102を再起動してコンテキストデーモン40_102がメッセージを受信して扱うことができるようにすることができる。起動デーモン40_702がコンテキストデーモン40_102から受信した要求に対応するデバイス状態更新を受信したときに、起動デーモン40_702はコンテキストデーモン40_102を再起動することができる。
ステップ40_1912では、コンピューティングデバイスは登録されたコールバック要求をリストアして、デーモン40_102をコールバックことができる。例えば、再起動後、コールバックデーモン40_102は、コールバックデーモン40_102が終了する前に受信されたコールバック要求をリストアすることができる。例えば、コールバックデーモン40_102は、以前に受信されたコールバックをコールバックデータベースからリストアすることができる。
ステップ40_1914では、コンピューティングデバイスはリストアされたコールバック要求にサービスするために必要なイベントモニタを初期化することができる。例えば、コンテキストデーモン40_102は、コールバック要求にサービスするのに必要なコンテキスト情報を収集するのに必要なモニタバンドル40_106をローディングすることができる。
ステップ40_1916では、コンピューティングデバイスは、コンテキストデーモン40_102と要求クライアント40_126との間での通信セッションを再確立することができる。例えば、コンテキストデーモン40_102が再度稼働すると、要求クライアント40_126はコンテキストデーモン40_102にメッセージ(例えば、コールバック要求)を送って、通信セッションを再確立することができる。コンテキストデーモン40_102は、再確立された通信セッションを用いて、コールバック要求に指定された述語に従ってクライアントへのコールバック通知を送信することができる。
図40-20は、コールバック要求を受信するためにコールバッククライアントを再起動するための例示的なプロセス40_2000のフロー図である。例えば、コンピューティングデバイス上で稼働しているプロセスは、プロセスマネジャーが、プロセスが一定期間アイドル状態であると判定した時に、オペレーティングシステムのプロセスマネジャーサービスによって終了させられてもよい。プロセスマネジャー(又は何らかの他のプロセス)が要求クライアント40_126を終了させたときに、要求クライアント40_126がコンテキストデーモン40_102からコールバック通知を受信できるように、コンピューティングデバイスはプロセス40_2000を実行して要求クライアント40_126を再起動することができる。例えば、プロセス40_2000は、図7~13を参照して説明した要求クライアント再起動機構に対応することができる。
ステップ40_2002では、コンピューティングデバイスは、コンテキストデーモン40_102と要求クライアント40_126との間での通信セッションを開始することができる。一部の実装では、要求クライアント40_126はコンテキストデーモン40_102との通信セッションを、上記のように、コールバック要求をコンテキストデーモン40_102に送信することによって開始することができる。コールバック要求は、上記のように、クライアント識別子とコールバック述語とを含むことができる。一部の実装では、コンテキストデーモン40_102は、要求クライアント40_126によって開始された通信セッションを用いてでしか、要求クライアント40_126と通信する(例えばコールバック通知を送る)ことができない。一部の実装では、コンテキストデーモン40_102は、コールバック要求をコールバックデータベース(例えば、述語データベース40_116)に記憶させることができる。
ステップ40_2004では、コンピューティングデバイスは要求クライアント40_126が非アクティブであると判定することができる。例えば、要求クライアント40_126がコンピューティングデバイス内で著しい処理を実行していない(例えば、要求クライアント40_126についてのCPU使用が閾値レベル未満である)ときに、プロセスマネジャーは要求クライアント40_126がアイドル状態にあるか非アクティブであると判定することができる。
ステップ40_2006では、コンピューティングデバイスは要求クライアント40_126をシャットダウンすることができる。例えば、要求クライアント40_126が非アクティブであるという判定に基づいて、プロセスマネジャーは、システムリソース(例えば、バッテリ電力、メモリなど)を節約するために、要求クライアント40_126をシャットダウン又は終了させることができる。要求クライアント40_126をシャットダウンした後、要求クライアント40_126とコンテキストデーモン40_102との間の通信セッションもまた、終了する。よって、コンテキストデーモン40_102は、要求クライアント40_126にコールバック通知を届ける通信チャネルを有さないことになる。
ステップ40_2008では、コンピューティングデバイスは要求クライアント40_126に関連付けられたイベントを検出することができる。例えば、コンテキストデーモン40_102は、コンテキストコールバック述語と一致する(例えば、述語によって指定された条件に対応する)現在のコンテキストを検出することができる。起動デーモン40_702は、コンテキストデーモン40_102から受信されコンテキストクライアント40_126のクライアント識別子に関連付けられたデバイス状態要求に対応するデバイス状態を検出することができる。
ステップ40_2010では、コンピューティングデバイスは要求クライアント40_126を再起動することができる。例えば、コンテキストデーモン40_102が、現在のコンテキストがコンテキストコールバック述語と一致すると検出すると、コンテキストデーモン40_102は要求クライアント40_126にコールバック通知を送ることを試みることができる。しかしながら、コンテキストデーモン40_102と要求クライアント40_126との間の通信セッションが終了されたために、コンテキストデーモン40_102はコールバック通知を要求クライアント40_126に送ることができない。よって、要求クライアント40_126との通信チャネルが終了されていることを検出した後、コンテキストデーモン40_102は要求クライアント40_126を再起動する要求の中に、要求クライアント40_126から受信されたクライアント識別子を入れて起動デーモン40_702に送ることができる。一部の実装では、起動デーモン40_702に要求クライアント40_126を再起動するように要求すると、コンテキストデーモン40_102は、要求クライアント40_126のクライアント識別子に関連付けられる全てのコールバック要求データ(例えば、コールバックレジストリ40_114及び/又は述語データベース40_116に記憶された)を削除することができる。クライアント識別子を受信すると、起動デーモン40_702は、要求クライアント40_126を再起動することができる。あるいは、コンテキストデーモン40_102から受信されコンテキストクライアント40_126のクライアント識別子に関連付けられたデバイス状態要求に対応するデバイス状態を検出すると、起動デーモン40_702は要求クライアント40_126を再起動することができる。
ステップ40_2012では、コンピューティングデバイスは、コンテキストデーモン40_102と要求クライアント40_126との間での通信セッションを再確立することができる。例えば、再起動後、要求クライアント40_126は新たなコールバック要求をコンテキストデーモン40_102に送り、新たな通信セッションを始めることができる。
ステップ40_2014では、コンピューティングデバイスは再起動された要求クライアント40_126からクライアントコールバック要求を受信することができる。例えば、コンテキストデーモン40_102は、ステップ40_2008にて説明したように、現在のコンテキストに対応する同一のコールバック述語を指定する要求クライアント40_126からのコールバック要求を受信することができる。コールバック要求を受信すると、コンテキストデーモン40_102はコールバック要求がコンピューティングデバイスの現在のコンテキストに対応すると判定することができる。
ステップ40_2016では、コンピューティングデバイスは要求クライアント40_126にコールバック通知を送ることができる。例えば、現在のコンテキストがコールバック要求と一致すると判定すると、コンテキストデーモン40_102は、再確立された通信チャネルを用いてコールバック通知を要求クライアント40_126に送ることができる。
図40-21は、過去コンテキスト情報に基づいて今後のイベントを予測するための例示的なプロセス40_2100のフロー図である。例えば、プロセス40_2100は、図40-14~17を参照して説明したイベント予測機構に対応することができる。
ステップ40_2102では、コンピューティングデバイスはコンテキストアイテムについての過去コンテキストデータを取得することができる。例えば、コンテキストデーモン40_102(例えば、過去モニタ40_110を用いて)は現在のコンテキスト40_112におけるそれぞれのコンテキストアイテムについての、経時的なデバイスコンテキスト(例えば、デバイス状態)の変化を示す過去イベントストリームを生成することができる。例えば、過去モニタ40_110は、上記のように、いつデバイスがロック又はロック解除されていたかを示す「ロック状態」コンテキストアイテムについての過去イベントストリームを生成することができる。
ステップ40_2104では、コンピューティングデバイスはコンテキストアイテムについての過去コンテキストデータベクトルを生成することができる。例えば、コンテキストデーモン40_102は、過去28日にわたって24時間期間でのコンテキストアイテムについての、過去コンテキストデータを分析することができる。例えば、コンテキストデーモン40_102は、過去28の24時間期間のそれぞれについて、28のデータベクトルを生成することができる。28のデータベクトルのそれぞれは、24時間期間それぞれにおける96の15分間の分単位スロットに対応する、96のデータエントリ(例えば、各ベクトルは96の長さを有することができる)を含むことができる。コンテキストデーモン40_102は、28の以前の24時間期間(例えば、以前の28日)のそれぞれの間で記録されたコンテキストアイテム(例えば、デバイス状態)の観察値に対応する確率値を96の15分間の分単位スロットのそれぞれに割り当てることができる。例えば、コンテキストデーモン40_102は、28ベクトルにおける96のデータスロットのそれぞれに、コンピューティングデバイスが過去28日における96の15分間の分単位スロットのそれぞれの間でロックされたままとなる可能性を示す値(例えば、0、1、0.45など)を割り当てることができる。
ステップ40_2106では、コンピューティングデバイスは、特定のコンテキスト値がそれぞれのタイムスロットで観察される短期の確率を判定することができる。例えば、短期の確率は、過去の何日かで収集されたデータに基づいて計算することができる。例えば、コンテキストデーモン40_102は、デバイスがロックされたままとなる短期確率(PS)を、上記「短期間での平均化」セクションにて説明したように、過去7日間にわたる15分間の分単位スロットを平均化することで、計算することができる。
ステップ40_2108では、コンピューティングデバイスは、特定のコンテキスト値がそれぞれのタイムスロットで観察される長期の確率を判定することができる。例えば、長期の確率は、過去の数週間にわたって同じ曜日(例えば、日曜日、水曜日など)に収集されたデータに基づいて計算することができる。例えば、コンテキストデーモン40_102は、デバイスがロックされたままとなる長期確率(PL)を、上記「長期間での平均化」セクションで説明するように、過去4週間にわたる15分間の分単位スロットを平均化することで、計算することができる。
ステップ40_2110では、コンピューティングデバイスは短期及び長期の確率を組み合わせて、組み合わされた確率を生成することができる。例えば、コンテキストデーモン40_102は短期確率(PS)と長期確率(PL)とを組み合わせて、上記のように、組み合わされた確率(P)を生成することができる。一部の実装では、コンテキストデーモン40_102は長期確率(又は短期確率)を加重して、組み合わされた確率に対する長期確率の影響を調節することができる。
ステップ40_2112では、コンピューティングデバイスはコンテキストアイテム値についての確率曲線を生成することができる。例えば、コンテキストデーモン40_102は、上記「睡眠曲線の生成」セクションで説明するように、スロットワイズの確率値を確率曲線に変換することができる。
ステップ40_2114では、コンピューティングデバイスは特定のデバイスコンテキストの今後の発生を予測することができる。例えば、確率曲線が生成されると、コンテキストデーモン40_102は今後の同一のコンテキストアイテム値の発生率を確率曲線に基づいて予測することができる。例えば、上記のロック状態コンテキストの例を用いて、コンテキストデーモン40_102は、デバイスが午後11時~午前7時の時間中、ロックされたままとなることを予測することができる。このロック状態コンテキストアイテム予測に基づいて、コンテキストデーモン40_102は、ユーザがこの予測時間中には寝ているであろうことを推論することができる。
図40-22は、睡眠コンテキストコールバック要求にサービスするための例示的なプロセス40_2200のフロー図である。例えば、プロセス40_2200は、少なくとも上記の図40-22にて説明される機構に対応することができる。例えば、要求クライアント40_126(例えば、アプリケーション、ユーティリティ、オペレーティングシステムツールなど)は、ユーザが寝ている時にコンテキストデーモン40_102がプロセスを通知するべきであることを指定するコールバック要求を、コンテキストデーモン40_102に送ることができる。例えば、要求クライアント40_126は、ユーザが寝ている間にメンテナンスアクティビティをスケジューリングし、これらのメンテナンスアクティビティによってユーザがコンピュータデバイスを使用している間に不便とならないように構成されてもよい。
ステップ40_2202では、コンピューティングデバイスは睡眠コンテキストコールバック要求を受信することができる。例えば、コンテキストデーモン40_102は、ユーザが就寝した10分後にコンテキストデーモン40_102が要求クライアント40_126に通知するべきであることを指定するコールバック要求を、要求クライアント40_126から受信することができる。
ステップ40_2204では、コンピューティングデバイスはコールバック要求にサービスするために睡眠コンテキストモニタを初期化することができる。例えば、睡眠コンテキストモニタは、コンピューティングデバイスのロック状態を監視するように構成されたコンテキストモニタ40_108を含むモニタバンドル40_106であってもよい。一部の場合では、コンテキストモニタ40_108はコンピューティングデバイスのロック状態及び睡眠コンテキストに関連付けられた他の構成要素の状態を監視するように構成することができる。例えば、コンテキストモニタ40_108は、ナビゲート構成要素、無線ネットワーキング構成要素(例えば、パーソナルホットスポット、Bluetoothなど)、デバイス同期構成要素、及び/又はデバイス入出力構成要素(例えば、ヘッドホンジャックコネクタなど)の状態を監視することができる。
ステップ40_2206では、コンピューティングデバイスは、コンテキストモニタから睡眠コンテキスト情報を受信することができる。例えば、コンテキストモニタ40_108はコンピューティングデバイスのロック状態及び/又は他の監視されている構成要素の状態を、コンテキストデーモン40_102に報告することができる。
ステップ40_2208では、コンピューティングデバイスは今後の睡眠期間を予測することができる。例えば、コンテキストデーモン40_102は、図40-21を参照して上述したように、今後の睡眠期間を予測することができる。
ステップ40_2210では、コンピューティングデバイスは睡眠コンテキストコールバックをスケジューリングすることができる。例えば、予測睡眠期間が午後11時~午前7時であり、睡眠コンテキストコールバックが、睡眠期間が始まった10分後に要求クライアント40_126がコールバックされるべきであると指定する場合、コンテキストデーモン40_102は、午後11時10分に対する睡眠コールバックをスケジューリングすることができる。
ステップ40_2212では、コンピューティングデバイスはスケジューリングされた睡眠コンテキストコールバックを処理することができる。例えば、コンテキストデーモン40_102は、現在の時刻がスケジューリングされた午前11時10分という時間と一致するときを検出して、要求クライアント40_126にコールバック通知を送るかどうかを判定することができる。
ステップ40_2214では、コンピューティングデバイスは、ユーザが寝ているかどうかを判定することができる。例えば、コンテキストデーモン40_102は様々なコンテキストアイテム(例えば、デバイス状態)を分析して、ユーザが寝ていることを確認することができる。一部の実装では、コンテキストデーモン40_102は、現在のデバイスロック状態が、デバイスがロックされていることを示すかどうかを判定することができる。デバイスがロックされていない場合、コンテキストデーモン40_102は睡眠コールバック通知を要求クライアント40_126に送るのを取り消すか又は遅らせることができる。
一部の実装では、コンテキストデーモン40_102は、ユーザがコンピューティングデバイスを受動的に使用しているかどうかを判定することができる。例えば、ユーザは、ユーザ入力を提供する又はデバイスをロック解除することなく、デバイスを使用して(例えば、それに頼って)いることができる。ユーザがコンピューティングデバイスを受動的に使用している場合、コンテキストデーモン40_102は睡眠コールバック通知を要求クライアント40_126に送るのを取り消すか又は遅らせることができる。例えば、ユーザは、デバイスがロックされている間に、コンピューティングデバイスのナビゲート機能を用いてもよい。よって、コンテキストデーモン40_102はナビゲート構成要素(例えば、GNSSシステム、WiFi、及び/又はセルラデータ送受信機など)がオンになっているかどうかを判定することができる。もし現在のコンテキスト情報がこれらのナビゲート構成要素がオンになっていることを示す場合、コンテキストデーモン40_102はユーザがコンピューティングデバイスを受動的に使用していて寝ていないと判定することができる。
受動的な使用の別の例としては、ユーザは、コンピューティングデバイスがロックされている間、コンピューティングデバイスによって提供されるパーソナルホットスポット機能を用いている可能性がある。現在のコンテキスト情報がパーソナルホットスポット構成要素に電源が入っていることを示す場合、コンテキストデーモン40_102は、ユーザがコンピューティングデバイスを受動的に使用していて寝ていないと判定することができる。
受動的に使用している別の例としては、ユーザは別のデバイス(例えば、ラップトップ、タブレットコンピュータ、スマートウォッチなど)と同期動作を始めている可能性がある。同期動作は、コンピューティングデバイスがロックされている間に実行されてもよい。現在のコンテキスト情報が、コンピューティングデバイスが同期動作を実行していることを示す場合、コンテキストデーモン40_102は、ユーザがコンピューティングデバイスを受動的に使用していて寝ていないと判定することができる。
ステップ40_2216では、コンピューティングデバイスは、差し迫ったユーザアクティビティが起きるようにスケジューリングされていないことを確認することができる。例えば、ユーザは実際に寝ているかもしれないが、コンピューティングデバイスはユーザを目覚めさせてユーザにコンピューティングデバイスを使わせる、ユーザに見える通知が間もなく発生するとスケジューリングされている可能性がある。例えば、コンピューティングデバイスは、睡眠コールバック通知がスケジューリングされたすぐ後に起きるようにスケジューリングされている、着信通信(例えば、テキストメッセージ、インスタントメッセージ、電子メール、電話通話など)についてのリマインダをスケジューリングしていた可能性がある。コンピューティングデバイスは、睡眠コールバック通知がスケジューリングされているすぐ後に起きるようにスケジューリングされているアラーム時計のアラームをスケジューリングしていた可能性がある。コンピューティングデバイスは、睡眠コールバック通知がスケジューリングされているすぐ後に起きるようにスケジューリングされる、カレンダーリマインダ又はアラームをスケジューリングしていた可能性がある。コンピューティングデバイスは、睡眠コールバック通知がスケジューリングされているすぐ後に起きるようにスケジューリングされる、出発時刻通知をスケジューリングしていた可能性がある。コンピューティングデバイスは、睡眠コールバック通知がスケジューリングされているすぐ後に起きるようにスケジューリングされる、運動リマインダをスケジューリングしていた可能性がある。コンテキストデーモン40_102が、ユーザアクティビティが閾値時間期間内(例えば、1分、5分など)に起きるようにスケジューリングされていると判定した場合、コンテキストデーモン40_102は睡眠コールバック通知を要求クライアント40_126に送るのを取り消すか又は遅らせることができる。
一部の実装では、コンピューティングデバイスは睡眠コールバック通知をクライアントに送ることができる。例えば、コンテキストデーモン40_102が、ステップ40_2214でユーザが寝ていると確認し、差し迫ったユーザアクティビティがスケジューリングされていないことを確認すると、コンテキストデーモン40_102は睡眠コールバック通知を要求クライアント40_126に送ることができる。
例示的なシステムアーキテクチャ
図1Aは、本セクションにて説明するシステム及びプロセスを実装するためのシステムアーキテクチャを有する例示的なデバイス100を示す。
コンテキスト監視/予測のための例示的な方法
一部の実施形態では、コンテキスト監視の方法は、コンピューティングデバイス上で実行されるコンテキストデーモンプロセスによって、1つ以上のコンテキストモニタによって監視される1つ以上のコンテキストアイテムに対応する値を受信することと、コンテキストデーモンプロセスによって、第1のコンテキストアイテムに対応するコンテキスト情報要求をコンテキストクライアントプロセスから受信することと、コンテキストデーモンプロセスによって、第1のコンテキストアイテムがコンテキストモニタによって現在監視されていないと判定することと、コンテキストデーモンプロセスによって、第1のコンテキストアイテムに対応する新たなコンテキストモニタを初期化することと、を含む。一部の実施形態では、新たなコンテキストモニタを初期化することは、新たなコンテキストモニタに対応する新たなソフトウェアパッケージをコンテキストデーモンプロセスに動的にローディングすることを含む。一部の実施形態では、新たなコンテキストモニタを初期化することは、新たなコンテキストモニタプロセスをコンテキストデーモンとは別に呼び出すことを含み、新たなコンテキストモニタプロセスは新たなコンテキストモニタに対応する。一部の実施形態では、1つ以上のコンテキストアイテム値は、コンピューティングデバイスの1つ以上のハードウェア構成要素の現在の状態を記述する。一部の実施形態では、1つ以上のコンテキストアイテム値は、コンピューティングデバイスの1つ以上のソフトウェア構成要素の現在の状態を記述する。一部の実施形態では、方法は、新たなコンテキストモニタプロセスによって、第1のコンテキストアイテムに対応する過去イベントストリームを生成すること、を含む。一部の実施形態では、新たなコンテキストモニタプロセスは、開始時間、持続期間、及び過去イベントストリーム内のイベントを記述するコンテキストアイテム値を特定する過去イベントストリームオブジェクトを生成する。
一部の実施形態では、コンテキスト通知の方法は、コンピューティングデバイス上で実行されるコンテキストデーモンプロセスによって、コンピューティングデバイスの現在のコンテキストを記述する情報を生成することと、コンテキストデーモンプロセスによって、コンテキストクライアントプロセスに通知を送るための述語を指定するコールバック要求をコンテキストクライアントプロセスから受信することであって、その述語はコンテキストクライアントをコールバックするためのコンテキスト条件を指定する、ことと、コンテキストデーモンプロセスによって、現在のコンテキストが述語に対応することを検出することと、検出したことに応じて、コンテキストデーモンプロセスによって、上記のコンテキストクライアントにコールバック通知を送ることと、を含む。一部の実施形態では、コンテキスト条件は、現在のコンテキスト内で検出されたときにコンテキストデーモンにコールバック通知をコンテキストクライアントに送らせる、1つ以上のコンテキストアイテムの値を指定する。一部の実施形態では、コールバック要求は、コンテキストクライアント及び述語のための識別子を含み、一部の実施形態では、方法は、コンテキストデーモンによって、コールバック要求についての固有の識別子を生成することと、コンテキストデーモンによって、固有の識別子を要求クライアントに送ることと、を含む。一部の実施形態では、方法は、コンテキストデーモンによって、固有識別子、コンテキストクライアント識別子、及び述語の間の関連付けを記憶することを含む。一部の実施形態では、記憶することは、固有識別子、コンテキストクライアント識別子、及び述語を、コンテキストデーモンと関連付けてメモリに記憶することを含む。一部の実施形態では、記憶することは、固有識別子、コンテキストクライアント識別子、及び述語を、述語データベースに記憶することを含む。一部の実施形態では、方法は、コンテキストデーモンによって、コンピューティングデバイスのソフトウェア及びハードウェア構成要素の現在の状態を記述するデバイス状態情報を受信することと、コンテキストデーモンによって、受信したデバイス状態情報に基づいて現在のコンテキスト情報を生成することと、を含む。
一部の実施形態では、コンテキスト予測の方法は、コンピューティングデバイスによって、コンピューティングデバイスによって監視されるコンテキストアイテムに対応する過去イベントストリームを取得することと、コンピューティングデバイスによって、過去イベントストリーム内のそれぞれの時間期間内でコンテキストアイテムの特定の値が観察される複数の確率を計算することと、コンピューティングデバイスによって、計算された確率に基づく確率曲線を生成することと、コンピューティングデバイスによって、コンテキストアイテムの特定の値の今後の発生を確率曲線に基づいて予測することと、を含む。一部の実施形態では、方法は、ユーザアクティビティの今後の発生を確率曲線に基づいて予測すること、を含む。一部の実施形態では、予測されるユーザアクティビティは予測されるユーザ睡眠期間に対応する。一部の実施形態では、方法は、コンテキストデーモンによって、ユーザアクティビティの予測される今後の発生の前の要求された時間にコンテキストデーモンが要求クライアントに通知することを要求するコールバック要求を、要求クライアントから受信することと、コンテキストデーモンによって、要求された時間に通知を送信することをスケジューリングすることと、コンテキストデーモンによって、予測されるユーザアクティビティの今後の発生の前の要求された時間に要求クライアントに通知を送ることと、を含む。一部の実施形態では、方法は、コンテキストデーモンによって、予測されるユーザ睡眠期間中の要求された時間にコンテキストデーモンがコールバッククライアントに通知することを要求するコールバック要求を、要求クライアントから受信することと、コンテキストデーモンによって、予測されるユーザ睡眠期間中の要求された時間に通知を送信することをスケジューリングすることと、要求された時間が現在の時間に対応すると判定することと、コンテキストデーモンによって、ユーザが現在の時間に寝ているかどうかを判定することと、コンテキストデーモンによって、ユーザが現在の時間に寝ているとコンテキストデーモンが判定したときに、要求クライアントに通知が送信されることと、を含む。一部の実施形態では、ユーザが現在の時間に寝ているかどうかを判定することは、ユーザによって始められた動作がコンピューティングデバイスによって現在の時間に実行されているかどうかを判定することを含む。一部の実施形態では、ユーザが現在の時間に寝ているかどうかを判定することは、ユーザに見える動作が、現在の時間に対して閾値時間内でコンピューティングデバイスによって実行されるようにスケジューリングされているかどうかを判定することを含む。
一部の実施形態では、効率的なコンテキスト監視の方法は、コンピューティングデバイス上で実行されるコンテキストデーモンプロセスにて、コンテキストクライアントとコンテキストデーモンとの間の第1の通信セッションを開始する第1のコンテキストコールバック要求を、コンテキストクライアントから受信することと、コンテキストデーモンによって、現在のコンテキスト情報を受信することと、現在のコンテキスト情報がコンテキストコールバック要求に対応すると判定することと、判定したことに応じて、コンテキストデーモンによって、コンテキストクライアントとの第1の通信セッションが終了していることを検出することと、検出したことに応じて、コンテキストデーモンによって、起動デーモンがコンテキストクライアントを再起動することを要求する再起動メッセージを起動デーモンに送ることと、を含む。一部の実施形態では、コールバック要求はクライアント識別子を含み、コンテキストデーモンによって、メッセージ内の起動デーモンにクライアント識別子を送信することを更に含む。一部の実施形態では、現在のコンテキスト情報は、コンピューティングデバイスの現在の状態を記述する1つ以上のコンテキストアイテムを含む。一部の実施形態では、コンテキストコールバック要求は、コンテキストデーモンによって受信された現在のコンテキスト情報に基づいてコンテキストクライアントに通知するための条件を指定する。一部の実施形態では、方法は、コンテキストデーモンが第1のコンテキストコールバック要求を受信した後にコンテキストクライアントを終了させることを含む。一部の実施形態では、方法は、再起動メッセージを受信すると、起動デーモンによって、コンテキストクライアントを再起動することと、クライアントが再起動された後に、コンテキストデーモンによって、コンテキストクライアントから第2のコンテキストコールバック要求を受信することと、第2のコンテキストコールバック要求を現在のコンテキスト情報と比較することと、比較したことに応じて、現在のコンテキスト情報が第2のコンテキストコールバック要求に対応することをコンテキストクライアントに通知することと、を含む。一部の実施形態では、第2のコンテキストコールバック要求は、コンテキストクライアントとコンテキストデーモンとの間に第2の通信セッションを確立し、コンテキストデーモンは、コンテキストクライアントによって確立された第2の通信セッションを用いて、コンテキストクライアントに通知する。
セクション11:アプリ内検索のクライアント、サーバ、及びウェブ態様
本セクション「アプリ内検索のクライアント、サーバ、及びウェブ態様」の内容は、一部の実施形態による、アプリ内検索、クラウドソーシングアプリケーション履歴検索、並びにアプリケーションビューインデックス化及び検索の、クライアント、サーバ、及びウェブベースの態様を説明し、本明細書に提供される開示を補足する情報を提供する。例えば、本セクションの一部はアプリケーション状態を検索する方法を説明し、例えば、ディープリンクの作成及び使用に関する、本明細書に提供される開示を補足する(方法600及び800を参照して以下に記載するように)。
アプリ内検索のクライアント、サーバ、及びウェブ態様についての概要
複数のアプリケーション状態を用いて検索を実行するデバイスの方法及び装置を説明する。例示的な実施形態では、デバイスは、デバイス上で稼働する複数のアプリケーションから複数のアプリケーション状態を受信する。デバイスは更に、複数のアプリケーション状態のインデックスを作成する。それに加え、デバイスは、デバイス上に記憶されたデータを検索するクエリを受信する。更に、デバイスは、複数のアプリケーション状態を、インデックス及びクエリを用いて検索する。デバイスは更に、複数のアプリケーション状態のうちの1つのクエリについての一致を判定し、その一致するアプリケーション状態についての一致を返す。
別の実施形態では、デバイスは、デバイス上の複数のアプリケーション状態を用いてクエリを実行する。この実施形態では、デバイスは、デバイス上に記憶されているインデックスを用いてクエリを実行する。デバイスは、クエリに一致する複数の結果を更に受信する。それに加え、デバイスは、デバイスにインストールされているネイティブアプリケーションに対応するアプリケーション状態に対応する複数の結果のサブセットを判定する。更に、デバイスは、複数の結果のサブセット内の結果のそれぞれについて、その結果と、その結果に対応するネイティブアプリケーションの表現とを提示する。
更なる実施形態では、デバイスはマルチデバイス検索にて用いるアプリケーション状態を選択する。この実施形態では、デバイスは、デバイス上において、アプリケーション状態が、そのデバイスのデバイスレベルでの検索についてのクエリ結果として選択されていることを検出する。デバイスは更にアプリケーション状態をサーバに送信し、そこでアプリケーション状態は、他のデバイスからの他のアプリケーション状態と一緒にインデックス化される。
更に別の実施形態では、デバイスは、第2のデバイスから受信したアプリケーション状態を用いて、第1のデバイスについての検索を実行する。この実施形態では、デバイスは、複数のアプリケーション状態を、複数のデバイス上において稼働している複数のアプリケーションから受信する。デバイスは更に、複数のアプリケーション状態のインデックスを作成する。デバイスは付加的に、デバイス上に記憶されたデータを検索するクエリを受信する。それに加え、デバイスはインデックス及び検索クエリを用いて複数のアプリケーション状態を検索し、その一致するアプリケーション状態についての一致を返す。
更なる実施形態では、デバイスは検索を実行する。この実施形態では、デバイスはクエリをサーバに送信し、クエリに一致する複数の結果を受信する。デバイスは更に、デバイスにインストールされているネイティブアプリケーションに対応する別のデバイス上で生成されたアプリケーション状態を含む、複数の結果のサブセットを判定する。それに加え、デバイスは、複数の結果のサブセット内の結果のそれぞれについて、ネイティブアプリケーションのリンク及び表現を提示する。
別の実施形態では、デバイスは検索クエリインデックス内にアプリケーション状態をインデックス化する。この実施形態では、サーバと連結される別のデバイスからアプリケーションのアプリケーション状態を受信する。デバイスは更に、アプリケーション状態に対応するアプリケーションのビューを生成し、このビューは、アプリケーション状態に対応する、アプリケーションのユーザインタフェースの表現である。それに加え、デバイスはビューを検索クエリインデックス内にインデックス化する。
更なる実施形態では、デバイスはクエリ結果と関連付けられたビューを有するアプリケーション状態を取り出す。この実施形態では、デバイスはサーバにクエリを送信する。デバイスは更に、クエリに対する結果をサーバから受信し、その結果は、その結果に対応するアプリケーションのアプリケーション状態のビューを含み、ビューはアプリケーション状態に対応するアプリケーションのユーザインタフェースの表現である。デバイスは付加的に、結果をビューのインジケーションと共に提示する。
他の方法と装置についても説明する。
アプリ内検索のクライアント、サーバ、及びウェブ態様についての詳細な説明
複数のアプリケーション状態を用いて検索を実行するデバイスの方法及び装置を説明する。以下の説明では、本発明の実施形態の完全な説明を提供するために、数多くの具体的な詳細が記載される。しかしながら、本発明の実施形態は、これらの具体的な詳細を伴わずとも実践することができる点が、当業者には明らかとなるであろう。他の例では、本説明の理解を分かりにくくすることがないように、周知の構成要素、構造及び技術は、詳細には示されていない。
本明細書中での「一実施形態」又は「実施形態」への言及は、その実施形態に関連して説明される特定の機構、構造、又は特性を、本発明の少なくとも1つの実施形態に含めることができることを意味する。本明細書における様々な箇所での、語句「一実施形態では」の出現は、必ずしも全てが同じ実施形態を言及しているものではない。
以下の説明及び請求項において、「連結している」及び「接続されている」と共にこれらの派生語が使用される場合がある。これらの言葉は、互いに同義語として意図されていないことを理解すべきである。「連結している」は、相互に物理的又は電気的に直接接触しているかもしれず、していないかもしれない2つ以上の要素が、互いに協働し、又は相互作用することを示すために使用される。「接続されている」は、相互に連結している2つ以上の要素間の通信の確立を示すために使用される。
以下の図で示されるプロセスは、ハードウェア(例えば、回路機構、専用論理など)、ソフトウェア(汎用コンピュータシステム、又は専用機械上で稼働されるものなど)、又は両方の組み合わせを含む、処理論理によって実行される。それらのプロセスは、幾つかの逐次動作の観点から以下で説明されるが、説明される動作の一部は、異なる順序で実行することができる点を理解するべきである。更には、一部の動作は、逐次的にではなく、並列して実行することができる。
「サーバ」、「クライアント」、「デバイス」という用語は、サーバ、クライアント及び/又はデバイスに特定のフォームファクタよりも、一般的にデータ処理システムに言及することを意図している。
複数のアプリケーション状態を用いて検索を実行するデバイスの方法及び装置を説明する。上記のように、ユーザはウェブブラウザを用いたデジタルルーチンを有するため、ウェブブラウザの履歴を検索することができるのは便利である。このデジタルルーチンは、繰り返し同じアプリケーションにアクセスし、それらのアプリケーションを同種の作業に用いることを更に含むことができる。上述のとおり、スマートフォンユーザは、平均して、86%の時間をウェブブラウザ以外のアプリケーションに費やす。しかしながら、ウェブブラウザ以外のアプリケーションの履歴を検索できるようにすることは難しい。なぜなら、アプリケーションの利用履歴のデータには(あったとしても)アクセスすることが難しく、独自の形式をとるからである。よって、アプリケーション履歴は検索することが難しい。
一実施形態では、デバイスは実行中のアプリケーションのアプリケーション状態を生成し、記憶する。デバイスはこれらのアプリケーション状態を更にインデックス化し、デバイス上で稼働しているローカル検索サービスが、インデックス化されたアプリケーション状態を検索してクエリについての結果を提供できるようにする。この実施形態では、アプリケーション状態は、アプリケーションのある時点のスナップショットである。アプリケーション状態は、ウェブブラウザ履歴に類似する。一実施形態では、アプリケーション状態はウェブブラウザ以外のアプリケーションのためのものである。一実施形態では、アプリケーションについてのアプリケーション状態は、タイトル、ビュー、このビューに表示されている日付、関連付けられたメタデータ、及び/又はその状態についての他の状態情報を含むことができる。例えば、一実施形態では、アプリケーションは、ある地理的エリアについての様々なビジネス及びサービスのレビューを表示するレビュー型アプリケーションであり得る。この例では、それぞれのアプリケーション状態は、ビジネス又はサービスについてのレビュー及び関連情報のセット(例えば、名前、住所、連絡先情報、営業時間、ビジネス又はサービスの説明、来客者又はサービス若しくはビジネスのユーザによって提出されたレビューのセット、及び/又はそのビジネス若しくはサービスと関連付けられた他の種類の情報)であってもよい。それぞれのアプリケーション状態は、一つのユーザインタフェースページ又は複数のユーザページにわたって表示することができ、各ページはディスプレイ用にコンテンツが編成されている(一部の実施形態では、各ページは特定の時点でのアプリケーションのウィンドウである)。一実施形態では、実行中のアプリケーションのそれぞれは1つ以上のアプリケーション状態をエクスポートし、デバイスはアプリケーション状態をアプリケーション状態インデックスにインデックス化する。
アプリケーション状態をインデックス化することで、ユーザはアプリケーションの履歴を検索することができる。このことで、ユーザは以前のアプリケーション状態を検索して見つけることができるようになる。見つかったアプリケーション状態を用いて、ユーザは対応するアプリケーションをこのアプリケーション状態で起動することができ、このことで、アプリケーションがアプリケーション状態をエクスポートした時にアプリケーションが実行していた時点の状態にする。ユーザは、複数の異なるアプリケーションについての一般的な機構を介して、インデックス化されたアプリケーション状態を用いて、そのアプリケーションを以前に使用した状態に戻すことができる。例えば、一実施形態では、アプリケーション状態は、輸送システムの特定系統(route)についての乗換アプリケーションのページであり得る。この例では、ユーザは乗換アプリケーションにおいて、例えば路線バスの系統7など、特定の系統にナビゲートしてもよい。その特定の系統にナビゲートすることで、乗換アプリケーションはその路線バスの系統ページについてのアプリケーション状態をアプリケーション状態インデックスにエクスポートする。このアプリケーション状態がインデックス化されることで、ユーザはそのアプリケーション状態を、クエリを介して取り出すことができる。例えば、一実施形態では、ユーザが「バス系統7」をクエリに入力すると、路線バス系統7についてのアプリケーション状態がクエリ結果として出現することになる。このアプリケーション状態を選択すると、乗換アプリケーションが、路線バス系統7についてのアプリケーション状態と共にローディングされ、この乗換アプリケーション内の路線バス系統7のページがユーザに表示される。よって、この例では、乗換アプリケーションが以前に実行されていた時と同じ状態にされる。
別の実施形態では、デバイスは、これらのアプリケーション状態を生成しなかったデバイスからのクエリをサポートするために用いることができるリモートアプリケーション状態インデクサに、アプリケーション状態をエクスポートすることができる。この実施形態では、デバイスは、ユーザによって関与された(engaged)アプリケーション状態をエクスポートし、関与されたアプリケーション状態とは、デバイス上でのユーザによるクエリに応じてクエリ結果として返され、そのユーザがそのアプリケーション状態を選択しているという、アプリケーション状態である。それに加え、デバイスは、アプリケーション状態をエクスポートする前に個人情報を取り除くことで、アプリケーション状態をサニタイジング(sanitize)する。リモートアプリケーション状態インデクサはこのアプリケーション状態を受信し、リモートアプリケーション状態インデクサがこのアプリケーション状態を必要な回数だけ受信した場合にそのアプリケーション状態をインデックス化する。この実施形態では、必要な回数後にアプリケーション状態をインデックス化することで、このアプリケーション状態はクラウドソース化され、多くの異なるユーザ及び/又はデバイスがこのアプリケーション状態をローカル検索において関与している。一実施形態では、アプリケーション状態について一定数の関与を必要とすることは、このアプリケーション状態が他のユーザにとって便利であるという可能性を増す。インデックス化がされると、リモート検索サービスはそのリモートアプリケーション状態インデックスを検索して、クエリに一致するアプリケーション状態があるかどうか判定することができる。各一致について、リモート検索サービスは一致するアプリケーション状態(単数又は複数)をクライアントに返す。クライアント側では、ユーザはアプリケーション状態を選択することができ、ここでは対応するアプリケーションが起動されて、アプリケーションを、アプリケーションがアプリケーション状態をエクスポートした時にアプリケーションが実行していた時点の状態にする。
更なる実施形態では、デバイスは異なるアプリケーション状態についてのアプリケーション状態ビューを生成する。この実施形態では、アプリケーション状態ビューは、そのアプリケーション状態に対応するアプリケーションのユーザインタフェースの表現である。例えば、一実施形態では、ビジネス及びサービスについて何千、何百万のレビューのコンテンツにアクセスのあるレビュータイプのアプリケーションは、何千、何百万ものレビューのそれぞれについてビューを有することができる。それらのビューを用いて、アプリケーション状態及びアプリケーション一般もプレビューすることができる。一実施形態では、これらのアプリケーション状態ビューを用いて、クエリに対する結果のセットで返されたアプリケーション状態をプレビューすることができる、又はこれらのアプリケーション状態ビューを用いて、アプリケーションを一般的にプレビューすることができる。一実施形態では、1つのアプリケーションについて多数のアプリケーション状態ビューを収集することを用いて、アプリケーションストアにてそのアプリケーションをプレビューすることができる。例えば、一実施形態では、レビュー型アプリケーションは、このアプリケーションについて利用可能な数十ものアプリケーション状態ビューを有していてもよい。
図41-1は、ローカルデバイス検索インデックスにて用いるためにアプリケーション状態をインデックス化するシステムの一実施形態のブロック図である。図41-1では、デバイス41_100は、アプリケーション状態インデクサ41_104と連結される複数のアプリケーション41_102を含む。一実施形態では、デバイス41_100は別のデバイスとネットワークデータを通信できる任意の種類のデバイスである(例えば、パソコン、ラップトップ、サーバ、モバイルデバイス(例えば、電話、スマートフォン、スマートウォッチ、パーソナルゲーミングデバイスなど)、別のネットワーク要素など)。一実施形態では、デバイス41_100は仮想マシンであることができ、又は1つ以上の仮想マシンをホストするデバイスであり得る。一実施形態では、デバイス41_100はアプリケーション状態検索インデックス41_108を更に含む。一実施形態では、アプリケーション41_102のそれぞれは、そのアプリケーションが稼働している間に一連の状態を経て進行する実行プログラムである。例えば、一実施形態では、アプリケーション41_102は、ワードプロセッシングアプリケーション、スプレッドシート、連絡先、メール、電話、ウェブブラウザ、メディアプレーヤ、レビューアプリケーション、分類された広告アプリケーション、ソーシャルネットワーキング、生産性、ユーティリティ、ゲーム、不動産、写真、動画、電子商取引、出店(storefront)、クーポン、オペレーティングシステム、及び/又はデバイス上で稼働することができる任意の他の種類のアプリケーションであることができる。
上記のように、アプリケーション41_102のそれぞれは、そのアプリケーションが実行されている間に一連の状態経て進行する。一実施形態では、これらのアプリケーション状態のうちの1つは、アプリケーションのある時点のスナップショットである。一実施形態では、アプリケーション41_102についてのアプリケーション状態は、タイトル、ユーザインタフェース状態、このユーザインタフェースに表示されるデータ、関連付けられたメタデータ、及び/又は状態についての他の状態情報を含むことができる。更なる実施形態では、アプリケーション状態は、どのように状態が検索結果に表現するかを記述する情報を含む。例えば、一実施形態では、アプリケーション41_102は、ある地理的エリアについての様々なビジネス及びサービスのレビューを表示するレビュー型アプリケーションであり得る。この例では、それぞれのアプリケーション状態は、ビジネス又はサービスについてのレビュー及び関連情報のセット(例えば、名前、住所、連絡先情報、営業時間、ビジネス又はサービスの説明、来客者又はサービス若しくはビジネスのユーザによって提出されたレビューのセット、及び/又はそのビジネス若しくはサービスと関連付けられた他の種類の情報)であってもよい。一実施形態では、アプリケーション状態タイトルはそのアプリケーション状態について与えられたタイトルであり、例えば、レビュー型アプリケーションの場合では、そのビジネス又はサービスの名前などである。アプリケーション状態についてのユーザインタフェース状態は、そのアプリケーション状態に対応するアプリケーション41_102のユーザインタフェースの表現であり得る。この実施形態では、ユーザインタフェース状態はユーザインタフェースの表現、そのユーザインタフェースがどこにスクロールするか、又はどのユーザインタフェースの構成要素がアクティブであるか、アプリケーションが何のモードにあるか(例えば、アプリケーション41_102はユーザに情報を提示するために用いられる異なるモードを有し得る)を含むことができる。更なる実施形態では、アプリケーションは、タイトルに加えてユニフォームリソースロケータ(Uniform Resource Locator)又はアプリケーション識別子、及び状態と互換性のあるアプリケーションのバージョン番号を含められるだけの小ささであってもよい。
一実施形態では、各アプリケーション状態は、タイトル、検索可能データ及び/又はメタデータ、並びにアプリケーション特有の不透明データを含む。この実施形態では、検索可能データ及び/又はメタデータは、アプリケーション41_102によって、この検索可能データ及び/又はメタデータがアプリケーション状態をインデックス化するのに用いることができる、並びにクエリの結果としてアプリケーション状態を返すのに用いることができる、検索インデックス化サービス及び/又はクエリ検索サービスによってアクセス可能なデータであるとして指定されるデータである。例えば、一実施形態では、検索可能なデータ及び/又はメタデータは、アプリケーション状態内のコンテンツであり得る(例えば、アプリケーション状態タイトル、ユーザインタフェース状態に表示されるコンテンツ、メディアデータ、位置データ、時間データ、又は検索インデックスに用いることのできる任意の他の種類のデータ若しくはメタデータ)。一実施形態では、アプリケーション特有不透明データは、アプリケーションを以前の状態に戻すために用いられるアプリケーション特有データであり、検索可能なデータであってもなくてもよい。この実施形態では、アプリケーション状態を対応するアプリケーション41_102によってローディングすることで、そのアプリケーションをそのアプリケーション状態に戻す。例えば、一実施形態では、アプリケーション特有不透明データは、ユーザインタフェース状態、ユーザインタフェースモード、及び/又はリソースへの参照を含むことができる。ユーザインタフェースモードは、ユーザフェースが現在使用しているモードの種類であってもよい。例えば、一実施形態では、ワードプロセッシングプログラムは下書きレイアウトビュー又は印刷レイアウトビューであることができ、画像編集プログラムはライブラリモード、画像編集モード、又は印刷モードにあることができる。一実施形態では、参照されたリソースは、閲覧又は編集されているものはファイルでもよく、ネットワーク上のサーバなど、デバイス上、又は別のデバイスにあることができるリソースへのユニフォームリソースロケータであり得る。一実施形態では、アプリケーション状態の一部であるデータは、(キー、値)対を有する辞書に存在することができる。
一実施形態では、アプリケーション41_102の1つ以上はそれぞれ、1つ以上のアプリケーション状態をアプリケーション状態インデクサ41_104にエクスポートする。この実施形態では、アプリケーション41_102はそれぞれ、アプリケーション状態を固定又は可変スケジュールにエクスポートすることができる。例えば、一実施形態では、アプリケーション41_102はアプリケーション状態を決まった時間に基づいてエクスポートする、ユーザとの1つ以上の相互作用の後に、又は他の指標にて、新しいユーザインタフェース状態それぞれについてアプリケーション状態をエクスポートすることができる。別の例として、別の実施形態では、レビューアプリケーションは新たなレビュー又はレビュー検索にナビゲートしてもよい。この例では、新たなレビュー又はレビュー検索にナビゲートすることで、新たなビューが生成され、新たなアプリケーション状態が生成されてアプリケーション状態インデクサ41_104にエクスポートされる。アプリケーション状態インデクサはアプリケーション状態を受信し、アプリケーション状態をアプリケーションインデックス41_108に追加する。アプリケーション状態をインデックスに追加することにより、新しいアプリケーション状態が、ローカル検索サービスによって受信されるクエリに一致させるために、ローカル検索サービスで利用可能となる。別の実施形態では、アプリケーション状態を、以下の図41-6~11にて説明する、リモート検索アプリケーション状態インデックス41_108にエクスポートすることができる。
図41-2は、オンデバイスアプリケーション状態検索インデックスを用いてアプリケーション状態を検索するシステムの一実施形態のブロック図である。図41-2では、デバイス41_200は、ローカル検索サービス41_208に連結されるアプリケーション41_204を含む。ローカル検索サービス41_208は、アプリケーション状態検索インデックス41_212及びローカル検索インデックス41_214に更に連結される。一実施形態では、デバイス41_200は図41-1にあるようなデバイスである。一実施形態では、アプリケーション41_204は検索入力フィールド41_206を含む。この実施形態では、検索入力フィールドを用いて、クエリを入力し、このクエリは、ローカル検索サービスによってこのクエリを用いて検索を実行するために用いられ得る。クエリが検索入力41_206に入力された場合、アプリケーション41_204はこのクエリをローカル検索サービス41_208に送信する。ローカル検索サービス41_208はクエリを受信し、ローカル検索インデックス41_214及び/又はアプリケーション状態検索インデックス41_212を検索することによりランキング付けした結果を生成し、クエリについての結果のセットを決定する。それに加え、ローカル検索サービス41_208は結果をランク付けし、アプリケーション41_204に送り返す。
この実施形態では、検索は、デバイス41_200上に記憶されたオブジェクトの検索を含むことができる。例えば、一実施形態では、オブジェクトは、ドキュメント、画像、音楽、アプリケーション、電子メール、カレンダーエントリ、及び/又はローカル検索インデックスに記憶されている他のオブジェクトであり得る。一実施形態では、検索は、検索モジュールによって維持されるインデックスに基づく。この実施形態では、インデックスはデバイスのオブジェクトに記憶されたメタデータのインデックスである。代替的な実施形態では、ローカル検索サービス41_208はまた、クエリをアプリケーション状態検索インデックス41_212に適用することができる。この実施形態では、ローカル検索サービス41_208はクエリをアプリケーション状態検索インデックス41_212に適用し、クエリと一致するアプリケーション状態があるかを判定する。例えば、一実施形態では、ローカル検索サービス41_208は、インデックス41_212に記憶されたアプリケーション状態のそれぞれについて、クエリを検索可能データに適用する。この例では、インデックス41_212における1つ以上のアプリケーション状態についてクエリとの一致がある場合、ローカル検索サービス41_208は、これらの1つ以上のアプリケーション状態を含む結果のセットをアプリケーション41_204に返す。アプリケーション41_204はランク付けされた結果を表示する。ランク付けされた結果のうちの1つがアプリケーション状態である場合、アプリケーションはアプリケーションのアイコン、アプリケーション状態タイトル、及びアプリケーション状態概要を表示することができる。一実施形態では、表示されたアプリケーション状態を選択すると、アプリケーション状態に対応するアプリケーションはそのアプリケーション状態と共にローディングされる。この実施形態では、アプリケーションをそのアプリケーション状態と共にローディングすることにより、アプリケーションはそのアプリケーション状態に対応する実行状態でローディングされる。例えば一実施形態では、アプリケーション状態がクーポンアプリケーションについての特定のクーポン(例えば、(50%週末車レンタル!)である場合、クーポンアプリケーションはこのアプリケーション状態と共にローディングされ、アプリケーション状態は、まるでユーザがそのクーポンにナビゲートしたかのように特定のクーポンを表示する。
図41-3は、他のクエリ結果の中のうちから、あるアプリケーション状態クエリ結果を表示するユーザインタフェースの実施形態のブロック図である。図41-3では、デバイス上にアプリケーション状態を表示するための、3つの異なる可能なユーザインタフェース41_300A~Cを示す。一実施形態では、ユーザインタフェース41_300Aは、検索入力41_302、アプリケーション状態ディスプレイ41_314A、他のアクション41_310A、及びオンスクリーンキーボード41_312Aを含む。一実施形態では、検索入力41_302Aは、デバイスのユーザによってクエリを入力するために用いられる。この実施形態では、クエリの一部又は全体を入力して、クエリ結果の1つ以上のセットを判定するためにローカル検索サービスに送信することができる。一実施形態では、検索の1つ以上の文字が入力されると、クエリに対する結果が返される。それに加え、アプリケーション状態ディスプレイ41_314Aは、アプリケーションアイコン41_304A、アプリケーション状態タイトル41_306A、及びアプリケーション状態概要41_308Aを含む。一実施形態では、アプリケーションアイコン41_304Aは、アプリケーション状態に対応するアプリケーションを表すアイコンである。この実施形態では、アプリケーションアイコン41_304Aは、クエリから返された又はアプリケーション状態に記憶された情報に基づいて取り出されたアプリケーション状態の一部であり得る。一実施形態では、アプリケーション状態タイトル41_306Aは、アプリケーション状態に記憶されているアプリケーション状態のタイトルである。更に、アプリケーション状態概要41_308Aはアプリケーション状態の概要である。例えば、一実施形態では、アプリケーション状態概要41_308Aは、アプリケーション状態のコンテンツの記述など、アプリケーション状態の記述を含む。この例では、アプリケーション状態概要41_308Aは、アプリケーション状態に関連付けられるコンテンツをユーザに対してインジケーションを与えることができる。
一実施形態では、ユーザインタフェース41_300Aは、アプリケーション状態41_314Aを含むクエリ結果を表示することに加えて、他のアクション41_310Aを含むことができる。例えば一実施形態では、他のアクション41_310Aは、クエリでウェブを検索するため、又はクエリでオンラインの百科事典を検索するための、リンクを含むことができる。ユーザインタフェース41_300Aはまた、ユーザによって用いられる、検索クエリを入力するためのオンスクリーンキーボード41_312Aも、含むことができる。あるいは、クエリは他の手段を介して入力することができる(例えば、デバイスに連結されたマイクを介して、ポータブルデバイスに連結されるスマートウォッチなど、デバイスに連結された別のデバイスによって)。一実施形態では、アイコン41_304Aは、アプリによって提供されるアプリ状態に特有のイメージサムネイルであってもよい。それに加え、アイコン41_304Aは動画又は動画プレビューでもあり得る。更なる実施形態では、アプリケーション状態概要は、電話アイコン、再生、方向、購入などのような「アクション」ボタンを含むことができる。
一実施形態では、クエリ結果として表示することができる多くの異なる種類のアプリケーション状態がある。例えば、一実施形態では、アプリケーション状態は、輸送システムの特定系統についての乗換アプリケーションのビューであり得る。この例では、ユーザは乗換アプリケーションにおいて、例えば路線バスの系統7など、特定の系統にナビゲートしてもよい。その特定の系統にナビゲートすることで、乗換アプリケーションはその路線バスの系統ビューについてのアプリケーション状態を、アプリケーション状態インデックスにエクスポートする。このアプリケーション状態がインデックス化されることで、ユーザはそのアプリケーション状態を、クエリを介して取り出すことができる。例えば、一実施形態では、ユーザが「バス系統7」をクエリに入力すると、路線バス系統7についてのアプリケーション状態がクエリ結果として出現することになる。このアプリケーション状態を選択すると、乗換アプリケーションは路線バス系統7についてのアプリケーション状態ともにローディングされ、この乗換アプリケーションにおける路線バス系統7のユーザインタフェースがユーザに表示される。よって、この例では、乗換アプリケーションが以前に見られていた時と同じ状態にされる。
別の例として、別の実施形態では、ユーザは食べ物宅配アプリケーションを用いてもよく、ユーザは以前の注文のうちの1つを再度注文したいだけである。この例では、ユーザは、ローカルのレストランに固有のアプリケーションを用いて、ローカルのレストランからフォースープを注文してもよい。この注文では、ローカルのレストランのアプリケーションは、フォースープの注文に対応するアプリケーション状態をエクスポートするであろう。このアプリケーション状態は、インデックス化されてローカル検索サービスによってアクセス可能とされるであろう。ユーザはその後、クエリ「フォースープ」、「ベトナムレストラン」、又はローカルのレストランの名前を入力してもよく、この注文に対応するアプリケーション状態がこの結果のうちの一つであり得る。このアプリケーション状態もまた、この結果についてのトップヒットとなり得る。このアプリケーション状態を選択すると、ローカルのレストランアプリケーションが起動され、ユーザがスープの注文を完了させられるよう、以前のフォースープの注文を表示する。
更なる例及び実施形態では、ユーザは次の荒野への旅を計画するためにピクチャーボードを保持してもよい。この例では、この次の旅行に関する写真やコメントをリンクするために、ユーザはピクチャーボードアプリケーションを用いる。ユーザは、デバイスのクリップボードからリンクを追加するために、ピクチャーボードアプリケーションを用いたこの特定のピクチャーボードに戻ってくるであろう。ピクチャーボードアプリケーションは、この荒野への旅についてのピクチャーボードのアプリケーション状態をエクスポートすることで、このアプリケーション状態はローカル検索サービスによって利用可能になる。旅行の地名など、このアプリケーション状態を検索することで、ユーザは、ピクチャーボードアプリケーションを起動してこの特定のピクチャーボードビューにナビゲートする代わりに、クエリを介してピクチャーボードアプリケーション内のこの荒野への旅のピクチャーボードに素早く行くことができる。
一実施形態では、アプリケーション状態を保存することは、ナビゲートしづらいユーティリティの特定のビューに素早くアクセスするために用いることができる。例えば、一実施形態では、デバイス設定アプリケーションは、多数レベルの深さにある多数の選択肢を有していてもよい。この例では、ユーザは設定アプリケーション内のバッテリ使用ページに行き、どのアプリケーションが最もバッテリを消費しているかを見てもよい。バッテリ使用ページは4レベル以上深い場合があり、アクセスしづらい。設定アプリケーションのより良い使用ページについてのアプリケーション状態をエクスポートすることにより、ユーザはクエリ「バッテリ使用」「バッテリ」、「バッテ(batter)」、又は言葉「バッテリ使用」の何らかの他のプレフィックスを入力することで、設定アプリケーションのバッテリ使用ページのアプリケーション状態がクエリの結果として現れるようにすることができ得る。このことで、設定アプリケーションにてナビゲートしづらい可能性のあるところへの素早いアクセスが可能となり得る。
別の実施形態では、クエリについてのアプリケーション状態結果が、上記図41-2に説明するローカル検索インデックスなど、他のドメインからの他のクエリ結果と一緒に示されてもよい。図41-3では、ユーザインタフェース41_300Bは、アプリケーション状態41_314Bを他のクエリ結果41_310Bと共に表示する。このユーザインタフェース41_300Bでは、検索入力41_302Bは、アプリケーション状態41_314B、他のクエリ結果41_310B、及びオンスクリーンキーボード41_312Bと共に表示される。一実施形態では、検索入力41_302B及びオンスクリーンキーボード41_312Cは、ユーザインタフェース41_300Aについて上述したものと同じである。それに加え、アプリケーション状態41_314Bは、アプリケーションアイコン41_304B、アプリケーション状態タイトル41_306B、及びアプリケーション状態概要41_308Bを含み、これらはユーザインタフェース41_300Aについて上述したアプリケーションアイコン、アプリケーション状態タイトル、及びアプリケーション状態概要と同じである。更に、ユーザインタフェース41_300Bは他のクエリ結果41_310Bを含み、これらは他のドメインからの他のクエリ結果又はアプリケーション状態であり得る。例えば、一実施形態では、クエリ「バッテリ」についての他のクエリ結果41_310Bは、単語「バッテリ」に一致するローカル検索インデックス内のオブジェクトインデックス、単語「バッテリ」に一致する他のアプリケーション状態、又は単語「バッテリ」に一致するローカル若しくはリモート検索インデックス(例えば、ウェブ検索インデックス)に一致する他のクエリ結果を含むことができる。
上記のように、アプリケーション状態は、デバイス上で稼働しているユーティリティアプリケーションについても保存されてもよい。例えば、一実施形態では、デバイスを構成するために用いられるデバイスについてのこれらの設定アプリケーションもまた、アプリケーション状態をエクスポートすることができる。ユーザインタフェース41_300Cは、設定アプリケーションについてのアプリケーション状態を含むクエリ結果の例である。図41-3では、ユーザインタフェース41_300C、検索入力41_302Cは、アプリケーション状態41_314B、他のアクション41_310C、及びオンスクリーンキーボード41_312Cと共に表示される。一実施形態では、ユーザインタフェース41_300Aについて上記のように同じである検索入力41_302C及びオンスクリーンキーボード41_312C。それに加え、アプリケーション状態41_314Cは、アプリケーションアイコン41_304B、設定アプリケーションの構成要素(例えば、バッテリ使用)についてのアプリケーション状態タイトル41_306C、及び設定アプリケーションの構成要素(バッテリ使用)についてのアプリケーション状態概要41_308Cを含む。
上記のように、アプリケーション状態がローカル検索サービスによってアクセス可能となるために、アプリケーション状態はローカル検索サービスによってアクセス可能なインデックスに追加される。図41-4Aは、デバイス上の複数の異なるアプリケーションから受信されるアプリケーション状態をインデックス化するための、プロセス41_400の一実施形態のフロー図である。一実施形態では、プロセス41_400は、上記図41-1にて説明したアプリケーション状態インデクサ41_104などのアプリケーション状態インデクサによって実行される。図41-4Aでは、プロセス41_400は、ブロック41_402にてデバイス上の複数のアプリケーションから複数のアプリケーション状態を受信することから始まる。例えば、一実施形態では、プロセス41_400は、ワードプロセッシングアプリケーション、スプレッドシート、連絡先、メール、電話、ウェブブラウザ、メディアプレーヤ、レビューアプリケーション、分類された広告アプリケーション、ソーシャルネットワーキング、生産性、ユーティリティ、ゲーム、不動産、写真、動画、電子商取引、出店、クーポン、オペレーティングシステム、及び/又はデバイス上で稼働することができる任意の他の種類のアプリケーションから、アプリケーション状態を受信することができる。一実施形態では、アプリケーションはアプリケーション状態を同時に、逐次的に、及び/又はその組み合わせでプロセス41_400に送ることができる。ブロック41_404では、プロセス41_400が受信するアプリケーション状態それぞれについて、プロセス41_400はこれらのアプリケーション状態をアプリケーション状態インデックスに加える。一実施形態では、プロセス41_400は、アプリケーション状態識別子、インデックス可能テキスト、アプリケーション識別子、及び/又は挿入時間を検索インデックスデータ構造に加えることによって、アプリケーション状態をアプリケーション状態インデックスに加える(例えば、転置インデックス及び完了トライ)。
複数のアプリケーション状態をアプリケーション状態インデックスに加えることにより、これらのインデックスアプリケーション状態はローカル検索サービスによるクエリ検索について利用可能である。図41-4Bは、アプリケーション状態インデックスを用いてクエリについてのクエリ結果を判定するためのプロセス450の一実施形態のフロー図である。一実施形態では、プロセス450は、例えば上記図41-2で説明したローカル検索サービス41_208など、ローカル検索サービスによって実行され、アプリケーション状態インデックスを用いて、クエリについてのクエリ結果を判定する。図41-4Bでは、プロセス450は、ブロック452でクエリを受信することによって開始される。一実施形態では、クエリは、ユーザによりアプリケーション内で入力されてプロセス450に送られる、検索文字列である。一実施形態では、入力は、テキスト、話された言葉、自動生成、及び/又はクエリプレフィックスを入力する何かしらの他の方法によって、入力することができる。例えば、一実施形態では、ユーザはクエリをウェブブラウザ又はファイルブラウザに入力することができる。ブロック454で、プロセス450は、ローカルアプリケーション状態インデックスを用いて、クエリについてのクエリ結果のセットを判定する。一実施形態では、プロセス450は、クエリ内の情報を用いて、ローカルアプリケーション状態インデックス内で一致するアプリケーション状態を判定する。ブロック456では、プロセス450はクエリ結果のセットをランク付けする。一実施形態では、ランクは、クエリに一致するアプリケーション状態のそれぞれのスコアに基づく。プロセス450はブロック458にて、クエリ結果のランクセットを返す。一実施形態では、プロセス450がクエリ結果のランク付けされたセットを、クエリをプロセス450に送ったアプリケーションに送り返す。
図41-5は、アプリケーション状態をクエリ結果の一部として受信して提示するためのプロセス41_500の一実施形態のフロー図である。一実施形態では、プロセス41_500は、上記図41-2にて説明したアプリケーション41_204など、クエリ結果の一部としてアプリケーション状態を受信して提示するために、アプリケーションによって実行される。図41-5では、プロセス41_500は、ブロック41_502でローカル検索サービスにクエリを送ることから始まる。一実施形態では、クエリは、ユーザによりアプリケーション内で入力されローカル検索サービスに送られる、検索文字列であり得る。この実施形態では、入力は、テキスト、話された言葉、自動生成、連結されたデバイス(例えば、ポータブルデバイスに連結されたスマートウォッチ)から受信、及び/又は検索文字列を入力するための何らかの他の方法によって、入力することができる。別の実施形態では、クエリは検索システムから提案されてもよく、ユーザは複数の選択肢から1つのクエリを選んでもよい。あるいは、クエリはコンテキストから抽出されてもよい。例えば、一実施形態では、ユーザはテキストメッセージを読んでいて検索しに行き、クエリはデータ検出システムによって抽出されて自動的に発行される、又はユーザに提案される。更に、クエリは別のアプリケーションからのリンクを追っていくことで発行されてもよい。ブロック41_504では、プロセス41_500は結果のセットを受信し、結果にはアプリケーション状態が含まれる。一実施形態では、結果のセットはランク付けされ、最上位にランキングされた結果がトップヒットとなる。ブロック41_506では、プロセス41_500はユーザインタフェース内にアプリケーション状態を提示する。この実施形態では、アプリケーション状態は、アプリケーション状態タイトル、概要、及びこのアプリケーション状態についてのアプリケーションに対応するアイコンのインジケーションを含む。一実施形態では、プロセス41_500はアプリケーション状態を上記の図41-3にて説明したように表示する。アプリケーションが選択されることに応じて、プロセス41_500は、選択されたアプリケーション状態を用いて対応するアプリケーションを起動する。例えば、一実施形態では、アプリケーション状態がレビュー型アプリケーションのためのローカルのレストランのレビューである場合、プロセス41_500はレビュー型アプリケーションをローカルのレストランのアプリケーション状態で起動する。この例では、レビュー型アプリケーションは、ユーザに提示されたビューがレビュー型アプリケーション内のローカルのレストランのビューであるように起動される。一実施形態では、アプリケーションがデバイスにインストールされていない場合、プロセス41_500はリモートソース、例えばアプリケーションストア、ウェブページ、又は他のリモートサーバなどからアプリケーションをダウンロードすることができる。この実施形態では、プロセス41_500はアプリケーションをインストールし、選択されたアプリケーション状態を用いてアプリケーションを起動する。
上記のように、複数のアプリケーションが、アプリケーション状態をエクスポートすることができ、それらアプリケーション状態は、これらのアプリケーションを実行するデバイス上にローカルにインデックス化される。一実施形態では、これらのアプリケーション状態はリモートアプリケーション状態インデクサに更にエクスポートすることができ、これらのアプリケーション状態を生成しなかったデバイスからのクエリをサポートするために用いることができる。図41-6は、リモート検索インデックスにて用いるためにアプリケーション状態をインデックス化するシステム41_618の一実施形態のブロック図である。図41-6では、デバイス41_600はリモートアプリケーション状態インデクサ41_610に連結される。一実施形態では、デバイス41_600のそれぞれは、そのデバイス41_600上で実行する複数のアプリケーション41_602を含み、アプリケーション41_602のそれぞれは、デバイス上のアプリケーション状態モジュール41_604に連結される。この実施形態では、アプリケーション41_602のそれぞれは、1つ以上のアプリケーション状態41_612をアプリケーション状態モジュール41_604にエクスポートする。この実施形態では、アプリケーション状態モジュール41_604は受信されたアプリケーション状態を、図41-1~41_5にて上述したように、アプリケーション状態検索インデックス41_608内にインデックス化する。別の実施形態では、これらのアプリケーション状態を、リモートアプリケーション状態インデクサ41_610に送信することができる。アプリケーション状態をリモートアプリケーション状態インデクサ41_610に送信することにより、図示されていない他のデバイスからのクエリをサポートするために、これらのアプリケーション状態を利用可能とすることができる。よって、この実施形態では、複数のデバイス上で稼働している複数のアプリケーションからインデックス化されたアプリケーション状態は、これらのアプリケーション状態を生成しなかったデバイスによって送られたクエリに応じて、クエリ結果のために用いることができる。
一実施形態では、ローカルでインデックス化されたアプリケーション状態それぞれは、リモートアプリケーション状態インデクサ41_610にもエクスポートされてもよい。この実施形態では、何千、何百万ものアプリケーション状態が、生成されてリモートアプリケーション状態インデクサ41_610に送信されてもよい。しかしながら、これだけ多くのアプリケーション状態がエクスポートされてインデックス化されることで、大きすぎる及び/又は多くの役に立たない偽のエントリを有するアプリケーション状態インデックスを生成してしまう可能性がある。それに加え、エクスポートされた1ついくつか又は全てのアプリケーション状態は、インデックス化されたアプリケーション状態41_614に含まれるのに望ましくない個人情報を含む可能性がある。
一実施形態では、アプリケーション状態モジュール41_604は、これらのアプリケーション状態がデバイスと関与されている場合に、アプリケーション状態をリモートアプリケーション状態インデクサ41_610にエクスポートする。この実施形態では、アプリケーション状態をエクスポートするために、そのアプリケーション状態がデバイスのユーザによるクエリに応じたクエリ結果として返され、そのユーザがそのアプリケーション状態を選択しているかどうかを判定する。一実施形態では、アプリケーション状態をエンゲージするとは、ユーザがローカル検索サービスにクエリを送信し、ローカル検索サービスがそのアプリケーション状態をクエリ結果のセットで返し、ユーザがそのアプリケーション状態を選択又は閲覧していることを意味する。一実施形態では、アプリケーション状態をエンゲージすることは、この特定のアプリケーション状態がデバイス41_600によって生成された他のアプリケーション状態よりも重要であり得ることをアプリケーション状態モジュール41_604に示す。関与されたアプリケーション状態それぞれについて、アプリケーション状態モジュール41_604はそのアプリケーション状態をリモートアプリケーション状態インデクサ41_610にエクスポートする。
更なる実施形態では、関与されたアプリケーション状態をリモートアプリケーション状態インデクサ41_610にエクスポートする前に、アプリケーション状態モジュール41_604はアプリケーション状態を、アプリケーション状態に含まれ得るすべての可能性のある個人情報を取り除くことによって、アプリケーション状態をサニタイジングする。一実施形態では、アプリケーション状態は、ユーザネーム、個人的な連絡先情報、位置、アクセス時間、社会保障番号、銀行口座番号、及び/又はアプリケーション状態内に含まれ得る任意の他の種類の個人情報を含み得る。一実施形態では、アプリケーション状態を生成するアプリケーションは、アプリケーション状態に記憶されている特定の情報を個人的であるとマーキングしてもよい。別の実施形態では、デバイスは個人情報をアプリケーション状態に加えてもよい。あるいは、アプリケーション状態モジュール41_604は、その情報がプライベートであるとマーキングされているかどうかにかかわらず、特定の情報がプライベートであることを知っていてもよい。これらの実施形態のいずれにおいても、アプリケーション状態モジュール41_604はこれらの個人情報を取り除く。
リモートアプリケーション状態インデクサ41_610は、一実施形態では、アプリケーション状態を複数のデバイス41_600から受信する。リモートアプリケーション状態インデクサ41_610は、アプリケーション状態を数個のデバイスから、又は数千、数百万の多くのデバイスから、受信することができる。それに加え、一実施形態では、リモートアプリケーション状態インデクサ41_610はアプリケーション状態の2つのセットを維持する。アプリケーション状態の一方のセットは、インデックス化されたアプリケーション状態41_614である。これらはインデックス化されているアプリケーション状態のセットであり、検索サービスによって利用可能である。アプリケーション状態の他方のセットは、インデックス化されていないアプリケーション状態41_616である。一実施形態では、リモートアプリケーション状態インデクサ41_610は、アプリケーション状態が1つ以上のデバイスによって必要回数だけ関与された後に、そのアプリケーション状態をアプリケーション状態のインデックスセットに加える。例えば、一実施形態では、アプリケーション状態は、そのアプリケーション状態が50回関与された場合にインデックスされたアプリケーション状態のセットに加えられる。代替的な実施形態では、アプリケーション状態は、そのアプリケーション状態が多かれ少なかれ関与されている場合に、アプリケーション状態のインデックスセットに加えることができる。一実施形態では、アプリケーションインデックス内にインデックス化される前にアプリケーション状態が関与されるべき必要回数は、アプリケーション状態の種類によって変動し得る。例えば、一実施形態では、地理的にローカル化された情報(例えば、地域的なクーポンのアプリケーション状態)を含むアプリケーション状態は、地理的にローカル化されている情報を含まないアプリケーション状態と対比してより少ない回数でしか関与される必要がない場合がある。
この実施形態では、アプリケーション状態を、そのアプリケーション状態が必要回数だけ関与された後にインデックス化することは、このアプリケーションが他のユーザにとって役に立つ可能性を増加させる。例えば、一実施形態では、異なるデバイス上の多くの異なるユーザがローカルの乗換アプリケーションを使用し、路線バス系統7についてのアプリケーション状態を生成する。この例では、これは人気の系統であるため、このアプリケーションはローカル検索サービスを介してこのアプリケーション状態にアクセスすることで、ユーザによって関与される。このアプリケーション状態はリモートアプリケーション状態インデクサ41_610によってインデックス化され、リモート検索サービスに利用可能となる。
一実施形態では、リモートアプリケーションインデクサ41_610は、アプリケーション状態が以前に送信されているかを、そのアプリケーション状態についてのハッシュを計算することで判定する。もしこのハッシュがリモートアプリケーションインデクサ41_610によって記憶された他のハッシュと一致する場合、リモートアプリケーションインデクサ41_610はそのアプリケーション状態がリモートアプリケーションインデクサによって受信された回数を増分させる。もし必要回数だけ受信されている場合、リモートアプリケーションインデクサ41_610はそのアプリケーション状態をインデックス化する。アプリケーション状態をインデックス化することを、以下の図41-8にて更に説明する。
図41-7は、リモートアプリケーション状態検索インデックスを用いてアプリケーション状態を検索するシステムの一実施形態のブロック図である。図41-7では、デバイス41_702はリモートアプリケーション状態検索サービス41_714に連結される。一実施形態では、デバイス41_702は、ローカル検索サービス41_708に連結されるアプリケーション41_704を含む。ローカル検索サービス41_708は、アプリケーション状態検索インデックス41_716に更に連結される。一実施形態では、デバイス41_702、アプリケーション41_704、ローカル検索サービス41_708、及びアプリケーション状態検索インデックス41_716は、上記図41-2にて説明したデバイス、アプリケーション、ローカル検索サービス、及びアプリケーション状態検索インデックスである。別の実施形態では、ローカル検索サービス41_708はクエリをリモートアプリケーション検索サービス41_714に転送することができ、そこでリモートアプリケーション検索サービス41_714はクエリについての結果のセットがあるかを判定する。リモートアプリケーション検索サービス41_714は結果のセットをローカル検索サービス41_708に返し、ローカル検索サービス41_708はそれに続けて、アプリケーション41_704に結果のセットを返す。あるいは、アプリケーション41_704はクエリをリモートアプリケーション検索サービス41_714に送ることができ、リモートアプリケーション検索サービス41_714はそれに続けてアプリケーション41_704にクエリ結果のセットを送り返す。
上記のように、リモートアプリケーション状態検索サービス41_714はデバイス41_702からクエリを受け取り、デバイス41_702にそのクエリについてのクエリ結果のセットを返す。一実施形態では、リモートアプリケーション状態検索サービス41_714は、クエリを受信し、受信したクエリと一致するアプリケーション状態についてインデックスアプリケーション状態41_712を検索し、一致するアプリケーション状態をそれぞれスコア付けし、この結果のセットをランク付けし、ランク付けされた結果をアプリケーションに返す。アプリケーション41_704はそのアプリケーション状態を含むものの結果を表示する。一実施形態では、上記図41-3にて説明したように、アプリケーション41_704は、アプリケーションのアイコン、アプリケーション状態タイトル、及びアプリケーション状態の概要を表示する。表示されたアプリケーション状態を選択すると、アプリケーションはそのアプリケーション状態と共にローディングされる。一実施形態では、アプリケーションは、このアプリケーション状態がこのデバイスにローカルに記憶されていた場合にユーザがこのアプリケーション状態を関与していた場合のアプリケーションの状態と同じ状態にある。
図41-8は、アプリケーション状態をアプリケーション状態インデックスに加えるためのプロセス41_800の一実施形態のフロー図である。一実施形態では、プロセス41_800は、例えば上記図41-6にて説明したアプリケーション状態エクスポータモジュール41_606などの、アプリケーション状態をアプリケーション状態インデックスに加えるアプリケーション状態エクスポータモジュールによって実行される。図41-8では、プロセス41_800は、ブロック41_802でアプリケーション状態を受信することによって始まる。一実施形態では、アプリケーション状態はプロセス41_800によって、プロセス41_800を実行しているデバイス上で稼働している1つ以上のアプリケーションから受信される。ブロック41_802では、プロセス41_800はアプリケーション状態が関与されているかどうかを判定する。一実施形態では、アプリケーション状態は、アプリケーション状態がクエリに一致する結果のセットで返されて、ユーザがそのアプリケーション状態をアプリケーションにローディングするために選択した場合に、関与されている。アプリケーション状態が関与されていない場合、実行は上記のブロック41_802に進む。アプリケーション状態が関与されていると、プロセス41_800はブロック41_806のアプリケーション状態をサニタイジングする。一実施形態では、プロセス41_800は、上記図41-6にて説明したように、アプリケーション状態に関連付けられた及び/又は記憶された個人情報を取り除くことにより、アプリケーション状態をサニタイジングする。ブロック41_808で、プロセス41_800はサニタイジングされたアプリケーション状態を、リモートアプリケーション状態インデックス化サービスに送る。一実施形態では、リモートアプリケーション状態インデックス化サービスは、このアプリケーション状態をアプリケーション状態インデックスに加える可能性がある。
図41-9は、アプリケーション状態をアプリケーション状態インデックス化サービスによってインデックス化するためのプロセス41_900の一実施形態のフロー図である。一実施形態では、プロセス41_900は、上記図41-6にて説明したリモートアプリケーション状態インデクサ41_610などのような、アプリケーション状態をインデックス化するアプリケーション状態インデクサによって実行される。図41-9では、プロセス41_900は、ブロック41_902でアプリケーション状態インジケーションを受信することによって始まる。一実施形態では、アプリケーション状態インジケーションはアプリケーション状態のハッシュである。完全なアプリケーション状態を受信する代わりにアプリケーション状態ハッシュを受信することによって、プロセス41_900は、アプリケーション状態が複数のクライアントにわたって一般的になるまで、又は必要回数だけ関与されるまで、アプリケーション状態を受信しない。ブロック41_904では、プロセス41_900はこのアプリケーション状態の発生回数を増分させる。一実施形態では、プロセス41_900はこのアプリケーション状態ハッシュのカウンタを維持する。プロセス41_900がこのインジケーションを受信するのが初めての場合は、カウンタは1である。プロセス41_900はブロック41_906にて、発生回数が閾値よりも大きいかどうかを判定する。一実施形態では、必要回数だけアプリケーション状態がプロセス41_900によって受信されていることは、このアプリケーション状態が多数回関与されており、インデックス化されてクエリに応じるために利用可能にされるべき候補であることを意味する。例えば、一実施形態では、クーポンアプリケーションの特定のクーポンについてのアプリケーション状態は、このアプリケーション状態が50回関与されている場合には、アプリケーション状態インデックスに利用可能にされ得る。発生回数が閾値より大きい場合、プロセス41_900は、直近のアプリケーション状態インジケーションを送ったデバイスに完全なアプリケーション状態についての要求を送る。プロセス41_900は、アプリケーション状態をブロック41_910で受信する。プロセス41_900は、アプリケーション状態をブロック41_910でインデックス化する。アプリケーション状態をインデックス化することで、プロセス41_900は、このアプリケーション状態を、クエリについての結果のセットの一部として利用可能にさせている。
別の実施形態では、アプリケーション状態インジケーションの直近の受信で完全なアプリケーション状態を要求する代わりに、プロセス41_900はアプリケーション状態の最後のピースを受信してアプリケーション状態をインデックス化するまで、プロセス41_900はアプリケーション状態を徐々に造り始める。例えば、一実施形態では、プロセス41_900は直近のMクライアントに、アプリケーション状態の1/M番目のプロセス900を送信するように求める。この例では、アプリケーション状態が同じアプリケーション状態ハッシュを生成するため、これは同一のアプリケーション状態である。これは、アプリケーション状態のこれらのMピースをプロセス41_900によって結合することができることを意味する。この実施形態は、アプリケーション状態の一部が毎回送信され、それによって、プロセス41_900が完全なアプリケーション状態を造ることを可能にするため、追加のプライバシーをもたらし得る。
図41-10は、アプリケーション状態インデックスを用いてクエリ検索を実行するための、プロセス41_1000の一実施形態のフロー図である。一実施形態では、プロセス41_1000は、例えば上記図41-7にて説明したリモートアプリケーション状態検索サービス41_714などのように、リモートアプリケーション状態検索サービスによって、アプリケーション状態インデックスを用いてクエリ検索を実行するために実行される。図41-10では、プロセス41_1000は、ブロック41_1002でクライアントからクエリを受信することにより、始まる。一実施形態では、クエリは、ユーザによってアプリケーション内で入力され、上記のようにリモート検索サービスに送られる、検索文字列である。ブロック41_1004では、プロセス41_1000はアプリケーション状態インデックスを、クエリを用いて検索する。一実施形態では、プロセス41_1000は、クエリに一致する任意のアプリケーション状態があるかどうかを判定する。プロセス41_1000は、ブロック41_1006にて、クエリについての結果のセットを判定する。一実施形態では、結果のセットは、クエリ内の一部又は全てのテキストに一致する1つ以上のアプリケーション状態を含む。ブロック41_1008では、プロセス41_1000は結果のセットをランク付けする。一実施形態では、プロセス41_1000は、結果のそれぞれについてスコアを判定して、これらのスコアを用いてこれらの結果をランク付けすることで、結果のセットをランク付けする。ブロック41_1010では、プロセス41_1000は、結果のセットを他の検索ドメインからの結果と組み合わせる。一実施形態では、検索が、異なるインデックスを検索するのに同じクエリが使用される統合検索である場合、プロセス41_1000は他の検索ドメインからの結果を、アプリケーション状態インデックスを用いて判定される結果のセットと組み合わせる。例えば、一実施形態では、クエリは、アプリケーション状態インデックス、一般ウェブ検索インデックス、及び/又は様々なインデックス(例えば、メディアインデックス、アプリケーションストアインデックス、マップインデックス、オンライン百科事典インデックス、及び/又は別の種類のインデックス)を検索するために用いられてもよい。ブロック41_1012では、プロセス41_1000はランク付けされた結果を、ブロック41_1010にて生成された他の結果と一緒に、クライアントに返す。
図41-11は、クエリ結果の一部としてアプリケーション状態を受信して提示するためのプロセス41_1100の一実施形態のフロー図である。一実施形態では、プロセス41_1100は、上記図41-7にて説明するアプリケーション41_704などのような、クエリ結果の一部としてアプリケーション状態を受信して提示するアプリケーションによって、実行される。図41-11では、プロセス41_1100は、ブロック41_1102でリモート検索サービスにクエリを送ることから始まる。一実施形態では、クエリは、ユーザによりアプリケーション内で入力され、リモート検索サービスに送られる検索文字列であり得る。この実施形態では、入力は、テキスト、話された言葉、自動生成、連結されたデバイス(例えば、ポータブルデバイスに連結されたスマートウォッチ)から受信、及び/又は検索文字列を入力するための何らかの他の方法によって、入力することができる。ブロック41_1104で、プロセス41_1100は結果のセットを受信し、結果にはアプリケーション状態が含まれる。この実施形態では、アプリケーション状態は、上記図41-6にて説明するように、ユーザによって必要回数だけ関与されている、サニタイジングされたアプリケーション状態である。一実施形態では、結果のセットはランク付けされ、最上位にランキングされた結果がトップヒットとなる。ブロック41_1106で、プロセス41_1100はユーザインタフェース内にアプリケーション状態を提示する。この実施形態では、アプリケーション状態は、アプリケーション状態タイトル、概要、及びこのアプリケーション状態についてのアプリケーションに対応するアイコンのインジケーションを含む。一実施形態では、プロセス41_1100はアプリケーション状態を上記図41-2にて説明したように表示する。アプリケーションが選択されることに応じて、プロセス41_1100は、選択されたアプリケーション状態を用いて対応するアプリケーションを起動する。例えば、一実施形態では、アプリケーション状態がレビュー型アプリケーションのためのローカルレストランのレビューである場合、プロセス41_1100はレビュー型アプリケーションをローカルのレストランアプリケーション状態で起動する。この例では、レビュー型アプリケーションは、ユーザに提示されたビューがレビュー型アプリケーション内のローカルのレストランのレビューであるように起動される。一実施形態では、アプリケーションがデバイスにインストールされていない場合、プロセス41_1100はリモートソース、例えばアプリケーションストア、ウェブページ、又は他のリモートサーバなどからダウンロードすることができる。この実施形態では、プリセス41_1100はアプリケーションをインストールし、選択されたアプリケーション状態を用いてアプリケーションを起動する。
図41-12は、リモート検索インデックスにて用いるためにアプリケーション状態ビューをインデックス化するシステム41_1200の一実施形態のブロック図である。図41-12では、デバイス41_1202はアプリケーション状態記憶41_1206及びアプリケーション状態インデックス41_1208に連結される。一実施形態では、デバイス41_1202はアプリケーション状態記憶41_1206に記憶されるアプリケーション状態を取り出し、アプリケーション状態それぞれについて、デバイス41_1202はそれらのアプリケーション状態それぞれについてビューを生成する。一実施形態では、アプリケーション状態のビューは、そのアプリケーション状態に対応するアプリケーションのユーザインタフェースの表現である。例えば、一実施形態では、ユーザインタフェースは、テキスト、画像、動画、音声、アニメーション、グラフィックス、及び/又は他の種類のユーザインタフェース構成要素を含むことができる。この例では、対応するビューはユーザインタフェースの2次元の表現である。一実施形態では、1つのアプリケーションは、このアプリケーションに関連付けられる異なるアプリケーション状態に基づいて生成される複数の異なるビューを有し得る。例えば、一実施形態では、ビジネス及びサービスについて何千、何百万のレビューのコンテンツにアクセスのあるレビュータイプのアプリケーションは、何千、何百万ものレビューのそれぞれについてビューを有することができる。ビューを、以下の図41-13で更に説明する。
一実施形態では、アプリケーション状態記憶41_1206に記憶されるアプリケーション状態は、図41-6にて上述したように、ユーザによって必要回数だけ関与されているアプリケーション状態であってもよい。あるいは、アプリケーション状態記憶41_1206はインデックス化されていないアプリケーション状態をも含み得る。それに加え、アプリケーション状態インデックス41_1208は、それらのアプリケーション状態について生成されたビューを有する、インデックス化されたアプリケーション状態を含む。この実施形態では、これらのビューを、クエリの結果のセットの一部として、アプリケーション状態と共に返すことができる。サーチエンジン41_1210は、デバイス41_1214からのクエリを受信するアプリケーション状態検索サービス41_1212を含む。アプリケーション状態検索サービス41_1212はデバイス41_1214からクエリを受信し、これらのクエリを用いてアプリケーション状態インデックスを検索し、関連付けられたビューを有するクエリについて一致するアプリケーション状態を判定し、一致するアプリケーション状態をスコア付けし、一致するアプリケーション状態をランク付けし、これらの一致するアプリケーション状態を元のクエリを送ってきたデバイスに結果のセットとして返す。
上記のとおり、アプリケーション状態は関連付けられたビューを有することができる。図41-13は、アプリケーション状態ビュー41_1302の一実施形態のブロック図である。図41-13では、特定のアプリケーション状態にあるアプリケーションがデバイス41_1300で実行されている。このアプリケーション状態にあるアプリケーションは、アプリケーション状態ユーザインタフェース41_1302を表示する。アプリケーション状態ユーザインタフェース41_1302は、アイコン、テキスト、画像、動画、音声、アニメーション、グラフィックス、及び/又は他の種類のユーザインタフェース構成要素などの多種多様な構成要素を含むことができる。例えば、一実施形態では、アプリケーション状態ユーザインタフェース41_1302は、画像41_1304、テキスト41_1306、及びアイコン41_1308を含む。一実施形態では、ビューは、このアプリケーション状態ユーザインタフェース41_1302から生成することができる。この環境では、ビューは、アプリケーション状態インデックス内でこのアプリケーション状態と共に保存及びインデックス化されることができるアプリケーション状態ユーザインタフェース41_1302の表現である。例えば、一実施形態では、アプリケーション状態ユーザインタフェース41_1302についてのビューは、2次元画像、例えばGIF、JPEG、PNG、及び/又は他の種類の2次元画像などである。この例では、ビューの2次元画像は、アプリケーション状態インデックス内にアプリケーション状態と共に記憶され得る。
図41-14は、アプリケーション状態インデックスを用いてアプリケーション状態ビューを生成するための、プロセス41_1400の一実施形態のフロー図である。一実施形態では、プロセス41_1400は、例えば上記図41-12にて説明するアプリケーション状態ビュージェネレータ及びインデクサ41_1204など、アプリケーション状態ビュージェネレータ及びインデクサによって、アプリケーション状態を用いてアプリケーション状態ビューを生成するために実行される。図41-14では、プロセス41_1400は、ブロック41_1402でアプリケーション状態を受信することから始まる。一実施形態では、プロセス41_1400は、上記図41-12にて説明するアプリケーション状態記憶41_1206など、アプリケーション状態記憶からアプリケーション状態を受信する。ブロック41_1404では、プロセス41_1400は、このアプリケーション状態を用いてアプリケーション状態ビューを生成する。一実施形態では、プロセス41_1400は、そのアプリケーション状態を用いてアプリケーションをシミュレーションすることでアプリケーション状態ビューを生成する。この実施形態では、アプリケーションは、このアプリケーション状態を有するシミュレータにて実行される。プロセス41_1400は、シミュレータのプライベートフレームワークを用いてこのアプリケーション状態についてのアプリケーションユーザインタフェースをキャプチャすることができる。あるいは、プロセス41_1400は、仮想プラットフォーム又はデバイス自体にアプリケーションをローディングし、そのアプリケーション状態のビューを生成する機構を用いてもよい。ブロック41_1406で、プロセス41_1400はアプリケーション状態ビューを、対応するアプリケーション状態について、アプリケーション状態インデックスに追加する。
これらのアプリケーション状態ビューを生成することにより、プロセス41_1400は1つ以上のアプリケーションについて多数のビューを生成することができる。それらのビューを用いて、アプリケーション状態及びアプリケーション一般もプレビューすることができる。一実施形態では、これらのアプリケーション状態ビューを用いて、クエリに対する結果のセットで返されたアプリケーション状態をプレビューすることができr、又はアプリケーションを一般的にプレビューすることができる。クエリと共にビューを使用することを、以下の図41-15にて更に説明する。一実施形態では、1つのアプリケーションについて多数のアプリケーション状態ビューを収集することを用いて、そのアプリケーションをプレビューすることができる。例えば、一実施形態では、レビュー型アプリケーションは、このアプリケーションについて利用可能な数十ものアプリケーション状態ビューを有していてもよい。例えばこのアプリケーションをアプリケーションストアで閲覧している、このレビュー型アプリケーションに興味のある人のために、これらのアプリケーション状態ビューを利用可能としてもよく、それによって、ユーザがアプリケーションを購入/ダウンロードする前にアプリケーションをプレビューできる。この例では、ユーザは、アプリケーションがどんなふうに見えるのかのアイデアをつかむために、何十ものビューを前後にざっと見てもよい。
図41-15は、クエリ結果の一部としてアプリケーション状態ビューを含むアプリケーション状態を受信して提示するためのプロセス41_1500の一実施形態のフロー図である。一実施形態では、プロセス41_1500は、上記図41-12にて説明したデバイス41_1214などの、クエリ結果の一部としてアプリケーション状態ビューを受信して提示するデバイスによって実行される。図41-15では、プロセス41_1500は、ブロック41_1502でリモート検索サービスにクエリを送ることから始まる。一実施形態では、クエリは、ユーザによりアプリケーション内で入力され、リモート検索サービスに送られる、検索文字列であり得る。この実施形態では、入力は、テキスト、話された言葉、自動生成、連結されたデバイス(例えば、ポータブルデバイスに連結されたスマートウォッチ)から受信、及び/又は検索文字列を入力するための何らかの他の方法によって、入力することができる。ブロック41_1504では、プロセス41_1500は結果のセットを受信し、結果にはアプリケーション状態が含まれる。この実施形態では、アプリケーション状態は、上記図41-6にて説明するように、ユーザによって必要回数だけ関与されている、サニタイジングされたアプリケーション状態である。一実施形態では、結果のセットはランク付けされ、最上位にランキングされた結果がトップヒットとなる。ブロック41_1506では、プロセス41_1500はユーザインタフェース内にアプリケーション状態を提示する。この実施形態では、アプリケーション状態は、アプリケーション状態タイトル、概要、このアプリケーション状態についてのアプリケーションに対応するアイコンのインジケーション、及び対応するアプリケーションビューの利用可能性のインジケーションを含む。アプリケーション状態ビューが選択されたことに応じて、プロセス41_1500はアプリケーション状態ビューを取り出して提示する。一実施形態では、アプリケーション状態ビューを表示することで、ユーザはこのアプリケーション状態にて実行されるアプリケーションのプレビューを得ることができる。これは、そのアプリケーション状態を選択するかどうかを判断する上でユーザの助けとなり得る。別の実施形態では、ビューをプレビューすることは、アプリケーションがデバイス上にインストールされていたとしても、このアプリケーション状態でアプリケーションを起動するよりも早い可能性がある。例えば、一実施形態では、アプリケーション状態ビューがレビュー型アプリケーションについてのローカルのレストランのレビューである場合、プロセス41_1500はアプリケーション状態ビューを取り出して表示する。
アプリ内検索のクライアント、サーバ、ウェブ態様のための例示的な機械可読媒体、方法、及びシステム
一態様では、複数のアプリケーション状態を用いて検索を実行するデバイスの方法及び装置を提供し、説明する。例示的な実施形態では、デバイスは、デバイス上で稼働する複数のアプリケーションから複数のアプリケーション状態を受信する。デバイスは更に、複数のアプリケーション状態のインデックスを作成する。それに加え、デバイスは、デバイス上に記憶されたデータを検索するクエリを受信する。更に、デバイスは、複数のアプリケーション状態を、インデックス及びクエリを用いて検索する。デバイスは更に、複数のアプリケーション状態のうちの1つのクエリについての一致を判定し、その一致するアプリケーション状態についての一致を返す。
一部の実施形態では、複数のアプリケーション状態を用いて検索を実行する方法を1つ以上の処理ユニットに実行させる実行可能な命令を有する機械可読媒体が提供され、方法は、デバイス上で稼働している複数のアプリケーションから複数のアプリケーション状態を受信することと、複数のアプリケーション状態の、デバイス上に記憶されるインデックスを作成することと、デバイス上に記憶されたデータを検索するクエリを受信することと、複数のアプリケーション状態を、インデックス及びクエリを用いて検索することと、複数のアプリケーション状態のうちの1つのクエリについての一致を判定することと、その一致するアプリケーション状態についての一致を返すことと、を含む。一部の実施形態では、複数のアプリケーション状態のそれぞれは、そのアプリケーション状態についてのアプリケーションのある時点のスナップショットを表すデータを含む。一部の実施形態では、複数のアプリケーションのうちの1つについて複数のアプリケーション状態がある。一部の実施形態では、クエリは、複数のアプリケーション状態の検索に加えて、デバイス上に保存されたファイルを検索するために用いられる。一部の実施形態では、複数のアプリケーション状態のうちの1つは、複数のアプリケーションのうちの対応する1つによって用いられたユーザインタフェースデータのビュー位置を表すユーザインタフェース情報を含む。
一部の実施形態では、複数のアプリケーション状態を用いてクエリを実行する方法を1つ以上の処理ユニットに実行させる実行可能な命令を有する機械可読媒体が提供され、方法は、デバイス上に記憶されたインデックスを用いてデバイス上でクエリを実行することと、クエリに一致する複数の結果を受信することと、デバイス上にインストールされているネイティブアプリケーションに対応するアプリケーション状態に対応する複数の結果のサブセットを判定することと、複数の結果のサブセット内の結果のそれぞれについて、その結果と、その結果に対応するネイティブアプリケーションの表現とを提示することと、を含む。
別の態様では、マルチデバイス検索内において用いられるアプリケーション状態を選択するデバイスの方法及び装置を提供する。この実施形態では、デバイスは、デバイス上において、アプリケーション状態が、そのデバイスのデバイスレベルでの検索についてのクエリ結果として選択されていることを検出する。デバイスは更にアプリケーション状態をサーバに送信し、そこでアプリケーション状態は、他のデバイスからの他のアプリケーション状態と一緒にインデックス化される。一部の実施形態では、マルチデバイス検索において用いるためのアプリケーション状態を選択するための方法を1つ以上の処理ユニットに実行させる実行可能な命令を有する機械可読媒体を提供し、方法は、デバイス上にて、アプリケーション状態が、そのデバイス上のデバイスレベルでの検索についてのクエリ結果として選択されていることを検出することと、アプリケーション状態をサーバに送信することと、を含み、そのアプリケーション状態は、他のデバイスからの他のアプリケーション状態と共にインデックス化される。
一部の実施形態では、第2のデバイスから受信したアプリケーション状態を用いて第1のデバイスについての検索を実行する方法を1つ以上の処理ユニットに実行させる実行可能な命令を有する機械可読媒体が提供され、方法は、デバイス上で稼働している複数のアプリケーションから複数のアプリケーション状態を受信することと、複数のアプリケーション状態のインデックスを作成することと、デバイス上に記憶されたデータを検索するクエリを受信することと、複数のアプリケーション状態を、インデックス及び検索クエリを用いて検索することと、複数のアプリケーション状態のうちの1つの検索クエリについての一致を判定することと、その一致するアプリケーション状態についての一致を返すことと、を含む。一部の実施形態では、インデックスを作成することは、複数のアプリケーション状態のうちの1つを、そのアプリケーション状態が閾値を満たす回数だけ受信されている場合に、インデックスに加えることを含む。一部の実施形態では、検索を実行する方法を1つ以上の処理ユニットに実行させる実行可能な命令を有する機械可読媒体が提供され、方法は、デバイスからサーバにクエリを送信することと、クエリに一致する複数の結果を受信することと、デバイス上にインストールされているネイティブアプリケーションに対応する別のデバイスで生成されたアプリケーション状態をそれぞれ含む複数の結果のサブセットを判定することと、複数の結果のサブセットにおける結果のそれぞれについて、ネイティブアプリケーションのリンク及び表現を提示することと、を含む。
1つ以上の態様では、検索クエリインデックス内にアプリケーション状態をインデックス化する、デバイスの方法及び装置を提供する。この実施形態では、サーバと連結される別のデバイスからアプリケーションのアプリケーション状態を受信する。デバイスは更に、アプリケーション状態に対応するアプリケーションのビューを生成し、このビューは、アプリケーション状態に対応する、アプリケーションのユーザインタフェースの表現である。それに加え、デバイスはビューを検索クエリインデックス内にインデックス化する。一部の実施形態では、検索クエリインデックス内にアプリケーション状態ビューをインデックス化する方法を1つ以上の処理ユニットに実行させる実行可能な命令を有する機械可読媒体が提供され、方法は、サーバを用いて、サーバと連結されたデバイスからアプリケーションのアプリケーション状態を受信することと、アプリケーション状態に対応するアプリケーションのビューを生成することであって、ビューが、アプリケーション状態に対応する、アプリケーションのユーザインタフェースの表現である、ことと、検索クエリインデックス内にそのビューをインデックス化することと、を含む。一部の実施形態では、ビューを、アプリケーション状態についてのインデックスエントリにリンクすることを更に含む。一部の実施形態では、インデックスエントリはインデックスの一部であり、インデックスは、サーバに連結された複数のデバイスから得られた複数のアプリケーションについてのアプリケーション状態の複数のインデックスエントリを含む。一部の実施形態では、アプリケーション状態は、そのアプリケーション状態についてのアプリケーションのある時点のスナップショットを表すデータを含む。一部の実施形態では、インデックスエントリは、タイトル、検索可能データ、及びアプリケーション特有の不透明データの群から選択された情報を含む。一部の実施形態では、ビューは画像である。一部の実施形態では、ビューは複数のフレームを有する画像である。一部の実施形態では、上記の生成することは、アプリケーションを仮想デバイス上で実行することと、アプリケーション状態に対応するアプリケーションのユーザインタフェースのスクリーン画像をキャプチャすることと、を含む。一部の実施形態では、上記の生成することは、アプリケーションをアプリケーション状態でシミュレーションすることと、アプリケーション状態に対応するアプリケーションのユーザインタフェースのスクリーン画像をキャプチャすることと、を含む。
一部の実施形態では、クエリ結果と関連付けられたビューを有するアプリケーション状態を取り出すための方法を1つ以上の処理ユニットに実行させる実行可能な命令を有する機械可読媒体が提供され、方法は、サーバにクエリを送信することと、サーバからクエリへの結果を受信することであって、結果が、結果に対応するアプリケーションのアプリケーション状態のビューを含み、ビューがアプリケーション状態に対応するアプリケーションのユーザインタフェースの表現である、ことと、ビューのインジケーションと共に結果を提示することと、を含む。一部の実施形態では、ユーザによるジェスチャに応じてビューを提示することを更に含む。
例示的な電子デバイスの機能ブロック図
一部の実施形態によれば、図42は、説明される様々な実施形態の原理に従って構成された、電子デバイス4200の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図42で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス4200はポータブル多機能デバイス100として実装される(図1A~1B)。
図42に示すように、電子デバイス4200は、情報を表示するように構成されたディスプレイユニット4201(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、接触、ジェスチャ、及びタッチスクリーンディスプレイ上での他のユーザ入力を受信するように構成されたタッチ感知面ユニット4203(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット4201及びタッチ感知面ユニット4203に連結された処理ユニット4205と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図42は、ディスプレイユニット4201及びタッチ感知面ユニット4203を電子デバイス4200と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと物理的に分離された状態であるが、電子デバイスと通信状態にある。一部の実施形態では、処理ユニットは、実行ユニット(例えば、実行ユニット4207、図42)と、収集ユニット(例えば、収集ユニット4209、図42)と、取得ユニット(例えば、取得ユニット4211、図42)と、関連付けユニット(例えば、関連付けユニット4213、図42)と、提供ユニット(例えば、提供ユニット4215、図42)と、送信ユニット(例えば、送信ユニット4217、図42)と、受信ユニット(例えば、受信ユニット4219、図42)と、表示ユニット(例えば、表示ユニット4221、図42)と、検出ユニット(例えば、検出ユニット4223、図42)と、実施ユニット(例えば、実施ユニット4225、図42)と、判定ユニット(例えば、判定ユニット4227、図42)と、監視ユニット(例えば、監視ユニット4229、図42)と、を含む。
一部の実施形態では、処理ユニット4205(又は、ユニット4207~4229などの、その1つ以上の構成要素)は、電子デバイス上で、電子デバイスのユーザからの命令に応じてアプリケーションを(例えば、実行ユニット4207を用いて)実行し、アプリケーションを実行している間、ユーザによってアプリケーション内で実行された1つ以上のアクションを少なくとも含む使用データを(例えば、収集ユニット4209を用いて)収集し、自動的に、人の介入なしに、収集された使用データに基づいて少なくとも1つのトリガー条件を(例えば、取得ユニット4211を用いて)取得し、その少なくとも1つのトリガー条件を、ユーザによってアプリケーション内で実行される1つ以上のアクションのうちの特定のアクションと(例えば、関連付けユニット4213を用いて)関連付け、少なくとも1つのトリガー条件が満たされていると判定すると、ユーザに、トリガー状態に関連付けられた特定のアクションが利用可能であることのインジケーションを(例えば、提供ユニット4215を用いて)提供するように、構成される。電子デバイス4200の一部の実施形態では、処理ユニット(又は、ユニット4207~4229などの、その1つ以上の構成要素)は、「概要」セクションにて上述したように、A2~A22の任意の1つの方法を実行するように更に構成される。
一部の実施形態によれば、図43は、説明される様々な実施形態の原理に従って構成された、電子デバイス4300の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図43で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス4300はポータブル多機能デバイス100として実装される(図1A~1B)。
図43に示すように、電子デバイス4300は、情報を表示するように構成されたディスプレイユニット4301(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット4303(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット4301及びタッチ感知面ユニット4303に連結された処理ユニット4305と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図43は、ディスプレイユニット4301及びタッチ感知面ユニット4303を電子デバイス4300と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。一部の実施形態では、処理ユニットは、表示ユニット(例えば、表示ユニット4309、図43)と、検出ユニット(例えば、検出ユニット4307、図43)と、取出しユニット(例えば、取出しユニット4311、図43)と、ポピュレートユニット(例えば、ポピュレートユニット4313、図43)と、スクロールユニット(例えば、スクロールユニット4315、図43)と、顕示化ユニット(例えば、顕示化ユニット4317、図43)と、選択ユニット(例えば、選択ユニット4319、図43)と、連絡ユニット(例えば、連絡ユニット4321、図43)と、受信ユニット(例えば、4323、図43)と、実行ユニット(例えば、実行ユニット4325、図43)と、を含む。
一部の実施形態では、処理ユニット4305(又は、ユニット4307~4329などの、その1つ以上の構成要素)は、電子デバイスのユーザからのタッチ感知ディスプレイ上の検索アクティブ化ジェスチャを(例えば、検出ユニット4307及び/又はタッチ感知面ユニット4303を用いて)検出し、検索アクティブ化ジェスチャを検出したことに応じて、タッチ感知ディスプレイ上に、(i)検索エントリ部分、及び(ii)検索エントリ部分にて何らかのユーザを受信する前に表示される予測部分、を含む検索インタフェースを、(例えば、表示ユニット4309及び/又はディスプレイユニット4301を用いて)表示するように構成され、予測部分は、(a)複数の以前に連絡している人のうちのある人に連絡するための少なくとも1つのアフォーダンスであって、当該人は複数の以前に連絡した人から、少なくとも部分的に現在時刻に基づいて(例えば、選択ユニット4319によって)自動的に選択される、少なくとも1つのアフォーダンスと、(b)電子デバイス上で利用可能な複数のアプリケーションのうちのあるアプリケーション内で予測されたアクションを実行するための少なくとも1つのアフォーダンスであって、予測されたアクションは、電子デバイスのユーザに関連付けられたアプリケーションの使用履歴に少なくとも部分的に基づいて(例えば、選択ユニット4319によって)自動的に選択される、少なくとも1つのアフォーダンス、の1つ以上でポピュレートされる。電子デバイス4300の一部の実施形態では、処理ユニット(又は、ユニット4307~4325などの、その1つ以上の構成要素)は、「概要」セクションにて上述したように、C2~C18の任意の1つの方法を実行するように更に構成される。
一部の実施形態によれば、図44は、説明される様々な実施形態の原理に従って構成された、電子デバイス4400の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図44で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス4400はポータブル多機能デバイス100として実装される(図1A~1B)。
図44に示すように、電子デバイス4400は、情報を表示するように構成されたディスプレイユニット4401(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット4403(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット4401及びタッチ感知面ユニット4403に連結された処理ユニット4405と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図44は、ディスプレイユニット4401及びタッチ感知面ユニット4403を電子デバイス4400と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。一部の実施形態では、処理ユニットは、検出ユニット(例えば、検出ユニット4407、図44)と、表示ユニット(例えば、表示ユニット4409、図44)と、取出しユニット(例えば、取出しユニット4411、図44)と、検索モード移行ユニット(例えば、検索モード移行ユニット4412、図44)と、ポピュレートユニット(例えば、ポピュレートユニット4413、図44)と、取得ユニット(例えば、取得ユニット4415、図44)と、判定ユニット(例えば、判定ユニット4417、図44)と、選択ユニット(例えば、選択ユニット4419、図44)と、を含む。
処理ユニット4405(又は、ユニット4407~4419などの、その1つ以上の構成要素)は、ディスプレイユニット(例えば、ディスプレイユニット4401)上に、電子デバイス上で実行しているアプリケーションに関連付けられたコンテンツを(例えば、表示ユニット4409及び/又はディスプレイユニット4401を用いて)表示し、タッチ感知面ユニット(例えば、タッチ感知面ユニット4403)を介して、検出されたときに電子デバイスにアプリケーションとは異なる検出モードへと移行するようにさせるスワイプジェスチャを(例えば、検出ユニット4407及び/又はタッチ感知面ユニット4403を用いて)検出し、スワイプジェスチャを検出したことに応じて、ディスプレイユニット(例えば、ディスプレイユニット4407)上に表示される検索インタフェースを含む検索モードへと(例えば、検索モード移行ユニット4411を用いて)移行し、検索モードへと移行することに伴って、少なくとも1つの提案された検索クエリを少なくとも部分的にコンテンツと関連付けられた情報に基づいて(例えば、判定ユニット4417を用いて)判定し、検索インタフェースで何らかのユーザ入力を受信する前に、少なくとも1つの提案された検索クエリで表示された検索インタフェースを(例えば、ポピュレートユニット4413を用いて)ポピュレートするように、構成される。電子デバイス4400の一部の実施形態では、処理ユニット(又は、ユニット4407~4419などの、その1つ以上の構成要素)は、「概要」セクションにて上述したように、D2~D16の任意の1つの方法を実行するように更に構成される。
一部の実施形態によれば、図45は、説明される様々な実施形態の原理に従って構成された、電子デバイス4500の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図45で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス4500はポータブル多機能デバイス100として実装される(図1A~1B)。
図45に示すように、電子デバイス4500は、情報を表示するように構成されたディスプレイユニット4501(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット4503(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット4501及びタッチ感知面ユニット4503に連結された処理ユニット4505と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図45は、ディスプレイユニット4501及びタッチ感知面ユニット4503を電子デバイス4500と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。一部の実施形態では、処理ユニットは、検出ユニット(例えば、検出ユニット4507、図45)と、表示ユニット(例えば、表示ユニット4509、図45)と、ポピュレートユニット(例えば、ポピュレートユニット4511、図45)と、検索モード移行ユニット(例えば、検索モード移行ユニット4513、図45)と、を備える。
処理ユニット4505(又は、ユニット4207~4229などの、その1つ以上の構成要素)は、タッチ感知面ユニット(例えば、タッチ感知面4503)を介して、検出されたときに電子デバイスに検索モードへと移行させる、ユーザインタフェース上のスワイプジェスチャを(例えば、検出ユニット4507及び/又はタッチ感知面ユニット4503を用いて)検出し、スワイプジェスチャを検出したことに応じて、(例えば、検索モード移行ユニット4513を用いて)検索モードへと移行するように構成され、検索モードへと移行することは、検索インタフェースインタフェース内に何らかのユーザ入力を受信する前に、ユーザインタフェースとは異なる検索インタフェースインタフェースを、第1のコンテンツアイテムで(例えば、ポピュレートユニット4511及び/又は表示ユニット4509及び/又はディスプレイユニット4501を用いて)ポピュレートすることを含む。一部の実施形態では、ユーザインタフェースが、アプリケーションを呼び出すための選択可能なアイコンを含むホームスクリーンとは異なる、アプリケーションに関連付けられたコンテンツを含むという判定に従って、検索インタフェースインタフェースを第1のコンテンツアイテムでポピュレートすることは、検索インタフェースインタフェースを、アプリケーションに関連付けられたコンテンツに少なくとも部分的に基づく少なくとも1つの提案される検索クエリで(例えば、ポピュレートユニット4511を用いて)ポピュレートすることを含み、ユーザインタフェースがホームスクリーンのあるページと関連付けられているとの判定に従って、検索インタフェースインタフェースを第1のコンテンツアイテムでポピュレートすることは、検索インタフェースインタフェースを、電子デバイスの現在の位置の閾値距離内にある少なくとも1つの対象地点の選択可能な説明を含むアフォーダンスで(例えば、ポピュレートユニット4511を用いて)ポピュレートすることを含む。電子デバイス4500の一部の実施形態では、処理ユニット(又は、ユニット4507~4513などの、その1つ以上の構成要素)は、「概要」セクションにて上述したような、E2の方法を実行するように更に構成される。
一部の実施形態によれば、図46は、説明される様々な実施形態の原理に従って構成された、電子デバイス4600の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図46で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス4600はポータブル多機能デバイス100として実装される(図1A~1B)。
図46に示すように、電子デバイス4600は、情報を表示するように構成されたディスプレイユニット4601(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット4603(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、電子デバイスについての位置情報を取得するように構成された位置センサユニット4607と、ディスプレイユニット4601、タッチ感知面ユニット4603、及び位置センサユニット4607に連結された処理ユニット4605と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図46は、ディスプレイユニット4601及びタッチ感知面ユニット4603を電子デバイス4600と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。一部の実施形態では、処理ユニットは、表示ユニット(例えば、表示ユニット4609、図46)と、取出しユニット(例えば、取出しユニット4611、図46)と、判定ユニット(例えば、判定ユニット4613、図46)と、記憶ユニット(例えば、記憶ユニット4615、図46)と、特定ユニット(例えば、特定ユニット4617、図46)と、選択ユニット(例えば、選択ユニット4619、図46)と、受信ユニット(例えば、受信ユニット4621、図46)と、提供ユニット(例えば、提供ユニット4623、図46)と、再生ユニット(例えば、再生ユニット4625、図46)と、を備える。
処理ユニット4605(又は、ユニット4609~4625などの、その1つ以上の構成要素)は、自動的に、かつユーザからの命令なしに、電子デバイスのユーザが地理的位置に停止している車両の中にいることを(例えば、判定ユニット4613を用いて)判定し、ユーザがその地理的位置にて車両を離れたと判定すると、位置センサユニット(例えば、位置センサユニット4607)から(例えば、取出しユニット4621を用いて)取り出された、地理的位置を(例えば、特定ユニット4617を用いて)特定するための位置情報が、正確性基準を満たすかを(例えば、判定ユニット4613を用いて)判定し、位置情報が正確性基準を満たさないと(例えば、判定ユニット4613を用いて)判定すると、地理的位置についての情報を入力するようにユーザにプロンプトを(例えば、提供ユニット4623を用いて)提供し、プロンプトを提供したことに応じて、地理的位置についての情報をユーザから(例えば、受信ユニット4623を用いて)受信し、その情報を車両位置情報として(例えば、記憶ユニット4615を用いて)記憶するように構成される。電子デバイス4600の一部の実施形態では、処理ユニット(又は、ユニット4609~4625などの、その1つ以上の構成要素)は、「概要」セクションにて上述したような、F2~F16のうちの任意の1つの方法を実行するように更に構成される。
一部の実施形態によれば、図47は、説明される様々な実施形態の原理に従って構成された、電子デバイス4700の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図47で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス4700はポータブル多機能デバイス100として実装される(図1A~1B)。
図47に示すように、電子デバイス4700は、情報を表示するように構成されたディスプレイユニット4701(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット4703(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、電子デバイスのために位置情報を取得するように構成された位置センサユニット4707と、ディスプレイユニット4701及びタッチ感知面ユニット4703に連結された処理ユニット4705と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図47は、ディスプレイユニット4701及びタッチ感知面ユニット4703を電子デバイス4700と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。一部の実施形態では、処理ユニットは、検出ユニット(例えば、検出ユニット4709、図47)と、表示ユニット(例えば、表示ユニット4711、図47)と、取出しユニット(例えば、取出しユニット4713、図47)と、判定ユニット(例えば、判定ユニット4715、図47)と、特定ユニット(例えば、特定ユニット4717、図47)と、ロック解除ユニット(例えば、ロック解除ユニット4719、図47)と、検索モード移行ユニット(例えば、検索ユニット移行ユニット4721、図47)と、を備える。
処理ユニット4705(又は、ユニット4709~4719などの、その1つ以上の構成要素)は、電子デバイスのユーザからいかなる命令をも受信せずに、電子デバイスの地理的位置を、位置センサユニット(例えば、位置センサユニット4707)を用いて監視し、監視された地理的位置に基づいて、電子デバイスが所定の種類の対象地点の閾値距離内にあることを(例えば、判定ユニット4715を用いて)判定し、電子デバイスが対象地点の閾値距離内にあると判定したことに従って、対象地点で現在人気のある少なくとも1つのアクティビティを(例えば、特定ユニット4717を用いて)特定し、対象地点についての情報を(例えば、取出しユニット4713を用いて)取り出し、この取り出すことは、対象地点で現在人気の少なくとも1つのアクティビティについての情報を取り出すことを含み、タッチ感知面ユニット(例えば、タッチ感知面ユニット4703)を介して、検出されたときに電子デバイスを検索モードへと移行させる第1の入力を(例えば、検出ユニット4709及び/又はタッチ感知面ユニット4703を用いて)検出し、第1の入力を検出したことに応じて、(例えば、検索モード移行ユニット4721を用いて)検索モードへと移行するように構成され、検索モードへと移行することは、検索インタフェースで何らかのユーザ入力を受信する前に、(i)少なくとも1つのアクティビティについての情報、及び(ii)少なくとも1つのアクティビティが対象地点で現在人気があると特定されているというインジケーション、を含むアフォーダンスを、表示ユニット(例えば、表示ユニット4701)を介して(例えば、表示ユニット4711及び/又はディスプレイユニット4701を用いて)提示することを含む。電子デバイス4700の一部の実施形態では、処理ユニット(又は、ユニット4709~4719などの、その1つ以上の構成要素)は、「概要」セクションにて上述したようなG2~G10の任意の1つの方法を実行するように更に構成される。
一部の実施形態によれば、図48は、説明される様々な実施形態の原理に従って構成された、電子デバイス4800の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図48で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス4800はポータブル多機能デバイス100として実装される(図1A~1B)。
図48に示すように、電子デバイス4800は、情報を表示するように構成されたディスプレイユニット4801(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット4803(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット4801及びタッチ感知面ユニット4803に連結された処理ユニット4805と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図48は、ディスプレイユニット4801及びタッチ感知面ユニット4803を電子デバイス4800と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。処理ユニットは、音声通信受信ユニット(例えば、音声通信受信ユニット4807、図48)と、コンテンツアイテム抽出ユニット(例えば、コンテンツアイテム抽出ユニット4809、図48)と、利用可能性判定ユニット(例えば、利用可能性判定ユニット4811、図48)と、アプリケーション特定ユニット(例えば、アプリケーション特定ユニット4813、図48)と、表示ユニット(例えば、表示ユニット4815、図48)と、コンテンツアイテム記憶ユニット(例えば、コンテンツアイテム記憶ユニット4817、図48)と、フィードバック提供ユニット(例えば、フィードバック提供ユニット4819、図48)と、入力検出ユニット(例えば、入力検出ユニット4821、図48)と、アプリケーションオープンユニット(例えば、アプリケーションオープンユニット4823、図48)と、ポピュレートユニット(例えば、ポピュレートユニット4825、図48)と、音声通信分析ユニット(例えば、音声通信分析ユニット4827、図48)と、を備える。
一部の実施形態では、処理ユニット(又は、ユニット4807~4827などの、その1つ以上の構成要素)は、音声通信の少なくとも一部を(例えば、音声通信受信ユニット4807を用いて)受信するように構成され、音声通信の一部は、電子デバイスのユーザとは異なるリモートデバイスのリモートユーザによって提供されるスピーチを含む。処理ユニットは更に、リモートデバイスのリモートユーザによって提供されるスピーチの少なくとも一部に基づいて、コンテンツアイテムを(例えば、コンテンツアイテム抽出ユニット4809を用いて)抽出し、コンテンツアイテムが電子デバイス上で現在利用可能かどうかを(例えば、利用可能性判定ユニット4811を用いて)判定するように、構成される。コンテンツアイテムが電子デバイス上で現在利用可能でないとの判定に従って、処理ユニットは更に、(i)コンテンツアイテムと関連付けられるアプリケーションを(アプリケーション特定ユニット4813を用いて)特定し、(ii)ディスプレイ上にコンテンツアイテムの選択可能な説明を(例えば、表示ユニット4815及び/又はディスプレイユニット4801を用いて)表示するように、構成される。選択可能な説明の選択肢を(例えば、入力検出ユニット4821及び/又はタッチ感知面ユニット4803を用いて)検出したことに応じて、処理ユニットは、特定されたアプリケーションにて提示用のコンテンツアイテムを(例えば、コンテンツアイテム記憶ユニット4817を用いて)記憶するように、構成される。
電子デバイス4800の一部の実施形態では、コンテンツアイテムは新たなイベントである。
電子デバイス4800の一部の実施形態では、コンテンツアイテムは、電子デバイス上のカレンダーアプリケーションと現在関連付けられているイベントについての新たなイベント詳細である。
電子デバイス4800の一部の実施形態では、コンテンツアイテムは新たな連絡先である。
電子デバイス4800の一部の実施形態では、コンテンツアイテムは、電子デバイス上の電話アプリケーションに関連付けられる既存の連絡先についての新たな連絡先情報である。
電子デバイス4800の一部の実施形態では、音声通信は生の通話である。
電子デバイス4800の一部の実施形態では、音声通信は生のFaceTime通話である。
電子デバイス4800の一部の実施形態では、音声通信は録音されたボイスメールである。
電子デバイス4800の一部の実施形態では、選択可能な説明を表示することは、電話アプリケーションを用いてかけられた最近の通話を含むユーザインタフェース内に、選択可能な説明を(例えば、表示ユニット4815及び/又はディスプレイユニット4801を用いて)表示することを含む。
電子デバイス4800の一部の実施形態では、選択可能な説明は、コンテンツアイテムが音声通信と関連付けられているとのインジケーションと共に、(例えば、表示ユニット4815及び/又はディスプレイユニット4801を用いて)表示される。
電子デバイス4800の一部の実施形態では、選択を検出することは、最近の通話を含むユーザインタフェースが表示されている間に、(例えば、入力検出ユニット4821を用いて)選択を受信することを含む。
電子デバイス4800の一部の実施形態では、処理ユニットは、コンテンツアイテムの選択可能な説明を表示することに伴って、電子デバイスのユーザにコンテンツアイテムが検出されたというフィードバックを(例えば、フィードバック提供ユニット4819を用いて)提供することを、更に含む。
電子デバイス4800の一部の実施形態では、フィードバックを提供することは、コンテンツアイテムの検出に関する情報を、その電子デバイスの近傍にある異なる電子デバイスに(例えば、フィードバック提供ユニット4819を介して)送信することを含む。
電子デバイス4800の一部の実施形態では、処理ユニットは、音声通信が第1の物理的位置についての情報を含むと判定し、入力を(例えば、入力検出ユニット4821を介して)検出し、入力を検出したことに応じて、位置データを受け付けることができるアプリケーションを開き、アプリケーションを第1の物理的位置についての情報で(例えば、アプリケーションオープンユニット4823を介して)ポピュレートするように、更に構成される。
電子デバイス4800の一部の実施形態では、アプリケーションはマップアプリケーションであり、マップアプリケーションを第1の物理的位置についての情報でポピュレートすることは、マップアプリケーション内に表示されるマップを第1の物理的位置に対応する位置識別子でポピュレートすることを含む。
電子デバイス4800の一部の実施形態では、処理ユニットは、音声通信が第1の物理的位置についての情報を含むと判定し、入力を(例えば、入力検出ユニット4821を介して)検出し、入力を検出したことに応じて、検索インタフェースを第1の物理的位置についての情報で(例えば、ポピュレートユニット4825を介して)ポピュレートするように、更に構成される。
電子デバイス4800の一部の実施形態では、コンテンツアイテムを抽出することは、音声通信の一部を分析して所定の種類のコンテンツを検出することを含み、分析は、電子デバイスと通信するオーディオシステムを介して音声通信を出力している間に実行される。
電子デバイス4800の一部の実施形態では、(例えば、音声通信分析ユニット4827を用いて)音声通信を分析することは、(i)リモートデバイスのリモートユーザによって提供されるスピーチをテキストに変換することと、(ii)テキストに自然言語処理アルゴリズムを適用し、テキストが1つ以上の定義済みのキーワードを含むかどうかを判定することと、(iii)テキストが対応する定義済みのキーワードを含むとの判定に従って、音声通信がコンテンツアイテムを説明するスピーチを含むと判定することと、を含む。
電子デバイス4800の一部の実施形態では、音声通信の少なくとも一部を受信することは、音声通信の一部が分析されるべきであるというインジケーション(例えば、命令)を、電子デバイスのユーザから受信することを含む。
電子デバイス4800の一部の実施形態では、インジケーションは、ハードウェアボタンの選択に対応する。
電子デバイス4800の一部の実施形態では、インジケーションは、「hey Siri」の言葉を含む、電子デバイスのユーザからのコマンドに対応する。
電子デバイス4800の一部の実施形態では、処理ユニットは、音声通信の第2の部分を受信するように更に構成されており、第2の部分は、リモートデバイスのリモートユーザによって提供されるスピーチ、及び電子デバイスのユーザによって提供されるスピーチを含む(例えば、音声通信は生の通話であり、第2の部分はユーザとリモートユーザとの間の話し合いを含む)。処理ユニットはまた、リモートデバイスのリモートユーザによって提供されるスピーチの少なくとも一部に基づく第2のコンテンツアイテム、及び電子デバイスのユーザによって提供されるスピーチを(例えば、コンテンツアイテム抽出ユニット4809を用いて)抽出し、第2のコンテンツアイテムが電子デバイス上で現在利用可能でないとの判定に従って、(i)第2のコンテンツアイテムと関連付けられている第2のアプリケーションを(例えば、アプリケーション特定ユニット4813を用いて)特定し、(ii)ディスプレイ上の第2のコンテンツアイテムの第2の選択可能な説明を(例えば、表示ユニット4815及び/又はディスプレイユニット4801を用いて)表示するように、構成される。第2の選択可能な説明の選択を検出したことに応じて、処理ユニットは、第2のコンテンツアイテムを、特定された第2のアプリケーションと共に提示するために(例えば、コンテンツアイテム記憶ユニット4817を用いて)記憶するように構成される。
電子デバイス4800の一部の実施形態では、選択可能な説明及び第2の選択可能な説明は、電話アプリケーションを用いてかけられた最近の通話を含むユーザインタフェース内に表示される。
一部の実施形態によれば、図49は、説明される様々な実施形態の原理に従って構成された、電子デバイス4900の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図49で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス4900はポータブル多機能デバイス100として実装される(図1A~1B)。
図49に示すように、電子デバイス4900は、情報を表示するように構成されたディスプレイユニット4901(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット4903(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット4901及びタッチ感知面ユニット4903に連結された処理ユニット4905と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図49は、ディスプレイユニット4901及びタッチ感知面ユニット4903を電子デバイス4900と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。処理ユニットは、音声通信受信ユニット(例えば、音声通信受信ユニット4907、図49)と、コンテンツアイテム抽出ユニット(例えば、コンテンツアイテム抽出ユニット4909、図49)と、インジケーション提供ユニット(例えば、インジケーション提供ユニット4911、図49)と、入力検出ユニット(例えば、入力検出ユニット4913、図49)と、アプリケーションオープンユニット(例えば、アプリケーションオープンユニット4915、図49)と、アプリケーションポピュレートユニット(例えば、アプリケーションポピュレートユニット4917、図49)と、フィードバック提供ユニット(例えば、フィードバック提供ユニット4919、図49)と、音声通信分析ユニット(例えば、音声通信分析ユニット4921、図49)と、を備える。
一部の実施形態では、処理ユニット(又は、ユニット4907~4921などの、その1つ以上の構成要素)は、音声通信の少なくとも一部を受信するように構成され、音声通信の一部は、電子デバイスのユーザとは異なるリモートデバイスのリモートユーザによって提供されるスピーチを含む(例えば、音声通信受信ユニット4907を用いて)。処理ユニットは更に、音声通信が物理的位置を特定するスピーチを含むことを(例えば、コンテンツアイテム抽出ユニット4909を用いて)判定するように、構成される。音声通信が物理的位置を特定するスピーチを含むことを判定したことに応じて、処理ユニットは、(例えば、コンテンツアイテム抽出ユニット4909を用いて)物理的位置についての情報が検出されたというインジケーションを提供するように、構成される。処理ユニットはまた、タッチ感知面ユニットを介して、入力を(例えば、入力検出ユニット4911を用いて)検出するように、構成される。入力を検出したことに応じて、処理ユニットは、(i)地理的位置データを受け付けるアプリケーションを(例えば、アプリケーションオープンユニット4913を用いて)開くことと、(ii)アプリケーションを物理的位置についての情報で(例えば、アプリケーションポピュレートユニット4915を用いて)ポピュレートするように、構成される。
電子デバイス4900の一部の実施形態では、音声通信は生の通話である。
電子デバイス4900の一部の実施形態では、音声通信は生のFaceTime通話である。
電子デバイス4900の一部の実施形態では、音声通信は録音されたボイスメールである。
電子デバイス4900の一部の実施形態では、インジケーションを提供することは、物理的位置の選択可能な説明を、電話アプリケーションを用いてかけられた最近の通話を含むユーザインタフェース内に表示することを含む。
電子デバイス4900の一部の実施形態では、選択可能な説明は、コンテンツアイテムが音声通信と関連付けられていることを示す。
電子デバイス4900の一部の実施形態では、入力を検出することは、最近の通話を含むユーザインタフェースが表示されている間に、選択可能な説明の上での入力を検出することを含む。
電子デバイス4900の一部の実施形態では、インジケーションを提供することは、電子デバイスのユーザに触覚フィードバックを(例えば、フィードバック提供ユニット4919を用いて)提供することを含む。
電子デバイス4900の一部の実施形態では、インジケーションを提供することは、電子デバイスの近傍にある異なる電子デバイスに物理的位置に関する情報を(例えば、フィードバック提供ユニット4919を用いて)送信することを含む。
電子デバイス4900の一部の実施形態では、音声通信が物理的位置を説明するスピーチを含むと判定することは、音声通信の一部を(例えば、音声通信分析ユニット4921を用いて)分析して物理的位置についての情報を検出することを含み、分析は、電子デバイスと通信するオーディオシステムを介して音声通信を出力している間に実行される。
電子デバイス4900の一部の実施形態では、音声通信の少なくとも一部を受信することは、音声通信の一部が分析されるべきであるという命令を電子デバイスのユーザから受信することを含む。
電子デバイス4900の一部の実施形態では、命令は、ハードウェアボタンの選択に対応する。
電子デバイス4900の一部の実施形態では、命令は、「hey Siri」の言葉を含む、電子デバイスのユーザからのコマンドに対応する。
一部の実施形態によれば、図50は、説明される様々な実施形態の原理に従って構成された、電子デバイス5000の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図50で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス5000はポータブル多機能デバイス100として実装される(図1A~1B)。
図50に示すように、電子デバイス5000は、情報を表示するように構成されたディスプレイユニット5001(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット5003(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット5001及びタッチ感知面ユニット5003に連結された処理ユニット5005と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図50は、ディスプレイユニット5001及びタッチ感知面ユニット5003を電子デバイス5000と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。処理ユニットは、提示ユニット(例えば、提示ユニット5007、図50)と、次の入力判定ユニット(例えば、次の入力判定ユニット5009、図50)と、コンテンツ分析ユニット(例えば、コンテンツ分析ユニット5011、図50)と、選択受信ユニット(例えば、選択受信ユニット5013、図50)と、タイプ入力監視ユニット(例えば、タイプ入力監視ユニット5015、図50)と、提示停止ユニット(例えば、提示停止ユニット5017、図50)と、を備える。
一部の実施形態では、処理ユニット(又は、ユニット5007~5017などの、その1つ以上の構成要素)は、ディスプレイ上のメッセージングアプリケーションにおいて、テキスト入力フィールド及び会話記録を(例えば、提示ユニット5007及び/又はディスプレイユニット5001を用いて)提示するように、構成される。メッセージングアプリケーションがディスプレイ上に提示されている間、処理ユニットはまた、電子デバイスのユーザが次に入力すると思われるものが物理的位置についての情報であることを(例えば、次の入力判定ユニット5009を用いて)判定するようにも構成される。処理ユニットは付加的に、テキスト入力フィールド及び会話記録に関連付けられるコンテンツを分析して、分析されたコンテンツの少なくとも一部に基づいて、提案された物理的位置を(例えば、コンテンツ分析ユニット5011を用いて)判定し、ディスプレイ上のメッセージングアプリケーション内にて、提案された物理的位置を特定する選択可能なユーザインタフェース要素を(例えば、提示ユニット5007を用いて)提示し、選択可能なユーザインタフェース要素の選択を(例えば、選択受信ユニット5013及び/又はタッチ感知面ユニット5003を用いて)受信し、選択を受信したことに応じて、テキスト入力フィールドに、提案された物理的位置の表現を(例えば、提示ユニット5007を用いて)提示するように、構成される。
電子デバイス5000の一部の実施形態では、メッセージングアプリケーションは仮想キーボードを含み、選択可能なユーザインタフェース要素は、仮想キーボードに隣接し、かつその上にある提案部分に表示される。
電子デバイス5000の一部の実施形態では、電子デバイスのユからの次の可能性のある入力が物理的位置についての情報であると判定することは、テキスト入力フィールド及び会話記録に関連付けられたコンテンツを処理して、会話記録がユーザの現在地についての質問を含むことを検出することを含む。
電子デバイス5000の一部の実施形態では、コンテンツを処理することは、自然言語処理アルゴリズムを適用して、質問を形成する1つ以上の定義済みのキーワードを検出することを含む。
電子デバイス5000の一部の実施形態では、質問は、ユーザとは異なる第2のユーザから受信されるメッセージに含まれる。
電子デバイス5000の一部の実施形態では、電子デバイスのユーザからの次の可能性のある入力が物理的位置についての情報であると判定することは、メッセージングアプリケーションのテキスト入力部分におけるユーザから受信されるタイプ入力を(例えば、タイプ入力監視ユニット5015を用いて)監視することを含む。
電子デバイス5000の一部の実施形態では、処理ユニットは、ユーザがタイピングしており選択可能なユーザインタフェース要素を選択していないことを判定したことに従って、選択可能なユーザインタフェース要素を提示するのを(例えば、提示停止ユニット5017を用いて)停止するように、更に構成される。
電子デバイス5000の一部の実施形態では、処理ユニットは、ユーザが選択可能なユーザインタフェース要素を選択しないことを示す追加の入力を提供したとの判定に従って、選択可能なユーザインタフェース要素を提示するのを(例えば、提示停止ユニット5017を用いて)停止するように、更に構成される。
電子デバイス5000の一部の実施形態では、提案された物理的位置の表現は、電子デバイスの現在の地理的位置を特定する情報を含む。
電子デバイス5000の一部の実施形態では、提案された物理的位置の表現は住所である。
電子デバイス5000の一部の実施形態では、提案された物理的位置の表現は、提案された物理的位置についての識別子を含むマップオブジェクトである。
電子デバイス5000の一部の実施形態では、提案された物理的位置は、メッセージングアプリケーション以外のアプリケーション内でユーザが最近閲覧した位置に対応する。
電子デバイス5000の一部の実施形態では、メッセージングアプリケーションは電子メールアプリケーションである。
電子デバイス5000の一部の実施形態では、メッセージングアプリケーションはテキストメッセージングアプリケーションである。
一部の実施形態によれば、図51は、説明される様々な実施形態の原理に従って構成された、電子デバイス5100の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図51で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス5100はポータブル多機能デバイス100として実装される(図1A~1B)。
図51に示すように、電子デバイス5100は、情報を表示するように構成されたディスプレイユニット5101(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット5103(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット5101及びタッチ感知面ユニット5103に連結された処理ユニット5105と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図51は、ディスプレイユニット5101及びタッチ感知面ユニット5103を電子デバイス5100と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。処理ユニットは、情報取得ユニット(例えば、情報取得ユニット5107、図51)と、アプリケーション終了ユニット(例えば、アプリケーション終了ユニット5109、図51)と、要求受信ユニット(例えば、要求受信ユニット5111、図51)と、アプリケーション能力判定ユニット(例えば、アプリケーション能力判定ユニット5113、図51)と、アプリケーション提示ユニット(例えば、アプリケーション提示ユニット5115、図51)と、アプリケーションポピュレートユニット(例えば、アプリケーションポピュレートユニット5117、図51)と、入力検出ユニット(例えば、入力検出ユニット5119、図51)と、アプリケーション切替ユーザインタフェース表示ユニット(例えば、アプリケーション切替ユーザインタフェース表示ユニット5121、図51)と、アプリケーション関連付け判定ユニット(例えば、アプリケーション関連付け判定ユニット5123、図51)と、アクセス提供ユニット(例えば、アクセス提供ユニット5125、図51)と、を備える。
一部の実施形態では、処理ユニット(又は、ユニット5107~5125などの、その1つ以上の構成要素)は、第1のアプリケーションを表示している間に、第1のアプリケーションにおいてユーザによって閲覧された第1の物理的位置を特定する情報を(例えば、情報取得ユニット5107を用いて)取得するように、構成される。処理ユニットはまた、第1のアプリケーションを(例えば、アプリケーション終了ユニット5109を用いて)終了して、第1のアプリケーションを終了した後に、第1のアプリケーションとは異なる第2のアプリケーションを開く要求を(例えば、要求受信ユニット5111を用いて)ユーザから受信するように、構成される。要求を受信し、かつ第2のアプリケーションが地理的位置情報を受け付けることができるとの判定(例えば、アプリケーション能力判定ユニット5113によって処理又は実施される判定)に従って、第2のアプリケーションを(例えば、アプリケーション提示ユニット5115を用いて)提示し、第2のアプリケーションを提示することは、第1の物理的位置を特定する情報に少なくとも部分的に基づく情報で第2のアプリケーションを(例えば、アプリケーションポピュレートユニット5117を用いて)ポピュレートすることを含む。
電子デバイス5100の一部の実施形態では、第2のアプリケーションを開くことの要求を受信することは、第1のアプリケーションを終了した後に、第2のアプリケーションについてのアフォーダンスへの入力を(例えば、入力検出ユニット5119を用いて)検出することを含む。
電子デバイス5100の一部の実施形態では、第2のアプリケーションについてのアフォーダンスは、電子デバイスのホームスクリーン内に表示されるアイコンである。
電子デバイス5100の一部の実施形態では、入力を検出することは、(i)物理的なホームボタンでのダブルタップを検出することと、(ii)ダブルタップを検出したことに応じて、アプリケーション切替ユーザインタフェースを(例えば、アプリ切替ユーザインタフェースディスプレイユニット5121を用いて)表示することと、(iii)アフォーダンスの選択をアプリケーション切替ユーザインタフェース内から検出することと、を含む。
電子デバイス5100の一部の実施形態では、第2のアプリケーションをポピュレートすることは、第1の物理的位置を特定する情報の少なくとも一部に基づく情報を含むユーザインタフェースオブジェクトを表示することを含む。
電子デバイス5100の一部の実施形態では、ユーザインタフェースオブジェクトは、第1の物理的位置が第1のアプリケーションにおいて最近閲覧されたことをユーザに通知するテキスト説明を含む。
電子デバイス5100の一部の実施形態では、ユーザインタフェースオブジェクトは第2のアプリケーション内で表示されるマップであり、第2のアプリケーションをポピュレートすることは、第1の物理的位置の識別子を含むようにマップをポピュレートすることを含む。
電子デバイス5100の一部の実施形態では、第2のアプリケーションが仮想キーボードと共に提示され、ユーザインタフェースオブジェクトは仮想キーボードの上に表示される。
電子デバイス5100の一部の実施形態では、情報を取得することは第2の物理的位置についての情報を取得することを含み、ユーザインタフェースオブジェクトを表示することは、ユーザインタフェースオブジェクトを第2の物理的位置についての情報と共に表示することを含む。
電子デバイス5100の一部の実施形態では、第2のアプリケーションが地理的位置情報を受け付けることができるとの判定は、(i)第2のアプリケーションが地理的位置データを受け付け及び処理することができる入力受け取りフィールドを含むと判定することと、(ii)第2のアプリケーションが地理的位置情報をマップ上に表示することができると判定することと、(iii)第2のアプリケーションが地理的位置情報を用いて経路案内を容易化することができると判定することと、(iv)第2のアプリケーションが地理的位置情報を用いて交通サービスの位置を見つけて提供することができると判定することと、のうちの1つ以上(例えば、アプリケーション関連付け判定ユニット5123及び/又はアプリケーション能力判定ユニット5113によって実施される1つ以上の判定)を含む。
電子デバイス5100の一部の実施形態では、第2のアプリケーションが地理的位置情報を受け付けることができるとの判定は、第2のアプリケーションが、地理的位置データを受け付けかつ処理することができる入力受け取りフィールドを含むと判定することを含み、入力受け取りフィールドは、第2のアプリケーション内に表示されるマップ内を検索することを可能とする検索ボックスである。
電子デバイス5100の一部の実施形態では、処理ユニットは、要求を受信したことに応じて、ユーザのアプリケーション使用履歴に基づいて、第2のアプリケーションが第1のアプリケーションと関連しているかを、(例えば、アプリケーション関連付け判定ユニット5123を用いて)判定するように、更に構成される。
電子デバイス5100の一部の実施形態では、処理ユニットは、第2のアプリケーションを提示する前に、第2のアプリケーションに第1の物理的位置を特定する情報へのアクセスを(例えば、アクセス提供ユニット5125を用いて)提供するように更に構成され、アクセスを提供される前は、第2のアプリケーションは第1の物理的位置を特定する情報にアクセスできなかった。
一部の実施形態によれば、図52は、説明される様々な実施形態の原理に従って構成された、電子デバイス5200の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図52で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス5200はポータブル多機能デバイス100として実装される(図1A~1B)。
図52に示すように、電子デバイス5200は、情報を表示するように構成されたディスプレイユニット5201(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット5203(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット5201及びタッチ感知面ユニット5203に連結された処理ユニット5205と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図52は、ディスプレイユニット5201及びタッチ感知面ユニット5203を電子デバイス5200と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。処理ユニットは、情報取得ユニット(例えば、情報取得ユニット5207、図52)と、入力検出ユニット(例えば、入力検出ユニット5209、図52)と、アプリケーション特定ユニット(例えば、アプリケーション特定ユニット5211、図52)と、アフォーダンス提示ユニット(例えば、アフォーダンス提示ユニット5213、図52)と、アプリケーションオープンユニット(例えば、アプリケーションオープンユニット5215、図52)、アプリケーションポピュレートユニット(例えば、アプリケーションポピュレートユニット5217、図52)と、アプリケーション切替ユーザインタフェース提示ユニット(例えば、アプリケーション切替ユーザインタフェース提示ユニット5219、図52)と、アプリケーション能力判定ユニット(例えば、アプリケーション能力判定ユニット5221、図52)と、を備える。
一部の実施形態では、処理ユニット(又は、ユニット5207~5221などの、その1つ以上の構成要素)は、第1のアプリケーションにてユーザによって閲覧された第1の物理的位置を特定する情報を(例えば、情報取得ユニット5207を用いて)取得し、第1の入力を(例えば、入力検出ユニット5209を用いて)検出するように、構成される。第1の入力を検出したことに応じて、処理ユニットは、(i)地理的位置情報を受け付けることができる第2のアプリケーションを(例えば、アプリケーション特定ユニット5209を用いて)特定し、(ii)ディスプレイの少なくとも一部の上に、第1のアプリケーションとは異なる、第1の物理的位置についての情報を有する第2のアプリケーションを開く提案を有するアフォーダンスを、(例えば、アフォーダンス提示ユニット5213を用いて)提示するように、構成される。処理ユニットはまた、アフォーダンスにて第2の入力を(例えば、入力検出ユニット5209を用いて)検出するように、構成される。アフォーダンスで第2の入力を検出したことに応じて、処理ユニットは、(i)第2のアプリケーションを(例えば、アプリケーションオープンユニット5215を用いて)開き、(ii)第2のアプリケーションを、第1の物理的位置を特定する情報に少なくとも部分的に基づく情報を含むように(例えば、アプリケーションポピュレートユニット5217を用いて)ポピュレートするように、構成される。
電子デバイス5200の一部の実施形態では、第1の入力は、アプリケーション切替ユーザインタフェースを開くことの要求に対応する(例えば、第1の入力は電子デバイスの物理的なホームボタン上のダブルタップである)。
電子デバイス5200の一部の実施形態では、アフォーダンスはアプリケーション切替ユーザインタフェース内に提示される。
電子デバイス5200の一部の実施形態では、アフォーダンスを提示することは、アフォーダンスを提示することに伴って、アプリケーション切替ユーザインタフェース内に電子デバイス上で実行している複数のアプリケーションの表現を(例えば、アプリケーション切替ユーザインタフェース提示ユニット5219を用いて)提示することと、アプリケーションの表現の下に位置するディスプレイの領域にアフォーダンスを提示することと、を含む。
電子デバイス5200の一部の実施形態では、第1の入力は、電子デバイスのホームスクリーンを開くことの要求に対応する(例えば、第1の入力は電子デバイスの物理的なホームボタン上のシングルタップである)。
電子デバイス5200の一部の実施形態では、アフォーダンスはホームスクリーンの一部の上に提示される。
電子デバイス5200の一部の実施形態では、提案は、第2のアプリケーションに関連付けられた種類に特有のテキスト説明を含む。
電子デバイス5200の一部の実施形態では、第2のアプリケーションをポピュレートすることは、第1の物理的位置を特定する情報の少なくとも一部に基づく情報を含むユーザインタフェースオブジェクトを表示することを含む。
電子デバイス5200の一部の実施形態では、ユーザインタフェースオブジェクトは、第1の物理的位置が第1のアプリケーションにて最近閲覧されたことをユーザに通知するテキスト説明を含む。
電子デバイス5200の一部の実施形態では、ユーザインタフェースオブジェクトは第2のアプリケーション内で表示されるマップであり、第2のアプリケーションをポピュレートすることは、第1の物理的位置の識別子を含むようにマップをポピュレートすることを含む。
電子デバイス5200の一部の実施形態では、第2のアプリケーションが仮想キーボードと共に提示され、ユーザインタフェースオブジェクトは仮想キーボードの上に表示される。
電子デバイス5200の一部の実施形態では、第2のアプリケーションが地理的位置情報を受け付けることができるとの判定は、(i)第2のアプリケーションが地理的位置データを受け付け及び処理することができる入力受け取りフィールドを含むと判定することと、(ii)第2のアプリケーションが地理的位置情報をマップ上に表示することができると判定することと、(iii)第2のアプリケーションが地理的位置情報を用いて経路案内を容易化することができると判定することと、(iv)第2のアプリケーションが地理的位置情報を用いて交通サービスの位置を見つけて提供することができると判定することと、のうちの1つ以上(例えば、アプリケーション能力判定ユニット5221によって実施される1つ以上の判定)を含む。
電子デバイス5200の一部の実施形態では、第2のアプリケーションが地理的位置情報を受け付けることができると識別することは、第2のアプリケーションが、地理的位置情報を受け付けかつ処理することができる入力受け取りフィールドを含むことを(例えば、アプリケーション能力判定ユニット5221を用いて)判定することを含み、入力受け取りフィールドは、第2のアプリケーション内に表示されるマップ内を検索することを可能とする検索ボックスである。
一部の実施形態によれば、図53は、説明される様々な実施形態の原理に従って構成された、電子デバイス5300の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図53で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス5300はポータブル多機能デバイス100として実装される(図1A~1B)。
図53に示すように、電子デバイス5300は、情報を表示するように構成されたディスプレイユニット5301(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット5303(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット5301及びタッチ感知面ユニット5303に連結された処理ユニット5305と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図53は、ディスプレイユニット5301及びタッチ感知面ユニット5303を電子デバイス5300と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。処理ユニットは、情報取得ユニット(例えば、情報取得ユニット5307、図53)と、車両エントリ判定ユニット(例えば、車両エントリ判定ユニット5309、図53)と、プロンプト提供ユニット(例えば、プロンプト提供ユニット5311、図53)と、命令受信ユニット(例えば、命令受信ユニット5313、図53)と、経路案内容易化ユニット(例えば、経路案内容易化ユニット5315、図53)と、メッセージ検出ユニット(例えば、メッセージ検出ユニット5317、図53)と、を備える。
一部の実施形態では、処理ユニット(又は、ユニット5307~5317などの、その1つ以上の構成要素)は、電子デバイス上で実行している第1のアプリケーションにてユーザによって閲覧された第1の物理的位置を特定する情報を(例えば、情報取得ユニット5307を用いて)取得するように、構成される。処理ユニットはまた、ユーザが車両に乗ったと(例えば、車両エントリ判定ユニット5309を用いて)判定するように、構成される。ユーザが車両に乗ったと判定したことに応じて、処理ユニットは、第1の物理的位置を経路案内の目的地として用いるようにプロンプトをユーザに(例えば、プロンプト提供ユニット5311を用いて)提供するように、構成される。プロンプトを提供したことに応じて、ユーザから第1の物理的位置を経路案内の目的地として用いるようにする命令を(例えば、命令受信ユニット5313を用いて)受信する。処理ユニットは付加的に、第1の物理的位置への経路案内を(例えば、経路案内容易化ユニット5307を用いて)容易化するように、構成される。
電子デバイス5300の一部の実施形態では、処理ユニットは、メッセージが第2の物理的位置を特定する情報を含むことを検出することを含む、メッセージが電子デバイスによって受信されていることを(メッセージ検出ユニット5317を用いて)検出し、検出したことに応じて、第2の物理的位置を経路案内の新たな目的地として用いるように、新たなプロンプトをユーザに(例えば、プロンプト提供ユニット5311を用いて)提供するように、更に構成される。
電子デバイス5300の一部の実施形態では、処理ユニットは、ユーザから第2の物理的位置を新たな目的地として用いるようにする命令を受信したことに応じて、第2の物理的位置への経路案内を(例えば、経路案内容易化ユニット5315を用いて)容易化するように、更に構成される。
電子デバイス5300の一部の実施形態では、メッセージが第2の物理的位置を特定する情報を含むことを検出することは、電子デバイス上で利用可能な仮想アシスタントが、電子デバイスと通信状態にあるオーディオシステムを介してユーザに対してメッセージを読んでいる間に、検出を実行することを含む。
電子デバイス5300の一部の実施形態では、ユーザが車両に乗ったと判定することは、電子デバイスが車両との通信リンクを確立していることを検出することを含む。
電子デバイス5300の一部の実施形態では、経路案内を容易化することは、電子デバイスのディスプレイを介して経路案内を提供することを含む。
電子デバイス5300の一部の実施形態では、経路案内を容易化することは、第1の物理的位置を特定する情報を車両に送信することを含む。
電子デバイス5300の一部の実施形態では、経路案内を容易化することは、電子デバイスと通信状態にあるオーディオシステム(例えば、車のスピーカ又はデバイス自身の内臓スピーカ)を介して経路案内を提供することを含む。
一部の実施形態によれば、図54は、説明される様々な実施形態の原理に従って構成された、電子デバイス5400の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図54で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス5400はポータブル多機能デバイス100として実装される(図1A~1B)。
図54に示すように、電子デバイス5400は、情報を表示するように構成されたディスプレイユニット5401(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット5403(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット5401及びタッチ感知面ユニット5403に連結された処理ユニット5405と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図54は、ディスプレイユニット5401及びタッチ感知面ユニット5403を電子デバイス5400と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。処理ユニットは、提示ユニット(例えば、提示ユニット5407、図54)と、要求受信ユニット(例えば、要求受信ユニット5409、図54)と、ユーザインタフェースオブジェクト提供ユニット(例えば、ユーザインタフェースオブジェクト提供ユニット5411、図54)と、プロアクティブ貼り付けユニット(例えば、プロアクティブ貼り付けユニット5413、図54)と、能力判定ユニット(例えば、能力判定ユニット5415、図54)と、を備える。
一部の実施形態では、処理ユニット(又は、ユニット5407~5415などの、その1つ以上の構成要素)は、第1のアプリケーション内にコンテンツを(例えば、提示ユニット5407及び/又はディスプレイユニット5401を用いて)提示し、第1のアプリケーションとは異なる、入力受け取りフィールドを含む第2のアプリケーションを開くことの要求をユーザから(例えば、要求受信ユニット及び/又はタッチ感知面ユニット5403を用いて)受信し、要求を受信したことに応じて、入力受け取りフィールドを有する第2のアプリケーションを(例えば、提示ユニット5407及び/又はディスプレイユニット5401を用いて)提示し、入力受け取りフィールドで何らかのユーザ入力を受信する前に、選択可能なユーザインタフェースオブジェクトを提供して、ユーザがコンテンツの少なくとも一部を入力受け取りフィールドに(例えば、ユーザインタフェースオブジェクト提供ユニット5411及び/又はディスプレイユニット5401を用いて)貼付することを可能し、選択可能なユーザインタフェースオブジェクトの選択を検出したことに応じて、コンテンツの一部を入力受け取りフィールドに(例えば、プロアクティブ貼り付けユニット5413を用いて)貼付するように、構成される。
電子デバイス5400の一部の実施形態では、選択可能なユーザインタフェースオブジェクトを提供する前に、処理ユニットは、入力受け取りフィールドを、コンテンツの一部を受け付けることができるフィールドとして(例えば、能力判定ユニット5415を用いて)特定するように、更に構成される。
電子デバイス5400の一部の実施形態では、入力受け取りフィールドをコンテンツの一部を受け付けることができるフィールドとして特定することは、入力受け取りフィールドの選択を検出したことに応じて実行される。
電子デバイス5400の一部の実施形態では、コンテンツの一部は画像に対応する。
電子デバイス5400の一部の実施形態では、コンテンツの一部はテキストコンテンツに対応する。
電子デバイス5400の一部の実施形態では、コンテンツの一部はテキストコンテンツ及び画像に対応する。
電子デバイス5400の一部の実施形態では、第1のアプリケーションはウェブ閲覧アプリケーションであり、第2のアプリケーションはメッセージングアプリケーションである。
電子デバイス5400の一部の実施形態では、第1のアプリケーションは写真閲覧アプリケーションであり、第2のアプリケーションはメッセージングアプリケーションである。
電子デバイス5400の一部の実施形態では、処理ユニットは、第2のアプリケーションを開くことの要求を受信する前に、コンテンツの少なくとも一部をコピーすることの要求を受信するように、更に構成される。
電子デバイス5400の一部の実施形態では、選択可能なユーザインタフェースオブジェクトは、コンテンツの一部が最近、第1のアプリケーションにて閲覧されたことのインジケーションと共に表示されている。
一部の実施形態によれば、図55は、説明される様々な実施形態の原理に従って構成された、電子デバイス5500の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図55で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を任意選択的に支持する。議論を容易にするために、電子デバイス5500はポータブル多機能デバイス100として実装される(図1A~1B)。
図55に示すように、電子デバイス5500は、情報を表示するように構成されたディスプレイユニット5501(例えば、タッチ感知ディスプレイシステム112(タッチスクリーン、タッチスクリーンディスプレイとも称される)、図1A)と、タッチスクリーンディスプレイ上の接触、ジェスチャ、及び他のユーザ入力を受信するように構成されたタッチ感知面ユニット5503(例えば、ディスプレイコントローラ156及びタッチ感知ディスプレイシステム112、図1A)と、ディスプレイユニット5501及びタッチ感知面ユニット5503に連結された処理ユニット5505と、を備える。一部の実施形態では、電子デバイスは、図1Eに示すコンピューティングデバイス(例えば、コンピューティングデバイスA~D)のいずれか1つに従って構成される。図示を簡易にするために、図55は、ディスプレイユニット5501及びタッチ感知面ユニット5503を電子デバイス5500と一体化したものとして示しているが、一部の実施形態では、これらのユニットの片方又は両方は、電子デバイスと通信状態にあるが、ユニットは電子デバイスと物理的に分離された状態である。一部の実施形態では、処理ユニットは、提示ユニット(例えば、提示ユニット5507、図55)と、判定ユニット(例えば、判定ユニット5509、図55)と、取得ユニット(例えば、取得ユニット5511、図55)と、検索実施ユニット(例えば、検索実施ユニット5513、図55)と、情報準備ユニット(例えば、情報準備ユニット5515、図55)と、アフォーダンス表示ユニット(例えば、アフォーダンス表示ユニット5517、図55)と、検出ユニット(例えば、検出ユニット5519、図55)と、を備える。
一部の実施形態では、処理ユニット(又は、ユニット5507~5519などの、その1つ以上の構成要素)は、ディスプレイ上に、アプリケーションに関連付けられるテキストコンテンツを(例えば、提示ユニット5507及び/又はディスプレイユニット5501を用いて)提示し、テキストコンテンツの一部が、(i)位置、(ii)連絡先、又は(iii)イベントに関すると(例えば、判定ユニット5509を用いて)判定し、テキストコンテンツの一部が位置に関連すると判定すると、電子デバイス上の位置センサから位置情報を(例えば、取得ユニット5511を用いて)取得し、取得した位置情報を予測コンテンツアイテムとして表示するために(例えば、情報準備ユニット5515を用いて)準備し、テキストコンテンツの一部が連絡先に関連すると判定すると、テキストコンテンツの一部に関連する連絡先情報について電子デバイス上において(例えば、検索実施ユニット5513を用いて)検索を行い、検索を介して取り出された、少なくとも1つの連絡先に関連付けられた情報を、予測コンテンツアイテムとして表示するために(例えば、情報準備ユニット5515を用いて)準備し、テキストコンテンツの一部がイベントに関連すると判定すると、テキストコンテンツの一部に関連するイベント情報について電子デバイス上において(例えば、検索実施ユニット5513を用いて)検索を行い、新たな検索を介して取り出された、少なくとも1つのイベントに少なくとも部分的に基づく情報を、予測コンテンツアイテムとして表示するために(例えば、情報準備ユニット5515を用いて)準備し、予測コンテンツアイテムを含むアフォーダンスをアプリケーション内に(例えば、アフォーダンス表示ユニット5517及び/又はディスプレイユニット5501を用いて)表示し、タッチ感知面を介して、アフォーダンスの選択を(例えば、検出ユニット5519を介して)検出し、選択を検出したことに応じて、予測コンテンツアイテムに関連付けられた情報を、テキストコンテンツに隣接するディスプレイに(例えば、提示ユニット5507及び/又はディスプレイユニット5501を用いて)表示するように、構成される。
電子デバイス5500の一部の実施形態では、テキストコンテンツの一部は、アプリケーション内で直近に提示されたテキストコンテンツに対応する。
電子デバイス5500の一部の実施形態では、アプリケーションはメッセージングアプリケーションであり、テキストコンテンツの一部は、電子デバイスとは異なるリモートデバイスのリモートユーザからメッセージングアプリケーションの中で受信された質問である。
電子デバイス5500の一部の実施形態では、テキストコンテンツの一部は、アプリケーション内の入力受け取りフィールドにおいて電子デバイスのユーザによって提供される入力である。
電子デバイス5500の一部の実施形態では、テキストコンテンツの一部は、テキストコンテンツの一部を含むユーザインタフェースオブジェクトを選択するユーザ入力に応じて、特定される。
電子デバイス5500の一部の実施形態では、アプリケーションはメッセージングアプリケーションであり、ユーザインタフェースオブジェクトはメッセージングアプリケーション内で表示された会話の中のメッセージ吹き出しである。
電子デバイス5500の一部の実施形態では、処理ユニットは、第2のユーザインタフェースオブジェクトの選択を検出し、選択を検出したことに応じて、(i)予測コンテンツアイテムを有するアフォーダンスの表示を停止し、(ii)第2のユーザインタフェースオブジェクトに関連付けられたテキストコンテンツが、位置、連絡先、又はイベントに関連していることを判定し、判定したことに従って、アプリケーション内に新たな予測コンテンツアイテムを表示するように、更に構成される。
電子デバイス5500の一部の実施形態では、アフォーダンスはアプリケーション内の仮想キーボードに隣接して表示される。
電子デバイス5500の一部の実施形態では、予測コンテンツアイテムに関連付けられた情報は入力受け取りフィールドに表示され、入力受け取りフィールドは仮想キーボードで受信されるタイプ入力を表示するフィールドである。
上述の情報処理方法のいずれかにおける動作は、汎用プロセッサ(例えば、図1A及び3に関連して上述されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働させることによって、任意選択的に実施される。
図6A~6B及び図8A~8Bを参照して上述された動作は、図1A~1B、又は図42~55に示される構成要素によって、任意選択的に実施される。例えば、実行動作602及び検出動作802は、任意選択的に、イベントソート部170、イベント認識部180、及びイベント処理部190により実行される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136-1に配信する。アプリケーション136-1の対応するイベント認識部180は、そのイベント情報を対応するイベント定義186に照会し、タッチ感知面上の第1の位置での第1の接触(又は、デバイスの回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、既定のイベント又はサブイベントに対応するか否かを判定する。対応する既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連付けられるイベント処理部190をアクティブ化する。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176若しくはオブジェクト更新部177を、任意選択的に用いるか又は呼び出す。一部の実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が図1A~1Bに示される構成要素に基づいてどのように実施されるかは明らかであるだろう。
上述の説明は、説明の目的上、特定の実施形態を参照して説明されている。しかしながら、上記の例示的な論考は、網羅的であること、又は本発明を、開示される厳密な形態に限定することを意図するものではない。上記の教示を鑑みて、多くの修正及び変形が可能である。本発明の原理及びその実際的な応用を最良の形で説明し、それによって他の当業者が、想到される特定の用途に好適な様々な改良で本発明及び様々な実施形態を最良の形で使用することを可能とするために、これらの実施形態を選択し説明した。

Claims (33)

  1. 方法であって、
    タッチ感知ディスプレイを有する電子デバイスにおいて、
    前記タッチ感知ディスプレイを介して、前記電子デバイスのユーザからの検索起動ジェスチャを検出することと、
    前記検索起動ジェスチャのみを検出したことに応じて、検索インタフェースを前記タッチ感知ディスプレイの略全面に表示することと、を含み、
    前記検索インタフェースは、
    (i) 検索エントリ部分と、
    (ii) 前記検索エントリ部分においていずれかのユーザ入力を受信する前に表示される予測部分であって、前記予測部分は、それぞれが個別のローカルにインストールされたアプリケーションと関連付けられた1つ以上のユーザインタフェースオブジェクトと共に表示され、前記個別のローカルにインストールされたアプリケーションはそれぞれ、前記電子デバイスの前記ユーザと関連付けられたアプリケーションの使用履歴に基づいて、前記予測部分に含めるために複数のローカルにインストールされたアプリケーションのうちから選択され、前記予測部分は、グループの中から選択されたユーザインタフェースオブジェクトを含む、予測部分と
    を含み、
    前記グループは、
    前記複数のローカルにインストールされたアプリケーションのうち個別のアプリケーション内での予測された動作と関連付けられた個別のディープリンクユーザインタフェースオブジェクトであって、前記個別のディープリンクユーザインタフェースオブジェクトは、ユーザにより選択されると、前記電子デバイスに、前記複数のローカルにインストールされたアプリケーションのうち個別のアプリケーションを表示させ、前記個別のアプリケーション内で予測された動作を開始し、前記予測された動作は、現在時刻と前記アプリケーションの使用履歴のうち1つ以上に基づいて選択される、ディープリンクユーザインタフェースオブジェクトと、
    それぞれが個別の宛先と関連付けられた1つ以上の他のユーザインタフェースオブジェクトであって、前記個別の宛先のそれぞれは、現在時刻に少なくとも部分的に基づいて前記予測部分に含めるために、複数の事前に接触した人々の中から選択される前記1つ以上の他のユーザインタフェースオブジェクトとからなる、方法。
  2. 前記アプリケーションの使用履歴はデータ構造であって、前記電子デバイスのメモリに保存され、前記個別のローカルにインストールされたアプリケーションが前記電子デバイスのユーザによりアクセスされた日時を少なくとも識別する情報を含む、請求項1に記載の方法。
  3. 個別にローカルにインストールされたアプリケーションのそれぞれはまた、前記電子デバイスの現在位置に基づいて前記予測部分内に含めるために選択される、請求項1に記載の方法。
  4. 個別にローカルにインストールされたアプリケーションのそれぞれはまた、現在時刻に基づいて前記予測部分内に含めるために選択される、請求項3に記載の方法。
  5. 前記検索起動ジェスチャは現在時刻に受け付けられ、前記アプリケーション使用履歴の分析は、個別のローカルにインストールされたアプリケーションのそれぞれに前記ユーザが前記現在時間において興味を持っていることを示す、請求項4に記載の方法。
  6. 前記タッチ感知ディスプレイを介して、かつ、前記予測部分内において、個別のローカルにインストールされたアプリケーションと関連付けられた個別のユーザインタフェースオブジェクトの選択を検出することと、
    前記選択を検出したことに応じて、前記タッチ感知ディスプレイ上に、前記個別のローカルにインストールされたアプリケーションと関連付けられたユーザインタフェースを表示することと、更に含む、請求項1に記載の方法。
  7. 前記1つ以上のユーザインタフェースオブジェクトは、前記アプリケーションの使用履歴に基づいて前記予測部分内に含めるために選択された、それぞれが個別のローカルにインストールされたアプリケーションと関連づけられた複数のユーザインタフェースオブジェクトを含む、請求項6に記載の方法。
  8. 前記検索起動ジェスチャを検出することは、個別のホームスクリーンページのシーケンスにおける第1のホームスクリーンページ上での前記タッチ感知ディスプレイ上での接触であって、その後に前記タッチ感知ディスプレイと交差する略左から右方向における前記接触の移動が続く接触を検出することを含む、請求項1に記載の方法。
  9. 前記検索起動ジェスチャを検出することは、個別のホームスクリーンページのシーケンスにおけるいずれかの上での前記タッチ感知ディスプレイ上での接触であって、その後に前記タッチ感知ディスプレイと交差して略下方向の前記接触の移動が続く、接触を検出することを含む、請求項1に記載の方法。
  10. 前記予測部分は、前記1つ以上のユーザインタフェースオブジェクトと区別される1つ以上の追加のユーザインタフェースオブジェクトに対する前記検索起動ジェスチャを検出することに応じてもポピュレートされ、
    前記1つ以上の追加のユーザインタフェースオブジェクトのそれぞれは、前記電子デバイスの現在位置と現在時刻との1つ以上に基づいて前記予測部分に含めるために選択されたコンテンツと関連づけられている、請求項1に記載の方法。
  11. (i)個別のローカルにインストールされたアプリケーションのそれぞれと関連づけられた前記1つ以上のユーザインタフェースオブジェクト、及び、(ii)前記1つ以上の追加のユーザインタフェースオブジェクトについての、前記予測部分内での順序は、前記電子デバイスの前記ユーザによって設定される、請求項10に記載の方法。
  12. 実行可能命令群を含むコンピュータプログラムであって、前記実行可能命令群はタッチ感知ディスプレイを有する電子デバイスにおいて実行されると、前記電子デバイスに、
    前記タッチ感知ディスプレイを介して、前記電子デバイスのユーザからの検索起動ジェスチャを検出することと、
    前記検索起動ジェスチャのみを検出したことに応じて、検索インタフェースを前記タッチ感知ディスプレイの略全面に表示することと、を実行させ、
    前記検索インタフェースは、
    (i) 検索エントリ部分と、
    (ii) 前記検索エントリ部分においていずれかのユーザ入力を受信する前に表示される予測部分であって、前記予測部分は、それぞれが個別のローカルにインストールされたアプリケーションと関連付けられた1つ以上のユーザインタフェースオブジェクトと共に表示され、前記個別のローカルにインストールされたアプリケーションはそれぞれ、前記電子デバイスの前記ユーザと関連付けられたアプリケーションの使用履歴に基づいて、前記予測部分に含めるために複数のローカルにインストールされたアプリケーションのうちから選択され、前記予測部分は、グループの中から選択されたユーザインタフェースオブジェクトを含む、予測部分と
    を含み、
    前記グループは、
    前記複数のローカルにインストールされたアプリケーションのうち個別のアプリケーション内での予測された動作と関連付けられた個別のディープリンクユーザインタフェースオブジェクトであって、前記個別のディープリンクユーザインタフェースオブジェクトは、ユーザにより選択されると、前記電子デバイスに、前記複数のローカルにインストールされたアプリケーションのうち個別のアプリケーションを表示させ、前記個別のアプリケーション内で予測された動作を開始し、前記予測された動作は、現在時刻と前記アプリケーションの使用履歴のうち1つ以上に基づいて選択される、ディープリンクユーザインタフェースオブジェクトと、
    それぞれが個別の宛先と関連付けられた1つ以上の他のユーザインタフェースオブジェクトであって、前記個別の宛先のそれぞれは、現在時刻に少なくとも部分的に基づいて前記予測部分に含めるために、複数の事前に接触した人々の中から選択される前記1つ以上の他のユーザインタフェースオブジェクトとからなる、コンピュータプログラム。
  13. 前記アプリケーションの使用履歴はデータ構造であって、前記電子デバイスのメモリに保存され、前記個別のローカルにインストールされたアプリケーションが前記電子デバイスのユーザによりアクセスされた日時を少なくとも識別する情報を含む、請求項12に記載のコンピュータプログラム。
  14. 個別にローカルにインストールされたアプリケーションのそれぞれはまた、前記電子デバイスの現在位置に基づいて前記予測部分内に含めるために選択される、請求項12に記載のコンピュータプログラム。
  15. 個別にローカルにインストールされたアプリケーションのそれぞれはまた、現在時刻に基づいて前記予測部分内に含めるために選択される、請求項14に記載のコンピュータプログラム。
  16. 前記検索起動ジェスチャは現在時刻に受け付けられ、前記アプリケーション使用履歴の分析は、個別のローカルにインストールされたアプリケーションのそれぞれに前記ユーザが前記現在時間において興味を持っていることを示す、請求項15に記載のコンピュータプログラム。
  17. 前記実行可能命令群は前記電子デバイスに、
    前記タッチ感知ディスプレイを介して、かつ、前記予測部分内において、個別のローカルにインストールされたアプリケーションと関連付けられた個別のユーザインタフェースオブジェクトの選択を検出することと、
    前記選択を検出したことに応じて、前記タッチ感知ディスプレイ上に、前記個別のローカルにインストールされたアプリケーションと関連付けられたユーザインタフェースを表示することと
    を更に実行させる、請求項12に記載のコンピュータプログラム。
  18. 前記1つ以上のユーザインタフェースオブジェクトは、前記アプリケーションの使用履歴に基づいて前記予測部分内に含めるために選択された、それぞれが個別のローカルにインストールされたアプリケーションと関連づけられた複数のユーザインタフェースオブジェクトを含む、請求項17に記載のコンピュータプログラム。
  19. 前記検索起動ジェスチャを検出することは、個別のホームスクリーンページのシーケンスにおける第1のホームスクリーンページ上での前記タッチ感知ディスプレイ上での接触であって、その後に前記タッチ感知ディスプレイと交差する略左から右方向における前記接触の移動が続く接触を検出することを含む、請求項12に記載のコンピュータプログラム。
  20. 前記検索起動ジェスチャを検出することは、個別のホームスクリーンページのシーケンスにおけるいずれかの上での前記タッチ感知ディスプレイ上での接触であって、その後に前記タッチ感知ディスプレイと交差して略下方向の前記接触の移動が続く、接触を検出することを含む、請求項12に記載のコンピュータプログラム。
  21. 前記予測部分は、前記1つ以上のユーザインタフェースオブジェクトと区別される1つ以上の追加のユーザインタフェースオブジェクトに対する前記検索起動ジェスチャを検出することに応じてもポピュレートされ、
    前記1つ以上の追加のユーザインタフェースオブジェクトのそれぞれは、前記電子デバイスの現在位置と現在時刻との1つ以上に基づいて前記予測部分に含めるために選択されたコンテンツと関連づけられている、請求項12に記載のコンピュータプログラム。
  22. (i)個別のローカルにインストールされたアプリケーションのそれぞれと関連づけられた前記1つ以上のユーザインタフェースオブジェクト、及び、(ii)前記1つ以上の追加のユーザインタフェースオブジェクトについての、前記予測部分内での順序は、前記電子デバイスの前記ユーザによって設定される、請求項21に記載のコンピュータプログラム。
  23. 電子デバイスであって、
    タッチ感知ディスプレイと、
    1つ以上のプロセッサと、
    1つ以上のプログラムを記憶したメモリと、
    を備え、
    前記1つ以上のプログラムは前記1つ以上のプロセッサにより実行されると、前記電子デバイスに、
    前記タッチ感知ディスプレイを介して、前記電子デバイスのユーザからの検索起動ジェスチャを検出することと、
    前記検索起動ジェスチャのみを検出したことに応じて、検索インタフェースを前記タッチ感知ディスプレイの略全面に表示することと、を実行させ、
    前記検索インタフェースは、
    (i) 検索エントリ部分と、
    (ii) 前記検索エントリ部分においていずれかのユーザ入力を受信する前に表示される予測部分であって、前記予測部分は、それぞれが個別のローカルにインストールされたアプリケーションと関連付けられた1つ以上のユーザインタフェースオブジェクトと共に表示され、前記個別のローカルにインストールされたアプリケーションはそれぞれ、前記電子デバイスの前記ユーザと関連付けられたアプリケーションの使用履歴に基づいて、前記予測部分に含めるために複数のローカルにインストールされたアプリケーションのうちから選択され、前記予測部分は、グループの中から選択されたユーザインタフェースオブジェクトを含む、予測部分と
    を含み、
    前記グループは、
    前記複数のローカルにインストールされたアプリケーションのうち個別のアプリケーション内での予測された動作と関連付けられた個別のディープリンクユーザインタフェースオブジェクトであって、前記個別のディープリンクユーザインタフェースオブジェクトは、ユーザにより選択されると、前記電子デバイスに、前記複数のローカルにインストールされたアプリケーションのうち個別のアプリケーションを表示させ、前記個別のアプリケーション内で予測された動作を開始し、前記予測された動作は、現在時刻と前記アプリケーションの使用履歴のうち1つ以上に基づいて選択される、ディープリンクユーザインタフェースオブジェクトと、
    それぞれが個別の宛先と関連付けられた1つ以上の他のユーザインタフェースオブジェクトであって、前記個別の宛先のそれぞれは、現在時刻に少なくとも部分的に基づいて前記予測部分に含めるために、複数の事前に接触した人々の中から選択される前記1つ以上の他のユーザインタフェースオブジェクトとからなる、電子デバイス。
  24. 前記アプリケーションの使用履歴はデータ構造であって、前記電子デバイスのメモリに保存され、前記個別のローカルにインストールされたアプリケーションが前記電子デバイスのユーザによりアクセスされた日時を少なくとも識別する情報を含む、請求項23に記載の電子デバイス。
  25. 個別にローカルにインストールされたアプリケーションのそれぞれはまた、前記電子デバイスの現在位置に基づいて前記予測部分内に含めるために選択される、請求項23に記載の電子デバイス。
  26. 個別にローカルにインストールされたアプリケーションのそれぞれはまた、現在時刻に基づいて前記予測部分内に含めるために選択される、請求項25に記載の電子デバイス。
  27. 前記検索起動ジェスチャは現在時刻に受け付けられ、前記アプリケーション使用履歴の分析は、個別のローカルにインストールされたアプリケーションのそれぞれに前記ユーザが前記現在時間において興味を持っていることを示す、請求項26に記載の電子デバイス。
  28. 前記1つ以上のプログラムは前記電子デバイスに、
    前記タッチ感知ディスプレイを介して、かつ、前記予測部分内において、個別のローカルにインストールされたアプリケーションと関連付けられた個別のユーザインタフェースオブジェクトの選択を検出することと、
    前記選択を検出したことに応じて、前記タッチ感知ディスプレイ上に、前記個別のローカルにインストールされたアプリケーションと関連付けられたユーザインタフェースを表示することと
    を更に実行させる、請求項23に記載の電子デバイス。
  29. 前記1つ以上のユーザインタフェースオブジェクトは、前記アプリケーションの使用履歴に基づいて前記予測部分内に含めるために選択された、それぞれが個別のローカルにインストールされたアプリケーションと関連づけられた複数のユーザインタフェースオブジェクトを含む、請求項28に記載の電子デバイス。
  30. 前記検索起動ジェスチャを検出することは、個別のホームスクリーンページのシーケンスにおける第1のホームスクリーンページ上での前記タッチ感知ディスプレイ上での接触であって、その後に前記タッチ感知ディスプレイと交差する略左から右方向における前記接触の移動が続く接触を検出することを含む、請求項23に記載の電子デバイス。
  31. 前記検索起動ジェスチャを検出することは、個別のホームスクリーンページのシーケンスにおけるいずれかの上での前記タッチ感知ディスプレイ上での接触であって、その後に前記タッチ感知ディスプレイと交差して略下方向の前記接触の移動が続く、接触を検出することを含む、請求項23に記載の電子デバイス。
  32. 前記予測部分は、前記1つ以上のユーザインタフェースオブジェクトと区別される1つ以上の追加のユーザインタフェースオブジェクトに対する前記検索起動ジェスチャを検出することに応じてもポピュレートされ、
    前記1つ以上の追加のユーザインタフェースオブジェクトのそれぞれは、前記電子デバイスの現在位置と現在時刻との1つ以上に基づいて前記予測部分に含めるために選択されたコンテンツと関連づけられている、請求項23に記載の電子デバイス。
  33. (i)個別のローカルにインストールされたアプリケーションのそれぞれと関連づけられた前記1つ以上のユーザインタフェースオブジェクト、及び、(ii)前記1つ以上の追加のユーザインタフェースオブジェクトについての、前記予測部分内での順序は、前記電子デバイスの前記ユーザによって設定される、請求項32に記載の電子デバイス。
JP2023200086A 2015-05-27 2023-11-27 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法 Active JP7478304B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2024068589A JP7524497B1 (ja) 2015-05-27 2024-04-19 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201562167265P 2015-05-27 2015-05-27
US62/167,265 2015-05-27
US201562172019P 2015-06-05 2015-06-05
US62/172,019 2015-06-05
US15/166,226 US10200824B2 (en) 2015-05-27 2016-05-26 Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US15/166,226 2016-05-26
JP2021201945A JP7042963B1 (ja) 2015-05-27 2021-12-13 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
JP2022040648A JP7561789B2 (ja) 2015-05-27 2022-03-15 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2022040648A Division JP7561789B2 (ja) 2015-05-27 2022-03-15 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2024068589A Division JP7524497B1 (ja) 2015-05-27 2024-04-19 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法

Publications (2)

Publication Number Publication Date
JP2024026183A JP2024026183A (ja) 2024-02-28
JP7478304B2 true JP7478304B2 (ja) 2024-05-02

Family

ID=56121210

Family Applications (7)

Application Number Title Priority Date Filing Date
JP2017561675A Active JP6419993B2 (ja) 2015-05-27 2016-05-27 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
JP2018192102A Active JP7033524B2 (ja) 2015-05-27 2018-10-10 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
JP2020217267A Active JP6994559B2 (ja) 2015-05-27 2020-12-25 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
JP2021201945A Active JP7042963B1 (ja) 2015-05-27 2021-12-13 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
JP2022040648A Active JP7561789B2 (ja) 2015-05-27 2022-03-15 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
JP2023200086A Active JP7478304B2 (ja) 2015-05-27 2023-11-27 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
JP2024068589A Active JP7524497B1 (ja) 2015-05-27 2024-04-19 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法

Family Applications Before (5)

Application Number Title Priority Date Filing Date
JP2017561675A Active JP6419993B2 (ja) 2015-05-27 2016-05-27 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
JP2018192102A Active JP7033524B2 (ja) 2015-05-27 2018-10-10 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
JP2020217267A Active JP6994559B2 (ja) 2015-05-27 2020-12-25 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
JP2021201945A Active JP7042963B1 (ja) 2015-05-27 2021-12-13 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
JP2022040648A Active JP7561789B2 (ja) 2015-05-27 2022-03-15 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2024068589A Active JP7524497B1 (ja) 2015-05-27 2024-04-19 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法

Country Status (8)

Country Link
US (5) US10200824B2 (ja)
EP (6) EP3447624A1 (ja)
JP (7) JP6419993B2 (ja)
KR (9) KR102653387B1 (ja)
CN (8) CN118331669A (ja)
AU (9) AU2016268860B2 (ja)
DK (4) DK179570B1 (ja)
WO (1) WO2016191737A2 (ja)

Families Citing this family (401)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
CN102831214B (zh) * 2006-10-05 2017-05-10 斯普兰克公司 时间序列搜索引擎
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
WO2011020078A1 (en) 2009-08-13 2011-02-17 Acufocus, Inc. Masked intraocular implants and lenses
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US11494793B2 (en) * 2010-05-26 2022-11-08 Userzoom Technologies, Inc. Systems and methods for the generation, administration and analysis of click testing
US10225683B1 (en) * 2010-08-02 2019-03-05 Intellectual Ventures Fund 79 Llc Systems, methods, and mediums for receiving reminders and/or identifying available goods and/or services
US9462067B2 (en) * 2011-10-26 2016-10-04 Cybeye, Inc. Engine, system and method for an adaptive search engine on the client computer using domain social network data as the search topic sources
DE112013001018T5 (de) 2012-02-16 2014-10-30 Acufocus, Inc. Eine Maske aufweisende Okularvorrichtung zur Implantation neben einer Intraokularlinse
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US8787888B2 (en) * 2012-08-29 2014-07-22 Facebook, Inc. Sharing location information during a communication session
KR20240132105A (ko) 2013-02-07 2024-09-02 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10997191B2 (en) 2013-04-30 2021-05-04 Splunk Inc. Query-triggered processing of performance data and log data from an information technology environment
US10614132B2 (en) 2013-04-30 2020-04-07 Splunk Inc. GUI-triggered processing of performance data and log data from an information technology environment
US10353957B2 (en) 2013-04-30 2019-07-16 Splunk Inc. Processing of performance data and raw log data from an information technology environment
US10346357B2 (en) 2013-04-30 2019-07-09 Splunk Inc. Processing of performance data and structure data from an information technology environment
US10225136B2 (en) 2013-04-30 2019-03-05 Splunk Inc. Processing of log data and performance data obtained via an application programming interface (API)
US10318541B2 (en) 2013-04-30 2019-06-11 Splunk Inc. Correlating log data with performance measurements having a specified relationship to a threshold value
US10019496B2 (en) 2013-04-30 2018-07-10 Splunk Inc. Processing of performance data and log data from an information technology environment by using diverse data stores
KR101772152B1 (ko) 2013-06-09 2017-08-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
DE112014003653B4 (de) 2013-08-06 2024-04-18 Apple Inc. Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen
US9710126B2 (en) * 2013-10-17 2017-07-18 Blackberry Limited Method and apparatus for displaying a preview of an application to a user
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
CN110797019B (zh) 2014-05-30 2023-08-29 苹果公司 多命令单一话语输入方法
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
TWI601033B (zh) * 2014-07-08 2017-10-01 拓連科技股份有限公司 移動偵測之管理方法及系統,及相關電腦程式產品
US9830167B2 (en) * 2014-08-12 2017-11-28 Linkedin Corporation Enhancing a multitasking user interface of an operating system
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10496420B2 (en) 2014-12-02 2019-12-03 Cerner Innovation, Inc. Contextual help within an application
US10152480B2 (en) 2015-01-31 2018-12-11 Splunk Inc. Archiving indexed data
US20160257198A1 (en) 2015-03-02 2016-09-08 Ford Global Technologies, Inc. In-vehicle component user interface
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9678707B2 (en) * 2015-04-10 2017-06-13 Sonos, Inc. Identification of audio content facilitated by playback device
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10097973B2 (en) 2015-05-27 2018-10-09 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10228841B2 (en) * 2015-06-04 2019-03-12 Cisco Technology, Inc. Indicators for relative positions of connected devices
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
CN105095351B (zh) * 2015-06-18 2019-03-26 百度在线网络技术(北京)有限公司 一种用于提供本地搜索建议的方法和装置
CN105100444A (zh) * 2015-06-29 2015-11-25 小米科技有限责任公司 信息展示方法及装置
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10422657B2 (en) 2015-07-17 2019-09-24 International Business Machines Corporation Notification of proximal points of interest
KR20170010574A (ko) * 2015-07-20 2017-02-01 삼성전자주식회사 정보처리장치, 영상처리장치 및 그들의 제어방법
US10582011B2 (en) * 2015-08-06 2020-03-03 Samsung Electronics Co., Ltd. Application cards based on contextual data
US20170038933A1 (en) * 2015-08-06 2017-02-09 Facebook, Inc. Systems and methods for providing reminders for content in social networks
US20170054767A1 (en) * 2015-08-17 2017-02-23 Google Inc. Transferring application state between devices
US10108150B1 (en) * 2015-08-28 2018-10-23 Google Llc Waking user up in time to arrive at appointment by calculating bed-to-door time
US9914418B2 (en) 2015-09-01 2018-03-13 Ford Global Technologies, Llc In-vehicle control location
US9967717B2 (en) 2015-09-01 2018-05-08 Ford Global Technologies, Llc Efficient tracking of personal device locations
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10365811B2 (en) 2015-09-15 2019-07-30 Verizon Patent And Licensing Inc. Home screen for wearable devices
RU2634221C2 (ru) * 2015-09-23 2017-10-24 Общество С Ограниченной Ответственностью "Яндекс" Способ и устройство для отрисовки представления электронного документа на экране
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10178527B2 (en) * 2015-10-22 2019-01-08 Google Llc Personalized entity repository
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10084672B2 (en) * 2015-11-10 2018-09-25 Dynatrace Llc System and method for measuring performance and availability of applications utilizing monitoring of distributed systems processes combined with analysis of the network communication between the processes
US10046637B2 (en) * 2015-12-11 2018-08-14 Ford Global Technologies, Llc In-vehicle component control user interface
EP3182738B1 (en) * 2015-12-16 2018-12-05 Snips Method and means for triggering at least one action based on geolocation and user information, places and user habits
US10845950B2 (en) * 2015-12-17 2020-11-24 Microsoft Technology Licensing, Llc Web browser extension
US10223066B2 (en) * 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10474475B2 (en) * 2016-03-02 2019-11-12 Western Digital Technologies, Inc. Non-intrusive restart of a task manager
US10082877B2 (en) 2016-03-15 2018-09-25 Ford Global Technologies, Llc Orientation-independent air gesture detection service for in-vehicle environments
US9914415B2 (en) 2016-04-25 2018-03-13 Ford Global Technologies, Llc Connectionless communication with interior vehicle components
US10275529B1 (en) 2016-04-29 2019-04-30 Rich Media Ventures, Llc Active content rich media using intelligent personal assistant applications
US10757377B2 (en) * 2016-06-01 2020-08-25 Pixart Imaging Inc. Surveillance system and operation method thereof
TW201743241A (zh) * 2016-06-01 2017-12-16 原相科技股份有限公司 可攜式電子裝置及其運作方法
CN107463574A (zh) * 2016-06-02 2017-12-12 广州市动景计算机科技有限公司 内容信息提供方法、设备、浏览器、电子设备和服务器
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10401502B2 (en) * 2016-06-07 2019-09-03 Timothy B. Morford Low energy Wi-Fi device for location
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
USD803238S1 (en) * 2016-06-12 2017-11-21 Apple Inc. Display screen or portion thereof with graphical user interface
KR20180003884A (ko) * 2016-07-01 2018-01-10 삼성전자주식회사 전자 장치 및 그의 정보 제공 방법
US10885463B2 (en) * 2016-07-08 2021-01-05 Microsoft Technology Licensing, Llc Metadata-driven machine learning for systems
US10002474B1 (en) 2016-07-12 2018-06-19 United Services Automobile Association (Usaa) Access control based on rhythmic pattern repetition
US20180018652A1 (en) * 2016-07-18 2018-01-18 Ebay Inc. Messaging transaction application
US10055481B2 (en) * 2016-07-20 2018-08-21 LogsHero Ltd. Method and system for automatic event classification
US10051108B2 (en) * 2016-07-21 2018-08-14 Google Llc Contextual information for a notification
US10832221B2 (en) * 2016-07-21 2020-11-10 Microsoft Technology Licensing, Llc Storage and structure of calendars with an infinite set of intentional-time events for calendar applications
US10255738B1 (en) 2016-07-25 2019-04-09 United Services Automobile Association (Usaa) Authentication based on through-body signals detected in body area networks
JP6784085B2 (ja) * 2016-07-27 2020-11-11 富士通株式会社 設定制御プログラム、設定制御方法、及び設定制御装置
US9967750B1 (en) 2016-07-28 2018-05-08 United Services Automobile Association (Usaa) Location verification based on environmental sensor data
US10593084B2 (en) * 2016-08-01 2020-03-17 Facebook, Inc. Systems and methods for content interaction
US11455545B2 (en) * 2016-08-10 2022-09-27 Palo Alto Research Center Incorporated Computer-implemented system and method for building context models in real time
US10607192B2 (en) * 2016-08-25 2020-03-31 Ford Global Technologies, Llc Methods and apparatus for autonomous vehicle scheduling
US11200026B2 (en) * 2016-08-26 2021-12-14 Bragi GmbH Wireless earpiece with a passive virtual assistant
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
WO2018052257A1 (en) * 2016-09-19 2018-03-22 Samsung Electronics Co., Ltd. Apparatus and method for managing notification
US20180082184A1 (en) * 2016-09-19 2018-03-22 TCL Research America Inc. Context-aware chatbot system and method
US10498852B2 (en) * 2016-09-19 2019-12-03 Ebay Inc. Prediction-based caching system
USD819044S1 (en) 2016-09-20 2018-05-29 Google Llc Display screen with graphical user interface for an assistive agent
USD835153S1 (en) * 2016-09-20 2018-12-04 Google Llc Display screen with a graphical user interface for a messaging application
US10410017B2 (en) * 2016-09-30 2019-09-10 The Toronto-Dominion Bank Device lock bypass on selectable alert
US10192448B2 (en) * 2016-09-30 2019-01-29 Nec Corporation Method to control vehicle fleets to deliver on-demand transportation services
US10484324B2 (en) * 2016-10-02 2019-11-19 Vmware, Inc. Hero cards that display contextual information and actions for backend systems
US10321096B2 (en) * 2016-10-05 2019-06-11 Avaya Inc. Embedding content of interest in video conferencing
US10846612B2 (en) * 2016-11-01 2020-11-24 Google Llc Actionable suggestions for activities
US10846350B2 (en) * 2016-10-18 2020-11-24 Facebook, Inc. Systems and methods for providing service directory predictive search recommendations
USD828371S1 (en) * 2016-10-20 2018-09-11 Google Llc Display screen or portion thereof with graphical user interface
US20180123986A1 (en) * 2016-11-01 2018-05-03 Microsoft Technology Licensing, Llc Notification of a Communication Session in a Different User Experience
US10509645B2 (en) * 2016-12-02 2019-12-17 Factual Inc. Method and apparatus for enabling an application to detect specified circumstances
US10356200B2 (en) * 2016-12-28 2019-07-16 Google Llc Optimizing user interface data caching for future actions
US11074554B2 (en) * 2016-12-30 2021-07-27 Verizon Patent And Licensing Inc. Cloud-based event calendar synching and notification
CN108279954B (zh) * 2016-12-30 2020-07-07 华为技术有限公司 一种应用程序排序的方法及装置
CN108287647B (zh) * 2017-01-09 2021-06-18 斑马智行网络(香港)有限公司 一种应用运行方法及装置
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10297255B2 (en) 2017-01-23 2019-05-21 Bank Of America Corporation Data processing system with machine learning engine to provide automated collaboration assistance functions
US10972297B2 (en) 2017-01-23 2021-04-06 Bank Of America Corporation Data processing system with machine learning engine to provide automated collaboration assistance functions
US11436347B2 (en) * 2017-02-14 2022-09-06 Meta Platforms, Inc. Methods and systems for dynamic sampling of application events
DE102017203570A1 (de) 2017-03-06 2018-09-06 Volkswagen Aktiengesellschaft Verfahren und vorrichtung zur darstellung von empfohlenen bedienhandlungen eines vorschlagssystems und interaktion mit dem vorschlagssystem
US11871310B2 (en) 2017-03-07 2024-01-09 Skyscanner Limited Content recommendation and display based on geographic and user context
US11399264B2 (en) * 2017-03-07 2022-07-26 Skyscanner Limited Content recommendation and display based on geographic and user context
US10825117B2 (en) * 2017-03-07 2020-11-03 Skyscanner Limited Content recommendation and display based on geographic and user context
US10841321B1 (en) * 2017-03-28 2020-11-17 Veritas Technologies Llc Systems and methods for detecting suspicious users on networks
JP6875905B2 (ja) * 2017-03-29 2021-05-26 株式会社日立情報通信エンジニアリング 通話制御システム及び通話制御方法
WO2018200134A1 (en) * 2017-04-24 2018-11-01 Google Llc Contextual situation analysis
US10423638B2 (en) * 2017-04-27 2019-09-24 Google Llc Cloud inference system
USD881202S1 (en) * 2017-05-08 2020-04-14 Kci Licensing, Inc. Display screen with graphical user interface for negative pressure unit
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
CN108874812B (zh) * 2017-05-10 2021-12-10 腾讯科技(北京)有限公司 一种数据处理方法及服务器、计算机存储介质
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10466889B2 (en) 2017-05-16 2019-11-05 Apple Inc. Devices, methods, and graphical user interfaces for accessing notifications
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
EP3410362B1 (en) * 2017-05-31 2022-03-30 HERE Global B.V. Method and apparatus for next token prediction based on previously observed tokens
US11243658B1 (en) * 2017-05-31 2022-02-08 Pinterest, Inc. Intelligent directives for user interface interactions
US11416817B2 (en) * 2017-06-02 2022-08-16 Apple Inc. Event extraction systems and methods
US20180349467A1 (en) 2017-06-02 2018-12-06 Apple Inc. Systems and methods for grouping search results into dynamic categories based on query and result set
CA3008513A1 (en) * 2017-06-15 2018-12-15 Flex Ltd. Systems and methods for pallet tracking with mixed local-area and wide-area trackers
US9967520B1 (en) * 2017-06-30 2018-05-08 Ringcentral, Inc. Method and system for enhanced conference management
US10565274B2 (en) * 2017-06-30 2020-02-18 Microsoft Technology Licensing, Llc Multi-application user interest memory management
KR102367053B1 (ko) * 2017-07-13 2022-02-24 삼성전자주식회사 외부 전자 장치와 통신을 수행하기 위한 전자 장치
US11366872B1 (en) * 2017-07-19 2022-06-21 Amazon Technologies, Inc. Digital navigation menus with dynamic content placement
US11323398B1 (en) * 2017-07-31 2022-05-03 Snap Inc. Systems, devices, and methods for progressive attachments
USD859453S1 (en) 2017-08-01 2019-09-10 Google Llc Display screen with an animated graphical user interface
US11294530B2 (en) * 2017-08-07 2022-04-05 Microsoft Technology Licensing, Llc Displaying a translucent version of a user interface element
US11392664B1 (en) * 2017-08-29 2022-07-19 Massachusetts Mutual Life Insurance Company Dynamic web application based on events
CN107577522B (zh) * 2017-09-30 2020-04-21 Oppo广东移动通信有限公司 应用控制方法、装置、存储介质以及电子设备
EP4273696A3 (en) * 2017-10-03 2024-01-03 Google LLC Multiple digital assistant coordination in vehicular environments
US20190122140A1 (en) * 2017-10-20 2019-04-25 STATGRAF Research LLP. Data analysis and rendering
CN110692034A (zh) * 2017-10-20 2020-01-14 华为技术有限公司 一种图标显示方法、设备及系统
US10664784B2 (en) * 2017-11-27 2020-05-26 International Business Machines Corporation Analyzing product impact on a system
US10783013B2 (en) 2017-12-15 2020-09-22 Google Llc Task-related sorting, application discovery, and unified bookmarking for application managers
US11568003B2 (en) 2017-12-15 2023-01-31 Google Llc Refined search with machine learning
US10846109B2 (en) * 2017-12-20 2020-11-24 Google Llc Suggesting actions based on machine learning
USD847182S1 (en) * 2017-12-21 2019-04-30 State Farm Mutual Automobile Insurance Company Display screen or portion thereof with graphical user interface
USD854037S1 (en) * 2017-12-21 2019-07-16 State Farm Mutual Automobile Insurance Company Display screen or portion thereof with graphical user interface
USD853424S1 (en) * 2017-12-21 2019-07-09 State Farm Mutual Automobile Insurance Company Display screen or portion thereof with graphical user interface
CN107995370B (zh) * 2017-12-21 2020-11-24 Oppo广东移动通信有限公司 通话控制方法、装置及存储介质和移动终端
US10355773B1 (en) * 2018-01-02 2019-07-16 Talal Awad Connectivity system and method for high speed aircraft internet
USD852223S1 (en) * 2018-01-04 2019-06-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD852222S1 (en) * 2018-01-04 2019-06-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US11073838B2 (en) 2018-01-06 2021-07-27 Drivent Llc Self-driving vehicle systems and methods
US10299216B1 (en) * 2018-01-06 2019-05-21 Eric John Wengreen Self-driving vehicle actions in response to a low battery
US10303181B1 (en) 2018-11-29 2019-05-28 Eric John Wengreen Self-driving vehicle systems and methods
US11410075B2 (en) * 2018-01-15 2022-08-09 Microsoft Technology Licensing, Llc Contextually-aware recommendations for assisting users with task completion
CN108257037A (zh) * 2018-01-18 2018-07-06 封玉涛 一种以社交场景化为切入点的多应用融合方法及装置
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US11669345B2 (en) * 2018-03-13 2023-06-06 Cloudblue Llc System and method for generating prediction based GUIs to improve GUI response times
US10749828B2 (en) 2018-03-14 2020-08-18 Rovi Guides, Inc. Systems and methods for presenting event notifications, based on trending communications, on devices notwithstanding a user instruction to disable event notifications
CN108418970A (zh) * 2018-03-15 2018-08-17 韶关市磊信机械制造有限公司 一种操作立体车库升降的手机app系统
JP6749359B2 (ja) * 2018-03-20 2020-09-02 本田技研工業株式会社 車両乗合支援システム
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US11275991B2 (en) * 2018-04-04 2022-03-15 Nokia Technologies Oy Coordinated heterogeneous processing of training data for deep neural networks
JP7003822B2 (ja) * 2018-04-12 2022-01-21 富士通株式会社 情報処理装置、情報処理システム、及びプライバシ保護プログラム
US11386412B1 (en) 2018-04-12 2022-07-12 Wells Fargo Bank, N.A. Authentication circle management
US11481837B1 (en) 2018-04-12 2022-10-25 Wells Fargo Bank, N.A. Authentication circle management
FR3080472B1 (fr) * 2018-04-19 2021-06-04 Amadeus Sas Controle de la generation des resultats de recherche a entrees multiples
US11016982B2 (en) * 2018-04-20 2021-05-25 Slack Technologies, Inc. Methods, apparatuses and computer program products for outputting improved autosuggestions in a group-based communication platform
US10943308B1 (en) 2018-05-03 2021-03-09 Wells Fargo Bank, N.A. Systems and methods for pervasive advisor for major expenditures
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
CN109743438B (zh) * 2018-06-19 2020-05-15 北京字节跳动网络技术有限公司 一种发送多媒体信息的方法和装置
CN110544473B (zh) 2018-05-28 2022-11-08 百度在线网络技术(北京)有限公司 语音交互方法和装置
US10877784B1 (en) * 2018-05-30 2020-12-29 Facebook, Inc. Determining and servicing user intent with a virtual assistant
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US11076039B2 (en) 2018-06-03 2021-07-27 Apple Inc. Accelerated task performance
DK201870357A1 (en) 2018-06-03 2019-12-20 Apple Inc. ACCELERATED TASK PERFORMANCE
WO2019236545A1 (en) * 2018-06-04 2019-12-12 Smartsky Networks LLC Contextually aware, smart ip address cross reference to related applications
CN108735216B (zh) * 2018-06-12 2020-10-16 广东小天才科技有限公司 一种基于语义识别的语音搜题方法及家教设备
CN109033865B (zh) * 2018-06-20 2021-10-01 苏州大学 一种空间众包中隐私保护的任务分配方法
USD933078S1 (en) * 2018-07-03 2021-10-12 Google Llc Display screen with animated graphical user interface
USD931869S1 (en) * 2018-07-03 2021-09-28 Google Llc Display screen with animated graphical user interface
CN108984073A (zh) 2018-07-06 2018-12-11 北京微播视界科技有限公司 一种搜索页面显示方法、装置、终端及存储介质
WO2020018063A1 (en) * 2018-07-16 2020-01-23 Hewlett-Packard Development Company, L.P. Predicted usage based on monitored usage
US11176215B2 (en) * 2018-07-23 2021-11-16 International Business Machines Corporation Navigational notifications based on filtered interests
US20200036803A1 (en) * 2018-07-24 2020-01-30 Star2Star Communications, LLC Social Metrics Connection Representor, System, and Method
CN109033386B (zh) * 2018-07-27 2020-04-10 北京字节跳动网络技术有限公司 搜索排序方法、装置、计算机设备和存储介质
CN109241180B (zh) * 2018-08-01 2021-06-04 福建天泉教育科技有限公司 一种基于日志的数据同步的方法及装置
US20200065513A1 (en) * 2018-08-24 2020-02-27 International Business Machines Corporation Controlling content and content sources according to situational context
US10848905B2 (en) * 2018-09-13 2020-11-24 Uber Technologies, Inc. Selectively highlighting map features associated with places
CN109214386B (zh) * 2018-09-14 2020-11-24 京东数字科技控股有限公司 用于生成图像识别模型的方法和装置
US10282625B1 (en) 2018-10-01 2019-05-07 Eric John Wengreen Self-driving vehicle systems and methods
US10479319B1 (en) 2019-03-21 2019-11-19 Drivent Llc Self-driving vehicle systems and methods
US10493952B1 (en) 2019-03-21 2019-12-03 Drivent Llc Self-driving vehicle systems and methods
US10471804B1 (en) 2018-09-18 2019-11-12 Drivent Llc Self-driving vehicle systems and methods
KR102643444B1 (ko) * 2018-09-27 2024-03-06 구글 엘엘씨 자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
JP6724223B2 (ja) * 2018-09-29 2020-07-15 ジェギュ イ 多様なアイコンバッジを表示できるデータ処理ターミナル及び該バッジとターミナルを用いる方法
US11221621B2 (en) 2019-03-21 2022-01-11 Drivent Llc Self-driving vehicle systems and methods
US11644833B2 (en) 2018-10-01 2023-05-09 Drivent Llc Self-driving vehicle systems and methods
US10900792B2 (en) 2018-10-22 2021-01-26 Drivent Llc Self-driving vehicle systems and methods
US10832569B2 (en) 2019-04-02 2020-11-10 Drivent Llc Vehicle detection systems
US10794714B2 (en) 2018-10-01 2020-10-06 Drivent Llc Self-driving vehicle systems and methods
US11226962B2 (en) * 2018-10-05 2022-01-18 Sap Se Efficient event correlation in a streaming environment
US10518750B1 (en) * 2018-10-11 2019-12-31 Denso International America, Inc. Anti-theft system by location prediction based on heuristics and learning
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
USD884017S1 (en) * 2018-10-26 2020-05-12 Salesforce.Com, Inc. Display screen or portion thereof with graphical user interface
US10474154B1 (en) 2018-11-01 2019-11-12 Drivent Llc Self-driving vehicle systems and methods
US11604844B2 (en) * 2018-11-05 2023-03-14 Samsung Electronics Co., Ltd. System and method for cross-domain recommendations
US11890494B2 (en) 2018-11-09 2024-02-06 Qwake Technologies, Inc. Retrofittable mask mount system for cognitive load reducing platform
US10896492B2 (en) 2018-11-09 2021-01-19 Qwake Technologies, Llc Cognitive load reducing platform having image edge enhancement
US10417497B1 (en) 2018-11-09 2019-09-17 Qwake Technologies Cognitive load reducing platform for first responders
CN113794800B (zh) 2018-11-23 2022-08-26 华为技术有限公司 一种语音控制方法及电子设备
CN109362032B (zh) * 2018-12-11 2020-06-30 安徽大学 一种基于位置服务的用户位置个性化差分隐私保护方法
US11048486B2 (en) 2018-12-13 2021-06-29 Slack Technologies, Inc. Developer tools for a communication platform
US10983766B2 (en) 2018-12-13 2021-04-20 SlackTechnologies, Inc. Developer tools for a communication platform
US10853061B2 (en) * 2018-12-13 2020-12-01 Slack Technologies, Inc. Developer tools for a communication platform
USD926780S1 (en) * 2018-12-20 2021-08-03 Google Llc Display screen with graphical user interface
CN109740493A (zh) * 2018-12-27 2019-05-10 维沃移动通信有限公司 一种目标对象推荐方法及移动终端
US11415430B2 (en) 2018-12-29 2022-08-16 Yandex Europe Ag Method of and server for presenting points of interest to user on map
US10936659B2 (en) * 2019-01-02 2021-03-02 International Business Machines Corporation Parallel graph events processing
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11822943B2 (en) 2019-01-18 2023-11-21 Apple Inc. User interfaces for presenting information about and facilitating application functions
KR20200091278A (ko) * 2019-01-22 2020-07-30 삼성전자주식회사 음성 입력과 관련된 비주얼 정보를 표시하는 방법 및 이를 지원하는 전자 장치
US10805362B1 (en) * 2019-01-31 2020-10-13 Slack Technologies, Inc. Seamless communication resource transition between communication systems
US10377342B1 (en) 2019-02-04 2019-08-13 Drivent Technologies Inc. Self-driving vehicle systems and methods
US10744976B1 (en) 2019-02-04 2020-08-18 Drivent Llc Self-driving vehicle systems and methods
US11168990B2 (en) * 2019-03-11 2021-11-09 Toyota Research Institute, Inc. Crowdsourcing annotations of roadway information
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11343208B1 (en) * 2019-03-21 2022-05-24 Intrado Corporation Automated relevant subject matter detection
CN110083460A (zh) * 2019-03-25 2019-08-02 华东师范大学 一种利用事件总线技术的微内核架构的设计方法
US11222061B2 (en) * 2019-03-28 2022-01-11 Facebook, Inc. Generating digital media clusters corresponding to predicted distribution classes from a repository of digital media based on network distribution history
US11064068B2 (en) * 2019-04-16 2021-07-13 Apple Inc. Reminders techniques on a user device
CN110225180B (zh) * 2019-04-23 2021-01-08 维沃软件技术有限公司 一种内容输入方法及终端设备
WO2020219802A1 (en) 2019-04-24 2020-10-29 The Research Foundation For The State University Of New York System and method for tracking human behavior real-time with single magnetometer sensor and magnets
CN110046484A (zh) * 2019-04-29 2019-07-23 中核武汉核电运行技术股份有限公司 一种工业控制系统信息安全控制方法及装置
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
CN110133369B (zh) * 2019-05-15 2021-06-15 宁波三星医疗电气股份有限公司 一种负荷曲线数据显示方法、装置及电能表
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
CN110222263B (zh) * 2019-05-24 2021-08-24 苏州达家迎信息技术有限公司 应用程序维护控制方法、装置、服务器、终端及存储介质
US11372696B2 (en) 2019-05-30 2022-06-28 Apple Inc. Siri reminders found in apps
KR102425473B1 (ko) * 2019-05-31 2022-07-25 애플 인크. 온-디바이스 목표설정 및 개인화를 통한 음성 어시스턴트 발견가능성
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
WO2020242711A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Voice assistant discoverability through on-device targeting and personalization
DK180649B1 (en) 2019-05-31 2021-11-11 Apple Inc Voice assistant discoverability through on-device targeting and personalization
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
WO2020247034A1 (en) * 2019-06-03 2020-12-10 Microsoft Technology Licensing, Llc Coarse relocalization using signal fingerprints and session-specific identifiers
US11509479B2 (en) 2019-06-04 2022-11-22 Vmware, Inc. Service authentication through a voice assistant
EP4270172A3 (en) * 2019-06-05 2024-01-10 Google LLC Action validation for digital assistant-based applications
US20200388280A1 (en) 2019-06-05 2020-12-10 Google Llc Action validation for digital assistant-based applications
CN110278327B (zh) * 2019-06-10 2021-01-08 维沃移动通信有限公司 数据处理方法及移动终端
KR20200144846A (ko) * 2019-06-19 2020-12-30 삼성전자주식회사 외부 장치의 위치 정보를 결정하기 위한 전자 장치 및 그의 동작 방법
US11262978B1 (en) * 2019-06-19 2022-03-01 Amazon Technologies, Inc. Voice-adapted reformulation of web-based answers
CN112130714B (zh) * 2019-06-25 2021-08-20 华为技术有限公司 可进行学习的关键词搜索方法和电子设备
US11122423B2 (en) 2019-06-26 2021-09-14 Vmware, Inc. Proximity based authentication of a user through a voice assistant device
CN110489215A (zh) * 2019-06-29 2019-11-22 华为技术有限公司 一种应用程序中等待场景的处理方法和装置
WO2021006906A1 (en) * 2019-07-11 2021-01-14 Google Llc System and method for providing an artificial intelligence control surface for a user of a computing device
CN110413169B (zh) * 2019-07-24 2021-11-23 北京小米移动软件有限公司 一种信息展示方法、装置及介质
JP2021026308A (ja) * 2019-07-31 2021-02-22 シャープ株式会社 リソース管理サーバ、制御方法、プログラム及びシステム
KR20190099169A (ko) * 2019-08-06 2019-08-26 엘지전자 주식회사 인공지능 기반의 기상 및 취침 시간 정보 제공 장치 및 방법
CN110458912B (zh) * 2019-08-08 2023-05-09 金瓜子科技发展(北京)有限公司 一种车辆图标处理方法和装置
WO2021041990A1 (en) 2019-08-28 2021-03-04 Qwake Technologies, Llc Wearable assisted perception module for navigation and communication in hazardous environments
US11204675B2 (en) * 2019-09-06 2021-12-21 Aptiv Technologies Limited Adaptive input countermeasures on human machine interface
US11157167B2 (en) * 2019-09-09 2021-10-26 PAG Financial International LLC Systems and methods for operating a mobile application using a communication tool
US10992605B2 (en) 2019-09-09 2021-04-27 PAG Financial International LLC Systems and methods for operating a mobile application using a conversation interface
US10942625B1 (en) * 2019-09-09 2021-03-09 Atlassian Pty Ltd. Coordinated display of software application interfaces
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
KR102666329B1 (ko) * 2019-09-27 2024-05-16 삼성전자 주식회사 어플리케이션 실행 방법 및 장치
US11252274B2 (en) * 2019-09-30 2022-02-15 Snap Inc. Messaging application sticker extensions
CN110677190B (zh) * 2019-10-09 2021-06-22 大连大学 一种天地一体化智能网络节点静态处理与缓存方法
WO2021084571A1 (ja) * 2019-10-28 2021-05-06 日本たばこ産業株式会社 時間的に変化する風味を時間的に変化する視覚的要素として表示するための方法、プログラム及び情報処理装置
CN110856201B (zh) * 2019-11-11 2022-02-11 重庆邮电大学 一种基于Kullback-Leibler散度的WiFi异常链路检测方法
CN111026304B (zh) * 2019-12-06 2021-05-14 维沃移动通信有限公司 一种应用程序图标显示方法及电子设备
US11570165B2 (en) 2019-12-09 2023-01-31 Vmware, Inc. Single sign-on service authentication through a voice assistant
KR102438124B1 (ko) 2019-12-13 2022-08-30 구글 엘엘씨 애플리케이션을 여는 동안 디지털 콘텐츠를 추가하기 위한 시스템 및 방법
US11262711B2 (en) 2019-12-18 2022-03-01 K4Connect Inc. Home automation (HA) system including virtual assistant audible notification based upon learned device operational pattern and related methods
CN111159552A (zh) * 2019-12-30 2020-05-15 北京每日优鲜电子商务有限公司 商品搜索方法、装置、服务器和存储介质
US11830098B2 (en) 2020-01-02 2023-11-28 Vmware, Inc. Data leak prevention using user and device contexts
US12063214B2 (en) 2020-01-02 2024-08-13 VMware LLC Service authentication through a voice assistant
US12088585B2 (en) 2020-01-06 2024-09-10 VMware LLC Voice skill session lifetime management
US11482231B2 (en) * 2020-01-06 2022-10-25 Vmware, Inc. Skill redirections in a voice assistant
US20210248195A1 (en) * 2020-02-10 2021-08-12 Statum Systems Inc. Messaging interface with contextual search
CN111292749B (zh) * 2020-02-10 2023-06-09 北京声智科技有限公司 智能语音平台的会话控制方法及装置
US11873000B2 (en) 2020-02-18 2024-01-16 Toyota Motor North America, Inc. Gesture detection for transport control
US11416127B2 (en) 2020-03-10 2022-08-16 Apple Inc. Devices, methods, and graphical user interfaces for interacting with user interface objects corresponding to applications
CN113409777B (zh) * 2020-03-16 2023-05-23 上海博泰悦臻网络技术服务有限公司 一种记录用户关注点的方法、车载主机及车辆
US11256736B2 (en) * 2020-03-19 2022-02-22 Mercari, Inc. Personalized image recognition
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11038934B1 (en) 2020-05-11 2021-06-15 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
CN115699167A (zh) * 2020-05-27 2023-02-03 谷歌有限责任公司 当确定是否从某些客户端设备卸载助理相关处理任务时补偿硬件差异
WO2021262598A1 (en) * 2020-06-21 2021-12-30 Apple Inc. Application library and page hiding
CN113867855A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 一种任务推送方法、装置和电子设备
CN111651074B (zh) * 2020-07-06 2024-09-10 深圳市精源宇科技有限公司 电磁输入装置及电磁输入方法
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
CN112199190B (zh) * 2020-07-31 2023-11-03 星宸科技股份有限公司 内存分配方法、装置、存储介质及电子设备
US20220043869A1 (en) * 2020-08-06 2022-02-10 Rovi Guides, Inc. Methods and systems for searching based on multiple user profiles
KR102380091B1 (ko) * 2020-08-27 2022-03-29 충북대학교 산학협력단 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법 및 시간 동기화 장치
US20220067754A1 (en) * 2020-08-27 2022-03-03 Coupang Corporation Computerized systems and methods for predicting a minimum detectable effect
US11748660B2 (en) * 2020-09-17 2023-09-05 Google Llc Automated assistant training and/or execution of inter-user procedures
US20220100967A1 (en) * 2020-09-30 2022-03-31 Amazon Technologies, Inc. Lifecycle management for customized natural language processing
US12086548B2 (en) 2020-09-30 2024-09-10 Amazon Technologies, Inc. Event extraction from documents with co-reference
JP1724470S (ja) * 2020-10-07 2022-09-12 コミュニケーション機能付き電子計算機
WO2022076950A1 (en) * 2020-10-09 2022-04-14 Olive AI, Inc. Controlling presentation of data through an operator interface by monitoring user interactions across various compute devices
JP1699594S (ja) * 2020-10-13 2021-11-15
US11790173B2 (en) * 2020-10-22 2023-10-17 Google Llc Recommending action(s) based on entity or entity type
US11540007B2 (en) * 2020-11-04 2022-12-27 Digital Turbine, Inc. Cross-device interaction
US11853381B2 (en) * 2020-11-13 2023-12-26 Google Llc Hybrid fetching using a on-device cache
CN112328891B (zh) * 2020-11-24 2023-08-01 北京百度网讯科技有限公司 训练搜索模型的方法、搜索目标对象的方法及其装置
CN112417288B (zh) * 2020-11-25 2024-04-12 南京大学 一种用于众包软件测试的任务跨域推荐方法
US11762667B2 (en) * 2020-12-22 2023-09-19 International Business Machines Corporation Adjusting system settings based on displayed content
US20220222482A1 (en) * 2021-01-08 2022-07-14 Google Llc Providing ambient information based on learned user context and interaction, and associated systems and devices
US11947783B2 (en) * 2021-01-25 2024-04-02 Google Llc Undoing application operation(s) via user interaction(s) with an automated assistant
KR20220107860A (ko) * 2021-01-26 2022-08-02 삼성전자주식회사 화면 캡쳐를 수행하는 전자 장치 및 전자 장치에서 화면을 캡쳐하는 방법
CN112837817A (zh) * 2021-02-10 2021-05-25 四川黑石曼星健康科技有限公司 一种新型体能评估方案
CN113053133B (zh) * 2021-03-10 2023-03-24 江西岱泊智能科技有限公司 用于开放式路内停车位的车辆信息采集智能终端
US11664031B2 (en) * 2021-03-11 2023-05-30 Apple Inc. Multi-mode voice triggering for audio devices
KR20220131721A (ko) * 2021-03-22 2022-09-29 삼성전자주식회사 콘텐츠에 기초하여 루틴을 실행하는 전자 장치 및 전자 장치의 동작 방법
US11893399B2 (en) 2021-03-22 2024-02-06 Samsung Electronics Co., Ltd. Electronic device for executing routine based on content and operating method of the electronic device
WO2022213313A1 (en) 2021-04-08 2022-10-13 Citrix Systems, Inc. Intelligent collection of meeting background information
CN112800376B (zh) * 2021-04-15 2021-07-13 成都万创科技股份有限公司 一种基于Http循环请求的实现方法及其装置
KR20220147252A (ko) * 2021-04-27 2022-11-03 삼성전자주식회사 사용 패턴을 이용한 예측 기반의 제어 방법 및 그 장치
CN115334191B (zh) * 2021-05-10 2023-10-20 博泰车联网科技(上海)股份有限公司 控制方法、存储介质及电子设备
US11845347B2 (en) 2021-05-12 2023-12-19 David Alan Copeland Precision charging control of an untethered vehicle with a modular vehicle charging roadway
CN115373834B (zh) * 2021-05-27 2024-08-20 北京火山引擎科技有限公司 一种基于进程调用链的入侵检测方法
US12004114B2 (en) * 2021-06-11 2024-06-04 AT&T Intellectual Propety I, L.P. Geolocation of wireless network users
US20230013527A1 (en) * 2021-07-16 2023-01-19 Revvstreet Inc. Decaying scores to rank artists
US20230029420A1 (en) * 2021-07-26 2023-01-26 Microsoft Technology Licensing, Llc Maps auto-complete through query expansion
KR20230023352A (ko) * 2021-08-10 2023-02-17 삼성전자주식회사 전자 장치 및 전자 장치의 운동 데이터 제공 방법
CN113641243B (zh) * 2021-08-18 2022-03-18 江西科技学院 可穿戴设备的交互式手势识别方法、系统及可穿戴设备
US11954193B2 (en) 2021-09-01 2024-04-09 International Business Machines Corporation Automatic configuration switching in biometric matching
US12112192B2 (en) * 2021-09-23 2024-10-08 ZenDesk, Inc. Split triggers for executing computer operations
CN114036954B (zh) * 2021-09-30 2022-11-01 荣耀终端有限公司 同步通知消息的方法和装置
KR20230050807A (ko) * 2021-10-08 2023-04-17 삼성전자주식회사 전자 장치 및 이의 제어 방법
US11550702B1 (en) 2021-11-04 2023-01-10 T-Mobile Usa, Inc. Ensuring that computer programs are accessible to users with disabilities, such as for use with mobile phones
EP4407543A4 (en) * 2021-11-12 2024-07-31 Samsung Electronics Co Ltd METHOD AND ELECTRONIC DEVICE FOR DISPLAYING RECOMMENDATION INFORMATION
WO2023102713A1 (en) * 2021-12-07 2023-06-15 Qualcomm Incorporated Prevention of out-of-synchronization state due to user equipment tune-away
WO2023102762A1 (en) * 2021-12-08 2023-06-15 Citrix Systems, Inc. Systems and methods for intelligent messaging
CN117648137A (zh) * 2022-01-10 2024-03-05 荣耀终端有限公司 应用启动方法、电子设备及可读存储介质
US11709653B1 (en) * 2022-04-11 2023-07-25 Google Llc Contextual assistant using mouse pointing or touch cues
WO2023206058A1 (en) 2022-04-26 2023-11-02 Citrix Systems, Inc. Aggregating electronic messages for meetings
US20230409352A1 (en) * 2022-04-27 2023-12-21 Fotobom Media, Inc. Systems and Methods for Dynamically Generating Context Aware Active Icons on a Mobile Device
KR20230154591A (ko) * 2022-05-02 2023-11-09 쿠팡 주식회사 정보를 설정하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
US11842028B2 (en) 2022-05-06 2023-12-12 Apple Inc. Devices, methods, and graphical user interfaces for updating a session region
EP4273677A1 (en) 2022-05-06 2023-11-08 Apple Inc. Devices, methods, and graphical user interfaces for updating a session region
US20230367795A1 (en) * 2022-05-10 2023-11-16 Apple Inc. Navigating and performing device tasks using search interface
US20230367777A1 (en) * 2022-05-10 2023-11-16 Apple Inc. Systems and methods for providing search interface with contextual suggestions
CN114821271B (zh) * 2022-05-19 2022-09-16 平安科技(深圳)有限公司 模型训练方法、图像描述生成方法、装置及存储介质
US20230385904A1 (en) * 2022-05-31 2023-11-30 Apple Inc. Two-Layer Bandit Optimization for Recommendations
US11995457B2 (en) 2022-06-03 2024-05-28 Apple Inc. Digital assistant integration with system interface
US12105764B2 (en) * 2022-06-29 2024-10-01 Dropbox, Inc. Empty search state
CN114863939B (zh) * 2022-07-07 2022-09-13 四川大学 一种基于声音的大熊猫属性识别方法及系统
US11662832B1 (en) * 2022-08-25 2023-05-30 Google Llc System and method for enhancing functionality of electronic devices
US12021815B2 (en) * 2022-09-08 2024-06-25 Lenovo (Singapore) Pte. Ltd Message reminder upon detection of no response
WO2024086048A1 (en) * 2022-10-16 2024-04-25 Google Llc Mitigating latency in spoken input guided selection of item(s)
US20240203173A1 (en) * 2022-12-15 2024-06-20 Mercedes-Benz Group AG System and/or method for predicting user action in connection with a vehicle user interface using machine learning
US11954325B1 (en) * 2023-04-05 2024-04-09 Honeywell International Inc. Methods and systems for assigning text entry components to cursors
US12106042B1 (en) * 2023-06-09 2024-10-01 International Business Machines Corporation Enhanced computer automation to transfer data between software applications

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120316955A1 (en) 2011-04-06 2012-12-13 Yahoo! Inc. System and Method for Mobile Application Search
US8589374B2 (en) 2009-03-16 2013-11-19 Apple Inc. Multifunction device with integrated search and application selection
WO2013180751A1 (en) 2012-05-31 2013-12-05 Doat Media Ltd. Method for dynamically displaying a personalized home screen on a device
JP2014513835A (ja) 2011-04-22 2014-06-05 クアルコム,インコーポレイテッド 通信デバイス上にコンテンツを提示するための、コンテキストの利用
US20140279787A1 (en) 2013-03-15 2014-09-18 Ximplar Limited Systems And Methods for an Adaptive Application Recommender

Family Cites Families (2765)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8073695B1 (en) 1992-12-09 2011-12-06 Adrea, LLC Electronic book with voice emulation features
US5621878A (en) 1993-03-03 1997-04-15 Apple Computer, Inc. Method and apparatus or manipulating data from a suspended application program on a computer-controlled display system
US6122482A (en) 1995-02-22 2000-09-19 Global Communications, Inc. Satellite broadcast receiving and distribution system
US5901287A (en) 1996-04-01 1999-05-04 The Sabre Group Inc. Information aggregation and synthesization system
US6169911B1 (en) 1997-09-26 2001-01-02 Sun Microsystems, Inc. Graphical user interface for a portable telephone
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US6553308B1 (en) 1999-04-29 2003-04-22 Donnelly Corporation Vehicle-based navigation system with smart map filtering, portable unit home-base registration and multiple navigation system preferential use
WO2000021232A2 (en) 1998-10-02 2000-04-13 International Business Machines Corporation Conversational browser and conversational systems
US6163794A (en) 1998-10-23 2000-12-19 General Magic Network system extensible by users
US7447637B1 (en) 1998-12-23 2008-11-04 Eastern Investments, Llc System and method of processing speech within a graphic user interface
US6157891A (en) * 1998-11-16 2000-12-05 Lin; Ching-Fang Positioning and ground proximity warning method and system thereof for vehicle
US8938688B2 (en) 1998-12-04 2015-01-20 Nuance Communications, Inc. Contextual prediction of user words and user actions
US7881936B2 (en) 1998-12-04 2011-02-01 Tegic Communications, Inc. Multimodal disambiguation of speech recognition
US6842877B2 (en) 1998-12-18 2005-01-11 Tangis Corporation Contextual responses based on automated learning techniques
EP1192716B1 (en) 1999-05-27 2009-09-23 Tegic Communications, Inc. Keyboard system with automatic correction
EP1224569A4 (en) 1999-05-28 2005-08-10 Sehda Inc PHRASE BASED DIALOGUE MODELING WITH SPECIAL APPLICATION FOR GENERATING RECOGNITION GRAMMARK FOR LANGUAGE-CONTROLLED USER INTERFACE
US20140098247A1 (en) 1999-06-04 2014-04-10 Ip Holdings, Inc. Home Automation And Smart Home Control Using Mobile Devices And Wireless Enabled Electrical Switches
US8065155B1 (en) 1999-06-10 2011-11-22 Gazdzinski Robert F Adaptive advertising apparatus and methods
AUPQ138199A0 (en) 1999-07-02 1999-07-29 Telstra R & D Management Pty Ltd A search system
US7925610B2 (en) 1999-09-22 2011-04-12 Google Inc. Determining a meaning of a knowledge item using document-based information
US6266615B1 (en) * 1999-09-27 2001-07-24 Televigation, Inc. Method and system for an interactive and real-time distributed navigation system
US8392188B1 (en) 1999-11-05 2013-03-05 At&T Intellectual Property Ii, L.P. Method and system for building a phonotactic model for domain independent speech recognition
US7392185B2 (en) 1999-11-12 2008-06-24 Phoenix Solutions, Inc. Speech based learning/training system using semantic decoding
US9076448B2 (en) 1999-11-12 2015-07-07 Nuance Communications, Inc. Distributed real time speech recognition system
US7130807B1 (en) 1999-11-22 2006-10-31 Accenture Llp Technology sharing during demand and supply planning in a network-based supply chain environment
US8032409B1 (en) 1999-11-22 2011-10-04 Accenture Global Services Limited Enhanced visibility during installation management in a network-based supply chain environment
US8271336B2 (en) 1999-11-22 2012-09-18 Accenture Global Services Gmbh Increased visibility during order management in a network-based supply chain environment
US7337389B1 (en) 1999-12-07 2008-02-26 Microsoft Corporation System and method for annotating an electronic document independently of its content
US8271287B1 (en) 2000-01-14 2012-09-18 Alcatel Lucent Voice command remote control system
US6757362B1 (en) 2000-03-06 2004-06-29 Avaya Technology Corp. Personal virtual assistant
US6587782B1 (en) 2000-03-14 2003-07-01 Navigation Technologies Corp. Method and system for providing reminders about points of interests while traveling
US8024415B2 (en) 2001-03-16 2011-09-20 Microsoft Corporation Priorities generation and management
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US7917366B1 (en) 2000-03-24 2011-03-29 Exaudios Technologies System and method for determining a personal SHG profile by voice analysis
US7606706B1 (en) 2000-04-20 2009-10-20 Rubin Aviel D System and method for storage and retrieval of personal communications in a broadband network
US6915262B2 (en) 2000-11-30 2005-07-05 Telesector Resources Group, Inc. Methods and apparatus for performing speech recognition and using speech recognition results
JP4499278B2 (ja) 2000-12-22 2010-07-07 ソニー株式会社 車両検索装置及び車両検索方法
US7277853B1 (en) 2001-03-02 2007-10-02 Mindspeed Technologies, Inc. System and method for a endpoint detection of speech for improved speech recognition in noisy environments
WO2002073598A1 (en) 2001-03-14 2002-09-19 At & T Corp. Method for automated sentence planning in a task classification system
US7209880B1 (en) 2001-03-20 2007-04-24 At&T Corp. Systems and methods for dynamic re-configurable speech recognition
EP1391106B1 (en) 2001-04-30 2014-02-26 Polycom, Inc. Audio conference platform with dynamic speech detection threshold
US6975304B1 (en) 2001-06-11 2005-12-13 Handspring, Inc. Interface for processing of an alternate symbol in a computer device
US8831949B1 (en) 2001-06-28 2014-09-09 At&T Intellectual Property I, L.P. Voice recognition for performing authentication and completing transactions in a systems interface to legacy systems
US20030023371A1 (en) 2001-06-29 2003-01-30 Spencer Stephens Navigator that receives a location identifier and related systems and methods
US6489921B1 (en) * 2001-07-12 2002-12-03 Jeffrey Fergus Wilkinson Vehicle locating apparatus
US20050134578A1 (en) 2001-07-13 2005-06-23 Universal Electronics Inc. System and methods for interacting with a control environment
US7987151B2 (en) 2001-08-10 2011-07-26 General Dynamics Advanced Info Systems, Inc. Apparatus and method for problem solving using intelligent agents
US7920682B2 (en) 2001-08-21 2011-04-05 Byrne William J Dynamic interactive voice interface
US11004114B2 (en) 2001-08-21 2021-05-11 Bookit Oy Components, system, platform and methodologies for mediating and provisioning services and product delivery and orchestrating, mediating and authenticating transactions and interactions
JP2003085696A (ja) 2001-09-10 2003-03-20 Mitsubishi Heavy Ind Ltd 車両位置検索システム及びそれを備えた駐車場並びにその駐車場における料金徴収方法
US7403938B2 (en) 2001-09-24 2008-07-22 Iac Search & Media, Inc. Natural language query processing
US6985865B1 (en) 2001-09-26 2006-01-10 Sprint Spectrum L.P. Method and system for enhanced response to voice commands in a voice command platform
US7113572B2 (en) * 2001-10-03 2006-09-26 Cingular Wireless Ii, Llc System and method for recognition of and automatic connection using spoken address information received in voice mails and live telephone conversations
US7324947B2 (en) 2001-10-03 2008-01-29 Promptu Systems Corporation Global speech user interface
ITFI20010199A1 (it) 2001-10-22 2003-04-22 Riccardo Vieri Sistema e metodo per trasformare in voce comunicazioni testuali ed inviarle con una connessione internet a qualsiasi apparato telefonico
US7913185B1 (en) 2001-10-25 2011-03-22 Adobe Systems Incorporated Graphical insertion of JavaScript pop-up menus
US20030101054A1 (en) 2001-11-27 2003-05-29 Ncc, Llc Integrated system and method for electronic speech recognition and transcription
US9374451B2 (en) 2002-02-04 2016-06-21 Nokia Technologies Oy System and method for multimodal short-cuts to digital services
US8374879B2 (en) 2002-02-04 2013-02-12 Microsoft Corporation Systems and methods for managing interactions from multiple speech-enabled applications
US7221287B2 (en) 2002-03-05 2007-05-22 Triangle Software Llc Three-dimensional traffic report
US7707221B1 (en) 2002-04-03 2010-04-27 Yahoo! Inc. Associating and linking compact disc metadata
US7869998B1 (en) 2002-04-23 2011-01-11 At&T Intellectual Property Ii, L.P. Voice-enabled dialog system
US8135115B1 (en) 2006-11-22 2012-03-13 Securus Technologies, Inc. System and method for multi-channel recording
US7221937B2 (en) 2002-05-06 2007-05-22 Research In Motion Limited Event reminder method
US8611919B2 (en) 2002-05-23 2013-12-17 Wounder Gmbh., Llc System, method, and computer program product for providing location based services and mobile e-commerce
US7398209B2 (en) 2002-06-03 2008-07-08 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US8219608B2 (en) 2002-06-20 2012-07-10 Koninklijke Philips Electronics N.V. Scalable architecture for web services
AU2003280474A1 (en) 2002-06-28 2004-01-19 Conceptual Speech, Llc Multi-phoneme streamer and knowledge representation speech recognition system and method
US7079713B2 (en) 2002-06-28 2006-07-18 Microsoft Corporation Method and system for displaying and linking ink objects with recognized text and objects
US6876727B2 (en) 2002-07-24 2005-04-05 Sbc Properties, Lp Voice over IP method for developing interactive voice response system
US7027842B2 (en) 2002-09-24 2006-04-11 Bellsouth Intellectual Property Corporation Apparatus and method for providing hands-free operation of a device
US9342829B2 (en) 2002-10-01 2016-05-17 Andrew H B Zhou Systems and methods for mobile application, wearable application, transactional messaging, calling, digital multimedia capture and payment transactions
US8972266B2 (en) 2002-11-12 2015-03-03 David Bezar User intent analysis extent of speaker intent analysis system
US7822611B2 (en) 2002-11-12 2010-10-26 Bezar David B Speaker intent analysis system
US8005919B2 (en) 2002-11-18 2011-08-23 Aol Inc. Host-based intelligent results related to a character stream
US8661112B2 (en) 2002-12-20 2014-02-25 Nuance Communications, Inc. Customized interactive voice response menus
FI115190B (fi) 2003-01-21 2005-03-15 Nokia Corp Menetelmä paikkariippuvan toiminnon käynnistämiseksi, järjestelmä ja laite
US8064753B2 (en) 2003-03-05 2011-11-22 Freeman Alan D Multi-feature media article and method for manufacture of same
US8244712B2 (en) 2003-03-18 2012-08-14 Apple Inc. Localized viewing of file system names
US7623892B2 (en) 2003-04-02 2009-11-24 Palm, Inc. System and method for enabling a person to switch use of computing devices
US7941009B2 (en) 2003-04-08 2011-05-10 The Penn State Research Foundation Real-time computerized annotation of pictures
US8224757B2 (en) 2003-04-15 2012-07-17 Sap Ag Curriculum management system
JP2004326498A (ja) 2003-04-25 2004-11-18 Matsushita Electric Ind Co Ltd 情報端末機器及びプログラム
US7669134B1 (en) 2003-05-02 2010-02-23 Apple Inc. Method and apparatus for displaying information during an instant messaging session
US7407384B2 (en) 2003-05-29 2008-08-05 Robert Bosch Gmbh System, method and device for language education through a voice portal server
US7496230B2 (en) 2003-06-05 2009-02-24 International Business Machines Corporation System and method for automatic natural language translation of embedded text regions in images during information transfer
US8311835B2 (en) 2003-08-29 2012-11-13 Microsoft Corporation Assisted multi-modal dialogue
US7539619B1 (en) 2003-09-05 2009-05-26 Spoken Translation Ind. Speech-enabled language translation system and method enabling interactive user supervision of translation and speech recognition accuracy
US7917364B2 (en) 2003-09-23 2011-03-29 Hewlett-Packard Development Company, L.P. System and method using multiple automated speech recognition engines
US7386440B2 (en) 2003-10-01 2008-06-10 International Business Machines Corporation Method, system, and apparatus for natural language mixed-initiative dialogue processing
US20090018918A1 (en) 2004-11-04 2009-01-15 Manyworlds Inc. Influence-based Social Network Advertising
JP3734815B2 (ja) 2003-12-10 2006-01-11 任天堂株式会社 携帯ゲーム装置及びゲームプログラム
US7427024B1 (en) 2003-12-17 2008-09-23 Gazdzinski Mark J Chattel management apparatus and methods
EP1699042B1 (en) 2003-12-26 2010-02-17 Kabushiki Kaisha Kenwood Device control device, method and program
US8160883B2 (en) 2004-01-10 2012-04-17 Microsoft Corporation Focus tracking in dialogs
US8281339B1 (en) 2004-01-12 2012-10-02 United Video Properties, Inc. Customizable flip and browse overlays in an interactive television system
US7433876B2 (en) 2004-02-23 2008-10-07 Radar Networks, Inc. Semantic web portal and platform
US8654936B1 (en) 2004-02-24 2014-02-18 At&T Intellectual Property I, L.P. Home control, monitoring and communication system using remote voice commands
US7983835B2 (en) 2004-11-03 2011-07-19 Lagassey Paul J Modular intelligent transportation system
GB2412546B (en) 2004-03-25 2009-03-04 Samsung Electronics Co Ltd Messaging in a mobile communications network
US8713418B2 (en) 2004-04-12 2014-04-29 Google Inc. Adding value to a rendered document
US8233884B2 (en) 2004-04-20 2012-07-31 Sony Mobile Communications Ab Information service phonebook update
US8020101B2 (en) 2004-05-20 2011-09-13 International Business Machines Corporation User specified transfer of data between applications
US20050258632A1 (en) 2004-05-21 2005-11-24 Bradford Currier Parking location reminder and business advertisement
US8130929B2 (en) 2004-05-25 2012-03-06 Galileo Processing, Inc. Methods for obtaining complex data in an interactive voice response system
US7873149B2 (en) 2004-06-01 2011-01-18 Verizon Business Global Llc Systems and methods for gathering information
US8224649B2 (en) 2004-06-02 2012-07-17 International Business Machines Corporation Method and apparatus for remote command, control and diagnostics of systems using conversational or audio interface
US8095364B2 (en) 2004-06-02 2012-01-10 Tegic Communications, Inc. Multimodal disambiguation of speech recognition
US8321786B2 (en) 2004-06-17 2012-11-27 Apple Inc. Routine and interface for correcting electronic text
US8099395B2 (en) 2004-06-24 2012-01-17 Oracle America, Inc. System level identity object
US8589156B2 (en) 2004-07-12 2013-11-19 Hewlett-Packard Development Company, L.P. Allocation of speech recognition tasks and combination of results thereof
US8036893B2 (en) 2004-07-22 2011-10-11 Nuance Communications, Inc. Method and system for identifying and correcting accent-induced speech recognition difficulties
US7936861B2 (en) 2004-07-23 2011-05-03 At&T Intellectual Property I, L.P. Announcement system and method of use
US8381135B2 (en) 2004-07-30 2013-02-19 Apple Inc. Proximity detector in handheld device
US7728821B2 (en) 2004-08-06 2010-06-01 Touchtable, Inc. Touch detecting interactive display
US7869999B2 (en) 2004-08-11 2011-01-11 Nuance Communications, Inc. Systems and methods for selecting from multiple phonectic transcriptions for text-to-speech synthesis
US8407239B2 (en) 2004-08-13 2013-03-26 Google Inc. Multi-stage query processing system and method for use with tokenspace repository
US7895531B2 (en) 2004-08-16 2011-02-22 Microsoft Corporation Floating command object
US8117542B2 (en) 2004-08-16 2012-02-14 Microsoft Corporation User interface for displaying selectable software functionality controls that are contextually relevant to a selected object
US7912699B1 (en) 2004-08-23 2011-03-22 At&T Intellectual Property Ii, L.P. System and method of lattice-based search for spoken utterance retrieval
US20060048055A1 (en) 2004-08-25 2006-03-02 Jun Wu Fault-tolerant romanized input method for non-roman characters
US20060059424A1 (en) 2004-09-15 2006-03-16 Petri Jonah W Real-time data localization
US7936863B2 (en) 2004-09-30 2011-05-03 Avaya Inc. Method and apparatus for providing communication tasks in a workflow
US8107401B2 (en) 2004-09-30 2012-01-31 Avaya Inc. Method and apparatus for providing a virtual assistant to a communication participant
US8744852B1 (en) 2004-10-01 2014-06-03 Apple Inc. Spoken interfaces
US7885844B1 (en) 2004-11-16 2011-02-08 Amazon Technologies, Inc. Automatically generating task recommendations for human task performers
US9203788B2 (en) 2004-11-18 2015-12-01 Adobe Systems Incorporated System and method for communicating instant message information between an instant messaging node and one or more programs
US20060111835A1 (en) 2004-11-23 2006-05-25 Texas Instruments Incorporated Location system for locating a parked vehicle, a method for providing a location of a parked vehicle and a personal wireless device incorporating the system or method
US8498865B1 (en) 2004-11-30 2013-07-30 Vocera Communications, Inc. Speech recognition system and method using group call statistics
GB0426347D0 (en) 2004-12-01 2005-01-05 Ibm Methods, apparatus and computer programs for automatic speech recognition
US7987244B1 (en) 2004-12-30 2011-07-26 At&T Intellectual Property Ii, L.P. Network repository for voice fonts
US8478589B2 (en) 2005-01-05 2013-07-02 At&T Intellectual Property Ii, L.P. Library of existing spoken dialog data for use in generating new natural language spoken dialog systems
US8069422B2 (en) 2005-01-10 2011-11-29 Samsung Electronics, Co., Ltd. Contextual task recommendation system and method for determining user's context and suggesting tasks
US8150872B2 (en) 2005-01-24 2012-04-03 The Intellection Group, Inc. Multimodal natural language query system for processing and analyzing voice and proximity-based queries
US7873654B2 (en) 2005-01-24 2011-01-18 The Intellection Group, Inc. Multimodal natural language query system for processing and analyzing voice and proximity-based queries
US8228299B1 (en) 2005-01-27 2012-07-24 Singleton Technology, Llc Transaction automation and archival system using electronic contract and disclosure units
US7734569B2 (en) 2005-02-03 2010-06-08 Strands, Inc. Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics
US7895039B2 (en) 2005-02-04 2011-02-22 Vocollect, Inc. Methods and systems for optimizing model adaptation for a speech recognition system
US8200495B2 (en) 2005-02-04 2012-06-12 Vocollect, Inc. Methods and systems for considering information about an expected response when performing speech recognition
US8577683B2 (en) 2008-08-15 2013-11-05 Thomas Majchrowski & Associates, Inc. Multipurpose media players
JP4911028B2 (ja) 2005-02-24 2012-04-04 富士ゼロックス株式会社 単語翻訳装置、翻訳方法および翻訳プログラム
US7933399B2 (en) 2005-03-22 2011-04-26 At&T Intellectual Property I, L.P. System and method for utilizing virtual agents in an interactive voice response application
US7925525B2 (en) 2005-03-25 2011-04-12 Microsoft Corporation Smart reminders
US8346757B1 (en) 2005-03-28 2013-01-01 Google Inc. Determining query terms of little significance
US9471566B1 (en) 2005-04-14 2016-10-18 Oracle America, Inc. Method and apparatus for converting phonetic language input to written language output
US8260617B2 (en) 2005-04-18 2012-09-04 Nuance Communications, Inc. Automating input when testing voice-enabled applications
US7996589B2 (en) 2005-04-22 2011-08-09 Microsoft Corporation Auto-suggest lists and handwritten input
US7684990B2 (en) 2005-04-29 2010-03-23 Nuance Communications, Inc. Method and apparatus for multiple value confirmation and correction in spoken dialog systems
US8046374B1 (en) 2005-05-06 2011-10-25 Symantec Corporation Automatic training of a database intrusion detection system
US7571161B2 (en) 2005-05-13 2009-08-04 Microsoft Corporation System and method for auto-sensed search help
US7886233B2 (en) 2005-05-23 2011-02-08 Nokia Corporation Electronic text input involving word completion functionality for predicting word candidates for partial word inputs
US8041570B2 (en) 2005-05-31 2011-10-18 Robert Bosch Corporation Dialogue management using scripts
US7725476B2 (en) 2005-06-14 2010-05-25 International Business Machines Corporation System and method for automated data retrieval based on data placed in clipboard memory
US8477323B2 (en) 2005-06-22 2013-07-02 Xerox Corporation System and method for conveying rendering intents
US8024195B2 (en) 2005-06-27 2011-09-20 Sensory, Inc. Systems and methods of performing speech recognition using historical information
US8396715B2 (en) 2005-06-28 2013-03-12 Microsoft Corporation Confidence threshold tuning
GB0513225D0 (en) 2005-06-29 2005-08-03 Ibm Method and system for building and contracting a linguistic dictionary
US7873523B2 (en) 2005-06-30 2011-01-18 Microsoft Corporation Computer implemented method of analyzing recognition results between a user and an interactive application utilizing inferred values instead of transcribed speech
US7885390B2 (en) 2005-07-01 2011-02-08 Soleo Communications, Inc. System and method for multi-modal personal communication services
US7881283B2 (en) 2005-07-13 2011-02-01 Research In Motion Limited Customizability of event notification on telephony-enabled devices
US9094636B1 (en) 2005-07-14 2015-07-28 Zaxcom, Inc. Systems and methods for remotely controlling local audio devices in a virtual wireless multitrack recording system
US7912720B1 (en) 2005-07-20 2011-03-22 At&T Intellectual Property Ii, L.P. System and method for building emotional machines
US7640160B2 (en) 2005-08-05 2009-12-29 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US8694322B2 (en) 2005-08-05 2014-04-08 Microsoft Corporation Selective confirmation for execution of a voice activated user interface
US7844037B2 (en) 2005-08-08 2010-11-30 Palm, Inc. Method and device for enabling message responses to incoming phone calls
CA2618623C (en) 2005-08-09 2015-01-06 Mobilevoicecontrol, Inc. Control center for a voice controlled wireless communication device system
US7620549B2 (en) 2005-08-10 2009-11-17 Voicebox Technologies, Inc. System and method of supporting adaptive misrecognition in conversational speech
WO2007017805A2 (en) 2005-08-11 2007-02-15 Philips Intellectual Property & Standards Gmbh Method of driving an interactive system and user interface system
US7949529B2 (en) 2005-08-29 2011-05-24 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
JP4178154B2 (ja) 2005-08-30 2008-11-12 松下電器産業株式会社 駐車位置探索支援装置、方法およびプログラム
EP1934971A4 (en) 2005-08-31 2010-10-27 Voicebox Technologies Inc DYNAMIC LANGUAGE SCRIPTURE
US8265939B2 (en) 2005-08-31 2012-09-11 Nuance Communications, Inc. Hierarchical methods and apparatus for extracting user intent from spoken utterances
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US8819659B2 (en) 2005-09-14 2014-08-26 Millennial Media, Inc. Mobile search service instant activation
US8688671B2 (en) 2005-09-14 2014-04-01 Millennial Media Managing sponsored content based on geographic region
US8635073B2 (en) 2005-09-14 2014-01-21 At&T Intellectual Property I, L.P. Wireless multimodal voice browser for wireline-based IPTV services
US8509827B2 (en) 2005-09-21 2013-08-13 Buckyball Mobile Inc. Methods and apparatus of context-data acquisition and ranking
US7992085B2 (en) 2005-09-26 2011-08-02 Microsoft Corporation Lightweight reference user interface
US8270933B2 (en) 2005-09-26 2012-09-18 Zoomsafer, Inc. Safety features for portable electronic device
US7505784B2 (en) 2005-09-26 2009-03-17 Barbera Melvin A Safety features for portable electronic device
US9009046B1 (en) 2005-09-27 2015-04-14 At&T Intellectual Property Ii, L.P. System and method for disambiguating multiple intents in a natural language dialog system
US7633076B2 (en) * 2005-09-30 2009-12-15 Apple Inc. Automated response to and sensing of user activity in portable devices
JP4908094B2 (ja) 2005-09-30 2012-04-04 株式会社リコー 情報処理システム、情報処理方法及び情報処理プログラム
US7930168B2 (en) 2005-10-04 2011-04-19 Robert Bosch Gmbh Natural language processing of disfluent sentences
US8401163B1 (en) 2005-10-18 2013-03-19 Callwave Communications, Llc Methods and systems for call processing and for providing call progress status over a network
US20070094024A1 (en) 2005-10-22 2007-04-26 International Business Machines Corporation System and method for improving text input in a shorthand-on-keyboard interface
US7395959B2 (en) 2005-10-27 2008-07-08 International Business Machines Corporation Hands free contact database information entry at a communication device
KR100755678B1 (ko) 2005-10-28 2007-09-05 삼성전자주식회사 개체명 검출 장치 및 방법
US9026915B1 (en) 2005-10-31 2015-05-05 At&T Intellectual Property Ii, L.P. System and method for creating a presentation using natural language
US7936339B2 (en) 2005-11-01 2011-05-03 Leapfrog Enterprises, Inc. Method and system for invoking computer functionality by interaction with dynamically generated interface regions of a writing surface
WO2007057499A1 (en) 2005-11-17 2007-05-24 Nokia Corporation Application interworking
US8042048B2 (en) 2005-11-17 2011-10-18 Att Knowledge Ventures, L.P. System and method for home automation
US8055707B2 (en) 2005-11-30 2011-11-08 Alcatel Lucent Calendar interface for digital communications
US9330668B2 (en) 2005-12-20 2016-05-03 International Business Machines Corporation Sharing voice application processing via markup
US8234494B1 (en) 2005-12-21 2012-07-31 At&T Intellectual Property Ii, L.P. Speaker-verification digital signatures
US7996228B2 (en) 2005-12-22 2011-08-09 Microsoft Corporation Voice initiated network operations
US7685144B1 (en) 2005-12-29 2010-03-23 Google Inc. Dynamically autocompleting a data entry
US7890330B2 (en) 2005-12-30 2011-02-15 Alpine Electronics Inc. Voice recording tool for creating database used in text to speech synthesis system
KR101265263B1 (ko) 2006-01-02 2013-05-16 삼성전자주식회사 발음 기호를 이용한 문자열 매칭 방법 및 시스템과 그방법을 기록한 컴퓨터 판독 가능한 기록매체
US8006180B2 (en) 2006-01-10 2011-08-23 Mircrosoft Corporation Spell checking in network browser based applications
US9275129B2 (en) 2006-01-23 2016-03-01 Symantec Corporation Methods and systems to efficiently find similar and near-duplicate emails and files
US9600568B2 (en) 2006-01-23 2017-03-21 Veritas Technologies Llc Methods and systems for automatic evaluation of electronic discovery review and productions
US7929805B2 (en) 2006-01-31 2011-04-19 The Penn State Research Foundation Image-based CAPTCHA generation system
US8352183B2 (en) 2006-02-04 2013-01-08 Microsoft Corporation Maps for social networking and geo blogs
US9101279B2 (en) 2006-02-15 2015-08-11 Virtual Video Reality By Ritchey, Llc Mobile user borne brain activity data and surrounding environment data correlation system
US7983910B2 (en) 2006-03-03 2011-07-19 International Business Machines Corporation Communicating across voice and text channels with emotion preservation
US9250703B2 (en) 2006-03-06 2016-02-02 Sony Computer Entertainment Inc. Interface with gaze detection and voice input
US8532678B2 (en) 2006-03-08 2013-09-10 Tomtom International B.V. Portable GPS navigation device
JP4734155B2 (ja) 2006-03-24 2011-07-27 株式会社東芝 音声認識装置、音声認識方法および音声認識プログラム
US7930183B2 (en) 2006-03-29 2011-04-19 Microsoft Corporation Automatic identification of dialog timing problems for an interactive speech dialog application using speech log data indicative of cases of barge-in and timing problems
US8018431B1 (en) 2006-03-29 2011-09-13 Amazon Technologies, Inc. Page turner for handheld electronic book reader device
US8244545B2 (en) 2006-03-30 2012-08-14 Microsoft Corporation Dialog repair based on discrepancies between user model predictions and speech recognition results
US7283072B1 (en) 2006-03-30 2007-10-16 International Business Machines Corporation Methods of creating a dictionary for data compression
US7996769B2 (en) 2006-04-05 2011-08-09 Research In Motion Limited Handheld electronic device and method for performing spell checking during text entry and for providing a spell-check learning feature
US8046363B2 (en) 2006-04-13 2011-10-25 Lg Electronics Inc. System and method for clustering documents
KR100744380B1 (ko) 2006-04-17 2007-07-30 삼성전자주식회사 외부 디스플레이 장치로 영상을 출력할 수 있는 기능을구비한 이동 단말기에서의 디스플레이 제어 장치 및 방법
US8077153B2 (en) 2006-04-19 2011-12-13 Microsoft Corporation Precise selection techniques for multi-touch screens
US8103947B2 (en) 2006-04-20 2012-01-24 Timecove Corporation Collaborative system and method for generating biographical accounts
US8214213B1 (en) 2006-04-27 2012-07-03 At&T Intellectual Property Ii, L.P. Speech recognition based on pronunciation modeling
US9020804B2 (en) 2006-05-10 2015-04-28 Xerox Corporation Method for aligning sentences at the word level enforcing selective contiguity constraints
US7523108B2 (en) 2006-06-07 2009-04-21 Platformation, Inc. Methods and apparatus for searching with awareness of geography and languages
US8332218B2 (en) 2006-06-13 2012-12-11 Nuance Communications, Inc. Context-based grammars for automated speech recognition
US9219767B2 (en) 2006-06-22 2015-12-22 Linkedin Corporation Recording and indicating preferences
WO2008001485A1 (fr) 2006-06-26 2008-01-03 Nec Corporation système de génération de modèles de langue, procédé de génération de modèles de langue et programme de génération de modèles de langue
US8050500B1 (en) 2006-07-06 2011-11-01 Senapps, LLC Recognition method and system
US8279171B2 (en) 2006-07-06 2012-10-02 Panasonic Corporation Voice input device
US20080022208A1 (en) 2006-07-18 2008-01-24 Creative Technology Ltd System and method for personalizing the user interface of audio rendering devices
US7646296B2 (en) 2006-08-11 2010-01-12 Honda Motor Co., Ltd. Method and system for receiving and sending navigational data via a wireless messaging service on a navigation system
US8134481B2 (en) 2006-08-11 2012-03-13 Honda Motor Co., Ltd. Method and system for receiving and sending navigational data via a wireless messaging service on a navigation system
US9071701B2 (en) 2006-08-31 2015-06-30 Qualcomm Incorporated Using wireless characteristic to trigger generation of position fix
US8170790B2 (en) 2006-09-05 2012-05-01 Garmin Switzerland Gmbh Apparatus for switching navigation device mode
US7996792B2 (en) 2006-09-06 2011-08-09 Apple Inc. Voicemail manager for portable multifunction device
US8589869B2 (en) 2006-09-07 2013-11-19 Wolfram Alpha Llc Methods and systems for determining a formula
TWI322610B (en) 2006-09-08 2010-03-21 Htc Corp Handheld electronic device
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8214208B2 (en) 2006-09-28 2012-07-03 Reqall, Inc. Method and system for sharing portable voice profiles
US7649454B2 (en) 2006-09-28 2010-01-19 Ektimisi Semiotics Holdings, Llc System and method for providing a task reminder based on historical travel information
US7528713B2 (en) 2006-09-28 2009-05-05 Ektimisi Semiotics Holdings, Llc Apparatus and method for providing a task reminder based on travel history
US8014308B2 (en) 2006-09-28 2011-09-06 Microsoft Corporation Hardware architecture for cloud services
US7930197B2 (en) 2006-09-28 2011-04-19 Microsoft Corporation Personal data mining
US7945470B1 (en) 2006-09-29 2011-05-17 Amazon Technologies, Inc. Facilitating performance of submitted tasks by mobile task performers
JP2008092269A (ja) 2006-10-02 2008-04-17 Matsushita Electric Ind Co Ltd ハンズフリー通話装置
JP2008096541A (ja) 2006-10-06 2008-04-24 Canon Inc 音声処理装置およびその制御方法
US8434133B2 (en) 2006-10-06 2013-04-30 Fmr Llc Single-party, secure multi-channel authentication
US7937075B2 (en) 2006-10-06 2011-05-03 At&T Intellectual Property I, L.P. Mode changing of a mobile communications device and vehicle settings when the mobile communications device is in proximity to a vehicle
US8073681B2 (en) 2006-10-16 2011-12-06 Voicebox Technologies, Inc. System and method for a cooperative conversational voice user interface
US8972268B2 (en) 2008-04-15 2015-03-03 Facebook, Inc. Enhanced speech-to-speech translation system and methods for adding a new word
US8255216B2 (en) 2006-10-30 2012-08-28 Nuance Communications, Inc. Speech recognition of character sequences
WO2008061903A1 (en) 2006-11-22 2008-05-29 Agfa Healthcate Inc. Method and system for client / server distributed image processing
US8055502B2 (en) 2006-11-28 2011-11-08 General Motors Llc Voice dialing using a rejection reference
US9830912B2 (en) 2006-11-30 2017-11-28 Ashwin P Rao Speak and touch auto correction interface
GB0623915D0 (en) 2006-11-30 2007-01-10 Ibm Phonetic decoding and concatentive speech synthesis
US8731610B2 (en) 2006-12-13 2014-05-20 Samsung Electronics Co., Ltd. Method for adaptive user interface in mobile devices
US8010367B2 (en) 2006-12-22 2011-08-30 Nuance Communications, Inc. Spoken free-form passwords for light-weight speaker verification using standard speech recognition engines
US8019271B1 (en) 2006-12-29 2011-09-13 Nextel Communications, Inc. Methods and systems for presenting information on mobile devices
US7865817B2 (en) 2006-12-29 2011-01-04 Amazon Technologies, Inc. Invariant referencing in digital works
US7889184B2 (en) 2007-01-05 2011-02-15 Apple Inc. Method, system and graphical user interface for displaying hyperlink information
US8060824B2 (en) 2007-01-05 2011-11-15 Starz Entertainment Llc User interface for a multimedia service
US8712781B2 (en) 2007-01-05 2014-04-29 Johnson Controls Technology Company System and method for customized prompting
US7889185B2 (en) 2007-01-05 2011-02-15 Apple Inc. Method, system, and graphical user interface for activating hyperlinks
US8391844B2 (en) 2007-01-07 2013-03-05 Apple Inc. Voicemail systems and methods
AU2008204404B2 (en) 2007-01-09 2013-05-30 Spinvox Limited Detection of unanswered call in order to give calling party the option to alternatively dictate a text message for delivery to the called party
US8056070B2 (en) 2007-01-10 2011-11-08 Goller Michael D System and method for modifying and updating a speech recognition program
US7912724B1 (en) 2007-01-18 2011-03-22 Adobe Systems Incorporated Audio comparison using phoneme matching
US9524355B2 (en) 2007-01-22 2016-12-20 Mozy, Inc. Methods for delivering task-related digital content based on task-oriented user activity
JP2008185805A (ja) 2007-01-30 2008-08-14 Internatl Business Mach Corp <Ibm> 高品質の合成音声を生成する技術
US7818176B2 (en) 2007-02-06 2010-10-19 Voicebox Technologies, Inc. System and method for selecting and presenting advertisements based on natural language processing of voice-based input
US20110047605A1 (en) 2007-02-06 2011-02-24 Vidoop, Llc System And Method For Authenticating A User To A Computer System
US8078978B2 (en) 2007-10-19 2011-12-13 Google Inc. Method and system for predicting text
US7912828B2 (en) 2007-02-23 2011-03-22 Apple Inc. Pattern searching methods and apparatuses
US8457959B2 (en) 2007-03-01 2013-06-04 Edward C. Kaiser Systems and methods for implicitly interpreting semantically redundant communication modes
TWI321313B (en) 2007-03-03 2010-03-01 Ind Tech Res Inst Apparatus and method to reduce recognization errors through context relations among dialogue turns
US8635243B2 (en) 2007-03-07 2014-01-21 Research In Motion Limited Sending a communications header with voice recording to send metadata for use in speech recognition, formatting, and search mobile search application
US20080221884A1 (en) 2007-03-07 2008-09-11 Cerra Joseph P Mobile environment speech processing facility
US20110060587A1 (en) 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
US8949266B2 (en) 2007-03-07 2015-02-03 Vlingo Corporation Multiple web-based content category searching in mobile search application
US8886540B2 (en) 2007-03-07 2014-11-11 Vlingo Corporation Using speech recognition results based on an unstructured language model in a mobile communication facility application
US8838457B2 (en) 2007-03-07 2014-09-16 Vlingo Corporation Using results of unstructured language model based speech recognition to control a system-level function of a mobile communications facility
US20110054894A1 (en) 2007-03-07 2011-03-03 Phillips Michael S Speech recognition through the collection of contact information in mobile dictation application
US8219406B2 (en) 2007-03-15 2012-07-10 Microsoft Corporation Speech-centric multimodal user interface design in mobile technology
CN101636784B (zh) 2007-03-20 2011-12-28 富士通株式会社 语音识别系统及语音识别方法
US8943018B2 (en) 2007-03-23 2015-01-27 At&T Mobility Ii Llc Advanced contact management in communications networks
US7689916B1 (en) 2007-03-27 2010-03-30 Avaya, Inc. Automatically generating, and providing multiple levels of, tooltip information over time
US8702433B2 (en) 2007-03-28 2014-04-22 Breakthrough Performancetech, Llc Systems and methods for computerized interactive training
EP2045798B1 (en) 2007-03-29 2014-12-03 Panasonic Intellectual Property Corporation of America Keyword extracting device
US8775931B2 (en) 2007-03-30 2014-07-08 Blackberry Limited Spell check function that applies a preference to a spell check algorithm based upon extensive user selection of spell check results generated by the algorithm, and associated handheld electronic device
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
CN105117376B (zh) 2007-04-10 2018-07-10 谷歌有限责任公司 多模式输入法编辑器
CN101669090A (zh) 2007-04-26 2010-03-10 福特全球技术公司 情绪提示系统和方法
US8695074B2 (en) 2007-04-26 2014-04-08 Microsoft Corporation Pre-authenticated calling for voice applications
US7983915B2 (en) 2007-04-30 2011-07-19 Sonic Foundry, Inc. Audio content search engine
US8005664B2 (en) 2007-04-30 2011-08-23 Tachyon Technologies Pvt. Ltd. System, method to generate transliteration and method for generating decision tree to obtain transliteration
US7912289B2 (en) 2007-05-01 2011-03-22 Microsoft Corporation Image text replacement
US8032383B1 (en) 2007-05-04 2011-10-04 Foneweb, Inc. Speech controlled services and devices using internet
US7899666B2 (en) 2007-05-04 2011-03-01 Expert System S.P.A. Method and system for automatically extracting relations between concepts included in text
US8886521B2 (en) 2007-05-17 2014-11-11 Redstart Systems, Inc. System and method of dictation for a speech recognition command system
WO2008146456A1 (ja) 2007-05-28 2008-12-04 Panasonic Corporation 情報探索支援方法および情報探索支援装置
US8055708B2 (en) 2007-06-01 2011-11-08 Microsoft Corporation Multimedia spaces
KR100968864B1 (ko) 2007-06-01 2010-07-09 엔에이치엔(주) 전자메일에 대한 부가 정보 서비스 제공방법 및 그 시스템
US20100169003A1 (en) * 2007-06-04 2010-07-01 Sander Van Der Meer Location data processing apparatus and method of importing location information
US8204238B2 (en) 2007-06-08 2012-06-19 Sensory, Inc Systems and methods of sonic communication
WO2008151466A1 (en) 2007-06-14 2008-12-18 Google Inc. Dictionary word and phrase determination
US7987176B2 (en) 2007-06-25 2011-07-26 Sap Ag Mixed initiative semantic search
US8090621B1 (en) 2007-06-27 2012-01-03 Amazon Technologies, Inc. Method and system for associating feedback with recommendation rules
US8050919B2 (en) 2007-06-29 2011-11-01 Microsoft Corporation Speaker recognition via voice sample based on multiple nearest neighbor classifiers
KR100930802B1 (ko) 2007-06-29 2009-12-09 엔에이치엔(주) 이미지를 이용한 브라우저 제어 방법 및 시스템
US8630841B2 (en) 2007-06-29 2014-01-14 Microsoft Corporation Regular expression word verification
AU2008201643B1 (en) 2007-07-24 2008-08-28 Rambrandt Messaging Technologies, LP Messaging service in a wireless communications network
ITFI20070177A1 (it) 2007-07-26 2009-01-27 Riccardo Vieri Sistema per la creazione e impostazione di una campagna pubblicitaria derivante dall'inserimento di messaggi pubblicitari all'interno di uno scambio di messaggi e metodo per il suo funzionamento.
US7983919B2 (en) 2007-08-09 2011-07-19 At&T Intellectual Property Ii, L.P. System and method for performing speech synthesis with a cache of phoneme sequences
US7983478B2 (en) 2007-08-10 2011-07-19 Microsoft Corporation Hidden markov model based handwriting/calligraphy generation
JP2010236858A (ja) 2007-08-10 2010-10-21 Mitsubishi Electric Corp ナビゲーション装置
JP2009048245A (ja) 2007-08-14 2009-03-05 Konami Digital Entertainment:Kk 入力受付装置、領域制御方法、および、プログラム
US8260619B1 (en) 2008-08-22 2012-09-04 Convergys Cmg Utah, Inc. Method and system for creating natural language understanding grammars
US7847709B2 (en) 2007-08-28 2010-12-07 Gm Global Technology Operations, Inc. Multimode vehicle location device and method
US8374316B2 (en) 2007-08-28 2013-02-12 International Business Machines Corporation System for recording spoken phone numbers during a voice call
US8190359B2 (en) 2007-08-31 2012-05-29 Proxpro, Inc. Situation-aware personal information management for a mobile device
US8661340B2 (en) 2007-09-13 2014-02-25 Apple Inc. Input methods for device having multi-language environment
US8042053B2 (en) 2007-09-24 2011-10-18 Microsoft Corporation Method for making digital documents browseable
US8595642B1 (en) 2007-10-04 2013-11-26 Great Northern Research, LLC Multiple shell multi faceted graphical user interface
US8165886B1 (en) 2007-10-04 2012-04-24 Great Northern Research LLC Speech interface system and method for control and interaction with applications on a computing system
US8036901B2 (en) 2007-10-05 2011-10-11 Sensory, Incorporated Systems and methods of performing speech recognition using sensory inputs of human position
US9532164B2 (en) 2007-10-12 2016-12-27 Empire Ip Llc Mashing mapping content displayed on mobile devices
US8594996B2 (en) 2007-10-17 2013-11-26 Evri Inc. NLP-based entity recognition and disambiguation
US8126863B2 (en) 2007-10-25 2012-02-28 Apple Inc. Search control combining classification and text-based searching techniques
US8364694B2 (en) 2007-10-26 2013-01-29 Apple Inc. Search assistant for digital media assets
US7840447B2 (en) 2007-10-30 2010-11-23 Leonard Kleinrock Pricing and auctioning of bundled items among multiple sellers and buyers
US8010614B1 (en) 2007-11-01 2011-08-30 Bitdefender IPR Management Ltd. Systems and methods for generating signatures for electronic communication classification
US9063979B2 (en) 2007-11-01 2015-06-23 Ebay, Inc. Analyzing event streams of user sessions
US7983997B2 (en) 2007-11-02 2011-07-19 Florida Institute For Human And Machine Cognition, Inc. Interactive complex task teaching system that allows for natural language input, recognizes a user's intent, and automatically performs tasks in document object model (DOM) nodes
US8055296B1 (en) 2007-11-06 2011-11-08 Sprint Communications Company L.P. Head-up display communication system and method
JP4910991B2 (ja) 2007-11-08 2012-04-04 株式会社デンソー 駐車場案内システム
US8065152B2 (en) 2007-11-08 2011-11-22 Demand Media, Inc. Platform for enabling voice commands to resolve phoneme based domain name registrations
DE102008051756A1 (de) 2007-11-12 2009-05-14 Volkswagen Ag Multimodale Benutzerschnittstelle eines Fahrerassistenzsystems zur Eingabe und Präsentation von Informationen
US8112280B2 (en) 2007-11-19 2012-02-07 Sensory, Inc. Systems and methods of performing speech recognition with barge-in for use in a bluetooth system
US8620662B2 (en) 2007-11-20 2013-12-31 Apple Inc. Context-aware unit selection
US20150046537A1 (en) 2007-11-21 2015-02-12 Vdoqwest, Inc., A Delaware Corporation Retrieving video annotation metadata using a p2p network and copyright free indexes
US20110246471A1 (en) 2010-04-06 2011-10-06 Selim Shlomo Rakib Retrieving video annotation metadata using a p2p network
US8190596B2 (en) 2007-11-28 2012-05-29 International Business Machines Corporation Method for assembly of personalized enterprise information integrators over conjunctive queries
US8543622B2 (en) 2007-12-07 2013-09-24 Patrick Giblin Method and system for meta-tagging media content and distribution
US8140335B2 (en) 2007-12-11 2012-03-20 Voicebox Technologies, Inc. System and method for providing a natural language voice user interface in an integrated voice navigation services environment
US8331958B2 (en) 2007-12-13 2012-12-11 Garmin Switzerland Gmbh Automatically identifying location information in text data
KR101300839B1 (ko) 2007-12-18 2013-09-10 삼성전자주식회사 음성 검색어 확장 방법 및 시스템
WO2009078256A1 (ja) 2007-12-18 2009-06-25 Nec Corporation 発音変動規則抽出装置、発音変動規則抽出方法、および発音変動規則抽出用プログラム
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US8019604B2 (en) 2007-12-21 2011-09-13 Motorola Mobility, Inc. Method and apparatus for uniterm discovery and voice-to-voice search on mobile device
US8219407B1 (en) 2007-12-27 2012-07-10 Great Northern Research, LLC Method for processing the output of a speech recognizer
US8583416B2 (en) 2007-12-27 2013-11-12 Fluential, Llc Robust information extraction from utterances
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US7870133B2 (en) 2008-01-14 2011-01-11 Infosys Technologies Ltd. Method for semantic based storage and retrieval of information
US10176827B2 (en) 2008-01-15 2019-01-08 Verint Americas Inc. Active lab
ITPO20080002A1 (it) 2008-01-22 2009-07-23 Riccardo Vieri Sistema e metodo per la generazione di pubblicita' contestuale durante l'invio di sms, relativo dispositivo e interfaccia.
US20120284015A1 (en) 2008-01-28 2012-11-08 William Drewes Method for Increasing the Accuracy of Subject-Specific Statistical Machine Translation (SMT)
US8099289B2 (en) 2008-02-13 2012-01-17 Sensory, Inc. Voice interface and search for electronic devices including bluetooth headsets and remote systems
US20090210391A1 (en) 2008-02-14 2009-08-20 Hall Stephen G Method and system for automated search for, and retrieval and distribution of, information
US8595119B2 (en) 2008-02-15 2013-11-26 New York Mercantile Exchange, Inc. Symbolic language for trade matching
US8065143B2 (en) 2008-02-22 2011-11-22 Apple Inc. Providing text input using speech data and non-speech data
US8706474B2 (en) 2008-02-23 2014-04-22 Fair Isaac Corporation Translation of entity names based on source document publication date, and frequency and co-occurrence of the entity names
US8015144B2 (en) 2008-02-26 2011-09-06 Microsoft Corporation Learning transportation modes from raw GPS data
US8068604B2 (en) 2008-12-19 2011-11-29 Computer Product Introductions Corporation Method and system for event notifications
US9049255B2 (en) 2008-02-29 2015-06-02 Blackberry Limited Visual event notification on a handheld communications device
US8201109B2 (en) 2008-03-04 2012-06-12 Apple Inc. Methods and graphical user interfaces for editing on a portable multifunction device
US8205157B2 (en) 2008-03-04 2012-06-19 Apple Inc. Methods and graphical user interfaces for conducting searches on a portable multifunction device
US8255224B2 (en) 2008-03-07 2012-08-28 Google Inc. Voice recognition grammar selection based on context
US20090234655A1 (en) 2008-03-13 2009-09-17 Jason Kwon Mobile electronic device with active speech recognition
US20090235176A1 (en) 2008-03-14 2009-09-17 Madhavi Jayanthi Social interaction system for facilitating display of current location of friends and location of businesses of interest
US7958136B1 (en) 2008-03-18 2011-06-07 Google Inc. Systems and methods for identifying similar documents
US20110035434A1 (en) 2008-03-27 2011-02-10 Markport Limited Processing of messaging service attributes in communication systems
US7472061B1 (en) 2008-03-31 2008-12-30 International Business Machines Corporation Systems and methods for building a native language phoneme lexicon having native pronunciations of non-native words derived from non-native pronunciations
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US8140368B2 (en) 2008-04-07 2012-03-20 International Business Machines Corporation Method and system for routing a task to an employee based on physical and emotional state
US20110093272A1 (en) 2008-04-08 2011-04-21 Ntt Docomo, Inc Media process server apparatus and media process method therefor
KR20090107365A (ko) 2008-04-08 2009-10-13 엘지전자 주식회사 이동 단말기 및 그 메뉴 제어방법
US8285737B1 (en) 2008-04-10 2012-10-09 Google Inc. Selecting content for publication
US7889101B2 (en) 2008-04-14 2011-02-15 Alpine Electronics, Inc Method and apparatus for generating location based reminder message for navigation system
JP4656177B2 (ja) 2008-04-14 2011-03-23 トヨタ自動車株式会社 ナビゲーション装置、操作部表示方法
US8433778B1 (en) 2008-04-22 2013-04-30 Marvell International Ltd Device configuration
US8972432B2 (en) 2008-04-23 2015-03-03 Google Inc. Machine translation using information retrieval
US8121837B2 (en) 2008-04-24 2012-02-21 Nuance Communications, Inc. Adjusting a speech engine for a mobile computing device based on background noise
US8194827B2 (en) 2008-04-29 2012-06-05 International Business Machines Corporation Secure voice transaction method and system
US8254829B1 (en) 2008-05-09 2012-08-28 Sprint Communications Company L.P. Network media service with track delivery adapted to a user cadence
US8219115B1 (en) 2008-05-12 2012-07-10 Google Inc. Location based reminders
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20130275899A1 (en) 2010-01-18 2013-10-17 Apple Inc. Application Gateway for Providing Different User Interfaces for Limited Distraction and Non-Limited Distraction Contexts
US8516562B2 (en) 2008-05-13 2013-08-20 Veritrix, Inc. Multi-channel multi-factor authentication
US20140365895A1 (en) 2008-05-13 2014-12-11 Apple Inc. Device and method for generating user interfaces from a template
US20090288022A1 (en) 2008-05-15 2009-11-19 Sony Corporation Dynamically changing a user interface based on device location and/or date/time
US10203861B2 (en) 2008-05-21 2019-02-12 Please Don't Go, LLC. Messaging window overlay for a browser
US8589161B2 (en) 2008-05-27 2013-11-19 Voicebox Technologies, Inc. System and method for an integrated, multi-modal, multi-device natural language voice services environment
US9305548B2 (en) 2008-05-27 2016-04-05 Voicebox Technologies Corporation System and method for an integrated, multi-modal, multi-device natural language voice services environment
US20130100268A1 (en) 2008-05-27 2013-04-25 University Health Network Emergency detection and response system and method
US8082498B2 (en) 2008-05-27 2011-12-20 Appfolio, Inc. Systems and methods for automatic spell checking of dynamically generated web pages
US8464150B2 (en) 2008-06-07 2013-06-11 Apple Inc. Automatic language identification for dynamic text processing
DE602008005428D1 (de) 2008-06-11 2011-04-21 Exb Asset Man Gmbh Vorrichtung und Verfahren mit verbessertem Texteingabemechanismus
JP5093494B2 (ja) 2008-06-12 2012-12-12 カシオ計算機株式会社 ナビゲーション装置およびナビゲーションプログラム
US8452790B1 (en) 2008-06-13 2013-05-28 Ustringer LLC Method and apparatus for distributing content
US8140330B2 (en) 2008-06-13 2012-03-20 Robert Bosch Gmbh System and method for detecting repeated patterns in dialog systems
US8195460B2 (en) 2008-06-17 2012-06-05 Voicesense Ltd. Speaker characterization through speech analysis
US9510044B1 (en) 2008-06-18 2016-11-29 Gracenote, Inc. TV content segmentation, categorization and identification and time-aligned applications
DE102008028885A1 (de) 2008-06-18 2009-12-31 Epcos Ag Verfahren zur Abstimmung einer Resonanzfrequenz eines piezoelektrischen Bauelementes
GB2462800A (en) 2008-06-20 2010-02-24 New Voice Media Ltd Monitoring a conversation between an agent and a customer and performing real time analytics on the audio signal for determining future handling of the call
WO2009156978A1 (en) 2008-06-26 2009-12-30 Intuitive User Interfaces Ltd System and method for intuitive user interaction
US8300801B2 (en) 2008-06-26 2012-10-30 Centurylink Intellectual Property Llc System and method for telephone based noise cancellation
US8423288B2 (en) 2009-11-30 2013-04-16 Apple Inc. Dynamic alerts for calendar events
US8364481B2 (en) 2008-07-02 2013-01-29 Google Inc. Speech recognition with parallel recognition tasks
EP2311030A1 (en) 2008-07-03 2011-04-20 Mobiter Dicta Oy Method and device for converting speech
US20100005085A1 (en) 2008-07-03 2010-01-07 Oracle International Corporation Creating relationship maps from enterprise application system data
US20100017741A1 (en) 2008-07-16 2010-01-21 Nokia Corporation Start of an application from an idle state display mode of a mobile terminal
US8166019B1 (en) 2008-07-21 2012-04-24 Sprint Communications Company L.P. Providing suggested actions in response to textual communications
JP5791861B2 (ja) 2008-07-25 2015-10-07 シャープ株式会社 情報処理装置および情報処理方法
US8818816B2 (en) 2008-07-30 2014-08-26 Mitsubishi Electric Corporation Voice recognition device
US8001125B1 (en) 2008-07-30 2011-08-16 Intuit Inc. Method and apparatus for defining relationships between tags
US8386485B2 (en) 2008-07-31 2013-02-26 George Mason Intellectual Properties, Inc. Case-based framework for collaborative semantic search
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
JPWO2010018796A1 (ja) 2008-08-11 2012-01-26 旭化成株式会社 例外語辞書作成装置、例外語辞書作成方法及びそのプログラム、並びに、音声認識装置及び音声認識方法
US8221125B2 (en) 2008-08-14 2012-07-17 World View Time Inc. Electronic presentation of world time zones
US8326630B2 (en) 2008-08-18 2012-12-04 Microsoft Corporation Context based online advertising
US8805110B2 (en) 2008-08-19 2014-08-12 Digimarc Corporation Methods and systems for content processing
JP5459214B2 (ja) 2008-08-20 2014-04-02 日本電気株式会社 言語モデル作成装置、言語モデル作成方法、音声認識装置、音声認識方法、プログラム、および記録媒体
US20110144901A1 (en) 2008-08-29 2011-06-16 Zhanyong Wang Method for Playing Voice Guidance and Navigation Device Using the Same
US8768702B2 (en) 2008-09-05 2014-07-01 Apple Inc. Multi-tiered voice feedback in an electronic device
US8116749B2 (en) 2008-09-08 2012-02-14 Proctor Jr James Arthur Protocol for anonymous wireless communication
US20100063926A1 (en) 2008-09-09 2010-03-11 Damon Charles Hougland Payment application framework
US8898568B2 (en) 2008-09-09 2014-11-25 Apple Inc. Audio user interface
US8259082B2 (en) 2008-09-12 2012-09-04 At&T Intellectual Property I, L.P. Multimodal portable communication interface for accessing video content
US8929877B2 (en) 2008-09-12 2015-01-06 Digimarc Corporation Methods and systems for content processing
JP5213605B2 (ja) 2008-09-17 2013-06-19 シャープ株式会社 通信装置、情報提示装置、通信方法、プログラム、および記録媒体
US8775154B2 (en) 2008-09-18 2014-07-08 Xerox Corporation Query translation through dictionary adaptation
US8242884B2 (en) 2008-09-24 2012-08-14 Denso International America, Inc. Car finder by cell phone
US8396714B2 (en) 2008-09-29 2013-03-12 Apple Inc. Systems and methods for concatenation of words in text to speech synthesis
US8355919B2 (en) 2008-09-29 2013-01-15 Apple Inc. Systems and methods for text normalization for text to speech synthesis
US8352268B2 (en) 2008-09-29 2013-01-08 Apple Inc. Systems and methods for selective rate of speech and speech preferences for text to speech synthesis
CN104317262B (zh) 2008-09-29 2017-09-12 费希尔-罗斯蒙特系统公司 过程控制系统的元件的高效设计和配置
US8352272B2 (en) 2008-09-29 2013-01-08 Apple Inc. Systems and methods for text to speech synthesis
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US8539342B1 (en) 2008-10-16 2013-09-17 Adobe Systems Incorporated Read-order inference via content sorting
US8724829B2 (en) 2008-10-24 2014-05-13 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for coherence detection
US8644488B2 (en) 2008-10-27 2014-02-04 Nuance Communications, Inc. System and method for automatically generating adaptive interaction logs from customer interaction text
JP5412083B2 (ja) * 2008-10-31 2014-02-12 ソニーモバイルコミュニケーションズ, エービー 携帯端末装置、操作オブジェクトの表示方法、及び操作オブジェクトの表示プログラム
US8170966B1 (en) 2008-11-04 2012-05-01 Bitdefender IPR Management Ltd. Dynamic streaming message clustering for rapid spam-wave detection
EP2353108A4 (en) 2008-11-04 2018-01-03 Strossle International AB Method and system for analyzing text
US8122094B1 (en) 2008-11-05 2012-02-21 Kotab Dominic M Methods for performing an action relating to the scheduling of an event by performing one or more actions based on a response to a message
US8122353B2 (en) 2008-11-07 2012-02-21 Yahoo! Inc. Composing a message in an online textbox using a non-latin script
US20100205628A1 (en) 2009-02-12 2010-08-12 Davis Bruce L Media processing methods and arrangements
WO2010054373A2 (en) 2008-11-10 2010-05-14 Google Inc. Multisensory speech detection
US9202171B2 (en) 2008-11-11 2015-12-01 Digideal Corporation Virtual game assistant based on artificial intelligence
US8832319B2 (en) 2008-11-18 2014-09-09 Amazon Technologies, Inc. Synchronization of digital content
US8108214B2 (en) 2008-11-19 2012-01-31 Robert Bosch Gmbh System and method for recognizing proper names in dialog systems
JP2010122928A (ja) * 2008-11-20 2010-06-03 Toshiba Corp 携帯端末
US8296124B1 (en) 2008-11-21 2012-10-23 Google Inc. Method and apparatus for detecting incorrectly translated text in a document
JP2010128838A (ja) 2008-11-28 2010-06-10 Toyota Motor Corp 入力デバイス
US8140328B2 (en) 2008-12-01 2012-03-20 At&T Intellectual Property I, L.P. User intention based on N-best list of recognition hypotheses for utterances in a dialog
US8489599B2 (en) 2008-12-02 2013-07-16 Palo Alto Research Center Incorporated Context and activity-driven content delivery and interaction
US20100146012A1 (en) * 2008-12-04 2010-06-10 Microsoft Corporation Previewing search results for suggested refinement terms and vertical searches
US8054180B1 (en) 2008-12-08 2011-11-08 Amazon Technologies, Inc. Location aware reminders
EP2196989B1 (en) 2008-12-10 2012-06-27 Nuance Communications, Inc. Grammar and template-based speech recognition of spoken utterances
US20100153968A1 (en) 2008-12-11 2010-06-17 Christof Engel External rendering of clipboard data
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US8618958B2 (en) 2008-12-16 2013-12-31 Mitsubishi Electric Corporation Navigation device
US8918321B2 (en) 2012-04-13 2014-12-23 At&T Intellectual Property I, L.P. System and method for enhancing speech recognition accuracy
US8332205B2 (en) 2009-01-09 2012-12-11 Microsoft Corporation Mining transliterations for out-of-vocabulary query terms
US10088976B2 (en) 2009-01-15 2018-10-02 Em Acquisition Corp., Inc. Systems and methods for multiple voice document narration
WO2010084769A1 (ja) 2009-01-22 2010-07-29 パナソニック株式会社 補聴装置
US8635020B2 (en) 2009-01-23 2014-01-21 International Business Machines Corporation GPS location and favorite prediction based on in-vehicle meta-data
US8213911B2 (en) 2009-01-28 2012-07-03 Virtual Hold Technology Llc Mobile communication device for establishing automated call back
US8200489B1 (en) 2009-01-29 2012-06-12 The United States Of America As Represented By The Secretary Of The Navy Multi-resolution hidden markov model using class specific features
US8862252B2 (en) 2009-01-30 2014-10-14 Apple Inc. Audio user interface for displayless electronic device
US9070282B2 (en) 2009-01-30 2015-06-30 Altorr Corp. Smartphone control of electrical devices
US9183881B2 (en) 2009-02-02 2015-11-10 Porto Technology, Llc System and method for semantic trick play
US20110307491A1 (en) 2009-02-04 2011-12-15 Fisk Charles M Digital photo organizing and tagging method
US8254972B2 (en) 2009-02-13 2012-08-28 Sony Mobile Communications Ab Device and method for handling messages
US8428758B2 (en) 2009-02-16 2013-04-23 Apple Inc. Dynamic audio ducking
WO2010096193A2 (en) 2009-02-18 2010-08-26 Exbiblio B.V. Identifying a document by performing spectral analysis on the contents of the document
US8326637B2 (en) 2009-02-20 2012-12-04 Voicebox Technologies, Inc. System and method for processing multi-modal device interactions in a natural language voice services environment
WO2010099352A1 (en) 2009-02-25 2010-09-02 Miri Systems, Llc Payment system and method
KR101041039B1 (ko) 2009-02-27 2011-06-14 고려대학교 산학협력단 오디오 및 비디오 정보를 이용한 시공간 음성 구간 검출 방법 및 장치
US9171284B2 (en) 2009-03-02 2015-10-27 Microsoft Technology Licensing, Llc Techniques to restore communications sessions for applications having conversation and meeting environments
WO2010100977A1 (ja) 2009-03-03 2010-09-10 三菱電機株式会社 音声認識装置
US8380507B2 (en) 2009-03-09 2013-02-19 Apple Inc. Systems and methods for determining the language to use for speech generated by a text to speech engine
US8165321B2 (en) 2009-03-10 2012-04-24 Apple Inc. Intelligent clip mixing
WO2010105246A2 (en) 2009-03-12 2010-09-16 Exbiblio B.V. Accessing resources based on capturing information from a rendered document
WO2010105428A1 (en) 2009-03-19 2010-09-23 Google Inc. Input method editor
KR101078864B1 (ko) 2009-03-26 2011-11-02 한국과학기술원 질의/문서 주제 범주 변화 분석 시스템 및 그 방법과 이를 이용한 질의 확장 기반 정보 검색 시스템 및 그 방법
US8924156B2 (en) 2009-03-26 2014-12-30 Nokia Corporation Method, apparatus, computer program and user interface
US8537980B2 (en) 2009-03-27 2013-09-17 Verizon Patent And Licensing Inc. Conversation support
US9424246B2 (en) 2009-03-30 2016-08-23 Touchtype Ltd. System and method for inputting text into electronic devices
GB0917753D0 (en) 2009-10-09 2009-11-25 Touchtype Ltd System and method for inputting text into electronic devices
GB201016385D0 (en) 2010-09-29 2010-11-10 Touchtype Ltd System and method for inputting text into electronic devices
US9189472B2 (en) 2009-03-30 2015-11-17 Touchtype Limited System and method for inputting text into small screen devices
US10191654B2 (en) 2009-03-30 2019-01-29 Touchtype Limited System and method for inputting text into electronic devices
GB0905457D0 (en) 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
US8798255B2 (en) 2009-03-31 2014-08-05 Nice Systems Ltd Methods and apparatus for deep interaction analysis
US8166032B2 (en) 2009-04-09 2012-04-24 MarketChorus, Inc. System and method for sentiment-based text classification and relevancy ranking
JP4851556B2 (ja) * 2009-04-10 2012-01-11 株式会社エヌ・ティ・ティ・ドコモ 連携サーバ装置、アプリケーション連携判断システム、及び、アプリケーション連携判断方法
US8275736B2 (en) 2009-04-17 2012-09-25 International Business Machines Corporation Increasing knowledge sharing success rates using real time match making
US20110065456A1 (en) 2009-04-20 2011-03-17 Brennan Joseph P Cellular device deactivation system
US8660970B1 (en) 2009-04-23 2014-02-25 The Boeing Company Passive learning and autonomously interactive system for leveraging user knowledge in networked environments
US8798903B2 (en) 2009-04-24 2014-08-05 Alpine Electronics, Inc. Method and apparatus for detecting arrival at new city and producing information on new city
US8660924B2 (en) 2009-04-30 2014-02-25 Navera, Inc. Configurable interactive assistant
EP2426598B1 (en) 2009-04-30 2017-06-21 Samsung Electronics Co., Ltd. Apparatus and method for user intention inference using multimodal information
KR101032792B1 (ko) 2009-04-30 2011-05-06 주식회사 코오롱 에어백용 폴리에스테르 원단 및 그의 제조 방법
EP2428028A4 (en) 2009-05-08 2014-07-02 Obdedge Llc SYSTEMS, METHODS AND DEVICES FOR POLICY-BASED CONTROL AND MONITORING THE USE OF MOBILE DEVICES BY VEHICLE OPERATORS
WO2010131256A1 (en) 2009-05-13 2010-11-18 Rajesh Mehra A keyboard for linguistic scripts
US8498857B2 (en) 2009-05-19 2013-07-30 Tata Consultancy Services Limited System and method for rapid prototyping of existing speech recognition solutions in different languages
US8583511B2 (en) 2009-05-19 2013-11-12 Bradley Marshall Hendrickson Systems and methods for storing customer purchasing and preference data and enabling a customer to pre-register orders and events
US20150294377A1 (en) 2009-05-30 2015-10-15 Edmond K. Chow Trust network effect
US20120310652A1 (en) 2009-06-01 2012-12-06 O'sullivan Daniel Adaptive Human Computer Interface (AAHCI)
US8095119B2 (en) 2009-06-02 2012-01-10 Microsoft Corporation In-call contact information display
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10540976B2 (en) 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US8560313B2 (en) 2010-05-13 2013-10-15 General Motors Llc Transient noise rejection for speech recognition
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US20120327009A1 (en) 2009-06-07 2012-12-27 Apple Inc. Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface
US10408623B2 (en) * 2009-06-12 2019-09-10 Microsoft Technology Licensing, Llc Retracing steps
US20130219333A1 (en) 2009-06-12 2013-08-22 Adobe Systems Incorporated Extensible Framework for Facilitating Interaction with Devices
CN101923853B (zh) 2009-06-12 2013-01-23 华为技术有限公司 说话人识别方法、设备和系统
US8290777B1 (en) 2009-06-12 2012-10-16 Amazon Technologies, Inc. Synchronizing the playing and displaying of digital content
US8484027B1 (en) 2009-06-12 2013-07-09 Skyreader Media Inc. Method for live remote narration of a digital book
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US8700399B2 (en) 2009-07-06 2014-04-15 Sensory, Inc. Systems and methods for hands-free voice control and voice search
US20110002487A1 (en) 2009-07-06 2011-01-06 Apple Inc. Audio Channel Assignment for Audio Output in a Movable Device
US8943423B2 (en) 2009-07-07 2015-01-27 International Business Machines Corporation User interface indicators for changed user interface elements
KR101083540B1 (ko) 2009-07-08 2011-11-14 엔에이치엔(주) 통계적인 방법을 이용한 한자에 대한 자국어 발음열 변환 시스템 및 방법
US8344847B2 (en) 2009-07-09 2013-01-01 Medtronic Minimed, Inc. Coordination of control commands in a medical device system having at least one therapy delivery device and at least one wireless controller device
US9159151B2 (en) * 2009-07-13 2015-10-13 Microsoft Technology Licensing, Llc Bringing a visual representation to life via learned input from the user
KR101061443B1 (ko) 2009-07-13 2011-09-02 엘지전자 주식회사 전자 기기, 이동 단말기 및 이를 이용한 기능 수행 방법
US8892439B2 (en) 2009-07-15 2014-11-18 Microsoft Corporation Combination and federation of local and remote speech recognition
CN102483917B (zh) 2009-07-15 2016-03-16 谷歌公司 针对显示文本的命令
US9998552B1 (en) 2010-04-30 2018-06-12 Open Invention Network Llc Dynamic creation, data population, and communication establishment across various mediums
US20110016150A1 (en) 2009-07-20 2011-01-20 Engstroem Jimmy System and method for tagging multiple digital images
US20110016421A1 (en) 2009-07-20 2011-01-20 Microsoft Corporation Task oriented user interface platform
US8213962B2 (en) 2009-07-21 2012-07-03 Verizon Patent And Licensing Inc. Vehicle computer link to mobile phone
US7953679B2 (en) 2009-07-22 2011-05-31 Xerox Corporation Scalable indexing for layout based document retrieval and ranking
CA2761700C (en) 2009-07-24 2014-12-02 Research In Motion Limited Method and apparatus for a touch-sensitive display
US9489577B2 (en) 2009-07-27 2016-11-08 Cxense Asa Visual similarity for video content
US8239129B2 (en) 2009-07-27 2012-08-07 Robert Bosch Gmbh Method and system for improving speech recognition accuracy by use of geographic information
US9117448B2 (en) 2009-07-27 2015-08-25 Cisco Technology, Inc. Method and system for speech recognition using social networks
US20110029616A1 (en) 2009-07-29 2011-02-03 Guanming Wang Unified auto-reply to an email coming from unified messaging service
US8229488B2 (en) 2009-07-30 2012-07-24 Sony Ericsson Mobile Communications Ab Methods, apparatuses and computer programs for media content distribution
US8875219B2 (en) 2009-07-30 2014-10-28 Blackberry Limited Apparatus and method for controlled sharing of personal information
US9015818B2 (en) 2009-07-31 2015-04-21 Adobe Systems Incorporated Software application operational transfer
JP2011033874A (ja) 2009-08-03 2011-02-17 Alpine Electronics Inc 多言語音声認識装置及び多言語音声認識辞書作成方法
KR101608770B1 (ko) 2009-08-03 2016-04-04 엘지전자 주식회사 이동단말기 및 그 제어방법
US8340312B2 (en) 2009-08-04 2012-12-25 Apple Inc. Differential mode noise cancellation with active real-time control for microphone-speaker combinations used in two way audio communications
US8532574B2 (en) 2009-08-05 2013-09-10 Honda Motor Co., Ltd. Destination information sharing for the automobile environment
US8160877B1 (en) 2009-08-06 2012-04-17 Narus, Inc. Hierarchical real-time speaker recognition for biometric VoIP verification and targeting
US20110047072A1 (en) 2009-08-07 2011-02-24 Visa U.S.A. Inc. Systems and Methods for Propensity Analysis and Validation
US8233919B2 (en) 2009-08-09 2012-07-31 Hntb Holdings Ltd. Intelligently providing user-specific transportation-related information
JP5201599B2 (ja) 2009-08-11 2013-06-05 Necカシオモバイルコミュニケーションズ株式会社 端末装置、および、プログラム
US20110040707A1 (en) 2009-08-12 2011-02-17 Ford Global Technologies, Llc Intelligent music selection in vehicles
US8768313B2 (en) 2009-08-17 2014-07-01 Digimarc Corporation Methods and systems for image or audio recognition processing
US8626133B2 (en) 2009-08-19 2014-01-07 Cisco Technology, Inc. Matching a location of a contact with a task location
US8654952B2 (en) 2009-08-20 2014-02-18 T-Mobile Usa, Inc. Shareable applications on telecommunications devices
EP2341450A1 (en) 2009-08-21 2011-07-06 Mikko Kalervo Väänänen Method and means for data searching and language translation
US9277021B2 (en) 2009-08-21 2016-03-01 Avaya Inc. Sending a user associated telecommunication address
KR101496649B1 (ko) 2009-08-21 2015-03-02 삼성전자주식회사 복합 네트워크 망을 통한 외부 디바이스의 기능 공유 방법 및 그 장치
JP2011045005A (ja) 2009-08-24 2011-03-03 Fujitsu Toshiba Mobile Communications Ltd 携帯電話機
SG178344A1 (en) 2009-08-25 2012-03-29 Univ Nanyang Tech A method and system for reconstructing speech from an input signal comprising whispers
US20110054647A1 (en) 2009-08-26 2011-03-03 Nokia Corporation Network service for an audio interface unit
JP2011048671A (ja) 2009-08-27 2011-03-10 Kyocera Corp 入力装置および入力装置の制御方法
US8583638B2 (en) 2009-08-27 2013-11-12 Apple Inc. Adaptive mapping of search results
CN101996631B (zh) 2009-08-28 2014-12-03 国际商业机器公司 用于对齐文本的方法和装置
US20110238407A1 (en) 2009-08-31 2011-09-29 O3 Technologies, Llc Systems and methods for speech-to-speech translation
US8624851B2 (en) 2009-09-02 2014-01-07 Amazon Technologies, Inc. Touch-screen user interface
EP2473916A4 (en) 2009-09-02 2013-07-10 Stanford Res Inst Int METHOD AND DEVICE FOR USING A HUMAN FEEDBACK IN AN INTELLIGENT AUTOMATED ASSISTANT
US8451238B2 (en) 2009-09-02 2013-05-28 Amazon Technologies, Inc. Touch-screen user interface
US8675084B2 (en) 2009-09-04 2014-03-18 Apple Inc. Systems and methods for remote camera control
TW201110108A (en) 2009-09-04 2011-03-16 Chunghwa Telecom Co Ltd Voice noise elimination method for microphone array
US9031834B2 (en) 2009-09-04 2015-05-12 Nuance Communications, Inc. Speech enhancement techniques on the power spectrum
US20120265535A1 (en) 2009-09-07 2012-10-18 Donald Ray Bryant-Rich Personal voice operated reminder system
US8560300B2 (en) 2009-09-09 2013-10-15 International Business Machines Corporation Error correction using fact repositories
US20110060812A1 (en) 2009-09-10 2011-03-10 Level 3 Communications, Llc Cache server with extensible programming framework
US8321527B2 (en) 2009-09-10 2012-11-27 Tribal Brands System and method for tracking user location and associated activity and responsively providing mobile device updates
US8788267B2 (en) 2009-09-10 2014-07-22 Mitsubishi Electric Research Laboratories, Inc. Multi-purpose contextual control
WO2011032060A1 (en) 2009-09-11 2011-03-17 Telenav, Inc. Location based system with contextual contact manager mechanism and method of operation thereof
US20110066468A1 (en) 2009-09-11 2011-03-17 Internationl Business Machines Corporation Dynamic event planning through location awareness
US9521453B2 (en) 2009-09-14 2016-12-13 Tivo Inc. Multifunction multimedia device
US10587833B2 (en) 2009-09-16 2020-03-10 Disney Enterprises, Inc. System and method for automated network search and companion display of result relating to audio-video metadata
KR101631978B1 (ko) 2009-09-16 2016-06-20 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
US9015148B2 (en) 2009-09-21 2015-04-21 Microsoft Corporation Suggesting related search queries during web browsing
US8972878B2 (en) 2009-09-21 2015-03-03 Avaya Inc. Screen icon manipulation by context and frequency of Use
CA2715362A1 (en) 2009-09-22 2011-03-22 Thwapr, Inc. Interoperable mobile media sharing
WO2011037587A1 (en) 2009-09-28 2011-03-31 Nuance Communications, Inc. Downsampling schemes in a hierarchical neural network structure for phoneme recognition
US8768308B2 (en) 2009-09-29 2014-07-01 Deutsche Telekom Ag Apparatus and method for creating and managing personal schedules via context-sensing and actuation
US9111538B2 (en) 2009-09-30 2015-08-18 T-Mobile Usa, Inc. Genius button secondary commands
US8995625B2 (en) 2009-09-30 2015-03-31 T-Mobile Usa, Inc. Unified interface and routing module for handling audio input
KR20110036385A (ko) 2009-10-01 2011-04-07 삼성전자주식회사 사용자 의도 분석 장치 및 방법
TW201113741A (en) 2009-10-01 2011-04-16 Htc Corp Lock-state switching method, electronic apparatus and computer program product
US20110083079A1 (en) 2009-10-02 2011-04-07 International Business Machines Corporation Apparatus, system, and method for improved type-ahead functionality in a type-ahead field based on activity of a user within a user interface
US9338274B2 (en) 2009-10-02 2016-05-10 Blackberry Limited Method of interacting with electronic devices in a locked state and handheld electronic device configured to permit interaction when in a locked state
US8892669B2 (en) 2009-10-05 2014-11-18 Lenovo Innovations Limited (Hong Kong) Communication terminal having email transmission functionality, method for transmitting email, and computer-readable recording medium
JP5473520B2 (ja) 2009-10-06 2014-04-16 キヤノン株式会社 入力装置及びその制御方法
US20110087685A1 (en) 2009-10-09 2011-04-14 Microsoft Corporation Location-based service middleware
US8335689B2 (en) 2009-10-14 2012-12-18 Cogi, Inc. Method and system for efficient management of speech transcribers
US8611876B2 (en) 2009-10-15 2013-12-17 Larry Miller Configurable phone with interactive voice response engine
US8510103B2 (en) 2009-10-15 2013-08-13 Paul Angott System and method for voice recognition
EP2488963A1 (en) 2009-10-15 2012-08-22 Rogers Communications Inc. System and method for phrase identification
US8255217B2 (en) 2009-10-16 2012-08-28 At&T Intellectual Property I, Lp Systems and methods for creating and using geo-centric language models
US8451112B2 (en) 2009-10-19 2013-05-28 Qualcomm Incorporated Methods and apparatus for estimating departure time based on known calendar events
US8332748B1 (en) 2009-10-22 2012-12-11 Google Inc. Multi-directional auto-complete menu
US8554537B2 (en) 2009-10-23 2013-10-08 Samsung Electronics Co., Ltd Method and device for transliteration
US8326624B2 (en) 2009-10-26 2012-12-04 International Business Machines Corporation Detecting and communicating biometrics of recorded voice during transcription process
CA2779289A1 (en) 2009-10-28 2011-05-19 Google Inc. Computer-to-computer communication
US20110099507A1 (en) 2009-10-28 2011-04-28 Google Inc. Displaying a collection of interactive elements that trigger actions directed to an item
US9197736B2 (en) 2009-12-31 2015-11-24 Digimarc Corporation Intuitive computing methods and systems
US8386574B2 (en) 2009-10-29 2013-02-26 Xerox Corporation Multi-modality classification for one-class classification in social networks
US20110106536A1 (en) 2009-10-29 2011-05-05 Rovi Technologies Corporation Systems and methods for simulating dialog between a user and media equipment device
US9247421B2 (en) 2009-10-30 2016-01-26 Samsung Electronics Co., Ltd Mobile device, content delivery apparatus, content providing apparatus and control method thereof
US8315617B2 (en) 2009-10-31 2012-11-20 Btpatent Llc Controlling mobile device functions
US8832205B2 (en) 2009-11-02 2014-09-09 Lextine Software, Llc System and method for extracting calendar events from free-form email
US8279052B2 (en) 2009-11-04 2012-10-02 Immersion Corporation Systems and methods for haptic confirmation of commands
US20120137367A1 (en) 2009-11-06 2012-05-31 Cataphora, Inc. Continuous anomaly detection based on behavior modeling and heterogeneous information analysis
WO2011055410A1 (ja) 2009-11-06 2011-05-12 株式会社 東芝 音声認識装置
CN102056026B (zh) 2009-11-06 2013-04-03 中国移动通信集团设计院有限公司 音视频同步检测方法及其系统、语音检测方法及其系统
US9171541B2 (en) 2009-11-10 2015-10-27 Voicebox Technologies Corporation System and method for hybrid processing in a natural language voice services environment
US20110111724A1 (en) 2009-11-10 2011-05-12 David Baptiste Method and apparatus for combating distracted driving
US8358747B2 (en) 2009-11-10 2013-01-22 International Business Machines Corporation Real time automatic caller speech profiling
US8321209B2 (en) 2009-11-10 2012-11-27 Research In Motion Limited System and method for low overhead frequency domain voice authentication
US9502025B2 (en) 2009-11-10 2016-11-22 Voicebox Technologies Corporation System and method for providing a natural language content dedication service
US8527859B2 (en) 2009-11-10 2013-09-03 Dulcetta, Inc. Dynamic audio playback of soundtracks for electronic visual works
US8732180B2 (en) 2009-11-12 2014-05-20 Apple Inc. Recommending media items
US8682649B2 (en) 2009-11-12 2014-03-25 Apple Inc. Sentiment prediction from textual data
CN102860039B (zh) 2009-11-12 2016-10-19 罗伯特·亨利·弗莱特 免提电话和/或麦克风阵列以及使用它们的方法和系统
US20130166303A1 (en) 2009-11-13 2013-06-27 Adobe Systems Incorporated Accessing media data using metadata repository
US8712759B2 (en) 2009-11-13 2014-04-29 Clausal Computing Oy Specializing disambiguation of a natural language expression
US8989086B2 (en) 2009-11-13 2015-03-24 Samsung Electronics Co., Ltd. Methods and apparatus to support interference management in multi-tier wireless communication systems
KR20110052997A (ko) 2009-11-13 2011-05-19 삼성전자주식회사 디스플레이 장치와 클라이언트 단말 및 이의 제어 방법
KR20110052863A (ko) 2009-11-13 2011-05-19 삼성전자주식회사 모바일 기기 및 그 제어 신호 생성 방법
TWI391915B (zh) 2009-11-17 2013-04-01 Inst Information Industry 語音變異模型建立裝置、方法及應用該裝置之語音辨識系統和方法
KR101595029B1 (ko) 2009-11-18 2016-02-17 엘지전자 주식회사 이동단말기 및 그 제어방법
US8358752B2 (en) 2009-11-19 2013-01-22 At&T Mobility Ii Llc User profile based speech to text conversion for visual voice mail
US8630971B2 (en) 2009-11-20 2014-01-14 Indian Institute Of Science System and method of using Multi Pattern Viterbi Algorithm for joint decoding of multiple patterns
US8358749B2 (en) 2009-11-21 2013-01-22 At&T Intellectual Property I, L.P. System and method to search a media content database based on voice input data
KR101960835B1 (ko) 2009-11-24 2019-03-21 삼성전자주식회사 대화 로봇을 이용한 일정 관리 시스템 및 그 방법
US20110153330A1 (en) 2009-11-27 2011-06-23 i-SCROLL System and method for rendering text synchronized audio
US8731901B2 (en) 2009-12-02 2014-05-20 Content Savvy, Inc. Context aware back-transliteration and translation of names and common phrases using web resources
US8396888B2 (en) 2009-12-04 2013-03-12 Google Inc. Location-based searching using a search area that corresponds to a geographical location of a computing device
CN102741842A (zh) 2009-12-04 2012-10-17 Tivo有限公司 多功能多媒体设备
US20110137664A1 (en) 2009-12-09 2011-06-09 International Business Machines Corporation Providing Schedule Related Information to External Entities
US8737975B2 (en) 2009-12-11 2014-05-27 At&T Mobility Ii Llc Audio-based text messaging
US8543917B2 (en) 2009-12-11 2013-09-24 Nokia Corporation Method and apparatus for presenting a first-person world view of content
US8224300B2 (en) 2009-12-11 2012-07-17 Alpine Electronics, Inc. Method and apparatus to enhance navigation user experience for a smart phone device
KR101622111B1 (ko) 2009-12-11 2016-05-18 삼성전자 주식회사 대화 시스템 및 그의 대화 방법
US8812990B2 (en) 2009-12-11 2014-08-19 Nokia Corporation Method and apparatus for presenting a first person world view of content
US20110144857A1 (en) 2009-12-14 2011-06-16 Theodore Charles Wingrove Anticipatory and adaptive automobile hmi
US9766089B2 (en) 2009-12-14 2017-09-19 Nokia Technologies Oy Method and apparatus for correlating and navigating between a live image and a prerecorded panoramic image
US8892443B2 (en) 2009-12-15 2014-11-18 At&T Intellectual Property I, L.P. System and method for combining geographic metadata in automatic speech recognition language and acoustic models
KR101211796B1 (ko) 2009-12-16 2012-12-13 포항공과대학교 산학협력단 외국어 학습 장치 및 그 제공 방법
US8922485B1 (en) 2009-12-18 2014-12-30 Google Inc. Behavioral recognition on mobile devices
US8341037B2 (en) 2009-12-18 2012-12-25 Apple Inc. Mixed source media playback
US8385982B2 (en) 2009-12-21 2013-02-26 At&T Intellectual Property I, L.P. Controlling use of a communications device in accordance with motion of the device
US9100809B2 (en) 2009-12-21 2015-08-04 Julia Olincy Olincy Automatic response option mobile system for responding to incoming texts or calls or both
US20110154193A1 (en) 2009-12-21 2011-06-23 Nokia Corporation Method and Apparatus for Text Input
US9222798B2 (en) 2009-12-22 2015-12-29 Modena Enterprises, Llc Systems and methods for identifying an activity of a user based on a chronological order of detected movements of a computing device
US8805711B2 (en) 2009-12-22 2014-08-12 International Business Machines Corporation Two-layer data architecture for reservation management systems
CN101763341B (zh) * 2009-12-23 2014-10-22 宇龙计算机通信科技(深圳)有限公司 一种文本协同方法及系统
KR20110072847A (ko) 2009-12-23 2011-06-29 삼성전자주식회사 열려진 사용자 의도 처리를 위한 대화관리 시스템 및 방법
EP3091535B1 (en) 2009-12-23 2023-10-11 Google LLC Multi-modal input on an electronic device
US20110161309A1 (en) 2009-12-29 2011-06-30 Lx1 Technology Limited Method Of Sorting The Result Set Of A Search Engine
US8988356B2 (en) 2009-12-31 2015-03-24 Google Inc. Touch sensor and touchscreen user input combination
US8479107B2 (en) 2009-12-31 2013-07-02 Nokia Corporation Method and apparatus for fluid graphical user interface
US20110166862A1 (en) 2010-01-04 2011-07-07 Eyal Eshed System and method for variable automated response to remote verbal input at a mobile device
US8494852B2 (en) 2010-01-05 2013-07-23 Google Inc. Word-level correction of speech input
US8600743B2 (en) 2010-01-06 2013-12-03 Apple Inc. Noise profile determination for voice-related feature
US20110167350A1 (en) 2010-01-06 2011-07-07 Apple Inc. Assist Features For Content Display Device
WO2011082521A1 (en) 2010-01-06 2011-07-14 Zoran Corporation Method and apparatus for voice controlled operation of a media player
US20110173537A1 (en) 2010-01-11 2011-07-14 Everspeech, Inc. Integrated data processing and transcription service
US8311838B2 (en) 2010-01-13 2012-11-13 Apple Inc. Devices and methods for identifying a prompt corresponding to a voice input in a sequence of prompts
US8381107B2 (en) 2010-01-13 2013-02-19 Apple Inc. Adaptive audio feedback system and method
US8334842B2 (en) 2010-01-15 2012-12-18 Microsoft Corporation Recognizing user intent in motion capture system
US20110179372A1 (en) 2010-01-15 2011-07-21 Bradford Allen Moore Automatic Keyboard Layout Determination
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US20110179002A1 (en) 2010-01-19 2011-07-21 Dell Products L.P. System and Method for a Vector-Space Search Engine
US8417575B2 (en) 2010-01-19 2013-04-09 Apple Inc. On-device offline purchases using credits
US8301121B2 (en) 2010-01-22 2012-10-30 Sony Ericsson Mobile Communications Ab Regulating alerts generated by communication terminals responsive to sensed movement
US8626511B2 (en) 2010-01-22 2014-01-07 Google Inc. Multi-dimensional disambiguation of voice commands
US20110184736A1 (en) 2010-01-26 2011-07-28 Benjamin Slotznick Automated method of recognizing inputted information items and selecting information items
US20110184768A1 (en) 2010-01-27 2011-07-28 Norton Kenneth S Automatically determine suggested meeting locations based on previously booked calendar events
JP5633042B2 (ja) 2010-01-28 2014-12-03 本田技研工業株式会社 音声認識装置、音声認識方法、及び音声認識ロボット
US8406745B1 (en) 2010-01-28 2013-03-26 Sprint Communications Company L.P. Synchronization of voice mail greeting and email auto-reply by a wireless communication device
US20120330662A1 (en) 2010-01-29 2012-12-27 Nec Corporation Input supporting system, method and program
CA2787390A1 (en) 2010-02-01 2011-08-04 Ginger Software, Inc. Automatic context sensitive language correction using an internet corpus particularly for small keyboard devices
EP2531969A4 (en) 2010-02-01 2013-12-04 Jumptap Inc INTEGRATED ADVERTISING SYSTEM
US20110191681A1 (en) 2010-02-02 2011-08-04 Dean Stark Systems and Methods for Human Intelligence Personal Assistance
US8600967B2 (en) 2010-02-03 2013-12-03 Apple Inc. Automatic organization of browsing histories
US8687777B1 (en) 2010-02-03 2014-04-01 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US8886541B2 (en) 2010-02-04 2014-11-11 Sony Corporation Remote controller with position actuatated voice transmission
US8645287B2 (en) 2010-02-04 2014-02-04 Microsoft Corporation Image tagging based upon cross domain context
US8179370B1 (en) 2010-02-09 2012-05-15 Google Inc. Proximity based keystroke resolution
US8751218B2 (en) 2010-02-09 2014-06-10 Siemens Aktiengesellschaft Indexing content at semantic level
US9413869B2 (en) 2010-02-10 2016-08-09 Qualcomm Incorporated Mobile device having plurality of input modes
US8812056B2 (en) 2010-02-12 2014-08-19 Christopher D. Higginbotham Voice-based command driven computer implemented method
US8898219B2 (en) 2010-02-12 2014-11-25 Avaya Inc. Context sensitive, cloud-based telephony
US8402018B2 (en) 2010-02-12 2013-03-19 Korea Advanced Institute Of Science And Technology Semantic search system using semantic ranking scheme
US8782556B2 (en) 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US20120297341A1 (en) 2010-02-16 2012-11-22 Screenovate Technologies Ltd. Modified Operating Systems Allowing Mobile Devices To Accommodate IO Devices More Convenient Than Their Own Inherent IO Devices And Methods For Generating Such Systems
US9965165B2 (en) 2010-02-19 2018-05-08 Microsoft Technology Licensing, Llc Multi-finger gestures
WO2011105996A1 (en) 2010-02-23 2011-09-01 Hewlett-Packard Development Company, L.P. Skipping through electronic content on an electronic device
US9665344B2 (en) 2010-02-24 2017-05-30 GM Global Technology Operations LLC Multi-modal input system for a voice-based menu and content navigation service
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US9710556B2 (en) 2010-03-01 2017-07-18 Vcvc Iii Llc Content recommendation based on collections of entities
US20110218855A1 (en) 2010-03-03 2011-09-08 Platformation, Inc. Offering Promotions Based on Query Analysis
US20120066303A1 (en) 2010-03-03 2012-03-15 Waldeck Technology, Llc Synchronized group location updates
US8502837B2 (en) 2010-03-04 2013-08-06 Research In Motion Limited System and method for activating components on an electronic device using orientation data
US8903847B2 (en) 2010-03-05 2014-12-02 International Business Machines Corporation Digital media voice tags in social networks
US8948515B2 (en) 2010-03-08 2015-02-03 Sightera Technologies Ltd. Method and system for classifying one or more images
KR101477530B1 (ko) 2010-03-12 2014-12-30 뉘앙스 커뮤니케이션즈, 인코포레이티드 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템
US8521513B2 (en) 2010-03-12 2013-08-27 Microsoft Corporation Localization for interactive voice response systems
US20110228913A1 (en) 2010-03-16 2011-09-22 Telcordia Technologies, Inc. Automatic extraction of information from ongoing voice communication system and methods
US8374864B2 (en) 2010-03-17 2013-02-12 Cisco Technology, Inc. Correlation of transcribed text with corresponding audio
US20110231218A1 (en) 2010-03-18 2011-09-22 Tovar Tom C Systems and Methods for Providing Reminders for a Task List
WO2011116309A1 (en) 2010-03-19 2011-09-22 Digimarc Corporation Intuitive computing methods and systems
US20110231189A1 (en) 2010-03-19 2011-09-22 Nuance Communications, Inc. Methods and apparatus for extracting alternate media titles to facilitate speech recognition
US9323756B2 (en) 2010-03-22 2016-04-26 Lenovo (Singapore) Pte. Ltd. Audio book and e-book synchronization
US8554280B2 (en) 2010-03-23 2013-10-08 Ebay Inc. Free-form entries during payment processes
US20110239111A1 (en) 2010-03-24 2011-09-29 Avaya Inc. Spell checker interface
US20110238676A1 (en) 2010-03-25 2011-09-29 Palm, Inc. System and method for data capture, storage, and retrieval
US9628831B2 (en) 2010-03-25 2017-04-18 Whatsapp, Inc. Multimedia transcoding method and system for mobile devices
US8428759B2 (en) 2010-03-26 2013-04-23 Google Inc. Predictive pre-recording of audio for voice input
WO2011119168A1 (en) 2010-03-26 2011-09-29 Nuance Communications, Inc. Context based voice activity detection sensitivity
US20110238412A1 (en) 2010-03-26 2011-09-29 Antoine Ezzat Method for Constructing Pronunciation Dictionaries
US9378202B2 (en) 2010-03-26 2016-06-28 Virtuoz Sa Semantic clustering
EP2553557A4 (en) 2010-03-31 2014-01-22 Hewlett Packard Development Co CONTEXTIC USER INTERFACE
US8296380B1 (en) 2010-04-01 2012-10-23 Kel & Partners LLC Social media based messaging systems and methods
US20110242007A1 (en) 2010-04-01 2011-10-06 Gray Theodore W E-Book with User-Manipulatable Graphical Objects
US8930176B2 (en) 2010-04-01 2015-01-06 Microsoft Corporation Interactive multilingual word-alignment techniques
BR112012025683A2 (pt) 2010-04-07 2016-07-05 Max Value Solutions Intl Llc método e sistema para serviços de guia de pronúncia de nomes
US9929982B2 (en) 2010-04-08 2018-03-27 Microsoft Technology Licensing, Llc Designating automated agents as friends in a social network service
US8810684B2 (en) 2010-04-09 2014-08-19 Apple Inc. Tagging images in a mobile communications device using a contacts list
KR101369810B1 (ko) 2010-04-09 2014-03-05 이초강 로봇을 위한 경험적 상황인식 방법을 실행하는 프로그램을 기록한 컴퓨터 판독가능한 기록 매체.
CN102214187B (zh) 2010-04-12 2017-03-01 阿里巴巴集团控股有限公司 复合事件处理方法及装置
US9086735B2 (en) 2010-04-12 2015-07-21 Google Inc. Extension framework for input method editor
JP5315289B2 (ja) 2010-04-12 2013-10-16 トヨタ自動車株式会社 オペレーティングシステム及びオペレーティング方法
US8140567B2 (en) 2010-04-13 2012-03-20 Microsoft Corporation Measuring entity extraction complexity
US8265928B2 (en) 2010-04-14 2012-09-11 Google Inc. Geotagged environmental audio for enhanced speech recognition accuracy
US8756233B2 (en) 2010-04-16 2014-06-17 Video Semantics Semantic segmentation and tagging engine
US8595014B2 (en) 2010-04-19 2013-11-26 Qualcomm Incorporated Providing audible navigation system direction updates during predetermined time windows so as to minimize impact on conversations
US20130096911A1 (en) 2010-04-21 2013-04-18 Universite Catholique De Louvain Normalisation of noisy typewritten texts
US20110260829A1 (en) 2010-04-21 2011-10-27 Research In Motion Limited Method of providing security on a portable electronic device having a touch-sensitive display
WO2011133543A1 (en) 2010-04-21 2011-10-27 Proteus Biomedical, Inc. Diagnostic system and method
US20110264495A1 (en) 2010-04-22 2011-10-27 Apple Inc. Aggregation of tagged media item information
WO2011133195A1 (en) 2010-04-22 2011-10-27 Zipit Wireless, Inc. System and method for administration and operation of one or more mobile electronic communications devices
US20110264530A1 (en) 2010-04-23 2011-10-27 Bryan Santangelo Apparatus and methods for dynamic secondary content and data insertion and delivery
US20110264999A1 (en) 2010-04-23 2011-10-27 Research In Motion Limited Electronic device including touch-sensitive input device and method of controlling same
US8874432B2 (en) 2010-04-28 2014-10-28 Nec Laboratories America, Inc. Systems and methods for semi-supervised relationship extraction
US8452037B2 (en) 2010-05-05 2013-05-28 Apple Inc. Speaker clip
US8380504B1 (en) 2010-05-06 2013-02-19 Sprint Communications Company L.P. Generation of voice profiles
US8756571B2 (en) 2010-05-07 2014-06-17 Hewlett-Packard Development Company, L.P. Natural language text instructions
US8938436B2 (en) 2010-05-10 2015-01-20 Verizon Patent And Licensing Inc. System for and method of providing reusable software service information based on natural language queries
JP5595112B2 (ja) 2010-05-11 2014-09-24 本田技研工業株式会社 ロボット
JP2011238022A (ja) 2010-05-11 2011-11-24 Panasonic Corp 端末、コンテンツの利用の把握方法およびコンテンツの利用システム
US20110279368A1 (en) 2010-05-12 2011-11-17 Microsoft Corporation Inferring user intent to engage a motion capture system
US20110283189A1 (en) 2010-05-12 2011-11-17 Rovi Technologies Corporation Systems and methods for adjusting media guide interaction modes
US9634855B2 (en) 2010-05-13 2017-04-25 Alexander Poltorak Electronic personal interactive device that determines topics of interest using a conversational agent
US9628579B2 (en) 2010-05-13 2017-04-18 Futurewei Technologies, Inc. System, apparatus for content delivery for internet traffic and methods thereof
US9015139B2 (en) 2010-05-14 2015-04-21 Rovi Guides, Inc. Systems and methods for performing a search based on a media content snapshot image
US8392186B2 (en) 2010-05-18 2013-03-05 K-Nfb Reading Technology, Inc. Audio synchronization for document narration with user-selected playback
US8694313B2 (en) 2010-05-19 2014-04-08 Google Inc. Disambiguation of contact information using historical data
WO2011146276A2 (en) 2010-05-19 2011-11-24 Google Inc. Television related searching
US8522283B2 (en) 2010-05-20 2013-08-27 Google Inc. Television remote control data transfer
US9552355B2 (en) 2010-05-20 2017-01-24 Xerox Corporation Dynamic bi-phrases for statistical machine translation
US20110288917A1 (en) 2010-05-21 2011-11-24 James Wanek Systems and methods for providing mobile targeted advertisements
US9236047B2 (en) 2010-05-21 2016-01-12 Microsoft Technology Licensing, Llc Voice stream augmented note taking
WO2011143827A1 (en) 2010-05-21 2011-11-24 Google Inc. Input method editor
US8606579B2 (en) 2010-05-24 2013-12-10 Microsoft Corporation Voice print identification for identifying speakers
JP2011250027A (ja) 2010-05-25 2011-12-08 Panasonic Electric Works Co Ltd リモートコントロール機器及び情報通信システム
US9569549B1 (en) 2010-05-25 2017-02-14 Amazon Technologies, Inc. Location based recommendation and tagging of media content items
US8468012B2 (en) 2010-05-26 2013-06-18 Google Inc. Acoustic model adaptation using geographic information
JP2013533996A (ja) 2010-05-31 2013-08-29 バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド 英文と別の文字の混在入力に用いられる方法と装置
EP2393046A1 (en) 2010-06-02 2011-12-07 Research In Motion Limited Method for assisted message generation
EP2393056A1 (en) 2010-06-02 2011-12-07 Layar B.V. Acquiring, ranking and displaying points of interest for use in an augmented reality service provisioning system and graphical user interface for displaying such ranked points of interests
US8639516B2 (en) 2010-06-04 2014-01-28 Apple Inc. User-specific noise suppression for voice quality improvements
US8707195B2 (en) 2010-06-07 2014-04-22 Apple Inc. Devices, methods, and graphical user interfaces for accessibility via a touch-sensitive surface
US10204625B2 (en) 2010-06-07 2019-02-12 Affectiva, Inc. Audio analysis learning using video data
EP2397972B1 (en) 2010-06-08 2015-01-07 Vodafone Holding GmbH Smart card with microphone
US8954425B2 (en) 2010-06-08 2015-02-10 Microsoft Corporation Snippet extraction and ranking
US8458115B2 (en) 2010-06-08 2013-06-04 Microsoft Corporation Mining topic-related aspects from user generated content
US20110306426A1 (en) 2010-06-10 2011-12-15 Microsoft Corporation Activity Participation Based On User Intent
US8874129B2 (en) * 2010-06-10 2014-10-28 Qualcomm Incorporated Pre-fetching information based on gesture and/or location
US20110307810A1 (en) 2010-06-11 2011-12-15 Isreal Hilerio List integration
US9529918B2 (en) 2010-06-11 2016-12-27 Doat Media Ltd. System and methods thereof for downloading applications via a communication network
US8234111B2 (en) 2010-06-14 2012-07-31 Google Inc. Speech and noise models for speech recognition
US8560610B2 (en) 2010-06-16 2013-10-15 Brighttag Inc. Unified collection and distribution of data
US20120136572A1 (en) 2010-06-17 2012-05-31 Norton Kenneth S Distance and Location-Aware Reminders in a Calendar System
US20110314003A1 (en) 2010-06-17 2011-12-22 Microsoft Corporation Template concatenation for capturing multiple concepts in a voice query
US9443071B2 (en) 2010-06-18 2016-09-13 At&T Intellectual Property I, L.P. Proximity based device security
WO2011160140A1 (en) 2010-06-18 2011-12-22 Susan Bennett System and method of semantic based searching
US9009592B2 (en) 2010-06-22 2015-04-14 Microsoft Technology Licensing, Llc Population of lists and tasks from captured voice and audio content
EP2400373A1 (en) 2010-06-22 2011-12-28 Vodafone Holding GmbH Inputting symbols into an electronic device having a touch-screen
US20110313803A1 (en) 2010-06-22 2011-12-22 Microsoft Corporation Social Task Lists
US8375320B2 (en) 2010-06-22 2013-02-12 Microsoft Corporation Context-based task generation
US8581844B2 (en) 2010-06-23 2013-11-12 Google Inc. Switching between a first operational mode and a second operational mode using a natural motion gesture
US8655901B1 (en) 2010-06-23 2014-02-18 Google Inc. Translation-based query pattern mining
EP2586026B1 (en) 2010-06-24 2016-11-16 Honda Motor Co., Ltd. Communication system and method between an on-vehicle voice recognition system and an off-vehicle voice recognition system
US8812299B1 (en) 2010-06-24 2014-08-19 Nuance Communications, Inc. Class-based language model and use
US11068657B2 (en) 2010-06-28 2021-07-20 Skyscanner Limited Natural language question answering system and method based on deep semantics
US8411874B2 (en) 2010-06-30 2013-04-02 Google Inc. Removing noise from audio
JP5323770B2 (ja) 2010-06-30 2013-10-23 日本放送協会 ユーザ指示取得装置、ユーザ指示取得プログラムおよびテレビ受像機
US8250071B1 (en) 2010-06-30 2012-08-21 Amazon Technologies, Inc. Disambiguation of term meaning
EP2402867B1 (en) 2010-07-02 2018-08-22 Accenture Global Services Limited A computer-implemented method, a computer program product and a computer system for image processing
US20120005602A1 (en) 2010-07-02 2012-01-05 Nokia Corporation Methods and apparatuses for facilitating task switching
US8885978B2 (en) 2010-07-05 2014-11-11 Apple Inc. Operating a device to capture high dynamic range images
US20120010886A1 (en) 2010-07-06 2012-01-12 Javad Razavilar Language Identification
US8848882B2 (en) 2010-07-07 2014-09-30 Verizon Patent And Licensing Inc. System for and method of measuring caller interactions during a call session
US8249556B2 (en) 2010-07-13 2012-08-21 Google Inc. Securing a mobile computing device
JP5548542B2 (ja) 2010-07-13 2014-07-16 富士通テン株式会社 携帯端末装置および駐車位置案内プログラム
US8260247B2 (en) 2010-07-21 2012-09-04 Research In Motion Limited Portable electronic device and method of operation
US9104670B2 (en) 2010-07-21 2015-08-11 Apple Inc. Customized search or acquisition of digital media assets
US9786159B2 (en) 2010-07-23 2017-10-10 Tivo Solutions Inc. Multi-function remote control device
DK2596647T3 (en) 2010-07-23 2016-02-15 Sonova Ag Hearing system and method for operating a hearing system
US8528072B2 (en) 2010-07-23 2013-09-03 Apple Inc. Method, apparatus and system for access mode control of a device
US8463592B2 (en) 2010-07-27 2013-06-11 International Business Machines Corporation Mode supporting multiple language input for entering text
CN102340590A (zh) 2010-07-27 2012-02-01 上海闻泰电子科技有限公司 一种用于手机的感光加解锁装置及其实现方法
US9633656B2 (en) 2010-07-27 2017-04-25 Sony Corporation Device registration process from second display
US8521526B1 (en) 2010-07-28 2013-08-27 Google Inc. Disambiguation of a spoken query term
US8861925B1 (en) 2010-07-28 2014-10-14 Intuit Inc. Methods and systems for audio-visual synchronization
JP5606205B2 (ja) 2010-07-28 2014-10-15 京セラ株式会社 携帯端末装置
CN102346557B (zh) 2010-07-28 2016-08-03 深圳市世纪光速信息技术有限公司 一种输入法和输入法系统
US8694537B2 (en) 2010-07-29 2014-04-08 Soundhound, Inc. Systems and methods for enabling natural language processing
KR101699720B1 (ko) 2010-08-03 2017-01-26 삼성전자주식회사 음성명령 인식 장치 및 음성명령 인식 방법
BRPI1004128A2 (pt) 2010-08-04 2012-04-10 Magneti Marelli Sist S Automotivos Ind E Com Ltda definição dos parámetros chave de nìvel superior para sensor lógico de biodiesel
JP2012037619A (ja) 2010-08-04 2012-02-23 Nec Corp 話者適応化装置、話者適応化方法および話者適応化用プログラム
US8775156B2 (en) 2010-08-05 2014-07-08 Google Inc. Translating languages in response to device motion
US9349368B1 (en) 2010-08-05 2016-05-24 Google Inc. Generating an audio notification based on detection of a triggering event
US8359020B2 (en) 2010-08-06 2013-01-22 Google Inc. Automatically monitoring for voice input based on context
US8473289B2 (en) 2010-08-06 2013-06-25 Google Inc. Disambiguating input based on context
US8402533B2 (en) 2010-08-06 2013-03-19 Google Inc. Input to locked computing device
US8731939B1 (en) 2010-08-06 2014-05-20 Google Inc. Routing queries based on carrier phrase registration
WO2012019637A1 (en) 2010-08-09 2012-02-16 Jadhav, Shubhangi Mahadeo Visual music playlist creation and visual music track exploration
US8802957B2 (en) 2010-08-16 2014-08-12 Boardwalk Technology Group, Llc Mobile replacement-dialogue recording system
CN101951553B (zh) 2010-08-17 2012-10-10 深圳市车音网科技有限公司 基于语音命令的导航方法及系统
US9788075B2 (en) 2010-08-27 2017-10-10 Intel Corporation Techniques for augmenting a digital on-screen graphic
US8719006B2 (en) 2010-08-27 2014-05-06 Apple Inc. Combined statistical and rule-based part-of-speech tagging for text-to-speech synthesis
WO2012030838A1 (en) 2010-08-30 2012-03-08 Honda Motor Co., Ltd. Belief tracking and action selection in spoken dialog systems
US8478519B2 (en) 2010-08-30 2013-07-02 Google Inc. Providing results to parameterless search queries
US8225137B2 (en) 2010-09-04 2012-07-17 Cisco Technology, Inc. System and method for providing media server redundancy in a network environment
US9800721B2 (en) 2010-09-07 2017-10-24 Securus Technologies, Inc. Multi-party conversation analyzer and logger
US8341142B2 (en) 2010-09-08 2012-12-25 Nuance Communications, Inc. Methods and apparatus for searching the Internet
US20120059655A1 (en) 2010-09-08 2012-03-08 Nuance Communications, Inc. Methods and apparatus for providing input to a speech-enabled application program
CN103339623B (zh) 2010-09-08 2018-05-25 纽昂斯通讯公司 涉及因特网搜索的方法和设备
US8700987B2 (en) 2010-09-09 2014-04-15 Sony Corporation Annotating E-books / E-magazines with application results and function calls
KR102000618B1 (ko) 2010-09-13 2019-10-21 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 부가기능의 관리
CN102402985A (zh) 2010-09-14 2012-04-04 盛乐信息技术(上海)有限公司 提高声纹识别安全性的声纹认证系统及其实现方法
US9538229B2 (en) 2010-09-15 2017-01-03 Verizon Patent And Licensing Inc. Media experience for touch screen devices
JP5480760B2 (ja) 2010-09-15 2014-04-23 株式会社Nttドコモ 端末装置、音声認識方法および音声認識プログラム
WO2012034273A1 (en) 2010-09-15 2012-03-22 Empire Technology Development Llc Task assignment in cloud computing environment
US8560229B1 (en) 2010-09-15 2013-10-15 Google Inc. Sensor based activity detection
US20120068937A1 (en) 2010-09-16 2012-03-22 Sony Ericsson Mobile Communications Ab Quick input language/virtual keyboard/ language dictionary change on a touch screen device
US20120078635A1 (en) 2010-09-24 2012-03-29 Apple Inc. Voice control system
US8836638B2 (en) 2010-09-25 2014-09-16 Hewlett-Packard Development Company, L.P. Silent speech based command to a computing device
US20120114108A1 (en) 2010-09-27 2012-05-10 Voxer Ip Llc Messaging communication application
US8719014B2 (en) 2010-09-27 2014-05-06 Apple Inc. Electronic device with text error correction based on voice recognition data
CN101937194B (zh) 2010-09-27 2012-12-19 鸿富锦精密工业(深圳)有限公司 具有学习功能的智能控制系统和方法
US8594997B2 (en) 2010-09-27 2013-11-26 Sap Ag Context-aware conversational user interface
KR20120031722A (ko) 2010-09-27 2012-04-04 삼성전자주식회사 동적 응답 생성 장치 및 방법
CN102436456B (zh) 2010-09-29 2016-03-30 国际商业机器公司 用于对命名实体进行分类的方法和装置
US10037319B2 (en) 2010-09-29 2018-07-31 Touchtype Limited User input prediction
CN101958958A (zh) 2010-09-29 2011-01-26 中兴通讯股份有限公司 一种回复信息的方法和终端
US9465864B2 (en) 2010-09-29 2016-10-11 Excalibur Ip, Llc Training a search query intent classifier using wiki article titles and a search click log
US8965545B2 (en) 2010-09-30 2015-02-24 Google Inc. Progressive encoding of audio
US8515736B1 (en) 2010-09-30 2013-08-20 Nuance Communications, Inc. Training call routing applications by reusing semantically-labeled data collected for prior applications
US8812321B2 (en) 2010-09-30 2014-08-19 At&T Intellectual Property I, L.P. System and method for combining speech recognition outputs from a plurality of domain-specific speech recognizers via machine learning
US8644519B2 (en) 2010-09-30 2014-02-04 Apple Inc. Electronic devices with improved audio
US20120084248A1 (en) 2010-09-30 2012-04-05 Microsoft Corporation Providing suggestions based on user intent
US20120084634A1 (en) 2010-10-05 2012-04-05 Sony Corporation Method and apparatus for annotating text
US8606293B2 (en) 2010-10-05 2013-12-10 Qualcomm Incorporated Mobile device location estimation using environmental information
US9679256B2 (en) 2010-10-06 2017-06-13 The Chancellor, Masters And Scholars Of The University Of Cambridge Automated assessment of examination scripts
US9043386B2 (en) 2010-10-06 2015-05-26 Hbr Labs Inc. System and method for synchronizing collaborative form filling
US9465798B2 (en) 2010-10-08 2016-10-11 Iq Technology Inc. Single word and multi-word term integrating system and a method thereof
US10900799B2 (en) 2010-10-12 2021-01-26 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for determining a destination location from a communication
GB2513114A (en) 2010-10-15 2014-10-22 Intelligent Mechatronic Sys Implicit association and polymorphism driven human machine interaction
JP5572059B2 (ja) 2010-10-21 2014-08-13 京セラ株式会社 表示装置
JP5017441B2 (ja) 2010-10-28 2012-09-05 株式会社東芝 携帯型電子機器
US20120108221A1 (en) 2010-10-28 2012-05-03 Microsoft Corporation Augmenting communication sessions with applications
US8335774B2 (en) 2010-10-28 2012-12-18 Google Inc. Replacing a master media file
US9311308B2 (en) 2010-10-29 2016-04-12 Hewlett-Packard Development Company, L.P. Content recommendation for groups
KR101417975B1 (ko) 2010-10-29 2014-07-09 안후이 유에스티씨 아이플라이텍 캄파니 리미티드 오디오 레코드의 엔드포인트를 자동 감지하는 방법 및 시스템
US9058105B2 (en) 2010-10-31 2015-06-16 International Business Machines Corporation Automated adjustment of input configuration
US20120110456A1 (en) 2010-11-01 2012-05-03 Microsoft Corporation Integrated voice command modal user interface
US9348417B2 (en) 2010-11-01 2016-05-24 Microsoft Technology Licensing, Llc Multimodal input system
US8660531B2 (en) 2010-11-03 2014-02-25 Blackberry Limited Access to locked functions
US8831947B2 (en) 2010-11-07 2014-09-09 Nice Systems Ltd. Method and apparatus for large vocabulary continuous speech recognition using a hybrid phoneme-word lattice
US20120116770A1 (en) 2010-11-08 2012-05-10 Ming-Fu Chen Speech data retrieving and presenting device
EP2451141B1 (en) 2010-11-09 2018-11-07 BlackBerry Limited Methods and apparatus to display mobile device contents
WO2012063260A2 (en) 2010-11-09 2012-05-18 Mango Technologies Pvt Ltd. Virtual secretary on a smart device
US8352576B2 (en) 2010-11-15 2013-01-08 Google Inc. Media file access
US20120124172A1 (en) 2010-11-15 2012-05-17 Google Inc. Providing Different Versions of a Media File
MY177511A (en) 2010-11-16 2020-09-17 Shardul Suresh Shroff System and method for providing virtual arbitration
US20120124126A1 (en) 2010-11-17 2012-05-17 Microsoft Corporation Contextual and task focused computing
US10144440B2 (en) 2010-11-17 2018-12-04 General Electric Company Methods and systems for data communications
US8713024B2 (en) 2010-11-22 2014-04-29 Microsoft Corporation Efficient forward ranking in a search engine
US9484018B2 (en) 2010-11-23 2016-11-01 At&T Intellectual Property I, L.P. System and method for building and evaluating automatic speech recognition via an application programmer interface
US8938216B2 (en) 2010-11-24 2015-01-20 Cisco Technology, Inc. Geographical location information/signal quality-context based recording and playback of multimedia data from a conference session
US8489625B2 (en) 2010-11-29 2013-07-16 Microsoft Corporation Mobile query suggestions with time-location awareness
US20120135714A1 (en) 2010-11-29 2012-05-31 Toyota Motor Engineering & Manufacturing North America, Inc. Information system for motor vehicle
US9105008B2 (en) 2010-11-29 2015-08-11 Yahoo! Inc. Detecting controversial events
US8862458B2 (en) 2010-11-30 2014-10-14 Sap Ag Natural language interface
WO2012074338A2 (ko) 2010-12-02 2012-06-07 에스케이텔레콤 주식회사 자연어 및 수학식 처리 방법과 그를 위한 장치
JP5652913B2 (ja) 2010-12-03 2015-01-14 アイシン・エィ・ダブリュ株式会社 車載端末装置
US9092425B2 (en) 2010-12-08 2015-07-28 At&T Intellectual Property I, L.P. System and method for feature-rich continuous space language models
US8312096B2 (en) 2010-12-08 2012-11-13 Google Inc. Priority inbox notifications and synchronization for mobile messaging application
US9135241B2 (en) 2010-12-08 2015-09-15 At&T Intellectual Property I, L.P. System and method for learning latent representations for natural language tasks
KR101330328B1 (ko) 2010-12-14 2013-11-15 한국전자통신연구원 음성 인식 방법 및 이를 위한 시스템
KR20120066825A (ko) * 2010-12-15 2012-06-25 고스트리트(주) 휴대용 단말의 인터페이스 방법
US9244606B2 (en) 2010-12-20 2016-01-26 Apple Inc. Device, method, and graphical user interface for navigation of concurrently open software applications
WO2012084003A1 (en) * 2010-12-20 2012-06-28 Tomtom Belgium N.V. Method for generating map data
US20120158422A1 (en) 2010-12-21 2012-06-21 General Electric Company Methods and systems for scheduling appointments in healthcare systems
US20120158293A1 (en) 2010-12-21 2012-06-21 General Electric Company Methods and systems for dynamically providing users with appointment reminders
US8666726B2 (en) 2010-12-21 2014-03-04 Nuance Communications, Inc. Sample clustering to reduce manual transcriptions in speech recognition system
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US20130035086A1 (en) 2010-12-22 2013-02-07 Logitech Europe S.A. Remote control system for providing content suggestions
US8532377B2 (en) 2010-12-22 2013-09-10 Xerox Corporation Image ranking based on abstract concepts
US10515147B2 (en) 2010-12-22 2019-12-24 Apple Inc. Using statistical language models for contextual lookup
US8838449B2 (en) 2010-12-23 2014-09-16 Microsoft Corporation Word-dependent language model
US20120166944A1 (en) 2010-12-23 2012-06-28 Stephen Hayden Cotterill Device, Method, and Graphical User Interface for Switching Between Two User Interfaces
US8731902B2 (en) 2010-12-23 2014-05-20 Sap Ag Systems and methods for accessing applications based on user intent modeling
US20120166959A1 (en) 2010-12-23 2012-06-28 Microsoft Corporation Surfacing content including content accessed from jump list tasks and items
JP2012142744A (ja) 2010-12-28 2012-07-26 Sanyo Electric Co Ltd 通信装置
CN103688245A (zh) 2010-12-30 2014-03-26 安比恩特兹公司 利用一群数据获取装置进行信息处理
TWI413105B (zh) 2010-12-30 2013-10-21 Ind Tech Res Inst 多語言之文字轉語音合成系統與方法
KR101828273B1 (ko) 2011-01-04 2018-02-14 삼성전자주식회사 결합기반의 음성명령 인식 장치 및 그 방법
US8626681B1 (en) 2011-01-04 2014-01-07 Google Inc. Training a probabilistic spelling checker from structured data
EP2661869B1 (fr) 2011-01-05 2018-12-26 Connecthings Système pour actionner un terminal portable
US8589950B2 (en) 2011-01-05 2013-11-19 Blackberry Limited Processing user input events in a web browser
WO2012092709A1 (en) 2011-01-05 2012-07-12 Google Inc. Method and system for facilitating text input
US9183843B2 (en) 2011-01-07 2015-11-10 Nuance Communications, Inc. Configurable speech recognition system using multiple recognizers
US9953653B2 (en) 2011-01-07 2018-04-24 Nuance Communications, Inc. Configurable speech recognition system using multiple recognizers
JP5712618B2 (ja) 2011-01-07 2015-05-07 サクサ株式会社 電話システム
WO2012092654A1 (en) 2011-01-07 2012-07-12 Research In Motion Limited System and method for controlling mobile communication devices
US20120176255A1 (en) 2011-01-10 2012-07-12 Deutsche Telekom Ag Mobile device-based automatic parking location recorder and reminder using on-board diagnostics
US20130283283A1 (en) 2011-01-13 2013-10-24 Htc Corporation Portable electronic device and control method therefor
TWI546700B (zh) 2011-01-13 2016-08-21 宏達國際電子股份有限公司 手持電子裝置及其控制方法與電腦程式產品
US8689116B2 (en) 2011-01-14 2014-04-01 Apple Inc. Email user interface
US8863256B1 (en) 2011-01-14 2014-10-14 Cisco Technology, Inc. System and method for enabling secure transactions using flexible identity management in a vehicular environment
KR101242073B1 (ko) 2011-01-20 2013-03-11 주식회사 웨이브애프터 사용자단말의 터치스크린의 사용자 인터페이스 방법 및 그 기록매체
US20120192096A1 (en) 2011-01-25 2012-07-26 Research In Motion Limited Active command line driven user interface
US9031970B1 (en) 2011-01-26 2015-05-12 Google Inc. Query autocompletions
FI126119B (fi) 2011-01-31 2016-06-30 Waertsilae Finland Oy Massavaimennin
US8943054B2 (en) 2011-01-31 2015-01-27 Social Resolve, Llc Social media content management system and method
US8666895B2 (en) 2011-01-31 2014-03-04 Bank Of America Corporation Single action mobile transaction device
AU2012212517A1 (en) 2011-02-04 2013-08-22 Google Inc. Posting to social networks by voice
US9452735B2 (en) 2011-02-10 2016-09-27 Ford Global Technologies, Llc System and method for controlling a restricted mode in a vehicle
US9628842B2 (en) 2011-02-11 2017-04-18 Sony Corporation Method and apparatus for identifying content using IPTV devices
US8862612B2 (en) 2011-02-11 2014-10-14 Sony Corporation Direct search launch on a second display
US8620709B2 (en) 2011-02-11 2013-12-31 Avaya, Inc Mobile activity manager
US10631246B2 (en) 2011-02-14 2020-04-21 Microsoft Technology Licensing, Llc Task switching on mobile devices
TW201241640A (en) 2011-02-14 2012-10-16 Microsoft Corp Dormant background applications on mobile devices
CN103477592A (zh) 2011-02-16 2013-12-25 科泰克工业有限公司 无线电源、照明和自动化控制
US10429869B2 (en) 2011-02-16 2019-10-01 Kortek Industries Pty Ltd Wireless power, light and automation control
JP5910511B2 (ja) 2011-02-17 2016-04-27 日本電気株式会社 電子装置、表示方法及びプログラム
US9916420B2 (en) 2011-02-18 2018-03-13 Nuance Communications, Inc. Physician and clinical documentation specialist workflow integration
US8694335B2 (en) 2011-02-18 2014-04-08 Nuance Communications, Inc. Methods and apparatus for applying user corrections to medical fact extraction
US9686732B2 (en) 2011-02-22 2017-06-20 Theatrolabs, Inc. Observation platform for using structured communications with distributed traffic flow
US10145960B2 (en) 2011-02-24 2018-12-04 Ford Global Technologies, Llc System and method for cell phone restriction
KR101178310B1 (ko) 2011-02-24 2012-08-29 포항공과대학교 산학협력단 대화 관리 방법 및 이를 실행하는 시스템
CN102651217A (zh) 2011-02-25 2012-08-29 株式会社东芝 用于合成语音的方法、设备以及用于语音合成的声学模型训练方法
US8688453B1 (en) 2011-02-28 2014-04-01 Nuance Communications, Inc. Intent mining via analysis of utterances
US20120221552A1 (en) 2011-02-28 2012-08-30 Nokia Corporation Method and apparatus for providing an active search user interface element
US9632677B2 (en) 2011-03-02 2017-04-25 The Boeing Company System and method for navigating a 3-D environment using a multi-input interface
US8972275B2 (en) 2011-03-03 2015-03-03 Brightedge Technologies, Inc. Optimization of social media engagement
EP2498250B1 (en) 2011-03-07 2021-05-05 Accenture Global Services Limited Client and server system for natural language-based control of a digital network of devices
US9081760B2 (en) 2011-03-08 2015-07-14 At&T Intellectual Property I, L.P. System and method for building diverse language models
CN102122506B (zh) 2011-03-08 2013-07-31 天脉聚源(北京)传媒科技有限公司 一种语音识别的方法
US20120233266A1 (en) 2011-03-11 2012-09-13 Microsoft Corporation Peer-to-peer group with renegotiation of group owner
CN202092650U (zh) 2011-03-14 2011-12-28 深圳市车乐数码科技有限公司 一种带按键的语音导航的车载多媒体
US8849931B2 (en) 2011-03-15 2014-09-30 Idt Messaging, Llc Linking context-based information to text messages
US8606090B2 (en) 2011-03-17 2013-12-10 Sony Corporation Sport program chaptering
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US8862255B2 (en) 2011-03-23 2014-10-14 Audible, Inc. Managing playback of synchronized content
US20120246133A1 (en) 2011-03-23 2012-09-27 Microsoft Corporation Online spelling correction/phrase completion system
US20120246064A1 (en) 2011-03-23 2012-09-27 Ebay, Inc. Customer refunds using payment service providers
US8868111B1 (en) 2011-03-23 2014-10-21 Dp Technologies, Inc. Method and apparatus to enable the use of a personal communication device with an integrated vehicle interface
US8766793B2 (en) 2011-03-25 2014-07-01 Microsoft Corporation Contextually-appropriate task reminders
US9202465B2 (en) 2011-03-25 2015-12-01 General Motors Llc Speech recognition dependent on text message content
US9171546B1 (en) 2011-03-29 2015-10-27 Google Inc. Performing functions based on commands in context of telephonic communication
CN202035047U (zh) 2011-03-29 2011-11-09 张磊 一种提取地址信息进行导航的移动终端
US9154555B2 (en) 2011-03-30 2015-10-06 Paypal, Inc. Device specific remote disabling of applications
JP2012211932A (ja) 2011-03-30 2012-11-01 Toshiba Corp 音声認識装置及び音声認識方法
WO2012135226A1 (en) 2011-03-31 2012-10-04 Microsoft Corporation Augmented conversational understanding architecture
US9280535B2 (en) 2011-03-31 2016-03-08 Infosys Limited Natural language querying with cascaded conditional random fields
US9760566B2 (en) 2011-03-31 2017-09-12 Microsoft Technology Licensing, Llc Augmented conversational understanding agent to identify conversation context between two humans and taking an agent action thereof
US9842168B2 (en) 2011-03-31 2017-12-12 Microsoft Technology Licensing, Llc Task driven user intents
EP2691856A1 (en) 2011-03-31 2014-02-05 AOL Inc. Systems and methods for transferring application state between devices based on gestural input
KR101929533B1 (ko) 2011-04-01 2018-12-17 인터디지탈 패튼 홀딩스, 인크 공통 pdp 컨텍스트를 공유하기 위한 시스템 및 방법
US9337999B2 (en) 2011-04-01 2016-05-10 Intel Corporation Application usage continuum across platforms
US9098488B2 (en) 2011-04-03 2015-08-04 Microsoft Technology Licensing, Llc Translation of multilingual embedded phrases
US20120252367A1 (en) 2011-04-04 2012-10-04 Meditalk Devices, Llc Auditory Speech Module For Medical Devices
WO2012138319A1 (en) 2011-04-04 2012-10-11 Hewlett-Packard Development Company, L.P. Creating a correlation rule defining a relationship between event types
US8914275B2 (en) 2011-04-06 2014-12-16 Microsoft Corporation Text prediction
CN102137193A (zh) 2011-04-13 2011-07-27 深圳凯虹移动通信有限公司 一种移动通讯终端及其通讯控制方法
US9292877B2 (en) 2011-04-13 2016-03-22 Longsand Limited Methods and systems for generating concept-based hash tags
US9366749B2 (en) 2011-04-15 2016-06-14 Qualcomm Incorporated Device position estimates from motion and ambient light classifiers
US20120265784A1 (en) 2011-04-15 2012-10-18 Microsoft Corporation Ordering semantic query formulation suggestions
US9493130B2 (en) 2011-04-22 2016-11-15 Angel A. Penilla Methods and systems for communicating content to connected vehicle users based detected tone/mood in voice input
EP2702473A1 (en) 2011-04-25 2014-03-05 Veveo, Inc. System and method for an intelligent personal timeline assistant
US9065660B2 (en) 2011-04-26 2015-06-23 Alcatel Lucent Usage monitoring after rollover
US9444692B2 (en) 2011-04-26 2016-09-13 Openet Telecom Ltd. Systems, devices and methods of crowd-sourcing across multiple domains
US9110556B2 (en) 2011-04-28 2015-08-18 Nokia Technologies Oy Method and apparatus for increasing the functionality of an electronic device in a locked state
TW201246055A (en) 2011-05-03 2012-11-16 Htc Corp Handheld electronic device and method for accessing bookmark
GB2504256B (en) 2011-05-04 2019-12-25 Blackberry Ltd Methods for adjusting a presentation of graphical data displayed on a graphical user interface
US8171137B1 (en) 2011-05-09 2012-05-01 Google Inc. Transferring application state across devices
US8150385B1 (en) 2011-05-09 2012-04-03 Loment, Inc. Automated reply messages among end user communication devices
US9165074B2 (en) 2011-05-10 2015-10-20 Uber Technologies, Inc. Systems and methods for performing geo-search and retrieval of electronic point-of-interest records using a big index
KR101760422B1 (ko) 2011-05-11 2017-07-31 엘지전자 주식회사 이동 단말기 및 그 제어방법
KR101233561B1 (ko) 2011-05-12 2013-02-14 엔에이치엔(주) 단어 수준의 후보 생성에 기초한 음성 인식 시스템 및 방법
US9064006B2 (en) 2012-08-23 2015-06-23 Microsoft Technology Licensing, Llc Translating natural language utterances to keyword search queries
US9418661B2 (en) 2011-05-12 2016-08-16 Johnson Controls Technology Company Vehicle voice recognition systems and methods
WO2012158469A2 (en) 2011-05-13 2012-11-22 Plimpton David Calendar-based search engine
US8839303B2 (en) 2011-05-13 2014-09-16 Google Inc. System and method for enhancing user search results by determining a television program currently being displayed in proximity to an electronic device
US20120290291A1 (en) 2011-05-13 2012-11-15 Gabriel Lee Gilbert Shelley Input processing for character matching and predicted word matching
US8793624B2 (en) 2011-05-18 2014-07-29 Google Inc. Control of a device using gestures
US8972240B2 (en) 2011-05-19 2015-03-03 Microsoft Corporation User-modifiable word lattice display for editing documents and search queries
US8914290B2 (en) 2011-05-20 2014-12-16 Vocollect, Inc. Systems and methods for dynamically improving user intelligibility of synthesized speech in a work environment
WO2012161115A1 (ja) 2011-05-20 2012-11-29 日本放送協会 番組切替制御装置及びプログラム
US8954329B2 (en) 2011-05-23 2015-02-10 Nuance Communications, Inc. Methods and apparatus for acoustic disambiguation by insertion of disambiguating textual information
US20120304124A1 (en) 2011-05-23 2012-11-29 Microsoft Corporation Context aware input engine
WO2012161359A1 (ko) 2011-05-24 2012-11-29 엘지전자 주식회사 사용자 인터페이스 방법 및 장치
US8731936B2 (en) 2011-05-26 2014-05-20 Microsoft Corporation Energy-efficient unobtrusive identification of a speaker
US9164983B2 (en) 2011-05-27 2015-10-20 Robert Bosch Gmbh Broad-coverage normalization system for social media language
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
JP5463385B2 (ja) 2011-06-03 2014-04-09 アップル インコーポレイテッド テキストデータとオーディオデータとの間のマッピングの自動作成
US9268857B2 (en) 2011-06-03 2016-02-23 Facebook, Inc. Suggesting search results to users before receiving any search query from the users
US10672399B2 (en) 2011-06-03 2020-06-02 Apple Inc. Switching between text data and audio data based on a mapping
US8751971B2 (en) 2011-06-05 2014-06-10 Apple Inc. Devices, methods, and graphical user interfaces for providing accessibility using a touch-sensitive surface
US20120317498A1 (en) 2011-06-07 2012-12-13 Research In Motion Limited Electronic communication device and method for displaying icons
US8781841B1 (en) 2011-06-07 2014-07-15 Cisco Technology, Inc. Name recognition of virtual meeting participants
US20120316774A1 (en) 2011-06-09 2012-12-13 Microsoft Corporation Automatic navigation to a prior known location
WO2012170817A1 (en) 2011-06-10 2012-12-13 Google Inc. Augmenting statistical machine translation with linguistic knowledge
US8732319B2 (en) 2011-06-10 2014-05-20 Qualcomm Incorporated Context awareness proximity-based establishment of wireless communication connection
US20120316875A1 (en) 2011-06-10 2012-12-13 Red Shift Company, Llc Hosted speech handling
US9082408B2 (en) 2011-06-13 2015-07-14 Mmodal Ip Llc Speech recognition using loosely coupled components
US20130158977A1 (en) 2011-06-14 2013-06-20 Andrew Senior System and Method for Evaluating Speech Exposure
US20120323967A1 (en) 2011-06-14 2012-12-20 Microsoft Corporation Spelling Using a Fuzzy Pattern Search
US9201862B2 (en) 2011-06-16 2015-12-01 Asociacion Instituto Tecnologico De Informatica Method for symbolic correction in human-machine interfaces
US20120324391A1 (en) 2011-06-16 2012-12-20 Microsoft Corporation Predictive word completion
US20120321112A1 (en) 2011-06-16 2012-12-20 Apple Inc. Selecting a digital stream based on an audio sample
CN102237088B (zh) 2011-06-17 2013-10-23 盛乐信息技术(上海)有限公司 语音识别多信息文本获取装置及方法
US20120329529A1 (en) 2011-06-21 2012-12-27 GreatCall, Inc. Gesture activate help process and system
CN104011712B (zh) 2011-06-24 2018-04-24 谷歌有限责任公司 对跨语言查询建议的查询翻译进行评价
US10984387B2 (en) 2011-06-28 2021-04-20 Microsoft Technology Licensing, Llc Automatic task extraction and calendar entry
ES2612714T3 (es) 2011-06-30 2017-05-18 Huawei Technologies Co., Ltd. Método, aparato y sistema de transmisión datos multimedia sobre la base de OTT
US20130007240A1 (en) 2011-06-30 2013-01-03 At&T Intellectual Property I, L.P. Systems and methods to provide availability notifications for denied content requests
US20130006633A1 (en) 2011-07-01 2013-01-03 Qualcomm Incorporated Learning speech models for mobile device users
DE102011078642A1 (de) 2011-07-05 2013-01-10 Robert Bosch Gmbh Verfahren zum Prüfen eines m aus n Codes
DE112011105407T5 (de) 2011-07-05 2014-04-30 Mitsubishi Electric Corporation Spracherkennungsvorrichtung und Navigationsvorrichtung
US9582598B2 (en) 2011-07-05 2017-02-28 Visa International Service Association Hybrid applications utilizing distributed models and views apparatuses, methods and systems
US9367824B2 (en) 2011-07-05 2016-06-14 Sap Se Provisioning and performing action items
US8682670B2 (en) 2011-07-07 2014-03-25 International Business Machines Corporation Statistical enhancement of speech output from a statistical text-to-speech synthesis system
US8209183B1 (en) 2011-07-07 2012-06-26 Google Inc. Systems and methods for correction of text from different input types, sources, and contexts
US20130010575A1 (en) 2011-07-07 2013-01-10 International Business Machines Corporation Systems and methods of managing electronic calendar applications
US8665212B2 (en) 2011-07-08 2014-03-04 Blackberry Limited Systems and methods for locking an electronic device
US20130018659A1 (en) 2011-07-12 2013-01-17 Google Inc. Systems and Methods for Speech Command Processing
US8812474B2 (en) 2011-07-14 2014-08-19 Nuance Communications, Inc. Methods and apparatus for identifying and providing information sought by a user
US20130024277A1 (en) 2011-07-18 2013-01-24 Teletech Holdings, Inc. Platform to provide advertisements to users of registered products
DE102012212514A1 (de) 2011-07-18 2013-02-21 Logitech Europe S.A. Fernbedienungs-Benutzerschnittstelle für Handgerät
CA2747153A1 (en) 2011-07-19 2013-01-19 Suleman Kaheer Natural language processing dialog system for obtaining goods, services or information
US20130024576A1 (en) 2011-07-22 2013-01-24 Microsoft Corporation Proximity-Based Detection
US20130031476A1 (en) 2011-07-25 2013-01-31 Coin Emmett Voice activated virtual assistant
US8781810B2 (en) 2011-07-25 2014-07-15 Xerox Corporation System and method for productive generation of compound words in statistical machine translation
US9009041B2 (en) 2011-07-26 2015-04-14 Nuance Communications, Inc. Systems and methods for improving the accuracy of a transcription using auxiliary data such as personal data
US8260117B1 (en) 2011-07-26 2012-09-04 Ooyala, Inc. Automatically recommending content
US8732028B2 (en) 2011-07-26 2014-05-20 Expose Retail Strategies Inc. Scheduling of order processing for remotely ordered goods
US9292112B2 (en) 2011-07-28 2016-03-22 Hewlett-Packard Development Company, L.P. Multimodal interface
EP2551784A1 (en) 2011-07-28 2013-01-30 Roche Diagnostics GmbH Method of controlling the display of a dataset
US20130030926A1 (en) 2011-07-28 2013-01-31 American Express Travel Related Services Company, Inc. Systems and methods for generating and using a digital pass
WO2013013290A1 (en) 2011-07-28 2013-01-31 Research In Motion Limited Methods and devices for facilitating communications
CN102905499B (zh) 2011-07-29 2015-12-09 纬创资通股份有限公司 竖卡模块及电子装置
US20130030913A1 (en) 2011-07-29 2013-01-31 Guangyu Zhu Deriving Ads Ranking of Local Advertisers based on Distance and Aggregate User Activities
US20130030789A1 (en) 2011-07-29 2013-01-31 Reginald Dalce Universal Language Translator
US20130031162A1 (en) 2011-07-29 2013-01-31 Myxer, Inc. Systems and methods for media selection based on social metadata
US20130035117A1 (en) 2011-08-04 2013-02-07 GM Global Technology Operations LLC System and method for restricting driver mobile device feature usage while vehicle is in motion
WO2013022222A2 (en) 2011-08-05 2013-02-14 Samsung Electronics Co., Ltd. Method for controlling electronic apparatus based on motion recognition, and electronic apparatus applying the same
ES2958183T3 (es) 2011-08-05 2024-02-05 Samsung Electronics Co Ltd Procedimiento de control de aparatos electrónicos basado en el reconocimiento de voz y de movimiento, y aparato electrónico que aplica el mismo
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
WO2013022218A2 (en) 2011-08-05 2013-02-14 Samsung Electronics Co., Ltd. Electronic apparatus and method for providing user interface thereof
US8595015B2 (en) 2011-08-08 2013-11-26 Verizon New Jersey Inc. Audio communication assessment
CN102929710B (zh) 2011-08-09 2017-10-27 中兴通讯股份有限公司 一种调用应用模块的方法及移动终端
US8706472B2 (en) 2011-08-11 2014-04-22 Apple Inc. Method for disambiguating multiple readings in language conversion
WO2013022135A1 (en) 2011-08-11 2013-02-14 Lg Electronics Inc. Electronic device and method of controlling the same
US8589160B2 (en) 2011-08-19 2013-11-19 Dolbey & Company, Inc. Systems and methods for providing an electronic dictation interface
KR101995425B1 (ko) 2011-08-21 2019-07-02 엘지전자 주식회사 영상 표시 장치, 단말 장치 및 그 동작 방법
US20130055099A1 (en) 2011-08-22 2013-02-28 Rose Yao Unified Messaging System with Integration of Call Log Data
JP5736276B2 (ja) * 2011-08-23 2015-06-17 京セラ株式会社 携帯電子機器、制御方法、および、制御プログラム
US8943071B2 (en) 2011-08-23 2015-01-27 At&T Intellectual Property I, L.P. Automatic sort and propagation associated with electronic documents
US20130054945A1 (en) 2011-08-24 2013-02-28 Microsoft Corporation Adaptive sensing for early booting of devices
US9195768B2 (en) 2011-08-26 2015-11-24 Amazon Technologies, Inc. Remote browsing session management
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US20130055147A1 (en) 2011-08-29 2013-02-28 Salesforce.Com, Inc. Configuration, generation, and presentation of custom graphical user interface components for a virtual cloud-based application
US20130054706A1 (en) 2011-08-29 2013-02-28 Mary Graham Modulation of Visual Notification Parameters Based on Message Activity and Notification Value
CN102955652A (zh) 2011-08-29 2013-03-06 王道平 一种拼音输入方法
US20130054631A1 (en) 2011-08-30 2013-02-28 Microsoft Corporation Adding social network data to search suggestions
US8819012B2 (en) 2011-08-30 2014-08-26 International Business Machines Corporation Accessing anchors in voice site content
US8554729B2 (en) 2011-08-31 2013-10-08 Google Inc. System and method for synchronization of actions in the background of an application
US20130061139A1 (en) 2011-09-01 2013-03-07 Google Inc. Server-based spell checking on a user device
US8914288B2 (en) 2011-09-01 2014-12-16 At&T Intellectual Property I, L.P. System and method for advanced turn-taking for interactive spoken dialog systems
CN102968416A (zh) * 2011-09-01 2013-03-13 佳能株式会社 基于用户意图识别执行推荐的设备和方法
US8660847B2 (en) 2011-09-02 2014-02-25 Microsoft Corporation Integrated local and cloud based speech recognition
WO2013033910A1 (en) 2011-09-09 2013-03-14 Google Inc. User interface for translation webpage
US9596084B2 (en) 2011-09-09 2017-03-14 Facebook, Inc. Initializing camera subsystem for face detection based on sensor inputs
US8788979B2 (en) 2011-09-10 2014-07-22 Microsoft Corporation Secondary actions on a notification
US20130066832A1 (en) 2011-09-12 2013-03-14 Microsoft Corporation Application state synchronization
US9612670B2 (en) 2011-09-12 2017-04-04 Microsoft Technology Licensing, Llc Explicit touch selection and cursor placement
CN102331908A (zh) * 2011-09-14 2012-01-25 惠州Tcl移动通信有限公司 一种无线通讯设备对近期使用应用程序的提示方法及系统
US20130073346A1 (en) 2011-09-16 2013-03-21 David Chun Identifying companies most closely related to a given company
US20130073286A1 (en) 2011-09-20 2013-03-21 Apple Inc. Consolidating Speech Recognition Results
US20130073293A1 (en) 2011-09-20 2013-03-21 Lg Electronics Inc. Electronic device and method for controlling the same
EP2759145A1 (en) 2011-09-21 2014-07-30 Telefonaktiebolaget LM Ericsson (PUBL) Methods, devices and computer programs for transmitting or for receiving and playing media streams
US8699963B2 (en) 2011-09-22 2014-04-15 Blackberry Limited Mobile communication device with receiver speaker
US8798995B1 (en) 2011-09-23 2014-08-05 Amazon Technologies, Inc. Key word determinations from voice data
US9129606B2 (en) 2011-09-23 2015-09-08 Microsoft Technology Licensing, Llc User query history expansion for improving language model adaptation
KR20130032966A (ko) 2011-09-26 2013-04-03 엘지전자 주식회사 사용자 인터페이스 방법 및 장치
US8812301B2 (en) 2011-09-26 2014-08-19 Xerox Corporation Linguistically-adapted structural query annotation
US20130080251A1 (en) 2011-09-26 2013-03-28 Accenture Global Services Limited Product registration and tracking system
US8768707B2 (en) 2011-09-27 2014-07-01 Sensory Incorporated Background speech recognition assistant using speaker verification
US8996381B2 (en) 2011-09-27 2015-03-31 Sensory, Incorporated Background speech recognition assistant
US8762156B2 (en) 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
US20130086609A1 (en) 2011-09-29 2013-04-04 Viacom International Inc. Integration of an Interactive Virtual Toy Box Advertising Unit and Digital Media Content
CN103035251A (zh) 2011-09-30 2013-04-10 西门子公司 一种建立语音转换模型的方法、语音转换的方法及系统
US8452602B1 (en) 2011-09-30 2013-05-28 Google Inc. Structuring verbal commands to allow concatenation in a voice interface in a mobile device
AU2012316484A1 (en) 2011-09-30 2014-04-17 Apple Inc. Automatically adapting user interfaces for hands-free interaction
AU2015203483A1 (en) 2011-09-30 2015-07-16 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US8468022B2 (en) 2011-09-30 2013-06-18 Google Inc. Voice control for asynchronous notifications
AU2012232977A1 (en) 2011-09-30 2013-04-18 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US8452597B2 (en) 2011-09-30 2013-05-28 Google Inc. Systems and methods for continual speech recognition and detection in mobile computing devices
US8340975B1 (en) 2011-10-04 2012-12-25 Theodore Alfred Rosenberger Interactive speech recognition device and system for hands-free building control
US8386926B1 (en) 2011-10-06 2013-02-26 Google Inc. Network-based custom dictionary, auto-correction and text entry preferences
WO2013052867A2 (en) 2011-10-07 2013-04-11 Rogers Henk B Media tagging
US9640175B2 (en) 2011-10-07 2017-05-02 Microsoft Technology Licensing, Llc Pronunciation learning from user correction
US9021565B2 (en) 2011-10-13 2015-04-28 At&T Intellectual Property I, L.P. Authentication techniques utilizing a computing device
US8738363B2 (en) 2011-10-13 2014-05-27 Xerox Corporation System and method for suggestion mining
US20130097566A1 (en) 2011-10-17 2013-04-18 Carl Fredrik Alexander BERGLUND System and method for displaying items on electronic devices
US20130246595A1 (en) * 2011-10-18 2013-09-19 Hugh O'Donoghue Method and apparatus for using an organizational structure for generating, using, or updating an enriched user profile
US9058486B2 (en) * 2011-10-18 2015-06-16 Mcafee, Inc. User behavioral risk assessment
US9686088B2 (en) 2011-10-19 2017-06-20 Facebook, Inc. Notification profile configuration based on device orientation
KR101873741B1 (ko) 2011-10-26 2018-07-03 엘지전자 주식회사 휴대 단말기 및 그 제어 방법
US8738376B1 (en) 2011-10-28 2014-05-27 Nuance Communications, Inc. Sparse maximum a posteriori (MAP) adaptation
CN104285455A (zh) 2011-10-29 2015-01-14 斯维茨泡公司 用于基于位置的、互动的消费者参与平台的系统和方法
US9223948B2 (en) 2011-11-01 2015-12-29 Blackberry Limited Combined passcode and activity launch modifier
US20130111330A1 (en) 2011-11-01 2013-05-02 Research In Motion Limited Accelerated compositing of fixed position elements on an electronic device
WO2013063697A1 (en) 2011-11-02 2013-05-10 Research In Motion Limited System and method for enabling voice and video communications using a messaging application
US20130110943A1 (en) 2011-11-02 2013-05-02 Apple Inc. Notification and reminder generation, distribution, and storage system
US9471666B2 (en) 2011-11-02 2016-10-18 Salesforce.Com, Inc. System and method for supporting natural language queries and requests against a user's personal data cloud
US8996350B1 (en) 2011-11-02 2015-03-31 Dub Software Group, Inc. System and method for automatic document management
CN103093334A (zh) 2011-11-04 2013-05-08 周超然 活动通知文本识别并自动转换为日历项的方法
JP5681611B2 (ja) 2011-11-09 2015-03-11 株式会社日立製作所 ナビゲーションシステム、ナビゲーション装置、方法及びサーバ
US9711137B2 (en) 2011-11-10 2017-07-18 At&T Intellectual Property I, Lp Network-based background expert
US8863202B2 (en) 2011-11-11 2014-10-14 Sony Corporation System and method for voice driven cross service search using second display
US8996651B2 (en) 2011-11-12 2015-03-31 Yang Pan System and method for delivering media assets in a cloud environment
CN103105995B (zh) * 2011-11-14 2016-06-01 联想(北京)有限公司 显示方法和电子设备
US9697016B2 (en) * 2011-11-15 2017-07-04 Microsoft Technology Licensing, Llc Search augmented menu and configuration for computer applications
US8972263B2 (en) 2011-11-18 2015-03-03 Soundhound, Inc. System and method for performing dual mode speech recognition
WO2013075071A1 (en) 2011-11-18 2013-05-23 Ayman Hammad Mobile wallet store and service injection platform apparatuses, methods and systems
KR101467519B1 (ko) 2011-11-21 2014-12-02 주식회사 케이티 음성 정보를 이용한 컨텐츠 검색 서버 및 방법
CN102510426A (zh) 2011-11-29 2012-06-20 安徽科大讯飞信息科技股份有限公司 个人助理应用访问方法及系统
CN103135916A (zh) 2011-11-30 2013-06-05 英特尔公司 手持无线设备中的智能图形界面
KR101830656B1 (ko) 2011-12-02 2018-02-21 엘지전자 주식회사 이동 단말기 및 이의 제어방법
US9214157B2 (en) 2011-12-06 2015-12-15 At&T Intellectual Property I, L.P. System and method for machine-mediated human-human conversation
KR101193668B1 (ko) 2011-12-06 2012-12-14 위준성 스마트 기기를 이용한 상황 인식 기반 외국어 습득 및 학습 서비스 제공 방법
US9323746B2 (en) 2011-12-06 2016-04-26 At&T Intellectual Property I, L.P. System and method for collaborative language translation
US9082402B2 (en) 2011-12-08 2015-07-14 Sri International Generic virtual personal assistant platform
US9646313B2 (en) 2011-12-13 2017-05-09 Microsoft Technology Licensing, Llc Gesture-based tagging to view related content
US20130159847A1 (en) 2011-12-14 2013-06-20 International Business Machines Corporation Dynamic Personal Dictionaries for Enhanced Collaboration
EP2792173B1 (en) 2011-12-14 2019-04-10 RealNetworks, Inc. Customizable media auto-reply systems and methods
US8868529B2 (en) 2011-12-16 2014-10-21 Sap Se N-dimensional locking
US9408011B2 (en) 2011-12-19 2016-08-02 Qualcomm Incorporated Automated user/sensor location recognition to customize audio performance in a distributed multi-sensor environment
WO2013091075A1 (en) 2011-12-20 2013-06-27 Soschen Alona Natural language processor
CN202453859U (zh) 2011-12-20 2012-09-26 安徽科大讯飞信息科技股份有限公司 一种用于家电的语音交互装置
US8622836B2 (en) 2011-12-22 2014-01-07 Igt Use of wireless signal strength to determine connection
JP2013134430A (ja) 2011-12-27 2013-07-08 Toyota Motor Corp コマンド処理装置、方法、及びプログラム
JP5715042B2 (ja) * 2011-12-27 2015-05-07 京セラ株式会社 装置、方法、及びプログラム
US8996729B2 (en) 2012-04-12 2015-03-31 Nokia Corporation Method and apparatus for synchronizing tasks performed by multiple devices
US9218122B2 (en) 2011-12-29 2015-12-22 Rovi Guides, Inc. Systems and methods for transferring settings across devices based on user gestures
US8818810B2 (en) 2011-12-29 2014-08-26 Robert Bosch Gmbh Speaker verification in a health monitoring system
US9094534B2 (en) 2011-12-29 2015-07-28 Apple Inc. Device, method, and graphical user interface for configuring and implementing restricted interactions with a user interface
US9836177B2 (en) 2011-12-30 2017-12-05 Next IT Innovation Labs, LLC Providing variable responses in a virtual-assistant environment
US9189252B2 (en) 2011-12-30 2015-11-17 Microsoft Technology Licensing, Llc Context-based device action prediction
JP5790509B2 (ja) 2012-01-05 2015-10-07 富士通株式会社 画像再生装置、画像再生プログラム、及び画像再生方法
US8994560B2 (en) * 2012-01-06 2015-03-31 International Business Machines Corporation Managing parking space availability
JP5887937B2 (ja) 2012-01-06 2016-03-16 株式会社リコー 出力制御システム、出力制御方法、出力制御装置、および出力制御プログラム
JP5547216B2 (ja) 2012-01-06 2014-07-09 株式会社東芝 電子機器及び表示制御方法
KR101590332B1 (ko) 2012-01-09 2016-02-18 삼성전자주식회사 영상장치 및 그 제어방법
US9547832B2 (en) 2012-01-10 2017-01-17 Oracle International Corporation Identifying individual intentions and determining responses to individual intentions
US8825020B2 (en) 2012-01-12 2014-09-02 Sensory, Incorporated Information access and device control using mobile phones and audio in the home environment
CN103209369A (zh) 2012-01-16 2013-07-17 晨星软件研发(深圳)有限公司 电子装置的声控系统以及相关控制方法
US9418674B2 (en) 2012-01-17 2016-08-16 GM Global Technology Operations LLC Method and system for using vehicle sound information to enhance audio prompting
US8812302B2 (en) 2012-01-17 2014-08-19 Google Inc. Techniques for inserting diacritical marks to text input via a user device
JP2013148419A (ja) 2012-01-18 2013-08-01 Clarion Co Ltd 誘導システム、携帯端末装置および車載装置
US9134810B2 (en) 2012-01-19 2015-09-15 Blackberry Limited Next letter prediction for virtual keyboard
US9372978B2 (en) * 2012-01-20 2016-06-21 Apple Inc. Device, method, and graphical user interface for accessing an application in a locked device
US20130204813A1 (en) 2012-01-20 2013-08-08 Fluential, Llc Self-learning, context aware virtual assistants, systems and methods
US9099098B2 (en) 2012-01-20 2015-08-04 Qualcomm Incorporated Voice activity detection in presence of background noise
US8571528B1 (en) 2012-01-25 2013-10-29 Intuit Inc. Method and system to automatically create a contact with contact details captured during voice calls
EP2807454A4 (en) 2012-01-26 2015-08-19 Telecomm Systems Inc NAVIGATION GUIDANCE
US20130197914A1 (en) 2012-01-26 2013-08-01 Microtechnologies Llc D/B/A Microtech Voice activated audio control system and associated method of use
JP5682578B2 (ja) 2012-01-27 2015-03-11 日本電気株式会社 音声認識結果修正支援システム、音声認識結果修正支援方法および音声認識結果修正支援プログラム
US8745760B2 (en) 2012-01-30 2014-06-03 Cisco Technology, Inc. Malware classification for unknown executable files
US20140310365A1 (en) 2012-01-31 2014-10-16 Global Relay Communications Inc. System and Method for Tracking Messages in a Messaging Service
US8626748B2 (en) 2012-02-03 2014-01-07 International Business Machines Corporation Combined word tree text visualization system
KR101900319B1 (ko) 2012-02-07 2018-09-19 삼성전자 주식회사 서비스 연동 수행 방법과 이를 위한 시스템
US9253135B2 (en) 2012-02-07 2016-02-02 Google Inc. Notification management
US8995960B2 (en) 2012-02-10 2015-03-31 Dedo Interactive, Inc. Mobile device authentication
CN102629246B (zh) 2012-02-10 2017-06-27 百纳(武汉)信息技术有限公司 识别浏览器语音命令的服务器及浏览器语音命令识别方法
US10209954B2 (en) 2012-02-14 2019-02-19 Microsoft Technology Licensing, Llc Equal access to speech and touch input
CN103247290A (zh) 2012-02-14 2013-08-14 富泰华工业(深圳)有限公司 通信装置及其控制方法
US8533266B2 (en) 2012-02-14 2013-09-10 Google Inc. User presence detection and event discovery
CN103259907A (zh) 2012-02-15 2013-08-21 深圳富泰宏精密工业有限公司 情景模式切换系统及方法
US8682932B2 (en) 2012-02-16 2014-03-25 Oracle International Corporation Mechanisms for searching enterprise data graphs
JP2013167806A (ja) 2012-02-16 2013-08-29 Toshiba Corp 情報通知支援装置、情報通知支援方法、および、プログラム
US8832092B2 (en) 2012-02-17 2014-09-09 Bottlenose, Inc. Natural language processing optimized for micro content
BR112014020040A8 (pt) 2012-02-17 2017-07-11 Koninklijke Philips Nv Meio de armazenamento não transitório que armazena as instruções executáveis por um dispositivo de processamento eletrônico de dados que inclui um visor para o monitoramento de um paciente com lesão pulmonar aguda, aparelho, e, método
US8793136B2 (en) 2012-02-17 2014-07-29 Lg Electronics Inc. Method and apparatus for smart voice recognition
US8453058B1 (en) 2012-02-20 2013-05-28 Google Inc. Crowd-sourced audio shortcuts
US9064497B2 (en) 2012-02-22 2015-06-23 Htc Corporation Method and apparatus for audio intelligibility enhancement and computing apparatus
KR101889836B1 (ko) 2012-02-24 2018-08-20 삼성전자주식회사 음성인식을 통한 단말기의 잠금 상태 해제 및 조작 방법 및 장치
US9042867B2 (en) 2012-02-24 2015-05-26 Agnitio S.L. System and method for speaker recognition on mobile devices
EP2631758B1 (en) 2012-02-24 2016-11-02 BlackBerry Limited Touchscreen keyboard providing word predictions in partitions of the touchscreen keyboard in proximate association with candidate letters
US9026441B2 (en) 2012-02-29 2015-05-05 Nant Holdings Ip, Llc Spoken control for user construction of complex behaviors
US8543398B1 (en) 2012-02-29 2013-09-24 Google Inc. Training an automatic speech recognition system using compressed word frequencies
US10984337B2 (en) 2012-02-29 2021-04-20 Microsoft Technology Licensing, Llc Context-based search query formation
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US20130235987A1 (en) 2012-03-06 2013-09-12 Jose Arroniz-Escobar Automatic machine to machine distribution of subscriber contact information
EP2648364B1 (en) 2012-03-07 2018-06-06 Accenture Global Services Limited Communication collaboration
US20130238326A1 (en) 2012-03-08 2013-09-12 Lg Electronics Inc. Apparatus and method for multiple device voice control
US8775177B1 (en) 2012-03-08 2014-07-08 Google Inc. Speech recognition process
US9639174B2 (en) 2012-03-09 2017-05-02 Paypal, Inc. Mobile device display content based on shaking the device
SG11201404678RA (en) 2012-03-14 2014-09-26 Nec Corp Term synonym acquisition method and term synonym acquisition apparatus
US9576593B2 (en) 2012-03-15 2017-02-21 Regents Of The University Of Minnesota Automated verbal fluency assessment
US9223497B2 (en) 2012-03-16 2015-12-29 Blackberry Limited In-context word prediction and word correction
KR101980173B1 (ko) 2012-03-16 2019-05-20 삼성전자주식회사 서드 파티 테스크 공급자들의 서비스 제공을 대행하는 협력적 퍼스널 어시스턴트 시스템 및 그에 따른 방법
EP2639792A1 (en) 2012-03-16 2013-09-18 France Télécom Voice control of applications by associating user input with action-context idendifier pairs
US8898064B1 (en) 2012-03-19 2014-11-25 Rawles Llc Identifying candidate passwords from captured audio
JP5870790B2 (ja) 2012-03-19 2016-03-01 富士通株式会社 文章校正装置、及び文章校正方法
US9414183B2 (en) 2012-03-20 2016-08-09 Nokia Technologies Oy Method and apparatus for providing group context sensing and inference
JP2013200423A (ja) 2012-03-23 2013-10-03 Toshiba Corp 音声対話支援装置、方法、およびプログラム
JP2013200265A (ja) 2012-03-26 2013-10-03 Aisin Aw Co Ltd ナビゲーションアプリがインストールされた電子機器、電子機器の制御方法及びコンピュータプログラム
US9609395B2 (en) 2012-03-26 2017-03-28 Max Abecassis Second screen subtitles function
US9147433B2 (en) 2012-03-26 2015-09-29 Max Abecassis Identifying a locale depicted within a video
JP5965175B2 (ja) 2012-03-27 2016-08-03 ヤフー株式会社 応答生成装置、応答生成方法および応答生成プログラム
US8681950B2 (en) 2012-03-28 2014-03-25 Interactive Intelligence, Inc. System and method for fingerprinting datasets
WO2013144759A1 (en) 2012-03-29 2013-10-03 Telmap Ltd. Location-based assistance for personal planning
US20130262168A1 (en) 2012-03-30 2013-10-03 Sap Ag Systems and methods for customer relationship management
CN103366741B (zh) 2012-03-31 2019-05-17 上海果壳电子有限公司 语音输入纠错方法及系统
US8881269B2 (en) 2012-03-31 2014-11-04 Apple Inc. Device, method, and graphical user interface for integrating recognition of handwriting gestures with a screen reader
ITRM20120142A1 (it) 2012-04-05 2013-10-06 X2Tv S R L Procedimento e sistema per la raccolta in tempo reale di un feedback da parte del pubblico di una trasmissione televisiva o radiofonica
US8996356B1 (en) 2012-04-10 2015-03-31 Google Inc. Techniques for predictive input method editors
US8346563B1 (en) 2012-04-10 2013-01-01 Artificial Solutions Ltd. System and methods for delivering advanced natural language interaction applications
US8892419B2 (en) 2012-04-10 2014-11-18 Artificial Solutions Iberia SL System and methods for semiautomatic generation and tuning of natural language interaction applications
US20130275117A1 (en) 2012-04-11 2013-10-17 Morgan H. Winer Generalized Phonetic Transliteration Engine
US9685160B2 (en) 2012-04-16 2017-06-20 Htc Corporation Method for offering suggestion during conversation, electronic device using the same, and non-transitory storage medium
US9223537B2 (en) 2012-04-18 2015-12-29 Next It Corporation Conversation user interface
US20130282709A1 (en) 2012-04-18 2013-10-24 Yahoo! Inc. Method and system for query suggestion
US20130279724A1 (en) 2012-04-19 2013-10-24 Sony Computer Entertainment Inc. Auto detection of headphone orientation
WO2013155619A1 (en) 2012-04-20 2013-10-24 Sam Pasupalak Conversational agent
US20130283199A1 (en) * 2012-04-24 2013-10-24 Microsoft Corporation Access to an Application Directly from a Lock Screen
US9117449B2 (en) 2012-04-26 2015-08-25 Nuance Communications, Inc. Embedded system for construction of small footprint speech recognition with user-definable constraints
CN102682771B (zh) 2012-04-27 2013-11-20 厦门思德电子科技有限公司 一种适用于云平台的多语音控制方法
TWI511537B (zh) 2012-04-27 2015-12-01 Wistron Corp 智慧型電視系統、智慧型電視、行動裝置及其輸入操作方法
CN104094192B (zh) 2012-04-27 2017-09-29 惠普发展公司,有限责任合伙企业 来自用户的音频输入
JP5921320B2 (ja) * 2012-04-27 2016-05-24 富士通テン株式会社 表示システム、携帯装置、車載装置、及び、プログラム
US20130285916A1 (en) 2012-04-30 2013-10-31 Research In Motion Limited Touchscreen keyboard providing word predictions at locations in association with candidate letters
US20130289991A1 (en) 2012-04-30 2013-10-31 International Business Machines Corporation Application of Voice Tags in a Social Media Context
KR101946364B1 (ko) 2012-05-01 2019-02-11 엘지전자 주식회사 적어도 하나의 마이크 센서를 갖는 모바일 디바이스 및 그 제어방법
US10088853B2 (en) 2012-05-02 2018-10-02 Honeywell International Inc. Devices and methods for interacting with an HVAC controller
CN103384290A (zh) 2012-05-03 2013-11-06 中兴通讯股份有限公司 具备定位导航功能的移动终端及其快捷定位导航的方法
US9058332B1 (en) 2012-05-04 2015-06-16 Google Inc. Blended ranking of dissimilar populations using an N-furcated normalization technique
CN102694909A (zh) 2012-05-07 2012-09-26 深圳桑菲消费通信有限公司 一种手机的智能锁屏系统和方法
KR101977072B1 (ko) 2012-05-07 2019-05-10 엘지전자 주식회사 음성 파일과 관련된 텍스트의 표시 방법 및 이를 구현한 전자기기
US9423870B2 (en) 2012-05-08 2016-08-23 Google Inc. Input determination method
US9406299B2 (en) 2012-05-08 2016-08-02 Nuance Communications, Inc. Differential acoustic model representation and linear transform-based adaptation for efficient user profile update techniques in automatic speech recognition
US8732560B2 (en) 2012-05-08 2014-05-20 Infineon Technologies Ag Method and device for correction of ternary stored binary data
WO2013169842A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for selecting object within a group of objects
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
WO2013169846A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for displaying additional information in response to a user contact
US8725808B2 (en) 2012-05-10 2014-05-13 Intel Mobile Communications GmbH Method for transferring data between a first device and a second device
US9467202B2 (en) 2012-05-10 2016-10-11 Lg Electronics Inc. Method and apparatus for downloading content using NFC
JP5996262B2 (ja) 2012-05-11 2016-09-21 シャープ株式会社 文字入力装置、電子機器、制御方法、制御プログラムおよび記録媒体
US9746916B2 (en) 2012-05-11 2017-08-29 Qualcomm Incorporated Audio user interaction recognition and application interface
US9002768B2 (en) 2012-05-12 2015-04-07 Mikhail Fedorov Human-computer interface system
US8897822B2 (en) 2012-05-13 2014-11-25 Wavemarket, Inc. Auto responder
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US20130308922A1 (en) 2012-05-15 2013-11-21 Microsoft Corporation Enhanced video discovery and productivity through accessibility
US8775442B2 (en) 2012-05-15 2014-07-08 Apple Inc. Semantic search using a single-source semantic model
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US20130307855A1 (en) 2012-05-16 2013-11-21 Mathew J. Lamb Holographic story telling
US20120296638A1 (en) 2012-05-18 2012-11-22 Ashish Patwa Method and system for quickly recognizing and responding to user intents and questions from natural language input using intelligent hierarchical processing and personalized adaptive semantic interface
TWI466101B (zh) 2012-05-18 2014-12-21 Asustek Comp Inc 語音識別方法及系統
CN103426428B (zh) 2012-05-18 2016-05-25 华硕电脑股份有限公司 语音识别方法及系统
US9247306B2 (en) 2012-05-21 2016-01-26 Intellectual Ventures Fund 83 Llc Forming a multimedia product using video chat
US9406084B2 (en) 2012-05-23 2016-08-02 Specialty's Café & Bakery, Inc. Methods for submitting a food order remotely
US8484573B1 (en) 2012-05-23 2013-07-09 Google Inc. Predictive virtual keyboard
US8850037B2 (en) 2012-05-24 2014-09-30 Fmr Llc Communication session transfer between devices
US9173074B2 (en) 2012-05-27 2015-10-27 Qualcomm Incorporated Personal hub presence and response
US9374448B2 (en) 2012-05-27 2016-06-21 Qualcomm Incorporated Systems and methods for managing concurrent audio messages
KR20130133629A (ko) 2012-05-29 2013-12-09 삼성전자주식회사 전자장치에서 음성명령을 실행시키기 위한 장치 및 방법
US20130325436A1 (en) 2012-05-29 2013-12-05 Wright State University Large Scale Distributed Syntactic, Semantic and Lexical Language Models
US9582146B2 (en) * 2012-05-29 2017-02-28 Nokia Technologies Oy Causing display of search results
TWI492221B (zh) 2012-05-30 2015-07-11 友達光電股份有限公司 遙控裝置、遙控系統及遙控裝置之控制方法
US9307293B2 (en) 2012-05-30 2016-04-05 Palo Alto Research Center Incorporated Collaborative video application for remote servicing
US20130325447A1 (en) 2012-05-31 2013-12-05 Elwha LLC, a limited liability corporation of the State of Delaware Speech recognition adaptation systems based on adaptation data
US9620128B2 (en) 2012-05-31 2017-04-11 Elwha Llc Speech recognition adaptation systems based on adaptation data
CN102750087A (zh) 2012-05-31 2012-10-24 华为终端有限公司 控制语音识别功能的方法、装置和终端设备
US8768693B2 (en) 2012-05-31 2014-07-01 Yahoo! Inc. Automatic tag extraction from audio annotated photos
CN103455234A (zh) 2012-06-01 2013-12-18 腾讯科技(深圳)有限公司 显示应用程序界面的方法及装置
JP2013248292A (ja) 2012-06-01 2013-12-12 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システムおよび表示方法
US9123338B1 (en) 2012-06-01 2015-09-01 Google Inc. Background audio identification for speech disambiguation
US20130321267A1 (en) 2012-06-04 2013-12-05 Apple Inc. Dynamically changing a character associated with a key of a keyboard
US20130325343A1 (en) 2012-06-05 2013-12-05 Apple Inc. Mapping application with novel search field
US8515750B1 (en) 2012-06-05 2013-08-20 Google Inc. Realtime acoustic adaptation using stability measures
US10156455B2 (en) 2012-06-05 2018-12-18 Apple Inc. Context-aware voice guidance
US9997069B2 (en) 2012-06-05 2018-06-12 Apple Inc. Context-aware voice guidance
US9311750B2 (en) 2012-06-05 2016-04-12 Apple Inc. Rotation operations in a mapping application
US9043150B2 (en) 2012-06-05 2015-05-26 Apple Inc. Routing applications for navigation
US8725823B2 (en) 2012-06-05 2014-05-13 Forget You Not, LLC Location-based communications
US10444836B2 (en) 2012-06-07 2019-10-15 Nook Digital, Llc Accessibility aids for users of electronic devices
US9071564B2 (en) 2012-06-07 2015-06-30 Apple Inc. Data synchronization using mail and push notification services
US20130332168A1 (en) 2012-06-08 2013-12-12 Samsung Electronics Co., Ltd. Voice activated search and control for applications
US9002380B2 (en) 2012-06-08 2015-04-07 Apple Inc. Proximity-based notifications in a mobile device
US9674331B2 (en) 2012-06-08 2017-06-06 Apple Inc. Transmitting data from an automated assistant to an accessory
US20130332159A1 (en) 2012-06-08 2013-12-12 Apple Inc. Using fan throttling to enhance dictation accuracy
WO2013185107A1 (en) 2012-06-08 2013-12-12 Spotify Ab Systems and methods for recognizing ambiguity in metadata
US10019994B2 (en) 2012-06-08 2018-07-10 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9916514B2 (en) 2012-06-11 2018-03-13 Amazon Technologies, Inc. Text recognition driven functionality
EP2675147B1 (en) 2012-06-11 2022-03-23 Samsung Electronics Co., Ltd. Service providing system in a vehicle including display device and mobile device, and method for providing service using the same
JP6368455B2 (ja) 2012-06-12 2018-08-01 京セラ株式会社 装置、方法、及びプログラム
US9183845B1 (en) 2012-06-12 2015-11-10 Amazon Technologies, Inc. Adjusting audio signals based on a specific frequency range associated with environmental noise characteristics
JP5921348B2 (ja) 2012-06-13 2016-05-24 三菱電機株式会社 映像表示端末
JP2015529870A (ja) 2012-06-14 2015-10-08 フレクストロニクス エイピー エルエルシーFlextronics Ap,Llc テレビコンテンツをカスタマイズする方法及びシステム
WO2013185329A1 (en) 2012-06-14 2013-12-19 Nokia Corporation Method and apparatus for associating interest tags with media items based on social diffusions among users
US20130339454A1 (en) 2012-06-15 2013-12-19 Michael Walker Systems and methods for communicating between multiple access devices
JP5819261B2 (ja) 2012-06-19 2015-11-18 株式会社Nttドコモ 機能実行指示システム、機能実行指示方法及び機能実行指示プログラム
US9185501B2 (en) 2012-06-20 2015-11-10 Broadcom Corporation Container-located information transfer module
US9734839B1 (en) 2012-06-20 2017-08-15 Amazon Technologies, Inc. Routing natural language commands to the appropriate applications
US20140012574A1 (en) 2012-06-21 2014-01-09 Maluuba Inc. Interactive timeline for presenting and organizing tasks
US20130347018A1 (en) 2012-06-21 2013-12-26 Amazon Technologies, Inc. Providing supplemental content with active media
US20130347029A1 (en) 2012-06-21 2013-12-26 United Video Properties, Inc. Systems and methods for navigating to content without an advertisement
US20130346347A1 (en) 2012-06-22 2013-12-26 Google Inc. Method to Predict a Communicative Action that is Most Likely to be Executed Given a Context
US8606577B1 (en) 2012-06-25 2013-12-10 Google Inc. Visual confirmation of voice recognized text input
US9305555B2 (en) 2012-06-25 2016-04-05 Mitsubishi Electric Corporation Onboard information device
US20130342672A1 (en) 2012-06-25 2013-12-26 Amazon Technologies, Inc. Using gaze determination with device input
US9813882B1 (en) 2012-06-25 2017-11-07 Amazon Technologies, Inc. Mobile notifications based upon notification content
US20130346068A1 (en) 2012-06-25 2013-12-26 Apple Inc. Voice-Based Image Tagging and Searching
US8819841B2 (en) 2012-06-26 2014-08-26 Google Inc. Automated accounts for media playback
WO2014000081A1 (en) 2012-06-26 2014-01-03 Research In Motion Limited Methods and apparatus to detect and add impact events to a calendar program
US20140006153A1 (en) 2012-06-27 2014-01-02 Infosys Limited System for making personalized offers for business facilitation of an entity and methods thereof
CN102801853B (zh) 2012-06-27 2017-02-15 宇龙计算机通信科技(深圳)有限公司 移动终端和自动触发任务执行方法
US20140002338A1 (en) 2012-06-28 2014-01-02 Intel Corporation Techniques for pose estimation and false positive filtering for gesture recognition
US9141504B2 (en) 2012-06-28 2015-09-22 Apple Inc. Presenting status data received from multiple devices
JP6050625B2 (ja) 2012-06-28 2016-12-21 サターン ライセンシング エルエルシーSaturn Licensing LLC 情報処理装置及び情報処理方法、コンピューター・プログラム、並びに情報通信システム
KR101961139B1 (ko) 2012-06-28 2019-03-25 엘지전자 주식회사 이동 단말기 및 그것의 음성 인식 방법
US9996628B2 (en) 2012-06-29 2018-06-12 Verisign, Inc. Providing audio-activated resource access for user devices based on speaker voiceprint
JP5852930B2 (ja) 2012-06-29 2016-02-03 Kddi株式会社 入力文字推定装置およびプログラム
US9195383B2 (en) 2012-06-29 2015-11-24 Spotify Ab Systems and methods for multi-path control signals for media presentation devices
US9426229B2 (en) 2012-06-29 2016-08-23 Nokia Technologies Oy Apparatus and method for selection of a device for content sharing operations
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US10620797B2 (en) 2012-06-29 2020-04-14 Spotify Ab Systems and methods for multi-context media control and playback
US20140006012A1 (en) 2012-07-02 2014-01-02 Microsoft Corporation Learning-Based Processing of Natural Language Questions
CN103533143A (zh) 2012-07-03 2014-01-22 联想(北京)有限公司 一种信息处理方法及电子设备
US9536528B2 (en) 2012-07-03 2017-01-03 Google Inc. Determining hotword suitability
KR101972955B1 (ko) 2012-07-03 2019-04-26 삼성전자 주식회사 음성을 이용한 사용자 디바이스들 간 서비스 연결 방법 및 장치
KR20140004515A (ko) 2012-07-03 2014-01-13 삼성전자주식회사 디스플레이 장치, 대화형 시스템 및 응답 정보 제공 방법
CN103543902A (zh) 2012-07-09 2014-01-29 上海博路信息技术有限公司 一种短信地址的地图显示方法
US9064493B2 (en) 2012-07-09 2015-06-23 Nuance Communications, Inc. Detecting potential significant errors in speech recognition results
CN103544140A (zh) 2012-07-12 2014-01-29 国际商业机器公司 一种数据处理方法、展示方法和相应的装置
US20140019460A1 (en) 2012-07-12 2014-01-16 Yahoo! Inc. Targeted search suggestions
US9053708B2 (en) 2012-07-18 2015-06-09 International Business Machines Corporation System, method and program product for providing automatic speech recognition (ASR) in a shared resource environment
JP2015531909A (ja) 2012-07-20 2015-11-05 インタートラスト テクノロジーズ コーポレイション 情報ターゲティングシステムおよび方法
US9658746B2 (en) 2012-07-20 2017-05-23 Nook Digital, Llc Accessible reading mode techniques for electronic devices
US9442687B2 (en) 2012-07-23 2016-09-13 Korea Advanced Institute Of Science And Technology Method and apparatus for moving web object based on intent
US9953584B2 (en) 2012-07-24 2018-04-24 Nook Digital, Llc Lighting techniques for display devices
US20140028477A1 (en) 2012-07-24 2014-01-30 Apple Inc. Vehicle location system
US9179250B2 (en) 2012-07-25 2015-11-03 Aro, Inc. Recommendation agent using a routine model determined from mobile device data
US8589911B1 (en) 2012-07-26 2013-11-19 Google Inc. Intent fulfillment
US8949334B2 (en) 2012-07-26 2015-02-03 Microsoft Corporation Push-based recommendations
JP2014026629A (ja) 2012-07-26 2014-02-06 Panasonic Corp 入力装置及び入力支援方法
US8442821B1 (en) 2012-07-27 2013-05-14 Google Inc. Multi-frame prediction for hybrid neural network/hidden Markov models
US8922034B2 (en) 2012-07-27 2014-12-30 Illinois Tool Works Inc. Power converter for engine generator
RU2635046C2 (ru) 2012-07-27 2017-11-08 Сони Корпорейшн Система обработки информации и носитель информации
US8990343B2 (en) 2012-07-30 2015-03-24 Google Inc. Transferring a state of an application from a first computing device to a second computing device
US9465833B2 (en) 2012-07-31 2016-10-11 Veveo, Inc. Disambiguating user intent in conversational interaction system for large corpus information retrieval
US20140039893A1 (en) 2012-07-31 2014-02-06 Sri International Personalized Voice-Driven User Interfaces for Remote Multi-User Services
US20140035823A1 (en) 2012-08-01 2014-02-06 Apple Inc. Dynamic Context-Based Language Determination
US8831957B2 (en) 2012-08-01 2014-09-09 Google Inc. Speech recognition models based on location indicia
US10108725B2 (en) 2012-08-02 2018-10-23 Rule 14 Real-time and adaptive data mining
US8953764B2 (en) 2012-08-06 2015-02-10 Angel.Com Incorporated Dynamic adjustment of recommendations using a conversation assistant
US9390174B2 (en) 2012-08-08 2016-07-12 Google Inc. Search result ranking and presentation
CN104704797B (zh) 2012-08-10 2018-08-10 纽昂斯通讯公司 用于电子设备的虚拟代理通信
US10163058B2 (en) 2012-08-14 2018-12-25 Sri International Method, system and device for inferring a mobile user's current context and proactively providing assistance
US20140052791A1 (en) 2012-08-14 2014-02-20 International Business Machines Corporation Task Based Filtering of Unwanted Electronic Communications
US20140053101A1 (en) 2012-08-15 2014-02-20 Ge Aviation Systems Llc Methods for displaying on a graphical user interface
US20160100037A1 (en) 2012-08-15 2016-04-07 Ie Business Plains, Llc Online collaborative suite
EP2803004A1 (en) 2012-08-16 2014-11-19 Nuance Communications, Inc. User interface for entertainment systems
US9497515B2 (en) 2012-08-16 2016-11-15 Nuance Communications, Inc. User interface for entertainment systems
US9031848B2 (en) 2012-08-16 2015-05-12 Nuance Communications, Inc. User interface for searching a bundled service content data source
US9292487B1 (en) 2012-08-16 2016-03-22 Amazon Technologies, Inc. Discriminative language model pruning
KR101922464B1 (ko) 2012-08-16 2018-11-27 삼성전자주식회사 메시지 송수신 방법 및 그 전자장치
CN102820033B (zh) 2012-08-17 2013-12-04 南京大学 一种声纹识别方法
US20160357790A1 (en) 2012-08-20 2016-12-08 InsideSales.com, Inc. Resolving and merging duplicate records using machine learning
US20140279739A1 (en) 2013-03-15 2014-09-18 InsideSales.com, Inc. Resolving and merging duplicate records using machine learning
US9229924B2 (en) 2012-08-24 2016-01-05 Microsoft Technology Licensing, Llc Word detection and domain dictionary recommendation
KR20140025996A (ko) * 2012-08-24 2014-03-05 엘지전자 주식회사 단말기 및 그 제어 방법
WO2014029099A1 (en) 2012-08-24 2014-02-27 Microsoft Corporation I-vector based clustering training data in speech recognition
JP5936698B2 (ja) 2012-08-27 2016-06-22 株式会社日立製作所 単語意味関係抽出装置
US9390370B2 (en) 2012-08-28 2016-07-12 International Business Machines Corporation Training deep neural network acoustic models using distributed hessian-free optimization
US9049295B1 (en) 2012-08-28 2015-06-02 West Corporation Intelligent interactive voice response system for processing customer communications
WO2014033350A1 (en) 2012-08-28 2014-03-06 Nokia Corporation Discovery method and apparatuses and system for discovery
JP6393021B2 (ja) 2012-08-28 2018-09-19 京セラ株式会社 電子機器、制御方法、及び制御プログラム
US9026425B2 (en) 2012-08-28 2015-05-05 Xerox Corporation Lexical and phrasal feature domain adaptation in statistical machine translation
KR102081925B1 (ko) 2012-08-29 2020-02-26 엘지전자 주식회사 디스플레이 디바이스 및 스피치 검색 방법
CN102866828B (zh) 2012-08-29 2015-11-25 腾讯科技(深圳)有限公司 一种终端控制方法和设备
US9218333B2 (en) 2012-08-31 2015-12-22 Microsoft Technology Licensing, Llc Context sensitive auto-correction
US9424840B1 (en) 2012-08-31 2016-08-23 Amazon Technologies, Inc. Speech recognition platforms
US20140074589A1 (en) 2012-09-02 2014-03-13 Aaron David NIELSEN System and method for the selection and delivery of a customized consumer offer or engagement dialog by a live customer service representative in communication with a consumer
KR101398218B1 (ko) 2012-09-03 2014-05-22 경희대학교 산학협력단 감정 음성 인식장치 및 방법
CN103493500A (zh) 2012-09-04 2014-01-01 华为终端有限公司 媒体播放方法、控制点和终端
US8826415B2 (en) 2012-09-04 2014-09-02 Apple Inc. Automated device access
JP2014052445A (ja) 2012-09-06 2014-03-20 Canon Inc ズームレンズ
US9325809B1 (en) 2012-09-07 2016-04-26 Mindmeld, Inc. Audio recall during voice conversations
US9536049B2 (en) 2012-09-07 2017-01-03 Next It Corporation Conversational virtual healthcare assistant
US20140074466A1 (en) 2012-09-10 2014-03-13 Google Inc. Answering questions using environmental context
EP2706458A1 (en) 2012-09-10 2014-03-12 Canon Kabushiki Kaisha Method and device for controlling communication between applications in a web runtime environment
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US8600746B1 (en) 2012-09-10 2013-12-03 Google Inc. Speech recognition parameter adjustment
US20150088523A1 (en) 2012-09-10 2015-03-26 Google Inc. Systems and Methods for Designing Voice Applications
US20140074470A1 (en) 2012-09-11 2014-03-13 Google Inc. Phonetic pronunciation
US20140074472A1 (en) 2012-09-12 2014-03-13 Chih-Hung Lin Voice control system with portable voice control device
WO2014040263A1 (en) 2012-09-14 2014-03-20 Microsoft Corporation Semantic ranking using a forward index
US20140078065A1 (en) 2012-09-15 2014-03-20 Ahmet Akkok Predictive Keyboard With Suppressed Keys
US9519641B2 (en) 2012-09-18 2016-12-13 Abbyy Development Llc Photography recognition translation
US10656808B2 (en) 2012-09-18 2020-05-19 Adobe Inc. Natural language and user interface controls
US9081482B1 (en) 2012-09-18 2015-07-14 Google Inc. Text input suggestion ranking
JP6057637B2 (ja) 2012-09-18 2017-01-11 株式会社アイ・オー・データ機器 携帯型情報端末装置、機能切替方法、および機能切替プログラム
US8823507B1 (en) 2012-09-19 2014-09-02 Amazon Technologies, Inc. Variable notification alerts
US9105268B2 (en) 2012-09-19 2015-08-11 24/7 Customer, Inc. Method and apparatus for predicting intent in IVR using natural language queries
US8769651B2 (en) 2012-09-19 2014-07-01 Secureauth Corporation Mobile multifactor single-sign-on authentication
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
KR101919792B1 (ko) 2012-09-20 2018-11-19 엘지전자 주식회사 휴대 단말기 및 그 제어 방법
US10042603B2 (en) 2012-09-20 2018-08-07 Samsung Electronics Co., Ltd. Context aware service provision method and apparatus of user device
US9076450B1 (en) 2012-09-21 2015-07-07 Amazon Technologies, Inc. Directed audio for speech recognition
US20140211944A1 (en) 2012-09-24 2014-07-31 Daniel Joseph Lutz System and method of protecting, storing and decrypting keys over a computerized network
US8935167B2 (en) 2012-09-25 2015-01-13 Apple Inc. Exemplar-based latent perceptual modeling for automatic speech recognition
US9092415B2 (en) 2012-09-25 2015-07-28 Rovi Guides, Inc. Systems and methods for automatic program recommendations based on user interactions
US8983383B1 (en) 2012-09-25 2015-03-17 Rawles Llc Providing hands-free service to multiple devices
US8983836B2 (en) 2012-09-26 2015-03-17 International Business Machines Corporation Captioning using socially derived acoustic profiles
US20140087711A1 (en) 2012-09-27 2014-03-27 Aegis Mobility, Inc. Mobile device context incorporating near field communications
CN104469255A (zh) 2013-09-16 2015-03-25 杜比实验室特许公司 改进的音频或视频会议
JP2014072586A (ja) 2012-09-27 2014-04-21 Sharp Corp 表示装置、表示方法、テレビジョン受像機、プログラム、および、記録媒体
US8498864B1 (en) 2012-09-27 2013-07-30 Google Inc. Methods and systems for predicting a text
US9052964B2 (en) 2012-09-28 2015-06-09 International Business Machines Corporation Device operability enhancement with alternative device utilization
US10096316B2 (en) 2013-11-27 2018-10-09 Sri International Sharing intents to provide virtual assistance in a multi-person dialog
US8806613B2 (en) 2012-09-28 2014-08-12 Intel Corporation Intelligent task assignment and authorization systems and methods
US10824310B2 (en) 2012-12-20 2020-11-03 Sri International Augmented reality virtual personal assistant for external representation
KR20140042994A (ko) 2012-09-28 2014-04-08 한국전자통신연구원 가상 에이전트와의 대화 내용에서 자동으로 추출되는 개인 프로파일링 정보를 이용한 자동학습 기반의 인공지능 대화 시스템
US20140095172A1 (en) 2012-10-01 2014-04-03 Nuance Communications, Inc. Systems and methods for providing a voice agent user interface
US10276157B2 (en) 2012-10-01 2019-04-30 Nuance Communications, Inc. Systems and methods for providing a voice agent user interface
US20140095171A1 (en) 2012-10-01 2014-04-03 Nuance Communications, Inc. Systems and methods for providing a voice agent user interface
US8645128B1 (en) 2012-10-02 2014-02-04 Google Inc. Determining pitch dynamics of an audio signal
US9367236B2 (en) 2012-10-05 2016-06-14 Google Inc. System and method for processing touch actions
US9230560B2 (en) 2012-10-08 2016-01-05 Nant Holdings Ip, Llc Smart home automation systems and methods
KR102009423B1 (ko) 2012-10-08 2019-08-09 삼성전자주식회사 음성 인식을 이용한 미리 설정된 동작 모드의 수행 방법 및 장치
US8606568B1 (en) 2012-10-10 2013-12-10 Google Inc. Evaluating pronouns in context
US8543397B1 (en) 2012-10-11 2013-09-24 Google Inc. Mobile device voice activation
JP6066471B2 (ja) 2012-10-12 2017-01-25 本田技研工業株式会社 対話システム及び対話システム向け発話の判別方法
US8713433B1 (en) 2012-10-16 2014-04-29 Google Inc. Feature-based autocorrection
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
CN103727948B (zh) * 2012-10-16 2016-08-17 北京掌行通信息技术有限公司 乘车导航的实时诱导方法
CN102882752A (zh) 2012-10-19 2013-01-16 天津光宏科技有限公司 基于物联网及安卓系统的智能家居系统及控制方法
US9031293B2 (en) 2012-10-19 2015-05-12 Sony Computer Entertainment Inc. Multi-modal sensor based emotion recognition and emotional interface
US9319445B2 (en) 2012-10-22 2016-04-19 Spotify Ab Systems and methods for pre-fetching media content
JP2016502175A (ja) 2012-10-22 2016-01-21 ヴィド スケール インコーポレイテッド モバイルデバイスにおけるユーザプレゼンスの検出
US8527276B1 (en) 2012-10-25 2013-09-03 Google Inc. Speech synthesis using deep neural networks
US9305439B2 (en) 2012-10-25 2016-04-05 Google Inc. Configurable indicator on computing device
US9459176B2 (en) 2012-10-26 2016-10-04 Azima Holdings, Inc. Voice controlled vibration data analyzer systems and methods
US9158560B2 (en) * 2012-10-26 2015-10-13 Verizon Patent And Licensing Inc. Dynamic application arranger
US20140122086A1 (en) 2012-10-26 2014-05-01 Microsoft Corporation Augmenting speech recognition with depth imaging
WO2014064324A1 (en) 2012-10-26 2014-05-01 Nokia Corporation Multi-device speech recognition
KR20140054643A (ko) 2012-10-29 2014-05-09 삼성전자주식회사 음성인식장치 및 음성인식방법
KR101967917B1 (ko) 2012-10-30 2019-08-13 삼성전자주식회사 음성을 인식하는 전자 장치 및 방법
WO2014070872A2 (en) 2012-10-30 2014-05-08 Robert Bosch Gmbh System and method for multimodal interaction with reduced distraction in operating vehicles
KR102117841B1 (ko) 2012-10-30 2020-06-02 삼성전자주식회사 전자장치 및 그 제어방법
US10304465B2 (en) 2012-10-30 2019-05-28 Google Technology Holdings LLC Voice control user interface for low power mode
US9734151B2 (en) 2012-10-31 2017-08-15 Tivo Solutions Inc. Method and system for voice based media search
WO2014071043A1 (en) 2012-10-31 2014-05-08 DoWhatILikeBest, LLC Favorite and serendipitous event correlation and notification
US8606576B1 (en) 2012-11-02 2013-12-10 Google Inc. Communication log with extracted keywords from speech-to-text processing
US9093069B2 (en) 2012-11-05 2015-07-28 Nuance Communications, Inc. Privacy-sensitive speech model creation via aggregation of multiple user models
JP6018881B2 (ja) 2012-11-07 2016-11-02 株式会社日立製作所 ナビゲーション装置、及びナビゲーション方法
EP2917871A4 (en) 2012-11-07 2015-11-11 Intertrust Tech Corp SYSTEMS AND METHODS FOR MANAGING CUSTOMIZED DATA
US20140136987A1 (en) 2012-11-09 2014-05-15 Apple Inc. Generation of a user interface based on contacts
US9275642B2 (en) 2012-11-13 2016-03-01 Unified Computer Intelligence Corporation Voice-operated internet-ready ubiquitous computing device and method thereof
US9247387B2 (en) 2012-11-13 2016-01-26 International Business Machines Corporation Proximity based reminders
KR20140060995A (ko) 2012-11-13 2014-05-21 삼성전자주식회사 상황별 거절 메시지 제공 방법 및 이를 지원하는 단말기
US9235321B2 (en) 2012-11-14 2016-01-12 Facebook, Inc. Animation sequence associated with content item
KR101709187B1 (ko) 2012-11-14 2017-02-23 한국전자통신연구원 계층적 대화 태스크 라이브러리를 이용한 이중 대화관리 기반 음성대화시스템
KR20140061803A (ko) 2012-11-14 2014-05-22 삼성전자주식회사 프로젝션 장치
US9798799B2 (en) 2012-11-15 2017-10-24 Sri International Vehicle personal assistant that interprets spoken natural language input based upon vehicle context
US9085303B2 (en) 2012-11-15 2015-07-21 Sri International Vehicle personal assistant
KR102028702B1 (ko) 2012-11-16 2019-10-04 삼성전자주식회사 현재의 상태에 따른 응답 메시지를 송신하는 전자 장치 및 방법
US9032219B2 (en) 2012-11-16 2015-05-12 Nuance Communications, Inc. Securing speech recognition data
US9378456B2 (en) 2012-11-19 2016-06-28 Microsoft Technology Licensing, Llc Task completion
US9251713B1 (en) 2012-11-20 2016-02-02 Anthony J. Giovanniello System and process for assessing a user and for assisting a user in rehabilitation
JP2014102669A (ja) 2012-11-20 2014-06-05 Toshiba Corp 情報処理装置、情報処理方法およびプログラム
KR20140064246A (ko) 2012-11-20 2014-05-28 한국전자통신연구원 착용형 디스플레이 장치
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
KR101995428B1 (ko) 2012-11-20 2019-07-02 엘지전자 주식회사 이동 단말기 및 그 제어방법
US8965754B2 (en) 2012-11-20 2015-02-24 International Business Machines Corporation Text prediction using environment hints
CA2892614C (en) 2012-11-22 2021-06-08 8303142 Canada Inc. System and method for managing several mobile devices simultaneously
US20140146200A1 (en) 2012-11-28 2014-05-29 Research In Motion Limited Entries to an electronic calendar
WO2014142702A1 (en) 2013-03-15 2014-09-18 Obschestvo S Ogranichennoy Otvetstvennostiyu "Speaktoit" Selective speech recognition for chat and digital personal assistant systems
WO2014084413A1 (ko) 2012-11-28 2014-06-05 엘지전자 주식회사 가전 기기 구동 장치 및 방법
RU2530268C2 (ru) 2012-11-28 2014-10-10 Общество с ограниченной ответственностью "Спиктуит" Способ обучения информационной диалоговой системы пользователем
US20140149118A1 (en) 2012-11-28 2014-05-29 Lg Electronics Inc. Apparatus and method for driving electric device using speech recognition
AU2013352236B2 (en) 2012-11-29 2018-08-02 Edsense, L.L.C. System and method for displaying multiple applications
JP2014109889A (ja) 2012-11-30 2014-06-12 Toshiba Corp コンテンツ検索装置、コンテンツ検索方法及び制御プログラム
US9589149B2 (en) 2012-11-30 2017-03-07 Microsoft Technology Licensing, Llc Combining personalization and privacy locally on devices
US9549323B2 (en) 2012-12-03 2017-01-17 Samsung Electronics Co., Ltd. Method and mobile terminal for controlling screen lock
US9159319B1 (en) 2012-12-03 2015-10-13 Amazon Technologies, Inc. Keyword spotting with competitor models
US9819786B2 (en) 2012-12-05 2017-11-14 Facebook, Inc. Systems and methods for a symbol-adaptable keyboard
US9026429B2 (en) 2012-12-05 2015-05-05 Facebook, Inc. Systems and methods for character string auto-suggestion based on degree of difficulty
US8615221B1 (en) 2012-12-06 2013-12-24 Google Inc. System and method for selection of notification techniques in an electronic device
US20140164476A1 (en) 2012-12-06 2014-06-12 At&T Intellectual Property I, Lp Apparatus and method for providing a virtual assistant
US9244905B2 (en) 2012-12-06 2016-01-26 Microsoft Technology Licensing, Llc Communication context based predictive-text suggestion
US8930181B2 (en) 2012-12-06 2015-01-06 Prashant Parikh Automatic dynamic contextual data entry completion
US20140163951A1 (en) 2012-12-07 2014-06-12 Xerox Corporation Hybrid adaptation of named entity recognition
KR102091003B1 (ko) 2012-12-10 2020-03-19 삼성전자 주식회사 음성인식 기술을 이용한 상황 인식 서비스 제공 방법 및 장치
US9471559B2 (en) 2012-12-10 2016-10-18 International Business Machines Corporation Deep analysis of natural language questions for question answering system
US9148394B2 (en) 2012-12-11 2015-09-29 Nuance Communications, Inc. Systems and methods for user interface presentation of virtual agent
US9679300B2 (en) 2012-12-11 2017-06-13 Nuance Communications, Inc. Systems and methods for virtual agent recommendation for multiple persons
US20140164953A1 (en) 2012-12-11 2014-06-12 Nuance Communications, Inc. Systems and methods for invoking virtual agent
US9659298B2 (en) 2012-12-11 2017-05-23 Nuance Communications, Inc. Systems and methods for informing virtual agent recommendation
WO2014093339A1 (en) 2012-12-11 2014-06-19 Nuance Communications, Inc. System and methods for virtual agent recommendation for multiple persons
US9704486B2 (en) 2012-12-11 2017-07-11 Amazon Technologies, Inc. Speech recognition power management
US9276802B2 (en) 2012-12-11 2016-03-01 Nuance Communications, Inc. Systems and methods for sharing information between virtual agents
US20140164532A1 (en) 2012-12-11 2014-06-12 Nuance Communications, Inc. Systems and methods for virtual agent participation in multiparty conversation
US9697827B1 (en) 2012-12-11 2017-07-04 Amazon Technologies, Inc. Error reduction in speech processing
US9190057B2 (en) 2012-12-12 2015-11-17 Amazon Technologies, Inc. Speech model retrieval in distributed speech recognition systems
US9117450B2 (en) 2012-12-12 2015-08-25 Nuance Communications, Inc. Combining re-speaking, partial agent transcription and ASR for improved accuracy / human guided ASR
US9185742B2 (en) 2012-12-13 2015-11-10 Google Technology Holdings LLC System and methods for a cloud based wireless personal area network service enabling context activity handoffs between devices
KR102090269B1 (ko) 2012-12-14 2020-03-17 삼성전자주식회사 정보 검색 방법, 그와 같은 기능을 갖는 디바이스 및 기록 매체
KR102014778B1 (ko) 2012-12-14 2019-08-27 엘지전자 주식회사 텍스트 메시징 서비스를 제공하는 디지털 디바이스 및 그 제어 방법
US9141660B2 (en) 2012-12-17 2015-09-22 International Business Machines Corporation Intelligent evidence classification and notification in a deep question answering system
CN103870168A (zh) * 2012-12-17 2014-06-18 北京千橡网景科技发展有限公司 利用锁屏获取信息的方法和设备
US9213754B1 (en) 2012-12-17 2015-12-15 Google Inc. Personalizing content items
WO2014098477A1 (ko) 2012-12-18 2014-06-26 삼성전자 주식회사 홈 네트워크 시스템에서 홈 디바이스를 원격으로 제어하는 방법 및 장치
US9098467B1 (en) 2012-12-19 2015-08-04 Rawles Llc Accepting voice commands based on user identity
US9070366B1 (en) 2012-12-19 2015-06-30 Amazon Technologies, Inc. Architecture for multi-domain utterance processing
US20140179295A1 (en) 2012-12-20 2014-06-26 Enno Luebbers Deriving environmental context and actions from ad-hoc state broadcast
US8977555B2 (en) 2012-12-20 2015-03-10 Amazon Technologies, Inc. Identification of utterance subjects
US8645138B1 (en) 2012-12-20 2014-02-04 Google Inc. Two-pass decoding for speech recognition of search and action requests
WO2014096506A1 (en) 2012-12-21 2014-06-26 Nokia Corporation Method, apparatus, and computer program product for personalizing speech recognition
KR20140082157A (ko) 2012-12-24 2014-07-02 한국전자통신연구원 다중 음향 모델을 이용하여 음성을 인식하기 위한 장치 및 그 방법
JP2014126600A (ja) 2012-12-25 2014-07-07 Panasonic Corp 音声認識装置、音声認識方法、およびテレビ
JP2014124332A (ja) 2012-12-26 2014-07-07 Daiichi Shokai Co Ltd 遊技機
KR102000253B1 (ko) 2012-12-29 2019-07-16 애플 인크. 사용자 인터페이스 계층을 내비게이션하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
AU2013368441B2 (en) 2012-12-29 2016-04-14 Apple Inc. Device, method, and graphical user interface for forgoing generation of tactile output for a multi-contact gesture
CN105144057B (zh) 2012-12-29 2019-05-17 苹果公司 用于根据具有模拟三维特征的控制图标的外观变化来移动光标的设备、方法和图形用户界面
CN107831991B (zh) 2012-12-29 2020-11-27 苹果公司 用于确定是滚动还是选择内容的设备、方法和图形用户界面
CN103077165A (zh) 2012-12-31 2013-05-01 威盛电子股份有限公司 自然语言对话方法及其系统
CN103049567A (zh) 2012-12-31 2013-04-17 威盛电子股份有限公司 检索方法、检索系统以及自然语言理解系统
CN103021403A (zh) 2012-12-31 2013-04-03 威盛电子股份有限公司 基于语音识别的选择方法及其移动终端装置及信息系统
CN103020047A (zh) 2012-12-31 2013-04-03 威盛电子股份有限公司 修正语音应答的方法及自然语言对话系统
US8571851B1 (en) 2012-12-31 2013-10-29 Google Inc. Semantic interpretation using user gaze order
CN103902630B (zh) 2012-12-31 2017-08-18 华为技术有限公司 处理消息的方法、终端和系统
KR20140088449A (ko) 2013-01-02 2014-07-10 엘지전자 주식회사 중앙 제어 장치 및 그것의 제어 방법
US9497137B2 (en) 2013-01-04 2016-11-15 Sookbox, LLC Digital content connectivity and control via a plurality of controllers that are treated discriminatively
KR101892734B1 (ko) 2013-01-04 2018-08-28 한국전자통신연구원 음성 인식 시스템에서의 오류 수정 방법 및 그 장치
KR20140089862A (ko) 2013-01-07 2014-07-16 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
KR20140093303A (ko) 2013-01-07 2014-07-28 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
JPWO2014109104A1 (ja) 2013-01-08 2017-01-19 クラリオン株式会社 音声認識装置、音声認識プログラム及び音声認識方法
US20140195233A1 (en) 2013-01-08 2014-07-10 Spansion Llc Distributed Speech Recognition System
DE112013006384T5 (de) 2013-01-09 2015-09-24 Mitsubishi Electric Corporation Spracherkennungsvorrichtung und Anzeigeverfahren
US20140198047A1 (en) 2013-01-14 2014-07-17 Nuance Communications, Inc. Reducing error rates for touch based keyboards
US8731912B1 (en) 2013-01-16 2014-05-20 Google Inc. Delaying audio notifications
US9292489B1 (en) 2013-01-16 2016-03-22 Google Inc. Sub-lexical language models with word level pronunciation lexicons
US8942674B2 (en) 2013-01-18 2015-01-27 Blackberry Limited Responding to incoming calls
US9047274B2 (en) 2013-01-21 2015-06-02 Xerox Corporation Machine translation-driven authoring system and method
US20140203939A1 (en) 2013-01-21 2014-07-24 Rtc Inc. Control and monitoring of light-emitting-diode (led) bulbs
JP2014140121A (ja) 2013-01-21 2014-07-31 Sharp Corp 会議支援システム
US9148499B2 (en) 2013-01-22 2015-09-29 Blackberry Limited Method and system for automatically identifying voice tags through user operation
EP2760015A1 (en) 2013-01-23 2014-07-30 BlackBerry Limited Event-triggered hands-free multitasking for media playback
US9530409B2 (en) 2013-01-23 2016-12-27 Blackberry Limited Event-triggered hands-free multitasking for media playback
CN103971680B (zh) 2013-01-24 2018-06-05 华为终端(东莞)有限公司 一种语音识别的方法、装置
US9165566B2 (en) 2013-01-24 2015-10-20 Microsoft Technology Licensing, Llc Indefinite speech inputs
DE102013001219B4 (de) 2013-01-25 2019-08-29 Inodyn Newmedia Gmbh Verfahren und System zur Sprachaktivierung eines Software-Agenten aus einem Standby-Modus
JP2014142566A (ja) 2013-01-25 2014-08-07 Alpine Electronics Inc 音声認識システムおよび音声認識方法
US9971495B2 (en) 2013-01-28 2018-05-15 Nook Digital, Llc Context based gesture delineation for user interaction in eyes-free mode
JP6251958B2 (ja) 2013-01-28 2017-12-27 富士通株式会社 発話解析装置、音声対話制御装置、方法、及びプログラム
JP6115152B2 (ja) 2013-01-29 2017-04-19 コニカミノルタ株式会社 情報処理システム、情報処理装置、情報処理端末及びプログラム
KR20140098947A (ko) 2013-01-31 2014-08-11 삼성전자주식회사 광고 제공 시스템, 사용자 단말 및 광고 제공 방법
WO2014119889A1 (en) * 2013-01-31 2014-08-07 Samsung Electronics Co., Ltd. Method of displaying user interface on device, and device
JP2014150323A (ja) 2013-01-31 2014-08-21 Sharp Corp 文字入力装置
US10055091B2 (en) 2013-02-01 2018-08-21 Microsoft Technology Licensing, Llc Autosave and manual save modes for software applications
US20140222435A1 (en) 2013-02-01 2014-08-07 Telenav, Inc. Navigation system with user dependent language mechanism and method of operation thereof
US9292492B2 (en) 2013-02-04 2016-03-22 Microsoft Technology Licensing, Llc Scaling statistical language understanding systems across domains and intents
US20140218372A1 (en) 2013-02-05 2014-08-07 Apple Inc. Intelligent digital assistant in a desktop environment
US8694315B1 (en) 2013-02-05 2014-04-08 Visa International Service Association System and method for authentication using speaker verification techniques and fraud model
KR20240132105A (ko) 2013-02-07 2024-09-02 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
EP2954685A4 (en) 2013-02-07 2016-09-14 Opanga Networks Inc TRANSPARENT MULTIMEDIA ELEMENT DISTRIBUTION AND REPRESENTATIVE
US20140223481A1 (en) 2013-02-07 2014-08-07 United Video Properties, Inc. Systems and methods for updating a search request
US9519858B2 (en) 2013-02-10 2016-12-13 Microsoft Technology Licensing, Llc Feature-augmented neural networks and applications of same
US9408040B2 (en) 2013-02-14 2016-08-02 Fuji Xerox Co., Ltd. Systems and methods for room-level location using WiFi
US9842489B2 (en) 2013-02-14 2017-12-12 Google Llc Waking other devices for additional data
US9791921B2 (en) 2013-02-19 2017-10-17 Microsoft Technology Licensing, Llc Context-aware augmented reality object commands
US10078437B2 (en) 2013-02-20 2018-09-18 Blackberry Limited Method and apparatus for responding to a notification via a capacitive physical keyboard
US9621619B2 (en) 2013-02-21 2017-04-11 International Business Machines Corporation Enhanced notification for relevant communications
US9019129B2 (en) 2013-02-21 2015-04-28 Apple Inc. Vehicle location in weak location signal scenarios
US20140236986A1 (en) 2013-02-21 2014-08-21 Apple Inc. Natural language document search
US9080878B2 (en) 2013-02-21 2015-07-14 Apple Inc. Automatic identification of vehicle location
US9734819B2 (en) 2013-02-21 2017-08-15 Google Technology Holdings LLC Recognizing accented speech
US9484023B2 (en) 2013-02-22 2016-11-01 International Business Machines Corporation Conversion of non-back-off language models for efficient speech decoding
US9894312B2 (en) 2013-02-22 2018-02-13 The Directv Group, Inc. Method and system for controlling a user receiving device using voice commands
US20140245140A1 (en) 2013-02-22 2014-08-28 Next It Corporation Virtual Assistant Transfer between Smart Devices
US9672822B2 (en) 2013-02-22 2017-06-06 Next It Corporation Interaction with a portion of a content item through a virtual assistant
KR101383552B1 (ko) 2013-02-25 2014-04-10 미디어젠(주) 다중 명령어가 포함된 단일 문장의 음성인식방법
US9172747B2 (en) 2013-02-25 2015-10-27 Artificial Solutions Iberia SL System and methods for virtual assistant networks
US20140304086A1 (en) 2013-02-25 2014-10-09 Turn Inc. Methods and systems for modeling campaign goal adjustment
US9330659B2 (en) 2013-02-25 2016-05-03 Microsoft Technology Licensing, Llc Facilitating development of a spoken natural language interface
US9865266B2 (en) 2013-02-25 2018-01-09 Nuance Communications, Inc. Method and apparatus for automated speaker parameters adaptation in a deployed speaker verification system
CN104007832B (zh) 2013-02-25 2017-09-01 上海触乐信息科技有限公司 连续滑行输入文本的方法、系统及设备
US9280981B2 (en) 2013-02-27 2016-03-08 Blackberry Limited Method and apparatus for voice control of a mobile device
US10354677B2 (en) 2013-02-28 2019-07-16 Nuance Communications, Inc. System and method for identification of intent segment(s) in caller-agent conversations
US9218819B1 (en) 2013-03-01 2015-12-22 Google Inc. Customizing actions based on contextual data and voice-based inputs
US9691382B2 (en) 2013-03-01 2017-06-27 Mediatek Inc. Voice control device and method for deciding response of voice control according to recognized speech command and detection output derived from processing sensor data
US9251467B2 (en) 2013-03-03 2016-02-02 Microsoft Technology Licensing, Llc Probabilistic parsing
US9886968B2 (en) 2013-03-04 2018-02-06 Synaptics Incorporated Robust speech boundary detection system and method
US9554050B2 (en) 2013-03-04 2017-01-24 Apple Inc. Mobile device using images and location for reminders
US9460715B2 (en) 2013-03-04 2016-10-04 Amazon Technologies, Inc. Identification using audio signatures and additional characteristics
US9454957B1 (en) 2013-03-05 2016-09-27 Amazon Technologies, Inc. Named entity resolution in spoken language processing
KR101952179B1 (ko) 2013-03-05 2019-05-22 엘지전자 주식회사 이동 단말기 및 그것의 제어방법
US9293129B2 (en) 2013-03-05 2016-03-22 Microsoft Technology Licensing, Llc Speech recognition assisted evaluation on text-to-speech pronunciation issue detection
CN104038621A (zh) 2013-03-06 2014-09-10 三星电子(中国)研发中心 在通信终端中管理事件信息的装置及方法
US10795528B2 (en) 2013-03-06 2020-10-06 Nuance Communications, Inc. Task assistant having multiple visual displays
US10223411B2 (en) 2013-03-06 2019-03-05 Nuance Communications, Inc. Task assistant utilizing context for improved interaction
US9313261B2 (en) 2013-03-07 2016-04-12 Qualcomm Incorporated System and methods of transferring tasks from a first mobile device to a second mobile device
US20140279622A1 (en) 2013-03-08 2014-09-18 Sudhakar Bharadwaj System and method for semantic processing of personalized social data and generating probability models of personal context to generate recommendations in searching applications
US9496968B2 (en) 2013-03-08 2016-11-15 Google Inc. Proximity detection by mobile devices
US9990611B2 (en) 2013-03-08 2018-06-05 Baydin, Inc. Systems and methods for incorporating calendar functionality into electronic messages
US20140257902A1 (en) 2013-03-08 2014-09-11 Baydin, Inc. Systems and methods for incorporating calendar functionality into electronic messages
US9761225B2 (en) 2013-03-11 2017-09-12 Nuance Communications, Inc. Semantic re-ranking of NLU results in conversational dialogue applications
US8964947B1 (en) 2013-03-11 2015-02-24 Amazon Technologies, Inc. Approaches for sharing data between electronic devices
KR102113272B1 (ko) 2013-03-11 2020-06-02 삼성전자주식회사 전자장치에서 복사/붙여넣기 방법 및 장치
US10229697B2 (en) 2013-03-12 2019-03-12 Google Technology Holdings LLC Apparatus and method for beamforming to obtain voice and noise signals
US9112984B2 (en) 2013-03-12 2015-08-18 Nuance Communications, Inc. Methods and apparatus for detecting a voice command
US11393461B2 (en) 2013-03-12 2022-07-19 Cerence Operating Company Methods and apparatus for detecting a voice command
US9361885B2 (en) 2013-03-12 2016-06-07 Nuance Communications, Inc. Methods and apparatus for detecting a voice command
US9076459B2 (en) 2013-03-12 2015-07-07 Intermec Ip, Corp. Apparatus and method to classify sound to detect speech
EP2946383B1 (en) 2013-03-12 2020-02-26 Nuance Communications, Inc. Methods and apparatus for detecting a voice command
US9477753B2 (en) 2013-03-12 2016-10-25 International Business Machines Corporation Classifier-based system combination for spoken term detection
US9129013B2 (en) 2013-03-12 2015-09-08 Nuance Communications, Inc. Methods and apparatus for entity detection
US9514741B2 (en) 2013-03-13 2016-12-06 Nuance Communications, Inc. Data shredding for speech recognition acoustic model training under data retention restrictions
US9378739B2 (en) 2013-03-13 2016-06-28 Nuance Communications, Inc. Identifying corresponding positions in different representations of a textual work
US9282423B2 (en) 2013-03-13 2016-03-08 Aliphcom Proximity and interface controls of media devices for media presentations
US9135248B2 (en) 2013-03-13 2015-09-15 Arris Technology, Inc. Context demographic determination system
US10219100B2 (en) 2013-03-13 2019-02-26 Aliphcom Determining proximity for devices interacting with media devices
US20140274005A1 (en) 2013-03-13 2014-09-18 Aliphcom Intelligent connection management in wireless devices
US20140267599A1 (en) 2013-03-14 2014-09-18 360Brandvision, Inc. User interaction with a holographic poster via a secondary mobile device
US10642574B2 (en) 2013-03-14 2020-05-05 Apple Inc. Device, method, and graphical user interface for outputting captions
US9123345B2 (en) 2013-03-14 2015-09-01 Honda Motor Co., Ltd. Voice interface systems and methods
US9247309B2 (en) 2013-03-14 2016-01-26 Google Inc. Methods, systems, and media for presenting mobile content corresponding to media content
US20140280072A1 (en) 2013-03-14 2014-09-18 Advanced Search Laboratories, lnc. Method and Apparatus for Human-Machine Interaction
US9733821B2 (en) 2013-03-14 2017-08-15 Apple Inc. Voice control to diagnose inadvertent activation of accessibility features
KR20140112910A (ko) 2013-03-14 2014-09-24 삼성전자주식회사 입력 제어 방법 및 이를 지원하는 전자 장치
US10572476B2 (en) 2013-03-14 2020-02-25 Apple Inc. Refining a search based on schedule items
US20140278349A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Language Model Dictionaries for Text Predictions
US9524489B2 (en) 2013-03-14 2016-12-20 Samsung Electronics Co., Ltd. Computing system with task transfer mechanism and method of operation thereof
US9977779B2 (en) 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US9842584B1 (en) 2013-03-14 2017-12-12 Amazon Technologies, Inc. Providing content on multiple devices
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US9189196B2 (en) 2013-03-14 2015-11-17 Google Inc. Compartmentalized self registration of external devices
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US10133546B2 (en) 2013-03-14 2018-11-20 Amazon Technologies, Inc. Providing content on multiple devices
US9355472B2 (en) 2013-03-15 2016-05-31 Apple Inc. Device, method, and graphical user interface for adjusting the appearance of a control
US20140282203A1 (en) 2013-03-15 2014-09-18 Research In Motion Limited System and method for predictive text input
US20140267933A1 (en) 2013-03-15 2014-09-18 Toshiba America Information Systems, Inc. Electronic Device with Embedded Macro-Command Functionality
CN105190607B (zh) 2013-03-15 2018-11-30 苹果公司 通过智能数字助理的用户培训
US10638198B2 (en) 2013-03-15 2020-04-28 Ebay Inc. Shoppable video
US20150314454A1 (en) 2013-03-15 2015-11-05 JIBO, Inc. Apparatus and methods for providing a persistent companion device
EP3101392B1 (en) 2013-03-15 2021-12-15 Apple Inc. Mapping application with turn-by-turn navigation mode for output to vehicle display
US9317585B2 (en) 2013-03-15 2016-04-19 Google Inc. Search query suggestions based on personal information
US9299041B2 (en) 2013-03-15 2016-03-29 Business Objects Software Ltd. Obtaining data from unstructured data for a structured data collection
US9378065B2 (en) 2013-03-15 2016-06-28 Advanced Elemental Technologies, Inc. Purposeful computing
US9558743B2 (en) 2013-03-15 2017-01-31 Google Inc. Integration of semantic context information
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
CN105431809B (zh) 2013-03-15 2018-12-18 谷歌有限责任公司 用于国际语言的虚拟键盘输入
CA2910621C (en) 2013-03-15 2023-10-17 Adityo Prakash Systems and methods for facilitating integrated behavioral support
US9201865B2 (en) 2013-03-15 2015-12-01 Bao Tran Automated assistance for user request that determines semantics by domain, task, and parameter
US9303997B2 (en) 2013-03-15 2016-04-05 Apple Inc. Prediction engine
US20140282178A1 (en) 2013-03-15 2014-09-18 Microsoft Corporation Personalized community model for surfacing commands within productivity application user interfaces
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US9176649B2 (en) 2013-03-15 2015-11-03 American Megatrends, Inc. Method and apparatus of remote management of computer system using voice and gesture based input
WO2014143959A2 (en) 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Volume control for mobile device using a wireless device
US9886160B2 (en) 2013-03-15 2018-02-06 Google Llc Managing audio at the tab level for user notification and control
US20160132046A1 (en) 2013-03-15 2016-05-12 Fisher-Rosemount Systems, Inc. Method and apparatus for controlling a process plant with wearable mobile control devices
CN112230878B (zh) 2013-03-15 2024-09-27 苹果公司 对中断进行上下文相关处理
AU2014233517B2 (en) 2013-03-15 2017-05-25 Apple Inc. Training an at least partial voice command system
US9189157B2 (en) 2013-03-15 2015-11-17 Blackberry Limited Method and apparatus for word prediction selection
US20140288939A1 (en) 2013-03-20 2014-09-25 Navteq B.V. Method and apparatus for optimizing timing of audio commands based on recognized audio patterns
US9479499B2 (en) 2013-03-21 2016-10-25 Tencent Technology (Shenzhen) Company Limited Method and apparatus for identity authentication via mobile capturing code
JP5873038B2 (ja) * 2013-03-21 2016-03-01 株式会社ゼンリンデータコム ナビゲーション装置
US20140298395A1 (en) 2013-03-27 2014-10-02 Tencent Technology (Shenzhen) Company Limited Methods and systems for playing video on multiple terminals
JP6221301B2 (ja) 2013-03-28 2017-11-01 富士通株式会社 音声処理装置、音声処理システムおよび音声処理方法
JP6115941B2 (ja) 2013-03-28 2017-04-19 Kddi株式会社 対話シナリオにユーザ操作を反映させる対話プログラム、サーバ及び方法
US20140297288A1 (en) 2013-03-29 2014-10-02 Orange Telephone voice personal assistant
CN103236260B (zh) 2013-03-29 2015-08-12 京东方科技集团股份有限公司 语音识别系统
KR102050814B1 (ko) 2013-04-02 2019-12-02 삼성전자주식회사 그룹 대화에서 사적 대화 제공 장치 및 방법
JP2014203207A (ja) 2013-04-03 2014-10-27 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
CA2897539C (en) 2013-04-04 2016-05-17 James S. RAND Unified communications system and method
JP6023874B2 (ja) * 2013-04-04 2016-11-09 パイオニア株式会社 表示制御装置、表示制御方法、表示制御プログラムおよびコンピュータが読み取り可能な記録媒体
US9300718B2 (en) 2013-04-09 2016-03-29 Avaya Inc. System and method for keyword-based notification and delivery of content
CN103198831A (zh) 2013-04-10 2013-07-10 威盛电子股份有限公司 语音操控方法与移动终端装置
US10027723B2 (en) 2013-04-12 2018-07-17 Provenance Asset Group Llc Method and apparatus for initiating communication and sharing of content among a plurality of devices
WO2014169269A1 (en) 2013-04-12 2014-10-16 Nant Holdings Ip, Llc Virtual teller systems and methods
US9875494B2 (en) 2013-04-16 2018-01-23 Sri International Using intents to analyze and personalize a user's dialog experience with a virtual personal assistant
EP2987109A4 (en) 2013-04-16 2016-12-14 Imageware Systems Inc BIOMETRIC ADMISSION AND AUTHENTICATION SUBJECT TO CONDITIONS AND SITUATIONS
US8825474B1 (en) 2013-04-16 2014-09-02 Google Inc. Text suggestion output using past interaction data
US20150193392A1 (en) 2013-04-17 2015-07-09 Google Inc. User Interface for Quickly Checking Agenda and Creating New Events
US9760644B2 (en) 2013-04-17 2017-09-12 Google Inc. Embedding event creation link in a document
NL2010662C2 (en) 2013-04-18 2014-10-21 Bosch Gmbh Robert Remote maintenance.
US10445115B2 (en) 2013-04-18 2019-10-15 Verint Americas Inc. Virtual assistant focused user interfaces
US9177318B2 (en) 2013-04-22 2015-11-03 Palo Alto Research Center Incorporated Method and apparatus for customizing conversation agents based on user characteristics using a relevance score for automatic statements, and a response prediction function
US20140315492A1 (en) 2013-04-22 2014-10-23 Salesforce.Com, Inc. Content delivery to a secondary device via a primary device
US9075435B1 (en) 2013-04-22 2015-07-07 Amazon Technologies, Inc. Context-aware notifications
US9110889B2 (en) 2013-04-23 2015-08-18 Facebook, Inc. Methods and systems for generation of flexible sentences in a social networking system
CN104125322A (zh) 2013-04-24 2014-10-29 腾讯科技(深圳)有限公司 来电和短信控制方法及移动终端
DE102013007502A1 (de) 2013-04-25 2014-10-30 Elektrobit Automotive Gmbh Computer-implementiertes Verfahren zum automatischen Trainieren eins Dialogsystems und Dialogsystem zur Erzeugung von semantischen Annotationen
CN103280217B (zh) 2013-05-02 2016-05-04 锤子科技(北京)有限公司 一种移动终端的语音识别方法及其装置
US9384751B2 (en) 2013-05-06 2016-07-05 Honeywell International Inc. User authentication of voice controlled devices
US9472205B2 (en) 2013-05-06 2016-10-18 Honeywell International Inc. Device voice recognition systems and methods
DK2994908T3 (da) 2013-05-07 2019-09-23 Veveo Inc Grænseflade til inkrementel taleinput med realtidsfeedback
KR20140132246A (ko) 2013-05-07 2014-11-17 삼성전자주식회사 오브젝트 선택 방법 및 오브젝트 선택 장치
US20140337621A1 (en) 2013-05-07 2014-11-13 Serguei Nakhimov Wearable communication device, security complex and user interface
US9064495B1 (en) 2013-05-07 2015-06-23 Amazon Technologies, Inc. Measurement of user perceived latency in a cloud based speech application
US9223898B2 (en) 2013-05-08 2015-12-29 Facebook, Inc. Filtering suggested structured queries on online social networks
US9923849B2 (en) 2013-05-09 2018-03-20 Ebay Inc. System and method for suggesting a phrase based on a context
US9043211B2 (en) 2013-05-09 2015-05-26 Dsp Group Ltd. Low power activation of a voice activated device
JP2014219614A (ja) 2013-05-10 2014-11-20 アルパイン株式会社 オーディオ装置、ビデオ装置及びコンピュータプログラム
US9489625B2 (en) 2013-05-10 2016-11-08 Sri International Rapid development of virtual personal assistant applications
US9081411B2 (en) 2013-05-10 2015-07-14 Sri International Rapid development of virtual personal assistant applications
CN103246638B (zh) 2013-05-13 2017-09-01 小米科技有限责任公司 一种信息粘贴方法和装置
US20140337751A1 (en) 2013-05-13 2014-11-13 Microsoft Corporation Automatic creation of calendar items
US9293138B2 (en) 2013-05-14 2016-03-22 Amazon Technologies, Inc. Storing state information from network-based user devices
US8918272B2 (en) * 2013-05-14 2014-12-23 Sony Corporation Method and apparatus for finding a lost vehicle
US20140343943A1 (en) 2013-05-14 2014-11-20 Saudi Arabian Oil Company Systems, Computer Medium and Computer-Implemented Methods for Authenticating Users Using Voice Streams
US20140347181A1 (en) 2013-05-21 2014-11-27 Michael Edward Smith Luna Sensor-enabled media device
US20140344205A1 (en) 2013-05-15 2014-11-20 Aliphcom Smart media device ecosystem using local and remote data sources
KR101334342B1 (ko) 2013-05-16 2013-11-29 주식회사 네오패드 문자 입력 장치 및 문자 입력 방법
US9514470B2 (en) 2013-05-16 2016-12-06 Microsoft Technology Licensing, Llc Enhanced search suggestion for personal information services
KR101825963B1 (ko) 2013-05-16 2018-02-06 인텔 코포레이션 정황에 기초한 내추럴 사용자 인터페이스 입력을 위한 기법들
US9495266B2 (en) 2013-05-16 2016-11-15 Advantest Corporation Voice recognition virtual test engineering assistant
US9432499B2 (en) 2013-05-18 2016-08-30 Loralee Hajdu Peripheral specific selection of automated response messages
WO2014189486A1 (en) 2013-05-20 2014-11-27 Intel Corporation Natural human-computer interaction for virtual personal assistant systems
US9466294B1 (en) 2013-05-21 2016-10-11 Amazon Technologies, Inc. Dialog management system
US9188445B2 (en) 2013-05-21 2015-11-17 Honda Motor Co., Ltd. System and method for storing and recalling location data
US20150199077A1 (en) 2013-05-23 2015-07-16 Google Inc. Scheduling and viewing a calender event using time zones based on a user's location at event time
US20140351760A1 (en) 2013-05-24 2014-11-27 Google Inc. Order-independent text input
US20140350933A1 (en) 2013-05-24 2014-11-27 Samsung Electronics Co., Ltd. Voice recognition apparatus and control method thereof
US9747900B2 (en) 2013-05-24 2017-08-29 Google Technology Holdings LLC Method and apparatus for using image data to aid voice recognition
US9710147B2 (en) 2013-05-29 2017-07-18 Lg Electronics Inc. Mobile terminal and controlling method thereof
US20140358523A1 (en) 2013-05-30 2014-12-04 Wright State University Topic-specific sentiment extraction
US20140359637A1 (en) 2013-06-03 2014-12-04 Microsoft Corporation Task continuance across devices
US20140358519A1 (en) 2013-06-03 2014-12-04 Xerox Corporation Confidence-driven rewriting of source texts for improved translation
US10282213B2 (en) 2013-06-03 2019-05-07 Avaya Inc. System and method for conversational configuration of applications
US9294455B2 (en) 2013-06-04 2016-03-22 Google Inc. Maintaining video conference session continuity during transfer of session to alternative device
US9286029B2 (en) 2013-06-06 2016-03-15 Honda Motor Co., Ltd. System and method for multimodal human-vehicle interaction and belief tracking
KR101995660B1 (ko) 2013-06-07 2019-07-02 애플 인크. 지능형 자동 어시스턴트
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9267805B2 (en) 2013-06-07 2016-02-23 Apple Inc. Modeling significant locations
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US20140365459A1 (en) 2013-06-08 2014-12-11 Apple Inc. Harvesting Addresses
WO2014197730A1 (en) 2013-06-08 2014-12-11 Apple Inc. Application gateway for providing different user interfaces for limited distraction and non-limited distraction contexts
EP2992418B1 (en) 2013-06-08 2022-02-16 Apple Inc. Device, method, and graphical user interface for synchronizing two or more displays
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US9477393B2 (en) 2013-06-09 2016-10-25 Apple Inc. Device, method, and graphical user interface for displaying application status information
US9495620B2 (en) 2013-06-09 2016-11-15 Apple Inc. Multi-script handwriting recognition using a universal recognizer
US10481769B2 (en) 2013-06-09 2019-11-19 Apple Inc. Device, method, and graphical user interface for providing navigation and search functionalities
KR101772152B1 (ko) 2013-06-09 2017-08-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9710219B2 (en) 2013-06-10 2017-07-18 Panasonic Intellectual Property Corporation Of America Speaker identification method, speaker identification device, and speaker identification system
US20140365878A1 (en) * 2013-06-10 2014-12-11 Microsoft Corporation Shape writing ink trace prediction
KR20140144104A (ko) 2013-06-10 2014-12-18 삼성전자주식회사 전자기기 및 이의 서비스 제공 방법
US9892115B2 (en) 2013-06-11 2018-02-13 Facebook, Inc. Translation training with cross-lingual multi-media support
US9449600B2 (en) 2013-06-11 2016-09-20 Plantronics, Inc. Character data entry
US9508040B2 (en) 2013-06-12 2016-11-29 Microsoft Technology Licensing, Llc Predictive pre-launch for applications
EP3008964B1 (en) 2013-06-13 2019-09-25 Apple Inc. System and method for emergency calls initiated by voice command
US9501585B1 (en) 2013-06-13 2016-11-22 DataRPM Corporation Methods and system for providing real-time business intelligence using search-based analytics engine
US9311414B2 (en) 2013-06-14 2016-04-12 Google Inc. Systems and methods of selecting content based on aggregate entity co-occurrence
CN103292437B (zh) 2013-06-17 2016-01-20 广东美的制冷设备有限公司 语音交互式空调器及其控制方法
JP6084123B2 (ja) 2013-06-18 2017-02-22 株式会社Nttドコモ サーバ装置、表示制御方法及びプログラム
US9728184B2 (en) 2013-06-18 2017-08-08 Microsoft Technology Licensing, Llc Restructuring deep neural network acoustic models
USRE49014E1 (en) 2013-06-19 2022-04-05 Panasonic Intellectual Property Corporation Of America Voice interaction method, and device
US9437186B1 (en) 2013-06-19 2016-09-06 Amazon Technologies, Inc. Enhanced endpoint detection for speech recognition
US10474961B2 (en) 2013-06-20 2019-11-12 Viv Labs, Inc. Dynamically evolving cognitive architecture system based on prompting for additional user input
KR20140147587A (ko) 2013-06-20 2014-12-30 한국전자통신연구원 Wfst를 이용한 음성 끝점 검출 장치 및 방법
KR102160767B1 (ko) 2013-06-20 2020-09-29 삼성전자주식회사 제스처를 감지하여 기능을 제어하는 휴대 단말 및 방법
US9633317B2 (en) 2013-06-20 2017-04-25 Viv Labs, Inc. Dynamically evolving cognitive architecture system based on a natural language intent interpreter
US20140379334A1 (en) 2013-06-20 2014-12-25 Qnx Software Systems Limited Natural language understanding automatic speech recognition post processing
US9311298B2 (en) 2013-06-21 2016-04-12 Microsoft Technology Licensing, Llc Building conversational understanding systems using a toolset
US10051072B2 (en) 2013-06-21 2018-08-14 Google Llc Detecting co-presence in the physical world
JP6171617B2 (ja) 2013-06-24 2017-08-02 日本電気株式会社 応答対象音声判定装置、応答対象音声判定方法および応答対象音声判定プログラム
JP2015012301A (ja) * 2013-06-26 2015-01-19 京セラ株式会社 携帯電話機、携帯端末、音声操作プログラムおよび音声操作方法
US10496743B2 (en) 2013-06-26 2019-12-03 Nuance Communications, Inc. Methods and apparatus for extracting facts from a medical text
US8947596B2 (en) 2013-06-27 2015-02-03 Intel Corporation Alignment of closed captions
US20150006148A1 (en) 2013-06-27 2015-01-01 Microsoft Corporation Automatically Creating Training Data For Language Identifiers
RU2637874C2 (ru) 2013-06-27 2017-12-07 Гугл Инк. Генерирование диалоговых рекомендаций для чатовых информационных систем
US9747899B2 (en) 2013-06-27 2017-08-29 Amazon Technologies, Inc. Detecting self-generated wake expressions
US9741339B2 (en) 2013-06-28 2017-08-22 Google Inc. Data driven word pronunciation learning and scoring with crowd sourcing based on the word's phonemes pronunciation scores
US10255930B2 (en) 2013-06-28 2019-04-09 Harman International Industries, Incorporated Wireless control of linked devices
JP6353199B2 (ja) * 2013-07-01 2018-07-04 株式会社 ミックウェア 情報処理装置、情報処理方法、およびプログラム
US9646606B2 (en) 2013-07-03 2017-05-09 Google Inc. Speech recognition using domain knowledge
JP2015014960A (ja) 2013-07-05 2015-01-22 ソニー株式会社 情報処理装置、および記憶媒体
US9396727B2 (en) 2013-07-10 2016-07-19 GM Global Technology Operations LLC Systems and methods for spoken dialog service arbitration
CN103365279A (zh) 2013-07-10 2013-10-23 崔海伟 智能家居系统的状态反馈系统、方法及状态检测装置
DE102014109121B4 (de) 2013-07-10 2023-05-04 Gm Global Technology Operations, Llc Systeme und Verfahren zur Arbitrierung eines Sprachdialogdienstes
JP6102588B2 (ja) 2013-07-10 2017-03-29 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
WO2015005927A1 (en) 2013-07-11 2015-01-15 Intel Corporation Device wake and speaker verification using the same audio input
WO2015006196A1 (en) 2013-07-11 2015-01-15 Mophie, Inc. Method and system for communicatively coupling a wearable computer with one or more non-wearable computers
TWI508057B (zh) 2013-07-15 2015-11-11 Chunghwa Picture Tubes Ltd 語音辨識系統以及方法
US9711148B1 (en) 2013-07-18 2017-07-18 Google Inc. Dual model speaker identification
US9311912B1 (en) 2013-07-22 2016-04-12 Amazon Technologies, Inc. Cost efficient distributed text-to-speech processing
US9407950B2 (en) 2013-07-23 2016-08-02 Microsoft Technology Licensing, Llc Controlling devices in entertainment environment
US20150031416A1 (en) 2013-07-23 2015-01-29 Motorola Mobility Llc Method and Device For Command Phrase Validation
US9772994B2 (en) 2013-07-25 2017-09-26 Intel Corporation Self-learning statistical natural language processing for automatic production of virtual personal assistants
CN103412789B (zh) 2013-07-26 2016-09-21 宇龙计算机通信科技(深圳)有限公司 一种启动应用程序的方法、系统及移动终端
US8947530B1 (en) 2013-07-26 2015-02-03 Joseph Frank Scalisi Smart lock systems and methods
US9247219B2 (en) 2013-07-26 2016-01-26 SkyBell Technologies, Inc. Doorbell communication systems and methods
US9335983B2 (en) 2013-07-28 2016-05-10 Oded Haim Breiner Method and system for displaying a non-installed android application and for requesting an action from a non-installed android application
JP6370033B2 (ja) 2013-07-29 2018-08-08 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
US9311915B2 (en) 2013-07-31 2016-04-12 Google Inc. Context-based speech recognition
TWI516698B (zh) 2013-07-31 2016-01-11 Apex Medical Corp Air cushion device and its vent valve
US9575720B2 (en) 2013-07-31 2017-02-21 Google Inc. Visual confirmation for a recognized voice-initiated action
US20150039606A1 (en) 2013-08-01 2015-02-05 Vamsi Krishna Salaka Search phrase modification
TWI601032B (zh) 2013-08-02 2017-10-01 晨星半導體股份有限公司 應用於聲控裝置的控制器與相關方法
DE112014003653B4 (de) 2013-08-06 2024-04-18 Apple Inc. Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen
EP3031211B1 (en) 2013-08-06 2020-11-11 Saronikos Trading and Services, Unipessoal Lda. System for controlling electronic devices by means of voice commands, more specifically a remote control to control a plurality of electronic devices by means of voice commands
KR20150017156A (ko) 2013-08-06 2015-02-16 삼성전자주식회사 휴대단말기에서 추천어를 제공하는 방법 및 장치
US20150046828A1 (en) 2013-08-08 2015-02-12 Samsung Electronics Co., Ltd. Contextualizing sensor, service and device data with mobile devices
US9264862B2 (en) 2013-08-15 2016-02-16 Apple Inc. Determining exit from a vehicle
CN103457837B (zh) * 2013-08-18 2018-08-14 苏州量跃信息科技有限公司 通过搜索引擎进行即时通信搜索的方法及系统
KR20150020872A (ko) 2013-08-19 2015-02-27 현대자동차주식회사 차량 기능 제어를 위한 제어 장치 및 제어 방법
CN103780970B (zh) 2013-08-20 2018-03-16 华为终端(东莞)有限公司 一种媒体播放的方法、装置和系统
JP2015041845A (ja) 2013-08-21 2015-03-02 カシオ計算機株式会社 文字入力装置及びプログラム
CN105659179B (zh) 2013-08-21 2018-07-17 霍尼韦尔国际公司 用于与hvac控制器相交互的设备和方法
CN104426841A (zh) 2013-08-21 2015-03-18 阿里巴巴集团控股有限公司 设置背景图像的方法及相关的服务器和系统
US9161188B2 (en) 2013-08-22 2015-10-13 Yahoo! Inc. System and method for automatically suggesting diverse and personalized message completions
WO2015026366A1 (en) 2013-08-23 2015-02-26 Nuance Communications, Inc. Multiple pass automatic speech recognition methods and apparatus
CN105493180B (zh) 2013-08-26 2019-08-30 三星电子株式会社 用于语音识别的电子装置和方法
CN104423780B (zh) * 2013-08-27 2020-07-14 北京三星通信技术研究有限公司 一种终端设备及其应用程序的关联显示方法
US20150066817A1 (en) 2013-08-27 2015-03-05 Persais, Llc System and method for virtual assistants with shared capabilities
US9729592B2 (en) 2013-08-27 2017-08-08 Persais, Llc System and method for distributed virtual assistant platforms
CN104427104B (zh) 2013-08-28 2018-02-27 联想(北京)有限公司 一种信息处理方法及电子设备
KR102147935B1 (ko) 2013-08-29 2020-08-25 삼성전자주식회사 데이터 처리 방법 및 그 전자 장치
JP6522503B2 (ja) 2013-08-29 2019-05-29 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 機器制御方法、表示制御方法及び購入決済方法
US10127224B2 (en) 2013-08-30 2018-11-13 Intel Corporation Extensible context-aware natural language interactions for virtual personal assistants
US20150066506A1 (en) 2013-08-30 2015-03-05 Verint Systems Ltd. System and Method of Text Zoning
US10867597B2 (en) 2013-09-02 2020-12-15 Microsoft Technology Licensing, Llc Assignment of semantic labels to a sequence of words using neural network architectures
US9633669B2 (en) 2013-09-03 2017-04-25 Amazon Technologies, Inc. Smart circular audio buffer
US10001817B2 (en) 2013-09-03 2018-06-19 Apple Inc. User interface for manipulating user interface objects with magnetic properties
US9316400B2 (en) 2013-09-03 2016-04-19 Panasonic Intellctual Property Corporation of America Appliance control method, speech-based appliance control system, and cooking appliance
TWI545471B (zh) 2013-09-03 2016-08-11 蘋果公司 用於使用者介面物件操縱之電腦實施方法、非暫時性電腦可讀儲存媒體及電子器件
KR102065409B1 (ko) 2013-09-04 2020-01-13 엘지전자 주식회사 이동단말기 및 그 제어방법
GB2517952B (en) 2013-09-05 2017-05-31 Barclays Bank Plc Biometric verification using predicted signatures
US9208779B2 (en) 2013-09-06 2015-12-08 Google Inc. Mixture of n-gram language models
JP6295554B2 (ja) 2013-09-06 2018-03-20 株式会社リコー プログラム、情報処理装置
US9460704B2 (en) 2013-09-06 2016-10-04 Google Inc. Deep networks for unit selection speech synthesis
US9898642B2 (en) 2013-09-09 2018-02-20 Apple Inc. Device, method, and graphical user interface for manipulating user interfaces based on fingerprint sensor inputs
US9485708B2 (en) 2013-09-10 2016-11-01 Qualcomm Incorporated Systems and methods for concurrent service discovery and minimum spanning tree formation for service delivery
US20150140934A1 (en) 2013-09-10 2015-05-21 Playtabase, LLC Wireless motion activated user device with bi-modality communication
US20150074524A1 (en) 2013-09-10 2015-03-12 Lenovo (Singapore) Pte. Ltd. Management of virtual assistant action items
CN104700832B (zh) 2013-12-09 2018-05-25 联发科技股份有限公司 语音关键字检测系统及方法
US9600228B2 (en) 2013-09-16 2017-03-21 Here Global B.V. Enhanced system and method for static query generation and entry
US9343068B2 (en) 2013-09-16 2016-05-17 Qualcomm Incorporated Method and apparatus for controlling access to applications having different security levels
US9240182B2 (en) 2013-09-17 2016-01-19 Qualcomm Incorporated Method and apparatus for adjusting detection threshold for activating voice assistant function
JP2015060423A (ja) 2013-09-19 2015-03-30 株式会社東芝 音声翻訳装置、音声翻訳方法およびプログラム
US9755605B1 (en) 2013-09-19 2017-09-05 Amazon Technologies, Inc. Volume control
EP3047481A4 (en) 2013-09-20 2017-03-01 Amazon Technologies Inc. Local and remote speech processing
CN104463552B (zh) 2013-09-22 2018-10-02 中国电信股份有限公司 日历提醒生成方法和装置
US20150088511A1 (en) 2013-09-24 2015-03-26 Verizon Patent And Licensing Inc. Named-entity based speech recognition
US9418650B2 (en) 2013-09-25 2016-08-16 Verizon Patent And Licensing Inc. Training speech recognition using captions
US10134395B2 (en) 2013-09-25 2018-11-20 Amazon Technologies, Inc. In-call virtual assistants
US9401881B2 (en) 2013-09-26 2016-07-26 International Business Machines Corporation Automatic question generation and answering based on monitored messaging sessions
US9443527B1 (en) 2013-09-27 2016-09-13 Amazon Technologies, Inc. Speech recognition capability generation and control
US20150092520A1 (en) 2013-09-27 2015-04-02 Google Inc. Adaptive Trigger Point For Smartwatch Gesture-to-Wake
CN104516522B (zh) 2013-09-29 2018-05-01 北京三星通信技术研究有限公司 九宫格键盘输入的方法和装置
US20150095278A1 (en) 2013-09-30 2015-04-02 Manyworlds, Inc. Adaptive Probabilistic Semantic System and Method
US9344755B2 (en) 2013-09-30 2016-05-17 Sonos, Inc. Fast-resume audio playback
US20150095031A1 (en) 2013-09-30 2015-04-02 At&T Intellectual Property I, L.P. System and method for crowdsourcing of word pronunciation verification
KR101772044B1 (ko) 2013-10-02 2017-08-28 에스케이테크엑스 주식회사 거절메시지 전송 시스템 및 방법, 그리고 이를 위한 장치 및 컴퓨터 프로그램이 기록된 기록매체
US20150095268A1 (en) 2013-10-02 2015-04-02 Apple Inc. Intelligent multi-user task planning
US20150100537A1 (en) 2013-10-03 2015-04-09 Microsoft Corporation Emoji for Text Predictions
US20150100983A1 (en) 2013-10-06 2015-04-09 Yang Pan Personal Mobile Device as Ad hoc Set-Top Box for Television
US9436918B2 (en) 2013-10-07 2016-09-06 Microsoft Technology Licensing, Llc Smart selection of text spans
KR101480474B1 (ko) 2013-10-08 2015-01-09 엘지전자 주식회사 오디오 재생장치와 이를 포함하는 시스템
US20150100313A1 (en) 2013-10-09 2015-04-09 Verizon Patent And Licensing, Inc. Personification of computing devices for remote access
EP3055786A4 (en) 2013-10-09 2017-05-17 Google, Inc. Automatic definition of entity collections
KR102114219B1 (ko) 2013-10-10 2020-05-25 삼성전자주식회사 오디오 시스템 및 오디오 출력 방법, 그리고 스피커 장치
KR101506510B1 (ko) 2013-10-10 2015-03-30 송철호 음성인식 홈 네트워크 시스템
WO2015057586A1 (en) 2013-10-14 2015-04-23 Yahoo! Inc. Systems and methods for providing context-based user interface
US8996639B1 (en) 2013-10-15 2015-03-31 Google Inc. Predictive responses to incoming communications
US9063640B2 (en) 2013-10-17 2015-06-23 Spotify Ab System and method for switching between media items in a plurality of sequences of media items
US9461945B2 (en) 2013-10-18 2016-10-04 Jeffrey P. Phillips Automated messaging response
US9143907B1 (en) 2013-10-21 2015-09-22 West Corporation Providing data messaging support by intercepting and redirecting received short message service (SMS) messages
JP6280342B2 (ja) 2013-10-22 2018-02-14 株式会社Nttドコモ 機能実行指示システム及び機能実行指示方法
US20150120723A1 (en) 2013-10-24 2015-04-30 Xerox Corporation Methods and systems for processing speech queries
JP2015083938A (ja) 2013-10-25 2015-04-30 三菱電機株式会社 ナビゲーションシステム
US9659279B2 (en) * 2013-10-25 2017-05-23 Palo Alto Research Center Incorporated Method and system for enhanced inferred mode user interface operations
US10346753B2 (en) 2013-10-28 2019-07-09 Nant Holdings Ip, Llc Intent engines, systems and method
US20150120296A1 (en) 2013-10-29 2015-04-30 At&T Intellectual Property I, L.P. System and method for selecting network-based versus embedded speech processing
US20150123898A1 (en) 2013-10-31 2015-05-07 Lg Electronics Inc. Digital device and control method thereof
US10055681B2 (en) 2013-10-31 2018-08-21 Verint Americas Inc. Mapping actions and objects to tasks
JP6152779B2 (ja) 2013-10-31 2017-06-28 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US9183830B2 (en) 2013-11-01 2015-11-10 Google Inc. Method and system for non-parametric voice conversion
US9942396B2 (en) 2013-11-01 2018-04-10 Adobe Systems Incorporated Document distribution and interaction
US10019985B2 (en) 2013-11-04 2018-07-10 Google Llc Asynchronous optimization for sequence training of neural networks
FR3012895B1 (fr) 2013-11-05 2015-12-25 Commissariat Energie Atomique Procede et programme d'ordinateur pour l'execution deportee de taches informatiques d'un equipement sans fil
US9547644B2 (en) 2013-11-08 2017-01-17 Google Inc. Presenting translations of text depicted in images
US9600474B2 (en) 2013-11-08 2017-03-21 Google Inc. User interface for realtime language translation
US10088973B2 (en) 2013-11-08 2018-10-02 Google Llc Event scheduling presentation in a graphical user interface environment
US10311482B2 (en) 2013-11-11 2019-06-04 At&T Intellectual Property I, Lp Method and apparatus for adjusting a digital assistant persona
JP6493866B2 (ja) 2013-11-12 2019-04-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、情報処理方法、およびプログラム
US10430024B2 (en) 2013-11-13 2019-10-01 Microsoft Technology Licensing, Llc Media item selection using user-specific grammar
GB2520266A (en) 2013-11-13 2015-05-20 Ibm Cursor-Based Character input interface
US9361084B1 (en) 2013-11-14 2016-06-07 Google Inc. Methods and systems for installing and executing applications
US9898554B2 (en) 2013-11-18 2018-02-20 Google Inc. Implicit question query identification
US9443522B2 (en) 2013-11-18 2016-09-13 Beijing Lenovo Software Ltd. Voice recognition method, voice controlling method, information processing method, and electronic apparatus
US10110932B2 (en) 2013-11-18 2018-10-23 Cable Television Laboratories, Inc. Session administration
US10162813B2 (en) 2013-11-21 2018-12-25 Microsoft Technology Licensing, Llc Dialogue evaluation via multiple hypothesis ranking
US10058777B2 (en) 2013-11-21 2018-08-28 Tencent Technology (Shenzhen) Company Limited Task execution method, apparatus and system
US20150149354A1 (en) 2013-11-27 2015-05-28 Bank Of America Corporation Real-Time Data Recognition and User Interface Field Updating During Voice Entry
US9451434B2 (en) 2013-11-27 2016-09-20 At&T Intellectual Property I, L.P. Direct interaction between a user and a communication network
US10079013B2 (en) 2013-11-27 2018-09-18 Sri International Sharing intents to provide virtual assistance in a multi-person dialog
US9698999B2 (en) 2013-12-02 2017-07-04 Amazon Technologies, Inc. Natural language control of secondary device
US9110635B2 (en) 2013-12-03 2015-08-18 Lenova (Singapore) Pte. Ltd. Initiating personal assistant application based on eye tracking and gestures
US8719039B1 (en) 2013-12-05 2014-05-06 Google Inc. Promoting voice actions to hotwords
WO2015085237A1 (en) 2013-12-06 2015-06-11 Adt Us Holdings, Inc. Voice activated application for mobile devices
US9215510B2 (en) 2013-12-06 2015-12-15 Rovi Guides, Inc. Systems and methods for automatically tagging a media asset based on verbal input and playback adjustments
CN103645876B (zh) 2013-12-06 2017-01-18 百度在线网络技术(北京)有限公司 语音输入方法和装置
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US20150160855A1 (en) 2013-12-10 2015-06-11 Google Inc. Multiple character input with a single selection
US20150162001A1 (en) 2013-12-10 2015-06-11 Honeywell International Inc. System and method for textually and graphically presenting air traffic control voice information
GB201321927D0 (en) 2013-12-11 2014-01-22 Touchtype Ltd System and method for inputting text into electronic devices
US9900177B2 (en) 2013-12-11 2018-02-20 Echostar Technologies International Corporation Maintaining up-to-date home automation models
US9696886B2 (en) 2013-12-12 2017-07-04 Google Technology Holdings LLC Systems and methods for communicating task reminders on portable electronic devices
US9208153B1 (en) 2013-12-13 2015-12-08 Symantec Corporation Filtering relevant event notifications in a file sharing and collaboration environment
EP3063646A4 (en) 2013-12-16 2017-06-21 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US9571645B2 (en) 2013-12-16 2017-02-14 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US20170017501A1 (en) 2013-12-16 2017-01-19 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US9251492B2 (en) 2013-12-16 2016-02-02 Nuiku, Inc. Customized-enterprise-software integration systems and methods
US9804820B2 (en) 2013-12-16 2017-10-31 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US9479931B2 (en) 2013-12-16 2016-10-25 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
WO2015092943A1 (en) 2013-12-17 2015-06-25 Sony Corporation Electronic devices and methods for compensating for environmental noise in text-to-speech applications
US9721570B1 (en) 2013-12-17 2017-08-01 Amazon Technologies, Inc. Outcome-oriented dialogs on a speech recognition platform
GB2523984B (en) 2013-12-18 2017-07-26 Cirrus Logic Int Semiconductor Ltd Processing received speech data
US9741343B1 (en) 2013-12-19 2017-08-22 Amazon Technologies, Inc. Voice interaction application selection
US10565268B2 (en) 2013-12-19 2020-02-18 Adobe Inc. Interactive communication augmented with contextual information
US20150221307A1 (en) 2013-12-20 2015-08-06 Saurin Shah Transition from low power always listening mode to high power speech recognition mode
US10811013B1 (en) 2013-12-20 2020-10-20 Amazon Technologies, Inc. Intent-specific automatic speech recognition result generation
KR102179506B1 (ko) 2013-12-23 2020-11-17 삼성전자 주식회사 전자장치 및 그 제어방법
CN203721183U (zh) 2013-12-25 2014-07-16 安徽科大讯飞信息科技股份有限公司 一种语音唤醒装置
KR102092164B1 (ko) 2013-12-27 2020-03-23 삼성전자주식회사 디스플레이 장치, 서버 장치 및 이들을 포함하는 디스플레이 시스템과 그 컨텐츠 제공 방법들
US9640181B2 (en) 2013-12-27 2017-05-02 Kopin Corporation Text editing with gesture control and natural speech
JP6121896B2 (ja) 2013-12-27 2017-04-26 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および情報処理システム
JP2015127758A (ja) 2013-12-27 2015-07-09 シャープ株式会社 応答制御装置、制御プログラム
US9460735B2 (en) 2013-12-28 2016-10-04 Intel Corporation Intelligent ancillary electronic device
US9390726B1 (en) 2013-12-30 2016-07-12 Google Inc. Supplementing speech commands with gestures
US20150278737A1 (en) 2013-12-30 2015-10-01 Google Inc. Automatic Calendar Event Generation with Structured Data from Free-Form Speech
US10078489B2 (en) 2013-12-30 2018-09-18 Microsoft Technology Licensing, Llc Voice interface to a social networking service
US9304657B2 (en) 2013-12-31 2016-04-05 Abbyy Development Llc Audio tagging
US9823811B2 (en) 2013-12-31 2017-11-21 Next It Corporation Virtual assistant team identification
US9152307B2 (en) 2013-12-31 2015-10-06 Google Inc. Systems and methods for simultaneously displaying clustered, in-line electronic messages in one display
US9274673B2 (en) 2013-12-31 2016-03-01 Google Inc. Methods, systems, and media for rewinding media content based on detected audio events
US9471875B2 (en) 2013-12-31 2016-10-18 International Business Machines Corporation Using ontologies to comprehend regular expressions
US9424241B2 (en) 2013-12-31 2016-08-23 Barnes & Noble College Booksellers, Llc Annotation mode including multiple note types for paginated digital content
US9742836B2 (en) 2014-01-03 2017-08-22 Yahoo Holdings, Inc. Systems and methods for content delivery
US20150193379A1 (en) 2014-01-06 2015-07-09 Apple Inc. System and method for cognizant time-based reminders
JP6318621B2 (ja) 2014-01-06 2018-05-09 株式会社デンソー 音声処理装置、音声処理システム、音声処理方法、音声処理プログラム
US9037455B1 (en) 2014-01-08 2015-05-19 Google Inc. Limiting notification interruptions
US8938394B1 (en) 2014-01-09 2015-01-20 Google Inc. Audio triggers based on context
US9924215B2 (en) 2014-01-09 2018-03-20 Hsni, Llc Digital media content management system and method
US9443516B2 (en) 2014-01-09 2016-09-13 Honeywell International Inc. Far-field speech recognition systems and methods
US20150201077A1 (en) 2014-01-12 2015-07-16 Genesys Telecommunications Laboratories, Inc. Computing suggested actions in caller agent phone calls by using real-time speech analytics and real-time desktop analytics
US10360907B2 (en) 2014-01-14 2019-07-23 Toyota Motor Engineering & Manufacturing North America, Inc. Smart necklace with stereo vision and onboard processing
US9514748B2 (en) 2014-01-15 2016-12-06 Microsoft Technology Licensing, Llc Digital personal assistant interaction with impersonations and rich multimedia in responses
US20150199965A1 (en) 2014-01-16 2015-07-16 CloudCar Inc. System and method for recognition and automatic correction of voice commands
US8868409B1 (en) 2014-01-16 2014-10-21 Google Inc. Evaluating transcriptions with a semantic parser
US9336300B2 (en) 2014-01-17 2016-05-10 Facebook, Inc. Client-side search templates for online social networks
CN104794122B (zh) 2014-01-20 2020-04-17 腾讯科技(北京)有限公司 一种位置信息推荐方法、装置和系统
KR102210433B1 (ko) 2014-01-21 2021-02-01 삼성전자주식회사 전자 장치 및 이의 음성 인식 방법
CN103744761B (zh) 2014-01-22 2017-02-08 广东欧珀移动通信有限公司 一种控制多台移动终端自动执行任务的方法及系统
DE112014006235T5 (de) 2014-01-22 2016-10-13 Apple Inc. Koordiniertes Weiterreichen einer Audiodatenübermittlung
WO2015110850A1 (en) 2014-01-22 2015-07-30 Sony Corporation Directing audio output based on gestures
CN103760984A (zh) 2014-01-24 2014-04-30 成都万先自动化科技有限责任公司 人机对话系统
CN103761104A (zh) * 2014-01-27 2014-04-30 贝壳网际(北京)安全技术有限公司 应用程序的功能引导方法、装置和客户端
US9858039B2 (en) 2014-01-28 2018-01-02 Oracle International Corporation Voice recognition of commands extracted from user interface screen devices
US11386886B2 (en) 2014-01-28 2022-07-12 Lenovo (Singapore) Pte. Ltd. Adjusting speech recognition using contextual information
JP6296813B2 (ja) 2014-01-30 2018-03-20 キヤノン株式会社 情報処理端末、情報処理端末の制御方法およびプログラム
US10019060B2 (en) 2014-01-30 2018-07-10 Duane Matthew Cash Mind-controlled virtual assistant on a smartphone device
US20160173960A1 (en) 2014-01-31 2016-06-16 EyeGroove, Inc. Methods and systems for generating audiovisual media items
CN105934791B (zh) 2014-01-31 2019-11-22 惠普发展公司,有限责任合伙企业 语音输入命令
US10096040B2 (en) 2014-01-31 2018-10-09 Walmart Apollo, Llc Management of the display of online ad content consistent with one or more performance objectives for a webpage and/or website
US9292488B2 (en) 2014-02-01 2016-03-22 Soundhound, Inc. Method for embedding voice mail in a spoken utterance using a natural language processing computer system
US10028008B2 (en) 2014-02-04 2018-07-17 Google Llc Persistent media player
US10157272B2 (en) 2014-02-04 2018-12-18 Qualcomm Incorporated Systems and methods for evaluating strength of an audio password
JP2015149568A (ja) 2014-02-05 2015-08-20 キヤノン株式会社 画像形成装置、その制御方法およびプログラム
US10050926B2 (en) 2014-02-05 2018-08-14 Facebook, Inc. Ideograms based on sentiment analysis
US20150334346A1 (en) 2014-05-16 2015-11-19 Elwha Llc Systems and methods for automatically connecting a user of a hands-free intercommunication system
CN105981099A (zh) 2014-02-06 2016-09-28 三菱电机株式会社 语音检索装置和语音检索方法
US20150228281A1 (en) 2014-02-07 2015-08-13 First Principles,Inc. Device, system, and method for active listening
US9576588B2 (en) 2014-02-10 2017-02-21 Apple Inc. Close-talk detector for personal listening device with adaptive active noise control
US9837075B2 (en) 2014-02-10 2017-12-05 Mitsubishi Electric Research Laboratories, Inc. Statistical voice dialog system and method
US10083205B2 (en) 2014-02-12 2018-09-25 Samsung Electronics Co., Ltd. Query cards
US9037967B1 (en) 2014-02-18 2015-05-19 King Fahd University Of Petroleum And Minerals Arabic spell checking technique
US10469428B2 (en) 2014-02-21 2019-11-05 Samsung Electronics Co., Ltd. Apparatus and method for transmitting message
US9589562B2 (en) 2014-02-21 2017-03-07 Microsoft Technology Licensing, Llc Pronunciation learning through correction logs
WO2015127404A1 (en) 2014-02-24 2015-08-27 Microsoft Technology Licensing, Llc Unified presentation of contextually connected information to improve user efficiency and interaction performance
US20150243279A1 (en) 2014-02-26 2015-08-27 Toytalk, Inc. Systems and methods for recommending responses
US9495959B2 (en) 2014-02-27 2016-11-15 Ford Global Technologies, Llc Disambiguation of dynamic commands
US10389876B2 (en) 2014-02-28 2019-08-20 Ultratec, Inc. Semiautomated relay method and apparatus
US20150248651A1 (en) 2014-02-28 2015-09-03 Christine E. Akutagawa Social networking event planning
US9848253B2 (en) 2014-03-03 2017-12-19 Sony Corporation Information processing apparatus, information processing method, and program
US9412363B2 (en) 2014-03-03 2016-08-09 Microsoft Technology Licensing, Llc Model based approach for on-screen item selection and disambiguation
US20150256873A1 (en) 2014-03-04 2015-09-10 Microsoft Technology Licensing, Llc Relayed voice control of devices
US9582246B2 (en) 2014-03-04 2017-02-28 Microsoft Technology Licensing, Llc Voice-command suggestions based on computer context
US9574890B2 (en) 2014-03-04 2017-02-21 Qualcomm Incorporated Reduced power consumption and improved user experience when navigating along familiar routes
US9489171B2 (en) 2014-03-04 2016-11-08 Microsoft Technology Licensing, Llc Voice-command suggestions based on user identity
US10409454B2 (en) 2014-03-05 2019-09-10 Samsung Electronics Co., Ltd. Smart watch device and user interface thereof
US9286910B1 (en) 2014-03-13 2016-03-15 Amazon Technologies, Inc. System for resolving ambiguous queries based on user context
US9405377B2 (en) 2014-03-15 2016-08-02 Microsoft Technology Licensing, Llc Trainable sensor-based gesture recognition
US10102274B2 (en) 2014-03-17 2018-10-16 NLPCore LLC Corpus search systems and methods
US9430186B2 (en) 2014-03-17 2016-08-30 Google Inc Visual indication of a recognized voice-initiated action
CN103841268A (zh) 2014-03-17 2014-06-04 联想(北京)有限公司 信息处理方法和信息处理装置
CN103885608A (zh) 2014-03-19 2014-06-25 百度在线网络技术(北京)有限公司 一种输入方法及系统
US9734817B1 (en) 2014-03-21 2017-08-15 Amazon Technologies, Inc. Text-to-speech task scheduling
US9336306B2 (en) 2014-03-21 2016-05-10 International Business Machines Corporation Automatic evaluation and improvement of ontologies for natural language processing tasks
US9966079B2 (en) 2014-03-24 2018-05-08 Lenovo (Singapore) Pte. Ltd. Directing voice input based on eye tracking
US20170075653A1 (en) 2014-03-26 2017-03-16 Sony Corporation Electronic device and method for controlling the electronic device
US9431021B1 (en) 2014-03-27 2016-08-30 Amazon Technologies, Inc. Device grouping for audio based interactivity
US9916839B1 (en) 2014-03-27 2018-03-13 Amazon Technologies, Inc. Shared audio functionality based on device grouping
US9710546B2 (en) 2014-03-28 2017-07-18 Microsoft Technology Licensing, Llc Explicit signals personalized search
IN2014DE00899A (ja) 2014-03-28 2015-10-02 Samsung Electronics Co Ltd
RU2014111971A (ru) 2014-03-28 2015-10-10 Юрий Михайлович Буров Способ и система голосового интерфейса
US10031913B2 (en) 2014-03-29 2018-07-24 Camelot Uk Bidco Limited Method, system and software for searching, identifying, retrieving and presenting electronic documents
US10037758B2 (en) 2014-03-31 2018-07-31 Mitsubishi Electric Corporation Device and method for understanding user intent
US9196243B2 (en) 2014-03-31 2015-11-24 International Business Machines Corporation Method and system for efficient spoken term detection using confusion networks
US10749989B2 (en) 2014-04-01 2020-08-18 Microsoft Technology Licensing Llc Hybrid client/server architecture for parallel processing
US20150278370A1 (en) 2014-04-01 2015-10-01 Microsoft Corporation Task completion for natural language input
US9286892B2 (en) 2014-04-01 2016-03-15 Google Inc. Language modeling in speech recognition
CN103902373B (zh) 2014-04-02 2017-09-29 百度在线网络技术(北京)有限公司 智能终端控制方法、服务器和智能终端
EP3127352B1 (en) 2014-04-02 2020-10-28 Sony Corporation Power efficient proximity detection
US10992609B2 (en) 2014-04-02 2021-04-27 CloLa, Inc. Text-messaging based concierge services
US20150286627A1 (en) 2014-04-03 2015-10-08 Adobe Systems Incorporated Contextual sentiment text analysis
KR102249086B1 (ko) 2014-04-04 2021-05-10 삼성전자주식회사 레코딩 지원 전자장치 및 방법
KR20150115555A (ko) 2014-04-04 2015-10-14 삼성전자주식회사 전자 장치 및 그의 정보 제공 방법
US9519644B2 (en) 2014-04-04 2016-12-13 Facebook, Inc. Methods and devices for generating media items
US9383827B1 (en) 2014-04-07 2016-07-05 Google Inc. Multi-modal command display
JP6282516B2 (ja) 2014-04-08 2018-02-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 複数機器の音声操作システム、音声操作方法及び、プログラム
CN104978963A (zh) 2014-04-08 2015-10-14 富士通株式会社 语音识别装置、方法以及电子设备
US20150294516A1 (en) 2014-04-10 2015-10-15 Kuo-Ching Chiang Electronic device with security module
US9888452B2 (en) 2014-04-10 2018-02-06 Twin Harbor Labs Llc Methods and apparatus notifying a user of the operating condition of a household appliance
WO2015157013A1 (en) 2014-04-11 2015-10-15 Analog Devices, Inc. Apparatus, systems and methods for providing blind source separation services
CN104980412B (zh) 2014-04-14 2018-07-13 阿里巴巴集团控股有限公司 一种应用客户端、服务端及对应的Portal认证方法
US20150294086A1 (en) 2014-04-14 2015-10-15 Elwha Llc Devices, systems, and methods for automated enhanced care rooms
US9652453B2 (en) 2014-04-14 2017-05-16 Xerox Corporation Estimation of parameters for machine translation without in-domain parallel data
US20150302856A1 (en) 2014-04-17 2015-10-22 Qualcomm Incorporated Method and apparatus for performing function by speech input
US10540979B2 (en) 2014-04-17 2020-01-21 Qualcomm Incorporated User interface for secure access to a device using speaker verification
US10770075B2 (en) 2014-04-21 2020-09-08 Qualcomm Incorporated Method and apparatus for activating application by speech input
US9607613B2 (en) 2014-04-23 2017-03-28 Google Inc. Speech endpointing based on word comparisons
KR20150122561A (ko) 2014-04-23 2015-11-02 삼성전자주식회사 디바이스 및 상기 디바이스에서의 착신 호출 처리 방법
CN105025051A (zh) 2014-04-24 2015-11-04 深圳市赛格导航科技股份有限公司 一种云端语音服务提供方法和系统
US20150310862A1 (en) 2014-04-24 2015-10-29 Microsoft Corporation Deep learning for semantic parsing including semantic utterance classification
US10845982B2 (en) 2014-04-28 2020-11-24 Facebook, Inc. Providing intelligent transcriptions of sound messages in a messaging application
US9478247B2 (en) 2014-04-28 2016-10-25 Sonos, Inc. Management of media content playback
US8976063B1 (en) 2014-04-29 2015-03-10 Google Inc. Automated detection of vehicle parking and location
US9520127B2 (en) 2014-04-29 2016-12-13 Microsoft Technology Licensing, Llc Shared hidden layer combination for speech recognition systems
US9600600B2 (en) 2014-04-30 2017-03-21 Excalibur Ip, Llc Method and system for evaluating query suggestions quality
KR102248474B1 (ko) 2014-04-30 2021-05-07 삼성전자 주식회사 음성 명령 제공 방법 및 장치
US9501163B2 (en) 2014-05-06 2016-11-22 Symbol Technologies, Llc Apparatus and method for activating a trigger mechanism
KR102282487B1 (ko) 2014-05-08 2021-07-26 삼성전자주식회사 애플리케이션 실행 장치 및 방법
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US9459889B2 (en) 2014-05-19 2016-10-04 Qualcomm Incorporated Systems and methods for context-aware application control
US10726831B2 (en) 2014-05-20 2020-07-28 Amazon Technologies, Inc. Context interpretation in natural language processing using previous dialog acts
KR102216048B1 (ko) 2014-05-20 2021-02-15 삼성전자주식회사 음성 명령 인식 장치 및 방법
US10417554B2 (en) 2014-05-22 2019-09-17 Lee J. Scheffler Methods and systems for neural and cognitive processing
KR102223278B1 (ko) 2014-05-22 2021-03-05 엘지전자 주식회사 글래스 타입 단말기 및 이의 제어방법
US9990433B2 (en) 2014-05-23 2018-06-05 Samsung Electronics Co., Ltd. Method for searching and device thereof
KR102329420B1 (ko) 2014-05-23 2021-11-22 엘지전자 주식회사 이동단말기 및 그 제어방법
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9437189B2 (en) 2014-05-29 2016-09-06 Google Inc. Generating language models
US11088807B2 (en) 2014-05-30 2021-08-10 Apple Inc. Application-level acknowledgements
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
TWI520007B (zh) 2014-05-30 2016-02-01 由田新技股份有限公司 眼控密碼輸入設備、方法、電腦可讀取紀錄媒體及電腦程式產品
US10579212B2 (en) 2014-05-30 2020-03-03 Apple Inc. Structured suggestions
US10033818B2 (en) 2014-05-30 2018-07-24 Apple Inc. Using listen ranges to deliver content to electronic devices from local caching servers
EP3108351B1 (en) 2014-05-30 2019-05-08 Apple Inc. Activity continuation between electronic devices
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US10237711B2 (en) 2014-05-30 2019-03-19 Apple Inc. Dynamic types for activity continuation between electronic devices
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9519634B2 (en) 2014-05-30 2016-12-13 Educational Testing Service Systems and methods for determining lexical associations among words in a corpus
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
WO2015184387A1 (en) 2014-05-30 2015-12-03 Apple Inc. Accessory management system using environment model
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
WO2015183699A1 (en) 2014-05-30 2015-12-03 Apple Inc. Predictive messaging method
US10387451B2 (en) 2014-05-30 2019-08-20 Apple Inc. Synchronization system for multiple client devices
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9380123B2 (en) 2014-05-30 2016-06-28 Apple Inc. Activity continuation between electronic devices
CN110797019B (zh) 2014-05-30 2023-08-29 苹果公司 多命令单一话语输入方法
US9887949B2 (en) 2014-05-31 2018-02-06 Apple Inc. Displaying interactive notifications on touch sensitive devices
GB2526805A (en) 2014-06-03 2015-12-09 Nokia Technologies Oy Methods, apparatuses and computer programs for adapting content
US10318016B2 (en) 2014-06-03 2019-06-11 Harman International Industries, Incorporated Hands free device with directional interface
US9654536B2 (en) 2014-06-04 2017-05-16 Sonos, Inc. Cloud queue playback policy
US8995972B1 (en) 2014-06-05 2015-03-31 Grandios Technologies, Llc Automatic personal assistance between users devices
EP3158691B1 (en) 2014-06-06 2024-09-25 Google LLC Proactive environment-based chat information system
JP6307356B2 (ja) 2014-06-06 2018-04-04 株式会社デンソー 運転コンテキスト情報生成装置
US10325205B2 (en) 2014-06-09 2019-06-18 Cognitive Scale, Inc. Cognitive information processing system environment
HUE039773T2 (hu) 2014-06-11 2019-02-28 Huawei Tech Co Ltd Eljárás és terminál egy alkalmazás szolgáltatás gyorsindítására
CN104090652B (zh) 2014-06-13 2017-07-21 北京搜狗科技发展有限公司 一种语音输入方法和装置
US10127901B2 (en) 2014-06-13 2018-11-13 Microsoft Technology Licensing, Llc Hyper-structure recurrent neural networks for text-to-speech
US20150364140A1 (en) 2014-06-13 2015-12-17 Sony Corporation Portable Electronic Equipment and Method of Operating a User Interface
US10250538B2 (en) 2014-06-14 2019-04-02 Trisha N. Prabhu Detecting messages with offensive content
US10375129B2 (en) * 2014-06-17 2019-08-06 Microsoft Technology Licensing, Llc Facilitating conversations with automated location mapping
KR20150144668A (ko) 2014-06-17 2015-12-28 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US20150370787A1 (en) 2014-06-18 2015-12-24 Microsoft Corporation Session Context Modeling For Conversational Understanding Systems
US9462112B2 (en) 2014-06-19 2016-10-04 Microsoft Technology Licensing, Llc Use of a digital assistant in communications
US10186282B2 (en) 2014-06-19 2019-01-22 Apple Inc. Robust end-pointing of speech signals using speaker recognition
US9390706B2 (en) 2014-06-19 2016-07-12 Mattersight Corporation Personality-based intelligent personal assistant system and methods
US9384738B2 (en) 2014-06-24 2016-07-05 Google Inc. Dynamic threshold for speaker verification
US20150371529A1 (en) 2014-06-24 2015-12-24 Bose Corporation Audio Systems and Related Methods and Devices
US9632748B2 (en) 2014-06-24 2017-04-25 Google Inc. Device designation for audio input monitoring
US10783166B2 (en) 2014-06-24 2020-09-22 Google Llc List accumulation and reminder triggering
US9807559B2 (en) 2014-06-25 2017-10-31 Microsoft Technology Licensing, Llc Leveraging user signals for improved interactions with digital personal assistant
US20150379118A1 (en) 2014-06-27 2015-12-31 United Video Properties, Inc. Methods and systems for generating playlists based on activities being performed by a user
US20150381923A1 (en) 2014-06-27 2015-12-31 United Video Properties, Inc. Methods and systems for adjusting a play length of a media asset based user actions
US10402453B2 (en) 2014-06-27 2019-09-03 Nuance Communications, Inc. Utilizing large-scale knowledge graphs to support inference at scale and explanation generation
KR102261552B1 (ko) 2014-06-30 2021-06-07 삼성전자주식회사 음성 명령어 제공 방법 및 이를 지원하는 전자 장치
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
WO2016004396A1 (en) 2014-07-02 2016-01-07 Christopher Decharms Technologies for brain exercise training
US20160012038A1 (en) 2014-07-10 2016-01-14 International Business Machines Corporation Semantic typing with n-gram analysis
US10321204B2 (en) 2014-07-11 2019-06-11 Lenovo (Singapore) Pte. Ltd. Intelligent closed captioning
US9665248B2 (en) 2014-07-15 2017-05-30 Google Inc. Adaptive background playback behavior
US10506273B2 (en) 2014-07-15 2019-12-10 Verizon Patent And Licensing Inc. Using a media client device to present media content from a mobile device
KR20160009344A (ko) 2014-07-16 2016-01-26 삼성전자주식회사 귓속말 인식 방법 및 장치
US9257120B1 (en) 2014-07-18 2016-02-09 Google Inc. Speaker verification using co-location information
CN104113471B (zh) 2014-07-18 2018-06-05 广州三星通信技术研究有限公司 通讯连接异常时的信息处理方法和装置
KR101918421B1 (ko) 2014-07-18 2018-11-13 애플 인크. 디바이스에서의 들어올림 제스처 검출
US9560402B2 (en) 2014-07-23 2017-01-31 Highlands Technologies Solutions Methods for displaying personalized messages, images and the like at event centers including cinema
US20160028666A1 (en) 2014-07-24 2016-01-28 Framy Inc. System and method for instant messaging
US9301256B2 (en) 2014-07-24 2016-03-29 Verizon Patent And Licensing Inc. Low battery indication for callers to mobile device
US20160086116A1 (en) 2014-07-27 2016-03-24 Supriya Rao Method and system of an automatically managed calendar and contextual task list
US9325842B1 (en) 2014-07-28 2016-04-26 Google Inc. Systems and methods for associating a string with a content item
US10178229B2 (en) 2014-07-29 2019-01-08 United Efficiency, Inc. System for limiting mobile phone distraction in motor vehicles and / or within fixed locations
CN104123191A (zh) 2014-07-31 2014-10-29 北京智谷睿拓技术服务有限公司 任务迁移控制方法、装置和系统
US20160034811A1 (en) 2014-07-31 2016-02-04 Apple Inc. Efficient generation of complementary acoustic models for performing automatic speech recognition system combination
EP2998822B1 (en) 2014-07-31 2018-09-12 Samsung Electronics Co., Ltd Mobile communication device using a plurality of wearable devices in parallel
WO2016017997A1 (en) 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Wearable glasses and method of providing content using the same
US9377871B2 (en) 2014-08-01 2016-06-28 Nuance Communications, Inc. System and methods for determining keyboard input in the presence of multiple contact points
US9898175B2 (en) 2014-08-05 2018-02-20 Fibar Group S.A. Home network manager for home automation
US9874997B2 (en) 2014-08-08 2018-01-23 Sonos, Inc. Social playback queues
US9767794B2 (en) 2014-08-11 2017-09-19 Nuance Communications, Inc. Dialog flow management in hierarchical task dialogs
US9548066B2 (en) 2014-08-11 2017-01-17 Amazon Technologies, Inc. Voice application architecture
US9361442B2 (en) 2014-08-12 2016-06-07 International Business Machines Corporation Triggering actions on a user device based on biometrics of nearby individuals
US10243891B2 (en) 2014-08-14 2019-03-26 Oath Inc. Cross-device integration system and method
US9838999B2 (en) 2014-08-14 2017-12-05 Blackberry Limited Portable electronic device and method of controlling notifications
JP6044604B2 (ja) 2014-08-18 2016-12-14 カシオ計算機株式会社 端末装置、およびプログラム
US20170238039A1 (en) 2014-08-18 2017-08-17 Interdigital Patent Holdings, Inc. Injecting streaming media into a playlist
US10345767B2 (en) 2014-08-19 2019-07-09 Samsung Electronics Co., Ltd. Apparatus and method for gamification of sensor data interpretation in smart home
KR20160023089A (ko) 2014-08-21 2016-03-03 엘지전자 주식회사 디지털 디바이스 및 그 제어 방법
US20160055240A1 (en) 2014-08-22 2016-02-25 Microsoft Corporation Orphaned utterance detection system and method
DE202015005999U1 (de) 2014-08-26 2015-11-26 Apple Inc. Benutzerschnittstelle zum Einschränken von Meldungen und Alarmen
CN105472587A (zh) 2014-08-26 2016-04-06 小米科技有限责任公司 来电处理方法和装置
US10068008B2 (en) 2014-08-28 2018-09-04 Microsoft Technologies Licensing, LLC Spelling correction of email queries
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9990610B2 (en) 2014-08-29 2018-06-05 Google Llc Systems and methods for providing suggested reminders
CN105471705B (zh) 2014-09-03 2021-03-23 腾讯科技(深圳)有限公司 一种基于即时通讯的智能控制方法、设备及系统
CN104243699A (zh) 2014-09-04 2014-12-24 宇龙计算机通信科技(深圳)有限公司 一种来电拒接后的提醒方法、系统及移动终端
US9959863B2 (en) 2014-09-08 2018-05-01 Qualcomm Incorporated Keyword detection using speaker-independent keyword models for user-designated keywords
CN105960672B (zh) 2014-09-09 2019-11-26 微软技术许可有限责任公司 用于稳健语音识别的变量组件深度神经网络
US20160071517A1 (en) 2014-09-09 2016-03-10 Next It Corporation Evaluating Conversation Data based on Risk Factors
US10204622B2 (en) 2015-09-10 2019-02-12 Crestron Electronics, Inc. Acoustic sensory network
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US10171558B2 (en) 2014-09-12 2019-01-01 Microsoft Technology Licensing, Llc Cross device application discovery and control
CN105490890A (zh) 2014-09-16 2016-04-13 中兴通讯股份有限公司 智能家庭终端及其控制方法
US10261672B1 (en) 2014-09-16 2019-04-16 Amazon Technologies, Inc. Contextual launch interfaces
US9548979B1 (en) 2014-09-19 2017-01-17 United Services Automobile Association (Usaa) Systems and methods for authentication program enrollment
US9778736B2 (en) 2014-09-22 2017-10-03 Rovi Guides, Inc. Methods and systems for calibrating user devices
JP6052814B2 (ja) 2014-09-24 2016-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 音声認識モデルの構築方法、音声認識方法、コンピュータ・システム、音声認識装置、プログラムおよび記録媒体
US9508028B2 (en) 2014-09-24 2016-11-29 Nuance Communications, Inc. Converting text strings into number strings, such as via a touchscreen input
US10317992B2 (en) 2014-09-25 2019-06-11 Microsoft Technology Licensing, Llc Eye gaze for spoken language understanding in multi-modal conversational interactions
US20160094889A1 (en) 2014-09-29 2016-03-31 Rovi Guides, Inc. Systems and methods for determining whether to merge search queries based on contextual information
US9606986B2 (en) 2014-09-29 2017-03-28 Apple Inc. Integrated word N-gram and class M-gram language models
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9646634B2 (en) 2014-09-30 2017-05-09 Google Inc. Low-rank hidden input layer for speech recognition neural network
US9830321B2 (en) 2014-09-30 2017-11-28 Rovi Guides, Inc. Systems and methods for searching for a media asset
US9578156B2 (en) 2014-09-30 2017-02-21 Samsung Electronics Co., Ltd. Method and apparatus for operating an electronic device
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
JP6448971B2 (ja) 2014-09-30 2019-01-09 シャープ株式会社 対話装置
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9378740B1 (en) 2014-09-30 2016-06-28 Amazon Technologies, Inc. Command suggestions during automatic speech recognition
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
EP3201913A4 (en) 2014-10-01 2018-06-06 Xbrain Inc. Voice and connection platform
US9559993B2 (en) 2014-10-02 2017-01-31 Oracle International Corporation Virtual agent proxy in a real-time chat service
WO2016054651A1 (en) 2014-10-03 2016-04-07 Across Lab, Inc. Method and apparatus for remote, multi-media collaboration, including archive and search capability
US9812128B2 (en) 2014-10-09 2017-11-07 Google Inc. Device leadership negotiation among voice interface devices
US9318107B1 (en) 2014-10-09 2016-04-19 Google Inc. Hotword detection on multiple devices
US9424841B2 (en) 2014-10-09 2016-08-23 Google Inc. Hotword detection on multiple devices
US9741344B2 (en) 2014-10-20 2017-08-22 Vocalzoom Systems Ltd. System and method for operating devices using voice commands
US20160117386A1 (en) 2014-10-22 2016-04-28 International Business Machines Corporation Discovering terms using statistical corpus analysis
CN104360990A (zh) * 2014-10-27 2015-02-18 深圳市金立通信设备有限公司 一种编辑内容的方法
US9576575B2 (en) 2014-10-27 2017-02-21 Toyota Motor Engineering & Manufacturing North America, Inc. Providing voice recognition shortcuts based on user verbal input
CN104460593B (zh) 2014-10-29 2017-10-10 小米科技有限责任公司 模式切换方法及装置
US9880714B2 (en) 2014-10-30 2018-01-30 Ebay Inc. Dynamic loading of contextual ontologies for predictive touch screen typing
US10089364B2 (en) 2014-10-31 2018-10-02 Kabushiki Kaisha Toshiba Item recommendation device, item recommendation method, and computer program product
CN104374399A (zh) * 2014-10-31 2015-02-25 北京搜狗科技发展有限公司 一种导航信息显示方法和装置
US9646611B2 (en) 2014-11-06 2017-05-09 Microsoft Technology Licensing, Llc Context-based actions
GB2532075A (en) 2014-11-10 2016-05-11 Lego As System and method for toy recognition and detection based on convolutional neural networks
US10572589B2 (en) 2014-11-10 2020-02-25 International Business Machines Corporation Cognitive matching of narrative data
US9582493B2 (en) 2014-11-10 2017-02-28 Oracle International Corporation Lemma mapping to universal ontologies in computer natural language processing
WO2016077613A1 (en) 2014-11-11 2016-05-19 Webee LLC Systems and methods for smart spaces
US9542927B2 (en) 2014-11-13 2017-01-10 Google Inc. Method and system for building text-to-speech voice from diverse recordings
US20160139662A1 (en) 2014-11-14 2016-05-19 Sachin Dabhade Controlling a visual device based on a proximity between a user and the visual device
US10116748B2 (en) 2014-11-20 2018-10-30 Microsoft Technology Licensing, Llc Vehicle-based multi-modal interface
US9361126B1 (en) 2014-11-24 2016-06-07 International Business Machines Corporation Device driver aggregation in operating system deployment
US9258604B1 (en) 2014-11-24 2016-02-09 Facebook, Inc. Commercial detection based on audio fingerprinting
US9886430B2 (en) 2014-11-25 2018-02-06 Microsoft Technology Licensing, Llc Entity based content selection
US10614799B2 (en) 2014-11-26 2020-04-07 Voicebox Technologies Corporation System and method of providing intent predictions for an utterance prior to a system detection of an end of the utterance
US10192549B2 (en) 2014-11-28 2019-01-29 Microsoft Technology Licensing, Llc Extending digital personal assistant action providers
US9812126B2 (en) 2014-11-28 2017-11-07 Microsoft Technology Licensing, Llc Device arbitration for listening devices
EP3228084A4 (en) 2014-12-01 2018-04-25 Inscape Data, Inc. System and method for continuous media segment identification
KR20160065503A (ko) 2014-12-01 2016-06-09 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US10587541B2 (en) 2014-12-02 2020-03-10 Facebook, Inc. Device, method, and graphical user interface for lightweight messaging
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US20160162458A1 (en) 2014-12-09 2016-06-09 Idibon, Inc. Graphical systems and methods for human-in-the-loop machine intelligence
US9466297B2 (en) 2014-12-09 2016-10-11 Microsoft Technology Licensing, Llc Communication system
US9241073B1 (en) 2014-12-09 2016-01-19 Ringcentral, Inc. Systems and methods for managing an event scheduling request in a telephony system
US20160170966A1 (en) 2014-12-10 2016-06-16 Brian Kolo Methods and systems for automated language identification
CN111427534B (zh) 2014-12-11 2023-07-25 微软技术许可有限责任公司 能够实现可动作的消息传送的虚拟助理系统
US9912758B2 (en) 2014-12-16 2018-03-06 Yahoo Holdings, Inc. Continuing an application session on a different device
US9904673B2 (en) 2014-12-17 2018-02-27 International Business Machines Corporation Conversation advisor
CN107004405A (zh) 2014-12-18 2017-08-01 三菱电机株式会社 语音识别装置和语音识别方法
US9552816B2 (en) 2014-12-19 2017-01-24 Amazon Technologies, Inc. Application focus in speech-based systems
US9911415B2 (en) 2014-12-19 2018-03-06 Lenovo (Singapore) Pte. Ltd. Executing a voice command during voice input
US9811312B2 (en) 2014-12-22 2017-11-07 Intel Corporation Connected device voice command support
JP6504808B2 (ja) 2014-12-22 2019-04-24 キヤノン株式会社 撮像装置、音声コマンド機能の設定方法、コンピュータプログラム、及び記憶媒体
KR20160076201A (ko) 2014-12-22 2016-06-30 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US9690542B2 (en) 2014-12-22 2017-06-27 Microsoft Technology Licensing, Llc Scaling digital personal assistant agents across devices
US10672390B2 (en) 2014-12-22 2020-06-02 Rovi Guides, Inc. Systems and methods for improving speech recognition performance by generating combined interpretations
US10229356B1 (en) 2014-12-23 2019-03-12 Amazon Technologies, Inc. Error tolerant neural network model compression
US9483388B2 (en) 2014-12-29 2016-11-01 Quixey, Inc. Discovery of application states
US9837081B2 (en) 2014-12-30 2017-12-05 Microsoft Technology Licensing, Llc Discovering capabilities of third-party voice-enabled resources
US10713005B2 (en) 2015-01-05 2020-07-14 Google Llc Multimodal state circulation
US9959129B2 (en) 2015-01-09 2018-05-01 Microsoft Technology Licensing, Llc Headless task completion within digital personal assistants
EP3958255A1 (en) 2015-01-16 2022-02-23 Samsung Electronics Co., Ltd. Method and device for performing voice recognition
KR102305584B1 (ko) 2015-01-19 2021-09-27 삼성전자주식회사 언어 모델 학습 방법 및 장치, 언어 인식 방법 및 장치
CN104575501B (zh) 2015-01-19 2017-11-03 北京云知声信息技术有限公司 一种收音机语音操控指令解析方法及系统
US9367541B1 (en) 2015-01-20 2016-06-14 Xerox Corporation Terminological adaptation of statistical machine translation system through automatic generation of phrasal contexts for bilingual terms
CN105869641A (zh) 2015-01-22 2016-08-17 佳能株式会社 语音识别装置及语音识别方法
US9947313B2 (en) 2015-01-26 2018-04-17 William Drewes Method for substantial ongoing cumulative voice recognition error reduction
CN104573472A (zh) 2015-01-30 2015-04-29 深圳市中兴移动通信有限公司 移动终端及其操作方法
US9424412B1 (en) 2015-02-02 2016-08-23 Bank Of America Corporation Authenticating customers using biometrics
US20160227107A1 (en) 2015-02-02 2016-08-04 Lenovo (Singapore) Pte. Ltd. Method and device for notification preview dismissal
US20160225372A1 (en) 2015-02-03 2016-08-04 Samsung Electronics Company, Ltd. Smart home connected device contextual learning using audio commands
US9613022B2 (en) 2015-02-04 2017-04-04 Lenovo (Singapore) Pte. Ltd. Context based customization of word assistance functions
US10062061B2 (en) * 2015-02-05 2018-08-28 Conduent Business Services, Llc Pay-by-phone parking system aided by a vision based monitoring device
US10121472B2 (en) 2015-02-13 2018-11-06 Knowles Electronics, Llc Audio buffer catch-up apparatus and method with two microphones
CN104679472A (zh) 2015-02-13 2015-06-03 百度在线网络技术(北京)有限公司 人机语音交互方法和装置
KR101678087B1 (ko) 2015-02-16 2016-11-23 현대자동차주식회사 차량 및 그 제어방법
KR20160101826A (ko) 2015-02-17 2016-08-26 삼성전자주식회사 멀티 유저 기반의 전자 장치
JP2016151928A (ja) 2015-02-18 2016-08-22 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US9554356B2 (en) 2015-02-19 2017-01-24 Microsoft Technology Licensing, Llc Personalized reminders
WO2016134183A1 (en) 2015-02-19 2016-08-25 Digital Reasoning Systems, Inc. Systems and methods for neural language modeling
US9928232B2 (en) 2015-02-27 2018-03-27 Microsoft Technology Licensing, Llc Topically aware word suggestions
CN107408045B (zh) 2015-02-27 2022-10-04 三星电子株式会社 控制安装有多个操作系统的设备的方法和该设备
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9911412B2 (en) 2015-03-06 2018-03-06 Nuance Communications, Inc. Evidence-based natural language input recognition
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10254911B2 (en) 2015-03-08 2019-04-09 Apple Inc. Device configuration user interface
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US20160266871A1 (en) 2015-03-11 2016-09-15 Adapx, Inc. Speech recognizer for multimodal systems and signing in/out with and /or for a digital pen
US9805713B2 (en) 2015-03-13 2017-10-31 Google Inc. Addressing missing features in models
US9984686B1 (en) 2015-03-17 2018-05-29 Amazon Technologies, Inc. Mapping device capabilities to a predefined set
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
CN104869342A (zh) 2015-06-09 2015-08-26 柳州桂通科技股份有限公司 一种多媒体多信息同步重现的方法及其应用
WO2016150350A1 (zh) 2015-03-20 2016-09-29 柳州桂通科技股份有限公司 一种多媒体多信息同步重现的方法和系统
US20160286045A1 (en) 2015-03-23 2016-09-29 Vonage Network Llc System and method for providing an informative message when rejecting an incoming call
US10063510B2 (en) 2015-03-24 2018-08-28 Facebook, Inc. Techniques to share and remix media through a messaging system
US9703394B2 (en) 2015-03-24 2017-07-11 Google Inc. Unlearning techniques for adaptive language models in text entry
US9672725B2 (en) 2015-03-25 2017-06-06 Microsoft Technology Licensing, Llc Proximity-based reminders
US20160285816A1 (en) 2015-03-25 2016-09-29 Facebook, Inc. Techniques for automated determination of form responses
US10261482B2 (en) 2015-03-26 2019-04-16 Ca, Inc. Initiating actions on wearable devices
US10133538B2 (en) 2015-03-27 2018-11-20 Sri International Semi-supervised speaker diarization
US9484021B1 (en) 2015-03-30 2016-11-01 Amazon Technologies, Inc. Disambiguation in speech recognition
US20160293157A1 (en) 2015-03-30 2016-10-06 Google Inc. Contextual Voice Action History
TWI525532B (zh) 2015-03-30 2016-03-11 Yu-Wei Chen Set the name of the person to wake up the name for voice manipulation
US10192546B1 (en) 2015-03-30 2019-01-29 Amazon Technologies, Inc. Pre-wakeword speech processing
JP6669073B2 (ja) 2015-03-31 2020-03-18 ソニー株式会社 情報処理装置、制御方法、およびプログラム
US20170032783A1 (en) 2015-04-01 2017-02-02 Elwha Llc Hierarchical Networked Command Recognition
US20160322044A1 (en) 2015-04-01 2016-11-03 Elwha Llc Networked User Command Recognition
US10021209B2 (en) 2015-04-10 2018-07-10 Open Text Sa Ulc Systems and methods for caching of managed content in a distributed environment using a multi-tiered architecture
US10049099B2 (en) 2015-04-10 2018-08-14 Facebook, Inc. Spell correction with hidden markov models on online social networks
US9678664B2 (en) 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
EP3282445A4 (en) 2015-04-10 2018-05-02 Huawei Technologies Co. Ltd. Voice recognition method, voice wake-up device, voice recognition device and terminal
US10095683B2 (en) 2015-04-10 2018-10-09 Facebook, Inc. Contextual speller models on online social networks
US20160299977A1 (en) 2015-04-13 2016-10-13 Quixey, Inc. Action-Based App Recommendation Engine
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10218651B2 (en) 2015-04-20 2019-02-26 Oracle International Corporation Virtual assistance for chat agents
KR102269035B1 (ko) 2015-04-21 2021-06-24 삼성전자주식회사 서버 및 서버의 그룹 액션 제어방법
US9472196B1 (en) 2015-04-22 2016-10-18 Google Inc. Developer voice actions system
US10083213B1 (en) 2015-04-27 2018-09-25 Intuit Inc. Method and system for routing a question based on analysis of the question content and predicted user satisfaction with answer content before the answer content is generated
WO2016175354A1 (ko) 2015-04-29 2016-11-03 주식회사 아카인텔리전스 인공지능 대화 장치 및 방법
GB2537903B (en) 2015-04-30 2019-09-04 Toshiba Res Europe Limited Device and method for a spoken dialogue system
US11010768B2 (en) 2015-04-30 2021-05-18 Oracle International Corporation Character-based attribute value extraction system
US9953063B2 (en) 2015-05-02 2018-04-24 Lithium Technologies, Llc System and method of providing a content discovery platform for optimizing social network engagements
US20160328205A1 (en) 2015-05-05 2016-11-10 Motorola Mobility Llc Method and Apparatus for Voice Operation of Mobile Applications Having Unnamed View Elements
CN104867492B (zh) 2015-05-07 2019-09-03 科大讯飞股份有限公司 智能交互系统及方法
US9892363B2 (en) 2015-05-07 2018-02-13 Truemotion, Inc. Methods and systems for sensor-based driving data collection
US9953648B2 (en) 2015-05-11 2018-04-24 Samsung Electronics Co., Ltd. Electronic device and method for controlling the same
US10685471B2 (en) 2015-05-11 2020-06-16 Facebook, Inc. Methods and systems for playing video while transitioning from a content-item preview to the content item
US9761220B2 (en) 2015-05-13 2017-09-12 Microsoft Technology Licensing, Llc Language modeling based on spoken and unspeakable corpuses
US9906482B2 (en) 2015-05-13 2018-02-27 The Travelers Indemnity Company Predictive electronic message management systems and controllers
US20160337299A1 (en) 2015-05-13 2016-11-17 Google Inc. Prioritized notification display
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
EP3300074B1 (en) 2015-05-19 2019-08-21 Sony Corporation Information processing apparatus
KR20160136013A (ko) 2015-05-19 2016-11-29 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US10446142B2 (en) 2015-05-20 2019-10-15 Microsoft Technology Licensing, Llc Crafting feedback dialogue with a digital assistant
US10061848B2 (en) 2015-05-22 2018-08-28 Microsoft Technology Licensing, Llc Ontology-crowd-relevance deep response generation
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
WO2016191653A1 (en) 2015-05-27 2016-12-01 Orion Labs Intelligent agent features for wearable personal communication nodes
US10097973B2 (en) 2015-05-27 2018-10-09 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US9408182B1 (en) 2015-05-28 2016-08-02 Google Inc. Third party action triggers
US9552547B2 (en) 2015-05-29 2017-01-24 Sas Institute Inc. Normalizing electronic communications using a neural-network normalizer and a neural-network flagger
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10755032B2 (en) 2015-06-05 2020-08-25 Apple Inc. Indexing web pages with deep links
US10505884B2 (en) 2015-06-05 2019-12-10 Microsoft Technology Licensing, Llc Entity classification and/or relationship identification
US9865265B2 (en) 2015-06-06 2018-01-09 Apple Inc. Multi-microphone speech recognition systems and related techniques
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160357861A1 (en) 2015-06-07 2016-12-08 Apple Inc. Natural language event detection
US20160365101A1 (en) 2015-06-15 2016-12-15 Motorola Mobility Llc Enabling Event Driven Voice Interaction with a Device
US20160371250A1 (en) 2015-06-16 2016-12-22 Microsoft Technology Licensing, Llc Text suggestion using a predictive grammar model
WO2016205338A1 (en) 2015-06-18 2016-12-22 Amgine Technologies (Us), Inc. Managing interactions between users and applications
US9818409B2 (en) 2015-06-19 2017-11-14 Google Inc. Context-dependent modeling of phonemes
US9767386B2 (en) 2015-06-23 2017-09-19 Adobe Systems Incorporated Training a classifier algorithm used for automatically generating tags to be applied to images
CN104951077A (zh) 2015-06-24 2015-09-30 百度在线网络技术(北京)有限公司 基于人工智能的人机交互方法、装置和终端设备
DE112015006651T5 (de) 2015-06-25 2018-04-12 Intel IP Corporation Mobile kommunikationsvorrichtung und verfahren zum steuern eines empfängers einer mobilen kommunikationsvorrichtung
KR102317526B1 (ko) 2015-06-25 2021-10-26 엘지전자 주식회사 헤드셋 및 그 제어 방법
US10325590B2 (en) 2015-06-26 2019-06-18 Intel Corporation Language model modification for local speech recognition systems using remote sources
US20160379638A1 (en) 2015-06-26 2016-12-29 Amazon Technologies, Inc. Input speech quality matching
US9881613B2 (en) 2015-06-29 2018-01-30 Google Llc Privacy-preserving training corpus selection
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10019992B2 (en) 2015-06-29 2018-07-10 Disney Enterprises, Inc. Speech-controlled actions based on keywords and context thereof
US10121471B2 (en) 2015-06-29 2018-11-06 Amazon Technologies, Inc. Language model speech endpointing
US20160379641A1 (en) 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Auto-Generation of Notes and Tasks From Passive Recording
US10134425B1 (en) 2015-06-29 2018-11-20 Amazon Technologies, Inc. Direction-based speech endpointing
KR102371188B1 (ko) 2015-06-30 2022-03-04 삼성전자주식회사 음성 인식 장치 및 방법과 전자 장치
US9536527B1 (en) 2015-06-30 2017-01-03 Amazon Technologies, Inc. Reporting operational metrics in speech-based systems
JP6655635B2 (ja) 2015-06-30 2020-02-26 ケー4コネクト インコーポレイテッド アドレス指定可能ホームオートメーション(ha)デバイスのユーザ選択可能リストに基づく所望シーン実現を含むhaシステム、及び関連方法
US10073887B2 (en) 2015-07-06 2018-09-11 Conduent Business Services, Llc System and method for performing k-nearest neighbor search based on minimax distance measure and efficient outlier detection
US9998597B2 (en) 2015-07-06 2018-06-12 Nuance Communications, Inc. Systems and methods for facilitating communication using an interactive communication system
CN105100356B (zh) 2015-07-07 2018-04-06 上海斐讯数据通信技术有限公司 一种音量自动调节的方法和系统
JP2017019331A (ja) 2015-07-08 2017-01-26 Ntn株式会社 車両用モータ駆動装置
US20170011303A1 (en) 2015-07-09 2017-01-12 Qualcomm Incorporated Contact-Based Predictive Response
CN104967748B (zh) 2015-07-13 2018-10-23 宁波萨瑞通讯有限公司 一种安全操作应用服务的方法
US10249297B2 (en) 2015-07-13 2019-04-02 Microsoft Technology Licensing, Llc Propagating conversational alternatives using delayed hypothesis binding
US10426037B2 (en) 2015-07-15 2019-09-24 International Business Machines Corporation Circuitized structure with 3-dimensional configuration
CN106373575B (zh) 2015-07-23 2020-07-21 阿里巴巴集团控股有限公司 一种用户声纹模型构建方法、装置及系统
US10686738B2 (en) 2015-07-24 2020-06-16 Facebook, Inc. Providing personal assistant service via messaging
US10311384B2 (en) 2015-07-29 2019-06-04 Microsoft Technology Licensing, Llc Automatic creation and maintenance of a taskline
KR20170014297A (ko) 2015-07-29 2017-02-08 엘지전자 주식회사 와치 타입의 이동 단말기 및 그 제어 방법
US10255921B2 (en) 2015-07-31 2019-04-09 Google Llc Managing dialog data providers
US9691361B2 (en) 2015-08-03 2017-06-27 International Business Machines Corporation Adjusting presentation of content on a display
US20170039283A1 (en) 2015-08-03 2017-02-09 Microsoft Technology Licensing, Llc Searching Based on the Persona of Another
JP5906345B1 (ja) 2015-08-05 2016-04-20 株式会社Cygames 操作履歴に基づいてタッチ対象を予測するプログラム、電子装置、システム及び制御方法
US10248308B2 (en) 2015-08-10 2019-04-02 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interfaces with physical gestures
KR102386854B1 (ko) 2015-08-20 2022-04-13 삼성전자주식회사 통합 모델 기반의 음성 인식 장치 및 방법
JP6809467B2 (ja) 2015-08-24 2021-01-06 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US10362978B2 (en) 2015-08-28 2019-07-30 Comcast Cable Communications, Llc Computational model for mood
US20170061423A1 (en) 2015-09-01 2017-03-02 Bank Of America Corporation Use of wearable as an account control system
US10339917B2 (en) 2015-09-03 2019-07-02 Google Llc Enhanced speech endpointing
US9531862B1 (en) 2015-09-04 2016-12-27 Vishal Vadodaria Contextual linking module with interactive intelligent agent for managing communications with contacts and navigation features
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10026399B2 (en) 2015-09-11 2018-07-17 Amazon Technologies, Inc. Arbitration between voice-enabled devices
CN106534469A (zh) 2015-09-11 2017-03-22 昆明我行科技有限公司 一种为智能手机实现电话通讯功能扩展的方法及电子设备
US9736318B2 (en) 2015-09-16 2017-08-15 International Business Machines Corporation Adaptive voice-text transmission
US9875081B2 (en) 2015-09-21 2018-01-23 Amazon Technologies, Inc. Device selection for providing a response
US9665567B2 (en) 2015-09-21 2017-05-30 International Business Machines Corporation Suggesting emoji characters based on current contextual emotional state of user
US20170085547A1 (en) 2015-09-22 2017-03-23 International Business Machines Corporation Storing, indexing and recalling data based on brain activity
US9734142B2 (en) 2015-09-22 2017-08-15 Facebook, Inc. Universal translation
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US9990040B2 (en) 2015-09-25 2018-06-05 Immersion Corporation Haptic CAPTCHA
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10425768B2 (en) 2015-09-30 2019-09-24 Lenovo (Singapore) Pte. Ltd. Adjusting audio output volume based on a detected presence of another device
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US20170092278A1 (en) 2015-09-30 2017-03-30 Apple Inc. Speaker recognition
US20170091612A1 (en) 2015-09-30 2017-03-30 Apple Inc. Proactive assistant with memory assistance
US10970646B2 (en) 2015-10-01 2021-04-06 Google Llc Action suggestions for user-selected content
US20170102837A1 (en) 2015-10-07 2017-04-13 Spotify Ab Dynamic control of playlists using wearable devices
US10083685B2 (en) 2015-10-13 2018-09-25 GM Global Technology Operations LLC Dynamically adding or removing functionality to speech recognition systems
US10891106B2 (en) 2015-10-13 2021-01-12 Google Llc Automatic batch voice commands
KR102405793B1 (ko) 2015-10-15 2022-06-08 삼성전자 주식회사 음성 신호 인식 방법 및 이를 제공하는 전자 장치
EP3341933A1 (en) 2015-10-21 2018-07-04 Google LLC Parameter collection and automatic dialog generation in dialog systems
WO2017070535A1 (en) 2015-10-22 2017-04-27 Knowles Electronics, Llc Microphone with programmable phone onset detection engine
EP3369002A4 (en) 2015-10-26 2019-06-12 24/7 Customer, Inc. METHOD AND DEVICE FOR FACILITATING THE PREDICTION OF CUSTOMER VISIONS
US10146874B2 (en) 2015-10-28 2018-12-04 Fujitsu Limited Refining topic representations
CN106657521A (zh) 2015-10-30 2017-05-10 中兴通讯股份有限公司 一种智能设备语音交流方法、装置和系统
US20170125016A1 (en) 2015-11-02 2017-05-04 Le Holdings (Beijing) Co., Ltd. Method and electronic device for processing voice messages
US9691378B1 (en) 2015-11-05 2017-06-27 Amazon Technologies, Inc. Methods and devices for selectively ignoring captured audio data
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US9804681B2 (en) 2015-11-10 2017-10-31 Motorola Mobility Llc Method and system for audible delivery of notifications partially presented on an always-on display
KR102432620B1 (ko) 2015-11-12 2022-08-16 삼성전자주식회사 외부 객체의 근접에 따른 동작을 수행하는 전자 장치 및 그 방법
US10769189B2 (en) 2015-11-13 2020-09-08 Microsoft Technology Licensing, Llc Computer speech recognition and semantic understanding from activity patterns
US9940934B2 (en) 2015-11-18 2018-04-10 Uniphone Software Systems Adaptive voice authentication system and method
US9697393B2 (en) 2015-11-20 2017-07-04 Symbol Technologies, Llc Methods and systems for adjusting mobile-device operating parameters based on housing-support type
US10255611B2 (en) 2015-11-20 2019-04-09 International Business Machines Corporation Determining pricing using categorized costs with tree structures
US9792907B2 (en) 2015-11-24 2017-10-17 Intel IP Corporation Low resource key phrase detection for wake on voice
CN105897675A (zh) 2015-11-27 2016-08-24 乐视云计算有限公司 视频服务提供方法、访问鉴权方法及服务器和系统
CN105430186A (zh) 2015-11-27 2016-03-23 东莞酷派软件技术有限公司 一种拒接短信的发送方法及系统
KR102450853B1 (ko) 2015-11-30 2022-10-04 삼성전자주식회사 음성 인식 장치 및 방법
US9946862B2 (en) 2015-12-01 2018-04-17 Qualcomm Incorporated Electronic device generating notification based on context data in response to speech phrase from user
US10546015B2 (en) 2015-12-01 2020-01-28 Facebook, Inc. Determining and utilizing contextual meaning of digital standardized image characters
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10229671B2 (en) 2015-12-02 2019-03-12 GM Global Technology Operations LLC Prioritized content loading for vehicle automatic speech recognition systems
KR102535044B1 (ko) 2015-12-08 2023-05-23 삼성전자주식회사 단말장치, 서버 및 이벤트 제안방법
US9990921B2 (en) 2015-12-09 2018-06-05 Lenovo (Singapore) Pte. Ltd. User focus activated voice recognition
US10796693B2 (en) 2015-12-09 2020-10-06 Lenovo (Singapore) Pte. Ltd. Modifying input based on determined characteristics
US9830449B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
US10685170B2 (en) 2015-12-16 2020-06-16 Microsoft Technology Licensing, Llc Dynamic content layout generator
US10013416B1 (en) 2015-12-18 2018-07-03 Amazon Technologies, Inc. Language based solution agent
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
KR102423588B1 (ko) 2015-12-28 2022-07-22 삼성전자주식회사 정보 제공 방법 및 장치
CN108701125A (zh) 2015-12-29 2018-10-23 Mz知识产权控股有限责任公司 用于建议表情符号的系统和方法
US9716795B1 (en) 2015-12-30 2017-07-25 Qualcomm Incorporated Diversion of a call to a wearable device
US10382729B2 (en) 2016-01-06 2019-08-13 Vivint, Inc. Home automation system-initiated calls
US20170193083A1 (en) 2016-01-06 2017-07-06 International Business Machines Corporation Identifying message content related to an event utilizing natural language processing and performing an action pertaining to the event
JP2017123564A (ja) 2016-01-07 2017-07-13 ソニー株式会社 制御装置、表示装置、方法及びプログラム
US9792534B2 (en) 2016-01-13 2017-10-17 Adobe Systems Incorporated Semantic natural language vector space
CN105718448B (zh) 2016-01-13 2019-03-19 北京新美互通科技有限公司 一种对输入字符进行自动翻译的方法和装置
US9747289B2 (en) 2016-01-13 2017-08-29 Disney Enterprises, Inc. System and method for proximity-based personalized content recommendations
US20170206899A1 (en) 2016-01-20 2017-07-20 Fitbit, Inc. Better communication channel for requests and responses having an intelligent agent
US20170235361A1 (en) 2016-01-20 2017-08-17 Panasonic Automotive Systems Company Of America, Division Of Panasonic Corporation Of North America Interaction based on capturing user intent via eye gaze
KR102490548B1 (ko) 2016-01-25 2023-01-19 삼성전자주식회사 사용자 단말 장치 및 그 제어 방법
US9922647B2 (en) 2016-01-29 2018-03-20 International Business Machines Corporation Approach to reducing the response time of a speech interface
US10182155B2 (en) 2016-02-03 2019-01-15 At&T Intellectual Property I, L.P. Directing care calls using historical call backs, demographics and real time attributes
KR102495523B1 (ko) 2016-02-04 2023-02-03 삼성전자 주식회사 음성 명령을 처리하는 방법 및 이를 제공하는 전자 장치
US10055489B2 (en) 2016-02-08 2018-08-21 Ebay Inc. System and method for content-based media analysis
US9858927B2 (en) 2016-02-12 2018-01-02 Amazon Technologies, Inc Processing spoken commands to control distributed audio outputs
US10431218B2 (en) 2016-02-15 2019-10-01 EVA Automation, Inc. Integration and probabilistic control of electronic devices
US9858129B2 (en) 2016-02-16 2018-01-02 International Business Machines Corporation Dynamic copy content retrieval
KR20170096774A (ko) 2016-02-17 2017-08-25 이준영 전자기기의 사용자 행동기반 정황인식 작동모드
US11023680B2 (en) 2016-02-17 2021-06-01 The King Abdulaziz City For Science And Technology (Kacst) Method and system for detecting semantic errors in a text using artificial neural networks
JP6428954B2 (ja) 2016-02-18 2018-11-28 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US9965247B2 (en) 2016-02-22 2018-05-08 Sonos, Inc. Voice controlled media playback system based on user profile
US10097919B2 (en) 2016-02-22 2018-10-09 Sonos, Inc. Music service selection
US9947316B2 (en) 2016-02-22 2018-04-17 Sonos, Inc. Voice control of a media playback system
US20180063308A1 (en) 2016-02-23 2018-03-01 Bioworld Merchandising System and Method for Voice Recognition
US9779735B2 (en) 2016-02-24 2017-10-03 Google Inc. Methods and systems for detecting and processing speech signals
US9922648B2 (en) 2016-03-01 2018-03-20 Google Llc Developer voice actions system
US10404829B2 (en) 2016-03-11 2019-09-03 Wipro Limited Method and system for achieving improved quality of service (QoS) for content delivery in a SDN controller based communication network
KR102190856B1 (ko) 2016-03-14 2020-12-14 애플 인크. 크리덴셜을 제공하는 음성 입력의 식별
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
DK201670539A1 (en) 2016-03-14 2017-10-02 Apple Inc Dictation that allows editing
US10210862B1 (en) 2016-03-21 2019-02-19 Amazon Technologies, Inc. Lattice decoding and result confirmation using recurrent neural networks
US10304444B2 (en) 2016-03-23 2019-05-28 Amazon Technologies, Inc. Fine-grained natural language understanding
US11089132B2 (en) 2016-03-29 2021-08-10 Microsoft Technology Licensing, Llc Extensibility for context-aware digital personal assistant
US20170286397A1 (en) 2016-03-30 2017-10-05 International Business Machines Corporation Predictive Embeddings
US10979843B2 (en) 2016-04-08 2021-04-13 Qualcomm Incorporated Spatialized audio output based on predicted position data
EP3434024B1 (en) 2016-04-21 2023-08-02 Hewlett-Packard Development Company, L.P. Electronic device microphone listening modes
US20170308609A1 (en) 2016-04-21 2017-10-26 Microsoft Technology Licensing, Llc Multi-result ranking exploration
US20170311005A1 (en) 2016-04-26 2017-10-26 Szu-Tung Lin Method of wireless audio transmission and playback
US10431205B2 (en) 2016-04-27 2019-10-01 Conduent Business Services, Llc Dialog device with dialog support generated using a mixture of language models combined using a recurrent neural network
CN109475294B (zh) 2016-05-06 2022-08-19 斯坦福大学托管董事会 用于治疗精神障碍的移动和可穿戴视频捕捉和反馈平台
WO2017197010A1 (en) 2016-05-10 2017-11-16 Google Llc Implementations for voice assistant on devices
RU2632144C1 (ru) 2016-05-12 2017-10-02 Общество С Ограниченной Ответственностью "Яндекс" Компьютерный способ создания интерфейса рекомендации контента
US20170329466A1 (en) 2016-05-13 2017-11-16 Sap Se User interface application and digital assistant
US10217464B2 (en) 2016-05-13 2019-02-26 Koninklijke Philips N.V. Vocabulary generation system
US10534635B2 (en) 2016-05-13 2020-01-14 Sap Se Personal digital assistant
KR20170128820A (ko) 2016-05-16 2017-11-24 엘지전자 주식회사 이동단말기 및 그 제어방법
US11416212B2 (en) 2016-05-17 2022-08-16 Microsoft Technology Licensing, Llc Context-based user agent
US10417566B2 (en) 2016-05-22 2019-09-17 Microsoft Technology Licensing, Llc Self-learning technique for training a PDA component and a simulated user component
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US10832665B2 (en) 2016-05-27 2020-11-10 Centurylink Intellectual Property Llc Internet of things (IoT) human interface apparatus, system, and method
US9922655B2 (en) 2016-05-31 2018-03-20 International Business Machines Corporation System, method, and recording medium for controlling dialogue interruptions by a speech output device
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
CN109313902A (zh) 2016-06-06 2019-02-05 思睿逻辑国际半导体有限公司 语音用户接口
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
CN107480161A (zh) 2016-06-08 2017-12-15 苹果公司 用于媒体探究的智能自动化助理
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10127926B2 (en) 2016-06-10 2018-11-13 Google Llc Securely executing voice actions with speaker identification and authentication input types
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10592601B2 (en) 2016-06-10 2020-03-17 Apple Inc. Multilingual word prediction
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
AU2017100486C4 (en) 2016-06-11 2019-09-05 Apple Inc. Intelligent device arbitration and control
CN113238707A (zh) 2016-06-11 2021-08-10 苹果公司 具有数字助理的应用集成
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK201670608A1 (en) 2016-06-12 2018-01-02 Apple Inc User interfaces for retrieving contextually relevant media content
WO2017218194A1 (en) 2016-06-12 2017-12-21 Apple Inc. User interfaces for retrieving contextually relevant media content
US10257314B2 (en) 2016-06-22 2019-04-09 Microsoft Technology Licensing, Llc End-to-end user experiences with a digital assistant
US10332513B1 (en) 2016-06-27 2019-06-25 Amazon Technologies, Inc. Voice enablement and disablement of speech processing functionality
US10271093B1 (en) 2016-06-27 2019-04-23 Amazon Technologies, Inc. Systems and methods for routing content to an associated output device
US11232136B2 (en) 2016-06-27 2022-01-25 Google Llc Contextual voice search suggestions
US10200397B2 (en) 2016-06-28 2019-02-05 Microsoft Technology Licensing, Llc Robust matching for identity screening
US9990176B1 (en) 2016-06-28 2018-06-05 Amazon Technologies, Inc. Latency reduction for content playback
US10491598B2 (en) 2016-06-30 2019-11-26 Amazon Technologies, Inc. Multi-factor authentication to access services
US20180007096A1 (en) 2016-06-30 2018-01-04 Microsoft Technology Licensing, Llc Weighted data center reselection
GB201611380D0 (en) 2016-06-30 2016-08-17 Microsoft Technology Licensing Llc Artificial neural network with side input for language modelling and prediction
US9934777B1 (en) 2016-07-01 2018-04-03 Amazon Technologies, Inc. Customized speech processing language models
WO2018009397A1 (en) 2016-07-06 2018-01-11 Pcms Holdings, Inc. System and method for customizing smart home speech interfaces using personalized speech profiles
US10467114B2 (en) 2016-07-14 2019-11-05 International Business Machines Corporation Hierarchical data processor tester
US9825801B1 (en) 2016-07-22 2017-11-21 Spotify Ab Systems and methods for using seektables to stream media items
US10303772B2 (en) 2016-07-29 2019-05-28 International Business Machines Corporation Measuring mutual understanding in human-computer conversation
US10387461B2 (en) 2016-08-16 2019-08-20 Google Llc Techniques for suggesting electronic messages based on user activity and other context
US10326869B2 (en) 2016-08-19 2019-06-18 Amazon Technologies, Inc. Enabling voice control of telephone device
US20180060312A1 (en) 2016-08-23 2018-03-01 Microsoft Technology Licensing, Llc Providing ideogram translation
US10110272B2 (en) 2016-08-24 2018-10-23 Centurylink Intellectual Property Llc Wearable gesture control device and method
US10313779B2 (en) 2016-08-26 2019-06-04 Bragi GmbH Voice assistant system for wireless earpieces
US11200026B2 (en) 2016-08-26 2021-12-14 Bragi GmbH Wireless earpiece with a passive virtual assistant
US10192551B2 (en) 2016-08-30 2019-01-29 Google Llc Using textual input and user state information to generate reply content to present in response to the textual input
US10546066B2 (en) 2016-08-31 2020-01-28 Microsoft Technology Licensing, Llc End-to-end learning of dialogue agents for information access
US10217462B2 (en) 2016-08-31 2019-02-26 Microsoft Technology Licensing, Llc Automating natural language task/dialog authoring by leveraging existing content
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
CN107809372A (zh) 2016-09-08 2018-03-16 阿里巴巴集团控股有限公司 活动提醒消息的生成方法、活动提醒方法及装置
US10403273B2 (en) 2016-09-09 2019-09-03 Oath Inc. Method and system for facilitating a guided dialog between a user and a conversational agent
US10846618B2 (en) 2016-09-23 2020-11-24 Google Llc Smart replies using an on-device model
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US20180089166A1 (en) 2016-09-23 2018-03-29 Apple Inc. User interface for providing text prediction
US9786271B1 (en) 2016-09-28 2017-10-10 International Business Machines Corporation Voice pattern coding sequence and cataloging voice matching system
US20180088969A1 (en) 2016-09-28 2018-03-29 Lenovo (Singapore) Pte. Ltd. Method and device for presenting instructional content
US10304463B2 (en) 2016-10-03 2019-05-28 Google Llc Multi-user personalization at a voice interface device
EP3507798A1 (en) 2016-10-03 2019-07-10 Google LLC Processing voice commands based on device topology
JP2018063537A (ja) 2016-10-12 2018-04-19 株式会社東芝 ホームネットワーク、電子機器、処理装置および表示方法
US10372814B2 (en) 2016-10-18 2019-08-06 International Business Machines Corporation Methods and system for fast, adaptive correction of misspells
US11392598B2 (en) 2016-10-19 2022-07-19 Ebay Inc. Applying a quantitative range for qualitative terms
CN106484139B (zh) 2016-10-19 2019-01-29 北京新美互通科技有限公司 表情符号推荐方法及装置
US10678502B2 (en) 2016-10-20 2020-06-09 Qualcomm Incorporated Systems and methods for in-ear control of remote devices
US10950230B2 (en) 2016-10-28 2021-03-16 Panasonic Intellectual Property Corporation Of America Information processing device and information processing method
US10469665B1 (en) 2016-11-01 2019-11-05 Amazon Technologies, Inc. Workflow based communications routing
US20180121432A1 (en) 2016-11-02 2018-05-03 Microsoft Technology Licensing, Llc Digital assistant integration with music services
US10783883B2 (en) 2016-11-03 2020-09-22 Google Llc Focus session at a voice interface device
US10776714B2 (en) 2016-11-04 2020-09-15 Google Llc Constructing and processing computational graphs for dynamically structured machine learning models
US10777201B2 (en) 2016-11-04 2020-09-15 Microsoft Technology Licensing, Llc Voice enabled bot platform
US10127908B1 (en) 2016-11-11 2018-11-13 Amazon Technologies, Inc. Connected accessory for a voice-controlled device
US10515632B2 (en) 2016-11-15 2019-12-24 At&T Intellectual Property I, L.P. Asynchronous virtual assistant
KR102501714B1 (ko) 2016-11-16 2023-02-21 삼성전자주식회사 사용자의 음성 입력에 대한 답변 메시지를 제공하는 디바이스 및 방법
US10170110B2 (en) 2016-11-17 2019-01-01 Robert Bosch Gmbh System and method for ranking of hybrid speech recognition results with neural networks
US10332523B2 (en) 2016-11-18 2019-06-25 Google Llc Virtual assistant identification of nearby computing devices
US10230841B2 (en) 2016-11-22 2019-03-12 Apple Inc. Intelligent digital assistant for declining an incoming call
US10331791B2 (en) 2016-11-23 2019-06-25 Amazon Technologies, Inc. Service for developing dialog-driven applications
EP3545374A4 (en) 2016-11-23 2019-12-18 Alarm.com Incorporated DETECTION OF AUTHORIZED USER PRESENCE AND HANDLING OF UN AUTHENTICATED MONITORING SYSTEM COMMANDS
KR20180060328A (ko) 2016-11-28 2018-06-07 삼성전자주식회사 멀티 모달 입력을 처리하는 전자 장치, 멀티 모달 입력을 처리하는 방법 및 멀티 모달 입력을 처리하는 서버
GB201620235D0 (en) 2016-11-29 2017-01-11 Microsoft Technology Licensing Llc Neural network data entry system
US9934785B1 (en) 2016-11-30 2018-04-03 Spotify Ab Identification of taste attributes from an audio signal
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US20180158548A1 (en) 2016-12-07 2018-06-07 B9 Systems, LLC Data processing systems for scheduling work shifts, such as physician work shifts
JP6795387B2 (ja) 2016-12-14 2020-12-02 パナソニック株式会社 音声対話装置、音声対話方法、音声対話プログラム及びロボット
US10521245B2 (en) 2016-12-18 2019-12-31 Oracle International Corporation Method and system for recursive plug-in application recipe generation
US11237696B2 (en) 2016-12-19 2022-02-01 Google Llc Smart assist for repeated actions
JP2018101828A (ja) 2016-12-19 2018-06-28 船井電機株式会社 制御装置
US10216832B2 (en) 2016-12-19 2019-02-26 Interactions Llc Underspecification of intents in a natural language processing system
US10032451B1 (en) 2016-12-20 2018-07-24 Amazon Technologies, Inc. User recognition for speech processing systems
US20190182176A1 (en) 2016-12-21 2019-06-13 Facebook, Inc. User Authentication with Voiceprints on Online Social Networks
US20180174576A1 (en) 2016-12-21 2018-06-21 Google Llc Acoustic-to-word neural network speech recognizer
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US10186266B1 (en) 2016-12-28 2019-01-22 Amazon Technologies, Inc. Message playback using a shared device
US10210864B2 (en) 2016-12-29 2019-02-19 T-Mobile Usa, Inc. Voice command for communication between related devices
JP6725008B2 (ja) 2016-12-29 2020-07-15 ヤマハ株式会社 コマンドデータ送信装置、ローカルエリア装置、機器制御システム、コマンドデータ送信装置の制御方法、ローカルエリア装置の制御方法、機器制御方法、及びプログラム
US10115396B2 (en) 2017-01-03 2018-10-30 Logitech Europe, S.A. Content streaming system
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US9747083B1 (en) 2017-01-23 2017-08-29 Essential Products, Inc. Home device application programming interface
US10136364B2 (en) 2017-01-24 2018-11-20 Essential Products, Inc. Media and communications in a connected environment
US10146768B2 (en) 2017-01-25 2018-12-04 Google Llc Automatic suggested responses to images received in messages using language model
EP3358471A1 (en) 2017-02-04 2018-08-08 Tata Consultancy Services Limited Systems and methods for assessing quality of input text using recurrent neural networks
US10467510B2 (en) 2017-02-14 2019-11-05 Microsoft Technology Licensing, Llc Intelligent assistant
US11100384B2 (en) 2017-02-14 2021-08-24 Microsoft Technology Licensing, Llc Intelligent device user interactions
CN106776581B (zh) 2017-02-21 2020-01-24 浙江工商大学 基于深度学习的主观性文本情感分析方法
CN108509119B (zh) 2017-02-28 2023-06-02 三星电子株式会社 用于功能执行的电子设备的操作方法和支持其的电子设备
KR20180101063A (ko) 2017-03-03 2018-09-12 삼성전자주식회사 사용자 입력을 처리하는 전자 장치 및 그 방법
DE102017203570A1 (de) 2017-03-06 2018-09-06 Volkswagen Aktiengesellschaft Verfahren und vorrichtung zur darstellung von empfohlenen bedienhandlungen eines vorschlagssystems und interaktion mit dem vorschlagssystem
US10096319B1 (en) 2017-03-13 2018-10-09 Amazon Technologies, Inc. Voice-based determination of physical and emotional characteristics of users
US10074371B1 (en) 2017-03-14 2018-09-11 Amazon Technologies, Inc. Voice control of remote device by disabling wakeword detection
US20180268106A1 (en) 2017-03-17 2018-09-20 Orbit Healthcare, Inc. System and method for connecting patients, medical service providers, and medical insurance providers
US20180270343A1 (en) 2017-03-20 2018-09-20 Motorola Mobility Llc Enabling event-driven voice trigger phrase on an electronic device
US10547729B2 (en) 2017-03-27 2020-01-28 Samsung Electronics Co., Ltd. Electronic device and method of executing function of electronic device
US11183181B2 (en) 2017-03-27 2021-11-23 Sonos, Inc. Systems and methods of multiple voice services
US20180285056A1 (en) 2017-03-28 2018-10-04 Microsoft Technology Licensing, Llc Accessory human interface device
US10468032B2 (en) 2017-04-10 2019-11-05 Intel Corporation Method and system of speaker recognition using context aware confidence modeling
US10013979B1 (en) 2017-04-17 2018-07-03 Essential Products, Inc. Expanding a set of commands to control devices in an environment
KR102414122B1 (ko) 2017-04-19 2022-06-29 삼성전자주식회사 사용자 발화를 처리하는 전자 장치 및 그 동작 방법
KR102298947B1 (ko) 2017-04-28 2021-09-08 삼성전자주식회사 음성 데이터 처리 방법 및 이를 지원하는 전자 장치
US10282416B2 (en) 2017-05-05 2019-05-07 Apple Inc. Unified framework for text conversion and prediction
US10902855B2 (en) 2017-05-08 2021-01-26 Motorola Mobility Llc Methods and devices for negotiating performance of control operations with acoustic signals
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
US20180330714A1 (en) 2017-05-12 2018-11-15 Apple Inc. Machine learned systems
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
US10366692B1 (en) 2017-05-15 2019-07-30 Amazon Technologies, Inc. Accessory for a voice-controlled device
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
CN109287140B (zh) 2017-05-16 2020-07-28 苹果公司 计算机实现的方法、计算机可读存储介质和电子设备
US10395659B2 (en) 2017-05-16 2019-08-27 Apple Inc. Providing an auditory-based interface of a digital assistant
US11048995B2 (en) 2017-05-16 2021-06-29 Google Llc Delayed responses by computational assistant
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
CN109463004B (zh) 2017-05-16 2023-07-21 苹果公司 数字助理服务的远场延伸
US10170137B2 (en) 2017-05-18 2019-01-01 International Business Machines Corporation Voice signal component forecaster
US20180336439A1 (en) 2017-05-18 2018-11-22 Intel Corporation Novelty detection using discriminator of generative adversarial network
US10521512B2 (en) 2017-05-26 2019-12-31 Bose Corporation Dynamic text-to-speech response from a smart speaker
US20180349447A1 (en) 2017-06-02 2018-12-06 Apple Inc. Methods and systems for customizing suggestions using user-specific information
US20180349472A1 (en) 2017-06-02 2018-12-06 Apple Inc. Methods and systems for providing query suggestions
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US20180349346A1 (en) 2017-06-02 2018-12-06 Apple Inc. Lattice-based techniques for providing spelling corrections
US10410635B2 (en) 2017-06-09 2019-09-10 Soundhound, Inc. Dual mode speech recognition
US20180357073A1 (en) 2017-06-13 2018-12-13 Motorola Solutions, Inc Method, device, and system for electronic digital assistant for natural language detection of a user status change and corresponding modification of a user interface
US10990930B2 (en) 2017-06-19 2021-04-27 International Business Machines Corporation Autonomous event generator
US10453451B2 (en) 2017-07-05 2019-10-22 Comcast Cable Communications, Llc Methods and systems for using voice to control multiple devices
US20190013025A1 (en) 2017-07-10 2019-01-10 Google Inc. Providing an ambient assist mode for computing devices
US20190019077A1 (en) 2017-07-17 2019-01-17 Cisco Technology, Inc. Automatic configuration of cognitive assistant
CN107450800A (zh) 2017-07-25 2017-12-08 维沃移动通信有限公司 一种任务设置方法、移动终端及计算机可读存储介质
US10467552B2 (en) 2017-07-31 2019-11-05 Pearson Education, Inc. System and method for automatic content provisioning
CN107545262B (zh) 2017-07-31 2020-11-06 华为技术有限公司 一种在自然场景图像中检测文本的方法及装置
US10783149B2 (en) 2017-08-02 2020-09-22 Microsoft Technology Licensing, Llc Dynamic productivity content rendering based upon user interaction patterns
US11294530B2 (en) 2017-08-07 2022-04-05 Microsoft Technology Licensing, Llc Displaying a translucent version of a user interface element
US11972327B2 (en) 2017-08-25 2024-04-30 Samsung Electronics Co., Ltd. Method for automating actions for an electronic device
KR102426704B1 (ko) 2017-08-28 2022-07-29 삼성전자주식회사 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치
JP6929168B2 (ja) 2017-08-31 2021-09-01 キヤノン株式会社 音声制御デバイス、印刷装置、それらの制御方法およびプログラム
US10796687B2 (en) 2017-09-06 2020-10-06 Amazon Technologies, Inc. Voice-activated selective memory for voice-capturing devices
US10438594B2 (en) 2017-09-08 2019-10-08 Amazon Technologies, Inc. Administration of privileges by speech for voice assistant system
US11004444B2 (en) 2017-09-08 2021-05-11 Amazon Technologies, Inc. Systems and methods for enhancing user experience by communicating transient errors
US10719507B2 (en) 2017-09-21 2020-07-21 SayMosaic Inc. System and method for natural language processing
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10466962B2 (en) 2017-09-29 2019-11-05 Sonos, Inc. Media playback system with voice assistance
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US11450314B2 (en) 2017-10-03 2022-09-20 Google Llc Voice user interface shortcuts for an assistant application
HRP20220279T1 (hr) 2017-10-09 2022-05-13 Voice Life Inc. Uređaj prijemnik za olakšavanje bežičnog prijema napajanja
KR102421255B1 (ko) 2017-10-17 2022-07-18 삼성전자주식회사 음성 신호를 제어하기 위한 전자 장치 및 방법
EP3679735A1 (en) 2017-10-21 2020-07-15 Apple Inc. Personal domain for a virtual assistant system on a communal device
US10680978B2 (en) 2017-10-23 2020-06-09 Microsoft Technology Licensing, Llc Generating recommended responses based on historical message data
US20190129615A1 (en) 2017-10-30 2019-05-02 Futurewei Technologies, Inc. Apparatus and method for simplifying repeat performance of a prior performed task based on a context of a mobile device
US10152966B1 (en) 2017-10-31 2018-12-11 Comcast Cable Communications, Llc Preventing unwanted activation of a hands free device
US9967381B1 (en) 2017-11-03 2018-05-08 Republic Wireless, Inc. Virtual telephony assistant
US10685648B2 (en) 2017-11-08 2020-06-16 International Business Machines Corporation Sensor fusion model to enhance machine conversational awareness
US10515640B2 (en) 2017-11-08 2019-12-24 Intel Corporation Generating dialogue based on verification scores
CN107871500B (zh) 2017-11-16 2021-07-20 百度在线网络技术(北京)有限公司 一种播放多媒体的方法和装置
US10521946B1 (en) 2017-11-21 2019-12-31 Amazon Technologies, Inc. Processing speech to drive animations on avatars
US10013654B1 (en) 2017-11-29 2018-07-03 OJO Labs, Inc. Cooperatively operating a network of supervised learning processors to concurrently distribute supervised learning processor training and provide predictive responses to input data
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
CN107919123B (zh) 2017-12-07 2022-06-03 北京小米移动软件有限公司 多语音助手控制方法、装置及计算机可读存储介质
US11182122B2 (en) 2017-12-08 2021-11-23 Amazon Technologies, Inc. Voice control of computing devices
CN117632482A (zh) 2017-12-08 2024-03-01 谷歌有限责任公司 数字语音助理计算设备当中的信号处理协调
US10971173B2 (en) 2017-12-08 2021-04-06 Google Llc Signal processing coordination among digital voice assistant computing devices
US10818290B2 (en) 2017-12-11 2020-10-27 Sonos, Inc. Home graph
US10664540B2 (en) 2017-12-15 2020-05-26 Intuit Inc. Domain specific natural language understanding of customer intent in self-help
US11409816B2 (en) 2017-12-19 2022-08-09 Motorola Solutions, Inc. Methods and systems for determining an action to be taken in response to a user query as a function of pre-query context information
US11221669B2 (en) 2017-12-20 2022-01-11 Microsoft Technology Licensing, Llc Non-verbal engagement of a virtual assistant
US10685225B2 (en) 2017-12-29 2020-06-16 Wipro Limited Method and system for detecting text in digital engineering drawings
US10170135B1 (en) 2017-12-29 2019-01-01 Intel Corporation Audio gait detection and identification
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10524040B2 (en) 2018-01-29 2019-12-31 Apple Inc. Headphones with orientation sensors
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US11195000B2 (en) 2018-02-13 2021-12-07 FLIR Belgium BVBA Swipe gesture detection systems and methods
US11145298B2 (en) 2018-02-13 2021-10-12 Roku, Inc. Trigger word detection with multiple digital assistants
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US11044364B2 (en) 2018-03-15 2021-06-22 Ways Investments, LLC System, method, and apparatus for providing help
US10674014B2 (en) 2018-03-15 2020-06-02 Ways Investments, LLC System, method, and apparatus for providing help
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
CN108647681B (zh) 2018-05-08 2019-06-14 重庆邮电大学 一种带有文本方向校正的英文文本检测方法
US11175880B2 (en) 2018-05-10 2021-11-16 Sonos, Inc. Systems and methods for voice-assisted media content selection
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11076039B2 (en) 2018-06-03 2021-07-27 Apple Inc. Accelerated task performance
AU2019100576C4 (en) 2018-06-03 2020-01-30 Apple Inc. Accelerated task performance
US10818296B2 (en) 2018-06-21 2020-10-27 Intel Corporation Method and system of robust speaker recognition activation
EP3821323A4 (en) 2018-07-10 2022-03-02 Microsoft Technology Licensing, LLC AUTOMATIC GENERATION OF MOVEMENTS OF AN AVATAR
US20200019609A1 (en) 2018-07-13 2020-01-16 Asapp, Inc. Suggesting a response to a message by selecting a template using a neural network
GB2576016B (en) 2018-08-01 2021-06-23 Arm Ip Ltd Voice assistant devices
EP4343534A3 (en) 2018-08-23 2024-05-29 Google Llc Regulating assistant responsiveness according to characteristics of a multi-assistant environment
TWI683306B (zh) 2018-08-28 2020-01-21 仁寶電腦工業股份有限公司 多語音助理之控制方法
US20200092625A1 (en) 2018-09-13 2020-03-19 Hayes S. Raffle Smart device cover
US10958301B2 (en) 2018-09-18 2021-03-23 Roku, Inc. Audio synchronization of a dumb speaker and a smart speaker using a spread code
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US20200127988A1 (en) 2018-10-19 2020-04-23 Apple Inc. Media intercom over a secure device to device communication channel
KR102608470B1 (ko) 2018-10-23 2023-12-01 삼성전자주식회사 데이터 인식 장치 및 방법과 트레이닝 장치 및 방법
US11196863B2 (en) 2018-10-24 2021-12-07 Verint Americas Inc. Method and system for virtual assistant conversations
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
CN109447234B (zh) 2018-11-14 2022-10-21 腾讯科技(深圳)有限公司 一种模型训练方法、合成说话表情的方法和相关装置
TWI682325B (zh) 2018-11-20 2020-01-11 新唐科技股份有限公司 辨識系統及辨識方法
US20200175566A1 (en) 2018-11-30 2020-06-04 International Business Machines Corporation Adding and prioritizing items in a product list
US11183183B2 (en) 2018-12-07 2021-11-23 Sonos, Inc. Systems and methods of operating media playback systems having multiple voice assistant services
CN109657629B (zh) 2018-12-24 2021-12-07 科大讯飞股份有限公司 一种文本行提取方法及装置
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US10937425B2 (en) 2019-01-10 2021-03-02 Dell Products L.P. Systems and methods for selectively activating and interacting with a speech recognition service during application runtime without interrupting execution of the application
US12080395B2 (en) 2019-03-01 2024-09-03 Cambia Health Solutions, Inc. Systems and methods for management of clinical queues
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11258865B2 (en) 2019-03-28 2022-02-22 Servicenow, Inc. Automated integration with cloud-based services
CN110135411B (zh) 2019-04-30 2021-09-10 北京邮电大学 名片识别方法和装置
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US20200379640A1 (en) 2019-05-29 2020-12-03 Apple Inc. User-realistic path synthesis via multi-task generative adversarial networks for continuous path keyboard input
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US20200380389A1 (en) 2019-05-31 2020-12-03 Apple Inc. Sentiment and intent analysis for customizing suggestions using user-specific information
DK180649B1 (en) 2019-05-31 2021-11-11 Apple Inc Voice assistant discoverability through on-device targeting and personalization
US11887585B2 (en) 2019-05-31 2024-01-30 Apple Inc. Global re-ranker
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
CN110647274A (zh) 2019-08-15 2020-01-03 华为技术有限公司 一种界面显示方法及设备
CN110531860B (zh) 2019-09-02 2020-07-24 腾讯科技(深圳)有限公司 一种基于人工智能的动画形象驱动方法和装置
CN110825469A (zh) 2019-09-18 2020-02-21 华为技术有限公司 语音助手显示方法及装置
CN110598671B (zh) 2019-09-23 2022-09-27 腾讯科技(深圳)有限公司 基于文本的虚拟形象行为控制方法、设备和介质
US10757499B1 (en) 2019-09-25 2020-08-25 Sonos, Inc. Systems and methods for controlling playback and other features of a wireless headphone

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589374B2 (en) 2009-03-16 2013-11-19 Apple Inc. Multifunction device with integrated search and application selection
US20120316955A1 (en) 2011-04-06 2012-12-13 Yahoo! Inc. System and Method for Mobile Application Search
JP2014513835A (ja) 2011-04-22 2014-06-05 クアルコム,インコーポレイテッド 通信デバイス上にコンテンツを提示するための、コンテキストの利用
WO2013180751A1 (en) 2012-05-31 2013-12-05 Doat Media Ltd. Method for dynamically displaying a personalized home screen on a device
US20140279787A1 (en) 2013-03-15 2014-09-18 Ximplar Limited Systems And Methods for an Adaptive Application Recommender

Also Published As

Publication number Publication date
KR20210133312A (ko) 2021-11-05
WO2016191737A2 (en) 2016-12-01
AU2020230237B1 (en) 2020-10-01
US20200304955A1 (en) 2020-09-24
KR20210046856A (ko) 2021-04-28
CN108027738B (zh) 2021-08-13
DK201670371A1 (en) 2016-12-19
JP7042963B1 (ja) 2022-03-28
AU2020230234A1 (en) 2020-10-01
CN109240589A (zh) 2019-01-18
AU2018222890A1 (en) 2018-09-13
US10735905B2 (en) 2020-08-04
CN118331669A (zh) 2024-07-12
JP7033524B2 (ja) 2022-03-10
US20160360382A1 (en) 2016-12-08
US11070949B2 (en) 2021-07-20
KR102242267B1 (ko) 2021-04-19
KR101981423B1 (ko) 2019-05-22
KR20180009795A (ko) 2018-01-29
DK201670369A1 (en) 2017-01-16
EP4340408A2 (en) 2024-03-20
EP3428795A1 (en) 2019-01-16
EP4340408A3 (en) 2024-04-17
EP3283950B1 (en) 2019-08-07
EP3447624A1 (en) 2019-02-27
AU2020230234B2 (en) 2020-11-05
CN113722033A (zh) 2021-11-30
US10200824B2 (en) 2019-02-05
CN109240589B (zh) 2021-10-15
CN108027738A (zh) 2018-05-11
WO2016191737A3 (en) 2017-02-09
DK179291B1 (en) 2018-04-09
KR20210046857A (ko) 2021-04-28
CN109240588B (zh) 2021-08-27
KR102244698B1 (ko) 2021-04-27
AU2020203371A1 (en) 2020-06-11
CN112905276A (zh) 2021-06-04
AU2023248134A1 (en) 2023-11-02
EP3283950A2 (en) 2018-02-21
CN109240588A (zh) 2019-01-18
AU2016268860A1 (en) 2017-12-07
KR20190055271A (ko) 2019-05-22
KR102102570B1 (ko) 2020-04-20
AU2018222899A1 (en) 2018-09-13
KR20200113021A (ko) 2020-10-05
JP7561789B2 (ja) 2024-10-04
DK201670368A1 (en) 2017-01-16
JP2021064393A (ja) 2021-04-22
JP6994559B2 (ja) 2022-02-04
AU2023248134B2 (en) 2023-12-14
AU2020230237C1 (en) 2021-05-13
KR20240046294A (ko) 2024-04-08
EP3428795B1 (en) 2022-03-30
DK179570B1 (da) 2019-02-19
DK201670370A1 (en) 2017-01-16
CN113791852A (zh) 2021-12-14
KR102318884B1 (ko) 2021-10-29
KR102653387B1 (ko) 2024-04-02
US20210306812A1 (en) 2021-09-30
AU2022200758B2 (en) 2023-07-13
JP2018523102A (ja) 2018-08-16
JP6419993B2 (ja) 2018-11-07
AU2020230237B8 (en) 2020-10-08
JP2022091825A (ja) 2022-06-21
JP2024109574A (ja) 2024-08-14
KR102429889B1 (ko) 2022-08-04
EP4340409A3 (en) 2024-04-24
EP4340409A2 (en) 2024-03-20
JP2019057290A (ja) 2019-04-11
AU2022200758A1 (en) 2022-02-24
CN113722033B (zh) 2024-07-26
JP2022046537A (ja) 2022-03-23
US20190141494A1 (en) 2019-05-09
KR102048366B1 (ko) 2019-11-25
AU2016268860B2 (en) 2019-01-24
KR20190131617A (ko) 2019-11-26
US20210006943A1 (en) 2021-01-07
KR20200040927A (ko) 2020-04-20
DK179571B1 (da) 2019-02-19
CN118377565A (zh) 2024-07-23
JP7524497B1 (ja) 2024-07-29
EP3779685A1 (en) 2021-02-17
AU2020203371B2 (en) 2021-11-11
AU2018222899B2 (en) 2020-06-11
AU2023248135A1 (en) 2023-11-02
JP2024026183A (ja) 2024-02-28

Similar Documents

Publication Publication Date Title
JP7478304B2 (ja) 関連コンテンツを先見的に特定し、タッチ感知デバイス上に表面化させるためのシステム及び方法
US10827330B2 (en) Systems and methods for proactively identifying and surfacing relevant content on an electronic device with a touch-sensitive display

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231227

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20231227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240325

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240419

R150 Certificate of patent or registration of utility model

Ref document number: 7478304

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150