CN109240589A - 用于在触敏设备上主动识别和显示相关内容的系统和方法 - Google Patents

用于在触敏设备上主动识别和显示相关内容的系统和方法 Download PDF

Info

Publication number
CN109240589A
CN109240589A CN201810998619.4A CN201810998619A CN109240589A CN 109240589 A CN109240589 A CN 109240589A CN 201810998619 A CN201810998619 A CN 201810998619A CN 109240589 A CN109240589 A CN 109240589A
Authority
CN
China
Prior art keywords
application program
electronic equipment
unit
user
content
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.)
Granted
Application number
CN201810998619.4A
Other languages
English (en)
Other versions
CN109240589B (zh
Inventor
D·C·格罗斯
P·L·科夫曼
R·R·德林格
C·P·福斯
J·J·高西
A·D·哈吉吉
C·D·伊拉尼
B·A·琼斯
G·卡普尔
S·O·勒梅
C·C·莫里斯
M·R·西拉库萨
L·Y·杨
B·D·拉默斯
J·R·贝勒加达
J·G·A·多尔芬
G·M·帕加洛
王昕�
羽鸟润
A·R·莫哈
S·图吉
K·D·克拉克
K·C·科尔许特
J·S·安德森
H·阿拉斯
A·卡尔希安
T·德尼奥
M·J·马特尔
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 Computer 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 Computer Inc filed Critical Apple Computer Inc
Publication of CN109240589A publication Critical patent/CN109240589A/zh
Application granted granted Critical
Publication of CN109240589B publication Critical patent/CN109240589B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • 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
    • 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/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)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Calculators And Similar Devices (AREA)
  • Instructional Devices (AREA)
  • Navigation (AREA)
  • Traffic Control Systems (AREA)
  • Telephone Function (AREA)

Abstract

本文公开了用于在具有触敏显示器的电子设备上主动识别和显示相关内容的系统和方法。在一个方面,所述方法包括响应于来自所述电子设备用户的指令,在所述电子设备上执行应用程序。在执行所述应用程序时,所述方法还包括收集使用数据。所述使用数据至少包括由所述用户在所述应用程序内执行的一个或多个动作。所述方法还包括:在无人为干预的情况下,基于所述收集的使用数据来自动获取至少一个触发条件,以及将所述至少一个触发条件与所述用户在所述应用程序内执行的所述一个或多个动作中的特定动作相关联。在确定已经满足所述至少一个触发条件时,所述方法包括向所述用户提供以下指示:与所述触发条件相关联的所述特定动作可用。

Description

用于在触敏设备上主动识别和显示相关内容的系统和方法
本申请是申请日为2016年05月27日、申请号为201680044146.3、发明名称为“用于在触敏设备上主动识别和显示相关内容的系统和方法”的发明专利申请的分案申请。
技术领域
本文公开的实施方案总体涉及具有触敏显示器的电子设备,更具体地,涉及用于在与显示器和触敏表面通信的电子设备上主动识别和显示相关内容的系统和方法。
背景技术
带触敏显示器的手持式电子设备无处不在。这些广泛使用的手持式电子设备的用户现在可以在其设备上安装大量应用程序,并使用这些应用程序帮助他们更有效地执行日常活动。但为了访问这些应用程序,用户通常必须解锁其设备,定位所需的应用程序(例如,通过浏览home屏幕以定位与所需应用程序相关联的图标或通过在搜索界面内搜索所需的应用程序),然后在所需的应用程序内定位所需的功能。因此,用户经常花费大量时间来定位所需应用程序和这些应用程序内的所需功能,而无法立即执行(例如,通过单个触摸输入)所需应用程序和/或所需功能。
此外,大量安装应用程序使用户淹没在连续信息流中,使其无法立即彻底地查看这些信息。因此,用户经常希望在稍后某个时间点返回以查看他们先前注意到的某条特定信息或在稍后某个时间点使用某条特定信息。但用户经常无法定位或不记得如何定位某条特定信息。
因此,期望提供一种直观且易用的系统和方法,用于在与显示器和触敏表面通信的电子设备上主动识别和显示相关内容(例如,某条特定信息)。
发明内容
因此,需要具有更快、更有效的方法和界面的电子设备,以用于快速访问应用程序和这些应用程序内的所需功能。此外,需要电子设备在用户明确请求信息之前,通过主动识别和提供相关信息(例如,联系人、附近地点、应用程序、新闻文章、地址和设备上的其他可用信息)帮助用户管理他们每天接收到的连续信息流。此类方法和界面任选地补充或替换了访问应用程序的常规方法。此类方法和界面通过要求更少的输入以便用户定位所需信息,产生了更有效的人机界面。对于电池驱动的设备,这种方法和界面节省电力并增加了电池充电间隔时间(例如,通过要求较少数量的触摸输入以执行各种功能)。此外,这种方法和界面有助于通过要求较少数量的触摸输入延长触敏显示器的寿命(例如,本文公开的方法和界面无需用户输入即可主动提供所需的某条信息,而不必连续且无目的地轻击触敏显示器来定位该条信息)。
通过所公开的设备解决了与用于具有触敏表面的电子设备的用户界面相关联的上述缺陷和其他问题。在一些实施方案中,该设备是台式计算机。在一些实施方案中,该设备是便携式的(例如,笔记本电脑、平板电脑或手持设备)。在一些实施方案中,该设备具有触控板。在一些实施方案中,该设备具有触敏显示器(也称为“触摸屏”或“触摸屏显示器”)。在一些实施方案中,该设备具有图形用户界面(GUI)、一个或多个处理器、存储器和一个或多个模块、被存储在存储器中以用于执行多个功能的程序或指令集。在一些实施方案中,用户主要通过触笔和/或手指接触以及触敏表面上的手势来与GUI进行交互。在一些实施方案中,这些功能任选地包括图像编辑、绘图、呈现、文字处理、网页创建、盘编辑、电子表格制作、玩游戏、接打电话、视频会议、收发电子邮件、即时消息通信、健身支持、数字摄影、数字视频录制、网页浏览、数字音乐播放和/或数字视频播放。用于执行这些功能的可执行指令任选地被包括在被配置用于由一个或多个处理器执行的非暂态计算机可读存储介质或其他计算机程序产品中。
(A1)根据一些实施方案,在具有触敏显示器(触摸屏112,图1C)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备 A至D的任意一个配置)上执行方法。该方法包括:响应于来自电子设备用户的指令,在电子设备上执行某一应用程序。在执行应用程序时,该方法还包括:收集使用数据。使用数据至少包括用户在应用程序内执行的一个或多个动作(或动作类型)。该方法还包括:(i)在无人为干预的情况下,基于收集的使用数据自动获取至少一个触发条件,以及(ii)将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作相关联。在确定已经满足所述至少一个触发条件时,该方法包括:向用户提供指示,指示与触发条件相关联的特定动作可用。
(A2)在A1方法的一些实施方案中,获取所述至少一个触发条件包括:向远离电子设备定位的一个或多个服务器发送使用数据,并从一个或多个服务器接收所述至少一个触发条件。
(A3)在A1至A2中任一项的方法的一些实施方案中,提供指示包括在触敏显示器上的锁定屏幕上显示用户界面对象,该用户界面对象对应于与触发条件相关联的特定动作。
(A4)在A3方法的一些实施方案中,用户界面对象包括与触发条件相关联的特定动作的描述。
(A5)在A4方法的一些实施方案中,用户界面对象还包括与应用程序相关联的图标。
(A6)在A3至A5中任一项的方法的一些实施方案中,该方法还包括:在用户界面对象处检测第一手势。响应于检测到第一手势:(i)在触敏显示器上显示应用程序,以及(ii)在显示应用程序的同时,该方法包括:执行与触发条件相关联的特定动作。
(A7)在A6方法的一些实施方案中,第一手势是在用户界面对象上的轻扫手势。
(A8)在A3至A5中任一项的方法的一些实施方案中,该方法还包括:在用户界面对象处检测第二手势。响应于检测到第二手势并且同时继续在触敏显示器上显示锁定屏幕,执行与触发条件相关联的特定动作。
(A9)在A8方法的一些实施方案中,第二手势是在用户界面对象的预定义区域的单次轻击。
(A10)在A3至A9中任一项的方法的一些实施方案中,用户界面对象显示在锁定屏幕的预定义的中心部分。
(A11)在A1方法的一些实施方案中,向用户提供与触发条件相关联的特定动作可用的指示包括执行特定动作。
(A12)在A3方法的一些实施方案中,用户界面对象是与应用程序相关联的图标,并且用户界面对象大体上显示在触敏显示器上锁定屏幕的角落。
(A13)在A1至A12中任一项的方法的一些实施方案中,该方法还包括:从用户接收指令以解锁电子设备。响应于接收到指令,该方法包括:在触敏显示器上显示电子设备的home屏幕。该方法还包括:在home屏幕上向用户提供指示,指示与触发条件相关联的特定动作可用。
(A14)在A13方法的一些实施方案中,home屏幕包括:(i)第一部分,该部分包括一个或多个用户界面页面,用于启动电子设备上可用的第一组应用程序,以及(ii)第二部分,该部分显示在与第一部分相邻的位置,用于启动电子设备上可用的第二组应用程序。第二部分显示在第一部分中包括的所有用户界面页面上,并且在home屏幕上提供指示包括在第二部分上显示指示。
(A15)在A14方法的一些实施方案中,第二组应用程序与第一组应用程序不同且小于第一组应用程序。
(A16)在A1至A15中任一项的方法的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定电子设备已经与不同于该电子设备的第二设备耦接。
(A17)在A1至A16中任一项的方法的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址。
(A18)在A17方法的一些实施方案中,确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址包括:监视来自电子设备的加速度计的运动数据,并基于监视的运动数据确定电子设备未移动超出阈值量的时间。
(A19)在A1至A18中任一项的方法的一些实施方案中,使用数据还包括来自用户的口头指令,该指令被提供给虚拟助理应用程序,同时继续执行该应用程序。所述至少一个触发条件还基于提供给虚拟助理应用程序的口头指令。
(A20)在A19方法的一些实施方案中,口头指令包括创建提醒的请求,该提醒对应于应用程序的当前状态,所述当前状态对应于提供口头指令时的应用程序状态。
(A21)在A20方法的一些实施方案中,提供口头指令时的应用程序状态选自由以下各项组成的组:提供口头指令时在应用程序内显示的页面,提供口头指令时在应用程序内播放的内容,提供口头指令时在应用程序内显示的通知,以及提供口头指令时在应用程序内显示的页面的活动部分。
(A22)在A20方法的一些实施方案中,口头指令包括与应用程序的当前状态有关的词语“这”。
(A23)在另一方面,在一个或多个电子设备(例如,图5的便携式多功能设备100,图5的一个或多个服务器502)执行方法。该方法包括:响应于来自第一电子设备的用户的指令,来在一个或多个电子设备的第一电子设备上执行应用程序。在执行应用程序的过程中,该方法包括:在无人为干预的情况下,自动收集使用数据,使用数据至少包括用户在应用程序内执行的一个或多个动作(或动作类型)。该方法还包括:在无人为干预的情况下,基于收集的使用数据自动建立至少一个触发条件。该方法另包括:将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作相关联。在确定已经满足所述至少一个触发条件时,该方法包括:向用户提供指示,指示与触发条件相关联的特定动作可用。
(A24)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏显示器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行A1至 A22中任一项描述的方法。
(A25)在又一方面,提供了一种电子设备,该电子设备包括:触敏显示器和用于执行A1至A22中任一项所述方法的装置。
(A26)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏显示器的电子设备执行这些指令时,将使电子设备执行A1至A22中任一项描述的方法。
(A27)在另一方面,提供了具有触敏显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据A1至A22中任一项描述的方法显示的用户界面。
(A28)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图42的显示单元4201)、触敏表面单元(例如,图42的触敏表面单元4203)和处理单元(例如,图42的处理单元4205)。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图42示出了与电子设备4200集成的显示单元4201和触敏表面单元4203,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元与触敏表面单元和显示单元耦合。在一些实施方案中,触敏表面单元和显示单元集成在单个触敏显示器单元(在本文中也称为触敏显示器) 中。处理单元包括执行单元(例如,图42的执行单元4207)、收集单元 (例如,图42的收集单元4209)、获取单元(例如,图42的获取单元 4211)、关联单元(例如,图42的关联单元4213)、提供单元(例如,图 42的提供单元4215)、发送单元(例如,图42的发送单元4217)、接收单元(例如,图42的接收单元4219)、显示单元(例如,图42的显示单元4221)、检测单元(例如,图42的检测单元4223)、执行单元(例如,图42的执行单元4225)、确定单元(例如,图42的确定单元4227) 和监视单元(例如,图42的监视单元4229)。处理单元(或其一个或多个部件,诸如单元4207至4229)被配置为:响应于来自电子设备的用户的指令,在电子设备上执行应用程序(例如,通过执行单元4207);在执行应用程序时,收集使用数据(例如,使用收集单元4209),使用数据至少包括用户在应用程序内执行的一个或多个动作;在无人为干预的情况下,自动基于收集的使用数据获取至少一个触发条件(例如,通过获取单元 4211);将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作关联(例如,通过关联单元4213);并且在确定已经满足所述至少一个触发条件时,向用户提供指示(例如,通过提供单元 4215),指示与触发条件相关联的特定动作可用。
(A29)在A28的电子设备的一些实施方案中,获取所述至少一个触发条件包括:向远离电子设备定位的一个或多个服务器发送(例如,通过发送单元4217)使用数据,以及从一个或多个服务器接收(例如,通过接收单元4219)所述至少一个触发条件。
(A30)在A28至A29中任一项的电子设备的一些实施方案中,提供指示包括在触敏显示器单元上的锁定屏幕上显示(例如,通过显示单元4217 和/或显示单元4201)与触发条件相关联的特定动作对应的用户界面对象。
(A31)在A30的电子设备的一些实施方案中,用户界面对象包括与触发条件相关联的特定动作的描述。
(A32)在A31的电子设备的一些实施方案中,用户界面对象还包括与应用程序相关联的图标。
(A33)在A30至A32中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:在用户界面对象处检测(例如,通过检测单元4223和/ 或触敏表面单元4203)第一手势。响应于检测到第一手势:(i)在触敏显示器单元上显示(例如,通过显示单元4217和/或显示单元4201)应用程序,以及(ii)在显示应用程序的同时执行(例如,通过执行单元4225)与触发条件相关联的特定动作。
(A34)在A33的电子设备的一些实施方案中,第一手势是在用户界面对象上的轻扫手势。
(A35)在A30至A33中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:在用户界面对象处检测(例如,通过检测单元4223和/ 或触敏表面单元4203)第二手势。响应于检测到第二手势并且同时继续在触敏显示器单元上显示锁定屏幕,处理单元被配置为:执行(例如,通过执行单元4225)与触发条件相关联的特定动作。
(A36)在A35的电子设备的一些实施方案中,第二手势是在用户界面对象的预定义区域的单次轻击。
(A37)在A30至A36中任一项的电子设备的一些实施方案中,用户界面对象显示在锁定屏幕的预定义的中心部分。
(A38)在A28的电子设备的一些实施方案中,向用户提供与触发条件相关联的特定动作可用的指示包括执行(例如,通过执行单元4225)特定动作。
(A39)在A30的电子设备的一些实施方案中,用户界面对象是与应用程序相关联的图标,并且用户界面对象大体上显示在触敏显示器单元上锁定屏幕的角落。
(A40)在A28至A39中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:接收(例如,通过接收单元4219)来自用户的解锁电子设备的指令。响应于接收到指令,处理单元被配置为:在触敏显示器单元上显示(例如,通过显示单元4217和/或显示单元4201)电子设备的 home屏幕。处理单元被进一步配置为:在home屏幕上向用户提供(例如,通过提供单元4215)指示,指示与触发条件相关联的特定动作可用。
(A41)在A40的电子设备的一些实施方案中,home屏幕包括:(i)第一部分,该部分包括一个或多个用户界面页面,用于启动电子设备上可用的第一组应用程序,以及(ii)第二部分,该部分显示在与第一部分相邻的位置,用于启动电子设备上可用的第二组应用程序。第二部分显示在第一部分中包括的所有用户界面页面上,并且在home屏幕上提供指示包括在第二部分上显示(例如,通过显示单元4217和/或显示单元4201)指示。
(A42)在A41的电子设备的一些实施方案中,第二组应用程序与第一组应用程序不同且小于第一组应用程序。
(A43)在A28至A42中任一项的电子设备的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定(例如,通过确定单元4227)电子设备已经与不同于该电子设备的第二设备耦接。
(A44)在A28至A43中任一项的电子设备的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定(例如,通过确定单元4227)电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址。
(A45)在A44的电子设备的一些实施方案中,确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址包括:监视(例如,通过监视单元4229)来自电子设备的加速度计的运动数据,并基于监视的运动数据确定(例如,通过确定单元4227)电子设备未移动超出阈值量的时间。
(A46)在A28至A45中任一项的电子设备的一些实施方案中,使用数据还包括来自用户的口头指令,该指令被提供给虚拟助理应用程序,同时继续执行该应用程序。所述至少一个触发条件还基于提供给虚拟助理应用程序的口头指令。
(A47)在A46的电子设备的一些实施方案中,口头指令包括创建提醒的请求,该提醒对应于应用程序的当前状态,所述当前状态对应于提供口头指令时的应用程序状态。
(A48)在A47的电子设备的一些实施方案中,提供口头指令时的应用程序状态选自由以下各项组成的组:提供口头指令时在应用程序内显示的页面,提供口头指令时在应用程序内播放的内容,提供口头指令时在应用程序内显示的通知,以及提供口头指令时在应用程序内显示的页面的活动部分。
(A49)在A46的电子设备的一些实施方案中,口头指令包括与应用程序的当前状态有关的术语“这”。
(B1)根据一些实施方案,在具有触敏显示器(触摸屏112,图1C)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备 A至D的任意一个配置)上执行方法。该方法包括:获取至少一个触发条件,所述至少一个触发条件基于与电子设备的用户相关联的使用数据,该使用数据包括在电子设备上执行应用程序时由用户在应用程序内执行的一个或多个动作(或动作类型)。该方法还包括:将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作相关联。在确定已经满足所述至少一个触发条件时,该方法包括:向用户提供指示,指示与触发条件相关联的特定动作可用。
(B2)在B1方法的一些实施方案中,该方法还包括在A2至A22中中任一项描述的方法。
(B3)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏显示器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行B1至 B2中任一项描述的方法。
(B4)在又一方面,提供一种电子设备,并且该电子设备包括:触敏显示器和用于执行B1至B2中任一项所述方法的装置。
(B5)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏显示器的电子设备执行这些指令时,将使电子设备执行B1至B2中任一项描述的方法。
(B6)在另一方面,提供了具有触敏显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据B1至B2中任一项描述的方法显示的用户界面。
(B7)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图42的显示单元4201)、触敏表面单元(例如,图42的触敏表面单元4203)和处理单元(例如,图42的处理单元4205)。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图42示出了与电子设备4200集成的显示单元4201和触敏表面单元4203,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括执行单元(例如,图42的执行单元4207)、收集单元(例如,图 42的收集单元4209)、获取单元(例如,图42的获取单元4211)、关联单元(例如,图42的关联单元4213)、提供单元(例如,图42的提供单元4215)、发送单元(例如,图42的发送单元4217)、接收单元(例如,图42的接收单元4219)、显示单元(例如,图42的显示单元 4221)、检测单元(例如,图42的检测单元4223)、执行单元(例如,图 42的执行单元4225)、确定单元(例如,图42的确定单元4227)和监视单元(例如,图42的监视单元4229)。处理单元(或其一个或多个部件,诸如单元4207至4229)被配置为:获取(例如,通过获取单元4211)至少一个触发条件,所述至少一个触发条件基于与电子设备的用户相关联的使用数据,该使用数据包括在电子设备上执行应用程序时由用户在应用程序内执行的一个或多个动作;将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作关联(例如,通过关联单元4213);并且在确定已经满足所述至少一个触发条件时,向用户提供指示(例如,通过提供单元4215),指示与触发条件相关联的特定动作可用。
(B8)在B7的电子设备的一些实施方案中,获取所述至少一个触发条件包括:向远离电子设备定位的一个或多个服务器发送(例如,通过发送单元4217)使用数据,以及从一个或多个服务器接收(例如,通过接收单元 4219)所述至少一个触发条件。
(B9)在B7至B8中任一项的电子设备的一些实施方案中,提供指示包括在触敏显示器上的锁定屏幕上显示(例如,通过显示单元4217和/或显示单元4201)与触发条件相关联的特定动作对应的用户界面对象。
(B10)在B9的电子设备的一些实施方案中,用户界面对象包括与触发条件相关联的特定动作的描述。
(B11)在B10的电子设备的一些实施方案中,用户界面对象还包括与应用程序相关联的图标。
(B12)在B9至B11中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:在用户界面对象处检测(例如,通过检测单元4223和/或触敏表面单元4203)第一手势。响应于检测到第一手势:(i)在触敏显示器上显示(例如,通过显示单元4217和/或显示单元4201)应用程序,以及 (ii)在显示应用程序的同时执行(例如,通过执行单元4225)与触发条件相关联的特定动作。
(B13)在B12的电子设备的一些实施方案中,第一手势是在用户界面对象上的轻扫手势。
(B14)在B9至B12中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:在用户界面对象处检测(例如,通过检测单元4223和/或触敏表面单元4203)第二手势。响应于检测到第二手势并且同时继续在触敏显示器上显示锁定屏幕,处理单元被配置为:执行(例如,通过执行单元4225)与触发条件相关联的特定动作。
(B15)在B14的电子设备的一些实施方案中,第二手势是在用户界面对象的预定义区域的单次轻击。
(B16)在B9至B15中任一项的电子设备的一些实施方案中,用户界面对象显示在锁定屏幕的预定义的中心部分。
(B17)在B7的电子设备的一些实施方案中,向用户提供与触发条件相关联的特定动作可用的指示包括执行(例如,通过执行单元4225)特定动作。
(B18)在B9的电子设备的一些实施方案中,用户界面对象是与应用程序相关联的图标,并且用户界面对象大体上显示在触敏显示器上锁定屏幕的角落。
(B19)在B7至B18中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:接收(例如,通过接收单元4219)来自用户的解锁电子设备的指令。响应于接收到指令,处理单元被配置为:在触敏显示器上显示(例如,通过显示单元4217和/或显示单元4201)电子设备的home屏幕。处理单元被进一步配置为:在home屏幕上向用户提供(例如,通过提供单元4215)指示,指示与触发条件相关联的特定动作可用。
(B20)在B19的电子设备的一些实施方案中,home屏幕包括:(i)第一部分,该部分包括一个或多个用户界面页面,用于启动电子设备上可用的第一组应用程序,以及(ii)第二部分,该部分显示在与第一部分相邻的位置,用于启动电子设备上可用的第二组应用程序。第二部分显示在第一部分中包括的所有用户界面页面上,并且在home屏幕上提供指示包括在第二部分上显示(例如,通过显示单元4217和/或显示单元4201)指示。
(B21)在B20的电子设备的一些实施方案中,第二组应用程序与第一组应用程序不同且小于第一组应用程序。
(B22)在B7至B21中任一项的电子设备的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定(例如,通过确定单元4227)电子设备已经与不同于该电子设备的第二设备耦接。
(B23)在B7至B22中任一项的电子设备的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定(例如,通过确定单元4227)电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址。
(B24)在B23的电子设备的一些实施方案中,确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址包括:监视(例如,通过监视单元4229)来自电子设备的加速度计的运动数据,并基于监视的运动数据确定(例如,通过确定单元4227)电子设备未移动超出阈值量的时间。
(B25)在B7至B24中任一项的电子设备的一些实施方案中,使用数据还包括来自用户的口头指令,该指令被提供给虚拟助理应用程序,同时继续执行该应用程序。所述至少一个触发条件还基于提供给虚拟助理应用程序的口头指令。
(B26)在B25的电子设备的一些实施方案中,口头指令包括创建提醒的请求,该提醒对应于应用程序的当前状态,所述当前状态对应于提供口头指令时的应用程序状态。
(B27)在B26的电子设备的一些实施方案中,提供口头指令时的应用程序状态选自由以下各项组成的组:提供口头指令时在应用程序内显示的页面,提供口头指令时在应用程序内播放的内容,提供口头指令时在应用程序内显示的通知,以及提供口头指令时在应用程序内显示的页面的活动部分。
(B28)在B26的电子设备的一些实施方案中,口头指令包括与应用程序的当前状态有关的术语“这”。
(C1)根据一些实施方案,在具有触敏显示器(触摸屏112,图1C)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备 A至D的任意一个配置)上执行方法。该方法包括:在触敏显示器上检测来自电子设备用户的搜索激活手势。响应于检测到搜索激活手势,该方法包括:在触敏显示器上显示搜索界面,该搜索界面包括:(i)搜索入口部分以及(ii)在搜索入口部分处接收到任何用户输入前显示的预测部分。预测部分由以下一项或多项填充:(a)用于联系多个先前联系人员中某个人员的至少一个示能表示,至少部分地基于当前时间从所述多个之前联系的人员中自动选择该人员,以及(b)用于在电子设备上可用的多个应用程序的某个应用程序中执行预测的动作的至少一个示能表示,至少部分地基于与电子设备用户相关联的应用程序使用历史来自动选择预测的动作。
(C2)在C1方法的一些实施方案中,至少部分地基于对应于电子设备的位置数据来进一步选择人员。
(C3)在C1至C2中任一项的方法的一些实施方案中,从电子设备的存储器中检索该人员的应用程序使用历史和联系人信息。
(C4)在C1至C2中任一项的方法的一些实施方案中,从远离电子设备定位的存储器中检索该人员的应用程序使用历史和联系人信息。
(C5)在C1至C4中任一项的方法的一些实施方案中,预测部分进一步由执行预测应用程序的至少一个示能表示填充,该预测应用程序至少部分地基于应用程序使用历史自动选择。
(C6)在C1至C5中任一项的方法的一些实施方案中,预测部分进一步由预测的地点(或附近地点)类别的至少一个示能表示填充,并且预测的地点类别至少部分地基于与电子设备相对应的当前时间和位置数据的一项或多项自动选择。
(C7)在C1至C6中任一项的方法的一些实施方案中,该方法还包括:检测用户输入以滚动预测部分。响应于检测到用户输入以滚动预测部分,该方法包括:根据用户输入滚动预测部分。响应于滚动,该方法包括:在预测部分中显现预测的新闻文章的至少一个示能表示(例如,预测的新闻文章是预测为用户感兴趣的文章)。
(C8)在C7方法的一些实施方案中,至少部分地基于对应于电子设备的位置数据自动选择预测的新闻文章。
(C9)在C1至C8中任一项的方法的一些实施方案中,该方法还包括:检测在应用程序内执行预测的动作的所述至少一个示能表示的选择。响应于检测到选择,该方法包括:在触敏显示器上显示应用程序并在应用程序内执行预测的动作。
(C10)在C3至C4中任一项的方法的一些实施方案中,该方法还包括:检测联系该人员的所述至少一个示能表示的选择。响应于检测到选择,该方法包括:使用该人员的联系人信息与其联系。
(C11)在C5方法的一些实施方案中,该方法还包括:检测执行预测应用程序的所述至少一个示能表示的选择。响应于检测到选择,该方法包括:在触敏显示器上显示预测的应用程序。
(C12)在C6方法的一些实施方案中,该方法还包括:检测预测地点类别的所述至少一个示能表示的选择。响应于检测到选择,该方法还包括:(i) 接收对应于至少一个附近地点的数据,以及(ii)在触摸敏感显示器上显示对应于所述至少一个附近地点的接收数据。
(C13)在C7方法的一些实施方案中,该方法还包括:检测预测新闻文章的所述至少一个示能表示的选择。响应于检测到选择,该方法包括:在触敏显示器上显示预测的新闻文章。
(C14)在C1至C13中任一项的方法的一些实施方案中,搜索激活手势可从至少两个不同的用户界面获取,并且所述至少两个不同用户界面的第一用户界面对应于在触敏显示器上显示home屏幕页面序列的相应home屏幕页面。
(C15)在C14方法的一些实施方案中,当相应的home屏幕页面是 home屏幕页面序列中的第一home屏幕页面时,搜索激活手势包括以下中的一种:(i)相对于电子设备用户大体上沿向下方向移动的手势,或(ii)相对用户大体上沿从左到右方向移动并大体上垂直于向下方向的连续手势。
(C16)在C15方法的一些实施方案中,当相应的home屏幕页面是 home屏幕页面序列中的第二home屏幕页面时,搜索激活手势包括相对电子设备用户大体上沿向下方向移动的连续手势。
(C17)在C14方法的一些实施方案中,所述至少两个不同用户界面的第二用户界面对应于在触敏显示器上显示应用程序切换界面。
(C18)在C17方法的一些实施方案中,搜索激活手势包括在触敏显示器上接触应用程序切换界面的预定义搜索激活部分。
(C19)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏显示器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行C1至 C18中任一项描述的方法。
(C20)在又一方面,提供一种电子设备,并且该电子设备包括:触敏显示器和用于执行C1至C18中任一项所述方法的装置。
(C21)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏显示器的电子设备执行这些指令时,将使电子设备执行C1至C18中任一项描述的方法。
(C22)在另一方面,提供了具有触敏显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据C1至C18中任一项描述的方法显示的用户界面。
(C23)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图43的显示单元4301)、触敏表面单元(例如,图43的触敏表面单元4303)和处理单元(例如,图43的处理单元4305)。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图43示出了与电子设备4300集成的显示单元4301和触敏表面单元4303,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括显示单元(例如,图43的显示单元4309)、检测单元(例如,图 43的检测单元4307)、检索单元(例如,图43的检索单元4311)、填充单元(例如,图43的填充单元4313)、滚动单元(例如,图43的滚动单元4315)、显现单元(例如,图43的显现单元4317)、选择单元(例如,图43的选择单元4319)、接触单元(例如,图43的接触单元 4321)、接收单元(例如,图43的接收单元4323)和执行单元(例如,图 43的执行单元4325)。处理单元(或其一个或多个部件,诸如单元4307 至4225)被配置为:检测(例如,通过检测单元4307和/或触敏表面单元4303)触敏显示器上来自电子设备用户的搜索激活手势;响应于检测到搜索激活手势,在触敏显示器上显示(例如,通过显示单元4309和/或显示单元4301)搜索界面,该搜索界面包括:(i)搜索入口部分;以及(ii)在搜索入口部分处接收到任何用户输入前显示的预测部分,预测部分由以下一项或多项填充:(a)用于联系多个先前联系人员中某个人员的至少一个示能表示,至少部分地基于当前时间从所述多个之前联系的人员中自动选择(例如,通过选择单元4319)该人员,以及(b)用于在电子设备上可用的多个应用程序的某个应用程序中执行预测的动作的至少一个示能表示,至少部分地基于与电子设备用户相关联的应用程序使用历史来自动选择(例如,通过选择单元4319)预测的动作。
(C24)在C23的电子设备的一些实施方案中,至少部分地基于对应于电子设备的位置数据进一步选择(例如,通过选择单元4319)该人员。
(C25)在C23至C24中任一项的电子设备的一些实施方案中,从电子设备的存储器中检索(例如,通过检索单元4311)该人员的应用程序使用历史和联系人信息。
(C26)在C23至C24中任一项的电子设备的一些实施方案中,从远离电子设备定位的服务器中检索(例如,通过检索单元4311)该人员的应用程序使用历史和联系人信息。
(C27)在C23至C26中任一项的电子设备的一些实施方案中,预测部分进一步由执行预测应用程序的至少一个示能表示填充(例如,通过填充单元4313),该预测应用程序至少部分地基于应用程序使用历史自动选择 (例如,通过选择单元4319)。
(C28)在C23至C27中任一项的电子设备的一些实施方案中,预测部分进一步由预测的地点类别的至少一个示能表示填充(例如,通过填充单元4313),并且预测的地点类别至少部分地基于与电子设备相对应的当前时间和位置数据的一项或多项自动选择(例如,通过选择单元4319)。
(C29)在C23至C28中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元 4303)用户输入以滚动预测部分。响应于检测用户输入以滚动预测部分,处理单元被配置为:根据用户输入滚动(例如,通过滚动单元4319)预测部分。响应于滚动,该处理单元被配置为:在预测部分中显现(例如,通过显现单元4317)预测的新闻文章的至少一个示能表示(例如,预测的新闻文章是预测为用户感兴趣的文章)。
(C30)在C7的电子设备的一些实施方案中,至少部分地基于对应于电子设备的位置数据自动选择(例如,通过选择单元4319)预测的新闻文章。
(C31)在C23至C30中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元 4303)在应用程序内执行预测的动作的所述至少一个示能表示的选择。响应于检测到选择,处理单元被配置为:在触敏显示器(例如,显示单元 4301)上显示(例如,通过显示单元4309)应用程序并在应用程序内执行(例如,通过执行单元4325)预测的动作。
(C32)在C25至C26中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元 4303)联系该人员的所述至少一个示能表示的选择。响应于检测到选择,处理单元被配置为:使用该人员的联系人信息与其联系(例如,通过接触单元4321)。
(C33)在C27的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元4303)执行预测应用程序的所述至少一个示能表示的选择。响应于检测到选择,处理单元被配置为:在触敏显示器(例如,显示单元4301)上显示(例如,通过显示单元4307)预测的应用程序。
(C34)在C28的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元4303)预测的地点类别的所述至少一个示能表示的选择。响应于检测到选择,处理单元被配置为:(i)接收(例如,通过接收单元4323)与至少一个附近地点相对应的数据,以及(ii)在触敏显示器(例如,显示单元4301)上显示(例如,通过显示单元4307)与所述至少一个附近地点相对应的接收的数据。
(C35)在C29的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元4303)预测新闻文章的所述至少一个示能表示的选择。响应于检测到选择,处理单元被配置为:在触敏显示器(例如,显示单元4301)上显示(例如,通过显示单元4307)预测的新闻文章。
(C36)在C23至C35中任一项的电子设备的一些实施方案中,搜索激活手势可从至少两个不同的用户界面获取,并且所述至少两个不同用户界面的第一用户界面对应于在触敏显示器上显示home屏幕页面序列的相应 home屏幕页面。
(C37)在C36的电子设备的一些实施方案中,当相应的home屏幕页面是home屏幕页面序列中的第一home屏幕页面时,搜索激活手势包括以下中的一种:(i)相对于电子设备用户大体上沿向下方向移动的手势,或(ii)相对用户大体上沿从左到右方向移动并大体上垂直于向下方向的连续手势。
(C38)在C37的电子设备的一些实施方案中,当相应的home屏幕页面是home屏幕页面序列中的第二home屏幕页面时,搜索激活手势包括相对电子设备用户大体上沿向下方向移动的连续手势。
(C39)在C36的电子设备的一些实施方案中,所述至少两个不同用户界面的第二用户界面对应于在触敏显示器上显示应用程序切换界面。
(C40)在C39的电子设备的一些实施方案中,搜索激活手势包括在触敏显示器上接触应用程序切换界面的预定义搜索激活部分。
因此,具有显示器、触敏表面和用于检测与触敏表面的接触强度的任选一个或多个传感器的电子设备被提供有更快、更有效的方法和界面以用于主动访问应用程序并主动执行应用程序内的功能,从而提高此类设备的效能、效率和用户满意度。这样的方法和界面可以补充或替代用于访问与此相关的应用程序和功能的常规方法。
(D1)根据一些实施方案,在具有触敏表面(例如,触敏表面195,图 1D)和显示器(例如,显示器194,图1D)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置) 上执行方法。该方法包括:在显示器上显示与正在电子设备上执行的应用程序相关联的内容。该方法还包括:通过触敏表面检测轻扫手势,该手势当被检测到时,将使电子设备进入不同于该应用程序的搜索模式。该方法还包括:响应于检测到轻扫手势,进入搜索模式,搜索模式包括显示在显示器上的搜索界面。结合进入搜索模式,该方法包括:至少部分地基于与内容相关联的信息来确定至少一个建议的搜索查询。在搜索界面处接收到任何用户输入之前,该方法包括:使用所述至少一个建议的搜索查询填充显示的搜索界面。这样,该设备基于用户查看的应用内容向其提供相关建议,用户只需选择其中一条建议而无需键入任何内容,从而使用户不必记忆信息并在搜索界面中重新输入信息。
(D2)在D1方法的一些实施方案中,检测轻扫手势包括在当前显示的内容的至少一部分上检测轻扫手势。
(D3)在D1至D2中任一项的方法的一些实施方案中,该方法还包括:检测轻扫手势之前,检测与查看电子设备home屏幕的请求相对应的输入;并且响应于检测到该输入,停止显示与应用程序相关联的内容并显示电子设备的home屏幕的相应页面。在一些实施方案中,所述相应页面是home 屏幕页面序列中的初始页面,并且在显示器上显示home屏幕的初始页面时检测轻扫手势。
(D4)在D1至D3中任一项的方法的一些实施方案中,搜索界面被显示为半透明地覆盖应用程序。
(D5)在D1至D4中任一项的方法的一些实施方案中,该方法还包括:根据确定该内容包括文本内容,至少部分地基于文本内容确定所述至少一个建议的搜索查询。
(D6)在D5方法的一些实施方案中,至少部分地基于文本内容确定所述至少一个建议的搜索查询包括:分析文本内容以检测用于确定所述至少一个建议搜索查询的一个或多个预定义关键字。
(D7)在D1至D6中任一项的方法的一些实施方案中,确定所述至少一个建议的搜索查询包括确定多个建议的搜索查询,并且填充搜索界面包括用所述多个建议的搜索查询填充搜索界面。
(D8)在D1至D7中任一项的方法的一些实施方案中,该方法还包括:通过触敏表面检测当前显示的新内容上的新的轻扫手势;并且响应于检测到新的轻扫手势,进入搜索模式,进入搜索模式包括在显示器上显示搜索界面;并且结合进入搜索模式并根据确定新内容不包括文本内容,使用建议的搜索查询填充搜索界面,建议的搜索查询基于来自电子设备用户的一组选择的历史搜索查询。
(D9)在D8方法的一些实施方案中,搜索界面基于不同于该应用程序的第二应用程序提供的位置信息显示兴趣点。
(D10)在D8至D9中任一项的方法的一些实施方案中,搜索界面还包括一个或多个建议的应用程序。
(D11)在D8至D10中任一项的方法的一些实施方案中,至少部分地基于最近搜索查询的频率选择该组历史搜索查询。
(D12)在D1至D11中任一项的方法的一些实施方案中,该方法还包括:结合进入搜索模式,通过使用电子设备上可用的一个或多个辅助功能获取与该内容相关联的信息。
(D13)在D12方法的一些实施方案中,使用一个或多个辅助功能包括使用一个或多个辅助功能来生成与内容相关联的信息,方法是:(i)将自然语言处理算法应用于当前在应用程序中显示的文本内容,以及(ii)使用从自然语言处理算法获取的数据确定描述该内容的一个或多个关键字,并基于所述一个或多个关键字确定所述至少一个建议的搜索查询。
(D14)在D13方法的一些实施方案中,确定描述该内容的一个或多个关键字还包括:(i)检索与当前在应用程序中显示的非文本内容相对应的元数据,以及(ii)除从自然语言处理算法获取的数据外,还使用检索的元数据确定一个或多个关键字。
(D15)在D1至D14中任一项的方法的一些实施方案中,搜索界面还包括一个或多个趋势查询。
(D16)在D15方法的一些实施方案中,搜索界面还包括预测为电子设备用户感兴趣的一个或多个应用程序。
(D17)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面和显示器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行 D1至D16中任一项描述的方法。
(D18)在又一方面,提供一种电子设备,并且该电子设备包括:触敏表面和显示器,以及用于执行D1至D16中任一项所述方法的装置。
(D19)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行D1至D16中任一项描述的方法。
(D20)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据D1至D16中任一项描述的方法显示的用户界面。在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行D1至D16中任一项描述的方法的装置。
(D21)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图44的显示单元4401)、触敏表面单元(例如,图44的触敏表面单元4403)和处理单元(例如,图44的处理单元4405)。处理单元与触敏表面单元和显示单元耦合。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图44示出了与电子设备4400集成的显示单元4401和触敏表面单元4403,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,触敏表面单元和显示单元集成在单个触敏显示器单元(在本文中也称为触敏显示器)中。处理单元包括检测单元(例如,图44的检测单元4407)、显示单元(例如,图44的显示单元4409)、检索单元(例如,图44的检索单元 4411)、搜索模式进入单元(例如,图44的搜索模式进入单元4412)、填充单元(例如,图44的填充单元4413)、获取单元(例如,图44的获取单元4415)、确定单元(例如,图44的确定单元4417)和选择单元(例如,图44的选择单元4419)。处理单元(或其一个或多个部件,诸如单元 1007至1029)被配置为:在显示单元(例如,显示单元4407)上显示(例如,通过显示单元4407)与正在电子设备上执行的应用程序相关联的内容;通过触敏表面单元(例如,触敏表面单元4403)检测(例如,通过检测单元4407)轻扫手势,该手势当被检测到时,将使电子设备进入不同于该应用程序的搜索模式;响应于检测到轻扫手势,进入搜索模式(例如,通过搜索模式进入单元4412),搜索模式包括显示单元(例如,显示单元 4407)上显示的搜索界面;结合进入搜索模式,至少部分地基于与该内容相关联的信息确定(例如,通过确定单元4417)至少一个建议的搜索查询;并且在搜索界面处接收到任何用户输入之前,使用所述至少一个建议的搜索查询填充(例如,通过填充单元4413)显示的搜索界面。
(D22)在D21的电子设备的一些实施方案中,检测轻扫手势包括在当前显示的内容的至少一部分上检测(例如,通过检测单元4407)轻扫手势。
(D23)在D21至D22中任一项的电子设备的一些实施方案中,其中处理单元被进一步配置为:在检测轻扫手势之前,检测(例如,通过检测单元4407)与查看电子设备home屏幕的请求相对应的输入;并且响应于检测(例如,通过检测单元4407)到该输入,停止显示与应用程序相关联的内容并显示电子设备的home屏幕的相应页面(例如,通过显示单元 4409),其中:所述相应页面是home屏幕页面序列中的初始页面;并且在显示单元上显示home屏幕的初始页面时检测(例如,通过检测单元 4407)轻扫手势。
(D24)在D21至D23中任一项的电子设备的一些实施方案中,搜索界面被显示(例如,通过显示单元4409和/或显示单元4401)为半透明地覆盖应用程序。
(D25)在D21至D24中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:根据确定该内容包括文本内容,至少部分地基于文本内容确定(例如,通过确定单元4417)所述至少一个建议的搜索查询。
(D26)在D25的电子设备的一些实施方案中,至少部分地基于文本内容确定所述至少一个建议的搜索查询包括:分析文本内容以检测(例如,通过检测单元4407)用于确定(例如,通过确定单元4417)所述至少一个建议搜索查询的一个或多个预定义的关键字。
(D27)在D21至D26中任一项的电子设备的一些实施方案中,确定所述至少一个建议的搜索查询包括确定(例如,通过确定单元4417)多个建议的搜索查询,并且填充搜索界面包括使用所述多个建议的搜索查询填充 (例如,通过填充单元4413)搜索界面。
(D28)在D21至D27中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:通过触敏表面单元(例如,触敏表面单元4403)检测 (例如,通过检测单元4407)当前显示的新内容上的新的轻扫手势;并且响应于检测到新的轻扫手势,进入搜索模式(例如,通过搜索模式进入单元4412),并且进入搜索模式包括在显示单元上显示搜索界面(例如,通过显示单元4409);并且结合进入搜索模式并根据确定新内容不包括文本内容,使用建议的搜索查询填充(例如,通过填充单元4413)搜索界面,其中建议的搜索查询基于来自电子设备用户的一组选择的历史搜索查询。
(D29)在D28的电子设备的一些实施方案中,搜索界面与兴趣点一起显示(例如,显示单元4409),兴趣点基于与不同于该应用程序的第二应用程序提供的位置信息。
(D30)在D28至D29中任一项的电子设备的一些实施方案中,搜索界面还包括一个或多个建议的应用程序。
(D31)在D28至D30中任一项的电子设备的一些实施方案中,至少部分地基于最近搜索查询的频率选择(例如,通过选择单元4419)该组历史搜索查询。
(D32)在D21至D31中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:结合进入搜索模式,通过使用电子设备上可用的一个或多个辅助功能获取(例如,通过获取单元4415)与该内容相关联的信息。
(D33)在D32的电子设备的一些实施方案中,使用一个或多个辅助功能包括使用一个或多个辅助功能来生成与内容相关联的信息,方法是:(i)将自然语言处理算法应用于当前在应用程序中显示的文本内容,以及(ii)使用从自然语言处理算法获取(例如,通过获取单元4415)的数据确定(例如,通过确定单元4417)描述该内容的一个或多个关键字,其中所述至少一个建议的搜索查询基于所述一个或多个关键字确定(例如,通过确定单元4417)。
(D34)在D33的电子设备的一些实施方案中,确定描述该内容的一个或多个关键字还包括:(i)检索(例如,通过检索单元4411)与当前在应用程序中显示的非文本内容相对应的元数据,以及(ii)除从自然语言处理算法获取的数据外,还使用检索的元数据确定(例如,通过确定单元4417)一个或多个关键字。
(D35)在D21至D34中任一项的电子设备的一些实施方案中,搜索界面还包括一个或多个趋势查询。
(D36)在D35的电子设备的一些实施方案中,搜索界面还包括预测为电子设备用户感兴趣的一个或多个应用程序。
(E1)根据一些实施方案,在具有触敏表面(例如,触敏表面195,图 1D)和显示器(例如,显示器194,图1D)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置) 上执行方法。该方法包括:通过触敏表面检测用户界面上的轻扫手势,并且该轻扫手势当被检测到时,使电子设备进入搜索模式。该方法还包括:响应于检测到轻扫手势,进入搜索模式,并且进入搜索模式包括:在搜索界面内接收到任意用户输入前,使用第一内容项填充与用户界面不同的搜索界面。在一些实施方案中,根据确定用户界面包括与某个应用程序相关联的内容,其中该用户界面不同于包括用于调用应用程序的可选图标的 home屏幕,使用第一内容项填充搜索界面包括使用所述至少一个建议的搜索查询填充搜索界面,其中该搜索查询至少部分地基于与该应用程序相关联的内容;并且根据确定用户界面与home屏幕的页面相关联,使用第一内容项填充搜索界面包括使用示能表示填充搜索界面,该示能表示包括对电子设备当前位置的阈值距离内的至少一个兴趣点的可选描述。
(E2)在E1方法的一些实施方案中,用示能表示填充搜索界面包括在触敏表面上显示搜索界面的搜索入口部分;并且该方法还包括:检测搜索入口部分的输入;并且响应于检测到搜索入口部分的输入,停止显示示能表示并在搜索界面内显示所述至少一个建议的搜索查询。
(E3)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行 E1至E2中任一项描述的方法。
(E4)在又一方面,提供一种电子设备,并且该电子设备包括:触敏表面、显示器以及用于执行E1至E2中任一项所述方法的装置。
(E5)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行E1至E2中任一项描述的方法。
(E6)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据E1至E2中任一项描述的方法显示的用户界面。在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行E1至E2中任一项描述的方法的装置。
(E7)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图45的显示单元4501)、触敏表面单元(例如,图45的触敏表面单元4503)和处理单元(例如,图45的处理单元4505)。处理单元与触敏表面单元和显示单元耦合。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图45示出了与电子设备4500集成的显示单元4501和触敏表面单元4503,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,触敏表面单元和显示单元集成在单个触敏显示器单元(在本文中也称为触敏显示器)中。处理单元包括检测单元(例如,图45的检测单元4507)、显示单元(例如,图45的显示单元4509)、填充单元(例如,图45的填充单元4511) 和搜索模式进入单元(例如,图45的搜索模式进入单元4513)。处理单元 (或其一个或多个部件,诸如单元4507至4513)被配置为:通过触敏表面单元(例如,触敏表面单元4503)检测(例如,通过检测单元4507)用户界面上的轻扫手势,其中当检测到轻扫手势时,将使电子设备进入搜索模式;并且响应于检测到轻扫手势,进入搜索模式(例如,通过搜索模式进入单元4513),其中进入搜索模式包括:在搜索界面内接收到任意用户输入前,使用第一内容项填充(例如,通过填充单元4511)与用户界面不同的搜索界面。在一些实施方案中,根据确定用户界面包括与某个应用程序相关联的内容,其中该用户界面不同于包括用于调用应用程序的可选图标的home屏幕,使用第一内容项填充搜索界面包括使用所述至少一个建议的搜索查询填充(例如,通过填充单元4511)搜索界面,其中该搜索查询至少部分地基于与该应用程序相关联的内容;并且根据确定用户界面与home 屏幕的页面相关联,使用第一内容项填充搜索界面包括使用示能表示填充 (例如,通过填充单元4511)搜索界面,该示能表示包括对电子设备当前位置的阈值距离内的至少一个兴趣点的可选描述。
(E8)在E7的电子设备的一些实施方案中,用示能表示填充搜索界面包括显示(例如,通过显示单元4507和/或显示单元4501)搜索界面的搜索入口部分;并且处理单元被进一步配置为:检测(例如,通过检测单元4507)搜索入口部分的输入;并且响应于在搜索入口部分检测到输入,停止显示(例如,通过显示单元4507和/或显示单元4501)示能表示并在搜索界面内显示(例如,通过显示单元4507和/或显示单元4501)所述至少一个建议的搜索查询。
(F1)根据一些实施方案,在具有位置传感器、触敏表面(例如,触敏表面195,图1D)和显示器(例如,显示器194,图1D)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:在无来自用户的指令情况下,自动确定电子设备用户位于停留在某个地理位置的车辆内;当确定用户已经离开位于该地理位置的车辆时,确定从位置传感器检索的用于识别地理位置的定位信息是否满足准确度标准。该方法还包括:在确定定位信息不满足准确度标准时,向用户提供输入有关地理位置的信息的提示。该方法还包括:响应于提供提示,从用户接收关于地理位置的信息并将该信息存储为车辆位置信息。
(F2)在权利要求F1的方法的一些实施方案中,该方法还包括:在确定定位信息满足准确度标准时,在无来自用户的指令情况下,自动将定位信息存储为车辆位置信息。
(F3)在权利要求F2的方法的一些实施方案中,该方法还包括:根据确定用户正前往该地理位置,显示包括车辆位置信息的用户界面对象。
(F4)在权利要求F3的方法的一些实施方案中,用户界面对象是包括用户当前位置标识符和地理位置的单独标识符的地图对象。
(F5)在权利要求F4的方法的一些实施方案中,用户界面对象显示在电子设备的锁定屏幕上。
(F6)在权利要求F4的方法的一些实施方案中,响应于使得电子设备进入搜索模式的轻扫手势,显示用户界面对象。
(F7)在权利要求F6的方法的一些实施方案中,响应于接收到轻扫手势,执行确定,确定用户是否正在前往该地理位置。
(F8)在F1至F7中任一项的方法的一些实施方案中,该提示是由可通过电子设备使用的虚拟助理提供的音频提示,从用户接收信息包括从用户接收识别该地理位置的口头描述,显示用户界面对象包括显示可选择的示能表示,当选择该示能表示时将使设备回放口头描述。
(F9)在F1至F7中任一项的方法的一些实施方案中,该提示显示在电子设备的显示器上,从用户接收信息包括从用户接收识别该地理位置的文本描述,显示用户界面对象包括显示来自用户的文本描述。
(F10)在F1至F7中任一项的方法的一些实施方案中,确定用户是否正在前往该地理位置包括:使用从位置传感器接收的新的定位信息来确定电子设备正在向该地理位置移动。
(F11)在F10的方法的一些实施方案中,确定用户是否正在前往该地理位置包括:(i)确定电子设备在另一个地理位置处停留超出阈值时间周期,以及(ii)确定新的定位信息表明电子设备正在离开另一个地理位置并向该地理位置移动。
(F12)在F1至F11中任一项的方法的一些实施方案中,确定用户处于停留在该地理位置处的车辆中包括:(i)通过确定电子设备正在以高于阈值速度行进确定用户位于车辆内(ii)通过以下一项或多项确定车辆已经停留在该地理位置处:(a)确定电子设备已经在该地理位置处停留超出某个阈值时间周期,(b)确定电子设备与车辆之间的通信链路已断开,以及(c)确定该地理位置对应于停车场内的某个位置。
(F13)在权利要求F12的方法的一些实施方案中,确定车辆已停留在该地理位置处包括确定电子设备已经在该地理位置处停留超出某个阈值时间周期。
(F14)在F12至F13中任一项的方法的一些实施方案中,确定车辆已停留在该地理位置处包括确定电子设备和车辆之间的通信链路已经断开。
(F15)在F12至F14中任一项的方法的一些实施方案中,确定车辆已停留在该地理位置处包括确定该地理位置对应于停车场内的某个位置。
(F16)在F1至F15中任一项的方法的一些实施方案中,准确度标准包括当与定位信息相关联的GPS读数准确度高于准确度的阈值水平时所满足的标准。
(F17)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、位置传感器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行F1至F16中任一项描述的方法。
(F18)在又一方面,提供一种电子设备,并且该电子设备包括:触敏表面、显示器、位置传感器以及用于执行F1至F16中任一项所述方法的装置。
(F19)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面、显示器和位置传感器的电子设备执行这些指令时,将使电子设备执行F1至F16中任一项描述的方法。
(F20)在另一方面,提供了具有触敏表面、显示器和位置传感器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据F1至 F16中任一项描述的方法显示的用户界面。在另一方面,提供了一种在包括触敏表面、显示器和位置传感器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行F1至F16中任一项描述的方法的装置。
(F21)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图46的显示单元4601)、触敏表面单元(例如,图46的触敏表面单元4603)、位置传感器单元(例如,图46的位置传感器单元4607)和处理单元(例如,图46的处理单元4605)。处理单元与触敏表面单元、显示单元和位置传感器单元耦合。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图46示出了与电子设备4600集成的显示单元4601和触敏表面单元4603,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,触敏表面单元和显示单元集成在单个触敏显示器单元(在本文中也称为触敏显示器) 中。处理单元包括显示单元(例如,图46的显示单元4609)、检索单元 (例如,图46的检索单元4611)、确定单元(例如,图46的确定单元 4613)、存储单元(例如,图46的存储单元4615)、识别单元(例如,图 46的识别单元4617)、选择单元(例如,图46的选择单元4619)、接收单元(例如,图46的接收单元4621)、提供单元(例如,图46的提供单元4623)和回放单元(例如,图46的回放单元4625)。处理单元(或其一个或多个部件,诸如单元4607至4625)被配置为:在无来自用户的指令情况下,自动确定(例如,通过确定单元4613)电子设备用户位于停留在某个地理位置的车辆内;在确定用户已经离开位于该地理位置的车辆时,确定(例如,通过确定单元4613)从位置传感器单元(例如,位置传感器单元4607)检索(例如,通过检索单元4611)的用于识别(例如,通过识别单元4617)地理位置的定位信息是否满足准确度标准;在确定(例如,通过确定单元4613))定位信息不满足准确度标准时,向用户提供(例如,通过提供单元4623)输入有关地理位置信息的提示;并且响应于提供该提示,从用户接收(例如,通过接收单元4621)关于该地理位置的信息,并将该信息存储(例如,通过存储单元4615)为车辆位置信息。
(F22)在F21的电子设备的一些实施方案中,处理单元被进一步配置为:在确定定位信息满足准确度标准时,在无来自用户的指令情况下,自动将定位信息存储(例如,通过存储单元4615)为车辆位置信息。
(F23)在F22的电子设备的一些实施方案中,处理单元被进一步配置为:根据确定用户正前往该地理位置,显示(例如,通过显示单元4609结合显示单元4601)包括车辆位置信息的用户界面对象。
(F24)在F23的电子设备的一些实施方案中,用户界面对象是包括用户当前位置标识符和地理位置的单独标识符的地图对象。
(F25)在F24的电子设备的一些实施方案中,用户界面对象显示(例如,通过显示单元4609结合显示单元4601)在电子设备的锁定屏幕上。
(F26)在F24的电子设备的一些实施方案中,响应于使得电子设备进入搜索模式的轻扫手势,显示(例如,通过显示单元4609结合显示单元 4601)用户界面对象。
(F27)在F26的电子设备的一些实施方案中,响应于接收到轻扫手势,执行确定,确定用户是否正在前往该地理位置。
(F28)在F21至F27中任一项的电子设备的一些实施方案中,该提示是由可通过电子设备使用的虚拟助理提供的音频提示,从用户接收信息包括从用户接收(例如,通过接收单元4621)识别该地理位置的口头描述,显示用户界面对象包括显示(例如,通过显示单元4609结合显示单元4601) 可选择的示能表示,当选择(例如,通过选择单元4619)该示能表示时将使设备回放(例如,通过回放单元4625)口头描述。
(F29)在F21至F27中任一项的电子设备的一些实施方案中,该提示显示(例如,通过显示单元4609结合显示单元4601)在电子设备的显示器上,从用户接收信息包括从用户接收(例如,通过接收单元4621)识别该地理位置的文本描述,显示用户界面对象包括显示来自用户的文本描述。
(F30)在F21至F27中任一项的电子设备的一些实施方案中,确定用户是否正在前往该地理位置包括:使用从位置传感器单元(例如,位置传感器单元4607)接收(例如,通过接收单元4621)的新的定位信息来确定 (例如,通过确定单元4613)电子设备正在向该地理位置移动。
(F31)在F30的电子设备的一些实施方案中,确定用户是否正在前往该地理位置包括:(i)确定(例如,通过确定单元4613)电子设备在另一个地理位置处停留超出阈值时间周期,以及(ii)确定(例如,通过确定单元 4613)新的定位信息表明电子设备正在离开另一个地理位置并向该地理位置移动。
(F32)在F21至F31中任一项的电子设备的一些实施方案中,确定用户处于停留在该地理位置处的车辆中包括:(i)通过确定(例如,通过确定单元4613)电子设备正在以高于阈值速度行进确定用户位于车辆内(ii)通过以下一项或多项确定车辆已经停留在该地理位置处:(a)确定(例如,通过确定单元4613)电子设备已经在该地理位置处停留超出某个阈值时间周期, (b)确定(例如,通过确定单元4613)电子设备与车辆之间的通信链路已断开,以及(c)确定(例如,通过确定单元4613)该地理位置对应于停车场内的某个位置。
(F33)在F32的电子设备的一些实施方案中,确定车辆已停留在该地理位置处包括确定(例如,通过确定单元4613)电子设备已经在该地理位置处停留超出某个阈值时间周期。
(F34)在F32至F33中任一项的电子设备的一些实施方案中,确定车辆已停留在该地理位置处包括确定(例如,通过确定单元4613)电子设备和车辆之间的通信链路已经断开。
(F35)在F32至F34中任一项的电子设备的一些实施方案中,确定车辆已停留在该地理位置处包括确定(例如,通过确定单元4613)该地理位置对应于停车场内的某个位置。
(F36)在F21至F35中任一项的电子设备的一些实施方案中,准确度标准包括当与定位信息相关联的GPS读数准确度高于准确度的阈值水平时所满足的标准。
(G1)根据一些实施方案,在具有位置传感器、触敏表面(例如,触敏表面195,图1D)和显示器(例如,显示器194,图1D)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:使用位置传感器监测电子设备的地理位置。该方法还包括:基于所监测的地理位置确定电子设备在预先确定的类型的兴趣点的阈值距离内。该方法还包括:根据确定电子设备在兴趣点的阈值距离内:识别当前在兴趣点处流行的至少一项活动并检索关于该兴趣点的信息,包括检索关于当前在兴趣点处流行的至少一项活动的信息。该方法还包括:通过触敏表面检测第一输入,第一输入时当被检测到时使电子设备进入搜索模式;并且响应于检测到第一输入,进入搜索模式,其中进入搜索模式包括在搜索界面处接收到任何用户输入之前,通过显示器呈现包括以下项的示能表示:(i)关于所述至少一项活动的信息,以及(ii)所述至少一项活动已被确定为当前在兴趣点处流行的指示。
(G2)在权利要求G1的方法的一些实施方案中,该方法包括:检测第二输入;并且响应于检测到第二输入,更新示能表示以包括关于不同于该兴趣点的第二兴趣点处的当前活动的可用信息,该兴趣点在电子设备的阈值距离内。
(G3)在G1至G2中任一项的方法的一些实施方案中,该示能表示还包括可选择的兴趣点类别,并且该方法还包括:检测相应可选择类别的选择;并且响应于检测到该选择,更新示能表示以包括关于附加兴趣点的信息,其中所述附加兴趣点位于设备的第二阈值距离内。
(G4)在G1至G3中任一项的方法的一些实施方案中,兴趣点为游乐园,并且检索的信息包括游乐园的乘坐装置的当前等待时间。
(G5)在权利要求G4的方法的一些实施方案中,检索的信息包括关于位于电子设备的预定义距离内的乘坐装置的等待时间的信息。
(G6)在G1至G3中任一项的方法的一些实施方案中,兴趣点为餐厅,并且检索的信息包括关于餐厅中流行菜单项的信息。
(G7)在权利要求G6的方法的一些实施方案中,检索的信息为从与电子设备用户相关联的社交网络检索到的信息。
(G8)在G1至G3中任一项的方法的一些实施方案中,兴趣点为电影院,并且检索的信息包括关于电影院的放映时间的信息。
(G9)在权利要求G8的方法的一些实施方案中,检索的信息为从与电子设备用户相关联的社交网络检索到的信息。
(G10)在G1至G9中任一项的方法的一些实施方案中,解锁电子设备后,响应于在电子设备home屏幕的初始页面上大体沿水平方向的轻扫,示能表示可用。
(G11)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、位置传感器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行G1至G10中任一项描述的方法。
(G12)在又一方面,提供一种电子设备,并且该电子设备包括:触敏表面、显示器、位置传感器以及用于执行G1至G10中任一项所述方法的装置。
(G13)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面、显示器和位置传感器的电子设备执行这些指令时,将使电子设备执行G1至G10中任一项描述的方法。
(G14)在另一方面,提供了具有触敏表面、显示器和位置传感器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据G1至 G10中任一项描述的方法显示的用户界面。在另一方面,提供了一种在包括触敏表面、显示器和位置传感器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行G1至G10中任一项描述的方法的装置。
(G15)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图47的显示单元4701)、触敏表面单元(例如,图47的触敏表面单元4703)、位置传感器单元4707和处理单元(例如,图47的处理单元 4705)。处理单元与触敏表面单元、显示单元和位置传感器单元耦合。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至 D)配置电子设备。为便于说明,图47示出了与电子设备4700集成的显示单元4701和触敏表面单元4703,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,触敏表面单元和显示单元集成在单个触敏显示器单元(在本文中也称为触敏显示器)中。处理单元包括检测单元(例如,图47的检测单元4709)、显示单元(例如,图47的显示单元 4711)、检索单元(例如,图47的检索单元4713)、确定单元(例如,图 47的确定单元4715)、识别单元(例如,图47的识别单元4717)、解锁单元(例如,图47的解锁单元4719)和搜索模式进入单元(例如,图47 的搜索模式进入单元4721)。处理单元(或其一个或多个部件,诸如单元 4709至4721)被配置为:在不接收任何来自电子设备用户的指令情况下:使用位置传感器单元(例如,位置传感器单元4707)监测电子设备的地理位置;基于监测的地理位置确定(例如,通过确定单元4715)电子设备在预定类型的兴趣点的阈值距离内;根据确定电子设备在兴趣点的阈值距离内:识别(例如,通过识别单元4717)当前在兴趣点处流行的至少一项活动;检索(例如,通过检索单元4713)关于该兴趣点的信息,包括检索关于至少一项当前在兴趣点处流行的活动的信息;通过触敏表面单元(例如,触敏表面单元4703)检测(例如,通过检测单元4709)第一输入,第一输入当被检测到时使电子设备进入搜索模式;并且响应于检测到第一输入,进入搜索模式(例如,通过搜索模式进入单元4721),并且进入搜索模式包括在搜索界面处接收到任何用户输入之前,通过显示单元(例如,显示单元4701)呈现(例如,通过显示单元4711)包括以下项的示能表示:(i)关于所述至少一项活动的信息,以及(ii)所述至少一项活动已被确定为当前在兴趣点处流行的活动的指示。
(G16)在G15的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4709)第二输入;并且响应于检测到第二输入,更新(例如,通过显示单元4711)示能表示以包括关于不同于该兴趣点的第二兴趣点处的当前活动的可用信息,并且该兴趣点在电子设备的阈值距离内。
(G17)在G15至G16中任一项的电子设备的一些实施方案中,该示能表示还包括可选择的兴趣点类别,并且处理单元被进一步配置为:检测 (例如,通过检测单元4709)相应可选择类别的选择;并且响应于检测到该选择,更新(例如,通过显示单元4711)示能表示以包括关于附加兴趣点的信息,其中所述附加兴趣点位于设备的第二阈值距离内。
(G18)在G15至G17中任一项的电子设备的一些实施方案中,兴趣点为游乐园,并且检索的信息包括游乐园的乘坐装置的当前等待时间。
(G19)在G18的电子设备的一些实施方案中,检索的信息包括关于位于电子设备的预定义距离内的乘坐装置的等待时间的信息。
(G20)在G15至G17中任一项的电子设备的一些实施方案中,兴趣点为餐厅,并且检索的信息包括关于餐厅中流行菜单项的信息。
(G21)在G20的电子设备的一些实施方案中,检索的信息为从与电子设备用户相关联的社交网络检索到的信息。
(G22)在G15至G17中任一项的电子设备的一些实施方案中,兴趣点为电影院,并且检索的信息包括关于电影院的放映时间的信息。
(G23)在G22的电子设备的一些实施方案中,检索的信息为从与电子设备用户相关联的社交网络检索到的信息。
(G24)在G15至G23中任一项的电子设备的一些实施方案中,解锁 (例如,通过解锁单元4719)电子设备后,响应于在电子设备home屏幕的初始页面上大体沿水平方向的轻扫,示能表示可用。
(H1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A 至D的任意一个配置)上执行方法。该方法包括:接收语音通信的至少一部分(例如,10秒或更短的实时电话呼叫或记录的语音信箱),语音通信的该部分包括由远程设备的远程用户提供的语音,该远程用户不同于电子设备的用户。该方法还包括:至少部分地基于由远程设备的远程用户提供的语音来提取内容项。该方法还包括:确定该内容项当前在电子设备上是否可用。根据确定内容项当前在电子设备上不可用,该方法包括:(i)识别与该内容项相关联的应用程序,以及(ii)在显示器上显示该内容项的可选描述。响应于检测到可选描述的选择,该方法包括:存储内容项以通过识别的应用程序进行呈现(例如,存储内容项以使其可由识别的应用程序呈现)。这样,用户能够存储在语音通信中提到或讨论过的内容项,而不必记住讨论的所有细节并在随后输入这些细节以创建适当的内容项。相反,电子设备能够基于描述各种相应内容项的语音来检测和提取内容项,然后提供可由用户选择的内容项的可选描述,以便将相应的内容项存储在电子设备上。
(H2)在H1的方法的一些实施方案中,内容项是某个新事件。
(H3)在H1的方法的一些实施方案中,内容项是当前与电子设备上的日历应用程序相关联的事件的新事件细节。
(H4)在H1的方法的一些实施方案中,内容项是某个新联系人。
(H5)在H1的方法的一些实施方案中,内容项是与电子设备上的电话应用程序相关联的现有联系人的新联系人信息。
(H6)在H1至H5中任一项的方法的一些实施方案中,语音通信是实时电话呼叫。
(H7)在H1至H5中任一项的方法的一些实施方案中,语音通信是实时 FaceTime通话。
(H8)在H1至H5中任一项的方法的一些实施方案中,语音通信是记录的语音信箱。
(H9)在H1至H8中任一项的方法的一些实施方案中,显示可选描述包括在用户界面内显示可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话。这样,用户能够轻易且方便地直接通过包括最近通话的用户界面访问提取的内容项(例如,在相应的语音通信期间提取的内容项)。
(H10)在H9的方法的一些实施方案中,可选描述与以下指示一起显示:内容项与语音通信相关联。
(H11)在H9的方法的一些实施方案中,检测选择包括:在显示包括最近通话的用户界面的同时接收选择。
(H12)在H1至H11中任一项的方法的一些实施方案中,该方法还包括:结合显示内容项的可选描述,将已检测到内容项的反馈(例如,电子设备生成的触觉反馈或呈现在第二设备上的用户界面对象,从而使用户不必在电话呼叫期间将电话从其耳朵移开)提供给电子设备用户。这样,向用户提供一条简明指示,指示在语音通信期间检测/提取到了内容项,然后用户可以决定是否存储该内容项。
(H13)在H12的方法的一些实施方案中,提供反馈包括向该电子设备附近的另一台电子设备(例如,膝上型电脑、电视监视器、智能手表等)发送与内容项检测有关的信息。这样,用户不必中断语音通信,但仍然可以在另一台设备上查看与检测/提取的内容项相关的细节。
(H14)在H1至H13中任一项的方法的一些实施方案中,该方法还包括:确定语音通信包括关于第一物理位置的信息(例如,在电话呼叫期间提到的地址或在电话呼叫期间讨论的餐厅名称等,以下提供了更多细节)。该方法还包括:检测输入,并且响应于检测到输入,打开能够接受位置数据的应用程序并使用有关第一物理位置的信息填充该应用程序。这样,除了检测和提取事件和联系人信息外,该电子设备还能够提取在语音通信期间讨论的位置信息,并在适当的应用程序中向用户提供该位置信息 (例如,使用户免受记忆电话上讨论的具体位置细节的烦扰,特别是用户可能不熟悉的新细节,该设备提取这些位置细节并进行显示以供用户使用)。
(H15)在H14的方法的一些实施方案中,该应用程序为地图应用程序,并且使用与第一物理位置有关的信息填充该地图应用程序包括:使用与第一物理位置对应的位置标识符填充该地图应用程序内显示的地图。这样,用户能够方便地使用新提取的位置细节前往新的目的地、查看特定位置有多远并使用由地图应用程序提供的其他功能。
(H16)在H1至H13中任一项的方法的一些实施方案中,该方法还包括:确定语音通信包括与第一物理位置有关的信息。该方法还包括:检测输入(例如,搜索激活手势,诸如以下详细讨论的轻扫手势),并且响应于检测到输入,使用关于第一物理位置的信息填充搜索界面。这样,除了 (或作为替代)向用户提供用于特定应用程序的位置信息外,电子设备还能够提供在搜索界面中使用的位置信息(例如,用于搜索相关的兴趣点或搜索关于第一物理位置的更多细节,诸如电话号码、菜单等)。
(H17)在H1至H16中任一项的方法的一些实施方案中,提取内容项包括分析语音通信的该部分以检测预定类型的内容,并且在通过与电子设备通信的音频系统输出语音通信的同时执行分析(例如,在将语音通信输出给电子设备用户的同时实时分析语音通信)。
(H18)在H17的方法的一些实施方案中,分析语音通信包括:(i)将由远程设备的远程用户提供的语音转换为文本;(ii)将自然语言处理算法应用于该文本以确定文本是否包括一个或多个预定义的关键字;并且(iii)根据确定文本包括相应的预定义关键字,确定语音通信包括描述内容项的语音。
(H19)在H1至H18中任一项的方法的一些实施方案中,接收至少该部分语音通信包括从电子设备用户接收应分析语音通信该部分的指示。
(H20)在H19的方法的一些实施方案中,该指示对应于硬件按钮的选择 (例如,用户在音频系统输出语音通信的同时选择硬件按钮,该语音通信用于指示应分析的预定语音通信的秒数(例如,先前的10、15或20 秒))。在一些实施方案中,该按钮还可以是呈现在电子设备显示器上供用户进行选择的按钮(例如,在语音通信期间显示“轻击此处分析语音通信以获取新内容”的按钮)。
(H21)在H19的方法的一些实施方案中,该指示对应于来自电子设备用户的命令,包括字词“嘿,Siri”。因此,用户能够轻松指示电子设备开始分析语音通信的该部分以检测在语音通信中讨论的内容项(诸如事件、联系人信息和关于物理位置的信息)。
(H22)在H1至H21中任一项的方法的一些实施方案中,该方法还包括:接收语音通信的第二部分,该第二部分包括由远程设备的远程用户提供的语音和由电子设备用户提供的语音(例如,语音通信是实时电话呼叫,并且第二部分包括用户和远程用户之间的讨论)。该方法还包括:至少部分地基于由远程设备的远程用户提供的语音和由电子设备用户提供的语音来提取第二内容项。根据确定第二内容项当前在电子设备上不可用,该方法包括:(i)识别与第二内容项相关联的第二应用程序,以及(ii)在显示器上显示第二内容项的第二可选描述。响应于检测到第二可选描述的选择,该方法包括:存储第二内容项以通过识别的第二应用程序进行呈现。
(H23)在H22的方法的一些实施方案中,在用户界面内显示可选描述和第二可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话。这样,向用户提供了单个界面,该界面方便地包括在多个语音通信 (例如,多个电话呼叫、语音信箱或电话呼叫和语音信箱)上检测到的内容项。
(H24)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行H1至H23中任一项描述的方法。
(H25)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行H1至H23中任一项所述方法的装置。
(H26)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行H1至H23中任一项描述的方法。
(H27)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据H1至H23中任一项描述的方法显示的用户界面。
(H28)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行H1至H23中任一项描述的方法的装置。
(H29)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图48的显示单元4801)、触敏表面单元(例如,图48的触敏表面单元4803)和处理单元(例如,图48的处理单元4805)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图48示出了与电子设备4800集成的显示单元 4801和触敏表面单元4803,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括语音通信接收单元(例如,图48的语音通信接收单元 4807)、内容项提取单元(例如,图48的内容项提取单元4809)、可用性确定单元(例如,图48的可用性确定单元4811)、应用程序识别单元(例如,图48的应用程序识别单元4813)、显示单元(例如,图48的显示单元4815)、内容项存储单元(例如,图48的内容项存储单元4817)、反馈提供单元(例如,图48的反馈提供单元4819)、输入检测单元(例如,图48的输入检测单元4821)、应用程序打开单元(例如,图48的应用程序打开单元4823)、填充单元(例如,图48的填充单元4825)和语音通信分析单元(例如,图48的语音通信分析单元4827)。处理单元(或其一个或多个部件,诸如单元4807至4827)被配置为:接收语音通信的至少一部分(例如,通过语音通信接收单元4807),语音通信的该部分包括由不同于电子设备用户的远程设备的远程用户提供的语音。处理单元还被配置为:至少部分地基于由远程设备的远程用户提供的语音来提取内容项(例如,通过内容项提取单元4809),并确定内容项当前在电子设备上是否可用(例如,通过可用性确定单元4811)。根据确定内容项当前在电子设备上不可用,处理单元还被配置为:(i)识别与内容项相关联的应用程序(例如,通过应用程序识别单元4813),以及(ii)在显示器上显示内容项的可选描述(例如,通过显示单元4815和/或显示单元4801)。响应于检测到可选描述的选择(例如,通过输入检测单元4821和/或触敏表面单元 4803),处理单元被配置为:存储该内容项以通过识别的应用程序进行呈现(例如,通过内容项存储单元4817)。
(H30)在H29的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4907至4927)被进一步配置为执行H2至H23中任一项描述的方法。
(I1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A 至D的任意一个配置)上执行方法。该方法包括:接收语音通信的至少一部分,语音通信的该部分(例如,实时电话呼叫、记录的语音信箱)包括由远程设备的远程用户提供的语音,该远程用户不同于电子设备的用户。该方法还包括:确定语音通信包括识别第一物理位置的语音。响应于确定语音通信包括识别该物理位置的语音,该方法包括:提供指示(例如,向用户提供触觉反馈,显示带有关于该物理位置的信息的用户界面对象,或将关于该物理位置的信息发送到附近设备以在该附近设备上显示),指示已检测到有关该物理位置的信息。该方法另包括:通过触敏表面检测输入。响应于检测到输入,该方法包括:(i)打开接受地理位置数据的应用程序;以及(ii)使用有关物理位置的信息填充该应用程序。这样,用户能够存储在语音通信中提到或讨论过的关于物理位置的信息,而不必记住讨论过的所有细节并于随后在适当的应用程序中输入这些细节。相反,电子设备能够基于描述物理位置的语音(例如,餐厅的描述、某个物理位置的驾车路线等)检测和提取关于该物理位置的信息,然后提供指示,指示已检测到与相应物理位置有关的信息。
(I2)在I1的方法的一些实施方案中,语音通信是实时电话呼叫。
(I3)在I1的方法的一些实施方案中,语音通信是实时FaceTime通话。
(I4)在I1的方法的一些实施方案中,语音通信是记录的语音信箱。
(I5)在I1至I4中任一项的方法的一些实施方案中,提供指示包括在用户界面内显示物理位置的可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话。
(I6)在I5的方法的一些实施方案中,可选描述指示内容项与语音通信相关联。
(I7)在I5至I6中任一项的方法的一些实施方案中,检测输入包括:在显示包括最近通话的用户界面的同时在可选描述上检测输入。
(I8)在I1至I7中任一项的方法的一些实施方案中,提供指示包括向电子设备的用户提供触觉反馈。
(I9)在I1至I8中任一项的方法的一些实施方案中,提供指示包括将关于物理位置的信息发送到靠近该电子设备的另一台电子设备。
(I10)在I1至I9中任一项的方法的一些实施方案中,确定语音通信包括描述物理位置的语音包括:分析语音通信的该部分以检测关于物理位置的信息,并且在通过与电子设备通信的音频系统输出语音通信的同时执行分析。
(I11)在I1至I10中任一项的方法的一些实施方案中,接收至少该部分语音通信包括从电子设备用户接收应分析语音通信该部分的指令。
(I12)在I11的方法的一些实施方案中,该指令对应于硬件按钮的选择。在一些实施方案中,该按钮还可以是呈现在电子设备显示器上供用户进行选择的按钮(例如,在语音通信期间显示“轻击此处分析语音通信以获取新内容”的按钮)。
(I13)在I11的方法的一些实施方案中,该指令对应于来自电子设备用户的命令,包括字词“嘿,Siri”。
(I14)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行I1至I13中任一项描述的方法。
(I15)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行I1至I13中任一项所述方法的装置。
(I16)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行I1至I13中任一项描述的方法。
(I17)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据I1至I13中任一项描述的方法显示的用户界面。
(I18)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行I1至I13中任一项描述的方法的装置。
(I19)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图49的显示单元4901)、触敏表面单元(例如,图49的触敏表面单元4903)和处理单元(例如,图49的处理单元4905)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图49示出了与电子设备4900集成的显示单元 4901和触敏表面单元4903,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括语音通信接收单元(例如,图49的语音通信接收单元 4907)、内容项提取单元(例如,图49的内容项提取单元4909)、指示提供单元(例如,图49的指示提供单元4911)、输入检测单元(例如,图 49的输入检测单元4913)、应用程序打开单元(例如,图49的应用程序打开单元4915)、应用程序填充单元(例如,图49的应用程序填充单元 4917)、反馈提供单元(例如,图49的反馈提供单元4919)和语音通信分析单元(例如,图49的语音通信分析单元4921)。处理单元(或其一个或多个部件,诸如单元4907至4921)被配置为:接收语音通信的至少一部分 (例如,通过语音通信接收单元4907),语音通信的该部分包括由不同于电子设备用户的远程设备的远程用户提供的语音。处理单元还被配置为:确定语音通信包括识别物理位置的语音(例如,通过内容项提取单元4909)。响应于确定语音通信包括识别该物理位置的语音,处理单元被配置为:提供已检测到关于该物理位置的信息的指示(例如,通过内容项提取单元4909)。处理单元还被配置为:通过触敏表面单元检测输入(例如,通过输入检测单元4911)。响应于检测到输入,处理单元被配置为: (i)打开接受地理位置数据的应用程序(例如,通过应用程序打开单元 4913),并且(ii)使用有关物理位置的信息填充该应用程序(例如,通过应用程序填充单元4915)。
(I20)在I19的电子设备的一些实施方案中,处理单元(或其一个或多个部件,例如单元4907至4921)被进一步配置为执行I2至I13中任一项描述的方法。
(J1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A 至D的任意一个配置)上执行方法。该方法包括:在显示器上的即时消息应用程序中呈现文本输入字段和会话副本。该方法还包括:当在显示器上呈现即时消息应用程序时,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息。该方法还包括:分析与文本输入字段和会话副本相关联的内容,至少部分地基于分析的内容的一部分确定建议的物理位置。该方法另包括:在显示器上的即时消息应用程序内呈现识别建议物理位置的可选用户界面元素,并且接收可选用户界面元素的选择。响应于接收到选择,该方法包括:在文本输入字段中呈现建议物理位置的表示。这样,即可方便地向电子设备用户提供所需内容,而不必键入任何内容,并且不必搜索内容(例如,用户只需选择可选用户界面元素来输入其当前地址,而不必访问地图应用程序以确定其确切位置,然后切换回即时消息应用程序并提供明确的输入以发送位置信息)。
(J2)在J1的方法的一些实施方案中,即时消息应用程序包括虚拟键盘,并且可选用户界面元素显示在与虚拟键盘相邻并且在虚拟键盘上方的建议部分中。
(J2)在J1至J2中任一项的方法的一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:处理与文本输入字段和会话副本相关联的内容以检测会话副本包括有关用户当前位置的问题。这样,向用户提供与会话副本中的讨论直接相关的建议物理位置(例如,响应于第二用户的问题“你在哪儿?”,向用户呈现用户界面对象,该用户界面对象当被选择时,将使设备向第二用户发送关于用户当前位置的信息)。
(J4)在J3的方法的一些实施方案中,处理内容包括应用自然语言处理算法来检测构成问题的一个或多个预定义关键字(例如,“你在哪儿?”或“你的家庭地址是什么?”)。
(J5)在J3至J4中任一项的方法的一些实施方案中,该问题包括在从不同于该用户的第二用户接收的消息中。
(J6)在J1至J5中任一项的方法的一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:在即时消息应用程序的文本输入部分中监视从用户接收的键入输入。
(J7)在J1至J6中任一项的方法的一些实施方案中,该方法还包括:根据确定用户正在键入且尚未选择可选用户界面元素,停止呈现可选用户界面元素。这样,如果可以确定用户对选择对象不感兴趣,则设备不会继续呈现可选用户界面对象。
(J8)在J1至J7中任一项的方法的一些实施方案中,该方法还包括:根据确定用户已提供附加输入,其中该输入指示用户将不会选择可选用户界面元素,停止呈现可选用户界面元素。这样,如果可以确定用户对选择对象不感兴趣,则设备不会继续呈现可选用户界面对象。
(J9)在J1至J5中任一项的方法的一些实施方案中,建议物理位置的表示包括用于识别电子设备的当前地理位置的信息。
(J10)在J1至J9中任一项的方法的一些实施方案中,建议物理位置的表示是地址。
(J11)在J1至J9中任一项的方法的一些实施方案中,建议的物理位置是地图对象,该地图对象包括建议物理位置的标识符。
(J12)在J1至J11中任一项的方法的一些实施方案中,建议的物理位置对应于用户最近在即时消息应用程序之外的应用程序中查看的位置。
(J13)在J1至J12中任一项的方法的一些实施方案中,即时消息应用程序是电子邮件应用程序。
(J14)在J1至J12中任一项的方法的一些实施方案中,即时消息应用程序是文本消息应用程序。
(J15)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行J1至J14中任一项描述的方法。
(J16)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行J1至J14中任一项所述方法的装置。
(J17)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行J1至J14中任一项描述的方法。
(J18)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据J1至J14中任一项描述的方法显示的用户界面。
(J19)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行J1至J14中任一项描述的方法的装置。
(J20)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图50的显示单元5001)、触敏表面单元(例如,图50的触敏表面单元5003)和处理单元(例如,图50的处理单元5005)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图50示出了与电子设备5000集成的显示单元 5001和触敏表面单元5003,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图50的呈现单元5007)、下一输入确定单元(例如,图50的下一输入确定单元5009)、内容分析单元(例如,图50的内容分析单元5011)、选择接收单元(例如,图50的选择接收单元5013)、键入输入监视单元(例如,图50的键入输入监视单元5015) 和呈现停止单元(例如,图50的呈现停止单元5017)。处理单元(或其一个或多个部件,例如单元5007至5017)被配置为:在显示器上的即时消息应用程序中呈现文本输入字段和会话副本(例如,通过呈现单元5007和/或显示单元5001)。当在显示器上呈现即时消息应用程序时,处理单元还被配置为:确定来自电子设备用户的下一个可能的输入是关于物理位置的信息(例如,通过下一输入确定单元5009)处理单元另被配置为:分析与文本输入字段和会话副本相关联的内容,至少部分地基于分析的内容的一部分确定建议的物理位置(例如,通过内容分析单元5011);在显示器上的即时消息应用程序内呈现识别建议物理位置的可选用户界面元素(例如,通过呈现单元5007);接收可选用户界面元素的选择(例如,通过选择接收单元5013和/或触敏表面单元5003);并且响应于接收到选择,在文本输入字段中呈现建议物理位置的表示(例如,通过呈现单元5007)。
(J21)在J20的电子设备的一些实施方案中,处理单元(或其一个或多个部件,例如单元5007至5017)被进一步配置为执行J2至J14中任一项描述的方法。
(K1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A 至D的任意一个配置)上执行方法。该方法包括:在显示第一应用程序的同时,获取用于识别用户在第一应用程序中查看的第一物理位置的信息(例如,用户在允许搜索本地商家的应用程序中搜索过的餐厅)。该方法还包括:退出第一应用程序,并且在退出第一应用程序后,从用户接收打开不同于第一应用程序的第二应用程序的请求。在一些实施方案中,在第一应用程序中未接收到任何输入情况下接收请求(例如,请求不包括在第一应用程序内点击链接或按钮)。响应于接收到请求并且根据确定第二应用程序能够接受地理位置信息,该方法包括:呈现第二应用程序,并且呈现第二应用程序包括使用至少部分地基于第一物理位置识别信息的信息填充第二应用程序。这样,用户不需要在两个不同的应用程序之间手动传输信息。相反,设备智能地确定第二应用程序能够接受地理位置信息,然后将在第一应用程序中查看的物理位置的相关信息直接填充到第二应用程序中(例如,在第二应用程序中填充地图对象以包括物理位置的标识符)。
(K2)在K1的方法的一些实施方案中,接收打开第二应用程序的请求包括:退出第一应用程序后,在第二应用程序的示能表示上检测输入。换句话讲,请求不对应于在第一应用程序内点击链接,相反,用户明确并直接地请求打开第二应用程序,然后设备决定使用关于先前查看的物理位置(先前在不同的第一应用程序中查看)的信息来填充第二应用程序,使得用户可以在第二应用程序中进一步研究或调查先前查看的该物理位置。
(K3)在K2的方法的一些实施方案中,第二应用程序的示能表示是显示在电子设备home屏幕内的图标。在一些实施方案中,home屏幕是操作系统的系统级部件,包括用于调用电子设备上可用的应用程序的图标。
(K4)在K2的方法的一些实施方案中,检测输入包括:(i)在物理Home 按钮上检测双击,(ii)响应于检测到双击,显示应用程序切换用户界面,以及(iii)从应用程序切换用户界面内检测示能表示的选择。
(K5)在K1至K4中任一项的方法的一些实施方案中,填充第二应用程序包括显示用户界面对象,该用户界面对象包括至少部分地基于第一物理位置识别信息的信息。
(K6)在K5的方法的一些实施方案中,该用户界面对象包括通知用户第一物理位置最近在第一应用程序中被查看的文本描述。
(K7)在K6的方法的一些实施方案中,该用户界面对象是在第二应用程序中显示的地图,并且填充第二应用程序包括填充地图以包括第一物理位置的标识符。
(K8)在K6至K7中任一项的方法的一些实施方案中,第二应用程序呈现虚拟键盘,并且该用户界面对象显示在虚拟键盘的上方。
(K9)在K6至K8中任一项的方法的一些实施方案中,获取信息包括获取关于第二物理位置的信息,显示用户界面对象包括显示具有与第二物理位置有关的信息的用户界面对象。
(K10)在K1至K9中任一项的方法的一些实施方案中,确定第二应用程序能够接受地理位置信息包括以下中的一项或多项:(i)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定第二应用程序能够在地图上显示地理位置信息;(iii)确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。
(K11)在K10的方法的一些实施方案中,确定第二应用程序能够接受地理位置信息包括:确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。
(K12)在K1至K11中任一项的方法的一些实施方案中,该方法还包括:响应于接收到请求,基于用户的应用程序使用历史来确定第二应用程序是否与第一应用程序关联(例如,在打开第一应用程序后打开了阈值次数)。
(K13)在K12的方法的一些实施方案中,该方法还包括:在呈现第二应用程序之前,为第二应用程序提供对识别第一物理位置的信息的访问权限,并且在提供该访问权限之前,第二应用程序不能访问识别第一物理位置的信息。这样,第二应用程序能够接收关于用户在第一应用程序中执行的动作的信息,从而向用户提供在第二应用程序中使用该信息的方式(例如,搜索关于第一物理位置的更多信息,或者为通过第二应用程序可用的一些服务例如顺风车使用第一物理位置)。
(K14)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行K1至K13中任一项描述的方法。
(K15)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行K1至K13中任一项所述方法的装置。
(K16)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行K1至K13中任一项描述的方法。
(K17)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据K1至K13中任一项描述的方法显示的用户界面。
(K18)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行K1至K13中任一项描述的方法的装置。
(K19)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图51的显示单元5101)、触敏表面单元(例如,图51的触敏表面单元5103)和处理单元(例如,图51的处理单元5105)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图51示出了与电子设备5100集成的显示单元 5101和触敏表面单元5103,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图51的信息获取单元5107)、应用程序退出单元(例如,图51的应用程序退出单元5109)、请求接收单元(例如,图51的请求接收单元5111)、应用程序能力确定单元(例如,图 51的应用程序能力确定单元5113)、应用程序呈现单元(例如,图51的应用程序呈现单元5115)、应用程序填充单元(例如,图51的应用程序填充单元5117)、输入检测单元(例如,图51的输入检测单元5119)、应用程序切换用户界面显示单元(例如,图51的应用程序切换用户界面显示单元5121)、应用程序关联确定单元(例如,图51的应用程序关联确定单元5123)和访问提供单元(例如,图51的访问提供单元5125)。处理单元(或其一个或多个部件,例如单元5107至5125)被配置为:在显示第一应用程序的同时,获取用于识别用户在第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元5107)。处理单元还被配置为:退出第一应用程序(例如,通过应用程序退出单元5109),并且在退出第一应用程序后,从用户接收打开不同于第一应用程序的第二应用程序的请求 (例如,通过请求接收单元5111)。响应于接收到请求并且根据确定第二应用程序能够接受地理位置信息(例如,由应用程序能力确定单元5113处理或执行的确定),呈现第二应用程序(例如,通过应用程序呈现单元 5115),并且呈现第二应用程序包括使用至少部分地基于第一物理位置识别信息的信息填充第二应用程序(例如,通过应用程序填充单元5117)。
(K20)在K19的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元5107至5125)被进一步配置为执行K2至K13中任一项描述的方法。
(L1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A 至D的任意一个配置)上执行方法。该方法包括:获取用于识别用户在第一应用程序中查看的第一物理位置的信息并检测第一输入。响应于检测到第一输入,该方法包括:(i)识别能够接受地理位置信息的第二应用程序,以及(ii)在显示器的至少一部分上呈现不同于第一应用程序的示能表示,并建议打开具有关于第一物理位置的信息的第二应用程序。该方法还包括:在示能表示处检测第二输入。响应于在示能表示处检测到第二输入:(i)打开第二应用程序,以及(ii)填充第二应用程序以包括至少部分地基于第一物理位置识别信息的信息。
和与上述K1相关联的操作相比,在向用户提供建议,建议其打开具有第一物理位置相关信息的第二应用程序前,与L1相关联的操作不会从用户接收打开第二应用程序的请求。这样,通过提供与上述K1和L1相关联的操作(以及使用来自这些方法中的每一种的一些处理步骤的组合),电子设备能够提供高效的用户体验,允许用户在打开能够接受地理位置信息的应用程序之前或之后预测地使用位置数据。另外,对于L1,确定第二应用程序能够接受地理位置信息在打开第二应用程序之前进行,并且以这种方式,在L1的实施方案中,其中输入对应于打开应用程序切换用户界面的请求,仅在已知应用程序可以接受位置数据时,应用程序切换用户界面才显示请求,请求打开具有第一物理位置相关信息的应用程序(例如,第二应用程序)。
(L2)在L1的方法的一些实施方案中,第一输入对应于打开应用程序切换用户界面的请求(例如,第一输入是在电子设备的物理Home按钮上的双击)
(L3)在L2的方法的一些实施方案中,在应用程序切换用户界面内呈现示能表示。
(L4)在L3的方法的一些实施方案中,呈现示能表示包括:结合呈现示能表示,在应用程序切换用户界面内呈现正在电子设备上执行的应用程序的表示(例如,应用程序的应用程序内容快照);并且在位于应用程序表示下方的显示器区域中呈现示能表示。
(L5)在L1的方法的一些实施方案中,第一输入对应于打开电子设备 home屏幕的请求(例如,第一输入是在电子设备的物理Home按钮上的单次轻击)。
(L6)在L5的方法的一些实施方案中,在home屏幕的一部分上呈现示能表示。
(L7)在L1至L6中任一项的方法的一些实施方案中,该建议包括文本描述,该文本描述特定于与第二应用程序相关联的类型。
(L8)在L1至L7中任一项的方法的一些实施方案中,填充第二应用程序包括显示用户界面对象,该用户界面对象包括至少部分地基于第一物理位置识别信息的信息。
(L9)在L8的方法的一些实施方案中,该用户界面对象包括通知用户第一物理位置最近在第一应用程序中被查看的文本描述。
(L10)在L9的方法的一些实施方案中,该用户界面对象是在第二应用程序中显示的地图,并且填充第二应用程序包括填充地图以包括第一物理位置的标识符。
(L11)在L9至L10中任一项的方法的一些实施方案中,第二应用程序呈现虚拟键盘,并且该用户界面对象显示在虚拟键盘的上方。
(L12)在L1至L11中任一项的方法的一些实施方案中,识别第二应用程序能够接受地理位置信息包括以下中的一项或多项:(i)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定第二应用程序能够在地图上显示地理位置信息;(iii)确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。
(L13)在L12的方法的一些实施方案中,识别第二应用程序能够接受地理位置信息包括:确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。
(L14)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行L1至L13中任一项描述的方法。
(L15)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行L1至L13中任一项所述方法的装置。
(L16)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行L1至L13中任一项描述的方法。
(L17)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据L1至L13中任一项描述的方法显示的用户界面。
(L18)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行L1至L13中任一项描述的方法的装置。
(L19)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图52的显示单元5201)、触敏表面单元(例如,图52的触敏表面单元5203)和处理单元(例如,图52的处理单元5205)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图52示出了与电子设备5200集成的显示单元 5201和触敏表面单元5203,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图52的信息获取单元5207)、输入检测单元(例如,图52的输入检测单元5209)、应用程序识别单元(例如,图52的应用程序识别单元5211)、示能表示呈现单元(例如,图52 的示能表示呈现单元5213)、应用程序打开单元(例如,图52的应用程序打开单元5215)、应用程序填充单元(例如,图52的应用程序填充单元 5217)、应用程序切换用户界面呈现单元(例如,图52的应用程序切换用户界面呈现单元5219)、应用程序能力确定单元(例如,图52的应用程序能力确定单元5221)。处理单元(或其一个或多个部件,诸如单元5207至 5221)被配置为:获取用于识别用户在第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元5207)并且检测第一输入(例如,通过输入检测单元5209)。响应于检测到第一输入,处理单元被配置为:(i) 识别能够接受地理位置信息的第二应用程序(例如,通过应用程序识别单元5209),以及(ii)在显示器的至少一部分上呈现不同于第一应用程序的示能表示,并建议打开具有关于第一物理位置的信息的第二应用程序(例如,通过示能表示呈现单元5213)。处理单元还被配置为:在示能表示处检测第二输入(例如,通过输入检测单元5209)。响应于在示能表示处检测到第二输入,处理单元被配置为:(i)打开第二应用程序(例如,通过应用程序打开单元5215),以及(ii)填充第二应用程序以包括至少部分地基于第一物理位置识别信息的信息(例如,通过应用程序填充单元5217)。
(L20)在L19的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元5207至5221)被进一步配置为执行L2至L13中任一项描述的方法。
(M1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A 至D的任意一个配置)上执行方法。该方法包括:获取用于识别第一物理位置的信息,其中第一物理位置是用户在电子设备上正在执行的第一应用程序中查看的位置。该方法还包括:确定用户已经进入车辆。响应于确定用户已经进入车辆,向用户提供提示,提示用户将第一物理位置作为路线引导的目的地使用。响应于提供提示,该方法包括:从用户接收指令,指示用户将第一物理位置作为路线引导的目的地使用。该方法还包括:促进到第一物理位置的路线引导。这样,即可方便地向用户提供建议,建议用户基于他们之前在电子设备上的应用程序中查看的物理位置规划目的地的路线。
(M2)在M1的方法的一些实施方案中,该方法还包括:检测电子设备已经接收到消息,包括检测消息包括用于识别第二物理位置的信息;并且响应于该检测,向用户提供新的提示,提示用户将第二物理位置用作路线引导的新目的地。这样,用户还可以基于消息(例如,短信、电子邮件、语音信箱等)中包括的信息动态地添加路点或添加新目的地用于路线引导。
(M3)在M2的方法的一些实施方案中,该方法还包括:响应于从用户接收到将第二物理位置作为新目的地使用的指令,促进到第二物理位置的路线引导。
(M4)在M2至M3中任一项的方法的一些实施方案中,检测消息含有识别第二物理位置的信息包括:当电子设备上可用的虚拟助理正在通过和电子设备通信的音频系统将消息读出给用户时,执行检测。这样,当用户正在监听由音频系统读出的消息时(例如,通过经由电子设备可用的个人助理),电子设备检测用于识别第二物理位置的信息并使用检测到信息建议将第二物理位置用作新目的地。因此,用户在驾驶时不必将其注意力从道路上转移,而仍然能够动态地调整路线引导设置和目的地。
(M5)在M2至M4中任一项的方法的一些实施方案中,确定用户已经进入车辆包括检测电子设备已经建立与车辆的通信链路。
(M6)在M2至M5中任一项的方法的一些实施方案中,促进路线引导包括通过电子设备的显示器提供路线引导。
(M7)在M2至M5中任一项的方法的一些实施方案中,促进路线引导包括向车辆发送识别第一物理位置的信息。
(M8)在M2至M7中任一项的方法的一些实施方案中,促进路线引导包括通过与电子设备通信的音频系统提供路线引导(例如,汽车扬声器或设备自身的内部扬声器)。
(M9)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行M1至M8中任一项描述的方法。
(M10)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行M1至M8中任一项所述方法的装置。
(M11)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行M1至M8中任一项描述的方法。
(M12)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据M1至M8中任一项描述的方法显示的用户界面。
(M13)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行M1至M8中任一项描述的方法的装置。
(M14)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图53的显示单元5301)、触敏表面单元(例如,图53的触敏表面单元5303)和处理单元(例如,图53的处理单元5305)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图53示出了与电子设备5300集成的显示单元5301和触敏表面单元5303,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图53的信息获取单元5307)、车辆进入确定单元(例如,图53的车辆进入确定单元5309)、提示提供单元(例如,图53的提示提供单元5311)、指令接收单元(例如,图53的指令接收单元5313)、路线引导促进单元(例如,图53的路线引导促进单元 5315)和消息检测单元(例如,图53的消息检测单元5317)。处理单元 (或其一个或多个部件,诸如单元5307至5317)被配置为:获取用于识别用户在所述电子设备上正在执行的所述第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元5307)。处理单元还被配置为:确定用户已经进入车辆(例如,通过车辆进入确定单元5309)。响应于确定用户已经进入车辆,处理单元被配置为:向用户提供提示,提示用户将第一物理位置作为路线引导的目的地使用(例如,通过提示提供单元5311)。响应于提供该提示,从用户接收指令,指示用户将第一物理位置作为路线引导的目的地使用(例如,通过指令接收单元5313)。处理单元另被配置为:促进到第一物理位置的路线引导(例如,通过路线引导促进单元 5307)。
(M15)在M14的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元5307至5317)被进一步配置为执行M2至M8中任一项描述的方法。
(N1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A 至D的任意一个配置)上执行方法。该方法包括:在第一应用程序中呈现内容。该方法还包括:接收来自用户的打开不同于第一应用程序的第二应用程序的请求,第二应用程序包括输入接收字段。响应于接收到该请求,该方法包括:呈现具有输入接收字段的第二应用程序。在输入接收字段处接收任何用户输入之前,该方法包括:提供可选用户界面对象以允许用户将内容的至少一部分粘贴到输入接收字段。响应于检测到可选用户界面对象的选择,该方法包括:将该部分内容粘贴到输入接收字段中。这样,在先前于第一动作中查看的基于第二应用程序的内容中向用户提供主动粘贴动作(例如,这使得用户能够将内容粘贴到第二应用程序中,而不必重新打开第一应用程序、执行明确的复制操作、重新打开第二应用程序,然后明确请求将复制的内容粘贴到第二应用程序中)。
(N2)根据N1的方法的一些实施方案,在提供可选用户界面对象前,该方法包括:将输入接收字段识别为能够接受内容该部分的字段。
(N3)根据N2的方法的一些实施方案,响应于检测到输入接收字段的选择,将输入接收字段识别为能够接受内容该部分的字段。
(N4)根据N1至N3中任一项的方法的一些实施方案,该部分内容对应于图像。
(N5)根据N1至N3中任一项的方法的一些实施方案,该部分内容对应于文本内容。
(N6)根据N1至N3中任一项的方法的一些实施方案,该部分内容对应于文本内容和图像。
(N7)根据N1至N6中任一项的方法的一些实施方案,第一应用程序是网页浏览应用程序,第二应用程序是即时消息应用程序。
(N8)根据N1至N6中任一项的方法的一些实施方案,第一应用程序是照片浏览应用程序,第二应用程序是即时消息应用程序。
(N9)根据N1至N8中任一项的方法的一些实施方案,该方法包括:在接收打开第二应用程序的请求前,接收至少复制内容的所述部分的请求。
(N10)根据N1至N9中任一项的方法的一些实施方案,可选用户界面对象与最近在第一应用程序中查看内容部分的指示一起显示。这样,向用户提供关于为什么提出粘贴建议的清楚指示。
(N11)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行N1至N10中任一项描述的方法。
(N12)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行N1至N10中任一项所述方法的装置。
(N13)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行N1至N10中任一项描述的方法。
(N14)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据N1至N10中任一项描述的方法显示的用户界面。
(N15)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行N1至N10中任一项描述的方法的装置。
(N16)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图54的显示单元5401)、触敏表面单元(例如,图54的触敏表面单元5403)和处理单元(例如,图54的处理单元5405)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图54示出了与电子设备5400集成的显示单元 5401和触敏表面单元5403,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图54的呈现单元5407)、请求接收单元(例如,图54的请求接收单元5409)、用户界面对象提供单元(例如,图54的用户界面对象提供单元5411)、主动粘贴单元(例如,图54的主动粘贴单元5413)和能力确定单元(例如,图54的能力确定单元 5415)。处理单元(或其一个或多个部件,诸如单元5407至5415)被配置为:在第一应用程序中呈现内容(例如,通过呈现单元5407和/或显示单元 5401);从用户接收打开不同于第一应用程序的第二应用程序的请求(例如,通过请求接收单元和/或触敏表面单元5403),第二应用程序包括输入接收字段;响应于接收到请求,呈现具有输入接收字段的第二应用程序 (例如,通过呈现单元5407和/或显示单元5401);在输入接收字段处接收到任何用户输入之前,提供可选用户界面对象以允许用户将内容的至少一部分粘贴到输入接收字段中(例如,通过用户界面对象提供单元5411和/ 或显示单元5401);并且响应于检测到可选用户界面对象的选择,将该部分内容粘贴到输入接收字段中(例如,通过主动粘贴单元5413)。
(N17)在N16的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元5407至5415)被进一步配置为执行N1至N10中任一项描述的方法。
(O1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A 至D的任意一个配置)上执行方法。该方法包括:在显示器上呈现与应用程序相关联的文本内容。该方法还包括:确定文本内容的一部分与以下项有关:(i)位置,(ii)联系人,或(iii)事件。在确定文本内容的该部分与某个位置相关时,该方法包括:从电子设备上的位置传感器获取位置信息,并准备获取的位置信息以将其显示为预测的内容项。在确定文本内容的该部分与联系人相关时,该方法包括:在电子设备上进行搜索,搜索与文本内容的该部分相关的联系人信息,并准备与通过搜索检索到的至少一个联系人相关联的信息,以显示为预测的内容项。在确定文本内容的该部分与事件相关时,该方法包括:在电子设备上进行新的搜索,搜索与文本内容的该部分相关的事件信息,并准备至少部分地基于至少一个事件的信息(通过新搜索检索得到),以显示为预测的内容项。该方法还包括:在应用程序内显示包括预测内容项的示能表示;通过触敏表面检测示能表示的选择;并且响应于检测到选择,在与文本内容相邻的显示器上显示与预测内容项相关联的信息。这样,即可方便地向用户提供预测的内容项,这些内容项可用于完成陈述(或响应于其他用户例如在即时消息应用程序中提出的问题),而不必键入任何内容,并且不必浏览电子设备上可用的信息以查找所需的信息。例如,电子设备提供电话号码、当前位置、新事件的安排功能、与现有事件相关联的细节,所有这些都不需要任何显式请求或用户进行额外工作,从而节省了时间,同时仍然确保有效地将所需信息提供给用户。
(O2)根据O1的方法的一些实施方案,文本内容的该部分对应于最近在应用程序中呈现的文本内容。
(O3)根据O1至O2中任一项的方法的一些实施方案,该应用程序是即时消息应用程序,并且文本内容的该部分是在即时消息应用程序中接收到的来自不同于电子设备的远程设备的远程用户的问题。
(O4)根据O1至O2中任一项的方法的一些实施方案,文本内容的该部分是由电子设备用户在应用程序内的输入接收字段提供的输入。
(O5)根据O1的方法的一些实施方案,响应于用户输入选择包括文本内容该部分的用户界面对象,识别文本内容的该部分。
(O6)根据O5的方法的一些实施方案,该应用程序是即时消息应用程序,并且用户界面对象是在即时消息应用程序内显示的对话中的消息气泡。
(O7)根据O5至O6中任一项的方法的一些实施方案,该方法还包括:检测第二用户界面对象的选择;响应于检测到选择,(i)停止显示带有预测内容项的示能表示,并确定与第二用户界面对象相关联的文本内容涉及位置、联系人或事件;并且根据确定,在应用程序内显示新的预测内容项。这样,用户能够轻易地返回即时消息对话中以选择先前接收到的消息,并且仍然向其提供适当的预测内容项。
(O8)根据O1至O7中任一项的方法的一些实施方案,该示能表示显示在应用程序内和虚拟键盘相邻的输入接收字段中。
(O9)根据O8中任一项的方法的一些实施方案,输入接收字段是显示虚拟键盘上接收到的键入输入的字段。
(O10)根据O1至O9中任一项的方法的一些实施方案,所述确定包括:在文本内容被应用程序接收时对其进行解析,以检测已知与联系人、事件和/或位置有关的存储的模式。
(O11)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行O1至O10中任一项描述的方法。
(O12)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行O1至O10中任一项所述方法的装置。
(O13)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行O1至O10中任一项描述的方法。
(O14)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据O1至O10中任一项描述的方法显示的用户界面。
(O15)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行O1至O10中任一项描述的方法的装置。
(O16)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图55的显示单元5501)、触敏表面单元(例如,图55的触敏表面单元5503)和处理单元(例如,图55的处理单元5505)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图55示出了与电子设备5500集成的显示单元 5501和触敏表面单元5503,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图55的呈现单元5507)、确定单元 (例如,图55的确定单元5509)、获取单元(例如,图55的获取单元 5511)、搜索执行单元(例如,图55的搜索执行单元5513)、信息准备单元(例如,图55的信息准备单元5515)、示能表示显示单元(例如,图 55的示能表示显示单元5517)和检测单元(例如,图55的检测单元 5519)。处理单元(或其一个或多个部件,诸如单元5507至5519)被配置为:在显示器上呈现与应用程序相关联的文本内容(例如,通过呈现单元 5507和/或显示单元5501);确定文本内容的一部分与以下项有关:(i)位置,(ii)联系人,或(iii)事件(例如,通过确定单元5509);在确定文本内容的该部分与位置相关时,从电子设备上的位置传感器获取位置信息(例如,通过获取单元5511),并且准备所获取的位置信息以显示为预测的内容项(例如,通过信息准备单元5515);在确定文本内容的该部分与联系人相关时,在电子设备上进行搜索,搜索与文本内容的该部分相关的联系人信息(例如,通过搜索执行单元5513),并且准备与至少一个通过搜索检索到的联系人相关联的信息以显示为预测的内容项(例如,通过信息准备单元5515);在确定文本内容的该部分与事件相关时,在电子设备上执行新的搜索,搜索与文本内容的该部分相关的事件信息(例如,通过搜索执行单元5513),并且准备至少部分地基于通过搜索检索到的至少一个事件的信息,以显示为预测的内容项(例如,通过信息准备单元5515);在应用程序中显示包括预测内容项的示能表示(例如,通过示能表示显示单元5517和/或显示单元5501);通过触敏表面检测示能表示的选择(例如,通过检测单元5519);并且响应于检测到选择,在显示器上与文本内容相邻处显示与预测内容项相关联的信息(例如,通过呈现单元5507和/或显示单元5501)。
(O17)在O16的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元5507至5519)被进一步配置为执行O1至O10中任一项描述的方法。
如上所述(并在以下进行详述),本发明技术的一个方面在于采集和使用得自各种来源的数据(例如,基于语音通信期间提供的语音),以改进向用户递送其可能感兴趣的内容。本公开预期,在一些实例中,这些采集到的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。此类个人信息数据可包括人口数据、基于位置的数据、电话号码、电子邮件地址、家庭地址或任何其他识别信息。
本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,该个人信息数据可用于递送用户较感兴趣的目标内容。因此,使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此外,本公开还预期个人信息数据有益于用户的其他用途。
本公开还预期负责此类个人信息数据的收集、分析、公开、传输、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此类实体应实施并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。另外,此类收集应仅在用户知情同意之后进行。此外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保有权访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,此类实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。
不管前述情况如何,本公开还设想用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开设想可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就监视语音通信或监视用户在应用程序中执行的动作而言,本发明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还设想各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过基于非个人信息数据或绝对最低限度的个人信息,诸如与用户相关的设备所请求的内容、对内容传送服务可用的其他非个人信息或公开可用信息来推断偏好,从而选择内容并传送给用户。
需注意,上述各种实施方案可与本文所述任何其他实施方案相结合。本说明书中描述的特征和优点并不全面,具体来说,根据附图、说明书和权利要求书,许多另外的特征和优点对本领域的普通技术人员将是显而易见的。此外,应当指出,出于可读性和指导性目的,在原则上选择了本说明书中使用的语言,并且可以不这样选择以描绘或界定本发明的主题。
附图说明
为了更好地理解各种所述实施方案,应结合以下附图来参考下面的具体实施方式部分,其中在整个附图中类似的附图标记是指对应的部件。
图1A是根据一些实施方案的带有触敏显示器的计算设备的高级框图。
图1B是根据一些实施方案的用于事件处理的示例性部件的框图。
图1C是根据一些实施方案的具有触敏显示器的便携式多功能设备的示意图。
图1D是用于示出根据一些实施方案的计算设备的示意图,该计算设备具有与显示器分开的触敏表面。
图1E示出了与显示器和触敏表面通信的示例性电子设备。
图2是根据一些实施方案的触摸屏的示意图,其用于示出应用程序的菜单的用户界面。
图3A至图3B是示出根据一些实施方案的用于存储应用程序使用数据的数据结构的框图。
图4A至图4B是示出根据一些实施方案的用于存储触发条件的数据结构的框图。
图5是示出根据一些实施方案的触发条件建立系统示例的框图。
图6A至图6B是根据一些实施方案用于在具有触敏显示器的电子设备上主动识别和显示(例如,显示以供用户选择)相关内容的方法的流程图表示。
图7A至图7B是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动识别和显示相关内容的用户界面。
图8A至图8B是根据一些实施方案用于在具有触敏显示器的电子设备上主动识别和显示(例如,显示以供用户选择)相关内容的方法的流程图表示。
图9A至图9D是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动识别和显示相关内容的用户界面。
图10A至图10C是根据一些实施方案基于当前电子设备上显示的内容主动建议搜索查询的方法的流程图表示。
图11A至图11J是根据一些实施方案的触敏显示器的示意图,其用于示出基于触敏显示器上当前显示的内容主动建议搜索查询的用户界面。
图12是根据一些实施方案基于启发式过程进入搜索模式的方法的流程图表示。
图13A至图13B是根据一些实施方案的触敏显示器的示意图,其用于示出基于启发式过程进入搜索模式的用户界面。
图14是根据一些实施方案在具有触敏显示器的电子设备上主动提供车辆位置的方法的流程图表示。
图15A至图15B是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动提供车辆位置的用户界面。
图16A至图16B是根据一些实施方案主动提供用于搜索查询的附近兴趣点(POI)信息的方法的流程图表示。
图17A至图17E是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动提供用于搜索查询的附近兴趣点(POI)信息的用户界面。
图18A至图18B是根据一些实施方案从语音通信中提取内容项并与提取的内容项进行交互的方法的流程图表示。
图19A至图19F是根据一些实施方案的触敏显示器的示意图,其用于示出旨在显示从语音通信中提取的内容项并与其进行交互的用户界面。
图20是根据一些实施方案,确定语音通信包括识别物理位置的语音并使用有关物理位置的信息填充应用程序的方法的流程图表示。
图21A至图21B是根据一些实施方案的触敏显示器的示意图,其用于示出旨在确定语音通信包括识别物理位置的语音并使用有关物理位置的信息填充应用程序的用户界面。
图22A至图22B是根据一些实施方案主动建议在即时消息应用程序中使用的物理位置的方法的流程图表示。
图22C是根据一些实施方案主动建议与位置、事件或联系人相关的信息的方法的流程图表示。
图23A至图23O是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动建议与位置、事件或联系人相关的信息的用户界面(例如,为便于用户选择并包括在即时消息应用程序中)。
图24A至图24B是根据一些实施方案,使用用户先前在另一个应用程序中查看的信息主动填充某个应用程序的方法的流程图表示。
图25A至图25J是根据一些实施方案的触敏显示器的示意图,其用于示出旨在使用用户先前在另一个应用程序中查看的信息主动填充某个应用程序的用户界面(例如,使用用户在检查应用程序中查看的关于位置的信息填充顺风车应用程序)。
图26A至图26B是根据一些实施方案,主动建议将用户先前在第一应用程序中查看的建议信息用于第二应用程序的流程图表示。
图27是根据一些实施方案,主动建议物理位置以用作车辆中路线引导的目的地的流程图表示。
图28是根据一些实施方案的触敏显示器的示意图,用于示出旨在主动建议物理位置以用作车辆中路线引导的目的地的用户界面。
图29是根据一些实施方案主动建议粘贴动作的方法的流程图表示。
图30A至图30D是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动建议粘贴动作的用户界面。
图31_1示出了根据一些实施方案被配置为执行移动设备的动态调节的移动设备。
图31_2示出了根据一些实施方案用于调用启发式过程的示例性过程。
图31_3示出了根据一些实施方案使用启发式过程调节移动设备设置的过程。
图31_4示出了根据一些实施方案用于执行后台获取应用程序更新的示例性系统。
图31_5示出了根据一些实施方案用于确定移动设备100上的应用程序的用户调用概率的对等预报。
图31_6是根据一些实施方案用于预测地启动应用程序以执行后台更新的示例性过程的流程图。
图31_7是根据一些实施方案用于确定何时启动移动设备上的应用程序的示例性过程的流程图。
图31_8是根据一些实施方案示出趋势表中条目的状态转变的流程图。
图31_9是示出根据一些实施方案用于向移动设备提供推送通知的系统的框图。
图31_10是根据一些实施方案用于在推送通知服务器处执行非唤醒推送的示例性过程的流程图。
图31_11是根据一些实施方案用于响应于低优先级推送通知来执行应用程序后台更新的示例性过程的流程图。
图31_12是根据一些实施方案用于响应于高优先级推送通知来执行应用程序后台更新的示例性过程的流程图。
图31_13是根据一些实施方案用于在移动设备上执行后台下载和/或数据上载的示例性系统的框图。
图31_14是根据一些实施方案用于执行后台下载和上载的示例性过程的流程图。
图31_15示出了根据一些实施方案用于启用和/或禁用移动设备上的应用程序后台更新的示例性图形用户界面(GUI)。
图31_16示出了根据一些实施方案用于在对等设备之间共享数据的示例性系统。
图31_17示出了根据一些实施方案用于在对等设备之间共享数据的示例性过程。
图32_1是根据一些实施方案,基于输入查询前缀返回搜索结果的系统的一个实施方案的框图。
图32_2是根据一些实施方案,基于输入查询前缀确定查询完成项和相关结果的过程的一个实施方案的流程图。
图32_3是根据一些实施方案的聚合器和多个搜索域的一个实施方案的框图。
图32_4是根据一些实施方案的查询完成项搜索域的一个实施方案的图示。
图32_5是地图搜索域的一个实施方案的图示。图32_6是根据一些实施方案用于确定来自多个搜索域的查询完成项的过程的一个实施方案的流程图。
图32_7是根据一些实施方案的确定相关结果的过程的一个实施方案的流程图,所述结果为来自确定查询完成项的多个搜索域上的结果。
图32_8是根据一些实施方案将用户反馈并入反馈搜索索引的系统的一个实施方案的框图。
图32_9是根据一些实施方案将用户反馈并入引用搜索索引的过程的一个实施方案的流程图。
图32_10是根据一些实施方案在用户搜索会话期间收集用户反馈的过程的一个实施方案的流程图。
图32_11是根据一些实施方案将用户反馈并入反馈索引的过程的一个实施方案的流程图。
图32_12是根据一些实施方案使用用户反馈更新结果高速缓存的过程的一个实施方案的流程图。
图32_13是根据一些实施方案使用表征查询完成项来执行多域搜索的联合器的一个实施方案的框图。
图32_14是根据一些实施方案使用词汇服务来确定相关结果的过程的一个实施方案的流程图。
图32_15是根据一些实施方案用于表征查询完成项的过程的一个实施方案的流程图。
图32_16是根据一些实施方案的完成项模块的一个实施方案的框图,该完成项模块用于确定来自多个搜索域的查询完成项。
图32_17是根据一些实施方案的结果模块的一个实施方案的框图,该模块用于确定来自确定查询完成项的多个搜索域上的相关结果。
图32_18是根据一些实施方案的收集反馈模块的一个实施方案的框图,该模块用于在用户搜索会话期间收集用户反馈。
图32_19是根据一些实施方案的过程反馈模块的一个实施方案的框图,该模块用于将用户反馈并入反馈索引。
图32_20是根据一些实施方案的更新查询结果模块的一个实施方案的框图,该模块用于使用用户反馈来更新结果高速缓存。
图32_21是根据一些实施方案的过程反馈模块的一个实施方案的框图,该模块用于将用户反馈并入反馈索引。
图32_22是根据一些实施方案的更新查询结果模块的一个实施方案的框图,该模块用于使用用户反馈来更新结果高速缓存。
图33_1以框图的形式示出了如本领域中所公知的计算设备上的本地搜索子系统和远程搜索子系统。
图33_2以框图形式示出了根据一些实施方案具有本地学习能力的本地搜索子系统,本地学习能力可以用于改进从计算设备上的远程搜索应用程序返回的结果。
图33_3以框图形式示出了根据一些实施方案,利用本地搜索查询、本地结果和基于本地结果的本地反馈在本地学习查询特征的方法。
图33_4以框图形式示出了根据一些实施方案,利用从本地搜索查询和远程搜索查询的两者返回的搜索结果以及本地和远程搜索查询结果两者的本地反馈在本地学习查询特征的方法。
图33_5以框图形式示出了根据一些实施方案学习查询特征的方法,该查询特征是响应于发送至远程服务的查询,由远程服务传递到本地服务的查询特征。
图33_6以框图形式示出了根据一些实施方案接收或确定新特征、在本地训练特征以及利用特征的方法。
图33_7示出了根据一些实施方案可在本发明的一些实施方案中使用的软件栈的示例性实施方案。
图34_5A示出了根据一些实施方案的用于建议联系人的示例性数据架构的框图。
图34_5B示出了根据一些实施方案的用于建议日历事件的示例性数据架构的框图。
图34_6A至图34_6G示出了根据一些实施方案的用于提供建议联系人和日历事件的示例性用户界面。图1A至图1B、图2和图3描述了用于执行本部分中描述的用于建议联系人和事件信息的技术的示例性设备。图 34_6A至图34_6G示出了用于建议联系人和事件信息的示例性用户界面,并且这些图中的用户界面还用于说明以下描述的过程,包括图34_7A至图 34_13中的过程。
图34_7A和图34_7B示出了根据一些实施方案的用于生成建议联系人的示例性过程的流程图。
图34_8A和图34_8B示出了根据一些实施方案的使用建议的联系人信息项目更新现有联系人的示例性过程的流程图。
图34_9A和图34_9B示出了根据一些实施方案的用于显示具有建议联系人信息的联系人的示例性过程的流程图。
图34_10示出了根据一些实施方案的建议联系人信息与消息一起显示的示例性过程的流程图。
图34_11A和图34_11B示出了根据一些实施方案的用于生成建议日历事件的示例性过程的流程图。
图34_12示出了根据一些实施方案的建议事件信息与消息一起显示的示例性过程的流程图。
图34_13示出了根据一些实施方案的多个建议联系人信息或事件信息与消息一起显示的示例性过程的流程图。
图34_14是根据一些实施方案的电子设备的功能框图。
图34_15是根据一些实施方案的电子设备的功能框图。
图35_1是根据一些实施方案用于基于检测到的事件建议应用程序的方法35_100的流程图。
图35_2示出了根据一些实施方案的分段过程35_200。
图35_3示出了根据一些实施方案可生成的决策树35_300。
图35_4是根据一些实施方案的用于基于事件向计算设备的用户建议应用程序的方法35_400的流程图。
图35_5A至图35_5D示出了根据一些实施方案的各种正确数字和不正确数字的示例性二项分布的曲线图。
图35_6A和图35_6B示出了根据一些实施方案由分段产生的父模型和子模型。
图35_7示出了根据一些实施方案用于向用户提供与一个或多个应用程序交互的用户界面的示例性架构35_700。
图36_1是根据一些实施方案基于触发事件来识别应用程序的方法的流程图。
图36_2示出了根据一些实施方案用于确定触发事件的系统的框图。
图36_3示出了根据一些实施方案基于触发事件为用户识别应用程序的系统的框图。
图36_4示出了根据一些实施方案用于识别具有多个预测模型的应用程序的系统的框图。
图36_5是根据一些实施方案基于触发事件并通过设备识别应用程序的方法的流程图。
图36_6是根据一些实施方案的带有音乐应用程序用户界面的设备的简化图。
图36_7A和图36_7B是根据一些实施方案的用于从用户界面移除所识别的应用程序的方法的流程图。
图37_1是根据一些实施方案的方法100的流程图,该方法用于基于检测到的事件来建议要联系的接收人。
图37_2示出了根据一些实施方案用于确定触发事件的系统的框图。
图37_3示出了根据一些实施方案基于触发事件识别要联系的接收人的系统的框图。
图37_4示出了根据一些实施方案在电子邮件应用程序的用户界面中建议要联系的接收人的示例。
图37_5示出了根据一些实施方案在搜索应用程序的用户界面中建议要联系的接收人的示例。
图37_6是根据一些实施方案的方法37_600的流程图,该方法用于基于事件向计算设备的用户建议接收人。
图37_7示出了根据一些实施方案的建议要联系的接收人的示例性数据流。
图37_8示出了根据一些实施方案的交互模块的框图。
图37_9示出了根据一些实施方案的示例性架构37_900,该架构用于向用户提供用户界面以建议要联系的接收人。
图38_1示出了根据一些实施方案被配置为实现本文所述的各种技术的移动计算设备的不同部件的框图。
图38_2示出了根据一些实施方案由图38_1的应用程序预测引擎执行的方法。
图38_3示出了根据一些实施方案由图1的搜索应用程序执行的方法。
图38_4示出了根据一些实施方案的图38_1的搜索应用程序的示例性用户界面的概念图。
图39_1示出了根据一些实施方案被配置为实现本文所述的各种技术的移动计算设备的不同部件的框图。
图39_2示出了根据一些实施方案,图39_1(或图1A)中示出的移动计算设备的特定部件的更详细视图的框图。
图39_3A示出了根据一些实施方案的用于预测引擎高级初始化和运行的方法。
图39_3B示出了根据一些实施方案的用于在预测引擎处同步提供预测的方法。
图39_3C示出了根据一些实施方案的用于在预测引擎处异步提供预测的方法。
图39_4A示出了根据一些实施方案,消费者应用程序请求同步接收预测的方法。
图39_4B示出了根据一些实施方案,消费者应用程序注册以异步接收预测的方法。
图39_5A示出了根据一些实施方案,用于在预测引擎中心管理预测引擎注册的方法。
图39_5B示出了根据一些实施方案,用于在预测引擎中心向消费者应用程序同步提供预测的方法。
图39_5C示出了根据一些实施方案,用于在预测引擎中心向消费者应用程序异步提供预测的方法。
图40_1是根据一些实施方案,用于监视、预测和通知上下文客户端计算设备的当前上下文中的变化的示例性系统的框图。
图40_2A示出了根据一些实施方案的可构成当前上下文的上下文项的示例。
图40_2B示出了根据一些实施方案的添加到当前上下文的新上下文项的示例。
图40_3示出了根据一些实施方案的示例性回调谓词数据库。
图40_4是示出根据一些实施方案的与上下文项相关联的示例性状态随时间变化的图。
图40_5是示出根据一些实施方案的与上下文项相关联的示例性事件流的图。
图40_6示出了根据一些实施方案的示例性历史事件流数据库。
图40_7是根据一些实施方案的用于向请求客户端提供上下文回调通知的示例性系统的框图。
图40_8A是根据一些实施方案的示例性系统的框图,示出了重启已被终止的请求客户端。
图40_8B是根据一些实施方案的示例性系统的框图,示出了重启已被终止的请求客户端。
图40_9A是根据一些实施方案的示例性系统的框图,示出了重启已被终止的上下文守护进程。
图40_9B是根据一些实施方案的示例性系统的框图,示出了重启已被终止的上下文守护进程。
图40_10A是根据一些实施方案的示例性系统的框图,示出了重启已被终止的上下文守护进程和请求客户端。
图40_10B是根据一些实施方案的示例性系统的框图,示出了重启已被终止的上下文守护进程和请求客户端。
图40_11是根据一些实施方案的示例性系统的框图,该系统被配置为基于启动守护进程接收的设备状态信息重启客户端和/或上下文守护进程。
图40_12A是根据一些实施方案的示例性系统的框图,示出了使用启动守护进程重启上下文守护进程。
图40_12B是根据一些实施方案的示例性系统的框图,示出了使用启动守护进程重启上下文守护进程。
图40_13A是根据一些实施方案的示例性系统的框图,示出了使用启动守护进程重启请求客户端。
图40_13B是根据一些实施方案的示例性系统的框图,示出了使用启动守护进程重启请求客户端。
图40_14是示出根据一些实施方案用于预测未来事件的时隙方式平均的示例的图。
图40_15描绘了根据一些实施方案的示出时隙加权的示例性图。
图40_16A是示出根据一些实施方案用于预测未来上下文的示例性方法的图。
图40_16B是示出根据一些实施方案将时隙方式概率转换为概率曲线的示例性方法的图。
图40_17示出了根据一些实施方案包括预测的未来事件的示例性事件流。
图40_18是根据一些实施方案用于通知客户端计算设备上的上下文变化的示例性过程的流程图。
图40_19是根据一些实施方案用于重启上下文守护进程以服务回调请求的示例性过程的流程图。
图40_20是根据一些实施方案用于重启回调客户端以接收回调通知的示例性过程的流程图。
图40_21是根据一些实施方案用于基于历史上下文信息预测未来事件的示例性过程的流程图。
图40_22是根据一些实施方案用于服务睡眠上下文回调请求的示例性过程的流程图。
图41_1是索引应用程序状态以在本地设备搜索索引中使用的系统的一个实施方案的框图。
图41_2是使用设备上应用程序状态搜索索引搜索应用程序状态的系统的一个实施方案的框图。
图41_3是在其他查询结果之间显示应用程序状态查询结果的用户界面的实施方案的框图。
图41_4A是用于索引从设备上多个不同应用程序接收的应用程序状态的过程的一个实施方案的流程图。
图41_4B是使用应用程序状态索引确定查询的查询结果的过程的一个实施方案的流程图。
图41_5是将应用程序状态作为查询结果的一部分接收和呈现的过程的一个实施方案的流程图。
图41_6是索引应用程序状态以在远程搜索索引中使用的系统的一个实施方案的框图。
图41_7是使用远程应用程序状态搜索索引搜索应用程序状态的系统的一个实施方案的框图。
图41_8是将应用程序状态添加至应用程序状态索引的过程的一个实施方案的流程图。
图41_9是将应用程序状态导出至应用程序状态索引服务的过程的一个实施方案的流程图。
图41_10是使用应用程序状态索引执行查询搜索的过程的一个实施方案的流程图。
图41_11是将应用程序状态作为查询结果的一部分接收和呈现的过程的一个实施方案的流程图。
图41_12是索引应用程序状态视图以在远程搜索索引中使用的系统的一个实施方案的框图。
图41_13是应用程序视图的一个实施方案的框图。
图41_14是使用应用程序状态生成应用程序状态视图的过程的一个实施方案的流程图。
图41_15是将应用程序状态(包括应用程序状态视图)作为查询结果的一部分接收和呈现的过程的一个实施方案的流程图。
图42至图55为根据一些实施方案的电子设备的功能框图。
具体实施方式
如上所述并在以下进行详述,需要具有更快、更有效的方法和界面的电子设备,以用于快速访问应用程序和这些应用程序内的所需功能。具体地讲,需要一种设备,该设备能够帮助用户避免重复性任务并在用户明确请求相关信息前识别和提供该信息来提供主动协助。另外,需要在特定的时间段(例如,每天早晨醒来之后访问日历应用程序)、特定的地点(例如,在健身房访问音乐应用程序)等快速访问应用程序和应用程序中的所需功能。本文公开了用于解决这些需求的新颖的方法和界面,并为用户提供了在这些特定地点、时间段等快速访问这些应用程序和应用程序中的功能的方法。此类方法和界面任选地补充或替代了访问应用程序的常规方法。此类方法和界面减少对用户所造成的认知负担,并且产生更有效的人机界面。对于电池驱动设备,此类方法和界面可节省用电并且增加两次电池充电之间的时间。此外,这种方法和界面有助于通过要求较少数量的触摸输入延长触敏显示器的寿命(例如,本文公开的方法和界面无需用户输入即可主动提供所需的某条信息,而不必连续且无目的地轻击触敏显示器来定位该条信息)。
下面,图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是根据一些实施方案,主动建议将用户先前在第一应用程序中查看的建议信息用于第二应用程序的流程图表示。图25A至图 25J用于示出图26A至图26B中的方法和/或过程。
图27是根据一些实施方案,主动建议物理位置以用作车辆中路线引导的目的地的流程图表示。图28是根据一些实施方案的触敏显示器的示意图,用于示出旨在主动建议物理位置以用作车辆中路线引导的目的地的用户界面。图28用于示出图27的方法和/或过程。
图29是根据一些实施方案主动建议粘贴动作的方法的流程图表示。图 30A至图30D是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动建议粘贴动作的用户界面。图30A至图30D用于示出图29的方法和/或过程。
“实施方案附加描述”部分中第1至11部分描述了更多细节,用以补充参照图1A至图30D提供的细节。
现在将详细地参考实施方案,这些实施方案的示例在附图中示出。下面的详细描述中示出许多具体细节,以便提供对各种所描述的实施方案的充分理解。但是,对本领域的普通技术人员将显而易见的是,各种所描述的实施方案可以在没有这些具体细节的情况下被实践。在其他情况下,没有详细地描述众所周知的方法、过程、部件、电路和网络,从而不会不必要地使实施方案的各个方面晦涩难懂。
还将理解的是,虽然在一些情况下,术语“第一”、“第二”等在本文中用于描述各种元件,但是这些元件不应受到这些术语限制。这些术语只是用于将一个元件与另一元件区分开。例如,第一接触可被命名为第二接触,并且类似地,第二接触可被命名为第一接触,而不脱离各种所描述的实施方案的范围。第一接触和第二接触两者都是接触,但是它们不是同一接触。
在本文中对各种所描述的实施方案的描述中所使用的术语只是为了描述特定实施方案的目的,而并非旨在进行限制。如在对各种所述实施方案中的描述和所附权利要求书中所使用的那样,单数形式“一个”(“a”, “an”)和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes”“including”“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/ 或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。
如本文中所使用,根据上下文,术语“如果”任选地被解释为意思是“当……时”或“在……时”或“响应于确定”或“响应于检测”。类似地,根据上下文,短语“如果确定……”或“如果检测到[所陈述的条件或事件]”任选地被解释为意思是“在确定……时”或“响应于确定……”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
本文中的公开内容可互换地涉及检测在触敏显示器的特定用户界面元素或特定部分上、特定用户界面元素或特定部分处、特定用户界面元素或特定部分的上方、特定用户界面元素或特定部分的顶部、或基本上在该特定用户界面元素或特定部分内的触摸输入。如本文所使用,在特定用户界面元素“处”检测到的触摸输入还能够在相同用户界面元素“上”、“上方”、“顶部”或“基本上在这个相同用户界面元素内”检测到。在一些实施方案中并且如下更详细地描述,用于检测触摸输入的期望敏感度水平是由电子设备的用户进行配置的(例如,用户可以决定(并且配置要操作的电子设备)触摸输入应当仅在触摸输入完全在用户界面元素内时检测到)。
本文描述了电子设备、此类设备的用户界面和使用此类设备的相关联的过程的实施方案。在一些实施方案中,该设备是还包含其他功能诸如 PDA和/或音乐播放器功能的便携式通信设备,诸如移动电话。便携式多功能设备的示例性实施方案包括但不限于来自Apple Inc(Cupertino, California)的IPOD设备。任选地使用其他便携式电子设备,诸如具有触敏表面(例如,触摸屏显示器和/或触控板) 的膝上型电脑或平板电脑。还应当理解的是,在一些实施方案中,该设备并非便携式通信设备,而是具有触敏表面(例如,触摸屏显示器和/或触控板)的台式计算机。
在下面的讨论中,描述了一种包括显示器和触敏表面的电子设备。然而,应当理解,该电子设备任选地包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操纵杆。
该设备通常支持各种应用程序,诸如以下应用程序中的一个或多个应用程序:绘图应用程序、呈现应用程序、文字处理应用程序、网站创建应用程序、盘编辑应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息应用程序、健康/ 健身应用程序、照片管理应用程序、数字相机应用程序、数字摄像机应用程序、web浏览应用程序、数字音乐播放器应用程序、和/或数字视频播放器应用程序。
在设备上执行的各种应用程序任选地使用至少一个共用的物理用户界面设备,诸如触敏表面。触敏表面的一种或多种功能以及被显示在设备上的对应信息任选地对于不同应用程序被调整和/或变化,和/或在相应应用程序内被调整和/或变化。这样,设备的通用物理架构(诸如触敏表面)任选地利用对于用户而言直观且清楚的用户界面来支持各种应用程序。
现在关注具有触敏显示器的便携式电子设备的实施方案。图1A是示出根据一些实施方案的具有触敏显示器112的便携式多功能设备100(在本文中也可互动换地称电子设备100或是设备100)的框图。触敏显示器112 有时为了方便被叫做“触摸屏”,并且有时被称为或被叫做触敏显示器系统。设备100包括存储器102(其任选地包括一个或多个计算机可读存储介质)、控制器120、一个或多个处理单元(CPU)122、外围设备接口118、 RF电路108、音频电路110、扬声器111、麦克风113、输入/输出(I/O)子系统106、其他输入或控制设备116和外部端口124。设备100任选地包括一个或多个光学传感器164。设备100任选地包括用于检测设备100上的接触的强度的一个或多个强度传感器165(例如,触敏表面,诸如设备100的触敏显示系统112)。设备100任选地包括用于在设备100上生成触觉输出的一个或多个触觉输出发生器167(例如,在触敏表面,诸如设备100的触敏显示器系统112或设备100的触控板上生成触觉输出)。这些部件任选地通过一根或多根通信总线或信号线103通信。
如在本说明书和权利要求书中所使用,术语触敏表面上的接触的“强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。接触的强度具有值范围,该值范围包括至少四个不同值并且更典型地包括上百个不同值(例如,至少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不同点处的力。在一些具体实施中,来自多个力传感器的力测量被合并(例如,加权平均),以确定估计的接触力。类似地,触笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的接触区域的大小和/或其变化、接触附近的触敏表面的电容和/或其变化、和/或接触附近的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接触的力或压力的替代物。在一些具体实施中,接触力或压力的替代测量值直接用于确定是否已超出强度阈值(例如,强度阈值以与替代测量值对应的单位描述)。在一些具体实施中,将接触力或压力的替代测量值转换为预估力或压力,并且使用预估力或压力确定是否已超过强度阈值(例如,强度阈值是以压力单位测量的压力阈值)。
如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感与设备或设备的部件的物理特征的所感知的变化对应。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压 (例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。作为另一个实施例,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释为或感测为触敏表面的“粗糙度”。虽然由用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是存在触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为与用户的特定感官知觉(例如,“松开点击”、“按下点击”、“粗糙度”)对应时,除非另外陈述,否则所生成的触觉输出与设备或其部件的物理位移对应,该物理位移将会生成典型(或普通)用户的所描述的感官知觉。
应当理解,设备100仅是便携式多功能设备的一个实施例,并且设备 100任选地具有比所示出的更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图1A中所示的各种部件以硬件、软件或软件和硬件的组合来实现,包括一个或多个信号处理和/或专用集成电路。
存储器102任选地包括高速随机存取存储器(例如,DRAM、 SRAM、DDR RAM或其他随机存取固态存储器设备),并且任选地还包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备。存储器102任选地包括远离一个或多个处理器 122定位的一个或多个存储设备。设备100的其他部件(诸如CPU 122和外围设备接口118)对存储器102的访问任选地由控制器120来控制。
外围设备接口118可被用于将设备的输入外围设备和输出外围设备耦接到CPU122和存储器102。所述一个或多个处理器122运行或执行存储在存储器102中的各种软件程序和/或指令集以执行设备100的各种功能并处理数据。
在一些实施方案中,外围设备接口118、CPU 122、和控制器120任选地被实现在单个芯片诸如芯片104上。在一些其他实施方案中,它们任选地被实现在独立的芯片上。
RF(射频)电路108接收和发送也被叫做电磁信号的RF信号。RF电路108将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号来与通信网络以及其他通信设备进行通信。RF电路108任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等等。RF电路108任选地通过无线通信来与网络以及其他设备进行通信,该网络为诸如互联网(也被称为万维网(WWW))、内联网、和/或无线网络(诸如蜂窝电话网络、无线局域网 (LAN)和/或城域网(MAN))。无线通信任选地使用多种通信标准、协议和技术中的任何一种,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进、纯数据(EV-DO)、HSPA、HSPA+、双单元HSPA(DC- HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、蓝牙低功耗、无线保真(Wi-Fi) (例如,IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n)。
音频电路110、扬声器111和麦克风113提供用户和设备100之间的音频接口。音频电路110从外围设备接口118接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器111。扬声器111将电信号转换为人类可听到的声波。音频电路110还接收由麦克风113根据声波转换的电信号。音频电路110将电信号转换为音频数据,并将音频数据传输到外围设备接口118,以用于处理。音频数据任选地由外围设备接口118检索自和 /或传输至存储器102和/或RF电路108。在一些实施例中,音频电路110 还包括耳麦插孔。耳麦插孔提供音频电路110与可移除的音频输入/输出外围设备之间的接口,该外围设备诸如仅输出的耳机或者具有输出(例如,单耳或双耳耳机)和输入(例如,麦克风)二者的耳麦。
I/O子系统106将设备100上的输入/输出外围设备诸如触摸屏112和其他输入控制设备116连接到外围设备接口118。I/O子系统106任选地包括显示控制器156、光学传感器控制器158、强度传感器控制器159、触觉反馈控制器161、和用于其他输入或控制设备的一个或多个输入控制器 160。所述一个或多个输入控制器160从其他输入控制设备116接收电信号/ 将电信号发送到其他输入控制设备。其他输入控制设备116任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击轮等。在一些另选实施方案中,一个或多个输入控制器160任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外线端口、USB端口以及指针设备诸如鼠标。该一个或多个按钮可任选地包括用于扬声器111和/或麦克风113的音量控制的增大/减小按钮。一个或多个按钮任选地包括下压按钮。
触敏显示器112提供设备和用户之间的输入接口和输出接口。显示控制器156从触摸屏112接收电信号和/或将电信号发送至该触摸屏。触摸屏 112向用户显示视觉输出。视觉输出任选地包括图形、文本、图标、视频和它们的任何组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部的视觉输出对应于用户界面对象。
触摸屏112具有基于触觉和/或触感接触来接受来自用户的输入的触敏表面、传感器或传感器组。触摸屏112和显示控制器156(与存储器102中的任何相关联的模块和/或指令集一起)检测触摸屏112上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换为与被显示在触摸屏 112上的用户界面对象(例如,一个或多个软键、图标、网页或图像)的交互。在一个示例性实施方案中,触摸屏112和用户之间的接触点对应于用户手指下方的区域。
触摸屏112任选地使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术、或LED(发光二极管)技术、或OLED(有机发光二极管)技术,但是在其他实施方案中使用其他显示技术。触摸屏112和显示控制器156任选地使用现在已知的或以后将开发出的多种触摸感测技术中的任何技术以及其他接近传感器阵列或用于确定与触摸屏112接触的一个或多个点的其他元件来检测接触及其任何移动或中断,该多种触摸感测技术包括但不限于电容性的、电阻性的、红外线的、和表面声波技术。在一个示例性实施方案中,使用投射式互电容感测技术,诸如见于Apple Inc. (Cupertino,California)的IPOD中的技术。
触摸屏112任选地具有超过400dpi的视频分辨率。在一些实施方案中,触摸屏112具有至少600dpi的视频分辨率。在其他实施方案中,触摸屏112具有至少1000dpi的视频分辨率。用户任选地使用任何合适的物体或指头诸如触笔或手指等等,来与触摸屏112接触。在一些实施方案中,用户界面被设计用于主要与基于手指的接触和手势工作。在一些实施方案中,设备将基于手指的输入转化为精确的指针/光标位置或命令,以用于执行用户所期望的动作。
在一些实施方案中,除了触摸屏之外,设备100任选地包括用于激活或解除激活特定功能的触控板(未示出)。在一些实施方案中,触控板是设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触控板任选地是与触摸屏112分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸部分。
设备100还包括用于为各种部件供电的电力系统162。电力系统162 任选地包括电力管理系统、一个或多个电源(例如,电池、交流电 (AC))、再充电系统、电力故障检测电路、功率转换器或逆变器、电源状态指示器(例如,发光二极管(LED))、和与便携式设备中的电力的生成、管理和分配相关联的任何其他部件。
设备100任选地还包括一个或多个光学传感器164。图1A示出了耦接到I/O子系统106中的光学传感器控制器158的光学传感器。光学传感器 164任选地包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器164从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块143(也叫做相机模块),光学传感器164任选地捕获静态图像或视频。在一些实施方案中,光学传感器位于设备100的后部上,与设备前部上的触摸屏112相背对,使得触敏显示器能够用作用于静态图像和/或视频图像采集的取景器。在一些实施方案中,另一光学传感器位于设备的前部上,使得用户在触敏显示器上观看其他视频会议参与者的同时,任选地获得该用户的图像以用于视频会议。
设备100任选地还包括一个或多个接触强度传感器165。图1A示出耦接到I/O子系统106中强度传感器控制器159的接触强度传感器。接触强度传感器165任选地包括一个或多个压阻应变仪、电容式力传感器、电气力传感器、压电力传感器、光学力传感器、电容式触敏表面、或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。接触强度传感器165从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。在一些实施方案中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统112)并置排列或邻近。在一些实施方案中,至少一个接触强度传感器位于设备100的与位于设备100的前部上的触摸屏112 相背对的后部上。
设备100任选地还包括一个或多个接近传感器166。图1A示出了耦接到外围设备接口118的接近传感器166。另选地,接近传感器166耦接到 I/O子系统106中的输入控制器160。在一些实施方案中,当多功能设备被置于用户的耳朵附近时(例如,当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏112。
设备100任选地还包括一个或多个触觉输出发生器167。图1A示出了耦接到I/O子系统106中的触觉反馈控制器161的触觉输出发生器。触觉输出发生器167任选地包括一个或多个电声设备诸如扬声器或其他音频部件;和/或用于将能量转换成线性运动的机电设备诸如电机、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,用于将电信号转换成设备上的触觉输出的部件)。接触强度传感器165从触觉反馈模块133接收触觉反馈生成指令,并且在设备100上生成能够由设备100的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统112)并置排列或邻近,并且任选地通过竖直地(例如,向设备100的表面内/外)或侧向地(例如,在与设备100的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备100的与位于设备100的前部上的触敏显示器112相背对的后部上。
设备100任选地还包括一个或多个加速度计168。图1A示出了耦接到外围设备接口118的加速度计168。另选地,加速度计168任选地耦接到 I/O子系统106中的输入控制器160。在一些实施方案中,基于对从该一个或多个加速度计所接收的数据的分析来在触敏显示器上以纵向视图或横向视图显示信息。设备100任选地除了加速度计168之外还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未示出),用于获得关于设备100的位置和取向(例如,纵向或横向)的信息。
在一些实施方案中,存储于存储器102中的软件部件包括操作系统 126、主动模块163(任选地包括一个或多个应用程序使用数据表335、触发条件表402、触发建立模块163-1和/或使用数据收集模块163-2)、通信模块(或指令集)128、接触/运动模块(或指令集)130、图形模块(或指令集)132、文本输入模块(或指令集)134、全球定位系统(GPS)模块(或指令集)135以及应用(或指令集)136。此外,在一些实施方案中,存储器102存储设备/全局内部状态157,如图1A中所示。设备/全局内部状态 157包括以下各项中的一者或多者:活动应用程序状态,该活动应用程序状态用于指示哪些应用程序(如果有的话)当前是活动的;显示状态,该显示状态用于指示什么应用程序、视图或其他信息占据触敏显示器112的各个区域;传感器状态,该传感器状态包括从设备的各个传感器和输入控制设备116获得的信息;和关于设备位置和/或姿态(例如,设备取向)的位置信息。
操作系统126(例如,Darwin、RTXC、LINUX、UNIX、OS X、 WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件组件和/或驱动器,并且有利于各种硬件和软件组件之间的通信。
通信模块128有利于通过一个或多个外部端口124与其他设备进行通信,并且还包括用于处理由RF电路108和/或外部端口124所接收的数据的各种软件部件。外部端口124(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备或通过网络(例如,互联网、无线LAN等)间接耦接。在一些实施方案中,外部端口是与来自APPLE Inc.的IPOD设备的一些实施方案上所使用的30针连接器相同、或类似的和/或与其兼容的多针 (例如,30针)连接器。在其他实施方案中,外部端口是与来自APPLE Inc.的LIGHTNING连接器中所使用的8针连接器相同的、或类似的和/或与其兼容的多针(例如,8针)连接器。
接触/运动模块130任选地检测与触摸屏112(结合显示控制器156) 和其他触敏设备(例如,触控板或物理点击式转盘)的接触。接触/运动模块130包括各种软件部件以用于执行与接触检测相关的各种操作,诸如确定是否已经发生了接触(例如,检测手指按下事件)、确定接触强度(例如,接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动并跟踪在触敏表面上的移动(例如,检测一个或多个手指拖动事件),以及确定接触是否已经停止(例如,检测手指抬起事件或者接触断开)。接触/运动模块130从触敏表面接收接触数据。确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度 (量值和/或方向的改变),接触点的移动由一系列接触数据表示。这些操作任选地被应用于单个接触(例如,一个手指接触)或多个同时接触(例如,“多触摸”/多个手指接触)。在一些实施方案中,接触/运动模块130 和显示控制器156检测触控板上的接触。
在一些实施方案中,接触/运动模块130使用一组一个或多个强度阈值来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。在一些实施方案中,根据软件参数来确定强度阈值的至少一个子集(例如,强度阈值不是由特定物理致动器的激活阈值来确定的,并且可在不改变设备100的物理硬件的情况下被调节)。例如,在不改变触控板或触敏显示器硬件的情况下,触控板或触敏显示器的鼠标“点击”阈值可被设定成预定义的阈值的大范围中的任一个阈值。另外,在一些具体实施中,向设备的用户提供用于调节一组强度阈值中的一个或多个强度阈值(例如,通过调节各个强度阈值和/或通过利用对“强度”参数的系统级点击来一次调节多个强度阈值)的软件设置。
接触/运动模块130任选地检测用户的手势输入。触敏表面上的不同手势具有不同的接触模式(例如,所检测到的接触的不同运动、定时和/或强度)。因此,任选地通过检测特定接触图案来检测手势。例如,检测手指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标的位置处)检测手指抬起(抬离)事件。作为另一个示例,在触敏表面上检测手指轻扫手势包括检测手指按下事件,然后检测一个或多个手指拖动事件,并且在一些实施方案中,还随后检测手指抬起(抬离)事件。
图形模块132包括用于在触摸屏112或其他显示器上呈现和显示图形的各种已知的软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮度、透明度、饱和度、对比度或其他视觉特征)的部件。如本文所用,术语“图形”包括可以被显示给用户的任何对象,非限制性地包括文本、网页、图标(诸如包括软按键的用户界面对象)、数字图像、视频、动画等等。
在一些实施方案中,图形模块132存储待使用的用于表示图形的数据。每个图形任选地被分配有对应的代码。图形模块132从应用程序等接收用于指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制器156。
触觉反馈模块133包括用于生成指令的各种软件部件,该指令由触觉输出发生器167使用,以便响应于用户与设备100的交互而在设备100上的一个或多个位置处产生触觉输出。
任选地为图形模块132的部件的文本输入模块134提供用于在各种应用程序(例如,联系人模块137、电子邮件客户端模块140、IM模块141、浏览器模块147和需要文本输入的任何其他应用程序)中输入文本的软键盘。
GPS模块135确定设备的位置并提供了在各种应用程序中使用的这种信息(例如,提供至用于基于位置的拨号的电话138;提供至相机143作为图片/视频元数据;以及提供至提供基于位置的服务诸如天气桌面小程序、当地黄页桌面小程序和地图/导航桌面小程序的应用程序)。
应用程序(“应用”)136任选地包括以下模块(或指令集)或者其子集或超集:
·联系人模块137(有时叫做通讯录或联系人列表);
·电话模块138;
·视频会议模块139;
·电子邮件客户端模块140;
·即时消息(IM)模块141;
·健康模块142;
·用于静态图像和/或视频图像的相机模块143;
·图像管理模块144;
·浏览器模块147;
·日历模块148;
·桌面小程序模块149,其任选地包括以下各项中的一者或多者:天气桌面小程序149-1、股市桌面小程序149-2、计算器桌面小程序 149-3、闹钟桌面小程序149-4、词典桌面小程序149-5和由用户获得的其他桌面小程序,以及用户创建的桌面小程序149-6;
·搜索模块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中的一个或多个电话号码、修改已输入的电话号码、拨打相应的电话号码、进行对话以及当对话完成时断开或挂断。如上所述,无线通信任选地使用多种通信标准、协议和技术中的任一种。
结合RF电路108、音频电路110、扬声器111、麦克风113、触摸屏 112、显示控制器156、光学传感器164、光学传感器控制器158、接触模块 130、图形模块132、文本输入模块134、联系人列表137和电话模块138,视频会议模块139包括根据用户指令发起、进行和终止用户与一个或多个其他参与方之间的视频会议的可执行指令。
结合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和/或增强消息服务(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包括用于根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。
结合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包括用于根据用户指令来搜索存储器 102中的匹配一个或多个搜索条件(例如,一个或多个用户指定的搜索词) 的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。在一些实施方案中,搜索模块151还包括用于显示搜索入口部分和预测部分的可执行指令(例如,图9B的搜索入口部分920和预测部分930,并且参照图 6A至图9C在下文进行了更详细地讨论)。在一些实施方案中,在搜索入口部分接收到任何用户输入之前,搜索模块151结合主动模块163还使用建议或预测的人员、应用程序内的动作、应用程序、附近地点和/或新闻文章的示能表示填充预测部分(如下文参照图3A至图9C更详细地讨论)。
结合触摸屏112、显示系统控制器156、接触模块130、图形模块 132、音频电路110、扬声器111、RF电路108和浏览器模块147,视频和音乐播放器模块152包括允许用户下载和回放以一种或多种文件格式(诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的可执行指令,以及显示、展示或以其他方式回放视频(例如,在触摸屏112上或在经由外部端口124连接的外部显示器上)的可执行指令。在一些实施方案中,设备100任选地包括MP3播放器,诸如来自APPLE Inc.的IPOD的功能。
结合触摸屏112、显示控制器156、接触模块130、图形模块132和文本输入模块134,记事本模块153包括根据用户指令来创建和管理记事本、待办事项等的可执行指令。
结合RF电路108、触摸屏112、显示系统控制器156、接触模块 130、图形模块132、文本输入模块134、GPS模块135和浏览器模块 147,地图模块154任选地用于根据用户指令接收、显示、修改和存储地图以及与地图相关联的数据(例如,驾驶方向;与特定位置处或附近的商店及其他兴趣点有关的数据;以及其他基于位置的数据)。
结合触摸屏112、显示系统控制器156、接触模块130、图形模块 132、音频电路110、扬声器111、RF电路108、文本输入模块134、电子邮件客户端模块140和浏览器模块147,在线视频模块155包括指令,该指令允许用户访问、浏览、接收(例如,通过流式传输和/或下载)、回放 (例如在触摸屏上或在经由外部端口124所连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件,以及以其他方式管理一种或多种文件格式诸如H.264的在线视频。在一些实施方案中,即时消息模块141 而不是电子邮件客户端模块140用于发送至特定在线视频的链接。
如图1A所示,便携式多功能设备100还包括主动模块163,该模块用于主动识别和显示相关内容(例如,显示对应于应用程序内锁定屏幕动作或搜索界面内的动作的用户界面对象(例如,用于播放音乐应用程序内的播放列表的UI对象))。主动模块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接收(例如,从以上标识的设备100的部件,图1A)和/或存储应用程序使用数据。在一些实施方案中,将应用程序使用报告给使用数据收集模块163-2,然后存储在应用程序使用表335中。在一些实施方案中,应用程序使用数据包括对应于用户使用特定应用程序136 的所有(或最重要的、相关的或预测的)上下文使用信息。在一些实施方案中,每个特定应用程序在用户与应用程序交互的同时存储使用数据,然后将该使用数据报告给应用程序使用数据表335进行存储(例如,图3B所示特定应用程序136-1的使用数据193包括所有传感器读数、应用程序内执行的动作、设备耦合信息等,并且将此使用数据193发送到应用程序使用表335以存储为表内的记录)。例如,在用户与浏览器模块147交互时,应用程序使用数据接收并存储所有上下文使用信息,包括设备100的当前GPS坐标(例如,由GPS模块135所确定)、运动数据(例如,由加速度计168所确定),环境光数据(例如,由光学传感器164所确定)和用户在浏览器模块147内执行的应用程序内动作(例如,访问的URL、访问每个页面所花费的时间),以及由应用程序使用表335接收和存储的其他传感器数据和其他上下文使用信息。以下参照图3A至图3B提供关于应用程序使用表335的附加信息。如以下参照图5所讨论的,在一些实施方案中,在远程存储应用程序使用数据(例如,在图5所示的一个或多个服务器502中)。
触发条件表402和触发器建立模块163-1接收和/或存储基于存储在应用程序使用表335中的使用数据建立的触发条件。在一些实施方案中,触发建立模块163-1搜寻并分析存储在应用程序使用表335中的数据以识别模式。例如,如果应用程序使用数据指示用户总是在每天下午3:00至下午 4:00之间启动音乐应用程序,则触发建立模块163-1在触发条件表402中创建并存储触发条件,当满足这些触发条件时(例如,当前时间在下午 3:00至下午4:00的时间内)时,将使设备100启动音乐应用程序或至少向用户提供指示,指示音乐应用程序可用(例如,在锁定屏幕上显示UI对象,该UI对象允许用户轻松访问音乐应用程序)。以下参照图4A至图4B 提供关于触发条件表402的附加信息。如以下参照图5所讨论的,在一些实施方案中,基于所识别的模式在远程服务器识别模式和建立触发条件 (例如,图5所示一个或多个服务器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更详细地讨论的)。
上述所识别的模块和应用程序中的每个模块和应用程序对应于用于执行上述一种或多种功能以及在本专利申请中所描述的方法(例如,本文中所描述的计算机实现的方法和其他信息处理方法)的一组可执行指令。这些模块(例如,指令集)不必被实现为独立的软件程序、过程或模块,因此这些模块的各种子集任选地在各种实施方案中得以组合或以其他方式重新布置。在一些实施方案中,存储器102任选地存储上述模块和数据结构的子集。此外,存储器102任选地存储上面未描述的附加的模块和数据结构。
在一些实施方案中,设备100是该设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触控板来执行的设备。通过使用触摸屏和/或触控板作为用于设备100的操作的主要输入控制设备,任选地减少设备100上的物理输入控制设备(诸如下压按钮、拨号盘等等)的数量。
唯一地通过触摸屏和/或触控板执行的该预定义的一组功能任选地包括在用户界面之间进行导航。在一些实施方案中,触控板在被用户触摸时将设备100从被显示在设备100上的任何用户界面导航到主菜单、home菜单或根菜单。在此类实施方案中,使用触控板来实现“菜单按钮”。在一些其他实施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触控板。
图1B是示出根据一些实施方案的用于事件处理的示例性部件的框图。在一些实施方案中,存储器102(图1A中)包括事件分类器170(例如在操作系统126中)和选自便携式多功能设备100(图1A)的应用程序 136之中的相应应用程序136-1(例如,与应用程序136一起存储在存储器 102中的前述应用程序中的任一者)。
事件分类器170接收事件信息并确定要将事件信息递送到的应用136-1 和应用136-1的应用视图191。事件分类器170包括事件监视器171和事件分配器模块174。在一些实施方案中,应用程序136-1包括应用程序内部状态192,该应用程序内部状态指示当应用程序是活动的或正在执行时被显示在触敏显示器112上的一个或多个当前应用程序视图。在一些实施方案中,设备/全局内部状态157被事件分类器170用于确定哪个(哪些)应用当前是活动的,并且应用内部状态192被事件分类器170用于确定要将事件信息递送到的应用视图191。
在一些实施方案中,应用内部状态192包括附加信息,诸如以下各项中的一者或多者:当应用136-1恢复执行时将被使用的恢复信息、指示正被应用136-1显示的信息或准备好用于被应用136-1显示的信息的用户界面状态信息、用于使得用户能够返回到应用136-1的前一状态或视图的状态队列,以及用户采取的先前动作的重复/撤销队列。
事件监视器171从外围设备接口118接收事件信息。事件信息包括关于子事件(例如,触敏显示器112上的用户触摸,作为多点触摸手势的一部分)的信息。外围设备接口118传输其从I/O子系统106或传感器(诸如接近传感器166、一个或多个加速度计168和/或麦克风113(通过音频电路110))接收的信息。外围设备接口118从I/O子系统106接收的信息包括来自触敏显示器112或触敏表面的信息。
在一些实施方案中,事件监视器171以预定的间隔将请求发送至外围设备接口118。作为响应,外围设备接口118传输事件信息。在其他实施方案中,外围设备接口118仅当存在显著事件(例如,接收到高于预先确定的噪声阈值和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。
在一些实施方案中,事件分类器170还包括命中视图确定模块172和/ 或活动事件识别器确定模块173。
当触敏显示器112显示多于一个视图时,命中视图确定模块172提供用于确定子事件已在一个或多个视图内的什么地方发生的软件过程。视图由用户能在显示器上看到的控件和其他元素构成。
与应用程序相关联的用户界面的另一方面是一组视图,在本文中有时也被称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用程序的)应用程序视图任选地对应于在应用程序的程序化或视图分级结构内的程序化水平。例如,在其中检测到触摸的最低水平视图任选地被称为命中视图,并且被认为是正确输入的事件集任选地至少部分地基于初始触摸的命中视图来确定,该初始触摸开始基于触摸的手势。
命中视图确定模块172接收与基于接触的手势的子事件相关的信息。当应用程序具有在分级结构中组织的多个视图时,命中视图确定模块172 将命中视图识别为应对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(例如,形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块所识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。
活动事件识别器确定模块173确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施方案中,活动事件识别器确定模块173 确定仅命中视图才应接收特定子事件序列。在其他实施方案中,活动事件识别器确定模块173确定包括子事件的物理位置的所有视图都是活跃参与的视图,因此确定所有活跃参与的视图都应接收特定子事件序列。在其他实施方案中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,但在分级结构中较高的视图将仍然保持为活跃参与的视图。
事件分配器模块174将事件信息分配到事件识别器(例如,事件识别器180)。在包括活动事件识别器确定模块173的实施方案中,事件分配器模块174将事件信息递送到由活动事件识别器确定模块173确定的事件识别器。在一些实施方案中,事件分配器模块174在事件队列中存储事件信息,该事件信息由相应事件接收器182进行检索。
在一些实施方案中,操作系统126包括事件分类器170。另选地,应用程序136-1包括事件分类器170。在另一个实施方案中,事件分类器170 是独立的模块,或者是存储在存储器102中的另一个模块(诸如接触/运动模块130)的一部分。
在一些实施方案中,应用程序136-1包括多个事件处理程序190和一个或多个应用程序视图191,其中的每一个都包括用于处理发生在应用程序的用户界面的相应视图内的触摸事件的指令。应用程序136-1的每个应用程序视图191包括一个或多个事件识别器180。通常,相应应用视图191包括多个事件识别器180。在其他实施方案中,事件识别器180中的一个或多个事件识别器是独立模块的一部分,该独立模块诸如用户界面工具包(未示出)或应用程序136-1从中继承方法和其他属性的更高水平的对象。在一些实施方案中,相应事件处理程序190包括以下各项中的一者或多者:数据更新器176、对象更新器177、GUI更新器178和/或从事件分类器170 接收的事件数据179。事件处理程序190任选地利用或调用数据更新器 176、对象更新器177或GUI更新器178来更新应用程序内部状态192。另选地,应用程序视图191中的一个或多个应用程序视图包括一个或多个相应事件处理程序190。另外,在一些实施方案中,数据更新器176、对象更新器177和GUI更新器178中的一者或多者包括在相应应用程序视图191 中。
相应的事件识别器180从事件分类器170接收事件信息(例如,事件数据179),并且从事件信息识别事件。事件识别器180包括事件接收器 182和事件比较器184。在一些实施方案中,事件识别器180还包括元数据 183和事件传递指令188(其任选地包括子事件传递指令)的至少一个子集。
事件接收器182接收来自事件分类器170的事件信息。事件信息包括关于子事件例如触摸或触摸移动的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息任选地还包括子事件的速率和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一个取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。
事件比较器184将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较,确定一个事件或子事件,或确定或更新事件或子事件的状态。在一些实施方案中,事件比较器184包括事件定义186。事件定义 186包含事件的定义(例如,预定义的子事件序列),例如事件1(187-1)、事件2(187-2)以及其他。在一些实施方案中,事件187中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个示例中,事件1(187-1)的定义是在被显示对象上的双击。例如,双击包括被显示对象上的预先确定时长的第一次触摸(触摸开始)、预先确定时长的第一次抬起(触摸结束)、被显示对象上的预先确定时长的第二次触摸(触摸开始)以及预先确定时长的第二次抬起(触摸结束)。在另一个示例中,事件2(187-2)的定义是被显示对象上的拖动。例如,拖动包括在被显示对象上的预定时长的触摸(或接触)、该触摸在触敏显示器112上的移动、以及该触摸的抬离(触摸结束)。在一些实施方案中,事件还包括用于一个或多个相关联的事件处理程序190的信息。
在一些实施方案中,事件定义186包括对用于相应用户界面对象的事件的定义。在一些实施方案中,事件比较器184执行命中测试,以确定哪个用户界面对象与子事件相关联。例如,在触摸显示器112上显示三个用户界面对象的应用程序视图中,当在触敏显示器112上检测到触摸时,事件比较器184执行命中测试,以确定这三个用户界面对象中的哪一个用户界面对象与该触摸(子事件)相关联。如果每个所显示的对象与相应的事件处理程序190相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序190应当被激活。例如,事件比较器184选择与子事件和触发该命中测试的对象相关联的事件处理程序。
在一些实施方案中,相应事件187的定义还包括延迟动作,该延迟动作延迟事件信息的递送,直到已确定子事件序列确实对应于或不对应于事件识别器的事件类型。
当相应事件识别器180确定子事件串不与事件定义186中的任何事件匹配时,该相应事件识别器180进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪和处理持续的基于触摸的手势的子事件。
在一些实施方案中,相应事件识别器180包括具有指示事件递送系统应该如何执行对活跃参与的事件识别器的子事件递送的可配置属性、标志、和/或列表的元数据183。在一些实施方案中,元数据183包括指示事件识别器彼此如何交互或如何能够交互的可配置属性、标志和/或列表。在一些实施方案中,元数据183包括指示子事件是否递送到视图或程序化分级结构中的不同层级的可配置属性、标志和/或列表。
在一些实施方案中,当识别事件的一个或多个特定子事件时,相应事件识别器180激活与事件相关联的事件处理程序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或者具有对该数据更新器、该对象更新器和该GUI更新器的访问权限。在一些实施例中,数据更新器176、对象更新器177和GUI更新器178被包括在相应应用程序136-1或应用程序视图191的单个模块中。在其他实施例中,它们被包括在两个或更多个软件模块中。
在一些实施方案中,每个特定应用程序136-1在用户与应用程序交互的同时存储使用数据,然后将该使用数据报告给应用程序使用数据表335 进行存储(例如,图3B所示特定应用程序136-1的使用数据193包括所有传感器读数、应用程序内执行的动作、设备耦合信息等,并且将此使用数据193发送到特定应用程序的应用程序使用表335以存储为表内的记录)。在一些实施方案中,使用数据193在特定应用程序136-1使用的同时(例如,用户与特定应用程序136-1主动交互)存储由使用数据收集模块163-2报告的数据。
应当理解,关于触敏显示器上的用户触摸的事件处理的上述论述还适用于利用输入设备来操作多功能设备100的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地利用鼠标移动和鼠标按钮按压,任选结合单次或多次键盘按压或保持;触控板上的接触移动,诸如轻击、拖动、滚动等;触笔输入;设备的移动;口头指令;检测到的眼睛运动;生物测定输入;和/或其任意组合,作为对应于子事件的输入,定义要识别的事件。
图1C是根据一些实施方案的具有触敏显示器(例如,触摸屏112)的便携式多功能设备(例如,便携式多功能设备100)的示意图。在该实施方案中,以及在下文中介绍的其他实施方案中,用户可通过例如用一根或多根手指或者用一个或多个触控笔在屏幕上作出手势来选择这些图形中的一个或多个。在一些实施方案中,当用户(例如,通过将手指从屏幕抬离) 中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击手势(例如,在抬离后对屏幕的一系列触摸)、一次或多次轻扫手势(在沿屏幕表面的手势期间连续接触,例如,从左向右、从右向左、向上和/或向下)和/或已与设备100 发生接触的手指的滚动(例如,从右向左、从左向右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与图形接触不会选择图形。例如,当用于启动应用程序的手势是轻击手势时,在应用程序示能表示 (例如,图标)上方扫动的轻扫手势任选地不会启动(例如,打开)相应应用程序。
设备100任选地还包括一个或多个物理按钮,诸如“home”按钮或菜单按钮204。如前所述,菜单按钮204任选地用于导航到任选地在设备100 上被执行的一组应用程序中的任何应用程序136。另选地,在一些实施方案中,菜单按钮被实现为显示在触摸屏112上的GUI中的软键。
在一个实施方案中,设备100包括触摸屏112、菜单按钮204、用于对设备开关机和锁定设备进行供电的下压按钮206、音量调节按钮208、用户身份模块(SIM)卡槽210、耳麦插孔212和对接/充电外部端口124。下压按钮206被任选地用于:通过按下按钮并使按钮在下压状态保持预先确定的时间间隔来使设备通电/断电;通过按下按钮并在经过预先确定的时间间隔之前释放按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在另选的实施方案中,设备100还通过麦克风113来接受用于激活或去激活某些功能的语音输入。设备100还任选地包括用于检测触摸屏112上的接触的强度的一个或多个接触强度传感器165,和/或用于为设备100的用户生成触觉输出的一个或多个触觉输出发生器167。
图1D是用于示出设备(例如,图1A的设备100)上的用户界面的示意图,该设备具有与显示器194(例如,触摸屏112)分开的触敏表面195 (例如,平板电脑或触控板)。在一些实施方案中,触敏表面195包括用于检测触敏表面195上的接触强度的一个或多个接触强度传感器(例如,接触强度传感器359中的一者或多者),和/或用于为触敏表面195的用户生成触觉输出的一个或多个触觉输出发生器357。
尽管将参考触摸屏112(其中组合了触敏表面和显示器)上的输入给出随后的实施例中的一些实施例,但是在一些实施方案中,设备检测与显示器分开的触敏表面上的输入,如图1D中所示。在一些实施方案中,触敏表面(例如,图1D中的195)具有与显示器(例如,194)上的主轴(例如,图1D中的198)对应的主轴(例如,图1D中的199)。根据这些实施方案,设备检测在与显示器上的相应位置对应的位置(例如,在图1D 中,197-1对应于196-1并且197-2对应于196-2)处与触敏表面195的接触(例如,图1D中的197-1和197-2)。这样,在触敏表面(例如,图1D 中的195)与多功能设备的显示器(例如,图1D中的194)分开时,由设备在触敏表面上检测到的用户输入(例如,接触197-1和接触197-2以及它们的移动)被该设备用于操控显示器上的用户界面。应当理解,类似的方法任选地用于本文所述的其他用户界面。
另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势、手指轻扫手势)来给出下面的示例,但是应当理解,在一些实施方案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替代。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例如,而不是接触的移动)来替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,而不是对接触的检测,以及之后的停止检测接触)来代替。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或者鼠标和多个手指接触任选地被同时使用。
如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些具体实施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素 (例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如,图1D中的触敏表面195(在一些实施方案中,触敏表面195是触控板))上检测到输入(例如,按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调节。在包括能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸屏显示器(例如,图1A中的触敏显示器系统 112或触摸屏112)的一些具体实施中,在触摸屏上所检测到的接触充当“焦点选择器”,使得在触摸屏显示器上于特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)的位置处检测到输入(例如,由接触进行的按压输入)时,该特定用户界面元素根据所检测到的输入而被调节。在一些具体实施中,焦点从用户界面的一个区域移动到用户界面的另一个区域,而无需光标的对应移动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头键来将焦点从一个按钮移动到另一个按钮);在这些具体实施中,焦点选择器根据用户界面的不同区域之间的焦点移动而移动。不考虑焦点选择器所采取的具体形式,焦点选择器通常是由用户控制的以便传送与用户界面的用户预期的交互(例如,通过向设备指示用户期望与其进行交互的用户界面的元素)的用户界面元素(或触摸屏显示器上的接触)。例如,在触敏表面(例如,触控板或触敏显示器)上检测到按压输入时,焦点选择器(例如,光标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相应按钮(而不是设备显示器上示出的其他用户界面元素)。
图1E示出了与显示器194和触敏表面195通信的示例性电子设备。对于电子设备的至少一个子集,根据一些实施方案将显示器194和/或触敏表面195集成在电子设备中。虽然在下文中参照与电子设备(例如,图1A至图1B中的便携式多功能设备100)通信的触敏表面195和显示器194更详细地描述了示例,但应当理解,根据一些实施方案,触敏表面和/或显示器与电子设备集成在一起,而在其他实施方案中,触敏表面和显示器的一个或多个与电子设备分开。另外,在一些实施方案中,电子设备具有集成显示器和/或集成触敏表面,并且与独立于该电子设备的一个或多个附加显示器和/或触敏表面进行通信。
在一些实施方案中,下文中参照图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的单个电子设备上执行(例如,下文中参照图 1E描述的计算设备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包括接收解释输入的一个或多个模块(例如,一个或多个事件处理程序190,包括如上文参照图1C 更详细地描述的一个或多个对象更新器177和一个或多个GUI更新器 178),并且响应于这些解释输入,根据解释输入生成用于更新图形用户界面的指令,所述解释输入随后用于更新显示器上的图形用户界面。在一些实施方案中,解释输入是已经被检测(例如,通过图1A至图1B和图3中的接触运动130)、识别(例如,通过图1C中的事件识别器180)和/或设置了优先级的输入(例如,通过图1C中的事件分类器170)。在一些实施方案中,解释输入由电子设备处的模块生成(例如,电子设备接收原始接触输入数据,以便从原始接触输入数据中识别手势)。在一些实施方案中,解释输入的一些或全部被电子设备接收为解释输入(例如,包括触敏表面195的电子设备处理原始接触输入数据,以便从原始接触输入数据中识别手势并将指示手势的信息发送到包括用户界面导航逻辑480的电子设备)。
在一些实施方案中,显示器194和触敏表面195都与包含用户界面导航逻辑480的电子设备(例如,图1E中的计算设备A)集成。例如,该电子设备可以是具有集成显示器(例如,图3中的340)和触控板(例如,图 3中的355)的台式计算机或膝上型计算机。又如,该电子设备可以是具有触摸屏(例如,图2中的112)的便携式多功能设备100(例如,智能电话、PDA、平板电脑等)。
在一些实施方案中,触敏表面195与电子设备集成,而显示器194未与包含用户界面导航逻辑480的电子设备(例如,图1E中的计算设备B) 集成。例如,该电子设备可以是具有集成触控板(例如,图3中的355)的设备(例如,台式计算机或膝上型计算机等),其中该集成触控板与独立显示器(例如,计算机监视器、电视等)相连(通过有线或无线连接)。又如,该电子设备可以是具有触摸屏(例如,图2中的112)的便携式多功能设备100(例如,智能电话、PDA、平板电脑等),其中该触摸屏与独立显示器(例如,计算机监视器、电视等)相连(通过有线或无线连接)。
在一些实施方案中,显示器194与电子设备集成,而触敏表面195未与包含用户界面导航逻辑480的电子设备(例如,图1E中的计算设备C) 集成。例如,该电子设备可以是具有集成显示器(例如,图3中的340)的设备(例如,台式计算机、膝上型计算机、带集成式机顶盒的电视),其中该集成显示器与独立触敏表面(例如,远程触控板、便携式多功能设备等)相连(通过有线或无线连接)。又如,该电子设备可以是具有触摸屏 (例如,图2中的112)的便携式多功能设备100(例如,智能电话、 PDA、平板电脑等),其中该触摸屏与独立触敏表面(例如,远程触控板、另一个触摸屏作为远程触控板使用的便携式多功能设备等)相连(通过有线或无线连接)。
在一些实施方案中,显示器194和触敏表面195都未与包含用户界面导航逻辑480的电子设备(例如,图1E中的计算设备D)集成。例如,电子设备可以是连接(通过有线或无线连接)到单独触敏表面(例如,远程触控板、便携式多功能设备等)和单独显示器(例如,计算机监视器,电视等)的独立电子设备(例如,台式计算机、膝上型计算机、控制台、机顶盒等)。又如,该电子设备可以是具有触摸屏(例如,图2中的112)的便携式多功能设备100(例如,智能电话、PDA、平板电脑等),其中该触摸屏与独立触敏表面(例如,远程触控板、另一个触摸屏作为远程触控板使用的便携式多功能设备等)相连(通过有线或无线连接)。
在一些实施方案中,计算设备具有集成音频系统。在一些实施方案中,计算设备和独立于计算设备的音频系统通信。在一些实施方案中,音频系统(例如,集成在电视单元中的音频系统)与单独显示器194集成。在一些实施方案中,音频系统(例如,立体音响系统)是与计算设备和显示器194分开的独立系统。
现在将注意力转到可在具有显示器和触敏表面的电子设备(诸如设备 100)上实现的用户界面(“UI”)实施方案及相关联的过程。
图2是根据一些实施方案的触摸屏的示意图,其用于示出应用程序的菜单的用户界面。类似的用户界面任选地在设备100(图1A)上实现。在一些实施方案中,显示在触摸屏112上的用户界面包括以下元素、或者其子集或超集:
·一种或多种无线通信(诸如蜂窝信号和Wi-Fi信号)的一个或多个信号强度指示符202;
·时间203;
·蓝牙指示器205;
·电池状态指示器206;
·具有常用应用程序的图标的托盘209,图标诸如:
ο电话模块138的被标记为“电话”的图标216,该图标任选地包括未接来电或语音留言的数量的指示符214;
ο电子邮件客户端模块140的被标记为“邮件”的图标218,该图标任选地包括未读电子邮件的数量的指示符210;
ο浏览器模块147的被标记为“浏览器”的图标220;以及
ο视频和音乐播放器模块152(也称为IPOD(APPLE Inc.的商标)模块152)的被标记为“iPod”的图标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;
ο设置应用程序或模块的图标246,该图标提供对设备100及其各种应用程序的设置的访问;以及
ο另外的应用程序诸如应用商店、iTunes、语音备忘录和实用程序的其他图标。
应当注意,图2中示出的图标标签仅仅是示例性的。对于各种应用程序图标任选地使用其他标签。例如,健康模块142的图标242另选地被标记为“健身支持”、“锻炼”、“锻炼支持”、“运动”、“运动支持”或“健身”。在一些实施方案中,相应应用程序图标的标签包括与该相应应用程序图标对应的应用程序的名称。在一些实施方案中,特定应用图标的标签不同于与该特定应用图标对应的应用的名称。
图3A至图3B是示出根据一些实施方案的用于存储应用程序使用数据的数据结构的框图。如图3A所示,应用程序使用数据表335包括数据结构 335的集合,任选地实现为安装在设备100上的每个应用程序的表的集合,每个应用程序使用数据表存储与安装在电子设备上的各自对应应用程序相关联的使用数据(例如,应用程序1使用数据表335-1存储应用程序1的使用数据,应用程序使用数据表335-2存储应用程序2的使用数据)。在一些实施方案中,应用程序使用数据表集合中的每个表(例如,表335-1、表335-2、表335-3...表335-N)存储安装在电子设备上的多于一个应用程序的使用数据(例如,表335-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。在一些实施方案中,除条目ID字段外,应用程序1使用数据表335-1还包括附加字段,诸如用于标识使用条目何时创建和/或存储在表335-1中的时间戳字段,以及用于标识可存储在其他应用程序使用数据表335中的相关使用条目的相关使用条目字段。
在一些实施方案中,应用程序1使用数据表335-1中的每个记录包含一个或多个使用条目,所述使用条目包含在用户与应用程序1交互时收集的使用数据(例如,每次用户启动应用程序1,创建新的使用条目以存储收集的使用数据)。在一些实施方案中,表中的每个使用条目存储以下信息和数据结构、或其子集或超集:
·用于识别用户在应用程序内执行的应用内动作(例如,执行的应用内动作340-1(a))的信息(在一些实施方案中,这些动作由应用程序报告给设备),例如,应用程序向使用数据收集模块163-2报告用户在特定播放列表中播放了特定歌曲;
·用于识别用户在其他应用程序(例如,系统级应用程序)内执行的其他动作(例如,执行的其他动作340-1(b))的信息,诸如向虚拟助理应用程序提供口头指令或执行搜索,在应用程序内搜索信息项(例如,图1A的搜索模块151);
·传感器数据(例如,使用数据340-1(c)),包括在用户与使用条目相关联的应用程序交互的同时由设备100上的传感器收集的数据,任选地包括:
ο当日时间(例如,当日时间340-1(d))信息;
ο位置数据(例如,位置数据340-1(e)),用于识别用户启动应用程序时的当前位置以及用户在执行应用程序时访问的(例如,由GPS模块132报告的)其他位置;
ο其他传感器数据(例如,其他传感器数据340-1(f)),在用户与应用程序交互时收集的传感器数据(诸如环境光数据、高度数据、压力读数、运动数据等);
·设备耦合信息(例如,设备耦合信息340-1(g)),用于识别在用户与应用程序交互时与设备100耦合的外部设备(例如,示例性外部设备可以是和耳机接口连接的一对耳机;或者另一个示例性设备可以是通过蓝牙连接的设备(例如,机动车中的扬声器或与机动车相关联的免提系统));以及
·其他信息(例如,其他信息340-1(h)),在用户与应用程序交互时收集的信息(例如,有关已完成交易的信息,诸如关于用户使用 APPLE PAY的信息)
在一些实施方案中,应用程序每个使用条目还包括用于识别用户执行的动作类型的信息,而在其他实施方案中,用于识别所执行的应用内动作的信息用于确定或得出动作类型。
在一些实施方案中,应用程序使用数据表335还存储关于隐私设置的信息,其中该隐私设置与设备100的用户相关联。例如,设备100的用户能够配置与每个应用程序的使用数据的集合相关联的隐私设置。在一些实施方案中,用户能够控制包含在每个使用条目内的所有信息(例如,执行的应用内动作、执行的其他动作、传感器数据、设备耦合信息和其他信息)的数据收集设置。例如,用户可以配置隐私设置,使得设备100(或其部件,诸如使用数据收集模块163-2)不收集位置数据,而是收集关于针对浏览器模块147执行的应用内动作的信息。又如,用户可以配置隐私设置,使得设备100不收集关于所执行的应用内动作的信息,而是收集在线视频模块155的位置数据。这样,用户能够控制设备100上的使用数据的收集,并且基于其就使用数据收集的个人偏好,为设备100上可用的每个应用程序配置适当的隐私设置。
图4A至图4B是示出根据一些实施方案的用于存储触发条件的数据结构的框图。如图4A所示,主动触发条件表402包括数据结构402的集合,任选地实现为安装在设备100上的每个相应应用程序的表的集合,每个主动触发条件表存储与相应应用程序相关联的触发条件(例如,应用程序1 触发条件表402-1存储与应用程序1相关联的触发条件(例如,一旦满足将使设备100启动或使用应用程序1的触发条件))。在一些实施方案中,应用程序使用数据表集合中的每个表(例如,表335-1、表335-2、表 335-3...表335-N)存储与安装在电子设备上的多于一个应用程序相关联的触发条件(例如,表335-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并仅以这些预定义的间隔创建触发条件。在一些实施方案中,用户确认应创建触发条件(例如,设备100向用户呈现描述先决条件和关联动作的对话框,然后用户确认或拒绝创建触发条件)。例如,一个示例性对话框包含文本“我注意到,您总是在一天的这个时候发送信息给您的妻子告诉她您正在回家的路上。您想要给她发送一条短信告诉她:我正在回家的路上吗?”
图5是示出根据一些实施方案的示例性触发条件建立系统的框图。如图5所示,触发条件建立系统500包括便携式多功能设备100,并且还包括一个或多个服务器502。便携式多功能设备100通过一个或多个网络与一个或多个服务器502进行通信。所述一个或多个网络(例如,一个或多个网络520)可通信地将触发条件建立系统500的每个部件与触发条件建立系统 500的其他部件相连。在一些实施方案中,所述一个或多个网络520包括公共通信网络、专用通信网络或公共和专用通信网络的组合。例如,所述一个或多个网络520可以是诸如互联网、其他广域网(WAN)、局域网(LAN)、虚拟专用网络(VPN)、城域网(MAN)、对等网络和/或自组连接的任意网络 (或网络的组合)。
在一些实施方案中,一个或多个主动触发条件表402存储在便携式多功能设备100上,并且一个或多个其他主动触发条件表402存储在一个或多个服务器502上。在一些实施方案中,便携式多功能设备100存储主动触发条件表402;而在其他实施方案中,所述一个或多个服务器502存储主动触发条件表402。类似地,在一些实施方案中,一个或多个应用程序使用数据表335存储在便携式多功能设备100上,并且一个或多个其他应用程序使用数据表335存储在所述一个或多个服务器502上。在一些实施方案中,便携式多功能设备100存储应用程序使用数据表335;而在其他实施方案中,所述一个或多个服务器502存储应用程序使用数据表335。
在一个或多个主动触发条件表402或一个或多个应用程序使用数据表 335存储在所述一个或多个服务器502的实施方案中,由触发建立模块 163-1和使用数据收集模块163-2分别执行的一些功能在所述一个或多个服务器502上执行。在这些实施方案中,通过网络520在所述一个或多个服务器502和设备100之间交换信息。例如,如果所述一个或多个服务器502 存储在线视频模块155的主动触发条件表402,则在一些实施方案中,设备 100将向所述一个或多个服务器502发送对应于在线视频模块155的一个或多个使用条目。在一些实施方案中,所述一个或多个服务器502然后搜寻所接收的使用数据以识别使用模式并创建触发条件(如上文参照图4A至图 4B所讨论的),并将所创建的触发条件发送到设备100。在一些实施方案中,在接收与在线视频模块155相关联的数据(例如,一个或多个视频流的数据)时,设备100和所述一个或多个服务器502交换使用数据和触发条件。在一些实施方案中,所述一个或多个服务器502还能够检测所创建的触发条件(例如,基于在一个或多个视频流的数据交换期间接收的使用数据,服务器可以确定触发条件已经满足),使得触发条件根本不需要发送到设备100。在一些实施方案中,发送到所述一个或多个服务器502的使用数据的范围是有限的,使得其仅包含与用户使用在线视频模块155有关的信息(如上所述,用户还必须配置涉及使用数据收集的隐私设置,在一些实施方案中,这些隐私设置还还允许用户配置与一个或多个服务器502 的使用数据的交换(例如,配置应该发送的数据类型以及不应发送的数据类型))。
在一些实施方案中,以下参照第1至11部分讨论的数据结构还用于帮助实现和/或改进本文中讨论的任何方法。例如,下文中参照图1至图11讨论的预测引擎用于帮助建立触发条件,并且/或者第1至11部分中讨论的其他技术还用于帮助监视应用程序使用历史。
图6A至图6B示出了根据一些实施方案的用于主动识别和显示相关内容的方法600的流程图表示。图3A至图3B、图4A至图4B、图5和图7A 至图7B用于示出图6A至图6B中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195 上的输入,如图1D中所示。
在一些实施方案中,方法600由电子设备(例如,图1A的便携式多功能设备100)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法600由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法600。在一些实施方案中,参考图1A,方法600的操作至少部分地由以下项执行或使用以下项执行:主动模块(例如,主动模块163)、应用程序使用数据表(例如,应用程序使用数据表335)、触发条件表(例如,触发条件表402)、触发建立模块(例如,触发建立模块 163-1)、使用数据收集模块(例如,使用数据收集模块163-2)、主动建议模块(例如,主动建议模块163-3)、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)、一个或多个接触强度传感器(例如,接触强度传感器165)和触敏显示器(例如,触敏显示器系统 112)。方法600中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法600提供了一种直观的方式以在具有触敏显示器的电子设备上主动识别和显示相关内容。该方法通过要求更少的触摸输入来执行各种功能以创建更有效的人机界面。对于电池驱动的电子设备,更快且更有效地识别和显示相关内容节省了功率并且增加了电池充电之间的时间。
如图6A所示,响应于来自电子设备用户的指令,该设备在电子设备 (602)上执行应用程序。在一些实施方案中,来自用户的指令是与应用程序相关联的图标上方的触摸输入,或是从用户接收的指示虚拟助理应用程序 (例如,由图1A中的操作系统126管理的虚拟助理应用程序)执行应用程序的语音命令。在执行应用程序时,设备(或其部件,诸如使用数据收集模块163-2)收集(604)包括用户在应用程序内执行的一个或多个动作的使用数据。在一些实施方案中,除了包括所述一个或多个动作或作为其替代,使用数据还包括用于识别与所述一个或多个动作的每一者相关联的动作类型的信息。例如,使用数据包括用于识别与音乐播放器模块152交互时的以下动作的信息:用户搜索第一播放列表,在第一播放列表内导航,选择第一播放列表中的第一曲目,然后搜索第二播放列表(例如,使用数据包括用户在音乐播放器模块152内执行的一个或多个动作的每一者)。这样,使用数据包括关于执行的各个动作(例如,用户搜索并播放第一播放列表的第一曲目)的每一者的信息,并且还包括用于识别动作类型(搜索、导航、选择等)的信息。在一些实施方案中,使用数据收集模块163-2 收集所述一个或多个动作,然后触发建立模块163-1稍后为所述一个或多个动作的每一者分配动作类型。
在一些实施方案中,收集的使用数据存储在与应用程序相关联的应用程序使用数据表中的使用条目中(如上文参照图3A至图3B所描述的)。在一些实施方案中,收集的使用数据包括用户执行的应用内动作、用户执行的其他动作(例如,与虚拟助理应用程序的交互、与搜索界面(例如,搜索模块151)的交互)以及与操作系统126管理的应用程序的其他交互)、与日历事件相关联的信息以及从设备100上的传感器获取的附加数据(如上文参照图3B所解释的)。
在一些实施方案中,使用数据包括(618)来自用户的口头指令,该指令被提供给虚拟助理应用程序,同时继续执行该应用程序,并且所述至少一个触发条件还基于提供给虚拟助理应用程序的口头指令。在一些实施方案中,口头指令包括创建提醒的请求,该提醒对应于(例如,引用或需要重建/重新执行)应用程序的当前状态,所述当前状态对应于提供口头指令时的应用程序状态(例如,图1B的一个或多个应用程序视图191)。在一些实施方案中,提供口头指令时的应用程序状态选自由以下各项组成的组:提供口头指令时在应用程序内显示的页面,提供口头指令时在应用程序内播放的内容(例如,当前播放音频曲目),提供口头指令时在应用程序内显示的通知(例如,在用户和浏览器模块147交互时显示的来自即时消息模块141的通知),以及提供口头指令时在应用程序内显示的页面的活动部分(例如,当前在网页中播放视频内容)。作为附加示例,应用程序的当前状态还可对应于:(i)提供口头指令时用户当前在应用程序内查看的特定页面的标识符(例如,当前显示网页的URL),或者用户在导航至应用程序中的当前页面之前所执行动作的历史(例如,在当前显示的网页之前用户访问过的URL)。
在一些实施方案中,口头指令包括关于应用程序当前状态的术语“这”或“那”。例如,在显示来自即时消息模块141的通知时,用户向虚拟助理应用程序提供“提醒我‘这个’”的指令,并且作为响应,虚拟助理应用程序使得设备100创建提醒,该提醒对应于通知内显示的内容。又如,当用户观看在线视频模块155中的特定视频内容时,用户向虚拟助理应用程序提供“提醒我注意‘这个’”的指令,作为响应,虚拟助理应用程序使设备100创建对应于特定视频内容的提醒。在一些实施方案中,当从应用程序本身提供口头指令时,设备100接收关于应用程序当前状态的信息(例如,继续前面的示例,在线视频模块155将其当前状态报告回设备100,或报告给其部件,诸如主动模块163,并且以这种方式,主动模块163接收用于识别特定视频内容的信息)
设备在无人为干预的情况下,自动基于收集的使用数据获取(606)至少一个触发条件。在一些实施方案中,在设备上建立所述至少一个触发条件,而在其他实施方案中,从服务器(例如,图5所示一个或多个服务器 502)获取(612)触发条件,该服务器基于从设备发送至所述一个或多个服务器502的使用数据来建立触发条件(如上文参照图5解释的)。在一些实施方案中,当满足所述至少一个触发条件时,将使设备(或其部件,诸如主动模块163)允许用户轻易地执行(例如,无任何输入或只有来自用户的单个触摸或口头输入)与所述至少一个触发条件相关联的动作。例如,一个示例性触发可指示在下午2:00和下午2:30之间,在(例如,由加速度计 168报告的)加速度计数据指示用户在先前访问的GPS坐标(例如,在用户工作地附近经常访问的两幢建筑物之间)之间走动时,设备应自动(并且无来自用户的任何输入)打开音乐应用程序(例如,图1A的音乐播放器 152)并开始播放特定的播放列表。在一些实施方案中,在收集使用数据并确定与音乐播放器152相关联的收集的使用数据指示:在平日每天下午 2:00至下午2:30之间,当用户在先前访问过的GPS坐标之间走动时,用户打开音乐播放器152并播放特定播放列表后,(通过一个或多个服务器502 或由设备100)建立该示例性触发。这样,设备(或服务器)基于收集的使用数据来标识和识别模式。通过为用户自动执行该动作(例如,播放特定播放列表),用户无需浪费任何时间来解锁设备、搜索音乐播放器152、搜索特定播放列表,然后播放特定播放列表。
在一些实施方案中,该方法还包括:在建立或获取触发条件之前检查与设备用户相关联的隐私设置,以便确认用户已经允许设备收集某些使用数据和/或验证用户允许设备建立触发条件(例如,用户可以配置设置以禁止设备建立使得设备自动发送短信的触发条件)。
该设备(或其部件,诸如触发条件建立模块163-1)还将所述至少一个触发条件与用户在应用程序内执行的所述一个或多个动作的特定动作(或与对应于特定动作的特定动作类型)相关联(608)(例如,通过将用于满足触发条件的先决条件与特定动作一起存储在图4A至图4B所示的主动触发条件表402中)。在确定已经满足所述至少一个触发条件时,设备向用户提供(610)指示,指示与触发条件相关联的特定动作(或特定动作类型)可用。在一些实施方案中,向用户提供指示包括:显示用于启动特定动作 (或用于执行对应于特定动作类型的动作)的用户界面对象(例如,UI对象702,图7A),显示与执行该特定动作的应用程序相关联的图标(例如,应用程序图标710,如图7A的触摸屏112的左下角所示),或者简单地执行特定动作(如上述特定播放列表的示例所描述的)。在一些实施方案中,设备显示用户界面对象和/或图标,同时还(在无人为干预的情况下自动)简单地执行特定动作(或与特定动作具有相同特定动作类型的动作)。
在一些实施方案中,获取所述至少一个触发条件包括(612):向远离电子设备(例如,图5的服务器502)定位的一个或多个服务器发送使用数据,并从一个或多个服务器接收所述至少一个触发条件。例如,与这些实施方案一致,电子设备(通过网络520)将一个或多个使用条目(例如,图 3B的使用条目1)发送到服务器502,并且基于使用数据,服务器502建立所述至少一个触发条件。继续该示例,然后服务器502将所述至少一个触发条件(例如,存储在主动触发条件表402-1中的先决条件和关联动作)发送(使用网络520)到设备100。
在一些实施方案中,提供指示包括(614)在触敏显示器上的锁定屏幕上显示用户界面对象,该用户界面对象对应于与触发条件相关联的特定动作。在一些实施方案中,用户界面对象显示在锁定屏幕的预定义的中心部分(例如,如图7A所示,UI对象702大体上显示在锁定屏幕的中间)。例如,设备通过在锁定屏幕上显示UI对象702来提供指示(图7A)。如图7A中所示,UI对象702包括预测的动作706。在一些实施方案中,预测的动作706是与所述至少一个触发条件相关联的动作的描述(换句话讲,用户界面对象包括与触发条件(616)相关联的特定动作的描述),诸如“轻扫以播放散步播放列表的曲目2”)。在一些实施方案中,UI对象702还任选地包括附加信息704,该信息用于向用户提供显示UI对象702的原因的信息。在一些实施方案中,附加信息704包括用于检测触发条件(例如,传感器数据340-1(c))的使用数据的描述和/或所述至少一个触发条件的先决条件的描述(例如,图4B的记录414-1的先决条件1)。例如,附加信息704指示之所以显示预测的动作706,是因为用户经常在一天的特定时间在用户散步时监听散步播放列表。在一些实施方案中,选择附加信息 704(例如,轻击附加信息704顶部)使得设备100显示用户界面,该用户界面允许用户改变与使用数据的收集和触发条件的创建相关联的隐私设置。
在一些实施方案中,UI对象702还任选地包括(616)与预测的动作706 相关联的应用程序图标710。例如,应用程序图标710是音乐播放器152的图标(如图7A所示)。在一些实施方案中,UI对象702还包括示能表示 708,当选中时,将使设备执行预测的动作(例如,使得设备开始播放散步播放列表的曲目2)。在一些实施方案中,用户界面对象(例如,用户界面对象702)包括与触发条件相关联的特定动作(例如,如上文中解释的预测的动作706)的描述。在一些实施方案中,用户界面对象702还包括与应用程序相关联的图标(例如,在UI对象702内显示的应用程序图标710)。在一些实方案中,用户界面对象702还包括暂停按钮,当选择该按钮时,将使设备停止显示UI对象702,并在用户所选择或预先配置的时间段之后重新显示UI对象702。例如,用户选择暂停UI对象702两个小时,则在两小时后,设备重新显示UI对象702。又如,用户选择暂停UI对象702 直到其可用,并且在一些实施方案中,设备100搜索日历模块148以识别用户时间表中的下一个开放时隙,并在识别的下一个开放时隙期间重新显示UI对象702。
在一些实施方案中,设备在用户界面对象处检测(622)第一手势。响应于检测到第一手势,设备在触敏显示器上显示(624)应用程序,并在显示应用程序的同时,执行与触发条件相关联的特定动作。在一些实施方案中,第一手势是在用户界面对象上的轻扫手势。在一些实施方案中,响应于在用户界面对象上检测到轻扫手势,设备还在显示应用程序之前自行解锁 (在其他实施方案中,该应用程序正好显示在锁定屏幕上)。在一些实施方案中,第一手势由在UI对象702内显示的文本进行指示(例如,预测的动作706内的文本包括对第一手势的描述,例如,“轻扫以...”)。参照图 7A举例来说,用户接触UI对象702顶部的触敏表面,并在不中断与触敏表面接触的情况下,用户沿着大体上水平的方向移动接触手指扫过UI对象 702。响应于在UI对象702上检测到来自用户的这一轻扫手势,设备显示音乐播放器152并开始播放散步播放列表的曲目2。
另选地,在一些实施方案中,设备在用户界面对象处检测(626)第二手势(例如,不同于上文中讨论的第一手势的手势,诸如在用户界面对象 (例如,播放按钮,诸如示能表示708)的预定义区域的单次轻击)而非检测第一手势。响应于检测到第二手势并且同时继续在触敏显示器上显示锁定屏幕,设备执行(628)与触发条件相关联的特定动作。换句话讲,设备从锁定屏幕执行特定动作并继续显示锁定屏幕,而不显示应用程序。
在一些实施方案中,以上参照操作622至操作628讨论的第一手势和第二手势是相同手势,但它们在UI对象702内显示的不同对象上执行。例如,第一手势是在预测的动作706上的轻扫手势,而第二手势是在示能表示708上的轻扫手势。又如,第一手势是在预测的动作706上的单次轻击,并且第二手势是在示能表示708上的单次轻击。
在一些实施方案中,向用户提供特定动作可用的指示包括让用户知晓特定动作可用于执行。在一些实施方案中,向用户提供与触发条件相关联的特定动作可用的指示包括执行特定动作。在一些实施方案中,借助于特定动作的执行(例如,用户听到正在播放所需播放列表)向用户提供指示。在一些实施方案中,UI对象702显示在锁定屏幕上,并且在不接收任何用户输入的情况下执行特定动作(诸如以上讨论的第一手势和第二手势)。
在一些实施方案中,替代显示UI对象702(或作为补充),设备在大体上位于锁定屏幕角落的位置处显示与应用程序相关联的图标(例如,如图7A所示,应用程序图标710大体上显示在触摸屏112的左下角)。
在一些实施方案中,设备接收来自用户的解锁电子设备的指令(例如,在延长接触Home按钮204后,识别出用户的指纹有效)。响应于接收到指令(例如,在解锁设备并停止显示锁定屏幕后),设备在触敏显示器上显示(620)设备的home屏幕,并且在home屏幕上向用户提供与触发条件相关联的特定动作可用的指示。如图7B所示,在接收解锁设备的指令后,UI对象702显示为覆盖home屏幕的跳板部分(或应用程序启动器)。在一些实施方案中,作为在home屏幕顶部显示UI对象702的替代或补充,设备还将在覆盖home屏幕任务栏部分的底部显示应用程序图标 710。在一些实施方案中,home屏幕包括:(i)第一部分,该部分包括一个或多个用户界面页面,用于启动电子设备上可用的第一组应用程序(例如,所述第一部分包含home屏幕的跳板部分的所有单个页面),以及 (ii)第二部分,该部分显示在与第一部分相邻的位置(例如,下方),用于启动电子设备上可用的第二组应用程序,所述第二部分显示在第一部分中包括的所有用户界面页面上(例如,所述第二部分是任务栏部分)。在一些实施方案中,在home屏幕上提供指示包括在第二部分上显示指示(例如,如图7B所示,包括应用程序图标710的底部显示在任务栏部分上)。在一些实施方案中,第二组应用程序不同于第一组应用程序且小于第一组应用程序(例如,显示在任务栏部分内的第二组应用程序是一组选择的图标,对应于用户收藏的应用程序)。
在一些实施方案中,确定已经满足所述至少一个触发条件包括:确定电子设备已经与不同于该电子设备的第二设备耦接。例如,第二设备是通过耳麦插孔212耦接到设备的一对耳机,并且所述至少一个触发条件包括用于指示该对耳机已耦接到设备的先决条件(例如,在执行特定动作前,该特定动作包括在播客应用程序中启动用户收藏的播客,其中该播客是用户在连接耳机后经常启动的播客)。又如,第二设备是与用户的机动车相关联的蓝牙扬声器或其他免提设备,并且所述至少一个触发条件包括指示机动车的蓝牙扬声器已经耦接到设备的先决条件(例如,在执行特定动作前,该动作包括在当日时间和用户位置符合呼叫用户母亲的特定动作的先决条件时,呼叫用户的母亲)。有关外部设备的耦接和响应于耦接执行动作的更多细节在以下第6部分中提供(例如,参照第6部分的图36_1)。
在一些实施方案中,确定已经满足所述至少一个触发条件包括:确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应位置。在一些实施方案中,设备监视用户经常访问的位置(例如,与位置相关联的特定GPS坐标或街道地址),并且使用该信息来确定与用户相关联的家庭或工作位置。在一些实施方案中,设备基于从用户接收的信息或由用户输入的信息(诸如存储的联系人)来确定这些位置的地址。在一些实施方案中,确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址包括:监视来自电子设备的加速度计的运动数据,并基于监视的运动数据确定电子设备未移动超过阈值量的时间(例如,用户在家中安顿下来并且有10分钟未发生移动)。这样,例如,当用户已经实际在他们的住处安顿下来,而不仅是当用户到达他们住处的车道时,设备确保已执行与所述至少一个触发条件相关联的特定动作。
在上述方法600的一些实施方案中,该方法从获取操作606开始,并且任选地包括执行操作602和收集操作604。换句话讲,在这些实施方案中,方法600包括:获取至少一个触发条件,所述至少一个触发条件基于与电子设备的用户相关联的使用数据,该使用数据包括在电子设备上执行应用程序时由用户在应用程序内执行的一个或多个动作;将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作关联;并且在确定已经满足所述至少一个触发条件时,向用户提供指示,指示与触发条件相关联的特定动作可用。
应当理解,对图6A至图6B中已经进行描述的操作的具体顺序仅仅是一个示例,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文参考本文所述的其他方法(例如,方法800)描述的其他过程的细节同样以类似的方式适用于上文参考图6A至图6B描述的方法600。例如,上文参考方法600描述的用户界面对象任选地具有本文参考本文所述的其他方法(例如,方法800)描述的用户界面对象的特征中的一个或多个。在一些实施方案中,第1至11部分的任何相关细节可以结合方法600用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图8A至图8B示出了根据一些实施方案的用于主动识别和显示相关内容的方法800的流程图表示。图3A至图3B、图4A至图4B、图5和图9A 至图9D用于示出图8A至图8B中的方法和/或过程。在一些实施方案中,图9A至图9D中所示的用户界面被称为零关键字搜索。零关键字搜索是在无来自用户的任何输入的情况下进行的搜索(例如,搜索入口框保持空白),并且允许用户例如查看用户接下来可能(或预测)要搜索的人员、应用程序、应用程序内的动作、附近地点和/或新闻文章。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面 195上的输入,如图1D中所示。
在一些实施方案中,方法800由电子设备(例如,图1A的便携式多功能设备100)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法800由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法800。在一些实施方案中,参考图1A,方法800的操作至少部分地由以下项执行或使用以下项执行:主动模块(例如,主动模块163)、应用程序使用数据表(例如,应用程序使用数据表335)、触发条件表(例如,触发条件表402)、触发建立模块(例如,触发建立模块 163-1)、使用数据收集模块(例如,使用数据收集模块163-2)、主动建议模块(例如,主动建议模块163-3)、搜索模块(例如,搜索模块 151)、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)、一个或多个接触强度传感器(例如,接触强度传感器 165)和触敏显示器(例如,触敏显示器系统112)。方法800中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法800提供了一种自动方法,该方法用于(在用户明确要求相关内容之前,例如,用户在搜索界面的搜索入口部分中输入任何文本前)在具有触敏显示器的电子设备上主动识别和显示相关内容。该方法减少了用户在访问应用程序时的认知负担,从而创建一个更有效的人机界面。
如图8A所示,设备在触敏显示器上检测(802)搜索激活手势。例如,如图9A所示,设备检测搜索激活手势902-1(例如,接触触敏显示器,随后在显示器上沿着大体上垂直的方向(例如,向下)连续移动接触手指)。又如,同样如图9A所示,设备检测搜索激活手势902-2(例如,接触触敏表面,随后在触敏表面上沿着大体上水平的方向(例如,向右)连续移动接触手指)。在一些实施方案中,搜索激活手势可从至少两个不同的用户界面获取,并且所述至少两个不同用户界面的第一用户界面对应于在触敏显示器上显示home屏幕页面序列的相应home屏幕页面。
在一些实施方案中,当相应的home屏幕页面是home屏幕页面序列中的第一home屏幕页面时(例如,如图9A所示),搜索激活手势包括以下中的一种:(i)相对于电子设备用户沿大体上向下方向移动的手势(例如,手势902-1),或(ii)相对用户大体上沿从左到右方向移动并大体上垂直于向下方向的连续手势(例如,手势902-2)。在一些实施方案中,当home屏幕页面是home屏幕页面序列中的第二home屏幕页面(换句话讲,不是第一home屏幕页面)时,搜索激活手势是相对电子设备用户大体上沿向下方向移动的连续手势(换句话讲,只有搜索激活手势902-1可用,并且手势902-2不可用)。
在一些实施方案中,所述至少两个不同用户界面的第二用户界面对应于在触敏显示器上显示应用程序切换界面(例如,响应于用户双击Home 按钮204)。在一些实施方案中,搜索激活手势包括在触敏显示器上接触应用程序切换页面的预定义的搜索激活部分(例如,应用程序切换页面包括搜索入口部分,所述搜索入口部分是显示在应用程序切换页面顶部的预定义的搜索激活部分(类似于图9B的搜索入口部分920))。
响应于检测到搜索激活手势,该设备在触敏显示器上显示(804)搜索界面,该搜索界面包括(806):(a)搜索入口部分(例如,图9B所示用于从用户接收输入的搜索入口部分920,其中该输入将用作搜索查询),以及(b) 在搜索入口部分接收到任何用户输入前所显示的预测部分(例如,图9B所示预测部分930)。预测部分由以下一项或多项填充:(a)用于联系多个先前联系人员中某个人员的至少一个示能表示(例如,在图9B的建议的人员 940部分显示的示能表示),以及(b)用于在电子设备上可用的多个应用程序的某个应用程序(例如,“深层链接”)内执行预测的动作的至少一个示能表示(例如,图9B的建议的动作950部分)。应用程序“内”指的是执行预测的动作的所述至少一个示能表示,表示到应用程序内的特定页面、视图或状态的链接(例如,图1B的应用程序视图191的其中一个)。换句话讲,当选中用于执行预测的动作的所述至少一个示能表示时,不仅启动应用程序并显示默认内容(或来自与应用程序先前进行的交互的内容),而是显示对应于深层链接的特定页面、视图或状态。
在一些实施方案中,至少部分地基于当前时间从多个先前联系人员中 (例如,通过设备100或主动模块163)自动选择该人员。例如,在每天下午5:30左右,当用户仍在工作地时(根据上文参照图6A至图6B的解释确定工作位置),用户向其室友发送短信,表示他们正在返回家中,因此预测部分包括与室友相关联的示能表示(例如,P-1表示室友)。
在一些实施方案中,至少部分地基于与电子设备的用户相关联的应用程序使用历史自动选择(例如,通过设备100或主动模块163)预测的动作 (例如,(图3A至图3B所示一个或多个应用程序使用表335提供的)应用程序使用历史指示,用户在每天下午2:15左右打开搜索界面(通过提供如上所述的搜索激活手势),搜索“音乐”,选择特定的音乐应用搜索结果,然后播放“散步播放列表”,因此,基于该应用程序使用历史,在搜索入口部分接收到任何用户输入之前,该预测部分包括用于开始在音乐应用内播放该播放列表的示能表示(例如,如图9B中建议的动作950部分中显示的内容所示))。在一些实施方案中,(作为应用程序使用历史的替代或补充)还至少部分地基于当前时间(例如,基于用户在通常执行预测的动作的时间左右提供搜索激活手势)选择在应用程序内执行预测的动作的所述至少一个示能表示。在一些实施方案中(如图9B所示),执行预测的动作的所述至少一个示能表示对应于用户界面对象702,并且因此以上提供的有关用户界面对象702的细节(图6A至6B和图7A至图7B)同样适用于建议的动作部分950以及其中显示的内容。
在一些实施方案中,至少部分地基于对应于电子设备的位置数据进一步选择人员(例如,当用户早晨到达与他们工作相关联的地址时频繁联系的重要人员)。在一些实施方案中,从电子设备的存储器(例如,图1A的设备100的存储器102)中检索该人员的应用程序使用历史和联系人信息。在一些实施方案中,从远离电子设备(例如,图5的一个或多个服务器 502)定位的服务器检索该人员的应用程序使用历史和联系人信息。
在一些实施方案中,使用执行预测应用程序的所述至少一个示能表示进一步填充(808)预测部分(例如,图9B的建议的应用955部分)。在一些实施方案中,至少部分地基于应用程序使用历史自动(通过设备100)选择预测的应用程序。例如,应用程序使用历史(例如,图3A至图3B所示应用程序使用数据表335的一个内的一条或多条记录)指示当用户位于其家庭地址时,每天早上9:00左右打开日历模块143(图1A)。因此,如果当前时间为早上9:00左右,并且位置数据指示用户位于其家庭地址,建议的应用955部分将包括日历模块143的示能表示。再如,应用程序使用历史指示已连续三天在早上5:15左右启动了天气应用程序(例如,图1A的天气桌面小程序149-1),现在是早上5:17(例如,当用户使用搜索激活手势启动spotlight时的当前时间是早上5:17),因此电子设备至少部分地基于该应用程序使用历史用天气应用程序填充搜索界面,使天气应用程序作为预测部分中的预测应用程序中的一个。在一些实施方案中,预测的应用程序和预测的动作显示在单个部分中,其中预测的动作显示在预测的应用程序上方。如之前的示例所述,在一些实施方案中,(作为应用程序使用历史的替代或补充)还至少部分地基于当前时间(例如,基于用户在通常使用预测的应用程序的时间左右提供搜索激活手势)选择执行预测的应用程序的所述至少一个示能表示。
在一些实施方案中,为了填充建议的应用955部分,设备100(或其部件诸如主动模块163)确定是否满足触发的任何先决条件(例如,存储在图4A至图4B的触发条件表402之一中的先决条件),并且根据确定满足特定触发,设备100相应地填充建议的应用955部分(例如,添加与触发相关联的应用程序对应的示能表示,诸如前述示例中的日历模块143或天气桌面小程序149-1)。在一些实施方案中,使用类似的确定过程来填充搜索界面内的其他部分(例如,部分940,950,955,960和990)(为了简洁起见,这些细节在这里不再重复)。
在一些实施方案中,使用预测的附近地点类别进一步填充(808)预测部分(例如,图9B的建议的地点960部分),并且至少部分地基于对应于设备的当前时间和位置数据的一项或多项自动选择预测的地点(例如,附近地点)类别。例如,当前时间为早上7:30左右,位置数据指示设备在受欢迎的咖啡店(在一些实施方案中,咖啡店的受欢迎程度由与大量不同用户相关联的大量设备100上的众包使用数据确定)附近(在预先确定的距离内),并且因此,设备100使用“咖啡店”的示能表示填充建议的地点960 部分。在一些实施方案中,基于当前时间使用对应于附近地点的预测搜索的信息填充建议的地点960部分(作为预测地点类别的补充或替代)。换句话讲,设备基于用户先前在当前时间附近执行的搜索(例如,在搜索模块151或浏览器模块147内进行的搜索),主动预测用户可能再次进行的搜索。例如,基于用户于先前四个场合(或一些其他阈值数量的场合)在上午7:20至上午8:00之间搜索了“咖啡”,响应于检测到搜索激活手势,设备(例如,触发建立模块163-1)使用“咖啡店”的示能表示填充建议的地点960部分。在其他实施方案中,建议的类别仅基于设备的当前位置而不基于时间。例如,显示链接到附近咖啡店的示能表示。这样,用户无需再次手动搜索“咖啡”,而是可简单地选择“咖啡店”或“餐饮”示能表示,然后快速查看所列附近咖啡店的清单。在一些实施方案中,先前的搜索历史连同一个或多个使用条目存储为其他信息(例如,图3B所示其他信息340-1(h))和/或执行过的其他动作(例如,图3B所示执行的其他动作340-1(b))。
在一些实施方案中,设备检测滚动预测部分的用户输入(例如,图9B 所示滚动手势970),并且响应于检测到滚动预测部分的用户输入,设备根据用户输入滚动预测部分(例如,向下滚动搜索界面或仅滚动搜索界面内的预测部分)。响应于滚动,设备在预测部分(例如,图9C所示建议的新闻文章990部分)显现预测新闻文章的至少一个示能表示。在一些实施方案中,至少部分地基于对应于电子设备的位置数据自动(通过设备100)选择预测的新闻文章。在一些实施方案中,无需滚动输入即显示建议的新闻文章990部分。在一些实施方案中,至少部分地基于以下项任选地选择预测的新闻文章(作为位置数据的补充或替代):当前时间(例如,用户在当前时间(例如,用户提供搜索激活手势的时间,该手势使得设备显示具有预测部分930的搜索界面)附近已阅读过类似或相关的文章超过阈值次数(例如,三次));对应于用户的先前搜索历史(例如,用户已经搜索与预测的新闻文章类似或相关的文章超过阈值次数(例如,三次));趋势数据,该趋势数据与其他用户、用户的朋友在社交媒体诸如Twitter或 Facebook等上搜索的新闻报道相关联。
在一些实施方案中,在预测部分930中显示部分940,950,955,960和 990的特定顺序是可配置的,使得用户能够为每个部分选择所需的顺序。例如,用户可以配置顺序,使得第一个显示建议的应用955部分,第二个显示建议的人员940部分,第三个显示建议的动作950部分,第四个显示建议的新闻文章990部分,最后一个显示建议的地点960部分。在一些实施方案中,预测部分930包括部分940,950,955,960和990中的任意两个。在其他实施方案中,预测部分930包括部分940,950,955,960和990中的任意三个。在本发明的其他实施方案中,预测部分930包括部分940,950, 955,960和990中的任意四个。在另一个实施方案中,预测部分930包括部分940,950,955,960和990中的所有。在一些实施方案中,用户对关于应在预测部分930内显示部分940,950,955,960和990中的多少个以及显示哪几个的偏好进行配置。
另外,在一些实施方案中,用户能够配置分配给用于填充部分940, 950,955,960和990的每一者的数据(例如,当前时间、应用程序使用历史、位置数据、其他传感器数据等)的权重。例如,当确定在预测部分930 的建议的人员940部分显示的示能表示时,用户对偏好进行配置,使得当前时间的权重高于位置数据的权重。
现在转向图8B,在一些实施方案中,显示在上述部分940,950,955, 960和990的每一者内的示能表示是可选的,使得用户能够选择以下项之一:建议的动作、建议的应用、建议的地点或建议的新闻文章(每个都按照顺序在下文进行讨论)。
至于在建议的人员940部分内显示的示能表示的选择,在一些实施方案中,设备检测(810)联系该人员的所述至少一个示能表示的选择。在一些实施方案中,设备在所述至少一个示能表示上检测单个触摸输入(例如,在对应于建议的人员940部分内显示的P-1的示能表示上的单次轻击)。在一些实施方案中,响应于检测到联系该人员的所述至少一个示能表示的选择,设备使用该人员的联系人信息(例如,从以上讨论的设备或一个或多个服务器检索的联系人信息)联系该人员(或建议联系该人员的不同通信媒介,例如,短信、电子邮件、电话等)。例如,响应于在对应于P-1 的示能表示上检测到单次轻击,设备向用户的室友发送短信,短信的内容是“正在回家路上”。在一些实施方案中,设备自动联系P-1,而在其他实施方案中,设备显示即时消息模块141并用消息(例如,“正在回家路上”)预先填充模块141内的界面,然后等待来自用户的请求(例如,用户的语音命令或发送按钮的选择),在收到请求后再发送消息。这样,设备用户能够方便和快速地联系该人员(例如,P-1)并且还能发送相关(或所需的)消息,而不必在搜索入口部分中输入任何文本(从而节省了时间,并且避免了用户不得不输入文本而又无法定位该人员的窘境)。
至于在建议的动作950部分内显示的示能表示的选择,在一些实施方案中,设备检测(812)执行预测的动作的所述至少一个示能表示的选择。例如,设备在建议的动作950部分内检测单个触摸输入(例如,在音乐播放器152的图标上方的轻击或在文本“轻击以播放散步播放列表的曲目2”上的轻击)。在一些实施方案中,响应于检测到执行预测的动作的所述至少一个示能表示的选择,设备在触摸敏感显示器上显示该应用程序并且在所显示的应用程序内执行预测的动作。换句话讲,设备停止显示搜索界面 (例如,具有搜索入口部分和预测部分的搜索模块151),而是启动并显示应用程序,并且在所显示的应用程序内执行预测的动作。例如,响应于在文本“轻击以播放散步播放列表的曲目2”上检测到单次轻击,设备显示音乐播放器模块152,并且通过播放散步播放列表的曲目2来执行预测的动作。这样,设备用户能够方便和快速地访问相关的(或所需的)应用程序 (例如,音乐播放器)并且还能在所需应用程序内执行所需的功能,而不必在搜索入口部分中输入任何文本(从而节省了时间,并且避免了用户不得不输入文本而又无法定位音乐播放器模块的窘境)。
至于在建议的应用955部分内显示的示能表示的选择,在一些实施方案中,设备检测(814)执行预测的应用程序的所述至少一个示能表示的选择。在一些实施方案中,设备在所述至少一个示能表示上检测单个触摸输入(例如,在浏览器应用147的图标的示能表示上的单次轻击)。在一些实施方案中,响应于检测到执行预测的应用程序的所述至少一个示能表示的选择,设备在触敏显示器上显示预测的应用程序(例如,设备停止显示具有搜索入口部分和预测部分的搜索界面,而在触敏显示器上打开并显示预测的应用程序)。例如,响应于在对应于浏览器应用147图标的示能表示上检测到单次轻击,设备显示浏览器应用147(例如,图1A所示的浏览器模块147)。这样,设备用户能够方便和快速地访问相关的(或所需的) 应用程序(例如,浏览器应用程序),而不必在搜索入口部分中输入任何文本(从而节省了时间,并且避免了用户不得不输入文本而又无法定位浏览器应用程序的窘境)。
至于在建议的地点960部分内显示的示能表示的选择,在一些实施方案中,设备检测(816)预测的地点(例如,附近地点)类别的所述至少一个示能表示的选择。在一些实施方案中,设备在所述至少一个示能表示上检测单个触摸输入(例如,在“咖啡店”的示能表示上的单次轻击)。在一些实施方案中,响应于检测到执行预测的地点类别的所述至少一个示能表示的选择,设备:(i)接收对应于至少一个附近地点的数据(例如,由地图模块154确定的所述至少一个附近地点的地址信息或GPS坐标),并且(ii) 在触敏显示器上显示对应于所述至少一个附近地点的接收的数据(例如,停止显示搜索界面、启动地图模块154、显示地图模块154,该模块包括所显示地图内的用户界面元素,该元素对应于接收的数据,诸如表示所述至少一个附近地点GPS坐标的圆点)。在一些实施方案中,大体上并行地执行接收和显示步骤。例如,响应于在对应于“咖啡店”的示能表示上检测到单次轻击,设备检索附近提供咖啡的咖啡馆的GPS坐标,并且并行地显示地图模块154,并且在接收到GPS坐标之后,显示表示咖啡馆GPS坐标的圆点。这样,设备用户能够方便和快速地定位相关的(或所需的)兴趣点(例如,以上讨论的咖啡馆),而不必在搜索入口部分中输入任何文本 (从而节省了时间,并且避免了用户不得不输入文本而又无法定位咖啡馆或任何咖啡店的窘境)。在一些实施方案中,上述接收数据操作在接收预测的地点类别的所述至少一个示能表示的选择之前执行(或至少部分地执行)。这样,预加载对应于附近地点的数据,并且在接收到针对预测的地点类别的所述至少一个示能表示的选择之后,快速在地图上显示该数据。
至于在建议的新闻文章990部分内显示的示能表示的选择,在一些实施方案中,设备检测(818)预测的新闻文章的所述至少一个示能表示的选择。在一些实施方案中,设备在所述至少一个示能表示上检测单个触摸输入(例如,在图9C所示新闻1的示能表示上的单次轻击)。在一些实施方案中,响应于检测到预测的新闻文章的所述至少一个示能表示的选择,设备在触敏显示器上显示预测的新闻文章(例如,设备停止显示具有搜索入口部分和预测部分的搜索界面,而在浏览器模块147内打开并显示预测的新闻文章)。例如,响应于在对应于新闻1的示能表示上检测到单次轻击,设备在浏览器应用147(例如,图1A所示的浏览器模块147)内显示对应于新闻1的新闻文章。这样,设备用户能够方便和快速地访问相关的(或所需的)新闻文章(例如,浏览器应用程序),而不必在搜索入口部分中输入任何文本(从而节省了时间,并且避免了用户不得不输入文本而又无法定位预测的新闻文章的窘境)。
在一些实施方案中,基于以下参考第1至11部分所讨论的技术选择包括在搜索界面中的预测/建议的内容项(例如,结合方法600和800,或本文讨论的任意其他方法)。
应当理解,对图8A至图8B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文参考本文所述的其他方法(例如,方法600)描述的其他过程的细节同样以类似的方式适用于上文参考图8A至图8B描述的方法800。例如,上文参考方法800描述的用户界面对象任选地具有本文参考本文所述的其他方法(例如,方法600)描述的用户界面对象的特征中的一个或多个。在一些实施方案中,第1至11部分的任何相关细节可以结合方法800用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图10A至图10C示出了根据一些实施方案基于当前电子设备上显示的内容主动建议搜索查询的方法1000的流程图表示。图11A至图11J用于示出图10A至图10C中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
在一些实施方案中,方法1000由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法1000由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法1000。在一些实施方案中,参照图1A,方法1000的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块 132)和触敏显示器(例如,触敏显示器系统112)。方法1000中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法1000提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议相关内容(例如,建议的搜索查询)。该方法需要更少的触摸输入以在电子设备上执行搜索(例如,用户仅需选择建议的搜索查询,而不需要键入任何文本),从而创建更有效的人机界面并允许用户快速执行相关搜索。通过提供建议的搜索查询,方法1000还有助于确保用户知晓设备上的主动助理可用,以帮助更快地执行动作(从而提高用户对其设备的满意度)。对于电池驱动的电子设备,方法1000既节省电力又增加了电池两次充电之间的时间间隔。
如图10A所示,设备在显示器上显示(1002)与正在电子设备上执行的应用程序相关联的内容。例如,如图11A所示,触摸屏112上显示与正在电子设备100上执行的电子邮件应用程序相关联的内容。该内容至少包括发件人姓名和/或电子邮件地址(例如“发件人:John Applecore”),主题文本(例如,“下一个目的地是哪里?”)和电子邮件正文。在一些实施方案中,电子邮件的正文可以包括图像1108和/或文本1110。
在显示应用程序时,设备通过触敏表面检测(1004)轻扫手势,当检测到该手势时,将使电子设备进入不同于该应用程序的搜索模式。在一些实施方案中,检测轻扫手势包括(1006)在当前显示的内容的至少一部分上检测轻扫手势。在一些实施方案中,轻扫手势用于调用应用程序上的搜索界面 (例如,诸如图11B所示)。在一些实施方案中,轻扫手势是在应用程序上接收的第一轻扫手势,并且不在与应用程序相关联的内容中包括的任何用户界面字段内接收该手势(例如,第一轻扫手势不是在应用程序中可能显示的搜索框内的轻击)。在一些实施方案中,第一轻扫手势使得电子设备进入不同于该应用程序的电子设备的搜索模式,该搜索模式包括显示搜索界面(例如,诸如图11B和图11D、图11F至图11J所示的搜索界面,并在下文更详细地讨论)。
在一些实施方案中,通过在触敏显示器上向下轻扫(并且移动至少阈值距离(例如,2、3、4cm))可在任何时间提供第一轻扫手势(例如,图 11A和图11E分别所示的向下轻扫1102-1和1102-3)。在一些实施方案中,在触敏显示器上当前显示应用程序时检测轻扫手势(例如,上文所述的第一轻扫手势),并且在当前为应用程序显示的内容的顶部检测该轻扫手势。例如,在图11A和图11E中,在当前显示电子邮件应用程序时,在电子邮件内容的顶部检测向下轻扫手势1102-1和1102-3。
在一些实施方案中,同样使设备进入搜索模式的第二轻扫手势在稍后可用(例如,退出应用程序后)。在一些实施方案中,在检测轻扫手势之前,设备检测(1008)与查看电子设备home屏幕的请求相对应的输入,并且响应于检测到该输入,设备停止显示与应用程序相关联的内容并显示电子设备的home屏幕的相应页面。在一些实施方案中,所述相应页面是home 屏幕页面序列中的初始页面(例如,home屏幕页面序列中的第一页面),并且在显示器上显示home屏幕的初始页面时检测轻扫手势(例如,第二轻扫手势)。
例如,如图11A和图11E所示,在显示应用程序时,用户通过轻击 1106设备的物理Home按钮204退出应用程序并切换到查看图11C所示的home屏幕。在图11C中,通过突出显示home屏幕页面指示符的第一点 1112-1而不突出显示home屏幕的其余点1112-2,指示显示home屏幕的第一页面。在查看home屏幕的第一页面时,用户能够通过沿着大体上水平的方向轻扫提供第二轻扫手势(例如,图11E中所示从左向右的轻扫手势 1104-1)。响应于接收到第二轻扫手势,电子设备进入搜索模式,该模式包括在触敏显示器上显示搜索界面(如下文参照图11D更详细的讨论)。
响应于检测到轻扫手势,设备进入(1010)搜索模式,搜索模式包括显示在显示器上的搜索界面。示例性搜索界面如图11B和图11D所示。在一些实施方案中,搜索界面被显示(1012)为半透明地覆盖应用程序,例如图 11B中的搜索界面1115。在一些实施方案中,搜索界面被显示为半透明地覆盖应用程序(例如,图11B中所示的搜索界面1115)。在一些实施方案中,逐渐显示搜索界面1115,使得播放搜索界面1115的动画,例如从一侧淡入和/或切换。在图11B中,搜索界面1115被显示为半透明地覆盖在电子邮件应用程序上,使得在触敏显示器112上,电子邮件应用程序部分可见地位于搜索界面1115下方。在一些实施方案中,响应于上述第二轻扫手势,如图11G至图11J所示,搜索界面被显示为半透明地覆盖home屏幕。
在一些实施方案中,搜索界面还包括(1014)一个或多个趋势查询,例如由与用户相关联的社交网络的成员执行的一个或多个趋势术语。在一些实施方案中,所述一个或多个趋势查询包括基于以下项的趋势术语:(i)流行的新闻条目,(ii)电子设备的当前位置(例如,如果用户访问其住处以外的位置(诸如东京),并且/或者(iii)已知的游客感兴趣的项目等。例如,趋势搜索1160在图11B和11D中示出为可选的,并且所述一个或多个趋势术语包括:例如“巴塔哥尼亚”、“厄瓜多尔”、“瑞尼尔山”等。在一些实施方案中,搜索界面还包括趋势GIF(例如,基于激发人们分享GIF 欲望的感情性质的术语,诸如“恭喜!”)。
结合进入搜索模式,设备至少部分地基于与内容相关联的信息来确定 (1018)所述至少一个建议的搜索查询。在一些实施方案中,当播放搜索界面 1115的动画时(例如,随着搜索界面1115逐渐显现)进行此项确定。在其他实施方案中,在接收轻扫手势之前进行此项确定。
在一些实施方案中,根据确定该内容包括文本内容,设备至少部分地基于文本内容确定(1022)所述至少一个建议的搜索查询。在一些实施方案中,至少部分地基于文本内容确定所述至少一个建议的搜索查询包括 (1024):分析文本内容以检测用于确定所述至少一个建议搜索查询的一个或多个预定义关键字。在一些实施方案中,所述一个或多个预定义的关键字存储在电子设备上存储的一个或多个数据结构中,包括具有针对预定义关键字的至少150,000个条目的第一数据结构。这样,设备包括多个通用术语,可以在内容中快速检测这些术语并在随后将其作为建议的搜索查询提供给用户,并且完成这一切不需要用户在搜索界面进行任何输入。在一些实施方案中,所述一个或多个数据结构的第二数据结构与上下文工具包相关联,该上下文工具包利用第二数据结构识别内容的上下文,然后至少部分地基于所识别的内容的上下文识别所述至少一个建议的搜索查询。在一些实施方案中,第二数据结构是设备上索引(诸如特定于电子设备的维基百科索引)。在一些实施方案中,使用第一数据结构和第二数据结构的两者来确定建议的搜索查询,然后将建议的搜索查询聚合并呈现给用户(例如,在接收任何用户输入之前,在搜索界面内)。在一些实施方案中,利用第一数据结构和第二数据结构的两者还允许电子设备帮助区分名称相同但地址/电话不同的商家。
例如,在图11A中,与电子邮件应用程序相关联的内容包括文本内容,诸如发件人和/或接收人信息、主题行和电子邮件正文中的文本“我爱厄瓜多尔!”等。设备至少部分地基于文本内容,确定至少一个建议的搜索查询并如图11B所示显示搜索结果,例如,厄瓜多尔、John Applecore、导游服务、卡扬贝火山、安蒂萨纳火山等。术语“厄瓜多尔”可以是作为第一数据结构中条目一部分存储在电子设备上的预定义关键字,同时在利用第一数据结构的同时,可以使用第二数据结构基于内容的上下文来识别其他条目。
在一些实施方案中,确定所述至少一个建议的搜索查询包括(1026)确定多个建议的搜索查询,并且填充搜索界面包括用所述多个建议的搜索查询填充搜索界面。如图11B所示,建议的搜索1150中显示一个建议的搜索查询“厄瓜多尔”。任选地,如图11B中的虚线所示,在建议的搜索1150 部分中,除了“厄瓜多尔”外,还显示多个建议的搜索查询,例如“John Applecore”、“导游服务”、“卡扬贝火山”和“安蒂萨纳火山”等。
在一些实施方案中,结合进入搜索模式,设备通过使用电子设备上可用的一个或多个辅助功能(在显示搜索界面之前和/或之后)获取(1036)与该内容相关联的信息。在一些实施方案中,电子设备的操作系统无法直接访问(或了解)电子设备上的一些应用程序(例如,由操作系统提供商以外的公司开发的第三方应用程序)当前所显示的内容。因此,操作系统通过使用API(例如,辅助功能API)和电子设备上可用的其他功能来获取关于内容的信息,并允许操作系统了解有关在第三方应用程序内显示的内容。
在一些实施方案中,使用一个或多个辅助功能包括(1038)使用一个或多个辅助功能来生成与内容相关联的信息,方法是:(i)将自然语言处理算法应用于当前在应用程序中显示的文本内容;以及(ii)使用从自然语言处理算法获取的数据确定描述该内容的一个或多个关键字,并且其中基于所述一个或多个关键字确定所述至少一个建议的搜索查询。(例如,用于提供诸如VoiceOver、Dictation和Speak Screen功能的自然语言处理算法,这些功能可用作电子设备上的所述一个或多个辅助功能)。在一些实施方案中,与内容相关联的信息包括从当前在应用程序中显示的内容中提取的信息,包括(例如,使用上述自然语言处理算法提取的)姓名、地址、电话号码、即时消息处理和电子邮件地址。
在一些实施方案中,确定描述该内容的所述一个或多个关键字还包括 (1040):(i)检索与当前在应用程序中显示的非文本内容相对应的元数据,以及(ii)除从自然语言处理算法获取的数据外,还使用检索的元数据确定一个或多个关键字。非文本内容的示例是在应用程序内显示的图像(例如,图 11A中的图像1108和图11E中的一个或多个图像1114)。在一些实施方案中,一个或多个信息标签(诸如HTML标签、CSS描述符和其他类似元数据)与图像相关联,并且可用于帮助所述一个或多个辅助功能了解图像 (例如,信息标签的其中一个可描述图像的类型并且/或者提供关于图像中显示的内容的细节)。
在一些实施方案中(特别是当在应用程序中仅显示非文本内容时),不使用自然语言处理算法,而是仅使用所检索的元数据来确定所述一个或多个关键字。在一些实施方案中,先前在应用程序中提供的来自用户的输入还用于帮助确定所述一个或多个关键字。例如,用户搜索特定的餐厅名称以定位地址,并且/或者还可以使用该餐厅的电话号码和名称(例如,即使应用程序中当前并为显示该餐厅名称并且该餐厅名称仅用作较早前的输入或搜索查询)来帮助确定描述该内容的所述一个或多个关键字。
转向图10C,在搜索界面处接收到任何用户输入之前,设备使用所述至少一个建议的搜索查询填充(1020)显示的搜索界面。在一些实施方案中,搜索界面包括搜索入口部分(例如,位于图11B、图11D和图11F至图 11J所示搜索界面1115顶部的搜索入口部分1120)和搜索结果部分(例如,位于图11B、图11D和图11F至图11J所示搜索入口部分1120正下方的搜索结果部分1130),并且所述至少一个建议的搜索查询显示在搜索结果部分内。例如,在图11B中,建议的搜索1150包括至少一个建议的搜索查询,例如“厄瓜多尔”、“JohnApplecore”、“导游服务”、“卡扬贝火山”、“安蒂萨纳火山”,并且所述至少一个建议的查询显示在搜索结果部分1130中。
在一些实施方案中,在显示home屏幕的任何页面的同时上述第一轻扫手势可用。例如,除了能够在应用程序上使用第一轻扫手势1102-1进入图11A和图11B所示的搜索模式外,用户还可以在home屏幕的任意页面上使用第一轻扫手势进入搜索模式。在图11C中,响应于大体上沿垂直方向(例如,向下)的轻扫1104-2,设备进入搜索模式并显示如图11D所示的搜索界面1105。这样,任何时候用户选择进入搜索模式,向用户呈现与应用程序中最近查看的内容相关的相关搜索查询。尽管图11C示出了在 home屏幕的第一页面上检测轻扫手势1104-2(所述第一页面通过突出显示 home屏幕页面指示符的第一点1112-1,而不突出显示home屏幕页面指示符的其余点1112-2来指示),但可以在home屏幕的任意页面上检测轻扫手势1104-2,例如,在home屏幕页面的初始页面以外的页面上检测轻扫手势,其中突出显示其余点1112-2的其中一个,而第一点1112-1则不突出显示。
在一些实施方案中,设备通过触敏表面在当前显示的新内容上检测 (1028)轻扫手势。响应于检测到新的轻扫手势,设备进入搜索模式。在一些实施方案中,进入搜索模式包括在显示器上显示搜索界面。结合进入搜索模式并根据确定新内容不包括文本内容,在一些实施方案中,设备使用建议的搜索查询填充搜索界面,其中建议的搜索查询基于来自电子设备用户的一组选择的历史搜索查询。
例如,在查看如图11A所示的电子邮件内容并退出搜索界面后,用户查看了瑞尼尔山1114-2(图11E)的图片和厄瓜多尔1114-1(图11E)的图片。两个图像均不包括文本内容。随后,如图11E所示,检测到新的轻扫手势1102-3。响应于检测到新的轻扫手势1102-3,设备进入搜索模式并在显示器上显示如图11F所示的搜索界面1115。在图11F中,“瑞尼尔山”显示为历史搜索查询,并显示在最近的搜索1155部分中。
在一些实施方案中,搜索界面与兴趣点一起显示(1130),兴趣点基于不同于该应用程序的第二应用程序提供的位置信息。例如,继续上述示例,基于与图像相关联的标签和/或元数据,通过第二应用程序诸如成像应用程序获取瑞尼尔山的位置信息。。如图11F所示,响应于新的轻扫手势 1102-3(图11E),如图11F所示,搜索界面1115在建议的地点部分1154 中显示兴趣点瑞尼尔山1157-1。
在一些实施方案中,兴趣点的显示不仅响应于非文本内容上的新的轻扫手势。可以响应于文本内容上的新的轻扫手势显示兴趣点。例如,在用户正在第一应用程序(诸如YELP应用程序)中搜索餐厅的场景中,用户在随后切换到文本消息应用程序(例如,应用程序),然后用户在文本消息应用程序上提供轻扫手势,作为响应,设备基于用户早期与第一应用程序的交互预先填充搜索界面以包括兴趣点(例如,图11F所示美味寿司 1157-2)并将其作为建议的搜索查询。
在一些实施方案中,搜索界面还包括(1032)一个或多个建议的应用程序。建议的应用程序是基于与用户相关联的应用程序使用历史预测为电子设备用户感兴趣的应用程序(以上参照图3A和图3B讨论了应用程序使用历史)。在一些实施方案中,至少部分地基于最近搜索查询的频率(例如,基于用户进行每个历史搜索查询的时间和频率)选择该组历史搜索查询。例如,如图11D所示,基于应用程序使用历史,在建议的应用1162部分中向用户建议健康242、图书242、地图236应用程序。可以至少部分地基于最近搜索查询的频率选择这些应用程序建议。在一些实施方案中,预测为用户感兴趣的应用程序是电子设备上尚未安装的应用程序。尚未安装的应用程序237的名称与其他建议的应用程序显示在一起,并提供该应用程序的安装链接。
在一些实施方案中,显示一个或多个建议的应用程序不仅响应于在非文本内容上的新的轻扫。例如,如图11D和图11E所示,响应于在home 屏幕上检测到轻扫手势1104-2(例如,在home屏幕的任意页面上),建议的应用1155任选地显示在搜索界面1115的搜索结果部分1130中。
尽管图11B、图11D和图11F示出了将建议的搜索结果分类并在搜索界面1115的不同部分显示建议的搜索,但是向用户示出了其他显示形式。例如,建议的搜索结果可以混合。如图9D所示,兴趣点、建议的地点、最近搜索和建议的应用程序一起显示在“我的位置和最近浏览”中。在一些实施方案中,根据一组预定义的规则执行建议搜索的混合。例如,来自建议搜索来源的每一者的搜索结果发现的最大数量存在限制(例如,8个)。使用预先确定的优先顺序来确定建议搜索的顺序(例如,关联性、历史,以及卸载的hero资产)。在另一个示例中,预先确定的一组规则包括:(i) 对于每种类型的建议搜索结果,其具有某个位置,并且具有最大数量限制;(ii)对于某些类型的建议搜索结果(例如,尚未安装的应用程序),混合结果中此类结果具有最大数量限制(例如,每种只能有1个);(iii)或者,对于历史结果,则取决于用户。例如,在一些实施方案中,至少部分地基于最近搜索查询的频率选择(1034)该组历史搜索查询。(例如,基于用户进行每项历史搜索查询的时间和频率)。
在一些实施方案中,响应于搜索激活手势,仅显示预测为用户最感兴趣的一个或多个建议的应用程序。例如,如图11G-11J所示,响应于接收到搜索激活手势(例如,图11C中的轻扫1104),设备进入搜索模式并在触敏显示器上显示半透明搜索界面。搜索界面包括搜索入口部分1120和搜索结果部分1130。例如,如图11G所示,建议应用程序被预测为用户最感兴趣的应用程序。多个应用程序显示在搜索结果部分1130中。
在一些实施方案中,建议的应用程序使用位置信息来建议预测为用户所最感兴趣的内容。例如,在图11H中,“找到我的车”应用程序被预测为用户所最感兴趣的。在搜索结果部分1130中,显示“找到我的车”应用程序的用户界面。应用程序使用用户的位置信息在地图上显示一个大头针,并显示用户与通过圆点指示的汽车的相对位置。在另一个示例中,基于用户的位置和/或上述其他信息(例如,使用数据、文本内容和/或非文本内容等),显示附近兴趣点的应用程序被预测为用户所最感兴趣的。在图 11I中,搜索结果部分1130包括兴趣点,例如,“餐饮”类别中名为“Go Japanese Fusion”的餐厅。“餐饮”类别如图以双圆突出显示,附近的餐厅“Go Japanese Fusion”基于用户的位置信息和餐厅的位置进行定位。在另一个示例中,如图11J所示,“餐饮”类别中的多个兴趣点被预测为用户所最感兴趣的,并且显示餐饮类别内的这些兴趣点,例如Caffe Macs、Out Steakhouse和Chip MexicanGrill,同时突出显示“餐饮”类别。
应当理解,对图10A至图10C中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法600和方法800)所述的其他过程的细节同样以类似的方式适用于上文结合图10A 至图10C所述的方法1000。例如,上文参考方法1000描述的用户界面对象(例如,显示在搜索界面内的用户界面对象)任选地具有本文参考本文所述的其他方法(例如,方法600和方法800)描述的用户界面对象的特征中的一个或多个。在一些实施方案中,方法1000的方面任选地由以下讨论的方法1200的方面互换或补充(反之亦然)。在一些实施方案中,第1至 11部分的任何相关细节可以结合方法1000用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图12示出了根据一些实施方案的进入搜索模式的方法1200的流程图表示。图13A至图13B用于示出图12的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面 195上的输入,如图1D中所示。
在一些实施方案中,方法1200由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法1200由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法1200。在一些实施方案中,参照图1A,方法1200的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块 132)和触敏显示器(例如,触敏显示器系统112)。方法1200中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法1200提供了一种响应于接收到手势,在电子设备上主动建议相关内容(例如,建议的搜索查询或示能表示,其具有与用户当前位置相关联的内容)的直观方式。该方法允许用户通过最少数量的用户输入高效地识别和选择所需内容,从而创建更有效的人机界面(例如,设备为附近兴趣点提供建议的搜索查询和内容,并且用户仅需选择这些建议的搜索查询和内容,而不必搜索和定位它们)。对于电池驱动的电子设备,更快且更有效地识别和显示相关内容节省了功率并且增加了电池充电之间的时间。
如图12所示,设备通过触敏表面在用户界面上检测(1202)轻扫手势。在一些实施方案中,当检测到轻扫手势时将使电子设备进入搜索模式。响应于检测到轻扫手势,设备进入搜索模式。在一些实施方案中,进入搜索模式包括:在搜索界面内接收到任何用户输入前(例如,未在搜索界面内的搜索框中输入文本、搜索框内未接收到输入(未在搜索框内进行轻击) 等),使用第一内容项填充不同于用户界面的搜索界面。
在一些实施方案中,根据确定用户界面包括与某个应用程序相关联的内容,其中该用户界面不同于包括用于调用应用程序的可选图标的home屏幕(并且因此,在应用特定的内容上检测到轻扫手势),设备使用第一内容项填充搜索界面包括使用至少一个建议的搜索查询填充搜索界面,其中该搜索查询至少部分地基于与该应用程序相关联的内容。例如,如上文参照图11A至图11B所述,响应于具有“John Applecore”、厄瓜多尔图像和 /或“我爱厄瓜多尔”文本(图11A)等内容的电子邮件应用程序上的轻扫手势1102,搜索界面1115被填充(图11B)。搜索界面1115至少部分地基于与电子邮件应用程序相关联的内容,包括至少一个建议的搜索查询,例如“厄瓜多尔”、“John Applecore”。在另一个示例中,如上文参照图 11E至图11F所述,响应于具有厄瓜多尔和/或瑞尼尔山图像(图11E)内容的图像应用程序上的轻扫手势1102,搜索界面1115被填充(图11F)。搜索界面1115至少部分地基于图像内容包括至少一个建议的搜索查询,例如“厄瓜多尔”、“瑞尼尔山”。
在一些实施方案中,根据确定用户界面与home屏幕的页面相关联 (例如,图11C所示在初始home屏幕页面上的轻扫手势),使用第一内容项填充搜索界面包括使用示能表示填充搜索界面,该示能表示包括对电子设备当前位置的阈值距离内的至少一个兴趣点的可选描述。例如,当设备接近带餐厅的商场时,将显示关于这些餐厅的信息而不是建议的搜索查询,因为基于用户与商场的接近程度,关于餐厅的信息被预测为用户所最感兴趣的。在以上参照图11I和图11J解释的示例中,响应于在home屏幕上检测到轻扫手势1104(图11C),在搜索界面的搜索结果部分1130中显示至少一个附近兴趣点,例如,“Go Japanese Fusion”餐厅(图11I)、“Caffe Macs”、“Out Steakhouse”、“Chip Mexican Grill”(图11J),而不显示如图11D所示的建议的搜索查询界面。在图11I和图11J中,每个兴趣点包括示能表示,并且包括可选描述,当选中时将提供关于该兴趣点的更多信息,例如,选择图标和/或兴趣点的描述将提供更多描述、价格、菜单和/或距离信息。
在一些实施方案中,有关使用建议搜索查询还是附近兴趣点的示能表示填充搜索界面的判定除此之外或另选地基于自显示应用程序内容起是否经过了预先确定的时间段。例如,根据确定(i)在home屏幕页面上检测到轻扫手势(例如,在内容上检测到轻扫手势),以及(ii)自显示与应用程序相关联的内容以来的时间段低于阈值时间段,仍然使用所述至少一个建议的搜索查询填充搜索界面。因此,在这样的实施方案中,确定未在内容上检测到轻扫手势包括:确定自显示该内容以来的时间段达到或超过阈值时间段(例如,在很长一段时间2分钟、3分钟以前查看内容),则设备确定用户不太可能对基于该内容的建议的搜索查询感兴趣,而是使用包括所述至少一个兴趣点的可选描述的示能表示来填充该搜索界面。这样,如果设备确定最近显示了与该应用程序相关联的内容,则仍然向用户提供建议的搜索查询。
在一些实施方案中,使用示能表示填充搜索界面包括(1204)显示搜索界面的搜索入口部分。在一些实施方案中,设备在搜索入口部分检测(1206) 输入;并且响应于在搜索入口部分检测到输入(例如,在其中轻击),电子设备停止显示示能表示并在搜索界面内显示所述至少一个建议的搜索查询。例如,如图13A所示,搜索界面包括搜索入口部分1120和搜索结果部分1130,搜索结果部分具有至少一个附近兴趣点的示能表示(例如,图 13A所示附近餐厅)。在显示具有附近兴趣点的搜索界面时,在搜索入口部分1120检测输入1302,例如,如图13A所示,输入1302为用户在搜索框内的轻击。响应于检测到输入1302,在图13B中,设备停止显示与附近兴趣点相关联的所述至少一个示能表示,并在搜索结果部分1130中显示建议的搜索查询,例如,厄瓜多尔、雷尼尔山、美味寿司等。因此,设备能够在建议的搜索查询和建议的兴趣点之间快速切换(在该示例中,用户在搜索框内轻击,指示他们对建议的兴趣点不感兴趣,并且因此,设备尝试提供不同类型的建议内容,例如,基于先前在其他应用程序中查看的内容的建议搜索查询)。
以下参照图16A至图16B和图17A至图17E提供关于所述至少一个兴趣点的可选描述的更多细节。以上参照图10A至图10C和图11A至图 11J提供关于使用所述至少一个建议的搜索查询填充搜索界面的更多细节。
应当理解,对图12中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法600,800,1000) 所述的其他过程的细节同样以类似的方式适用于上文结合图12所述的方法 1200。例如,上文参考方法1200描述的用户界面对象和/或操作任选地具有本文参考本文所述的其他方法(例如,方法600,800和1000)描述的用户界面对象和/或操作的特征中的一个或多个。在一些实施方案中,第1至11 部分的任何相关细节可以结合方法1200用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图14示出了根据一些实施方案在具有触敏显示器的电子设备上主动提供车辆位置信息的方法1400的流程图表示。图15A至图15B用于示出图 14的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
在一些实施方案中,方法1400由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法1400由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法1400。在一些实施方案中,参照图1A,方法1400的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块 132)、一个或多个位置传感器(例如,加速度计168、磁力计和/或GPS 接收器)和触敏显示器(例如,触敏显示器系统112)。方法1400中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,当用户立即需要该信息时,方法1400提供了一种直观的方式来主动提供位置信息。该方法通过主动提供车辆位置信息而不需要用户亲自尝试定位该信息,并在确定用户返回到停放的车辆时提供信息,从而创建更有效的人机界面。对于电池驱动的电子设备,方法1400既节省电力又增加了电池两次充电之间的时间间隔。
如图14所示,在无来自用户的指令情况下,设备自动地执行(1402)以下所述步骤1404和1406。在步骤1404中,设备确定电子设备用户位于停留在某个地理位置的车辆内。
在一些实施方案中,确定车辆已停留在某个地理位置包括:确定电子设备已经在该地理位置处停留超过某个阈值时间周期,例如,设备在以超过阈值速度的速度移动后停留在一个地点约2分钟,因此这表明车辆现在已停放。在一些实施方案中,确定车辆已停留在某个地理位置包括:确定电子设备和车辆之间的通信链路已经断开,例如,设备失去与车辆的蓝牙连接和/或用户拆下用于连接设备和车辆的电缆等,从而提供车辆已停止和/ 或车辆发动机已关闭的指示。在一些实施方案中,确定车辆已停留在某个地理位置包括:确定该地理位置对应于停车场内的某个位置,例如,将当前GPS坐标插入(或发送到)地图应用程序中以确定该地理位置是否在停车场内。
在一些实施方案中,为了确定车辆是否已停留在该地理位置处,仅进行上述确定的一个或多个,在其他实施方案中,执行所述确定的两个或更多个,而在其他实施方案中,执行全部三个确定以评估车辆是否停留在该地理位置处。例如,在一些实施方案中,确定用户处于停留在该地理位置处的车辆中包括:(i)通过确定电子设备如上所述正在以超过阈值速度的速度移动确定用户位于车辆内(ii)通过以下一项或多项确定车辆已经停留在该地理位置处:(a)确定电子设备已经在该地理位置处停留超过如上所述某个阈值时间周期,(b)确定电子设备与车辆之间的通信链路如上所述已断开,以及(c)确定该地理位置对应于如上所述停车场内的某个位置。
在步骤1406中,设备进一步确定用户是否已经离开车辆。在一些实施方案中,设备通过确定其当前位置距离该地理位置超出阈值距离来进行该确定。在一些实施方案中,设备通过确定用户已经物理地断开了设备与车辆的连接,或用户已经断开了设备和车辆之间的无线连接(例如,基于蓝牙或WiFi的连接)进行该确定。以下就确定用户已离开位于该地理位置处的车辆(具有足够高的置信度)提供了更多细节。
在确定用户已经离开位于该地理位置处的车辆时,设备确定(1408)从位置传感器检索的用以识别地理位置的定位信息是否满足准确度标准。在一些实施方案中,准确度标准包括当与定位信息相关联的GPS读数准确度高于准确度的阈值水平(例如,10米或更小的圆形误差概率)时所满足的标准。
在确定定位信息不满足准确度标准(1408–否)时,设备向用户提供 (1410)输入关于该地理位置的信息的提示,并且响应于提供该提示,设备从用户接收关于该地理位置的信息并将该信息存储为车辆位置信息。在一些实施方案中,提示是由可通过电子设备使用的虚拟助理提供的音频提示。当提示是音频提示时,从用户接收信息包括从用户接收识别该地理位置的口头描述。在一些实施方案中,来自虚拟助理的提示指示用户拍摄位于该地理位置处的车辆的照片和/或拍摄车辆周围区域的照片。在一些实施方案中,指示用户提供该地理位置的口头描述。
在一些实施方案中,在确定定位信息满足准确度标准(1408-是)时,在无来自用户的指令情况下,设备自动将定位信息存储(1412)为车辆位置信息。在一些实施方案中,如果定位信息足够准确(例如,满足准确度标准),则不向用户提供提示。在其他实施方案中,即使定位信息足够准确,设备仍然提示用户提供有关该地理位置的附加细节(口头、文本,或按照上文参照操作1410的解释进行拍照),以便保存这些附加细节并在例如用户返回车辆而设备又没有较强的GPS信号时呈现给用户。
在一些实施方案中,设备进一步确定(1414)用户是否正在前往该地理位置。在一些实施方案中,确定用户是否正在前往该地理位置包括:使用从位置传感器接收的新的定位信息来确定电子设备正在向该地理位置移动。在一些实施方案中,确定用户是否正在前往该地理位置包括:(i)确定电子设备在另一个地理位置(例如,在与购物中心、餐厅、已知的用户家庭地址或工作地址相关联的位置/地点等)处停留超过阈值时间周期;以及 (ii)确定新的定位信息表明电子设备正在离开另一个地理位置并向该地理位置移动。在一些实施方案中,除此之外或另选地,设备将拍摄的该地理位置的图片与用户当前位置的图像进行比较,以便确定用户是否正在前往该地理位置(例如,通过识别图像中的共同或重叠视觉元素)。在一些实施方案中,除此之外或另选地,设备检测到用户正在访问设置用户界面,该用户界面允许用户建立或搜索与车辆的数据连接,并且以这种方式,设备收到用户正在前往该地理位置的提示。
在一些实施方案中,根据确定用户正前往该地理位置,设备显示包括车辆位置信息的用户界面对象。在一些实施方案中,用户界面对象是包括用户当前位置标识符和地理位置的单独标识符的地图对象。例如,如图 15A所示,搜索用户界面包括搜索入口部分1120和搜索结果部分1130,搜索结果部分是地图对象,包括由圆点标识的地理位置处的车辆位置信息、位置标签“Infinite Loop2“和由大头针单独标识的用户当前位置。
在一些实施方案中,用户界面对象显示在电子设备的锁定屏幕上。例如,如图15B所示,地图对象显示在锁定屏幕上。因此,在无来自用户的指令情况下,设备基于相对准确的位置信息预测搜索汽车被预测为用户所感兴趣的,并且提供指示汽车位置的地图,而无需用户解锁电子设备。
在一些实施方案中,响应于使得电子设备进入搜索模式的轻扫手势,显示用户界面对象。在一些实施方案中,响应于接收到相同的轻扫手势,执行确定,确定用户是否正在前往该地理位置。因此,相同的轻扫手势使得设备确定用户是否正在前往该地理位置,并基于相对准确的位置信息显示该用户界面对象。
在一些实施方案中,搜索模式包括显示经过预先填充以包括用户界面对象(例如,包括对应于该地理位置的标识符的地图对象)的搜索界面。换句话讲,在搜索界面内从用户接收到任何用户输入之前(例如,在用户输入任何搜索查询之前),填充搜索界面以包括地图对象,使得向用户提供视觉提醒的快速访问,该视觉提醒为关于其停车处的地理位置的提醒 (例如,图15A所示用户界面对象1130或用户界面对象1525或两者)。在一些实施方案中,轻扫手势大体上沿从左到右的方向,并且在电子设备显示home屏幕的初始页面时由用户提供轻扫手势(例如,图11C中的 1104-1)。在一些情况下,轻扫手势大体上沿向下的方向,并且在查看与应用程序相关联的内容时由用户提供(例如,图11A和图11E中的 1102)。
在一些实施方案中,结合确定用户正在前往该地理位置(如上文参照操作1414所讨论的),设备还确定与电子设备的位置传感器相关联的当前 GPS信号是否足够强以允许设备提供返回该地理位置的精确路线,并且根据确定该GPS信号不够强,该设备提供来自用户的定位信息和附加细节的两者,使得用户可以依靠这两条信息来帮助定位他们停放的车辆。
在一些实施方案中,提示是由可通过电子设备使用的虚拟助理提供的音频提示(如上文参照操作1410所讨论的),从用户接收信息包括从用户接收标识该地理位置的口头描述,并且显示用户界面对象包括显示可选的示能表示(例如,图15A至图15B所示示能表示1502),当选中该示能表示时将使设备回放口头描述。在一些实施方案中,来自虚拟助理的提示指示用户拍摄位于该地理位置处的车辆的照片和/或拍摄车辆周围区域的一个或多个照片/视频,并且显示用户界面对象包括显示可选示能表示(例如,图15A至图15B所示示能表示1502),当选中该示能表示时将使设备回放记录的媒体。在一些实施方案中,可选示能表示邻近地图对象显示(如示能表示1502所示),而在其他实施方案中,可选示能表示单独显示(特别是在定位信息不满足准确度的情况中,这种其他显示形式的一个示例是图 15A至图15B所示的示能表示1535)。在一些实施方案中(根据是否已提供用户提供的位置信息以外的定位信息),一旦确定用户正在前往其停放的车辆,则显示示能表示1130和1535中的一者或两者。
在一些实施方案中,用户界面对象/示能表示(例如,1130、1535或两者)包括到停放的车辆的估计距离(例如,用户界面对象1130在右上角包括“0.3英里”)。
在一些实施方案中,该提示显示在电子设备的显示器上,从用户接收信息包括从用户接收识别该地理位置的文本描述,显示用户界面对象包括显示来自用户的文本描述。在其他实施方案中,显示允许用户访问文本描述的可选示能表示。例如,响应于选择示能表示1535(图15A至图 15B),设备打开包括来自用户的文本描述的记事本应用程序。
应当理解,对图14中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法600,800,1000和 1200)所述的其他过程的细节同样以类似的方式适用于上文结合图14所述的方法1400。例如,上文参考方法1400描述的用户界面对象任选地具有本文参考本文所述的其他方法(例如,方法600,800,1000和1200)描述的用户界面对象的特征中的一个或多个。另外,以下参照第1至11部分描述的细节、操作和数据结构也可结合方法1400使用(例如,参照第6部分讨论的细节可用于帮助确定何时呈现包括用户所停放车辆的位置的用户界面对象,参照第5部分讨论的细节可用于帮助识别和学习与用户通常停放其车辆的时间和随后返回时间相关的用户模式,并且与第10部分相关的细节可用于通过依赖于上下文信息帮助完善车辆位置信息)。在一些实施方案中,第1至11部分的任何其他相关细节可以结合方法1400用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图16A至图16B是根据一些实施方案主动提供关于附近兴趣点(POI) 信息的方法1600的流程图表示。图17A至图17E用于示出图16A至图16B中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
在一些实施方案中,方法1600由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法1600由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法1600。在一些实施方案中,参照图1A,方法1600的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块 132)、一个或多个位置传感器(例如,加速度计168、磁力计和/或GPS 接收器)和触敏显示器(例如,触敏显示器系统112)。方法1600中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法1600主动在电子设备上提供兴趣点信息,而不需要用户自己搜索和定位该信息(然后在用户处于特定POI的特定距离内时显示该信息)。因此,该方法通过要求更少的触摸输入来执行所需动作(例如,查看关于附近POI的信息),从而创建了更有效的人机界面。对于电池驱动的电子设备,方法1600既节省电力又增加了电池两次充电之间的时间间隔。
如图16A所示,在未接收到来自电子设备用户的任何指令的情况下,设备使用位置传感器监视(1602)电子设备的地理位置。同样在未接收到来自电子设备用户的任何指令的情况下,设备基于所监视的地理位置确定电子设备在预先确定类型的兴趣点的阈值距离内(例如,活动建议对其可用的兴趣点,诸如餐厅、游乐园或电影院)。
在一些实施方案中,基于用户经常访问的兴趣点来确定预先确定类型的兴趣点。在一些实施方案中,兴趣点还包括基于当前文本消息、电子邮件和/或与用户的社交网络相关联的其他数据预测为用户所感兴趣的兴趣点。
仍然在未接收到来自电子设备用户的任何指令的情况下,根据确定电子设备在兴趣点的阈值距离内,设备识别当前在兴趣点处流行的至少一项活动并检索关于该兴趣点的信息,包括检索关于当前在兴趣点处流行的至少一项活动的信息(例如,当前流行的乘坐装置、当前流行的菜单项、当前流行的电影等)。在一些实施方案中,基于在用户社交网络中发帖内容与所述至少一项活动有关的个人是否达到阈值数量(例如,超过5个)或阈值百分比(例如,5%或10%)评估活动的受欢迎程度。在一些实施方案中,设备维持预先确定数量(例如,5、10或20)的用户经常访问的兴趣点(和/或如上所述,基于文本消息、电子邮件或用户社交网络中的活动确定为现在感兴趣的兴趣点)列表,并且当用户位于这些兴趣点的任意一个的阈值距离内(例如,1英里、1.5英里、2英里)时,设备检索有关这些兴趣点处的当前活动的信息。
仍然参照图16A,在检索关于兴趣点的信息之后,设备通过触摸敏感表面检测(1616)第一输入,当检测到所述第一输入时将使得电子设备进入搜索模式。在一些实施方案中,搜索模式是系统级搜索模式,允许在整个电子设备上进行搜索(例如,在应用程序和内容源上(设备上和其他地方的二者),而不仅在单个应用程序内)。在一些实施方案中,第一输入对应于在设备显示home屏幕的初始页面时在触敏表面上接收的轻扫手势(例如,图11C所示大体上沿从左到右方向的轻扫手势1104-1)。
在一些实施方案中,根据确定设备在兴趣点的阈值距离内,设备还在锁定屏幕上显示示能表示,该示能表示指示关于兴趣点处的当前活动的信息可用。在一些实施方案中,第一输入对应于浏览关于兴趣点处当前活动的可用信息的请求。例如,如图17D所示,餐厅信息对象显示在锁定屏幕上。餐厅的图标和/或描述可选,并且指示有关餐厅的更多信息诸如菜单信息可用。响应于第一输入例如在“查看菜单”链接上的轻击,(例如,直接在锁定屏幕上或通过解锁设备并打开查看菜单的适当应用程序)显示菜单。在一些实施方案中,图17A至图17E所示任何用户界面对象/示能表示 (例如,1713和1715以及其中包含的内容)可在搜索界面或锁定屏幕(或两者)内呈现。
转向图16B,响应于检测到第一输入,设备进入(1618)搜索模式。在一些实施方案中,进入搜索模式包括:在搜索界面接收到任何用户输入前(例如,在搜索界面内的搜索框中尚未输入搜索词,并且尚未接收到输入),通过显示器呈现包括以下项的示能表示:(i)关于所述至少一项活动的信息,以及(ii)所述至少一项活动已被识别为当前兴趣点处的流行活动的指示,例如,附近餐厅的流行菜单项(例如,图17C至17D中的示能表示 1715)、附近游乐园的乘坐装置等待时间(例如,图17A至图17B中的示能表示1713)、附近电影院的当前放映时间等。
例如,如图17A所示,在一些实施方案中,兴趣点为(1604)游乐园,并且检索的信息包括游乐园的乘坐装置的当前等待时间。在图17A所示的一些实施方案中,电子设备使用检索到的信息来呈现所有乘坐装置的平均等待时间(例如,1小时),并且用户可以选择链接以查看每个单独乘坐装置的等待时间。如图17B所示,在一些实施方案中,所检索信息部分包括 (1606)关于位于电子设备预定距离内的乘坐装置的等待时间的信息,例如,三个乘坐装置/游乐项目与电子设备的距离在约100到150英尺内,并且 (在从用户接收到请求查看乘坐装置等待时间的输入后,诸如在图17A所示“查看等待时间”文本上的输入)显示每个乘坐装置/游乐项目的等待时间。
又如,如图17C所示,兴趣点为(1608)餐厅,并且检索的信息包括关于餐厅中流行菜单项的信息。在一些实施方案中,检索的信息为从与电子设备用户相关联的社交网络检索(1610)的信息。例如,在图17C中,在示能表示1715内显示餐厅“Go Japanese Fusion”中的流行菜单项“Yakiniku Koji”,并且可基于从与电子设备用户相关联的社交网络检索的信息来确定流行的菜单项。
又如,兴趣点可为(1612)电影院,并且检索的信息包括关于电影院的放映时间的信息。在一些实施方案中,所检索的有关放映时间的信息为 (例如,基于个人最近在社交网络中发布的信息)从与电子设备用户相关联的社交网络检索(1614)的信息。
在一些实施方案中,设备检测(1620)第二输入,例如,选择示能表示附近(例如,上方)显示的显示更多链接(诸如图17A至图17D中示能表示1713和1715的显示更多链接),并且响应于检测到第二输入,设备更新该示能表示以包括不同于该兴趣点的第二兴趣点处的当前活动的可用信息。在一些实施方案中,第二兴趣点同样位于电子设备的阈值距离内。例如,响应于用户选择图17D所示显示更多链接,设备更新示能表示1715以包括关于餐厅和电子设备1英里内的另一家餐厅“Out Steakhouse”供应的美食的可用信息,如图图17C所示。换句话讲,示能表示1715最初仅呈现关于“Go Japanese Fusion”的信息,并且响应于第二输入,更新示能表示 1715以包括关于第二兴趣点的信息(例如,关于“Out Steakhouse”的信息,如图17C虚线所示)。在一些实施方案中,响应于检测到第二输入,显示不同于该兴趣点的多于一个兴趣点,例如,设备更新餐厅信息示能表示以包括除该兴趣点以外的两个或更多个新餐厅的可用信息。在一些实施方案中,锁定屏幕上呈现的示能表示(例如,图17D所示锁定屏幕上显示的示能表示1715)也可提供相同功能(即响应于选择显示更多链接,允许用户查看关于附加兴趣点的信息的功能)。
在一些实施方案中,由于用户尚未选择最近的兴趣点,为了捕获用户可能感兴趣的兴趣点,该示能表示还包括(1622)可选择的兴趣点类别,并且设备检测(1624)相应可选类别的选择,并且响应于检测到该选择,更新示能表示以包括关于位于设备第二阈值距离内的附加兴趣点(例如,第二阈值距离大于该阈值距离)。例如,第一阈值距离是100英尺。当电子设备距离兴趣点约50英尺时,该设备将显示“Go Japanese Fusion”作为兴趣点,如图17C和17D所示。响应于检测到“餐饮”类别的选择,如图17E所示,将显示位于100英尺以外、1英里以内的附加兴趣点,例如,“Out Steakhouse”和“Chip Mexican Grill”。
在一些实施方案中,在解锁电子设备后,响应于在电子设备home屏幕的初始页面上大体沿水平方向的轻扫(例如,图11C所示从左到右轻扫 1104-1),用户界面对象可用(1626)。
应当理解,对图16A至图16B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法600,800, 1000、1200和1400)所述的其他过程的细节同样以类似的方式适用于上文结合图16所述的方法1600。例如,上文参考方法1600描述的用户界面对象和/或操作任选地具有本文参考本文所述的其他方法(例如,方法600, 800,1000、1200和1400)描述的用户界面对象和/或操作的特征中的一个或多个。在一些实施方案中,第1至11部分的任何相关细节可以结合方法 1600用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图18A至图18B是根据一些实施方案从语音通信中提取内容项并与提取的内容项进行交互的方法1800的流程图表示。图19A至图19F用于示出图18A至图18B中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图 1D中所示。
在一些实施方案中,方法1800由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法1800由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法1800。在一些实施方案中,参照图1A,方法1800的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块 132)和触敏显示器(例如,触敏显示器系统112)。方法1800中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法1800提供了一种直观的方式以从语音通信中提取内容项并在具有触敏显示器的电子设备上呈现给用户。该方法减少了所需用户输入的数量(例如,设备自动提取联系人、位置和事件的相关信息,并准备该信息以在设备上存储和使用),从而创建了更有效的人机界面,并且根据语音通信中讨论的内容协助用户添加新内容。对于电池驱动的电子设备,此方法既帮助节省电力又增加了电池两次充电之间的时间间隔。
如图18A所示,设备接收语音通信的至少一部分,语音通信的该部分包括由远程设备的远程用户提供的语音,该远程用户不同于电子设备的用户(1801)。在一些实施方案中,语音通信是实时电话呼叫、实时视频通话 (例如,FaceTime通话)或记录的语音信箱(1803)。在一些实施方案中,语音通信是用户和远程用户之间的实时电话呼叫(或FaceTime通话),因此语音通信包括由用户和远程用户二者提供的语音。在其他实施方案中,语音通信是由远程用户发送给该用户的记录的语音信箱,所记录的语音信箱通过远程通信网络从远程设备传送给电子设备,然后将所记录的语音信箱存储在电子设备上以供随后播放。
在一些实施方案中,基于来自电子设备用户的指令来识别语音通信的该部分(1805)。例如,基于用户对硬件按钮的选择,电子设备用户标记该部分以进行分析(例如,用户轻击硬件按钮如音量按钮,作为响应,设备开始分析预定义量的语音通信(例如,先前的10,9,8或7秒)以检测/提取内容项)。在一些实施方案中,该按钮还可以是呈现在电子设备显示器上供用户进行选择的按钮(例如,在语音通信期间显示在类似于图21B所示用户界面上的按钮,该按钮包括文本“轻击此处分析语音通信以获取新内容”)。
在一些实施方案中,来自用户的指令对应于包括短语“嘿,Siri”的口头命令(例如,“嘿,Siri,请保存,”或“嘿,Siri,请记住,”或“嘿,Siri,请抓取刚刚提及的事件细节”等等)。在一些实施方案中,来自用户的口头指令是使设备开始分析语音通信以检测新内容的任何预定义的短语(例如,该短语可以采用英语以外的某种其他语言,或者该短语可以包括不同的单词,诸如“Siri,请分析这个呼叫”或“Siri,请开始分析”或表达类似意思的短语)。
在一些实施方案中,设备不会在持久性存储器中记录或保持语音通信的任何部分,相反地,设备仅分析语音通信的该部分(例如,一次10 秒),然后立即删除所有记录的数据,并且只保存基于分析提取的内容项 (如下文更详细地讨论的那样)。这样,提取的内容项可供用户使用,而又不存储语音通信的实际内容,从而有助于保护用户的隐私。
在一些实施方案中,设备分析语音通信的该部分(例如,由用户标记的记录的语音信箱部分,或用户标记的设备用户和另一台远程定位的设备用户之间的实时电话呼叫部分,或由设备自动识别为包括用于提取的新内容的部分)以检测预先确定类型的内容(1807)。在一些实施方案中,分析语音通信包括:将远程用户提供的语音(并且如适用,由电子设备用户提供的语音)转换为文本;将自然语言处理算法应用于该文本以确定文本是否包括一个或多个预定义的关键字;并且根据确定文本包括相应的预定义关键字,确定语音通信包括描述内容项的语音(1809)。
换句话讲,使语音通信通过语音到文本处理算法,对通过语音到文本处理产生的文本执行自然语言处理,然后电子设备确定文本是否包括任何一个或多个预定义的关键字。在一些实施方案中,利用自动语音识别算法 (例如,帮助执行语音到文本和自然语言处理操作)。在一些实施方案中,所述一个或多个预定义的关键字包括用于识别文本中的关键短语/字符串和用于提供建议输出(例如,以上介绍的可选描述)的数据检测器。在一些实施方案中,在电子设备上执行此整个过程(将语音转换为文本并处理该文本以检测新内容),并且不使用服务器或任何外部设备帮助执行这些操作,并且以这种方式,用户的隐私得以维护和保护。在一些实施方案中,在分析语音通信时使用环形缓冲器(例如,包括10秒或更短语音通信的小型环形缓冲器),并且环形缓冲器中的数据用于存储和转录语音,由于未记录、监视或存储整个对话,还保护了隐私。这样,设备能够快速有效地处理语音通信,从而检测新事件、新联系人信息以及其他新的内容项。
在一些实施方案中,对于可从语音通信中提取的某些类型的内容(例如,电话号码),作为对搜索所述一个或多个预定义关键字的替代或补充,设备还检查由自然语言处理算法产生的文本是否包括预定义的位数 (例如,对于美国电话号码为10或11位)。在一些实施方案中,同时使用两种技术(例如,设备搜索预定义的关键字诸如“电话号码”,随后不久在文本中搜索预定义的位数,以便定位所引用的电话号码)。
在一些实施方案中,在通过与电子设备通信的音频系统输出语音通信时,执行分析(例如,操作1807和1809)。在一些实施方案中,预先确定类型的内容包括在语音通信中讨论的并且与联系人、事件和/或位置信息相关的信息内容(以下提供了关于从语音通信中检测和提取位置信息的更多细节)。例如,分析语音通信以检测预先确定类型的内容包括分析以检测新的联系人信息(包括联系人和现有联系人的新联系人信息)和新的事件 (或与修改现有事件有关的内容)。在一些实施方案中,音频系统是设备的内部扬声器、外部耳机或外部音频系统,诸如扬声器或车辆的立体音响系统。
在一些实施方案中,设备至少部分地基于远程设备的远程用户提供的语音来提取内容项(1811)(例如,识别或描述内容项的语音,诸如有关即将到来的事件的细节(开始时间、结束时间、位置、参加者等)、联系人信息(电话号码、联系人姓名、雇主姓名等)、餐厅名称、电话号码、到兴趣点的路线以及其他可用于从语音中提取内容项的细节)。在一些实施方案中,同样至少部分地基于电子设备的用户提供的语音来提取内容项(例如,两个用户正在讨论事件细节,并且设备基于两个用户提供的语音来提取这些事件细节)(1815)。
在一些实施方案中,内容项是新事件,新事件详细描述了当前和电子设备上的日历应用程序相关联的事件;新联系人,新联系人信息详细描述了与电子设备上的电话应用程序相关联的现有联系人(1813)。
在一些实施方案中,电子设备确定内容项当前在电子设备上是否可用 (1817)。
现在转向图18B,根据确定内容项当前在电子设备上不可用,电子设备识别与内容项相关联的应用程序,并在显示器上显示内容项的可选描述 (1821)。图19A示出了一个示例性用户界面,其中在用户当前正在参与语音通信(例如,实时电话呼叫)时显示可选描述1902。如图19A所示,可选描述1902包括所识别的关联应用程序的图标(例如,日历应用程序的图标)、内容项的描述(例如,指示在此电话呼叫上发现新事件的文本)和关于内容项的细节(例如,与新事件相关联的事件细节)。
在一些实施方案中,显示可选描述包括在用户界面内显示可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话(1823)。在一些实施方案中,在语音通信完成后显示包括最近通话的用户界面(即当用户在通话时首先显示可选描述1902,然后在通话结束时显示包括最近通话的用户界面)。例如,图19B示出了包括从语音通信中提取的内容项的可选描述1901,1903和1905的示例性用户界面。具体地讲,可选描述1901指示在第一电话呼叫上发现新事件,可选描述1903指示在第二电话呼叫上发现新的联系人信息,并且可选描述1905指示在第三电话呼叫上发现位置。如上所述,语音通信也可以是记录的语音信箱,并且因此,图19B所示的用户界面也可显示在电话应用程序的语音信箱选项卡中。
在一些实施方案中,可选描述与以下指示一起显示:内容项与语音通信相关联。例如,可选描述1901至1905的每一者被显示在从中提取这些可选描述的语音通信附近,为用户提供与每个提取的内容项相关联的相应语音通信的清楚指示。
根据确定内容项当前在电子设备上不可用,电子设备还向用户提供已经检测到新内容项的反馈(1825)。在一些实施方案中,结合显示可选描述提供反馈(即以大体上同时的方式显示和提供反馈,使得用户能够接收触觉反馈,然后该触觉反馈引导他们查看在语音通信期间显示可选描述1902的显示器)。在一些实施方案中,提供反馈包括向该电子设备附近的另一台电子设备发送与内容项检测有关的信息(例如,向附近膝上型电脑或手表发送信息,从而使用户不必将电话从耳朵移开以查看关于检测的新内容项的详细信息)(1827)。
在一些实施方案中,响应于检测到可选描述的选择(例如,在图19A 或图19B任意一者所示的用户界面处提供的用户输入),电子设备存储该内容项以通过识别的应用程序进行呈现(1829)。可在用户监听语音通信时选择可选描述(例如,通过轻击图19A所示的可选描述1902)或从包括最近通话的用户界面中选择可选描述(例如,通过轻击图19B所示的可选描述 1901)(1831)。响应于该选择,通过识别的应用程序存储内容项(例如,日历应用程序或联系人应用程序,具体取决于提取的内容项类型)。例如,响应于选择可选描述1902或1901的任意一者,电子设备打开创建新事件用户界面,并使用从语音通信的该部分提取的细节填充创建新事件用户界面(例如,填充图19C所示用户界面以包括标题、位置、开始时间、结束时间等)。
又如,响应于选择可选描述1903,电子设备打开联系人应用程序的用户界面(例如,允许创建新联系人或在现有联系人上添加新的联系人细节,如图19D至图19E分别所示)并使用从语音通信的该部分提取的细节填充该用户界面(例如,图19D所示用户界面包括名字、姓氏、电话号码、电子邮件地址等,图19E所示用户界面包括现有联系人的新移动电话号码)。
在一些实施方案中,电子设备还检测/提取关于在语音通信期间提到或讨论过的物理位置的信息。特别地并重新参照图18B,电子设备确定语音通信包括关于第一物理位置的信息(例如,参照地理位置或提供用于到达所述第一地理位置的路线)(1833)。电子设备还检测输入(例如,所述输入),并且响应于检测到输入,电子设备执行操作1837或操作1839的任意一者,具体取决于输入对应于打开接受地理位置数据的应用程序的请求,还是对应于在电子设备上搜索内容的请求(例如,本文讨论的任何搜索激活手势)(1835)。
根据确定输入对应于打开接受地理位置数据的应用程序的请求,电子设备打开能够接受位置数据的应用程序,并且使用关于第一物理位置的信息填充该应用程序(该信息可以是包括在语音通信中的信息或基于语音通信的信息,诸如在实时电话呼叫中讨论的餐厅名称或由电子设备使用该餐厅名称查询的电话号码)(1839)。例如,如图19F所示,该应用程序是地图应用程序,并且使用关于第一物理位置的信息填充地图应用程序包括:使用对应于第一物理位置的位置标识符填充在地图应用程序内显示的地图 (或如图19F所示,显示在语音通信期间讨论/提取的每个物理位置的多个位置标识符)。
根据确定输入对应于进入搜索模式的请求,电子设备使用关于第一物理位置的信息填充搜索界面(该信息可以是包括在语音通信中的信息或基于语音通信的信息,诸如在实时电话呼叫中讨论的餐厅名称或由电子设备使用该餐厅名称查询的电话号码)(1837)。例如,可填充以上参照图13B 讨论的搜索界面,以包括关于第一物理位置的信息作为其中一条建议的搜索1150(例如,通过电话应用程序接收请求)。
在一些实施方案中,语音通信可包括描述多个各种内容项(例如,多个新联系人或现有联系人的新联系人信息、多个物理位置、关于新事件或现有事件的多个细节或它们的组合)的语音(来自语音通信期间均在讲话的单个用户或多个用户),并且电子设备被配置为确保从语音通信中提取这些内容项的每一者。例如,方法1800还包括使电子设备接收语音通信的第二部分(例如,所述第二部分包括由远程设备的远程用户和电子设备的用户中的一者或多者提供的语音)。在一些实施方案中,电子设备至少部分地基于由远程设备的远程用户提供的语音和由电子设备用户提供的语音来提取第二内容项。根据确定第二内容项当前在电子设备上不可用,电子设备识别与第二内容项相关联的第二应用程序,并在显示器上显示第二内容项的第二可选描述(例如,如果从每个关联语音通信中提取了多个内容项并且如果适用,图19A所示用户界面可包括多于一个可选描述1902,并且/或者图19B所示用户界面可包括多于一个可选描述1901,1903或 1905)。响应于检测到第二可选描述的选择,电子设备存储第二内容项以通过识别的第二应用程序进行呈现(如上参照第一内容项所讨论的)。
在一些实施方案中,在选择可选描述或第二可选描述后,电子设备停止在包括最近通话的用户界面中显示相应的可选描述。在一些实施方案中,每个可选描述还显示有删除示能表示(例如,“x”),当选中时,将使得电子设备停止显示相应的可选描述(如图19A和图19B中所示可选描述)。
应当理解,对图18A至图18B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文参考本文所述的其他方法(例如,方法2000) 描述的其他过程的细节同样以类似的方式适用于上文参考图18A至图18B 描述的方法1800。例如,以上参考方法1800所述的操作任选地实施或并入本文参考本文所述其他方法(例如,方法2000)描述的操作。另外,在第 4部分:“结构化建议”中提供的以下细节也可结合方法2000一起使用 (例如,在第4节中讨论的有关在消息中检测联系人和事件相关信息的细节也可用于从语音通信中提取相同的信息)。在一些实施方案中,第1至 11部分的任何相关细节可以结合方法1800用于任何合适的目的。为了简明起见,此处不再重复这些细节。
在一些实施方案中,参照上述方法1800和下文中的方法2000描述的技术还用于检测可从语音通信中提取的其他类型的内容。例如,可以提取电话号码并将其呈现给用户,供其存储为联系人信息(例如,针对新联系人或现有联系人)或立即使用(例如,用户进行电话呼叫并听到包括新电话号码的应答消息,并且响应于检测到消息包括此新电话号码,设备在诸如图21B所示用户界面上呈现该电话号码,从而使用户可以快速且容易地拨打该新电话号码)。
在方法1800和2000的一些实施方案中,只要设备检测到新内容(例如,位置、电话号码、联系人信息或任何其他内容)即提供触觉反馈,以向用户提供新内容可用的明确指示
图20是根据一些实施方案,确定语音通信包括识别物理位置的语音并使用有关物理位置的信息填充应用程序的方法的流程图表示。图19A至图 19F和图21A至图21B用于示出图20的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面 195上的输入,如图1D中所示。
在一些实施方案中,方法2000由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2000由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2000。在一些实施方案中,参照图1A,方法2000的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块 132)和触敏显示器(例如,触敏显示器系统112)。方法2000中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法2000提供了一种直观的方式以从语音通信中提取内容项并在具有触敏显示器的电子设备上呈现给用户。该方法减少了所需用户输入的数量(例如,设备自动提取关于物理位置的相关信息,并准备该信息以在设备上存储和使用),从而创建了更有效的人机界面,并且根据语音通信中讨论的内容协助用户调用有关物理位置的信息。对于电池驱动的电子设备,此方法既帮助节省电力又增加了电池两次充电之间的时间间隔。
如图20所示,设备接收语音通信的至少一部分,语音通信的该部分包括由远程设备的远程用户提供的语音,该远程用户不同于电子设备的用户 (2001)。在一些实施方案中,语音通信是实时电话呼叫、实时视频通话(例如,FaceTime通话)或记录的语音信箱(2003)。参照图18A至图18B提供了关于语音通信(及其关联的部分)示例的更多细节。在一些实施方案中,基于从电子设备用户接收的指令来识别语音通信的该部分(2005)。以上参照图18A至图18B提供了关于从用户接收的指令的示例的更多细节(例如,该指令可对应于硬件按钮的选择或来自用户的口头命令)。
在一些实施方案中,设备分析语音通信的该部分以检测关于物理位置的信息,并且当通过与电子设备通信的音频系统输出语音通信时执行分析 (2007)。在一些实施方案中,音频系统可以是设备的内部扬声器、外部耳机、外部音频系统,诸如扬声器或车辆的立体音响系统。以上提供了关于该分析操作2007和其他语音到文本处理示例的更多信息,并且这些技术还适用于检测物理位置。
在一些实施方案中,电子设备确定语音通信包括识别物理位置的语音 (2009)。在一些实施方案中,识别物理位置的语音包括讨论到特定兴趣点的驾驶路线的语音,提到餐厅(或其他兴趣点)名称的语音等。在一些实施方案中,该物理位置可对应于任意兴趣点(诸如餐厅、住处、游乐园等),并且用于识别物理位置的语音可包括提及街道地址的语音、提及物理位置的位置信息(GPS坐标、纬度/经度等)的语音以及提供可用于(通过设备)在地图上定位物理位置的信息的其他相关语音。在一些实施方案中,物理位置也称为命名位置或物理可寻址位置。
在一些实施方案中,响应于确定语音通信包括识别物理位置的语音,电子设备提供已检测到关于物理位置的信息的指示(例如,设备提供触觉反馈和/或显示UI对象供选择,诸如分别在图21A和图21B中示出的用户界面对象2101或2103)(2011)。在一些实施方案中,提供指示包括在用户界面内显示物理位置的可选描述,其中该用户界面可以是:包括使用电话应用程序进行过的最近通话的用户界面(例如,图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中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文参考本文所述的其他方法(例如,方法1800)描述的其他过程的细节同样以类似的方式适用于上文参考图20描述的方法2000。例如,以上参考方法2000所述的操作任选地通过本文参考本文所述其他方法 (例如,方法1800)描述的操作实施或补充。另外,在第4部分:“结构化建议”中提供的以下细节也可结合方法2000一起使用(例如,在第4部分中讨论的有关在消息中检测联系人和事件相关信息的细节也可用于从语音通信中提取相同的信息)。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2000用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图22A至图22B是根据一些实施方案主动建议在即时消息应用程序中使用的物理位置的方法的流程图表示。图23A至图23O用于示出图22A至图22B中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
在一些实施方案中,方法2200由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2200由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2200。在一些实施方案中,参照图1A,方法2200的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块 132)和触敏显示器(例如,触敏显示器系统112)。方法2200中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法2200提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议用于即时消息应用程序的物理位置。该方法减少了在即时消息应用程序中添加物理位置的相关信息所需的用户输入的数量,从而创建了更有效的人机界面。对于电池驱动的电子设备,主动建议用于即时消息应用程序的物理位置既节省电力又增加了电池两次充电之间的时间间隔(例如,通过避免在进入即时消息应用程序前用户无目的地搜索此信息,从而节省了时间并省去了消耗能源的操作)。
如图22A所示,电子设备在显示器上的即时消息应用程序(例如,台式计算机、膝上型电脑、智能电话或智能手表上的电子邮件或iMessage应用程序)中呈现文本输入字段和会话副本(2201)。在一些实施方案中,会话副本包括在一个或多个用户之间交换的消息(诸如电子邮件消息、文本消息、音频消息、视频消息、图片消息等)。在一些实施方案中,会话副本包括文本输入字段(例如,如图23A所示,会话副本2301包括用户在起草新的电子邮件应答时键入的文本)。在一些实施方案中,会话副本和文本输入字段是分开的(例如,如图23C所示,会话副本2303大体上位于单独的文本输入字段2305上方,其中用户可以在文本输入字段中起草新消息)。在一些实施方案中(例如,其中电子设备与显示器通信并且显示器和设备诸如台式计算机或智能电视设备保持物理地分离),呈现包括使显示器呈现相关内容(例如,设备向显示器提供信息,使得显示器能够呈现文本输入字段和会话副本(以及下面讨论的其他用户界面元素))。
当在显示器上呈现即时消息应用程序时,电子设备确定来自电子设备用户的下一个可能的输入是关于物理位置的信息(2203)(例如,地址或设备确定的用户的当前位置)。在一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:处理与文本输入字段和会话副本相关联的内容以检测对话转录包括关于用户当前位置的问题(2205) (例如,第二用户发送消息,询问用户“你在哪儿”,如图23A至图23B 和图23C至图23D所示)。在一些实施方案中,处理内容包括应用自然语言处理算法检测构成该问题的一个或多个预定义关键字。在一些实施方案中,所述一个或多个关键字可以由电子设备直接在与文本输入字段和会话副本相关联的内容中搜索,而在其他实施方案中,通过执行语义分析来查找类似于所述一个或多个关键字的短语以检测所述一个或多个关键字(例如,相距短语义距离的字词),并且在一些实施方案中,同时使用这两种技术。在一些实施方案中,该问题包括在从不同于该用户的第二用户接收的消息中(2209)(如图23A至图23B和图23C至图23D所示)。
在一些实施方案中,电子设备分析与文本输入字段和会话副本相关联的内容,至少部分地基于分析的内容(例如,来自最近接收的消息的内容)的一部分确定建议的物理位置(2211)。在一些实施方案中,建议的物理位置对应于用户最近在即时消息应用程序之外的应用程序中查看的位置 (2213)。(例如,用户开始键入“我们应该在[自动插入最近查看的地址]吃晚饭。”)例如,用户先前使用评论搜索应用程序(诸如图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)。在一些实施方案中,一旦用户开始键入,设备即停止呈现可选用户界面元素。
在一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:在即时消息应用程序的文本输入部分中监视从用户接收的键入输入。在这样的实施方案中,该方法还包括:在监视打字输入时,确定是否存在任意键入输入与一个或多个触发短语匹配,每个触发短语与相应的内容项相关联;根据确定键入输入的顺序与第一触发短语匹配,在显示器上显示与第一触发短语相关联的建议内容项;并且检测建议内容项的选择,响应于检测到该选择,在即时消息应用程序的文本输入部分中显示关于建议内容项的信息。在一些实施方案中,根据确定用户已提供附加输入,其中该输入指示用户将不会选择可选用户界面元素(例如,连续的击键不再匹配触发短语),电子设备停止呈现可选用户界面元素 (2231)。
在一些实施方案中,根据确定自从第一次显示可选用户界面对象开始已经过预先确定的时间段(例如,10秒),设备停止呈现可选用户界面对象。
在一些实施方案中,与方法2200相关联的技术也可经由其他类型的应用程序(除即时消息应用程序外,诸如文档编写应用程序)可用,并且可用于其他对象类型(作为物理位置的补充,诸如联系人和事件)。例如,如图23I和图23J所示,一些实施方案还能使电子设备主动建议用于安排事件的可用性窗口(以下参照图22C和方法2280进行了更详细地讨论)。另外,如图23K至图23J所示,一些实施方案还能使电子设备主动建议联系人信息(诸如用户或存储在设备上的联系人的电话号码),或者主动建议基于先前对话的适当响应(例如,如图23M所示)或主动建议适当的参考文件(例如,如图23O所示)。下面的方法2280还提供了有关其他类型应用程序和其他对象类型的一些更多细节。在一些实施方案中,组合、交换和/或互换方法2200和2280的各种方面。
应当理解,对图22A至图22B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2280和方法2900)所述的其他过程的细节同样以类似的方式适用于上文结合图 22A至图22B所述的方法2200。例如,以上参考方法2200所述的操作任选地包括本文所述其他方法(例如,方法2280和2900)的一个或多个操作或特征。在一些实施方案中,第1至11部分的任何相关细节可以结合方法 2200用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图22C是根据一些实施方案主动建议与位置、事件或联系人相关的信息的方法的流程图表示。图23A至图23O用于示出图22C中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
在一些实施方案中,方法2280由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2280由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2280。在一些实施方案中,参照图1A,方法2280的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)和触敏显示器(例如,触敏显示器系统112)。方法2280中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法2280提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议与位置、事件或联系人有关的信息。该方法减少了用户输入的数量,其中这些输入旨在定位关于联系人、位置或事件的信息并输入该信息以在应用程序中使用,从而创建了更有效的人机界面。对于电池驱动的电子设备,主动建议与位置、事件或联系人有关的信息可提高用户对电子设备的满意度(通过自动调用信息并在相关时间将其呈现给用户以供立即使用),节省电力并增加了电池两次充电之间的时间间隔。
如图22C所示,电子设备在显示器上呈现与应用程序相关联的文本内容(2281)。在一些实施方案中,应用程序是文档编写应用程序(例如,记事本应用程序、文字处理应用程序等)或即时消息应用程序(诸如电子邮件或文本消息应用程序)或任何其他应用程序,其中显示虚拟键盘以输入文本到输入接收字段中。
在一些实施方案中,设备确定文本内容的一部分涉及(2283)(或文本内容的该部分参照)以下项:(i)位置(例如,可通过电子设备的位置传感器获取的当前位置信息),(ii)联系人(例如,可通过电子设备上的联系人应用程序获取的信息),或(iii)事件(例如,可通过电子设备上的日历应用程序获取的信息)。在一些实施方案中,文本内容的该部分是由关于位置、联系人或事件(例如,诸如图23A至图23O所示的示例)的信息最好地完成的陈述/问题。在一些实施方案中,文本内容的该部分对于应用程序中最近呈现的文本内容(2285)(诸如用户键入的文本内容或从远程用户接收的消息中的文本内容)。例如,该部分是用户在记事本或即时消息应用程序中键入的当前文本(例如,图23A中的“目前我在”、图23E中的“我的地址是”、图23H中的“约翰的地址是”、图23I中的“我有空”、图 23K中的“我的电话号码是”、图23L中的“打我电话”以及图23M中的“什么类型的肿瘤”)。换句话讲,文本内容的该部分是由电子设备用户在应用程序内的输入接收字段(例如,图23C所示即时消息应用程序的字段2305,或图23A所示电子邮件应用程序的字段2301)中提供的输入(即一系列键入输入)(例如,用户在虚拟键盘上提供一系列键入输入或使用口述将文本添加到输入接收字段)。
在一些实施方案中,文本内容的该部分是会话副本中最近从某些其他用户接收的消息。例如,该应用程序是即时消息应用程序,并且文本内容的该部分是在即时消息应用程序中从远程设备的远程用户接收的问题(例如,图23C中的“你在哪儿?”、图23F中的“餐厅在哪里?”、图23G 中的“约翰住哪?”、图23O中的“你对肿瘤有什么了解?”),其中所述远程设备不同于该电子设备。
在一些实施方案中,在确定文本内容的该部分与(i)位置(2289)、(ii)联系人(2291)或(iii)事件(2293)相关联时,电子设备转而识别在电子设备上可用的适当内容项(在一些实施方案中,不必从服务器检索任何信息)并将该内容项呈现给用户以在应用程序中使用(例如,以响应于问题或有效地完成用户自己的键入输入)。这样,用户能够快速且容易地在应用程序中包括有关联系人、事件和位置的信息,而不必离开当前应用程序、搜索适当的内容、复制或记住该内容、返回当前应用程序,然后将该内容包括在当前应用程序中(从而减少用户在应用程序中包括有关联系人、事件和位置的信息所需的输入数)。
更具体地讲,至于(i)在确定文本内容的该部分与某个位置相关时,电子设备从电子设备上的位置传感器获取位置信息,并准备获取的位置信息以将其显示为预测的内容项(2289)。例如,在从远程用户接收的消息中,基于文本内容中包括短语“你在哪儿?”的部分(如图23C所示),设备确定该部分与位置相关,然后设备从设备上的GPS传感器获取信息,并且准备该信息以呈现为预测的内容项(参见图23D,其中包括用户当前位置的地图对象被发送给远程用户)。又如,在用户键入新电子邮件时,基于文本内容中包括短语“我在”的部分(如图23A所示),设备确定该部分与位置相关,然后设备从设备上的GPS传感器获取信息,并且准备该信息以呈现为预测的内容项(参见图23B,其中包括用户当前位置的地图对象包括在用户正在准备的新电子邮件中)。更多示例在图23E(例如,设备基于用户键入“我的地址是”确定文本内容的该部分包括与位置有关的信息)和图23F(例如,设备基于用户接收包括文本“餐厅在哪里”的消息确定文本内容的该部分包括与位置有关的信息)中示出。如图23F所示,在一些实施方案中,设备基于用户之前与不同应用程序的交互获取位置信息(例如,用户在不同应用程序诸如提供众包评论的应用程序中搜索餐厅应用程序,因此,不使用位置传感器来获取信息)。以下参照方法2400、 2500和2800讨论了关于在两个不同应用程序之间共享信息的更多细节,为了简明起见,此处不再重复这些细节。
至于(ii)在确定文本内容的该部分与联系人相关时,电子设备在电子设备上进行搜索,搜索与文本内容的该部分相关的联系人信息,并准备与通过搜索检索到的至少一个联系人相关联的信息,以显示为预测的内容项 (2291)。例如,文本内容的该部分是“约翰的地址是什么?”(图23G)、“约翰的地址是”(图23H)或“我的电话号码是”(图23K)或“打我电话”(图23L),设备分析存储在联系人应用程序中的联系人信息,从而检索预测为响应于该部分的联系人,并且作为预测的内容项提供检索到的联系人信息。
至于(iii)在确定文本内容的该部分与事件相关时,电子设备在电子设备上进行新的搜索,搜索与文本内容的该部分相关的事件信息,并准备至少部分地基于至少一个事件的信息(通过新搜索检索得到),以显示为预测的内容项(2293)。在一些实施方案中,至少部分地基于所述至少一个事件的信息可以是事件细节(诸如事件时间、持续时间、位置)或来源于事件细节的信息(诸如用户安排新事件的可用性,如图23I和图23J所示)。例如,文本内容的该部分是“在哪间会议室召开会议?”或“会议什么时候开始?”,设备分析与存储在日历应用程序中的事件相关联的信息以检索响应于该问题的信息,并作为预测的内容项提供检索的信息。
如上所述,电子设备在应用程序内显示包括预测内容项的示能表示 (2294)(例如,在图23A的建议部分2307内显示“添加当前位置”的示能表示,在图23C的建议部分2309内显示“发送我的当前位置”的示能表示等,在图23E、23F、23G、23H、23I、23J、23K、23L、23M、23N和23O 中的建议部分2307或2309内显示其他示例性示能表示。)。电子设备还通过触敏表面检测示能表示的选择(2295);并且响应于检测到该选择,设备在显示器上与文本内容相邻处显示与预测内容项相关联的信息(2297)(例如,响应于选择“添加当前位置”的示能表示(图23B),显示具有用户当前位置的地图对象)。
在一些实施方案中,响应于用户输入选择包括文本内容该部分的用户界面对象,识别文本内容的该部分(2287)。例如,该应用程序是即时消息应用程序,并且用户界面对象是在即时消息应用程序内显示的对话中的消息气泡。这样,用户能够检索应用程序中显示的特定部分的预测内容项,使得如果他们忘记响应于特定部分,他们能够选择与该部分相关联的用户界面对象,以便容易地查看该特定部分的预测内容项目。作为具体的示例,参照图23M,文本内容的该部分最初为最近显示的文本内容(例如,“什么类型的肿瘤?”),并且因此,建议部分2309包括响应于该部分的文本建议的示能表示(例如,“良性”和“恶性”)。然后,设备检测第二用户界面对象(例如,在最近显示的文本内容前接收的第二消息气泡,该消息气泡包括文本内容“顺便问一下,你在哪儿?”)的选择(例如,图 23M所示输入2350)。响应于检测到该选择,设备停止显示带有预测内容项的示能表示,并确定与第二用户界面对象相关联的文本内容与位置、联系人或事件相关(在该示例中,设备确定“你在哪儿?”与位置相关),并且根据该确定,设备在应用程序内显示新的预测内容项(例如,图23N 所示建议部分2309中包括“发送我的当前位置”的示能表示)(2299)。
如前一段所述,在一些实施方案中,设备还能够确定文本内容的该部分是否与电子设备上可用的其他类型信息有关(除了联系人、位置和事件之外)。例如,设备能够检测与用户在交换的电子邮件、用户编写或从其他用户接收的文档中讨论的信息或来自其他知识来源的信息有关的问题 (例如,什么类型的肿瘤)。另外,在一些实施方案中,电子设备确定响应于应用程序中文本内容的特定部分的文档(例如,如图23O所示,建议两个不同文档作为对“你对肿瘤有什么了解?”的响应)。在一些实施方案中,响应于选择所述两个不同文档中的任一一个,设备可打开相应的文档并允许用户查看该文档,然后返回该应用程序。
在一些实施方案中,显示在建议部分内并且包括预测内容项的示能表示显示在应用程序内的虚拟键盘附近(例如,上方)。例如,如图23A所示,“添加当前位置”的示能表示显示在虚拟键盘上方的建议部分2307 中。
在一些实施方案中,与预测内容项相关联并且与文本内容相邻显示的信息被显示在输入接收字段中,并且输入接收字段用于显示在虚拟键盘处接收的键入输入(例如,诸如在记事本应用程序中显示的文档,或在诸如即时消息应用程序中虚拟键盘上方显示的输入接收字段,如图23D的输入接收字段2305所示,其中字段2305位于虚拟键盘的上方)。
在一些实施方案中,确定操作2283包括在应用程序接收文本内容时 (例如,在用户键入时或应用程序接收消息时)对文本内容进行解析,以检测已知与联系人、事件和/或位置相关的存储模式。在一些实施方案中,训练神经网络对存储的模式执行检测,并且/或者将有限状态语法用于检测,在检测之后,电子设备将信息传递到系统级服务(例如,使用在以下第9部分中讨论的一个或多个预测模型)以检索适当的预测内容项。
应当理解,对图22C中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2200和方法 2900)所述的其他过程的细节同样以类似的方式适用于上文结合图22C所述的方法2280。例如,以上参考方法2280所述的操作任选地具有本文参考本文所述其他方法(例如,方法2200和2900)的一个或多个特征,或使用本文参考本文所述其他方法描述的一个或多个操作。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2280用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图24A至图24B是根据一些实施方案,使用用户先前在另一个应用程序中查看的信息主动填充某个应用程序的方法的流程图表示。图25A至图 25J用于示出图24A至图24B中的方法和/或过程。尽管将参考触敏显示器 (其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195 上的输入,如图1D中所示。
在一些实施方案中,方法2400由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2400由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2400。在一些实施方案中,参照图1A,方法2400的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块 132)和触敏显示器(例如,触敏显示器系统112)。方法2400中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法2400提供了一种直观的方式以在具有触敏显示器的电子设备上主动使用用户先前在另一个应用程序中查看的信息来填充应用程序。该方法减少了在不同的第二应用程序中使用来自第一应用程序的信息所需的用户输入的数量,从而创建了更有效的人机界面。对于电池驱动的电子设备,主动使用用户先前在另一个应用程序中查看的信息来填充应用程序既节省电力又增加了电池两次充电之间的时间间隔。
如图24A所示,在显示第一应用程序的同时,电子设备获取用于识别用户在所述第一应用程序中查看的第一物理位置的信息(2401)。例如,第一应用程序是当前显示在触敏显示器上的前台应用程序(例如,所述第一应用程序是提供诸如图25A所示众包评论的应用程序)。在一些实施方案中,获取包括将关于位置数据的信息发送到电子设备的操作系统部件,或者获取包括使用辅助功能来获取该信息。以上提供了关于使用辅助功能来获取信息的细节(参见例如以上参照方法1800提供的描述,特别是以上参照操作1807和1809提供的描述)。
在一些实施方案中,电子设备退出第一应用程序(2403)(例如,用户轻击Home硬件按钮以请求退出第一应用程序并查看home屏幕,或者用户双击Home硬件按钮以请求退出第一应用程序并查看应用程序切换用户界面)。在退出第一应用程序后,电子设备接收来自用户的打开不同于第一应用程序的第二应用程序的请求(2405)。在一些实施方案中,接收打开所述第二应用程序的请求包括:在退出第一应用程序后,检测第二应用程序的示能表示上的输入(2407)(换句话讲,该请求不对应于点击第一应用程序内的链接)。例如,用户从home屏幕选择第二应用程序(例如,用户轻击图 25B所示home屏幕上显示的顺风车应用程序的图标(示能表示))。在一些实施方案中,home屏幕是操作系统的系统级部件,包括用于调用电子设备上可用的应用程序的图标。
又如,用户从应用切换用户界面选择第二应用程序(例如,用户轻击图25C所示应用切换用户界面中包括的顺风车应用程序的表示)。更具体地讲,在又一个示例中,检测输入包括:在物理Home按钮(例如,Home 204)上检测双击,响应于检测到双击,显示应用程序切换用户界面,并且从应用程序切换用户界面内检测示能表示的选择(2411)。
作为关于操作2405的一个附加示例,用户选择用户界面对象,当选中该用户界面对象时将使设备打开第二应用程序(例如,图25B和图25C所示示能表示2503)。在一些实施方案中,在第一应用程序中未接收到任何输入情况下接收请求(例如,请求不包括在第一应用程序内点击链接或按钮)。
响应于接收到请求,电子设备确定第二应用程序是否能够接受地理位置信息(2413)。在一些实施方案中,该确定操作2413包括以下中的一项或多项(2415):(i)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定第二应用程序能够在地图上显示地理位置信息;(iii) 确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。在一些实施方案中,确定第二应用程序能够接受地理位置信息包括:确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。例如,第二应用程序是包括此类输入接收字段的顺风车应用程序(如图25E所示,示例性顺风车应用程序包括输入接收字段2507,该字段允许在显示的地图内进行搜索),或者第二应用程序是同样包括此类输入接收字段的地图应用程序(如图25F所示)。
现在转向图24B,在一些实施方案中,响应于接收到请求,电子设备基于用户的应用程序使用历史确定第二应用程序是否与第一应用程序相关联(例如,在打开第一应用程序后已打开第二应用程序阈值次数),并且还确定第二应用程序能够接受和处理位置数据(如上所述)。换句话讲,在一些实施方案中,电子设备同时确定第二应用程序具有接受位置数据的字段,并且第一应用程序和第二应用程序相关联(借助于用户在打开第一应用程序后经常打开第二应用程序)。在一些实施方案中,在呈现第二应用程序之前,电子设备为第二应用程序提供对识别第一物理位置的信息的访问权限,其中在提供该访问权限之前,第二应用程序不能访问识别第一物理位置的信息(2417)。例如,第二应用程序先前不能访问关于用户在第一应用程序中查看的信息,并且仅在现在向其提供访问权限,并且用户只能使用识别所述第一地理位置的信息来填充第二应用程序中的输入接收字段。这样,由于设备知晓用户经常一起使用第一应用程序和第二应用程序,因此设备能够主动地填充文本输入字段而不需要任何用户输入(除了用于建立第一应用和第二应用之间连接的那些输入)。
在一些实施方案中,响应于接收到请求并且根据(以上参照操作2413 和操作2415讨论的)确定第二应用程序能够接受地理位置信息,电子设备呈现第二应用程序,并且呈现第二应用程序包括使用至少部分地基于第一物理位置识别信息的信息填充第二应用程序。在一些实施方案中,填充第二应用程序包括显示用户界面对象,该用户界面对象包括至少部分地基于第一物理位置识别信息的信息(2421)。例如,如图25D所示,用户界面对象2505包括至少部分地基于第一物理位置识别信息的信息(例如,用户在第一应用程序中查看的餐厅地址,如图25A所示)。在一些实施方案中,用户界面对象2505可包括餐厅的名称(例如,“Gary Danko”,作为地址的替代或补充,或者UI对象2505可包括关于餐厅位置的其他相关信息)。在一些实施方案中,用户界面对象包括文本描述,该文本描述通知用户所述第一物理位置最近在第一应用程序中被查看(2423)(例如,与第一应用程序相关联的图标包括在用户界面对象2505中,如图25D所示)。
在一些实施方案中,用户界面对象是在第二应用程序中显示的地图 (例如,图25D所示地图),并且填充第二应用程序包括填充地图以包括第一物理位置的标识符(2425)。在一些实施方案中,电子设备使用第一物理位置的名称、第一物理位置的电话号码、第一物理位置的地址或识别第一物理位置的(并且允许进行搜索的)其他信息查找特定的地理位置,并将该特定地理位置填充至第二应用程序中。在一些实施例中,第二应用程序呈现虚拟键盘,并且在虚拟键盘上方显示用户界面对象(2427)(例如,如图 25D所示,用户界面对象2505显示在虚拟键盘上方)。
在一些实施方案中,获取信息包括(2429)获取关于第二物理位置的信息,显示用户界面对象包括显示具有与第二物理位置有关的信息的用户界面对象(例如,地图包括第一物理位置和第二物理位置的标识符),并且/ 或者该示能表示包括关于第一物理位置和第二物理位置的信息。在一些实施方案中,接收请求(例如,操作2405)包括接收打开第二应用程序的请求,所述第二应用程序具有与第一物理位置或第二物理位置之一有关的信息(例如,显示诸如图25G和图25H所示用户界面对象2503,并且用户能够选择先前在第一应用程序中查看的任一物理位置)。
在一些实施方案中,用户在地图应用程序内的搜索也可用于获取关于物理位置(例如,以上讨论的第一物理位置和第二物理位置)的信息。如图25F所示,用户可以搜索位置并接收多个搜索结果,包括结果2511A、 2511B、2511C和2511D。在一些实施方案中,用户能够选择其中一个结果,诸如图25F所示的2511A,然后在地图上突出显示该位置。进行搜索后,可向用户呈现利用作为搜索结果一部分的物理位置的选项(例如,如图25G所示,用户界面对象2505呈现使用基于至少两个物理位置的信息搭乘顺风车前往任一位置的选项)。在一些实施方案中,图25G所示用户界面对象2505也可通过应用程序切换用户界面访问(如图25H所示)。在一些实施方案中,响应于接收到用户界面对象2505中所示物理位置之一的选择(从图25G或25H的应用切换或home屏幕),将用户带到适当的应用程序(例如,图25I所示顺风车应用程序),并使用基于所选物理位置的信息填充该应用程序(例如,图25I中示出了用户界面对象2505并且包括地址)。
使用共享位置数据作为说明上述方法2400的主要示例,但上述相同方法和技术也适用于在两个不同应用程序之间共享其他类型的数据。例如,以上参照方法2400描述的技术还能促进在社交网络应用程序(例如, Facebook)和社交共享应用程序(例如,Twitter)之间共享搜索查询。例如,在用户在Facebook中搜索某个姓名之后,向用户提供在Twitter中搜索相同姓名的建议。又如,可以在日历应用程序和电子邮件应用程序之间共享即将召开的会议的与会者列表,从而如果用户在日历应用程序中查看即将召开的会议,然后切换为使用电子邮件应用程序并点击“撰写”按钮,则将填充新电子邮件的收件人列表以包括即将召开的会议的与会者列表。
应当理解,对图24A至图24B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2600和方法2700)所述的其他过程的细节同样以类似的方式适用于上文结合图 24A至图24B所述的方法2400。例如,以上参考方法2400所述的操作任选地具有本文参考本文所述其他方法(例如,方法2600和2700)的一个或多个特征,或并入本文参考本文所述其他方法描述的操作。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2400用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图26A至图26B是根据一些实施方案,主动建议将用户先前在第一应用程序中查看的建议信息用于第二应用程序的流程图表示。图25A至图 25J用于示出图26A至图26B中的方法和/或过程。尽管将参考触敏显示器 (其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195 上的输入,如图1D中所示。
在一些实施方案中,方法2600由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2600由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2600。在一些实施方案中,参照图1A,方法2600的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块 132)和触敏显示器(例如,触敏显示器系统112)。方法2600中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法2600提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议用户先前在第一应用程序中查看的信息以用于第二应用程序。该方法通过为用户调用有用信息且无需用户执行多个输入来检索该信息,从而创建了更加有效的人机界面。对于电池驱动的电子设备,主动建议用户先前在第一应用程序中查看的信息以用于第二应用程序既节省电力又增加了电池两次充电之间的时间间隔。
如图26A所示,电子设备获取用于识别用户在所述第一应用程序中查看的第一物理位置的信息(2601)。以上参照操作2401描述的细节也适用于操作2601。电子设备检测第一输入(2603)。在一些实施方案中,第一输入对应于打开应用程序切换用户界面的请求(2605)(例如,第一输入是在电子设备的物理Home按钮上的双击)。在一些实施方案中,第一输入对应于打开电子设备home屏幕的请求(2607)。(例如,第一输入是在电子设备的 Home按钮上的单次轻击)。在一些实施方案中,第一输入是使设备至少部分地退出或切换应用程序的输入。
响应于检测到第一输入,电子设备识别能够接受地理位置信息的第二应用程序(2609)。在一些实施方案中,识别第二应用程序能够接受地理位置信息包括以下中的一项或多项(2611):(i)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定第二应用程序能够在地图上显示地理位置信息;(iii)确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。在一些实施方案中,识别第二应用程序能够接受地理位置信息包括:确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。
响应于检测到第一输入,(作为识别第二应用程序的补充)电子设备在显示器的至少一部分上呈现不同于第一应用程序的示能表示,并建议打开具有关于第一物理位置的信息的第二应用程序(2613)。例如,如果第一输入对应于打开home屏幕的请求,则电子设备在home屏幕的一部分上呈现 (2617)(例如,如图25B和图25G所示,在home屏幕的顶部显示示能表示 2505)。又如,如果第一输入对应于打开应用程序切换用户界面的请求,则电子设备在应用程序切换用户界面内呈现示能表示(2615)(例如,在显示器上位于正在电子设备上执行的应用程序表示下方的区域,如图25H所示示能表示2505)。在一些实施方案中,该建议包括特定于与第二应用程序相关联的类型的文本描述(2619)(例如,使用识别第一物理位置的信息对在第二应用程序中要执行的动作的描述,或对在第二应用程序中进行的搜索的描述,例如,您想要乘车前往位置X吗?对比您想要查找地址X吗?) 在一些实施方案中,基于可通过第二应用程序使用的功能来确定与第二应用程序相关联的类型(例如,第二应用如何使用位置信息以及基于第二应用程序对位置信息的使用可获得哪些功能)。
现在转向图25B,电子设备在示能表示处检测第二输入(2621)。响应于在示能表示处检测到第二输入,电子设备打开第二应用程序,并且填充第二应用程序以包括至少部分地基于第一物理位置识别信息的信息(2623)。操作2627、2629和2631分别对应于以上参考方法2400所讨论的操作2423、 2425和2427,并且上述讨论也适用于方法2600(为了简明起见,此处不再重复这些细节。)。
和方法2400相比,在向用户提供建议,建议其打开具有第一物理位置相关信息的第二应用程序前,方法2600不会从用户接收打开第二应用程序的特定请求。这样,通过使操作与方法2400和2600两者相关联(以及使用来自这些方法中的每一种的一些处理步骤的组合),电子设备能够提供高效的用户体验,允许用户在打开能够接受地理位置信息的应用程序之前或之后预测地使用位置数据。此外,确定第二应用程序能够接受地理位置信息(在方法2600中)甚至在打开所述第二应用程序之前即已执行,并且以这种方式,将仅建议打开具有先前查看的位置信息的应用程序(如果已知该应用可以接受位置数据)。为了简明起见,关于方法2400的一些细节在这里没有针对方法2600重复说明,但是此类细节仍然适用于方法2600 (诸如第一应用程序和第二应用程序可直接共享位置数据)。
应当理解,对图26A至图26B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2400和方法2700)所述的其他过程的细节同样以类似的方式适用于上文结合图 26A至图26B所述的方法2600。例如,以上参考方法2600所述的操作任选地具有参考本文所述其他方法(例如,方法2400和2700)在本文中描述的操作的一个或多个特征,或使用参考本文所述其他方法在本文中描述的操作。在一些实施方案中,第1至11部分的任何相关细节可以结合方法 2600用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图27是根据一些实施方案,主动建议物理位置以用作车辆中路线引导的目的地的流程图表示。图28用于示出图27的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
在一些实施方案中,方法2700由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2700由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2700。在一些实施方案中,参照图1A,方法2700的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块 132)和触敏显示器(例如,触敏显示器系统112)。方法2700中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法2700提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议物理位置以用作车辆中路线引导的目的地。该方法通过要求更少的触摸输入(或不需要输入)以将物理位置用于路线引导,从而创建了更有效的人机界面。对于电池驱动的电子设备,主动建议物理位置以用作车辆中路线引导的目的地既节省电力又增加了电池两次充电之间的时间间隔。
如图27所示,电子设备获取用于识别第一物理位置的信息,其中第一物理位置是用户在电子设备上正在执行的第一应用程序中查看的位置 (2701)。电子设备确定用户已经进入车辆(2703)。在一些实施方案中,确定用户已经进入车辆包括检测电子设备已经建立与车辆的通信链路(2705)。在其他实施方案中,确定用户已经进入车辆可包括检测用户是否在该车辆的存储位置的预定距离内,从而在用户进入汽车之前即提示其使用第一地理位置作为路线引导的目的地。在一些实施方案中,以上参照方法1400讨论的任何其他确定也可用于证明用户已经进入车辆。
响应于确定用户已经进入车辆,电子设备向用户提供使用第一物理位置作为路线引导目的地的提示(例如,在设备上的用户界面对象中,诸如图28所示用户界面对象2801,或者通过Siri提示,或两者)(2707)。响应于提供提示,电子设备从用户接收指令,指示用户将第一物理位置作为路线引导的目的地使用(2709)。
然后,电子设备促进到第一物理位置的路线引导(2711)。在一些实施方案中,促进路线引导包括通过电子设备的显示器提供路线引导(2713)。在一些实施方案中,促进路线引导包括向车辆发送识别第一物理位置的信息 (2715)。在一些实施方案中,促进路线引导包括通过与电子设备通信的音频系统提供路线引导(2717)(例如,车辆扬声器或设备自身的内部扬声器)。在一些实施方案中,执行操作2713、2715和2717中的两个或更多个以确保用户准确地跟随路线引导。
在一些实施方案中,电子设备检测电子设备已接收到消息(语音信箱、文本、电子邮件或其他社交媒体消息),包括检测该消息包括识别第二物理位置的信息(2719)(在一些实施方案中,使用以上参照方法1800和 2000讨论的一种或多种技术来执行检测)。在一些实施方案中,检测消息含有识别第二物理位置的信息包括:当电子设备上可用的虚拟助理正在通过和电子设备通信的音频系统将消息读出给用户时,执行检测(例如,Siri 通过设备扬声器或车辆的音频系统读出消息)。
在一些实施方案中,响应于检测,电子设备向用户提供将第二物理位置用作路线引导的新目的地的提示(2723)(例如,第二物理位置可对应于新的会合点,诸如在用户驾驶时改变的餐厅位置,而在其他实施方案中,直到用户已经到达第一物理位置之后才识别第二物理位置)。在一些实施方案中,响应于从用户接收到使用第二物理位置作为新目的地的指令,电子设备促进到第二物理位置的路线引导(2725)(例如,使用以上参照操作 2711、2713、2715和2717讨论的一个或多个促进技术)。
应当理解,对图27中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2400和方法 2600)所述的其他过程的细节同样以类似的方式适用于上文结合图27所述的方法2700。例如,以上参考方法2700所述的操作任选地具有参考本文所述其他方法(例如,方法2400和2600)在本文中描述的操作的一个或多个特征,或使用参考本文所述其他方法在本文中描述的操作。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2700用于任何合适的目的。为了简明起见,此处不再重复这些细节。
图29是根据一些实施方案主动建议粘贴动作的方法的流程图表示。图 30A至图30D用于示出图29的方法和/或过程。尽管将参考触敏显示器 (其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195 上的输入,如图1D中所示。
在一些实施方案中,方法2900由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2900由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图 1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2900。在一些实施方案中,参照图1A,方法2900的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块 132)和触敏显示器(例如,触敏显示器系统112)。方法2900中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
如下所述,方法2900提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议粘贴动作。该方法可减少执行粘贴动作所需的用户输入,从而创建更有效的人机界面。对于电池驱动的电子设备,主动建议粘贴动作既帮助节省电力又增加了电池两次充电之间的时间间隔。
如图29所示,电子设备在第一应用程序中呈现内容(2901)(例如,如图30A所示,设备呈现对应于即时消息应用程序的内容,包括来自远程用户的消息“去看big time乐队吧,他们真的很棒!”)。在一些实施方案中,电子设备接收复制该内容的至少一部分的请求(2903)(例如,用户复制文本“big time乐队”)。在一些实施方案中,未接收到任何复制该部分内容的请求(换句话讲,用户仅在第一应用程序中查看内容,而不请求复制任何内容)。
电子设备接收来自用户的打开不同于第一应用程序的第二应用程序的请求,第二应用程序包括输入接收字段(2905)(例如,图30C所示输入接收字段3011)。例如,如图30B所示,用户在第二应用程序(例如,图 30B所示示例中的浏览器应用程序)的图标上提供输入(例如,触摸 3003),该输入对应于打开第二应用程序的请求。如图30C所示,响应于接收到该请求,电子设备呈现具有输入接收字段(例如,图30C所示输入接收字段3011)的第二应用程序(2907)。
在一些实施方案中,电子设备将输入接收字段识别为能够接受该部分内容的字段(2909)。在一些实施方案中,响应于检测到输入接收字段的选择 (例如,用户在图30C所示输入接收字段3011内轻击),执行识别 (2911)。换句话讲,用户将焦点置于第一输入接收字段内,电子设备随后确定该第一输入接收字段能否接受主动复制的该部分内容。
在一些实施方案中,在输入接收字段处接收到任何用户输入前,电子设备提供可选用户界面对象(或多于一个可选用户界面对象,诸如在图 30C所示建议部分3007内所示的用户界面对象)以允许用户将内容的至少一部分粘贴到输入接收字段中(2913)。例如,使用基于该部分内容的两个建议内容项(例如,“big time乐队”和“big time乐队视频”)填充建议部分3007,其中所述建议部分大体上显示在第二应用程序内的虚拟键盘上方。响应于检测到可选用户界面对象(例如,图30C的输入3009)的选择,电子设备将该部分内容粘贴到输入接收字段(2915)(例如,如图30D 所示,“big time乐队视频”被粘贴到输入接收字段3011中)。通过提供这种主动粘贴功能,用户不需要离开第二应用程序、重新打开第一应用程序、从第一应用程序中复制该部分、重新打开第二应用程序,然后在第二应用程序中执行粘贴动作。相反地,用户只需选择与用户想要粘贴的该部分内容相关联的可选用户界面对象,从而大大减少了执行相同粘贴功能所需附加输入的数量,为电子设备实现了更高效和更节能用户界面。
在一些实施方案中,该部分内容对应于图像、文本内容或文本内容和图像(2915)。这样,电子设备能够主动针对各种内容类型建议粘贴动作,具体取决于第二应用程序能够接受的数据。
在一些实施方案中,可选用户界面对象与以下指示一起显示:最近在第一应用程序中查看该内容的部分(例如,图30C所示建议部分3007包括诸如“您最近查看过一条有关‘big time乐队’的信息”的文本描述)。这样,向用户提供关于为什么提出粘贴建议的清楚指示。
在一些实施方案中,用户界面对象还可以呈现在home屏幕或应用程序切换用户界面的一部分上,所述用户界面为用户提供了一个选项,使用户能够执行基于在第一应用程序中查看的内容的动作。在一些实施方案中,在请求打开第二应用程序之前呈现该用户界面对象(操作2905),并且可以在第一应用程序、home屏幕或应用程序切换用户界面上呈现该用户界面对象。图30B中示出了用户界面对象3005的示例。示例性用户界面对象3005允许用户使用第一应用程序中呈现的文本执行搜索(例如,对“big time乐队”执行系统范围搜索(例如,Spotlight搜索)或打开特定应用程序(诸如Safari)并执行该搜索)。
虽然即时消息应用程序和浏览器应用程序被用作上述主要示例,但许多其他类型的应用程序也从与方法2900相关联的技术中受益。例如,第一应用程序可以是照片浏览应用程序,并且第二应用程序可以是即时消息应用程序(例如,使得在即时消息应用程序中呈现的主动粘贴建议对应于用户在照片浏览应用程序中查看的照片)。
应当理解,对图29中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2200和方法 2900)所述的其他过程的细节同样以类似的方式适用于上文结合图29所述的方法2900。例如,以上参考方法2900所述的操作任选地具有参考本文所述其他方法(例如,方法2200和2900)在本文中描述的操作的一个或多个特征,或使用参考本文所述其他方法在本文中描述的操作。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2900用于任何合适的目的。为了简明起见,此处不再重复这些细节。
下面还提供了有关物理位置的建议信息的更多细节,这些细节可用于补充方法2200、2280、2900、2400、2600和2700。在一些实施方案中,方法2200、2280、2900、2400、2600和2700(或本文描述的任何其他方法) 还获得有关以下各项的信息:来自web浏览应用程序(例如,来自加利福尼亚州库比蒂诺的APPLE INC的Safari)中用户查看的位置的物理位置(或其他类型的内容)、用户已经复制(例如,到粘贴板)的地址、与即将到来的日历事件相关联的位置(例如,如果事件被安排在预定时间段(诸如,1小时、30分钟等)内发生,则与该事件相关联的位置还可以在顺风车或其他应用程序中使用并向用户简单建议),以及用户与电子设备上的虚拟助理(例如,APPLE INC的Siri)进行交互时所讨论的位置(诸如,当用户向Siri询问附近的餐厅时,那么有关那些餐厅的信息可以被其他应用程序使用或作为对用户的建议用于其他应用程序中)。
在一些实施方案中,位置可供其他应用程序使用或作为用户使用的建议,而不需要与位置相关的任何预先用户交互。例如,如果特定位置与即将到来的日历事件相关联,则可以主动建议该特定位置用于顺风车应用程序,即使用户最近没有查看即将到来的日历事件或特定位置。
在一些实施方案中,在整个电子设备(例如,设备100)的各种应用程序和组件中提供了位置建议(例如,使用本文讨论的任何技术可获得的位置的建议)。例如,在一些实施方案中,位置建议可从以下各项内获取:
·虚拟键盘上方的建议部分(也称为QuickType栏),例如参考图 25D中的用户界面对象2505所讨论的;
·应用程序切换用户界面,例如参考图25C中的用户界面对象2503 所讨论的;
·主屏幕上的地图应用程序,无需任何用户动作;
·地图桌面小程序(例如,诸如可响应于用户在home屏幕的第一页上方在大致从左到右的方向上滑动而在主界面内显示的一个地图桌面小程序),在某些实施方案中,用户(即)在地图桌面小程序上方以增加强度执行手势导致在地图桌面小程序内显示建议的位置;
·主屏幕上的CarPlay地图应用程序,无需任何用户动作(例如,针对方法2700所讨论的);
·搜索界面(例如,以示出与搜索界面内的位置(诸如,图11B中的位置)相对应的搜索查询建议);以及
·设备100的虚拟助理组件(例如,响应于来自用户的文本或口头问题,诸如“将我导航到那里”或“调用这个地方”,虚拟助理能够基于根据本文讨论的任何技术确定的建议位置消除对“那里”和“这个”的引用的歧义)。
在一些实施方案中,关于使位置可被虚拟助理应用程序使用,设备 100能够基于用户当前正在前台应用程序中查看的数据来响应诸如“将我导航到那里”或“调用这个地方”的问题。在一些实施方案中,为了响应向虚拟助理提出的问题而向服务器提交的任何请求以隐私保护方式执行。例如,当解析并响应“将我导航到那里”时,将请求发送到与虚拟助理相关联的服务器,并且仅将位置在当前应用中可用的指示提供给服务器,而没有任何其他用户识别信息,也没有明确公布的位置数据。在一些实施方案中,服务器解读并响应命令/问题,并且指示设备100开始导航到适当的位置(例如,用户在前台位置或某个其他适当位置中查看的位置,诸如即将到来的日历事件的位置)。
在一些实施方案中,如果用户复制文本内容,则设备100自动(即,无需来自用户的任何明确指令来执行)确定所复制的文本内容是否包括位置信息(例如,地址或可以用于检索地址的某些其他信息,诸如餐厅名称等)。根据确定所复制的文本内容确实包括位置信息,设备100公布该地址以供能够显示和使用位置信息的其他系统组件(例如,上面提供的示例,诸如QuickType栏和应用程序切换用户界面等)使用。例如,用户接收到具有地址的文本消息,然后用户复制该地址,提供输入(例如,在 home按钮上双击以呈现应用程序切换用户界面),并且响应于该输入,设备100显示用户界面对象,诸如读取“在地图中获取<地址>的路线”或位置可用于应用程序中的某些其他适当且指示性的短语的横幅(例如,上面讨论的用户界面2503)。
在一些实施方案中,建议供用户使用的位置信息(例如,QuickType 栏内、应用程序切换用户界面内等)根据将要使用位置信息的应用程序的类型而不同。例如,如果用户查看众包评论应用程序(例如,Yelp)中的位置,并且用户随后导航到顺风车应用程序(例如,Uber),则用户可以看到与他们之前查看的位置相对应的完整地址。然而,如果用户导航到天气应用程序,则可以仅将用户呈现在他们之前查看的位置的城市和州内而不是完整地址,因为天气应用程序仅需要城市和州的信息,而不需要完整地址。在一些实施方案中,应用程序能够指定提供位置信息应有的粒度级别,然后相应地提供所建议的位置信息(例如,以顺风车应用程序为第一粒度级别,以天气应用程序为第二级粒度级别)。
在一些实施方案中,响应于用户对所建议的位置的选择而插入的位置信息取决于触发短语。例如,如果用户查看众包评论应用程序中的位置,然后切换到消息应用程序,并且开始键入“见面地点在”,则设备可能会显示用户之前在众包评论应用程序中(例如,图23F中的用户界面对象 2309内)查看的位置。在一些实施方案中,如果用户选择所建议的位置 (例如,在用户界面对象2309上轻击),则设备可以插入餐厅名称和餐厅地址(并且还可以插入其他相关信息,诸如菜单链接、电话号码等)。在一些实施方案中,如果用户已经键入“地址是”,则响应于用户对建议的选择,只有地址才可能被插入(而不是名称或其他细节,因为触发短语“地址是”表示只需要地址)。在一些实施方案中,设备100对可用于建议的特定位置的一个以上的表示进行维护,以便以不同粒度级别选择性地提供该信息。例如,如果用户从众包评论应用程序中复制地址,则设备100 可以保留所复制的地址,并且可以另外存储可从众包评论应用程序获取的其他信息(例如,包括电话号码、餐厅名称、菜单链接等)。
在一些实施方案中,设备100(或组件,诸如图1A的主动模块)主动监视日历事件并建议与即将到来的事件(例如,开始时间在预定时间量 (诸如,30分钟、1小时或1.5小时)内的事件)相关联的位置,即使没有接收到与特定事件或其关联位置的任何用户交互。在一些实施方案中,考虑了交通状况以便调整预定时间量。
在一些实施方案中,当应用程序被建议使用位置信息(例如,在应用程序切换用户界面中,诸如顺风车应用程序被建议使用图25C中的用户界面对象2503中的Gary Danko的位置)时,该应用程序是基于有助于识别应用程序的各种上下文信息/启发式过程(例如,基于应用程序使用模式、一天中的时间、一周中的日期、应用程序安装的最新情况等)而选择的,更多细节在下面参考第8部分提供)。在一些实施方案中,相应的应用程序最近的使用情况是为了识别应用程序而利用的附加因素(例如,如果用户最近去吃晚饭并且使用顺风车应用程序到达那里,则设备100可以确定用户试图在大约一个小时后回家,并将建议顺风车应用程序,因为该应用程序是最近常使用的)。
如上所述,方法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部分描述了热状况的管理,这对本文提供的有关节省电量(例如,以确保方法600和800或上述任何其他方法以节能方式操作)的公开内容进行了补充。
移动设备动态调整的摘要
在一些具体实施中,移动设备(例如,图1A的设备100)可以被配置为监视环境、系统和用户事件。移动设备可以被配置为检测可触发对系统设置进行调整的一个或多个事件的发生。
在一些具体实施中,移动设备可以被配置有预定义和/或动态定义的属性。系统可以使用该属性来跟踪系统事件。属性事件可以被存储并且稍后用于预测属性事件的未来发生。系统可以使用所存储的属性事件来对移动设备执行的处理做出决定。属性可以与预算相关联,这些预算允许预算资源支持系统上的未来事件或活动。
在一些具体实施中,在移动设备上运行的各种应用程序、功能和过程可以提交属性事件。应用程序、功能和过程可以基于所提交的事件稍后请求预测。应用程序、功能和过程可以基于与属性相关联的预算和与所报告的事件相关联的成本执行预算。例如,应用程序、功能和过程可以与移动设备或第三方应用程序的操作系统相关联。
在一些具体实施中,移动设备可以被配置为保持频繁调用的应用程序为最新。移动设备可以记录用户何时调用应用程序。基于调用信息,移动设备可以预测应用程序在一天中的何时被调用。然后,移动设备可以预先启动应用程序并下载更新,使得用户可以调用该应用程序并查看当前更新的内容,而不必等待应用程序下载更新的内容。
在一些具体实施中,移动设备可以接收与应用程序相关联的推送通知,该推送通知指示有新内容可供应用程序下载。移动设备可以在后台启动与推送通知相关联的应用程序,并且下载新的内容。在下载内容之后,移动设备可以呈现向用户指示接收到推送通知的图形界面。然后,用户可以调用应用程序并查看更新的内容。
在一些具体实施中,移动设备可以被配置为执行移动设备上应用程序的内容的下载和/或上载过程。例如,专用过程可以在移动设备上被配置为下载和/或上载移动设备上应用程序的内容。
在执行上载/下载时,可以暂停或终止应用程序。当完成上载/下载之后,可以调用应用程序。
在一些具体实施中,在运行应用程序或访问网络接口之前,移动设备可以被配置为检查电池电量和蜂窝数据使用预算,以确保足够的电力和数据可用于用户调用的操作。在后台启动应用程序之前,移动设备可以检查使用统计资料,以确定应用程序是否可能在不久的将来被用户调用。
在一些具体实施中,属性事件数据可在同一用户拥有的移动设备之间共享。移动设备可以从对等设备接收事件数据,并且基于所接收的事件数据对涉及对等设备的交互或操作做出决定。事件数据可以作为预测、统计资料和/或原始(例如,未经处理的)事件数据被共享。例如,移动设备可以基于所接收的事件数据来确定是否与对等设备进行通信。
特定的具体实施提供了至少以下优点:通过响应于检测到的事件而动态调整移动设备的组件,可以节省电池电量。通过预期用户将在何时调用应用程序并且下载内容,使得用户将在调用应用程序时查看更新的内容,可以改进用户体验。
在下面的附图和具体实施方式中阐述了一种或多种具体实施的细节。其他特征、方面和潜在优点将在具体实施方式和附图以及权利要求中显而易见。
移动设备动态调节的详细说明
概述
本部分描述了一种系统架构,该系统架构用于基于各种系统事件实现移动设备适配,以便于在电池寿命、功率需求、热管理和性能之间进行权衡。该系统提供基础事件采集架构和一组从系统事件中学习的启发式过程,从而最大限度地延长电池寿命,而不会明显降低用户体验。系统监视系统定义和客户端定义的属性,并可以使用系统定义和客户端定义的属性来预测或预报未来事件的发生率。该系统可以基于动态收集的统计信息和/ 或明确指定的用户意图来预期系统的未来行为以及用户对设备性能的期望。该系统可以确定要设定的硬件和软件控制参数以及所设定参数的值,以改善用户对于预期系统行为的体验。该系统利用系统监视和硬件控制来实现用户体验的全面改善,同时扩展可用于移动设备的系统和网络资源。因此,系统可以在使系统和网络资源最大化的同时,使对用户体验的影响最小化。
数据收集—以用户为中心的统计
图31_1示出了被配置为执行移动设备31_100的动态调节的示例性移动设备31_100。在一些具体实施中,移动设备31_100可以包括取样守护进程31_102,其收集与设备状况、网络状况、系统服务(例如,守护进程) 和用户行为相关的事件。例如,取样守护进程31_102可以收集与应用程序、传感器和由移动设备31_100接收的用户输入相关的统计信息,并将该统计信息存储在事件数据存储库31_104中。该统计信息可以由移动设备 31_100上运行的各种客户端(例如,应用程序、实用程序、功能、第三方应用程序等)使用被报告为事件的预定义或客户定义的属性来报告给取样守护进程31_102。
数据收集—事件和属性
在一些具体实施中,移动设备31_100可以被配置为具有用于收集系统和/或应用程序事件的框架。例如,移动设备31_100可以被配置为具有应用编程接口(API),该API允许移动设备31_100的各种应用程序、实用程序和其他部件向取样守护进程31_102提交事件以用于之后的统计分析。
在一些具体实施中,由取样守护进程31_102记录在事件数据存储库 31_104中的每个事件可以包括属性名称(例如“包名(bundleId)”)、属性值(例如“联系人”)、匿名信标信息、匿名位置信息、日期信息(例如,事件的GMT日期)、时间信息(例如,事件的本地化24小时时间)、网络质量信息、处理器利用率量度、磁盘输入/输出量度、当前用户的标识和/或事件类型(例如,开始、停止、发生)。例如,属性名称可以标识出与事件相关联的属性的类型。属性名称可以用于标识例如由取样守护进程31_102所跟踪的特定度量。属性值可以是与属性相关联的值(例如,字符串、整数、浮点)。匿名信标信息可以指示哪个无线信标(例如,蓝牙、低功耗蓝牙、Wi-Fi等)在移动设备的范围内,而不会将信标信息与用户或设备绑定或相关联起来。类似地,匿名位置信息可以标识移动设备的位置,而不将位置信息与用户或设备绑定或相关联起来。例如,可以使用移动设备31_100上所配置的各种收发器从卫星数据(例如,全球定位卫星系统)、蜂窝数据、Wi-Fi数据、蓝牙数据得出位置信息。网络质量信息可以指示当事件发生时由移动设备31_100所检测到的移动设备网络 (例如,Wi-Fi、蜂窝、卫星等)连接质量。
在一些具体实施中,每个事件的事件数据可以指示事件发生、开始或停止。例如,可以对指示属性的开始事件和停止事件的相同属性的事件对进行计时(例如,持续时间计时)。例如,取样守护进程31_102可以接收具有值“联系人”的属性“包名”的开始事件。之后,取样守护进程102 可以接收具有值“联系人”的属性“包名”的停止事件。取样守护进程 31_102可以将开始事件的时间与停止事件的时间进行比较,以确定“联系人”应用程序活动的时间(例如,持续时间)。在一些具体实施中,未受计时的事件可以被记录为点事件(例如,单次发生)。例如,与“电池电量”系统属性(其指定事件发生时的瞬时电池电量)相关联的事件可简单地被记录为事件的发生。
下表1提供了由取样守护进程31_102记录在事件数据存储库31_104 中的属性事件条目的示例。第一条目记录了“包名”事件,其指示用户“Fred”已经调用了“联系人”应用程序。此“包名”事件为开始事件,其指示Fred已经开始使用联系人应用程序。第二条目是“电池电量”事件条目,其指示移动设备31_100的电池电量为46%;该事件是发生类型事件(例如,单点事件)。第三条目是与值“George”相关联的“人名”事件。“人名”事件用于记录用户Fred已经访问了联系人应用程序中联系人“George”的联系人信息这一事实;这是一个发生类型事件。第四条目记录了“包名”事件,其指示用户“Fred”已经关闭或隐藏了“联系人”应用程序。此“包名”事件为停止事件,其指示Fred已经停止使用联系人应用程序。通过记录“包名”属性的开始和停止事件,取样守护进程31_102 可以基于对应于开始和停止事件的时间戳,确定用户Fred已于2014年5 月12日使用联系人应用程序8分钟。该属性事件信息可以例如用于预报与移动设备31_100上的应用程序相关的用户活动,特别是关于联系人应用程序的用户活动。
表1
属性名称 信标 位置 日期 时间 网络质量 用户ID 状态
包名 “联系人” B1,B2… 位置1 20140512 1421 8 Fred 开始
电池电量 46 B1,B2… 位置2 20140512 1424 8 Fred 发生
人名 “George” B1,B2… 位置2 20140512 1426 8 Fred 发生
包名 “联系人” B1,B2… 位置1 20140512 1429 8 Fred 停止
预定义属性
在一些具体实施中,可以使用公知的或预定义的属性来将事件数据提交给取样守护进程31_102。公知的或预定义的属性可以是通用系统属性,其可以被移动设备31_100的各种应用程序、实用程序、功能或其他部件所使用,以将事件数据提交给取样守护进程31_102。虽然属性定义(例如,属性名称、相关联值的数据类型等)是预定义是,但是分配给预定义属性的值可以随事件而变化。例如,移动设备31_100可以被配置为具有用于识别应用程序的预定义属性“包名”,和用于识别所关注人的预定义属性“人名”。分配给“包名”的值可以基于移动设备31_100上哪个应用程序处于活动状态而有所不同。分配给“人名”的值可以基于用户输入而有所不同。例如,如果用户自“George”选择电子邮件,则可以将“人名”属性值设定为“George”。如果用户选择与“Bob”相关联的联系人条目,则可以将“人名”属性值设定为“Bob”。当移动设备31_100的应用程序、实用程序、功能或其他部件使用预定义属性将事件提交给取样守护进程 31_102时,该应用程序、实用程序、功能或其他部件可以指定与该事件的预定义属性相关联的值。在以下段落中描述了预定义或公知的系统事件的示例。
在一些具体实施中,移动设备31_100可以被配置为具有指示安装在移动设备31_100上的应用程序(例如,应用包)名称或标识符的预定义属性 (例如,“系统.包名”)。当应用程序启动时,应用程序管理器31_106 (例如,负责启动应用程序)可以使用取样守护进程31_102的API将应用程序的标识符或名称(例如,用于联系人应用程序的“联系人”)提交为“系统.包名”系统属性的值。取样守护进程31_102可以例如与如上所述的其他事件数据一起将“联系人”应用程序启动的发生作为事件记录在事件数据存储库31_104中。另选地,应用程序可以使用取样守护进程31_102 的API来指示分别对应于何时调用应用程序“联系人”以及何时隐藏或关闭该应用程序的开始和停止事件。例如,“包名”属性可用于记录移动设备31_100上的应用程序启动事件。“包名”属性可用于记录移动设备 31_100上的应用程序终止事件。通过指定与“包名”属性相关联的开始和停止事件,而不仅仅指定事件的发生,取样守护进程31_102可以确定移动设备31_100的用户使用“联系人”应用程序的时间长短。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100的用户的名称或标识符或移动设备31_100的用户所感兴趣的人的预定义属性(例如,“系统.人名”)。例如,在登录、唤醒或以其他方式访问移动设备31_100时,可以生成与“人名”属性相关联的事件并将其提交给取样守护进程31_102,该取样守护进程识别移动设备31_100的当前用户。当用户访问与另一个人相关联的数据时,可以生成“人名”属性事件并将其提交给取样守护进程31_102,该取样守护进程将另一个人识别为用户感兴趣的人。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100位置的预定属性(例如,“系统.匿名位置”)。例如,移动设备 31_100可以生成与“匿名位置”属性相关联的事件并将其提交给取样守护进程31_102,该属性指定出在事件生成时移动设备31_100的位置。位置数据可以被匿名,使得该位置无法在之后与特定用户或设备绑定或相关联起来。例如,每当用户使用移动设备31_100的基于位置的服务时,“匿名位置”属性事件可得以生成和存储。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100的飞行模式打开或关闭的预定义属性(例如,“系统.飞行模式”)。例如,当用户打开或关闭飞行模式时,移动设备31_100可以生成并向取样守护进程31_102提交事件,该取样守护进程指示事件发生时的飞行模式状态。例如,当飞机模式打开时,“飞行模式”属性的值可设定为真(例如,一),当飞机模式关闭时,“飞行模式”属性的值可设定为假 (例如,零)。取样守护进程31_102继而可以在事件数据存储库31_104 中存储“飞行模式”事件,包括“飞行模式”属性值。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100的电力缆线被插入或未被插入的预定属性(例如,“系统.缆线插入”)。例如,当移动设备31_100检测到电力缆线已被拔掉时,移动设备 31_100可以生成指示“缆线插入”属性值为假(例如,零)的事件。当移动设备31_100检测到电力缆线已经插入到移动设备31_100中时,移动设备31_100可以生成指示“缆线插入”属性为真(例如,一)的事件。移动设备31_100可以将“缆线插入”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100的显示屏是被锁定还是解锁的预定义属性(例如,“系统.屏幕锁定”)。例如,移动设备31_100可以检测移动设备31_100的显示屏何时已被锁定(例如,由系统或由用户)或者被解锁(例如,由用户)。在检测到显示屏的锁定或解锁时,移动设备31_100可以生成包括“屏幕锁定”属性的事件,并将事件的“屏幕锁定”属性值设定为真(例如,锁定,整数一)或假(例如,解锁,整数零),以指示移动设备31_100的显示屏是被锁定还是解锁。移动设备31_100可以将“屏幕锁定”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100是否处于睡眠模式的预定义属性(例如,“系统.睡眠唤醒”)。例如,移动设备31_100可以检测移动设备31_100何时进入睡眠模式。移动设备31_100可以检测移动设备31_100何时退出睡眠模式(例如,唤醒)。当检测到进入或退出睡眠模式时,移动设备可以生成包括“睡眠唤醒”属性的事件,并将该属性值设定为真或假(例如,分别为整数一或零),以指示“睡眠唤醒”事件发生时的移动设备31_100的睡眠模式状态。移动设备31_100可以将“睡眠唤醒”事件提交给取样守护进程 31_102,以存储在事件数据存储库31_104中。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100的显示器是否点亮的预定属性(例如,“系统背光”)。可为“背光”属性分配指示背光强度或水平的值。例如,移动设备31_100的用户可以调节移动设备31_100的显示器的照明(背光)的强度。当环境光线明亮时,用户可以增加背光的强度。当环境光线较暗时,用户可以降低背光的强度。在检测到背光设置的变化时,移动设备31_100可以生成包括“背光”属性的事件,并将该属性值设定为调节的背光设置(例如,强度级别)。移动设备31_100可以将“背光”变化事件提交给取样守护进程 31_102,以存储在事件数据存储库31_104中。
在一些具体实施中,移动设备31_100可以被配置为具有指示由移动设备31_100的环境光线传感器检测到的环境光线强度值的预定属性(例如,“系统.ALS”)。可为“ALS”属性分配指示移动设备31_100周围的环境光线的强度或水平的值。例如,移动设备31_100的环境光线传感器可以检测到环境光线强度的变化。移动设备31_100可以确定该强度变化超过某个阈值。当检测到环境光线的变化超过该阈值时,移动设备31_100可以生成包括“ALS”属性的事件,并将该属性值设定为检测到的环境光线强度值。移动设备31_100可以将“ALS”变化事件提交给取样守护进程 31_102,以存储在事件数据存储库31_104中。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100的接近传感器何时检测到移动设备31_100的显示器靠近物体(例如,用户的脸、在桌上等)的预定属性(例如,系统.接近度)。可为“接近度”属性指定指示移动设备的显示器是否接近对象(例如,真、假、0、 1)的值。例如,移动设备31_100的接近传感器可以检测接近度的变化。当检测到接近度的变化时,移动设备31_100可以生成包括“接近度”属性的事件,并且当移动设备31_100接近对象时将该属性值设定为真(例如,一)、当移动设备31_100未接近对象时将该属性值设定为假(例如,零)。移动设备31_100可以将“接近度”变化事件提交给取样守护进程 31_102,以存储在事件数据存储库31_104中。
在一些具体实施中,移动设备31_100可以被配置为具有指示由移动设备31_100检测到的运动的类型的预定属性(例如,“系统.运动状态”)。可为“运动状态”属性指定指示移动设备是否正处于静止、正在移动、正在跑步、正在驾驶、正在行走等等的值。例如,移动设备31_100的运动传感器(例如,加速度计)可以检测移动设备31_100的移动。移动设备 31_100可以基于在所检测的移动中检测到的运动模式来将检测到的移动分类。可将运动模式分类成多种用户活动,例如用户静止、移动、跑步、驾驶、行走等。在检测到移动的变化时,移动设备31_100可以生成包括“运动状态”属性的事件,并将该属性值设定为检测到的移动类型(例如,静止、跑步、行走、驾驶等)。移动设备31_100可以将“运动状态”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
在一些具体实施中,移动设备31_100可以被配置为具有指示由移动设备31_100检测到的网络连接质量的预定属性(例如,“系统.网络质量”)。可为“网络质量”属性分配指示在n秒(例如,1毫秒,2秒等) 时间段内的网络吞吐量值的值。例如,移动设备31_100可以连接到数据网络(例如,蜂窝数据、卫星数据、Wi-Fi、互联网等)。移动设备31_100 可以监视一段时间(例如,5秒)内的网络连接的数据吞吐量。移动设备可以计算每秒传输的数据量(例如,比特/秒、字节/秒等)。在检测到吞吐量发生变化或者在创建新的网络连接时,移动设备31_100可以生成包括“网络质量”属性并将该属性值设定为所计算的吞吐量值的事件。移动设备 31_100可以将“网络质量”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100的内部电池的瞬时充电水平的预定属性(例如,“系统.电池电量”)。可为“电池电量”属性分配指示电池的充电水平(例如百分比) 的值。例如,移动设备31_100可以周期性地(例如,每5秒、每分钟、每 15分钟等)确定电池的充电水平,并产生“电池电量”事件以记录电池的充电水平。移动设备31_100可以监视电池充电电量,并确定充电水平何时发生阈值量的改变,并生成“电池电量”事件来记录电池的充电水平。移动设备31_100可以将“电池电量”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100的热水平的预定属性(例如,“系统.热水平”)。例如,移动设备 31_100的热水平可以是移动设备的当前工作温度(例如,摄氏度)。移动设备31_100的热水平可以是表示温度值范围的水平(例如,高、中、低、正常、异常等)。例如,移动设备31_100可以被配置为具有用于监视移动设备31_100的热状态的实用程序或功能。当检测到温度变化或热水平变化时,移动设备31_100的热实用程序可以生成包括“热水平”属性的事件,并将该属性值设定为工作温度或当前热水平。移动设备31_100可以将“热水平”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104 中。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100在n秒(例如,2毫秒、3秒等)时间段内的能量使用量的预定属性 (例如,“系统.能量”)。例如,当用户调用移动设备31_100的功能(例如,应用程序调用、显示器照明、数据传输等)时,移动设备31_100可以监视在执行该功能的这一时间段内的能量使用量,以估计每个活动或功能所使用的能量数量。然后,移动设备31_100可以生成包括“能量”属性的事件,并将该属性值设定为所计算的平均能量使用量。移动设备31_100可以将“能量”事件提交给取样守护进程31_102,以存储在事件数据存储库 31_104中。
在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备 31_100在n秒(例如,2毫秒、3秒等)时间段内的网络数据的预定属性 (例如,“系统.网络字节”)。例如,当用户调用需要通过移动设备 31_100的网络连接来传输数据的功能或发起该项操作时,移动设备31_100 可以监视某一时间段内的网络数据使用量,以估计每个活动或功能所使用或传输的网络数据量。然后,移动设备31_100可以生成包括“网络字节”属性的事件,并将该属性值设定为所计算的平均网络数据使用量。移动设备31_100可以将“网络字节”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
其他预定义的属性可以包括:“系统.充电状态”属性,其具有指示移动设备31_100是否正对其电池充电的真/假(例如,一/零)属性值;“系统.电池容量”属性,其具有指示当前电池充电情况(例如,以mAh计,与电池电量成比例)的属性值,以及“系统.设备存在”属性,其具有跟踪对等设备外观的设备标识符(例如,字符串)属性值。例如,当调度对等数据共享时,可以使用“设备存在”属性来预测对等设备的外观。
自定义属性
在一些具体实施中,可以由取样守护进程31_102的客户端动态地定义特定于客户端的属性。例如,客户端(例如,第三方应用程序)可以动态地定义其自身的事件属性,而不是使用移动设备31_100上所预定义(例如,在取样守护进程31_102或操作系统中)及配置的属性。例如,电子邮件应用程序可以动态地(例如,在运行时)创建“邮箱”属性。电子邮件应用程序(“邮件应用”)可以使用取样守护进程31_102的API来定义属性名称(例如,“邮件应用.邮箱”)和属性值类型(例如,字符串、整数、浮点数)。一旦客户端已创建(注册)新的自定义属性,该客户端就可以使用该属性来生成要存储在事件数据存储库31_104中的事件。例如,邮件应用可以使用“邮箱”属性来报告电子邮件应用程序中的哪个邮箱正在受到用户访问。如果用户正在访问“工作”邮箱,则邮件应用可以使用“邮件应用.邮箱”属性创建事件,并将该属性的值设定为“工作”,以记录用户对“工作”邮箱的访问。取样守护进程31_102和客户端然后可以使用所存储的邮箱事件信息来预测例如用户将来何时可能访问“工作”邮箱。
在一些具体实施中,当从移动设备31_100移除(例如,删除、卸载) 客户端应用程序时,由该客户端应用程序所创建的属性可从移动设备 31_100被删除。此外,当客户端应用程序被移除时,与该客户端应用程序相关联的事件数据可被删除。例如,如果从移动设备31_100删除了邮件应用,则可以从移动设备31_100删除属性“邮件应用.邮箱”以及与该邮件应用相关联的所有事件数据。
示例性事件生成客户端
在一些具体实施中,取样守护进程31_102可以从应用程序管理器进程 31_106接收应用程序事件(例如,“系统.包名”事件)。例如,应用程序管理器31_106可以是开始、停止和监视移动设备31_100上的应用程序 (例如,应用程序31_108)的进程。在一些具体实施中,应用程序管理器 31_106可以向取样守护进程31_102报告移动设备31_100上所运行的应用程序的开始和停止时间(例如,“包名”开始和停止事件)。例如,当用户调用或启动应用程序时,应用程序管理器31_106可以通过提交所调用应用程序的“包名”开始事件(其指定了应用程序的名称或标识符),来通知取样守护进程31_102关于应用程序的调用。在一些具体实施中,应用程序管理器31_106可以向取样守护进程31_102指示:响应于推送通知、用户调用或者预测或预报的用户应用程序调用,应用程序启动被发起。当应用程序终止时,应用程序管理器31_106可通过提交该应用程序的“包名”停止事件(其指定了应用程序的名称或标识符),来通知取样守护进程 31_102该应用程序不再运行。
在一些具体实施中,取样守护进程31_102可以使用应用程序开始和结束事件(例如,“包名”属性事件)来生成每个应用程序的使用时间历史。例如,每个应用程序的使用时间历史可以包括,对于应用程序的每次执行而言的,从应用程序的上次执行以来已经过去的时间量和执行持续时间。取样守护进程31_102可以维护用户调用的应用程序启动和/或系统启动的(例如,自动启动的)应用程序的单独历史。因此,取样守护进程 31_102可以维护在移动设备31_100上执行的所有应用的使用统计信息。
在一些具体实施中,取样守护进程31_102可以从电力监视过程 31_108接收电力事件。例如,电力监视器31_109可以监视移动设备 31_100的电池容量、放电、使用和充电特性。电力监视器31_109可以确定移动设备31_100何时插入外部电源,以及移动设备31_100何时依赖电池电源。当移动设备31_100插入外部电源时,电力监视器31_109可以通知取样守护进程31_102。例如,当电力监视器检测到移动设备31_100插入外部电源时,电力监视器31_109可以向取样守护进程31_102发送“缆线插入”属性值为一(例如,真)的“缆线插入”事件。该事件可以包括连接外部电源时的电池充电情况。电力监视器31_109可以向取样守护进程 31_102发送“能量”属性事件以报告电池使用率。
在一些具体实施中,当移动设备31_100与外部电源断开连接时,电力监视器31_109可以通知取样守护进程31_102。例如,当电力监视器检测到移动设备31_100与外部电源断开连接时,电力监视器31_109可以向取样守护进程31_102发送“缆线插入”属性值为零(例如,假)的“缆线插入”事件。该消息可以包括当外部电源断开时的电池充电情况。因此,取样守护进程31_102可以维护描述移动设备31_100的电池的充电分配情况 (例如,随时间的充电)的统计信息。充电分配统计信息可以包括自上次充电以来的时间量(例如,自插入外部电源以来的时间),和由于充电而导致的电池充电情况的变化(例如,充电的开始水平、充电的结束水平)。
在一些具体实施中,电力监视器31_109可以通知取样守护进程 31_102全天的电池充电情况的变化。例如,当应用程序开始和停止时,电力监视器31_109可以得到通知,并且该电力监视器可响应于该通知,确定该期间内释放的电池电量和电池中剩余的电荷量,并将该信息发送给取样守护进程31_102。例如,电力监视器31_109可以向取样守护进程31_102 发送“系统.能量”事件,以指示在应用程序处于活动状态的时间段内所消耗的能量的量。
在一些具体实施中,取样守护进程31_102可以从热守护进程31_110 接收设备温度统计信息。例如,热守护进程31_110可以使用一个或多个温度传感器来监视移动设备31_100的工作温度状况。热守护进程31_110可被配置为定期向取样守护进程31_102报告温度变化。例如,热守护进程 31_110可以每五秒钟确定一次移动设备31_100的工作温度,并将移动设备 31_100的温度或热水平报告给取样守护进程31_102。例如,热守护进程 31_110可以向取样守护进程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_100上的飞行模式时,设备设定过程 31_112可以向取样守护进程31_102发送“系统.飞行模式”事件。取样守护进程31_102可以基于接收到的事件和属性值来生成并存储设备设置的统计信息。例如,每当启用(或禁用)某一设置时,取样守护进程31_102可以存储指示如下内容的数据:自先前启用设置以来已经过去的时间量,以及启用该设置的时间量(例如持续时间)。
类似地,在一些具体实施中,当其他事件发生时,取样守护进程 31_102可以接收来自其他移动设备31_100部件(例如,设备传感器 31_114)的通知。例如,取样守护进程31_102可在以下时候接收到通知:当移动设备的屏幕被打开或关闭时(例如,“系统背光”事件)、当移动设备31_100被保持在用户面部旁边时(例如,“系统接近度”事件)、当检测到小区塔切换时、当基带处理器处于搜索模式时(例如,“系统.基带搜索”事件)、当移动设备31_100检测到用户正在行走、跑步和/或驾驶时(例如,“系统.运动状态”事件)。在每种情况下,取样守护进程31_102 可以在事件开始和结束时接收到通知。在每种情况下,取样守护进程31_102可以生成并存储指示自上次检测到该事件以来已经过去的时间量以及事件持续时间的统计信息。取样守护进程31_102可以接收其他事件通知并生成其他统计信息,如下文关于特定用例和场景所进一步描述的。
应用程序事件
在一些具体实施中,取样守护进程31_102可以从移动设备31_100上的应用程序接收事件信息。例如,移动设备31_100上的应用程序可以向取样守护进程31_102生成包括预定义或动态定义的属性的事件,以跟踪各种特定于应用程序的事件。例如,取样守护进程31_102可以从日历应用程序 31_116接收日历事件(例如,包括“日历.约会”、“日历.会议”或“日历. 提醒”属性等)。日历事件可以包括“日历.约会”,“日历.会议”或“日历.提醒”属性,其具有指定与各种日历事件或功能相关联的位置、时间或其他数据的值。例如,取样守护进程31_102可以存储例如属性名称、属性持续时间和/或属性被安排发生的时间。在一些具体实施中,取样守护进程 31_102可以从时钟应用程序31_118接收时钟事件(例如,包括“时钟.闹钟”属性)。例如,取样守护进程31_102可以存储属性名称(例如,“时钟.闹钟”)和指示闹钟被安排发生的时间的值。取样守护进程31_102可以从其他应用程序(例如,媒体应用程序、卡券簿应用程序等)接收事件信息,如下文进一步描述。
应用程序统计数据
在一些具体实施中,取样守护进程31_102可以跨应用程序启动事件收集应用程序统计信息。例如,取样守护进程31_102可以跨应用程序的许多次调用来收集每个应用程序的统计信息(例如,事件、“包名”属性值)。例如,每个应用程序可以利用一散列其可执行文件系统路径和可执行内容散列来进行标识,以使同一应用程序的不同版本可以作为不同应用程序来受到处理。例如,可以在“包名”事件中将应用程序散列值作为“包名”属性的值提交到取样守护进程31_102。
在一些具体实施中,取样守护进程31_102可以维护跟踪每个应用程序的后台任务完成断言事件的计数器。例如,每当应用程序作为后台任务运行(例如,在前台不可见并且/或者目前未被用户使用)时,应用程序或应用程序管理器31_106可以在应用程序终止或暂停时通知取样守护进程 31_102,并且取样守护进程31_102可以使计数器递增。取样守护进程 31_102可以维护跟踪应用程序在后台运行的跨应用程序启动累积秒数的计数器。例如,取样守护进程31_102可以分析“包名”开始和停止事件,以确定应用程序何时开始和停止,并使用开始和停止事件的时间戳来确定应用程序运行了多长时间。在一些具体实施中,取样守护进程31_102可以维护如下独立计数器:其计数数据连接的数量;跟踪网络数据通信量(例如,以字节为单位);跟踪文件系统操作的持续时间和大小;并且/或者跟踪与每个应用程序相关联的线程数。取样守护进程31_102可以维护例如跨应用程序启动的应用程序保持活动状态的累积时间量的计数。这些仅仅是可以由取样守护进程31_102基于由取样守护进程31_102所接收并存储在事件数据存储库31_104中的事件和属性数据而生成的应用程序统计信息的几个示例。如下所述,可以生成或收集其他统计数据。
启发式
在一些具体实施中,移动设备31_100可以被配置为具有启发式过程,其可以基于由取样守护进程31_102检测到的事件来调节设备部件的设置。例如,启发式过程31_120可以包括这样的一个或多个过程:这些过程被配置(例如,编程)为响应于一个或多个触发事件并且/或者基于由取样守护进程31_102所收集或生成的统计信息,而调节各种系统设置(例如,CPU 功率、基带处理器功率、显示器照明等)。
在一些具体实施中,启发式过程31_120可以向取样守护进程31_102 注册,以便在满足一组预定义的标准(例如,发生某些触发事件)时被调用或激活。触发事件可能包括媒体播放器应用程序的调用(例如“包名”事件)或检测到用户已经开始行走、跑步、驾驶等(例如,“运动状态”事件)。触发事件可以被概括为在事件数据31_104中或由取样守护进程 31_102检测到某些性质、数据、统计信息、事件、属性、属性值等时,调用启发式过程31_120。例如,当取样守护进程31_102接收到应用程序开始通知(例如,指定特定应用程序的“包名”开始事件)时或者温度高于特定阈值(例如“热水平”事件)时,可以调用启发式过程31_120。当取样守护进程31_102接收到与指定属性或属性值相关联的事件时,启发式过程 31_120可被调用。启发式过程31_120可以注册,以便在发生单个事件或观察到统计信息时被调用。启发式过程31_120可以注册,以便在观察或检测到事件、数据、属性、属性值和/或统计数据的组合时被调用。启发式过程 31_120可以响应于特定用户输入(例如,“飞行模式”事件、“睡眠唤醒”事件等)而被触发或调用。当取样过程31_102检测到启发式过程 31_120所注册的事件时,取样过程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、蓝牙、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_110而不是启发式过程31_120的建议来调节CPU、显示器、基带处理器等的设置。
在一些具体实施中,移动设备31_100可以被配置为具有多个启发式过程31_120。启发式过程31_120可以通过无线方式来得到配置或重新配置。例如,可以通过网络(例如,蜂窝数据连接、Wi-Fi连接等)来设定或调节每个启发式过程31_120的参数(例如,触发条件、阈值、标准和输出)。在一些具体实施中,可将新的启发式过程31_120添加到移动设备31_100。例如,可由系统开发人员确定触发事件、统计数据和设备设置之间随时间推移的新相关性。随着这些新的相关性被识别出,人们可以开发新的启发式过程31_120,从而在将新确定的关系纳入考虑的情况下调节系统设置。在一些具体实施中,可以通过网络将新的启发式过程31_120添加到移动设备31_100。例如,新的启发式过程31_120可以通过无线方式(例如,蜂窝数据连接、Wi-Fi连接等)被下载或安装在移动设备31_100上。
示例性启发式过程
在一些具体实施中,启发式过程31_120可以被配置为调节移动设备 31_100的系统设置,以防止移动设备31_100在用户口袋中变得过热。例如,该口袋中发热启发式过程可以被配置为向取样守护进程31_102注册,以便在移动设备的显示关闭(例如,“系统.背光”事件具有零/假的属性值)时、以及在移动设备31_100未播放任何娱乐媒体(例如,音乐、电影、视频等)时被调用。当口袋中发热启发式过程被调用时,该过程可以提出例如降低CPU功率和GPU功率以降低移动设备31_100工作温度的建议。
在一些具体实施中,启发式过程31_120可被配置为当移动设备的显示器未被使用(例如,“系统.背光”事件具有零/假的属性值)时调节位置精度。例如,如果移动设备的显示器未被使用(例如,显示器关闭,如上文“背光”属性事件所指示的所述那样),则移动设备31_100无法向用户显示地图信息或方向。因此,用户可能无法使用移动设备31_100的位置服务,并且位置服务(例如,GPS位置、Wi-Fi位置、蜂窝位置等)可受到调节以使用更少的功率。位置精度启发式过程可以向取样守护进程31_102注册,以便在移动设备的显示器关闭时被调用。当该启发式过程被调用时,其可以调节用于确定移动设备31_100位置的GPS处理器,Wi-Fi发射器、蜂窝发射器、基带处理器或终止过程的功率电平,以便节省移动设备 31_100的能源。
在一些具体实施中,启发式过程31_120可以被配置为响应于用户的行为来调节移动设备的环境光线传感器的设置。例如,当取样守护进程 31_102接收到指示以下情况的数据(例如,“ALS”属性事件)时,该用户自适应环境光线传感器(ALS)启发式过程可被取样守护进程31_102调用:环境光线传感器已检测到移动设备31_100周围的环境光线发生了改变、环境光线传感器系统已调节了显示器的亮度并且/或者用户已提供了输入来调节显示器的亮度。
当用户自适应ALS启发式过程被调用时,该过程可以向取样守护进程 31_102请求关于ALS显示器调节和用户发起的显示器调节的附加信息,以确定是否存在用户输入模式,其指示ALS调节显示器亮度以及用户以相反方向调节显示器亮度(例如,“系统.ALS”事件,后跟“系统.背光”事件)。例如,用户可乘坐公共汽车或火车上班。在行驶期间,公共汽车的车灯可能会打开和关闭。环境光线传感器可以检测环境光线的变化,并在车灯亮起时增加显示器亮度。由于车灯仅临时亮起,所以当车灯再次熄灭时,用户可降低显示器亮度。可以跟踪该用户输入模式(例如,通过“背光”属性事件)并通过启发式过程将其与一天中的时间、日历或闹钟事件条目或旅行模式相关联,以确定在什么情况或场境中用户会响应于ALS显示器调节而调节显示器亮度。一旦该用户自适应ALS启发式过程确定了输入的模式和场景,该启发式过程就可以将ALS的设置调节为或多或少是积极的。例如,可以调节ALS以在一天当中确定的时间、日历或闹钟条目或旅行模式期间或多或少频繁地检查环境光线的水平,并相应地调节显示器亮度。
上述启发式过程是启发式过程及其在本部分所述系统中的实现方式的几个示例。随着时间的推移,所开发的其他启发式过程可以被实现并添加到系统中。例如,可将另外的启发式过程配置或编程为,响应于检测到与温度测量值、用户输入、时钟事件(例如,闹钟),日历事件和/或在移动设备上发生及检测到的其他事件有关的事件或事件模式,来调节CPU、 GPU、基带处理器或移动设备的其他部件。
示例性启发式注册和调用过程
图31_2示出了用于调用启发式过程的示例性过程31_200。在步骤 31_202处,可将取样守护进程31_102初始化。例如,可以在启动移动设备 31_100期间将取样守护进程31_102初始化。
在步骤31_204处,取样守护进程31_102可以在取样守护进程31_102 的初始化期间调用配置在移动设备31_100上的启发式过程。例如,取样守护进程31_102可以使得每个启发式过程31_120在移动设备31_100上执行,并运行其初始化子例程。
在步骤31_206处,取样守护进程31_102可以接收来自每个启发过程 31_120的事件注册消息。例如,在启发式过程31_120的初始化子例程期间,启发式过程31_120可以向取样守护进程31_102发送指示哪些属性事件应触发启发式过程31_120的调用的信息。取样守护进程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_120来调节移动设备31_100设置的过程31_300。在步骤31_302处,启发式过程31_120被初始化。例如,启发式过程31_120可以由取样守护进程31_102调用,使得启发式过程 31_120可以运行其初始化子例程。例如,可以对该调用进行参数化,以指示启发式过程31_120应在该调用期间运行其初始化子例程。
在步骤31_304处,启发式过程31_120可以针对系统事件向取样守护进程31_102注册。例如,在初始化期间,启发式过程31_120可以向取样守护进程31_102发送消息,该消息包括用于调用启发式过程31_120的事件、阈值、属性、属性值或其他标准的标识。当事件发生和/或满足标准时,取样守护进程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_120确定移动设备31_100过热,则启发式过程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用于预测将来事件的发生。例如,可以分析“包名”属性事件以预测用户何时调用应用程序(例如,任何应用程序或特定应用程序)。可以分析指定有特定电子邮件文件夹(例如,“邮箱”属性值设定为“工作”文件夹)的“邮件应用.邮箱”事件,以预测用户何时将使用“邮件应用”应用程序的特定电子邮件文件夹。
事件历史窗口规格
在一些具体实施中,可以基于事件历史窗口规格来生成事件预测。例如,可以由客户端生成窗口规格,以指定客户希望以之为基础来进行事件预测的感兴趣的时间段或感兴趣的周期性时间段。窗口规格可以包括四个部件:开始时间、结束时间、复现宽度和复现频率。开始时间可以指示历史中窗口应开始时的日期和/或时间。结束时间可以指示历史中窗口应结束时的日期和/或时间。复现宽度可以指示客户端感兴趣的一段时间(例如,自开始时间起的四个小时)。复现频率可以指示自开始时间起应重复该段时间的频率(例如,每8小时、每两天、每周、每两周等)。
在一些具体实施中,在生成事件预报时,仅分析在指定时间段内(例如,感兴趣的时间段)发生的事件。例如,如果当前日期是2014年5月13 日,则窗口规格可以指定开始日期为2014年5月11日中午12:00、结束日期为5月12日中午12点、复现宽度为1小时、复现频率为4小时。该窗口规格将使得取样守护进程31_102分析自2014年5月11日中午12:00起至2014年5月12日中午12:00终的每4小时出现的每个1小时时段(例如,感兴趣的时间段)的事件数据(例如,时段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 中的事件历史数据中的模式。如果客户端请求对“包名”事件进行预报但未提供窗口规格,则取样守护进程31_102可以例如识别“包名”属性/事件的模式,该模式指示出应用程序通常在上午8:00-上午9:00、上午11:30-下午1:30以及晚上7:00-晚上11:00由用户调用。取样守护进程31_102可以自动生成包括这些时间段并排除一天中的其他时间段的窗口规格,以使得所请求的预报将集中在与所请求属性相关的时间段上。类似地,取样守护进程31_102可以针对特定(例如,指定的)属性值自动生成事件历史窗口规格。例如,如果客户端请求针对具有属性值“邮件应用”的“包名”事件进行预报,则取样守护进程31_102可以分析事件历史数据,以识别与“邮件应用”值相关的发生模式。如果“邮件应用”“包名”属性值于每天上午10:00、中午12:00和下午5:00被记录在事件历史数据中,则取样守护进程31_102可以生成指定在一天中这些时间前后的感兴趣时间段的窗口规格。
时间预报
在一些具体实施中,可以针对某一属性或属性值生成时间预报。时间预报可以指示例如在一天中的什么时间可能发生与该属性或属性值相关联的事件。例如,取样守护进程31_102的客户端可以针对“包名”属性(例如,应用程序启动)而请求进行最近一周(例如,最近7天)的时间预报。为了生成该预报,可将一天24小时划分为96个15分钟的时隙。对于最近七天中每一天的特定时隙(例如,下午1:00-下午1:15),取样守护进程31_102可以确定是否发生了“包名”事件,并为该时隙生成得分。如果在所述7天之中的2天中的该特定时隙内发生过“包名”事件,则在该特定时隙(例如,下午1:00-下午1:15)期间发生“包名”事件的概率(例如,得分)是0.29(例如,2除以7)。如果在所述7天之中的4天中的一个不同时隙内(例如,下午12:15-下午12:30)发生过“包名”事件,则在该时隙期间发生“包名”事件的概率(例如,得分)是0.57(例如,4除以7)。
类似地,客户端可以针对特定属性值请求进行时间预报。例如,客户端可以请求针对“包名”属性值为“邮件应用”的“包名”事件进行时间预报,而不是针对“包名”属性(例如“包名”事件)进行时间预报。因此,客户端可以接收到在一天之中用户将可能调用“邮件应用”应用程序的时间(例如,15分钟的时隙)的指示。
在一些具体实施中,可以基于事件历史窗口规格来生成时间预报。例如,如果客户端提供了指定感兴趣的4小时时间段的窗口规格,则时间预报将仅生成在感兴趣的该4小时时间段内的15分钟时隙的概率得分。例如,如果感兴趣的时间段对应于最近3天中每天的中午12:00-下午4:00,则在感兴趣的4小时时间段期间将产生16个时隙,并且将针对这16个15分钟的时隙生成得分。不会针对所指定的感兴趣的4小时时间段之外的时隙生成得分。
对等预报
在一些具体实施中,取样守护进程31_102可以针对属性生成对等预报。例如,对等预报可以指示某一属性的值在感兴趣时间段期间相对于同一属性的所有值(例如,发生率)会出现的相对概率。例如,取样守护进程31_102的客户端可以请求对“包名”属性进行由与该请求一同提交的窗口规格所指定的感兴趣时间段(例如,上午11:00下午1:00)的对等预报。如果在感兴趣时间段期间出现了具有属性值“邮件应用”、“联系人”、“日历”、“web浏览器”、“邮件应用”、“web浏览器”、“邮件应用”的“包名”事件,则出现“邮件应用”的相对概率(即,得分)为0.43(例如3/7),出现“web浏览器”的相对概率为0.29(例如 2/7),出现“联系人”或“日历”的相对概率是0.14(例如1/7)。
在一些具体实施中,取样守护进程31_102的客户端可以请求针对某一属性进行对等预报。例如,如果客户端在未指定属性值的情况下请求对该属性进行对等预报,则取样守护进程31_102将生成对等预报,并返回感兴趣时间段内该属性的所有值的各种概率得分。使用上面的示例性对等预报,取样守护进程31_102将向请求客户端返回属性值和得分的列表,例如:“邮件应用”:0.43;“web浏览器”:0.29;“联系人”:0.14;“日历”:0.14。
在一些具体实施中,取样守护进程31_102的客户端可以请求针对某一属性值进行对等预报。例如,客户端可以针对具有值“邮件应用”的“包名”属性请求对等预报。如上所述,取样守护进程31_102可以根据客户端所提供的窗口规格针对“包名”属性生成对等预报。例如,取样守护进程 31_102可以计算得到出现“邮件应用”的相对概率(即,得分)为0.43 (例如3/7),出现“web浏览器”的相对概率为0.29(例如2/7),出现“接触”或“日历”的相对概率为0.14(例如1/7)。取样守护进程31_102 可以向客户端返回所请求的“邮件应用”值的得分(例如,0.43)。如果在窗口规格所指定的感兴趣时间段内所请求的值未受到表示,则将向客户端返回零值。
全景预报
在一些具体实施中,可以生成全景预报以预测属性事件的发生。例如,上述临时性和对等预报使用针对单个属性或属性值的事件发生相对频率,来预测该属性未来的出现。该“频率”预报类型(例如,出现频率) 仅使用与预报请求中所指定的属性或属性值相关联的数据。相反,“全景”预报可以使用针对预报请求中所指定的属性或属性值而接收到的事件数据中的其他数据(例如,位置数据、信标数据、网络质量等)。在一些具体实施中,全景预报可以使用与其他属性或属性值相关联的事件的数据。例如,当客户端请求对指定属性或属性值进行时间预报对等预报,并且指定了预报类型(即,预报风味)为全景时,取样守护进程31_102将分析用于该指定属性或属性值的事件数据以及用于其他属性和属性值和事件数据,以识别指定事件与取样守护进程31_102所接收的其他事件之间的相关性。例如,具有值“邮件应用”的属性“包名”的频率预报可能为上午 9:00的15分钟时隙分配0.4分。然而,全景预报可能会确定“邮件应用”属性值与用户工作地点之间存在很强的相关性。例如,全景预报可能会确定如果用户处在与工作相关联的位置,则在上午9:00的15分钟时隙内90%的时间里该邮件应用会受到调用。因此,取样守护进程31_102可以针对上午9:00的15分钟时隙为“邮件应用”预报得分分配更高的得分(例如 0.9)。
类似地,取样守护进程31_102可能在“邮件应用”“包名”属性值以及与“运动状态”属性值“静止”相关联的事件的发生之间发现较强相关性。例如,取样守护进程31_102可以确定邮件应用的使用和移动设备 31_100处于静止之间的相关性为95%。取样守护进程31_102可以确定邮件应用的使用和移动设备31_100处于运动中之间的相关性为5%。因此,取样守护进程31_102可以基于移动设备是移动的还是静止的,来调节针对特定时隙的“邮件应用”属性值的预报得分(例如,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可以针对属性或属性值生成“计数”统计信息。例如,“计数”统计信息可以对与在指定历史窗口中发生的指定属性或属性值相关联的事件数量进行计数。
在一些具体实施中,取样守护进程31_102可以基于属性值生成统计信息。例如,客户端可以请求某一属性在指定历史窗口中的第一个值和/或最后一个值,并且取样守护进程31_102可以返回所述值。客户端可以请求与指定历史窗口内的指定属性相关联的所有值的最小值、最大值、平均值、模式和标准偏差,并且取样守护进程31_102可以返回所述值。取样守护进程31_102可以生成或确定哪些值与所请求的百分位数相关联(例如,第10、第25、第50、第75、第90等)
在一些具体实施中,取样守护进程31_102可以生成持续时间统计数据。例如,取样守护进程31_102可以通过将属性的开始事件与属性的停止事件进行比较,来确定与属性值相关联的持续时间。发生开始事件和发生停止事件之间的时间差将是事件的持续时间。客户端可以请求与指定历史窗口内的指定属性或属性值相关联的所有持续时间的最小值、最大值、平均值、模式和标准偏差,并且取样守护进程31_102可以返回所述值。取样守护进程31_102可以生成或确定哪些持续时间值与所请求的百分位数相关联(例如,第10、第25、第50、第75、第90等)
在一些具体实施中,取样守护进程31_102可以生成事件间隔统计数据。例如,取样守护进程31_102可以通过将属性事件的第一次出现与属性事件的后续出现进行比较,来确定与某一属性值相关联的事件的到达或报告相关联的时间间隔。首次事件发生和后续事件发生之间的时间差将是两次事件发生之间的时间间隔。客户端可以请求与指定历史窗口内的指定属性或属性值相关联的所有时间间隔值的最小值、最大值、平均值、模式和标准偏差,并且取样守护进程31_102可以返回所述值。取样守护进程 31_102可以生成或确定哪些间隔值与所请求的百分位数相关联(例如,第 10、第25、第50、第75、第90等)
使应用程序保持最新—获取更新
图31_4示出了用于执行后台获取应用程序更新的示例性系统 31_400。在一些具体实施中,移动设备31_100可被配置为预测地将应用程序作为移动设备31_100的后台进程而启动,使得该应用程序可以在预期用户调用该应用程序的情况下,下载内容并更新其界面。例如,可以使用由取样守护进程31_102维护的用户应用程序启动历史数据(例如,“系统.包名”开始事件)来预报(预测)用户将在何时调用移动设备31_100的应用程序。这些预测的应用程序可以在用户调用之前由应用程序管理器31_106 启动,使得用户不需要等待用户调用的应用程序下载当前内容并更新应用程序的图形界面。
确定何时启动应用程序—时间预报
在一些具体实施中,应用程序管理器31_106可以请求来自取样守护进程31_102的应用程序调用预报。例如,取样守护进程31_102可以提供这样的界面:其允许应用程序管理器31_106请求移动设备31_100上的应用程序启动的时间预报(例如,“包名”开始事件)。取样守护进程31_102 可以接收指示用户何时调用移动设备31_100上的应用程序的事件(例如“包名”开始事件),如上所述。当应用程序管理器31_106请求对“包名”属性进行时间预报时,取样守护进程31_102可以分析存储在事件数据存储库31_104中的“包名”事件,以确定在一天当中的什么时候(例如,在哪个15分钟时隙中)用户通常会调用应用程序。例如,取样守护进程 31_102可以计算一天当中的特定时刻或时间段将包括用户使用上述时间预报机制来进行应用程序调用的概率。
在一些具体实施中,应用程序管理器31_106可以在应用程序管理器 31_106的初始化期间,请求来自取样守护进程31_102的对“包名”属性的时间预报。例如,可以在移动设备31_100的启动期间调用或启动应用程序管理器31_106。当应用程序管理器31_106正在初始化时,应用程序管理器 31_106可以针对接下来的24小时请求应用程序调用(例如“包名”开始事件)的时间预报。一旦最初24小时时期过去,应用程序管理器31_106就可以请求另外24小时的时间预报。这个24小时的预报周期可以持续到例如移动设备31_100关闭为止。
在一些具体实施中,取样守护进程31_102可以针对24小时时期而生成应用程序调用(例如,“包名”开始事件)时间预报。例如,取样守护进程31_102可以将这24小时的时期划分为96个15分钟的时隙。取样守护进程31_102可以基于由取样守护进程31_102收集并存储在事件数据存储库31_104中的应用程序启动历史数据(例如,“包名”起始事件数据),来确定哪些应用程序已经被调用,以及在此前几天的操作中该应用程序在何时被调用超过了某一次数(例如,1到7)。
在一些具体实施中,当取样守护进程31_102针对“包名”属性生成时间预报时,可以根据将在15分钟时隙中调用(例如,任何)应用程序的概率对每个15分钟的时隙进行排名,如上文在时间预报部分所述那样。
一旦计算了96个时隙中每个时隙的应用程序调用概率,取样守护进程 31_102就可以选择具有最大非零概率的某一数目(例如,多达64个)的时隙,并且向应用程序管理器31_106返回标识了这些时隙的信息。例如,取样守护进程31_102可以向应用程序管理器31_106发送对应于15分钟时隙的开始的时间列表(例如,中午12:00、下午1:45等),其中所述时隙与可能的用户调用的应用程序启动相对应(例如,得分大于零的时隙)。
在一些具体实施中,应用程序管理器31_106可以基于由取样守护进程 31_102提供的时隙来设定定时器。例如,应用程序管理器31_106可以创建或设定对应于由取样守护进程31_102所识别的时隙的一个或多个定时器 (例如,闹钟)。当每个定时器关闭(例如,在中午12:00)时,应用程序管理器31_106可以醒来(例如,如果睡眠、暂停等),并确定应针对当前 15分钟时隙启动哪些应用程序。因此,定时器可以针对在相应时隙内可能由用户调用的应用程序触发获取后台更新。
在一些具体实施中,其他事件可以触发应用程序的获取后台更新。例如,应用程序管理器31_106可以向取样守护进程31_102注册对于各种事件的兴趣。例如,应用程序管理器31_106可以注册与打开蜂窝无线电、基带处理器或建立网络连接(例如,蜂窝或Wi-Fi)有关的事件(例如,属性)的兴趣,使得当这些事件发生时应用程序管理器31_106可得到通知,并且可以触发后台应用程序启动,使得应用程序更新可以利用到活动的网络连接。解锁移动设备31_100、打开显示器和/或其他交互作用可以触发后台应用程序启动及获取更新,如下文进一步描述的那样。在一些具体实施中,如果在此前某一分钟数(例如,七分钟)内执行了任何后台更新,则应用程序管理器31_106将不会触发后台应用程序启动也不会获取更新。
确定启动何种应用程序—对等预报
在一些具体实施中,应用程序管理器31_106可以请求取样守护进程 31_102提供针对当前时间要启动的应用程序列表。例如,当用于15分钟时隙的定时器停下(例如,时间到)或检测到触发事件时,应用程序管理器可以从取样守护进程31_102针对“包名”属性请求对等预报,以使得取样守护进程31_102可以确定要针对当前时隙启动哪些应用程序。取样守护进程31_102然后可以生成包括应用程序标识符列表和对应得分的对等预报,其中该得分指示每个应用程序将在大约当前时间被用户调用的概率。
图31_5示出了用于确定移动设备31_100上的应用程序的用户调用概率的对等预报。例如,图31_500示出了对于近期历史窗口规格(例如,前 2小时)的对等预报。图31_530示出了对于每日历史窗口规格的对等预报 (例如,在过去7天的每一天中的4小时时段)。图31_560示出了对于每周历史窗口规格的对等预报(例如,4小时时段,每7天一次)。在一些具体实施中,取样守护进程31_102可以使用针对不同重叠窗口规格的对等预报来执行时间序列建模,以确定移动设备31_100上的应用程序的用户调用概率。如果应用程序没有出现在对等预报中,则可以为该应用程序分配零概率值。
在一些具体实施中,可以通过针对不同时间窗口生成对等预报来执行时间序列建模。例如,近期、每日和每周的对等预测可以根据近期、每日和每周的事件历史记录窗口规格来生成。然后可以将近期、每日和每周的对等预测结合起来,以确定当前时间要启动的应用程序,如下文进一步描述的那样。
在一些具体实施中,可以基于近期应用程序调用来生成用户调用概率。例如,可以通过针对“包名”属性执行对等预报,来生成用户调用概率,其中该对等预报具有指定此前两小时作为感兴趣时间段的窗口规格 (例如,最近两个小时内的用户发起的应用程序启动)。
如图31_500所示,应用程序启动历史数据(例如,“包名”事件数据)可以指示在此前两小时内启动的应用程序的数量(例如,四个)。例如,圆点和圆圈可以表示应用程序,空心圆圈可以表示单个特定应用(例如,电子邮件、社交网络应用程序等),虚线空心圆圈表示其他应用程序的调用。可以通过将特定应用程序在此前两小时内的调用次数(例如2)除以此前两小时内的应用程序调用总次数(例如,4),来计算与使用最近历史(例如,前2小时)的特定应用程序相关联的对等预测概率得分。在所示的情况下,与使用近期应用程序启动历史数据的特定应用程序相关联的概率是2/4或50%。
用户调用概率可以基于应用程序启动的每日历史来生成(例如,在过去七天的每一天中,在当前时间+-2小时处会启动哪些应用程序)。例如,可以通过针对“包名”属性执行对等预报,来生成用户调用概率,其中该对等预报具有指定一天中的当前时间+-2小时(例如,4小时复现宽度)作为感兴趣时间段的窗口规格(例如,最近两个小时内的用户发起的应用程序启动),并且复现频率为24小时(例如,每24小时重复一次复现)。
图31_530示出了应用程序启动(例如,“包名”开始事件)的每日历史,其可以用于确定应用程序的用户调用概率。例如,图31_530的每个框表示先前日子中的每一天(例如,第7天)中的时间窗口(例如,当前时间+-2小时)(例如,如对等预报的窗口规格中所指定的),可对该时间窗口进行分析,以确定特定应用程序(例如,空心圆圈)的用户调用概率(例如,对等预报得分)。与使用每日历史数据的特定应用程序相关联的概率可以通过将该特定应用程序在所有窗口中的调用次数(例如,6次)除以所有窗口中的应用程序调用的总次数(例如,22次)来计算。在所示的情况下,与使用每日启动历史数据的特定应用程序相关联的概率是6/22或 27%。
用户调用概率可以基于应用程序启动的每周历史来生成(例如,在七天前的当前时间+-2小时处会启动哪些应用程序)。例如,可以通过针对“包名”属性执行对等预报,来生成用户调用概率,其中该对等预报具有指定一天中的当前时间+-2小时(例如,4小时复现宽度)作为感兴趣时间段的窗口规格(例如,最近两个小时内的用户发起的应用程序启动),并且复现频率为7天(例如,每7天重复一次复现)。
图31_560示出了应用程序启动(例如,“包名”开始事件)的每周历史,其可以用于确定应用程序的用户调用概率。例如,如果当前日期和时间是星期三下午1点,则应用程序的用户调用概率(例如,对等预报得分)可以基于上一个星期三的下午1点时或下午1点前后(例如,+-2小时)的时间窗口期间的应用程序启动情况。在所示的情况下,与使用每周应用程序启动历史数据的特定应用程序相关联的概率(例如,空心圆圈) 是1/4或25%。
在一些具体实施中,可以将近期、每日和每周用户调用概率组合起来,为每个应用程序生成得分。例如,可以通过计算近期(r),每日(d)和每周(w)概率的加权平均值来将近期、每日和每周概率组合起来。每个概率可以具有相关联的权重,并且每个权重可以对应于由经验确定的每个概率的预定重要性。所有权重的总和可等于一。例如,基于近期启动的概率权重可以是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就可以向应用程序管理器31_106 推荐具有最高非零概率得分的可配置数量(例如,三个)的应用程序,用于启动以执行后台获取下载/更新。
在一些具体实施中,取样守护进程31_102可以从上述“启动哪些”分析中排除如下应用程序:不支持后台更新(例如,获取)应用程序更新的应用程序、用户已经关闭后台更新的应用程序、已决定退出后台更新的应用程序,和/或用户当前正在使用的或者处于移动设备31_100显示器前台的任何应用程序(由于前台应用程序很可能已经是最新的)。
在一些具体实施中,一旦应用程序管理器31_106从取样守护进程 31_102接收到推荐应用程序,应用程序管理器31_106就可以询问取样守护进程31_102是否可以启动每个推荐应用程序。取样守护进程31_102可以使用其本地准入控制机制(如下所述)来确定应用程序管理器是否可以启动特定应用程序。例如,应用程序管理器31_106可以向取样守护进程 31_102发送具有识别推荐应用程序之一的属性值的“包名”属性,并请求取样守护进程31_102对该属性值执行准入控制。
本地准入控制
在一些具体实施中,取样守护进程31_102可以对移动设备31_100上的属性事件执行准入控制。例如,可以对属性或属性值执行准入控制,以确定客户端应用程序是否可以执行与该属性相关联的活动、动作、功能、事件等。例如,取样守护进程31_102的客户端可以请求对具有值“邮件应用”的属性“包名”进行准入。响应于接收到准入请求,取样守护进程可以确定客户端是否可以执行与“邮件应用”属性值相关联的活动(例如,执行“邮件应用”应用程序)。
在一些具体实施中,可以基于来自表决器的预算和反馈来执行准入控制。例如,当取样守护进程31_102接收到准入控制请求时,该请求可以包括与允许该属性事件相关联的成本(例如,启动应用程序、“包名”开始事件)。取样守护进程31_102可以检查系统级数据预算、系统级能量预算和/或特定属性预算,以确定与属性相关联的预算是否具有足以覆盖属性事件的剩余积分。如果不存在与属性相关联的预算(例如,属性不是预算属性),则可以允许属性事件继续进行(例如,取样守护进程31_102将响应于准入控制请求返回“确定”值)。如果存在与属性相关联的预算,并且相关预算中没有足够的剩余积分来支付事件的成本,则不允许属性事件继续进行(例如,取样守护进程31_102将响应于准入控制请求返回“否”值)。
如果存在与该属性相关联的预算,并且在预算中存在足够的剩余积分来支付事件的成本,则将要求表决器对是否允许属性继续进行而作出表决。如果所有表决器均表决“是”,则将允许属性事件继续进行(例如,取样守护进程31_102将响应于准入控制请求返回“确定”值)。如果任何表决器表决“否”,则将不允许属性事件继续进行(例如,取样守护进程31_102将响应于准入控制请求返回“否”值)。关于预算和表决器的细节在下文段落中有所描述。
在一些具体实施中,如果在准入控制请求之前的一段时间(例如,7 天、一个月等),尚未在事件中向取样守护进程31_102报告属性或属性值,则取样守护进程31_102可以响应于准入控制请求而返回“从不”值。例如,取样守护进程31_102可以生成时间预报或对等预报,以确定何时允许或准许与属性或属性值相关联的事件。例如,不需要抢先取得预期不会发生的事件(例如,不需要针对不被用户调用的应用程序而预读取数据)。
准入控制—预算
在一些具体实施中,取样守护进程31_102可以基于与属性或属性值相关联的预算来执行准入控制。例如,取样守护进程31_102可以基于与属性或属性值相关联的预算,来确定是否允许(例如,准许)与属性或属性值相关联的活动(例如,事件)。在一些具体实施中,取样守护进程31_102 可以基于为移动设备31_100配置的系统级能量预算和/或系统级数据预算,来确定是否可以准许某一属性或属性值。取样守护进程31_102可以在计数数据存储库31_402中存储预算,包括用于跟踪当前时间段(例如,当前小时)的剩余数据和能量预算的计数器。当客户端请求针对属性或属性值执行准入控制时,客户端可以指定表示允许或准许发生与该属性或属性值相关联的事件的成本的数字。如果在与该属性相关联的预算中有足够的积分,则该属性事件将由下述表决器进行表决。如果在与该属性相关联的预算中没有足够的积分,则不允许属性事件继续进行。
系统级能源预算
在一些具体实施中,取样守护进程31_102可以基于能量预算来确定是否可以准许某一属性或属性值。例如,能量预算可以是移动设备电池容量 (以毫安小时计)的百分比(例如,5%)。
在一些具体实施中,能量预算可分配于24小时内的每小时间。例如,取样守护进程31_102可以利用收集并存储在事件数据存储库31_104中的电池利用率统计数据(例如,“系统.能量”事件)来确定反映24小时内每个小时的典型历史电池使用率的分配情况。例如,如上所述,可以基于历史上或统计上所确定的能量使用分配情况或应用程序使用预报,为每个小时指定某一百分比的能量预算。每个小时至少具有一个大于零的最小能量预算量(例如,0.1%、1%等)。例如,10%的能源预算可以在未使用数据的数小时内分配,而剩余的90%的能源预算可以根据历史能源或应用程序使用情况在活跃使用的数小时内分配。伴随着每小时的流逝,将用新的/当前小时的能源预算来补充当前能源预算。从上一小时剩余的任何能源预算都将被添加到当前小时的预算中。
在一些具体实施中,计数数据存储库31_402可以包括用于确定剩余能量预算多少可用的计数器。例如,计数数据存储库31_402可以包括采用当前小时的能量预算进行初始化的一个或多个计数器。当能量预算由属性事件使用时,能量预算可以递减相应的量。例如,当使用“包名”开始或停止事件来启动或终止应用程序时,应用程序管理器31_106可以通知取样守护进程31_102。取样守护进程31_102继而可以在应用程序启动时以及应用程序终止时通知电力监视器31_109。根据开始和停止时间,电力监视器31_109可以确定应用程序使用了多少能量。电力监视器31_109可以将应用程序所使用的电量(例如,通过提交“系统.能量”属性事件)发送给取样守护进程31_102,并且取样守护进程31_102可以将适当的计数器减少所使用的电量。
在一些具体实施中,在当前小时没有能量预算剩余时,取样守护进程 31_102可以拒绝该属性的准入请求。例如,当计数数据存储库31_402中的能量预算计数器递减到零时,无能量预算剩余,并且与绑定到能量预算的属性相关联的活动、事件等均无法得到准入。如果剩余用于当前小时的能量预算足以覆盖属性事件的成本,则取样守护进程31_102可以响应于准入控制请求而返回“是”值,并且允许属性事件继续进行。
在一些具体实施中,当移动设备31_100插入到外部电源时,取样守护进程31_102将不会基于能量预算来作出准入控制决定。例如,当移动设备 31_100插入到外部电源时,剩余能量预算为零将不会阻止属性事件的进行。
系统级数据预算
在一些具体实施中,取样守护进程31_102可以基于数据预算来确定是否可以准许某一属性。例如,取样守护进程31_102可以基于由取样守护进程31_102所收集并存储在事件数据存储库31_104中的统计数据(例如,“系统.网络字节”属性事件)来确定移动设备31_100所消耗的网络数据的平均量。网络数据预算可计算为由用户/移动设备31_100所消耗的平均每日网络数据百分比。另选地,网络数据预算可以是预定义的或可配置的值。
在一些具体实施中,网络数据预算可分配于24小时内的每小时间。例如,可以为每个小时分配某一最低预算(例如,0.2MB)。可以根据历史网络数据使用情况,将剩余量的网络数据预算分配在24小时内。例如,取样守护进程31_102可以基于历史统计数据(例如,“系统.网络字节”属性事件)来确定每天每小时消耗多少网络数据,并根据每小时消耗的数据量来分配百分比。伴随着每小时的流逝,将用新的/当前小时的数据预算来补充当前数据预算。从上一小时剩余的任何数据预算都可被添加到当前小时的数据预算中。
在一些具体实施中,计数数据存储库31_402可以保持用于网络数据预算的数据计数器。随着网络数据的消耗,数据计数器可以根据所消耗的网络数据量而递减。例如,可以基于由应用程序管理器31_106提供给取样守护进程31_102的应用程序开始和停止事件(例如,“包名”开始或停止事件)来确定所消耗的网络数据量。另选地,可以通过管理网络接口的过程 (例如,网络守护进程31_406、后台传输守护进程31_1302)来提供所消耗的网络数据量。例如,网络接口管理过程可以将“系统.网络字节”事件报告给可以与应用程序开始和停止事件(例如“包名”事件)相关联的取样守护进程31_102,以确定应用程序消耗了多少数据。
在一些具体实施中,取样守护进程31_102可以一直跟踪哪个网络接口类型(例如,蜂窝或Wi-Fi)被用于消耗网络数据,并且基于该网络接口类型来确定所消耗的网络数据量。可以根据分配给每个接口类型的权重或系数,来调节所消耗的网络数据量。例如,可为在蜂窝数据接口上消耗的网络数据分配系数一(1)。可为在Wi-Fi接口上消耗的网络数据分配系数十分之一(0.1)。所消耗的总网络数据可以通过将所消耗的蜂窝数据加上所消耗的Wi-Fi数据再除以十(例如,总数据=1*蜂窝数据+0.1*Wi-Fi)来计算。因此,通过Wi-Fi所消耗的数据给数据预算带来的影响将会比通过蜂窝数据连接所消耗的数据小得多。
在一些具体实施中,在当前小时没有数据预算剩余时,取样守护进程 31_102可以对准入控制请求作出“否”回复。例如,当计数数据存储库 31_402中的数据预算计数器递减到零时,无数据预算剩余,并且与绑定到数据预算的属性相关联的活动均将受到允许。如果在当前小时中的剩余数据预算足以覆盖属性事件的数据成本,则取样守护进程31_102可以对准入控制请求作出“是”回复。
属性预算
在一些具体实施中,属性可以与预算相关联。例如,预定义属性或自定义(动态定义)属性可以通过取样守护进程31_102的API而与预算相关联。取样守护进程31_102的客户端(例如,应用程序、功能、第三方应用程序等)可以向取样守护进程31_102发出将属性与客户端定义的预算相关联起来的请求。预算可以是例如一些积分。
一旦分配了预算,与预算属性相关联的所报告事件就可以指示与该事件相关联的成本,并且可以根据指定的成本来缩减预算。例如,可以在移动设备31_100上配置预定义的系统属性“系统.蓝牙LE扫描”,以指示移动设备31_100何时对来自其他蓝牙低能量设备的信号进行扫描。蓝牙LE 扫描可以例如作为后台任务而运行。蓝牙LE扫描需要打开蓝牙无线电,这继而又会消耗来自移动设备31_100电池的能量。为了防止蓝牙LE扫描消耗过多能量,可以为“蓝牙LE扫描”属性分配某一预算(例如,24积分)。每次生成“蓝牙LE扫描”事件并将其报告给取样守护进程31_102 时,该事件可被报告为具有某一成本(例如1)报告。可以从预算中扣除该成本,以便每次在事件中报告“蓝牙LE扫描”属性时,24的预算就递减 1。
在一些具体实施中,可以在一段时间内分配该属性预算。例如,“蓝牙LE扫描”属性预算可以均匀分配在24小时内,以使得“蓝牙LE扫描”属性每小时只能支出1个积分。在一些具体实施中,可以在某一时间段结束时补充属性预算。例如,如果“蓝牙LE扫描”属性预算的周期为 24小时,则可以每24小时补充一次“蓝牙LE扫描”属性预算。
在一些具体实施中,与属性相关联的预算可以是另一预算的子集(例如,子预算)。例如,可以将属性的预算指定为另一预算(诸如上述系统级数据或系统级能量预算)的一部分。例如,“邮件应用.邮箱”属性可以与这样的预算相关联:该预算是为系统分配的数据预算的5%。“蓝牙LE 扫描”属性可以与这样的预算相关联:该预算是为系统分配的能量预算的 3%。子预算(例如“邮箱”预算)可以与超级预算(例如,系统数据预算)绑定,使得减少子预算也会减少超预算。在一些具体实施中,如果超预算减少到零,则子预算也减少到零。例如,如果系统数据预算为零,则“邮箱”属性预算也将为零,即使在没有为“邮箱”属性报告会使“邮箱”属性预算减少的事件情况下也是如此。
在一些具体实施中,取样守护进程31_102客户端可以请求取样守护进程31_102返回属性的剩余预算量。例如,客户端可以向取样守护进程 31_102作出请求,以获取“蓝牙LE扫描”属性的剩余预算。如果已使用了24个预算的积分中的三个积分,则取样守护进程31_102可以将值21返回给发出请求的客户端。
在一些具体实施中,当相关联属性的预算中没有积分剩余时,客户端可以报告花费了指定数量的预算积分的事件。在预算中没有剩余积分的情况下,当取样守护进程31_102收到需要1个积分的事件(例如“蓝牙LE 扫描”事件)时,取样守护进程31_102可以将预算递减(例如,-1),并向客户端返回报告该事件的错误。该错误可以指示例如该属性没有预算剩余。
属性预算塑造
在一些具体实施中,可以基于历史使用信息来分配属性预算。例如,当针对预算属性报告事件时,可以随时间而跟踪使用属性预算的请求(例如,与成本相关联的事件)。如果例如为“蓝牙LE扫描”属性分配了24 的预算,则该预算最初可被平均分配于24小时内,如上所述。在随时间而针对与预算相关联的属性报告事件时,取样守护进程31_102可以分析所报告的事件,以确定在24小时期间该事件最有可能发生的时间。例如,取样守护进程31_102可以确定“蓝牙LE扫描”事件经常发生在上午8点、晚上12点和下午6点左右,但很少发生在凌晨2点左右。取样守护进程 31_102可以使用此事件频率信息来形成“蓝牙LE扫描”属性预算在24小时内的分配情况。例如,取样守护进程可以为对应于上午8点、晚上12点和下午6点的每个时隙分配两个预算积分,并为与凌晨2点相关的时隙分配零个预算积分。
准入控制—表决器
在一些具体实施中,取样守护进程31_102可以基于来自移动设备 31_100上运行的其他软件(例如,插件、实用程序、应用程序、启发式过程)的反馈来执行准入控制。例如,可将其他软件配置为与取样守护进程 31_102一起作为准入控制的表决器。例如,可以向取样守护进程31_102注册若干表决器(例如,应用程序、实用程序、守护进程、启发式过程等)以对准入控制决定进行表决。例如,取样守护进程31_102可以被配置为与如下表决器进行交互:监视移动设备31_100的热状况的表决器、监视移动设备31_100的CPU使用率的表决器,和/或监视移动设备31_100的电池功率电平的表决器。当取样守护进程31_102接收到准入控制请求时,可以要求每个表决器(例如,热、CPU和电池)对是否应允许与指定属性相关联的活动进行表决。当所有表决器均表决“是”时,该属性将被允许(例如,与该属性相关联的活动将被允许发生)。当单个表决器表决“否”时,该属性将不被允许(例如,与该属性相关联的活动将不被允许)。在一些具体实施中,表决器可被配置作为插件软件,其可以动态地(例如,在运行时)添加到取样守护进程31_102以向准入控制系统提供附加功能。在一些具体实施中,当确定是否准许或允许与某一属性或属性值相关联的事件时,表决器可以使用上述时间预报机制和对等预报机制。
网络守护进程
在一些具体实施中,网络守护进程31_406可以被配置作为准入控制表决器。网络守护进程31_406可被配置为使用取样守护进程31_102的表决 API,其允许网络守护进程31_406从取样守护进程31_102接收表决请求,并向取样守护进程31_102提供表决响应(例如,是,否)。例如,网络守护进程31_406可以从取样守护进程31_102接收包括属性和/或属性值的表决请求。当移动设备31_100例如连接到语音呼叫并且未连接到Wi-Fi网络连接时,网络守护进程31_406可以指示取样守护进程31_102不应准许或允许与属性或属性值相关联的事件。例如,为了防止后台更新进程(例如,获取进程)干扰或降低语音呼叫的质量,当用户连接到语音呼叫且未连接到Wi-Fi连接时,网络守护进程31_406将不允许与启动后台更新进程相关联的事件(例如,“包名”开始事件)。因此,当移动设备31_100连接到呼叫且未连接到Wi-Fi时,网络守护进程31_406可以响应于表决请求而返回“否”值。
在一些具体实施中,当移动设备31_100具有不良质量的蜂窝网络连接时,网络守护进程31_406可以指示取样守护进程31_102不应允许或准许属性事件。当传输速率和/或吞吐量低于预定阈值时,可以确定蜂窝连接质量差。例如,如果移动设备31_100具有质量较差的蜂窝网络连接且未连接到Wi-Fi,则网络守护进程31_406可以通过在取样守护进程31_102作出表决请求时返回“否”值,来防止属性事件的准入或执行,其中该属性事件将通过使用较差质量的网络连接(例如,启动将尝试通过不良蜂窝连接来下载或上载数据的应用程序)而浪费电池能量和蜂窝数据。
在一些具体实施中,当网络守护进程31_406不具有指示不良网络状况或将影响网络数据使用率或系统性能的某些其他状况的信息时,网络守护进程31_406可以对所请求的属性的准入表决“是”。
热守护进程
在一些具体实施中,热守护进程31_110应用程序可被配置作为准入控制表决器。热守护进程31_110可被配置为使用取样守护进程31_102的表决API,其允许热守护进程31_110从取样守护进程31_102接收表决请求,并向取样守护进程31_102提供表决响应(例如,是,否)。例如,热守护进程可以从取样守护进程31_102接收包括属性和/或属性值的表决请求。当热守护进程31_110已检测到热事件时,热守护进程31_110可以指示取样守护进程31_102不应准许或允许与属性或属性值相关联的事件。例如,热守护进程31_110可以通过生成包括“热水平”属性和对应的温度值的事件,来监视移动设备31_100的温度并将温度值报告给取样守护进程 31_102。
在一些具体实施中,当热守护进程31_110确定移动设备31_100的温度高于阈值温度值时,热守护进程31_110可以进一步通过在取样守护进程 31_102向热守护进程31_110发送对属性(例如“包名”)事件进行表决的请求时返回“否”值,来防止热守护进程31_102允许可能增大移动设备 31_100的工作温度的属性事件。
在一些具体实施中,在当前存在异常热状况时,取样守护进程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的“是”表决。
如果热状况值指示工作温度异常(例如,值为假),则取样守护进程 31_102将把该属性和/或属性值发送给热守护进程31_110,以允许热守护进程31_110对特定属性或属性值进行表决。
在一些具体实施中,热守护进程31_110可以基于移动设备31_100的当前热状况和属性的对等预报,来确定如何对属性和/或属性值进行表决 (例如,是,否)。例如,热守护进程31_110可以请求来自取样守护进程 31_102的针对该属性进行的对等预报。热守护进程31_110可以通过生成包括感兴趣时间段中的当前时间(例如,+-1小时、2小时等)的窗口规格,来请求针对当前时间进行对等预报。热守护进程31_110将从取样守护进程 31_102接收到对等预报,其指示在感兴趣时间段中出现的属性的每个值的可能性得分。例如,如果热守护进程31_110请求针对“包名”属性进行对等预报,则热守护进程31_110可以接收“包名”值(例如,应用程序标识符)列表和相关联的预报(例如,概率、可能性)得分。例如,如果在感兴趣时间段期间出现了具有属性值“邮件应用”、“联系人”、“日历”、“web浏览器”、“邮件应用”、“web浏览器”、“邮件应用”的“包名”事件,则出现“邮件应用”的相对概率(即,得分)为0.43 (例如3/7),出现“web浏览器”的相对概率为0.29(例如2/7),出现“联系人”或“日历”的相对概率是0.14(例如1/7)。在一些具体实施中,热守护进程31_110可以根据得分来对属性值列表进行排序(例如,前部为最高得分,后部为最低得分)。例如,上述“包名”属性值的排序列表自上而下为:“邮件应用”、“web浏览器”,“联系人”和“日历”。
在一些具体实施中,热守护进程31_110可以基于属性值在排序列表中的位置,来确定何时对属性值表决“是”。例如,如果由热守护进程 31_110所考虑的属性值不在从取样守护进程31_102接收到的对等预报列表中,则属性值将从热守护进程31_110接收到“否”表决。如果属性值在对等预报列表中并且低于列表中的阈值水平(例如,索引)(例如,基于得分而言处于属性的最低25%),则热守护进程31_110将对该属性表决“否”。如果属性值在对等预报列表中并且高于列表中的阈值水平(例如,基于得分而言处于属性的最高75%),则热守护进程31_110将对该属性表决“是”。一旦表决确定,热守护进程31_110将向取样守护进程 31_102返回“是”(例如,真)或“否”(例如,假)表决。
在一些具体实施中,热守护进程31_110可以被配置为具有最大阈值水平,以避免在所有属性值上都表决“否”(例如,使得某些属性事件将发生)。最大阈值水平可以是排序对等预报列表中的属性值的50%(例如,前50%得到“是”表决,后50%得到“否”表决)。因此,热守护进程 31_110可以调节阈值水平,该阈值水平把将接收到“是”表决的属性值与将接收到“否”表决的属性值从具有最低得分的0%到50%属性值处分开。
在一些具体实施中,用于确定“是”或“否”表决的阈值水平可以与移动设备31_100的热水平(例如,温度)成比例。例如,热守护进程 31_110可被配置为具有最大工作热水平(Lh)和正常工作水平(Ln)。热守护进程31_110可以确定当前的工作热水平(Lc),并确定移动设备31_100当前工作正处于的热范围(例如,Lh-Ln)的百分位数(例如,Lc-Ln/Lh-Ln=%)。热守护进程31_110可以使用所计算的百分位数来确定0-50%属性值的哪一部分应该收到“否”表决。例如,如果当前操作热水平被计算为热范围的65%,则由对等预报得分所得的后32.5%的属性值将从热守护进程31_110获得“否”表决。因此,最不重要的属性值将获得“否”表决,而最重要的属性值将获得“是”表决。返回参考上文的“包名”示例,如果“包名”属性值的排序列表自上而下为:“邮件应用”、“web浏览器”、“联系人”和“日历”,则“日历”会接收到“否”表决,而“邮件应用”、“web浏览器”和“联系人”会接收到“是”表决(例如,“邮件应用”、“web浏览器”和“联系人”是最常用的应用程序)。例如,如果应用程序管理器31_106已经针对“包名”属性作出了准入控制请求来确定要启动的应用程序,则“邮件应用”、“web浏览器”和“联系人”应用程序将会被启动,而“日历”应用程序将不会被启动。
又如,可以要求热守护进程31_110对“邮件应用.邮箱”属性进行表决。可以针对“邮件应用.邮箱”属性值生成对等预报,其产生邮件文件夹的排序列表,该列表指示处最频繁访问的文件夹至最不频繁访问的文件夹 (例如,“收件箱”、“个人”、“工作”、“家庭”、“垃圾邮件”和“垃圾箱”)。如果后32.5%的属性值要接收到“否”表决,那么“垃圾邮件”和“垃圾箱”将会收到“否”表决。例如,如果“邮箱”应用程序针对“邮件应用.邮箱”属性作出了准入控制请求来确定哪些文件夹要获取电子邮件,那么“邮件应用”应用程序将为“收件箱”、“个人”、“工作”和“家庭”文件夹获取电子邮件,而不为“垃圾邮件”和“垃圾箱”文件夹获取电子邮件。在一些具体实施中,当由取样守护进程31_102所保持的热状况值被重置以指示正常工作温度(例如,真)时,已从热守护进程31_110接收到“否”表决的属性或属性值可以得到通知。例如,取样守护进程31_102可以存储识别已收到“否”表决的客户端、属性和属性值的数据。在从热守护进程31_110接收到更新的热状况值(例如,真)时,取样守护进程31_102可以向接收到“否”表决的客户端发送通知,以提示该客户端尝试针对先前拒绝的属性或属性值作出另一准入控制请求。在一些具体实施中,客户端可以在未从取样守护进程31_102获得提示的情况下重新发送准入控制请求。例如,客户端可以具有内部定时器,其使得客户端在经过一段时间之后重试准入控制请求。
活动监视器
在一些具体实施中,活动监视应用程序408可被配置作为准入控制表决器。活动监视器31_408可被配置为使用取样守护进程31_102的表决 API,其允许活动监视器31_408从取样守护进程31_102接收表决请求,并向取样守护进程31_102提供表决响应(例如,是,否)。例如,活动监视器31_408可以从取样守护进程31_102接收包括属性和/或属性值的表决请求。当移动设备31_100使用了超过阈值量(例如,90%)的存储器资源或 CPU资源时,活动监视器31_408可以指示取样守护进程31_102不应准许或允许与属性或属性值相关联的事件。例如,如果移动设备31_100已经在运行许多正在使用移动设备31_100的大部分存储器资源或CPU资源的应用程序或进程,则在后台启动额外的应用程序将可能会通过用尽剩余的内存资源而降低移动设备31_100的性能。因此,当活动监视器31_408确定存储器或CPU使用率超过阈值(例如,75%)时,活动监视器31_408可以通过在取样守护进程31_102发送对“包名”属性事件进行表决的请求时返回“否”值,来防止应用程序管理器31_106启动额外的应用程序。如果活动监视器31_408确定移动设备31_100的存储器和/或CPU资源低于阈值使用量,则活动监视器31_408可以响应于来自取样守护进程31_102的表决请求而返回“是”值。
启动后台获取应用程序
在一些具体实施中,当应用程序管理器31_106向取样守护进程 31_102作出准入控制请求并且接收到“是”回复时,应用程序管理器 31_106可以在移动设备31_100的操作环境后台中调用或启动所识别的应用程序(例如,如由“包名”属性值所识别的应用程序31_108)。例如,应用程序31_108可以在后台启动,使得应用程序31_108的启动对于用户来说并不显眼。应用程序31_108然后可以通过网络(例如,互联网)与内容服务器31_404进行通信,从而下载更新的内容以供向用户显示。因此,当用户随后选择应用程序31_108(例如,将应用程序提至前台)时,设备将向用户呈现当前且最新的内容,而不必等待应用程序31_108从服务器 31_404下载内容并刷新应用程序的用户界面。
在一些具体实施中,应用程序管理器31_106可被配置为,当移动设备 31_100正在充电并连接到Wi-Fi时,启动支持后台获取的应用程序。例如,取样守护进程31_102可以确定移动设备31_100何时连接到外部电源 (例如,基于“缆线插入”属性事件)并通过Wi-Fi连接到网络(例如,互联网)(例如,基于所接收的事件),并向应用程序管理器31_106发送信号,以使应用程序管理器31_106启动在先前的某一时间量(例如,七天)内所使用的支持获取的应用程序。
示例性后台获取过程
图31_6是用于预测地启动应用程序以执行后台更新的示例性过程 31_600的流程图。例如,过程31_600可以由应用程序管理器31_106和取样守护进程31_102执行,以确定何时启动被配置为从网络资源(诸如图 31_4的内容服务器31_404)获取数据更新的后台应用程序。可以参考上文的图31_4和图31_5找到与过程31_600的步骤相关的附加描述。
在步骤31_602处,应用程序管理器31_106可以从取样守护进程 31_102接收应用程序调用预报。例如,应用程序管理器31_106可以在移动设备31_100的启动期间启动。在其初始化期间,应用程序管理器31_106 可以请求对于在接下来的24小时时间段中可能由移动设备31_100的用户所调用的应用程序进行预报。例如,应用程序管理器31_106可以请求针对属性“包名”进行时间预报。此预报可以指示何时启动应用程序。例如,可将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识别要启动的应用程序。例如,当定时器到期或闹钟停下时,应用程序管理器(如果睡眠或暂停)可唤醒,并且针对当前15分钟的时间段从取样守护进程31_102请求要启动的应用程序列表。取样守护进程31_102 可以返回应该在移动设备31_100后台中启动的应用程序的列表。例如,应用程序管理器31_106可以请求针对属性“包名”进行对等预报。对等预报可以指示在当前15分钟时隙中最有可能报告“包名”属性的哪些值(例如,用户最有可能调用哪些应用程序)。
在步骤31_607处,应用程序管理器31_106可以向取样守护进程 31_102发送询问是否可以启动应用程序的请求。例如,对于响应于“包名”对等预报请求而由取样守护进程31_102识别的每个应用程序,应用程序管理器31_106可以询问取样守护进程31_102是否启动该应用程序。例如,应用程序管理器31_106可以请求取样守护进程31_102针对“包名”属性的特定值来执行准入控制,其中该特定值对应于应用程序管理器 31_106尝试启动的应用程序。如果可以启动该应用程序,则守护进程 31_102可返回“是”,如果不可以启动该应用程序,则返回“否”,如果从不可以启动该应用程序,则返回“从不”。
在步骤31_610处,应用程序管理器31_106可以启动应用程序。例如,如果取样守护进程31_102向准入控制请求返回“确定”(例如,确定、是、真等)应答,则应用程序管理器31_106将把该应用程序作为移动设备31_100的后台进程而启动。如果取样守护进程31_102向准入控制请求返回“否”或“从不”应答,则应用程序管理器31_106将不会启动该应用程序。
在步骤31_612处,应用程序管理器31_106可以向取样守护进程 31_102发送应用程序启动通知。例如,应用程序管理器31_106可以向取样守护进程31_102发送“包名”开始事件,以记录所启动的应用程序的执行。
在步骤31_614处,应用程序管理器31_106可以检测到所启动的应用程序已经终止。例如,应用程序管理器31_106可以确定所启动的应用何时不再在移动设备31_100上运行。
在步骤31_616处,应用程序管理器31_106可以向取样守护进程31_102发送应用程序终止通知。例如,应用程序管理器31_106可以向取样守护进程31_102发送“包名”结束事件,以记录应用程序的终止。
图31_7是用于确定何时在移动设备31_100上启动应用程序的示例性过程31_700的流程图。例如,过程31_700可用于确定何时启动应用程序、应该启动何种应用程序,以及是否可以基于应用程序使用统计信息 (例如“包名”属性事件数据)、数据和能源预算,以及移动设备操作状况和环境状况来启动应用程序,如上文参考图31_4详细描述的那样。
在步骤31_702处,取样守护进程31_102可以从应用程序管理器 31_106接收应用程序启动预报请求。例如,应用程序管理器31_106可以请求从取样守护进程31_102针对“包名”属性对下一个24小时进行时间预报。一旦24小时的时间段过去,应用程序管理器31_106就可以请求针对“包名”属性对随后的24小时时间段进行时间预报。例如,应用程序管理器31_106可以请求针对“包名”属性每24小时进行一次时间预报。
在步骤31_704处,取样守护进程31_102可以确定应用程序启动预报。例如,应用程序启动预报(例如,针对“包名”属性的时间预报)可用于预测在24小时期间何时可能会发生由用户发起的应用程序启动。24小时的时间段可以分为多个15分钟的时段。对于每个15分钟时段(例如,在24小时内有96个15分钟的时段),取样守护进程31_102可以使用历史用户调用统计数据(例如,“包名”开始事件)来确定由用户发起的应用程序启动将出现在该15分钟时段中的概率,如上文参考图31_4所述。
在步骤31_706处,取样守护进程31_102可以将应用程序启动预报传送给应用程序管理器31_106。例如,取样守护进程31_102可以选择最多 64个具有由用户发起的应用程序启动的最高非零概率的15分钟时段。可以通过该15分钟时段的开始时间(例如,下午12:45)来识别所选择的15分钟时段中的每一个。取样守护进程31_102可以将应用程序管理器31_106 的15分钟时段标识符列表作为应用程序启动预报(例如,针对“包名”属性的时间预报)而发送。
在步骤31_708处,取样守护进程31_102可以接收对于当前时间启动何种应用程序的请求。例如,应用程序管理器31_106可以向取样守护进程 31_102发送一个请求,用于使取样守护进程31_102确定在当前时间或当前时间前后应该启动哪些应用程序。例如,该请求可以是针对“包名”属性的对当前15分钟时隙进行对等预报的请求。
在步骤31_710处,取样守护进程31_102可以基于历史事件数据对当前时间的应用程序进行打分。取样守护进程31_102可以基于由取样守护进程31_102收集的由用户发起的应用程序历史启动数据(例如“包名”属性开始事件数据)来确定用户在不久的将来可能启动的应用程序。取样守护进程31_102可以利用最近的应用程序启动数据、日常应用程序启动数据和/ 或每周应用程序启动数据,基于用户将在当前时间或当前时间前后调用应用程序的历史概率来对应用程序进行打分,如上文参考图31_4和图31_5 所述。
在步骤31_712处,取样守护进程31_102可以将应用程序和应用程序得分传送给应用程序管理器31_106。例如,取样守护进程31_102可以选择具有最高得分(例如,由用户调用的概率最高)的某一数量(例如,三个)的应用程序(例如,“包名”属性值)来传送至应用程序管理器 31_106。取样守护进程31_102可以排除在前一段时间内(例如,先前5分钟)内已经启动的应用程序。取样守护进程31_102可以向应用程序管理器 31_106发送识别最高得分应用程序及其相应得分的信息,如上文参考图 31_4所述。
在步骤31_714处,取样守护进程31_102可以接收来自应用程序管理器31_106的请求,以确定是否可以启动某一应用程序。例如,取样守护进程31_102可以接收识别应用程序(例如,“包名”值)的准入控制请求。
在步骤31_716处,取样守护进程31_102可以确定当前的移动设备状况和预算允许应用程序启动。例如,响应于准入控制请求,取样守护进程 31_102可以检查系统级数据和能量预算、属性预算和表决器反馈,以确定应将该应用程序作为移动设备31_100上的后台任务而启动,如上文参考图 31_4所详细描述的那样。
在步骤31_718处,取样守护进程31_102可以向应用程序管理器 31_106传输回复,指示可以启动所识别的应用程序。例如,如果条件适用于后台应用程序启动,则取样守护进程31_102可以响应于准入控制请求向应用程序管理器31_106返回“是”值(例如,确定、是、真等),以使得应用程序管理器31_106可以启动所识别的应用程序。
短期趋势
在一些具体实施中,取样守护进程31_102可被配置为检测属性何时趋于出现。例如,客户端应用程序可以向取样守护进程31_102注册对于特定属性的兴趣。当取样守护进程31_102检测到特定属性趋于出现时,取样守护进程31_102可以通知客户特定属性正趋于出现。
例如,应用程序管理器31_106可以注册对于“包名”属性(或“包名”属性的特定值)的兴趣。当取样守护进程31_102确定“包名”属性 (或其值)趋于出现时,取样守护进程31_102可以向应用程序管理器 31_106通知该趋势,使得应用程序管理器31_106可以在移动设备31_100 的后台中预测性地启动该趋于出现的应用程序。例如,如果应用程序正被移动设备31_100的用户重复地调用,则该应用程序正趋于出现。在某些情况下,趋于出现的应用程序是可能未包括在上述“包名”属性对等预报中的新应用程序,或者是在趋于出现之前很少使用的应用程序。因此,该趋于出现的应用程序可能未使用上述应用程序启动预报方法来保持最新。
属性趋势检测的目的是检测被重复报告给取样守护进程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被设定为“无效”(I)。当在时间t处报告属性事件时,该趋势表受到扫描,以获得可用条目(例如,状态I中的条目)。在可能的无效条目中,可以使用若干种方法来选择要使用的条目。例如,可以选择一个随机无效条目。另选地,可以选择无效条目,使得趋势表中的所有空条目保持连续的顺序。如果不存在无效条目,则可以选择瞬时(T)状态中最老的条目(或随机条目),来跟踪新启动的应用程序。如果不存在I或T状态条目,则可以选择最老的新(N)状态条目,来跟踪新报告的属性事件。
在步骤31_804中处,一旦选择了趋势表条目,用于跟踪新报告属性事件的所选条目的STATE字段就可被设定为新(N),ATTID可被设定为新报告属性的属性值,LLT字段可被设定为当前时间t(例如,挂钟时间),并且ILC和C字段被设定为预定义的最小值ILC_MIN(例如,1分钟)和 C_MIN(例如,零)。
在步骤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,“包名”属性值),使得该应用程序可以在用户启动该应用程序之前接收更新的内容,如上所述。例如,应用程序管理器31_106可以基于节奏值来启动定时器,该节奏值将在预期到用户调用应用程序的情况下,唤醒应用程序管理器31_106来启动应用程序。
在一些具体实施中,取样守护进程31_102可以基于所检测的属性趋势向客户端通知属性事件的预期下一次发生。例如,取样守护进程31_102可以向应用程序管理器31_106发送指示应用程序管理器31_106应启动趋于出现的应用程序的信号或通知。应用程序管理器31_106可以通过向取样守护进程31_102发送应用程序标识符(例如,“包名”属性值)来注册对应用程序的兴趣。取样守护进程31_102可以监视应用程序的用户调用情况(例如,基于所报告的“包名”开始事件),以确定应用程序是否趋于出现,如上所述。如果应用程序趋于出现,则如上所述,取样守护进程 31_102可以确定调用的节奏,并且基于该节奏在确定的时间向应用程序管理器31_106发送通知或信号。例如,如果节奏是四分钟,则取样守护进程31_102可以每3分钟(例如,在下次发生事件之前的某个时间段)向应用程序管理器31_106发送一次信号,以使应用程序管理器31_106启动应用程序。如果节奏更改为6分钟,则取样守护进程31_102可以检测到节奏变更,并在应用程序管理器31_106收到信号时进行调节。例如,取样守护进程31_102可以向应用程序管理器31_106发送信号,以每5分钟而不是每3分钟启动应用程序,从而进行调节以适应于减慢的节奏(例如,两次调用之间的时间段增加)。
在出于任何原因(例如,添加新条目、更新现有条目等)而对属性趋势表进行每次检查时,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_906发送到在移动设备31_100上运行的推送服务守护进程31_904的消息。
在一些具体实施中,推送提供方31_902可以通过由应用程序31_908 向移动设备31_100的用户呈现的用户授权请求,接收向移动设备31_100 发送推送通知的授权。例如,推送提供方31_902可以是由创建(例如,编程、开发)应用程序31_908的相同供应商所拥有、操作和/或维护的服务器。当应用程序31_908在移动设备31_100上呈现出请求授权推送提供方 31_902向移动设备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_906发送包含推送通知筛选器31_914的消息31_926和用于移动设备31_100的设备令牌。推送通知服务器31_906可以针对由推送通知服务器31_906所服务的每个移动设备来将设备令牌的映射(例如,移动设备31_100的标识符)存储到推送筛选器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_914中是否识别出与推送提供方31_902相关联的、并在推送通知中所识别的应用程序。如果在推送筛选器31_914中识别到与推送通知相关联的应用程序,则通知服务器31_906可以将从推送提供方31_902接收到的推送通知发送到移动设备31_100。如果在推送筛选器31_914中未识别到推送通知中所识别的应用程序,则通知服务器将不会把从推送提供方 31_902接收到的推送通知发送到移动设备31_100,并且可以删除推送通知。
非唤醒推送通知
在一些具体实施中,通知服务器31_906可以被配置为处理高优先级推送通知和低优先级推送通知。例如,推送提供方31_902可以向推送通知服务器31_906发送高优先级推送通知31_910和/或低优先级推送通知 31_912。推送提供方31_902可以例如通过在发送到推送通知服务器31_906 和移动设备31_100的推送通知中包含的数据中指定推送通知的优先级,来将推送通知识别为高优先级或低优先级。
在一些具体实施中,推送通知服务器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_914和/或勿唤醒列表31_918)中识别到在高优先级推送通知中所识别的应用程序,高优先级推送通知就将不会在推送通知服务器31_906处延迟,并且将被推送到移动设备31_100。
在一些具体实施中,当推送通知服务器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_918 中也识别到在低优先级推送通知31_912中所识别的应用程序,则可将低优先级推送通知31_912存储在推送通知数据存储库31_922中,而不是立即递送到移动设备31_100。在一些具体实施中,如果由推送通知(高优先级或低优先级)所识别的移动设备31_100当前没有连接到推送通知服务器 31_906,则该未连接移动设备31_100的推送通知可被存储在推送通知数据存储库31_922中,用于供稍后递送到移动设备31_100。
在一些具体实施中,存储在推送数据存储库31_922中的推送通知将保持留在推送数据存储库31_922中,直到与所存储的推送通知相关联的应用程序标识符从勿唤醒列表31_918移动到唤醒列表31_916,或者直到推送通知服务器31_906和移动设备31_100之间建立起网络连接。
例如,当另一(高优先级或低优先级)推送通知被递送到移动设备 31_100时,或者当移动设备31_100向推送通知服务器31_906发送其他传输31_924(例如,状态消息、心跳消息、保持活动消息等)时,可以在推送通知服务器31_906和移动设备31_100之间建立网络连接。例如,移动设备31_100可以向推送通知服务器31_905发送指示移动设备31_100将在一段时间(例如,5分钟)内处于活动状态的消息31_924,并且推送通知服务器31_906可以在指定的活动期间内将所有接收到的推送通知发送到移动设备31_100。在一些具体实施中,当在移动设备31_100和推送通知服务器31_906之间建立起网络连接时,存储在推送通知存储器31_922中的所有推送通知将被递送到移动设备31_100。例如,存储在推送通知数据存储库31_922中的推送通知可以通过由移动设备31_100和推送通知服务器 31_906之间的其他传输所创建的连接来传送。
在一些具体实施中,移动设备31_100可以与推送通知服务器31_906 建立两个不同的通信信道。例如,可以同时或在不同时间建立两个通信信道。移动设备31_100可以与推送通知服务器31_906具有例如蜂窝数据连接和/或Wi-Fi连接。在一些具体实施中,移动设备31_100可以针对每个通信信道生成并向推送通知服务器31_906发送不同推送筛选器31_914。例如,蜂窝数据连接可以与第一组推送筛选器31_914相关联,用于确定何时在蜂窝数据连接上发送高优先级和低优先级推送通知。Wi-Fi数据连接可以与相同或不同于蜂窝数据推送筛选器的第二组推送筛选器31_914相关联,用于确定何时在Wi-Fi数据连接上发送高优先级和低优先级推送通知。当推送通知服务器31_906接收到推送通知时,推送通知服务器可将推送通知中所识别的应用程序与推送通知服务器31_906将用于向移动设备31_100 发送推送通知的通信信道(例如,Wi-Fi、蜂窝)的推送通知筛选器进行比较。
推送所发起的后台更新
在一些具体实施中,移动设备31_100对推送通知的接收可以触发移动设备31_100上的应用程序的后台更新。例如,当移动设备31_100(例如,推送服务守护进程31_904)从推送通知服务器31_906接收到推送通知消息 31_920时,推送服务守护进程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可以从一个或多个网络资源(例如,推送提供方31_902)下载更新的内容。
在一些具体实施中,当推送服务守护进程31_904接收到与移动设备 31_100上的应用程序(例如,应用程序31_908)相关联的低优先级推送通知时,推送服务守护进程31_904可以询问取样守护进程31_102是否可以启动与所接收到的低优先级推送通知相关联的应用程序。例如,推送服务守护进程31_904可以通过向取样守护进程31_102发送与所接收的低优先级推送通知相关联的应用程序的标识符(例如,“包名”属性值),来请求取样守护进程31_102执行准入控制。取样守护进程31_102可以通过检查数据预算、能量预算、属性预算和表决器反馈来执行准入控制,如上文参考图31_4所述。取样守护进程31_102可以基于准入控制处理的结果向推送服务守护进程31_904返回这样的值:该值指示是否可以启动由低优先级推送通知所识别的应用程序。
在一些具体实施中,如果从准入控制请求返回的值指示“是”—启动应用程序可行,则推送服务守护进程31_904将向应用程序管理器31_106 发送低优先级推送通知,并且应用程序管理器31_106可以调用该应用程序 (例如,应用程序31_908)。应用程序31_908然后可以通过网络(例如,互联网)与推送提供方31_902通信,以从推送提供方31_902接收更新的内容。
在一些具体实施中,如果从准入控制请求返回的值指示“否”—启动应用程序不可行,则推送服务守护进程31_904将把低优先级推送通知存储在推送通知数据存储库31_934中。例如,当存储低优先级推送通知时,推送服务守护进程31_904将仅存储针对在推送通知中所识别的应用程序而接收到的最新推送通知。在一些具体实施中,当取样守护进程31_102指示推送服务守护进程31_904现在不应该启动应用程序(例如,准入控制答复为“否”)时,推送服务守护进程31_904可以将用于该应用程序的应用程序标识符从唤醒列表31_930移动至勿唤醒列表31_932。例如,如果取样守护进程31_102确定移动设备的预算和/或状况不允许启动应用程序,则允许推送通知服务器31_906唤醒移动设备31_100以获得与应用出现相关联的额外低优先级推送通知,仅仅会进一步消耗移动设备31_100的数据和能量预算,或使环境状况变差(例如,导致设备升温)。因此,通过将应用程序标识符移动到勿唤醒列表31_932中并向包括更新筛选器31_928(例如,唤醒列表31_930和勿唤醒列表31_932)的推送通知服务器31_906发送消息 31_926,通知服务器31_906可以更新其自身的推送筛选器31_914、唤醒列表31_916和勿唤醒列表31_918来反映对推送筛选器31_928的更改,并且防止用于应用程序的额外低优先级推送通知被递送到移动设备31_100。
在一些具体实施中,如果从准入控制请求返回的值指示启动应用程序“从不”可行,则推送服务守护进程31_904将删除低优先级推送通知,并从推送筛选器中删除与推送通知相关联的应用程序标识符31_928。更新的推送筛选器可以被发送至推送通知服务器31_906,并且推送通知服务器 31_906上的推送筛选器31_914可以得到更新,以防止推送通知服务器 31_906发送与应用程序标识符相关联的任何更多推送通知。
在一些具体实施中,取样守护进程31_102可以向推送服务守护进程 31_904发送“停止”信号,以临时阻止将来的低优先级推送通知从推送通知服务器31_906被发送到移动设备31_100。例如,在下述情况下,取样守护进程31_102可以向推送服务守护进程31_904发送停止信号:取样守护进程31_102确定数据预算在当前小时耗尽、能量预算在当前小时耗尽、该系统正在经历热事件(例如,移动设备31_100过热)、移动设备31_100 具有较差的蜂窝连接,以及移动设备31_100未连接到Wi-Fi并且/或者移动设备31_100连接到语音呼叫且未连接到Wi-Fi。当推送服务守护进程 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_904发送重试消息:当能量预算未耗尽时、当推送数据预算未耗尽时、当移动设备31_100未经历热事件时、当移动设备31_100具有良好质量的蜂窝连接或者连接到Wi-Fi时、当移动设备31_100未连接到语音呼叫,以及当启动速率限制已被重置时。一旦推送服务守护进程31_904接收到重试信号,推送服务守护进程31_904就将针对推送通知数据存储库31_934中的每个推送通知发送对取样守护进程31_102的准入控制请求,以确定是否可以启动与所存储的推送通知相关联的每个应用程序(例如,“包名”属性值)。
如果取样守护进程31_102从准入控制请求返回“是”,则推送服务守护进程31_904可以向应用程序管理器31_106发送推送通知,并且应用程序管理器31_106可以将与推送通知相关联的应用程序作为移动设备31_100 上的后台进程而启动,如上所述。一旦应用程序启动,该应用程序就可以下载内容或数据更新,并根据所下载的数据更新应用程序用户界面。应用程序管理器31_106不会询问取样守护进程31_102是否可以启动与低优先级推送通知相关联的应用程序。
高优先级推送通知
在一些具体实施中,由移动设备31_100所接收的推送通知消息 31_920可以包括高优先级推送通知。例如,高优先级推送通知可以指示内容更新可用于与推送通知相关联的应用程序。因此,当高优先级推送通知导致应用程序的调用时,该应用程序可以从一个或多个网络资源下载更新的内容。在一些具体实施中,当推送服务守护进程31_904接收到高优先级推送通知时,推送服务守护进程31_904将向应用程序管理器31_106发送高优先级推送通知,而不对取样守护进程31_102作出准入控制请求。
在一些具体实施中,当应用程序管理器31_106接收到与应用相关联的推送通知时,应用程序管理器31_106将对取样守护进程31_102作出准入控制请求。响应于准入控制请求,取样守护进程31_102可以如上所述地以“是”、“否”或“从不”应答进行回复。当应用程序管理器31_106接收到对准入控制请求的“是”回复时,应用程序管理器31_106可以将与所接收的高优先级推送通知相关联的应用程序作为移动设备31_100上的后台进程而启动。
在一些具体实施中,当应用程序管理器31_106接收到对准入控制请求的“否”回复时,应用程序管理器31_106可以将高优先级推送通知存储在高优先级推送通知存储库31_936中。当应用程序管理器31_106接收到“从不”应答时,应用程序管理器31_106可以删除高优先级推送通知,并删除存储在推送通知数据存储库31_936中用于与推送通知相关联的应用程序的任何推送通知。
在一些具体实施中,取样守护进程31_102可以向应用程序管理器 31_106发送“可以重试”信号。例如,当应用程序管理器31_106从取样守护进程31_102接收到“可以重试”消息时,应用程序管理器31_106可以针对与高优先级推送通知数据存储库31_936中的每个高优先级推送通知相关联的应用程序作出准入控制请求,并且当响应于准入控制请求接收到“是”回复时,将各个应用程序作为后台进程而启动。
延迟显示推送通知
在一些具体实施中,高优先级推送通知可以使图形用户界面显示在移动设备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上的应用程序。推送通知可以包括例如应用程序标识符(例如,“包名”属性值)。推送通知服务器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处,当启动与高优先级推送通知相关联的应用程序不可行时(例如,准入控制返回“否”),则移动设备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的标识符(例如,“包名”属性值),或者提供用于请求后台传输的应用程序的标识符,以使得准入控制可在后台传输守护进程或该应用程序上执行。准入控制请求可以包括作为将要从系统级数据预算中扣除的请求成本而传输的数据量。
响应于从后台传输守护进程31_1302接收到准入控制请求,取样守护进程31_102可以确定当前小时的系统级数据和/或能量预算是否已用尽。在一些具体实施中,如果取样守护进程31_102确定移动设备31_100连接到外部电源,则取样守护进程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向准入控制请求返回“否”回复。
在一些具体实施中,当后台传输守护进程31_1302从取样守护进程 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响应于准入控制请求而返回“确定”回复,则后台传输守护进程31_1302可为应用程序31_1304执行后台下载或上载。一旦后台下载完成,后台传输守护进程31_1302就可以唤醒或调用应用程序31_1304,并向应用程序31_1304提供下载的数据。
在一些具体实施中,后台传输守护进程31_1302可以在后台下载/上载开始和结束时通知取样守护进程31_102,以使得取样守护进程31_102可以调节预算并维护在移动设备31_100上执行的后台下载/上载的统计信息。例如,后台传输守护进程31_1302可以向取样守护进程31_102发送“后台传输”属性开始或停止事件。在一些具体实施中,后台传输守护进程31_1302 可以传输通过蜂窝数据、通过Wi-Fi和/或通过二者一起所传输的字节数 (例如,“系统.网络字节”属性事件),使得取样守护进程31_102可以调节预算并维护在移动设备31_100上执行的后台下载/上载的统计信息。
在一些具体实施中,取样守护进程31_102可以响应于准入控制请求而向后台传输守护进程31_1302返回超时值。例如,超时值可以指示后台传输守护进程必须执行后台下载或上载的时间段(例如5分钟)。在经过超时时间段后,后台传输守护进程31_1302将暂停后台下载或上载。
在一些具体实施中,超时值可以基于当前小时的剩余能量预算。例如,取样守护进程31_102可以基于由取样守护进程31_102所收集的历史事件数据,来确定在通过Wi-Fi执行下载或上载时,每秒钟消耗多少能量。取样守护进程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可以将并发的后台下载和/或上载的数量限制为三个。
示例性后台下载/上载过程
图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_1302、正在执行后台传输的应用程序,和/或要传送的数据量。取样守护进程31_102 可以确定能量和数据预算是否耗尽,以及移动设备31_100是否处于热事件当中。如果预算已耗尽,或者如果移动设备31_100处于热事件当中,则取样守护进程31_102可以向后台传输守护进程31_1302发送消息,指示不可以执行后台数据传输(例如,准入控制返回“否”)。
在步骤31_1406处,移动设备31_100可以存储后台传输请求。例如,当取样守护进程31_102响应于准入控制请求而返回“否”值时,后台传输守护进程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。后台传输守护进程31_1302可以发送这样的消息:该消息向取样守护进程通知在后台下载或上载期间所传输的字节数(例如,使用“网络字节”属性事件)。一旦后台传输完成,后台传输守护进程31_1302就可以调用(例如,启动或唤醒)作出后台传输请求的应用程序,并将完成状态信息(例如,成功、错误、已下载数据等)发送到请求应用程序。
启用/禁用后台更新
图31_15示出了用于启用和/或禁用移动设备上的应用程序后台更新的示例性图形用户界面(GUI)31_1500。例如,GUI 31_1500可以是呈现在移动设备31_100的显示器上的界面,其用于接收用户输入以调节移动设备 31_100上的应用程序的后台更新设置。
在一些具体实施中,如上所述,GUI 31_1500可以基于用户调用预报来启用或禁用对应用程序执行的后台更新。例如,取样守护进程31_102和/ 或应用程序管理器31_106可以确定是否针对某一应用程序启用或禁用后台更新,并阻止该应用程序被应用程序管理器31_106启动,或阻止该应用程序被包括在由取样守护进程31_102生成的应用程序调用预报中。例如,如果针对某一应用程序禁用了后台更新,则取样守护进程31_102将不会把该应用程序包括在由应用程序管理器31_106所请求的用户调用的应用程序预报中。因此,当禁用后台更新时,应用程序管理器31_106将不启动该应用程序。相反,如果针对某一应用程序启用了后台更新,则该应用程序可被包括在由取样守护进程31_102基于用户调用概率所生成的应用程序调用预报中,如上所述。
在一些具体实施中,如上所述,当接收到推送通知时,GUI 31_1500 可以启用或禁用对应用程序执行的后台更新。例如,取样守护进程31_102、应用程序管理器31_106和/或推送服务守护进程31_904可以确定是否针对某一应用程序启用或禁用后台更新,并且响应于接收推送通知而防止该应用程序被应用程序管理器31_106启动。例如,如果针对某一应用程序禁用了后台更新,并且接收到用于该应用程序的推送通知,则应用程序管理器31_106将不会响应于推送通知而启动该应用程序下载更新。
在一些具体实施中,GUI 31_1500可以显示已被配置为执行后台更新的应用程序31_1502-1514。例如,应用程序31_1502-1514可被配置或编程为当由应用程序管理器31_106启动时作为移动设备31_100上的后台进程而运行。当应用程序31_1502-1514作为后台进程运行时,它们可以与各种网络资源通信,以下载当前或更新的内容。应用程序31_1502-1514然后可以更新其各自的用户界面,以便在被移动设备31_100的用户调用时呈现更新的内容。在一些具体实施中,未被配置或编程为执行后台更新的应用程序将不会显示在GUI31_1500上。
在一些具体实施中,用户可以向GUI 31_1500提供输入,以启用和/或禁用应用程序的后台更新。例如,用户可利用切换键31_1516向移动设备31_100提供输入(例如,触摸输入),以打开或关闭应用程序31_1502的后台更新。用户可利用切换键31_1518向移动设备31_100提供输入(例如,触摸输入),以打开或关闭应用程序31_1508的后台更新。
在一些具体实施中,可以通过GUI 31_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可以通过蓝牙、蓝牙低功耗、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_1620将事件预报信息和/或移动设备 31_1600系统状态信息传送给取样守护进程31_102。
在一些具体实施中,应用程序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_1602基于由移动设备31_1600生成的属性事件数据针对“包名”属性或特定“包名”属性值(例如,应用程序31_1608的应用程序标识符)生成时间和/或对等预报,并将该预报传输给取样守护进程31_102。例如,对等设备可以是同一用户拥有的远程设备(例如,不是当前本地设备)。移动设备31_100可以是例如移动设备31_1600的对等设备。
在一些具体实施中,请求客户端(例如,应用程序31_1608)可以指定用于递送的时间表和用于预报数据的持续时间。例如,应用程序31_1608 可以请求针对“包名”属性值“邮件应用”进行对等和/或时间预报。应用程序31_1608可以请求例如每周生成并交换该预报,并且请求每次预报涵盖一周的持续时间或时间段。
在一些具体实施中,可以静态地安排对等设备之间的数据交换。取样守护进程31_1602可以发送移动设备31_100所必需的属性数据,以便使移动设备31_1600的远程状态在严格的时间表(例如,每24小时进行一次应用程序预报和电池统计)下一致。在一些具体实施中,客户端可以按需请求来自对等设备的属性预报或统计信息。这些交换为非再现性的。当接收到所请求的数据时,请求客户端可得到通知。
在一些具体实施中,取样守护进程31_1602可以将用于移动设备 31_1600的系统状态数据传输到取样守护进程31_102。例如,取样守护进程31_1602可以接收电池充电水平事件(例如,“电池电平”属性事件)、电池充电事件(例如,“缆线插入”事件)、能量使用率事件(例如,“能量”属性事件)和/或其他可用于产生电池使用率和充电统计数据的事件,并将电池相关事件数据传输到取样守护进程31_102。例如,电池状态信息可以每24小时交换一次。电池状态信息可以伺机地交换。例如,当在移动设备31_100和移动设备31_1600之间建立起通信信道(例如,对等、联网等)时,移动设备可以伺机地使用已经打开的通信信道来交换电池状态或其他系统状态信息(例如,对当前前台应用程序的识别)。
又如,取样守护进程31_1602可以接收热水平事件(例如,“热水平”属性事件)、网络事件(例如,“网络质量”属性事件、“网络字节”属性事件),并将热和/或网络事件传输到取样守护进程31_102。取样守护进程31_1602可以从应用程序管理器31_106接收指示当前处于移动设备31_1600前台的应用程序(例如,应用程序标识符)的事件(例如,“系统.前台应用”属性事件),并将前台应用程序信息发送到取样守护进程102。在一些具体实施中,一旦该事件发生(例如,一旦在对等设备之间建立连接),就可以与对等设备交换热事件和前台应用程序变更信息。在一些具体实施中,可以周期性地(例如,每天一次、每天两次、每小时一次等)交换网络状态信息。
在从取样守护进程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_102发送对于作为应用程序 31_1608包名标识符(例如,“包名”=“1608”)的“包名”属性值的准入控制请求。除了“包名”属性名称和值(例如,“1608”)之外,身份服务守护进程31_1620可以在准入控制请求中提供设备名称(例如,“设备31_1600”),以指示应用程序31_108正在请求对于与另一设备通信的准入控制。
在一些具体实施中,响应于接收到准入控制请求,取样守护进程 31_102可以执行本地准入控制和远程准入控制。例如,取样守护进程 31_102可以如上所述地执行本地准入控制,以确定移动设备31_100是否处于允许发生与指定属性值(例如,“包名”=“1608”)相关联的事件的状况。取样守护进程31_102可以例如检查本地能量、数据和属性预算,并且询问表决器反馈以确定移动设备31_100是否处于允许与指定属性值(例如,“包名”=“1608”)相关联的事件的状况。
除了执行本地准入控制之外,取样守护进程31_102可以基于从移动设备31_1600接收并存储在对等数据存储库31_1622中的“包名”属性预测、事件数据和系统数据来执行远程准入控制。例如,取样守护进程 31_102可以使用设备标识符(例如,“设备31_1600”、设备名称、唯一标识符、UUID等)来定位对等数据存储库31_1622中与移动设备31_1600 相关联的数据。取样守护进程31_102可以分析从取样守护进程31_1602所接收的属性(例如“包名”)预报数据,以确定应用程序31_1608是否可能由用户在当前的15分钟时隙中在移动设备31_1600上调用。如果应用程序31_1608在当前的15分钟时隙中不太可能被用户调用,则取样守护进程 31_102可以响应于准入控制请求而返回“否”值。例如,通过仅在应用 31_1608可能在移动设备31_1600上被使用时允许应用程序31_108与应用程序31_1608同步,取样守护进程31_102可以延迟同步过程并节省系统资源(例如,电池、CPU周期、网络数据),直至用户可能在移动设备 31_1600上使用应用程序31_1608。
在一些具体实施中,如果应用程序31_1608可能在当前的15分钟时隙中由移动设备31_1600的用户调用,则取样守护进程31_102可以检查与移动设备31_1600相关联并存储在对等数据存储库31_1622中的系统数据。例如,取样守护进程31_102可以检查与移动设备31_1600相关联的系统数据,以确定移动设备31_1600是否剩余有足够的电池电量以执行应用程序 31_108和应用程序31_1608之间的同步。例如,取样守护进程31_102可以检查当前是否存在足够的电池电量来完成应用程序31_108和应用程序 31_1608之间的同步。取样守护进程31_102可以检查是否存在足够的电池电量来执行同步,并继续运行直到下一次预测的电池充电(例如“缆线插入”属性事件)。例如,取样守护进程31_102可以针对“缆线插入”属性生成时间预报,该时间预报识别了何时可能发生下一次“缆线插入”属性事件。取样守护进程31_102可以分析能量使用率统计数据(事件),以预测直至下一个“缆线插入”事件的能量使用率,并且确定是否有足够的剩余能量来为应用程序31_108和应用程序31_1608之间的同步传输提供服务。如果取样守护进程31_102确定移动设备31_1600没有足够的能量(例如,电池电量)来服务于同步,则取样守护进程31_102可以响应于远程准入控制请求而返回“否”值。
在一些具体实施中,取样守护进程31_102可以检查与移动设备 31_1600相关联的系统数据,以确定移动设备31_1600是否处于正常热状态 (例如,不过热),并且可以处理同步请求。例如,如果从移动设备 31_1600所接收的“热水平”属性事件数据指示移动设备31_1600当前正在高于阈值的温度下工作,则取样守护进程31_102可以通过响应于远程准入控制请求而返回“否”值来防止同步通信。
在一些具体实施中,当预报数据指示用户很可能在移动设备31_1600 上调用应用程序31_1608,并且能量、热和其他系统状态信息指示移动设备 31_1600处于处理来自移动设备31_100的通信的条件时,取样守护进程 31_102可以响应于准入控制请求向身份服务守护进程31_1620返回“是”值。响应于因响应允入控制请求而接收到“是”值,身份服务守护进程 31_1620可以将应用程序31_108的同步消息传输到移动设备31_1600上的身份服务守护进程31_1610。应用程序31_108和应用程序31_1608然后可以通过凭借身份服务守护进程31_1620和身份服务守护进程31_1610交换消息来同步数据。
在一些具体实施中,可以在经过远程准入控制之后传输高优先级消息。例如,高优先级消息可以是与用户发起的任务相关联的消息,诸如与前台应用程序相关联的消息或响应于用户提供输入而生成的消息。在一些具体实施中,可以类似于低优先级消息那样对用于高优先级消息的准入控制进行处理。然而,当对高优先级消息执行远程准入控制时,可以在不考虑属性预报数据(例如,“包名”预报数据)的情况下准许(允许)高优先级消息,这是因为高优先级消息通常由某些用户动作触发,而不是由一些随意的后台任务发起。
在一些具体实施中,当对高优先级消息执行准入控制时,可以检查远程设备(例如,移动设备31_1600)的电池状态,以确保远程设备(例如,对等设备)具有足够的可用电池电量来处理高优先级信息。如果远程设备上有足够的电池电量,则远程准入控制将批准高优先级消息。例如,当剩余足以处理高优先级消息的电池电量时,取样守护进程31_102可以响应于远程准入控制请求而向身份服务守护进程31_1620传输“是”值。如果远程设备上没有足够的电池电量,则远程准入控制将拒绝高优先级消息。例如,当未剩余足以处理高优先级消息的电池电量时,取样守护进程31_102 可以响应于远程准入控制请求而向身份服务守护进程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发送重试消息。在一些具体实施中,当远程焦点应用程序改变时,可以生成重试消息。例如,如果远程对等设备上的用户正在使用“邮件应用”应用程序,则“邮件应用”应用程序将成为焦点应用程序。当用户开始使用“web浏览器”应用程序时,焦点应用程序将变更为“web浏览器”应用程序。当在移动设备31_100和移动设备31_1600之间交换对等数据时,可将焦点应用程序的变更作为事件而报告给取样守护进程31_1602,并被传输到取样守护进程31_102。在接收到指示对等设备31_1602处的焦点应用程序发生变更的事件信息时,取样守护进程31_102 可以向身份服务守护进程31_1620发送重试消息。身份服务守护进程 31_1620然后可以针对由取样守护进程31_102所拒绝的每个消息来重试准入控制。例如,身份服务守护进程31_1620可以存储被拒绝的消息(例如,传输任务),并且在从取样守护进程31_102接收到重试消息时,凭借准入控制发送被拒绝的消息。在一些具体实施中,被拒绝的消息可以在经过一段时间后得到传输。例如,在经过可配置的时间段之后,可以将尚未通过准入控制的消息发送到对等设备。
在一些具体实施中,当取样守护进程31_102指示移动设备31_100或移动设备31_1600上的状况已经改变时,身份服务守护进程31_1620可以中断数据流传输。例如,如果取样守护进程31_102确定移动设备31_100 或移动设备31_1600上的电池状况已经改变,使得所述移动设备中的一个可能耗尽电池电力,则取样守护进程31_102可以告知身份服务守护进程 31_1620停止针对与数据流相关联的属性事件而传输和重试准入控制。
在对等设备之间共享数据的过程
图31_17示出了用于在对等设备之间共享数据的示例性过程 31_1700。关于过程31_1700的额外细节可参见上文的图31_16。在步骤 31_1702处,移动设备可以从对等设备接收事件数据。例如,事件数据可以作为“摘要”(例如,预报、统计数据等)或原始(例如,未处理的)事件数据而被分享。例如,当第二设备和移动设备由同一用户所拥有时,第二设备(例如,移动设备31_1600)是移动设备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_1600的用户很可能在当前时间调用应用程序31_1608,并且如果事件数据指示对等设备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的存储器)还可以存储其他软件指令以促进第1节中所述的过程和功能,诸如参考图31-1-图31_17所述的动态调节过程和功能。
用于动态调节移动设备的示例性方法、系统和计算机可读介质
存储器(例如,图1A中设备100的存储器)还可以存储其他软件指令以促进第1节中所述的过程和功能,诸如参考图31-1-图31_17所述的动态调节过程和功能。
在一个方面,移动设备可以被配置为监视与移动设备和/或对等设备相关联的环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与这样的应用程序相关联的推送通知:其指示存在用于使该应用程序下载的可用新内容。移动设备可以在后台启动与推送通知相关联的应用程序,并下载该新内容。在一些具体实施中,在运行应用程序或与对等设备通信之前,移动设备可被配置为,检查移动设备和/或对等设备的能量和数据预算以及环境条件来确保高质量的用户体验。
在一些具体实施中,提供了一种方法。该方法包括:在移动设备处接收来自对等设备的属性事件数据,其中该属性事件数据描述了在对等设备上发生的事件;将对等事件数据存储在移动设备处;从移动设备上的应用程序接收与对等设备通信的请求,其中该请求包括具有对应于对等设备上的对应应用程序标识符的值的属性;由移动设备确定基于对等事件数据来发起与对等设备的通信。
在一些具体实施中,对等设备和移动设备由单个用户所拥有。在一些具体实施中,由移动设备确定基于对等事件数据发起与对等设备的通信包括,基于对等事件数据针对所述属性生成一个或多个预报。在一些具体实施中,由移动设备确定基于对等事件数据发起与对等设备的通信包括,基于对等事件数据来确定对等设备的电池状态。在一些具体实施中,由移动设备确定基于对等事件数据发起与对等设备的通信包括,基于对等事件数据来确定对等设备的热状态。在一些具体实施中,由移动设备确定基于对等事件数据发起与对等设备的通信包括,确定用户可能在大约当前时间调用对等设备上的相应应用程序。
在一些具体实施中,提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:在移动设备处接收来自对等设备的属性事件数据,其中该属性事件数据描述了在对等设备上发生的事件;将对等事件数据存储在移动设备处;从移动设备上的应用程序接收与对等设备通信的请求,其中该请求包括具有对应于对等设备上的对应应用程序标识符的值的属性;由移动设备确定基于对等事件数据来发起与对等设备的通信。
在一些具体实施中,对等设备和移动设备由单个用户所拥有。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据针对所述属性生成一个或多个预报的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据来确定对等设备的电池状态的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据来确定对等设备的热状态的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备确定用户可能在大约当前时间调用对等设备上的相应应用程序的指令。
在一些具体实施中,提供一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的非暂态计算机可读介质,这些指令序列当由所述一个或多个处理器执行时,使得:在移动设备处接收来自对等设备的属性事件数据,其中该属性事件数据描述了在对等设备上发生的事件;将对等事件数据存储在移动设备处;从移动设备上的应用程序接收与对等设备通信的请求,其中该请求包括具有对应于对等设备上的对应应用程序标识符的值的属性;由移动设备确定基于对等事件数据来发起与对等设备的通信。
在一些具体实施中,对等设备和移动设备由单个用户所拥有。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据针对所述属性生成一个或多个预报的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据来确定对等设备的电池状态的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据来确定对等设备的热状态的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备确定用户可能在大约当前时间调用对等设备上的相应应用程序的指令。
在另一方面,移动设备可被配置为监视环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。在一些具体实施中,移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与这样的应用程序相关联的推送通知:其指示存在用于使该应用程序下载的可用新内容。移动设备可以在后台启动与推送通知相关联的应用程序,并下载该新内容。在一些具体实施中,在运行应用程序或访问网络接口之前,移动设备可被配置为,检查移动设备的能量和数据预算以及环境条件来保持高质量的用户体验。
在一些具体实施中,提供了一种方法,该方法包括:在移动设备上运行的第一进程处接收事件数据;从移动设备上运行的第二进程处接收事件注册数据,该事件注册数据识别了用于触发第二进程的调用的一个或多个事件,其中在接收到事件注册数据之后,第二进程暂停或终止;通过第一进程确定所述一个或多个事件已基于事件数据而发生;并在移动设备上调用第二进程。
在一些具体实施中,调用第二进程使得该第二进程调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个部件包括移动设备的中央处理单元、图形处理单元、基带处理器或显示器。在一些具体实施中,所述一个或多个事件包括移动设备的工作温度的改变、系统设置的改变、用户输入、打开或关闭显示器、设定时钟闹钟或设定日历事件。在一些具体实施中,该方法还包括:在第一进程处接收来自第二进程的对于由第二进程存储事件数据的请求;从第一处理向第二处理发送所请求的事件数据,其中所述第二处理被配置为,基于该事件数据来调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个事件包括事件模式,并且其中第一进程被配置为当检测到事件模式时,识别所接收的事件数据中的模式并且调用第二进程。
在一些具体实施中,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:在移动设备上运行的第一进程处接收事件数据;从移动设备上运行的第二进程处接收事件注册数据,该事件注册数据识别了用于触发第二进程的调用的一个或多个事件,其中在接收到事件注册数据之后,第二进程暂停或终止;通过第一进程确定所述一个或多个事件已基于事件数据而发生;并在移动设备上调用第二进程。
在一些具体实施中,调用第二进程使得该第二进程调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个部件包括移动设备的中央处理单元、图形处理单元、基带处理器或显示器。在一些具体实施中,所述一个或多个事件包括移动设备的工作温度的改变、系统设置的改变、用户输入、打开或关闭显示器、设定时钟闹钟或设定日历事件。在一些具体实施中,所述指令使得:在第一进程处接收来自第二进程的对于由第二进程存储事件数据的请求;从第一处理向第二处理发送所请求的事件数据,其中所述第二处理被配置为,基于该事件数据来调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个事件包括事件模式,并且其中第一进程被配置为当检测到事件模式时,识别所接收的事件数据中的模式并且调用第二进程。
在一些具体实施中,提供了一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的非暂态计算机可读介质,这些指令序列当由一个或多个处理器执行时,使得:在移动设备上运行的第一进程处接收事件数据;从移动设备上运行的第二进程处接收事件注册数据,该事件注册数据识别了用于触发第二进程的调用的一个或多个事件,其中在接收到事件注册数据之后,第二进程暂停或终止;通过第一进程确定所述一个或多个事件已基于事件数据而发生;并在移动设备上调用第二进程。
在一些具体实施中,调用第二进程使得该第二进程调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个部件包括移动设备的中央处理单元、图形处理单元、基带处理器或显示器。在一些具体实施中,所述一个或多个事件包括移动设备的工作温度的改变、系统设置的改变、用户输入、打开或关闭显示器、设定时钟闹钟或设定日历事件。在一些具体实施中,所述指令使得:在第一进程处接收来自第二进程的对于由第二进程存储事件数据的请求;从第一处理向第二处理发送所请求的事件数据,其中所述第二处理被配置为,基于该事件数据来调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个事件包括事件模式,并且其中第一进程被配置为当检测到事件模式时,识别所接收的事件数据中的模式并且调用第二进程。
在另一方面,移动设备可以被配置为监视与移动设备和/或对等设备相关联的环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与指示了新内容的应用程序相关联的推送通知。
在一些具体实施中,提供了一种方法,该方法包括:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据,其中每个属性与某一预算相关联,并且每个事件都具有相应的成本;基于与由移动设备所接收的特定属性相关联的事件成本来减少特定属性的预算;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;将事件的成本与特定属性的剩余预算进行比较;以及通过第一进程基于所述比较来允许与该特定属性相关联的事件。
在一些具体实施中,所述多个属性中的至少一个由客户端在运行时动态地定义。在一些具体实施中,确定允许事件包括,针对特定属性生成预报,该特定属性指示了何时可能发生与该属性相关联的事件。在一些具体实施中,确定允许事件包括,确定剩余足以支付事件成本的预算。在一些具体实施中,特定属性的预算由客户端动态地定义。在一些具体实施中,预算对应于系统级的数据预算的一部分。在一些具体实施中,预算对应于系统级的能量预算的一部分。
在一些具体实施中,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性之一相关联的数据,其中每个属性与某一预算相关联,并且每个事件都具有相应的成本;基于与由移动设备所接收的特定属性相关联的事件成本来减少特定属性的预算;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;将事件的成本与特定属性的剩余预算进行比较;以及通过第一进程基于所述比较来允许与该特定属性相关联的事件。
在一些具体实施中,所述多个属性中的至少一个由客户端在运行时动态地定义。在一些具体实施中,使得设备确定允许事件的指令包括,使得设备针对特定属性生成预报的指令,该特定属性指示了何时可能发生与该属性相关联的事件。在一些具体实施中,使得设备确定允许事件的指令包括,使得设备确定剩余足够的预算以支付事件成本的指令。在一些具体实施中,特定属性的预算由客户端动态地定义。在一些具体实施中,预算对应于系统级的数据预算的一部分。在一些具体实施中,预算对应于系统级的能量预算的一部分。
在一些具体实施中,提供了一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的计算机可读介质,这些指令序列当由一个或多个处理器执行时,使得:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性之一相关联的数据,其中每个属性与某一预算相关联,并且每个事件都具有相应的成本;基于与由移动设备所接收的特定属性相关联的事件成本来减少特定属性的预算;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;将事件的成本与特定属性的剩余预算进行比较;以及通过第一进程基于所述比较来允许与该特定属性相关联的事件。
在一些具体实施中,所述多个属性中的至少一个由客户端在运行时动态地定义。在一些具体实施中,使得设备确定允许事件的指令包括,使得设备针对特定属性生成预报的指令,该特定属性指示了何时可能发生与该属性相关联的事件。在一些具体实施中,使得设备确定允许事件的指令包括,使得设备确定剩余足够的预算以支付事件成本的指令。在一些具体实施中,特定属性的预算由客户端动态地定义。在一些具体实施中,预算对应于系统级的数据预算的一部分。在一些具体实施中,预算对应于系统级的能量预算的一部分。
在另一方面,移动设备可以被配置为监视与移动设备和/或对等设备相关联的环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与这样的应用程序相关联的推送通知:其指示存在用于使该应用程序下载的可用新内容。移动设备可以在后台启动与推送通知相关联的应用程序,并下载该新内容。在一些具体实施中,在运行应用程序或与对等设备通信之前,移动设备可被配置为,检查移动设备和/或对等设备的能量和数据预算以及环境条件来确保高质量的用户体验。
在一些具体实施中,提供了一种方法,该方法包括:通过来自计算设备上所执行的一个或多个插件进程的第一进程来接收将插件进程注册为一个或多个表决进程的请求;通过第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;向每个所注册的表决进程发送识别该特定属性的信息;响应于向每个所注册的表决进程发送识别该特定属性的信息,从所注册的表决进程中的至少一个接收表决;以及通过第一进程基于表决来确定允许与特定属性相关联的事件。
在一些具体实施中,所述一个或多个表决进程在运行时被动态地插入到第一进程中。在一些具体实施中,通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性相关联的事件包括:向每个表决进程发送识别特定属性的信息;并且当每个表决进程确定应该允许发生与特定属性相关联的事件时,从每个表决进程接收“是”表决。在一些具体实施中,该方法包括:当第一进程从所述一个或多个表决进程中的至少一个接收到“否”表决时,通过所述第一进程来确定阻止与第二属性相关联的第二事件。在一些具体实施中,该方法包括:从表决进程中的至少一个接收进行与特定属性相关联的预报的请求;生成所请求的预报;并将所请求的预报返回到所述至少一个表决进程。在一些具体实施中,该方法包括:通过第一进程基于来自一个或多个表决进程的反馈来确定允许与特定属性值相关联的第三事件。在一些具体实施中,通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性值相关联的第三事件包括:向每个表决进程发送识别特定属性值的信息;并且当每个表决进程确定应该允许发生与特定属性值相关联的事件时,从每个表决进程接收“是”表决。
在一些具体实施中,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:通过来自计算设备上所执行的一个或多个插件进程的第一进程来接收将插件进程注册为一个或多个表决进程的请求;通过第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;向每个所注册的表决进程发送识别该特定属性的信息;响应于向每个所注册的表决进程发送识别该特定属性的信息,从所注册的表决进程中的至少一个接收表决;以及通过第一进程基于表决来确定允许与特定属性相关联的事件。
在一些具体实施中,所述一个或多个表决进程在运行时被动态地插入到第一进程中。在一些具体实施中,使得设备通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性相关联的事件的指令包括使得设备执行以下操作的指令:向每个表决进程发送识别特定属性的信息;并且当每个表决进程确定应该允许发生与特定属性相关联的事件时,从每个表决进程接收“是”表决。在一些具体实施中,该指令使得设备:当第一进程从所述一个或多个表决进程中的至少一个接收到“否”表决时,通过所述第一进程来确定阻止与第二属性相关联的第二事件。在一些具体实施中,该指令使得设备:从表决进程中的至少一个接收进行与特定属性相关联的预报的请求;生成所请求的预报;并将所请求的预报返回到所述至少一个表决进程。在一些具体实施中,该指令使得设备:通过第一进程基于来自一个或多个表决进程的反馈来确定允许与特定属性值相关联的第三事件。在一些具体实施中,使得设备通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性值相关联的第三事件的指令包括使得设备执行以下操作的指令:向每个表决进程发送识别特定属性值的信息;并且当每个表决进程确定应该允许发生与特定属性值相关联的事件时,从每个表决进程接收“是”表决。
在一些具体实施中,提供了一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的计算机可读介质,这些指令序列当由一个或多个处理器执行时,使得:通过来自计算设备上所执行的一个或多个插件进程的第一进程来接收将插件进程注册为一个或多个表决进程的请求;通过第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;向每个所注册的表决进程发送识别该特定属性的信息;响应于向每个所注册的表决进程发送识别该特定属性的信息,从所注册的表决进程中的至少一个接收表决;以及通过第一进程基于表决来确定允许与特定属性相关联的事件。
在一些具体实施中,所述一个或多个表决进程在运行时被动态地插入到第一进程中。在一些具体实施中,使得设备通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性相关联的事件的指令包括使得设备执行以下操作的指令:向每个表决进程发送识别特定属性的信息;并且当每个表决进程确定应该允许发生与特定属性相关联的事件时,从每个表决进程接收“是”表决。在一些具体实施中,该指令使得设备:当第一进程从所述一个或多个表决进程中的至少一个接收到“否”表决时,通过所述第一进程来确定阻止与第二属性相关联的第二事件。在一些具体实施中,该指令使得设备:从表决进程中的至少一个接收进行与特定属性相关联的预报的请求;生成所请求的预报;并将所请求的预报返回到所述至少一个表决进程。在一些具体实施中,该指令使得设备:通过第一进程基于来自一个或多个表决进程的反馈来确定允许与特定属性值相关联的第三事件。在一些具体实施中,使得设备通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性值相关联的第三事件的指令包括使得设备执行以下操作的指令:向每个表决进程发送识别特定属性值的信息;并且当每个表决进程确定应该允许发生与特定属性值相关联的事件时,从每个表决进程接收“是”表决。
在另一方面,移动设备可以被配置为监视与移动设备和/或对等设备相关联的环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与这样的应用程序相关联的推送通知:其指示存在用于使该应用程序下载的可用新内容。移动设备可以在后台启动与推送通知相关联的应用程序,并下载该新内容。在一些具体实施中,在运行应用程序或与对等设备通信之前,移动设备可被配置为,检查移动设备和/或对等设备的能量和数据预算以及环境条件来确保高质量的用户体验。
在一些具体实施中,提供了一种方法,该方法包括:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;针对所存储的事件数据中的每个属性生成一个或多个事件预报;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;通过第一进程基于针对特定属性生成的预报来确定允许与该特定属性相关联的事件。
在一些具体实施中,所述一个或多个预报预测了与某一属性相关联的事件将在一段时间内发生的可能性。在一些具体实施中,所述一个或多个预报包括对等预报。在一些具体实施中,所述一个或多个预报包括时间预报。在一些具体实施中,所述一个或多个预报包括基于事件数据存储库中特定属性的发生频率的频率预报。在一些具体实施中,所述一个或多个预报包括基于与特定属性不同的属性相关联的事件的全景预报。在一些具体实施中,该方法包括:基于多个预报类型中的每一个对发生所接收事件的预测情况,来确定默认预报类型。在一些具体实施中,多个预报类型包括频率预报类型和全景预报类型。
在一些具体实施中,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;针对所存储的事件数据中的每个属性生成一个或多个事件预报;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;通过第一进程基于针对特定属性生成的预报来确定允许与该特定属性相关联的事件。
在一些具体实施中,所述一个或多个预报预测了与某一属性相关联的事件将在一段时间内发生的可能性。在一些具体实施中,所述一个或多个预报包括对等预报。在一些具体实施中,所述一个或多个预报包括时间预报。在一些具体实施中,所述一个或多个预报包括基于事件数据存储库中特定属性的发生频率的频率预报。在一些具体实施中,所述一个或多个预报包括基于与特定属性不同的属性相关联的事件的全景预报。在一些具体实施中,指令使得:基于多个预报类型中的每一个对发生所接收事件的预测情况,来确定默认预报类型。在一些具体实施中,多个预报类型包括频率预报类型和全景预报类型。
在一些具体实施中,提供一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的非暂态计算机可读介质,这些指令序列当由所述一个或多个处理器执行时,使得:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;针对所存储的事件数据中的每个属性生成一个或多个事件预报;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;通过第一进程基于针对特定属性生成的预报来确定允许与该特定属性相关联的事件。
在一些具体实施中,所述一个或多个预报预测了与某一属性相关联的事件将在一段时间内发生的可能性。在一些具体实施中,所述一个或多个预报包括对等预报。在一些具体实施中,所述一个或多个预报包括时间预报。在一些具体实施中,所述一个或多个预报包括基于事件数据存储库中特定属性的发生频率的频率预报。在一些具体实施中,所述一个或多个预报包括基于与特定属性不同的属性相关联的事件的全景预报。在一些具体实施中,指令使得:基于多个预报类型中的每一个对发生所接收事件的预测情况,来确定默认预报类型。在一些具体实施中,多个预报类型包括频率预报类型和全景预报类型。
在又一方面,移动设备可以被配置为监视与移动设备和/或对等设备相关联的环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与这样的应用程序相关联的推送通知:其指示存在用于使该应用程序下载的可用新内容。移动设备可以在后台启动与推送通知相关联的应用程序,并下载该新内容。在一些具体实施中,在运行应用程序或与对等设备通信之前,移动设备可被配置为,检查移动设备和/或对等设备的能量和数据预算以及环境条件来确保高质量的用户体验。
在一些具体实施中,提供了一种方法,该方法包括:在移动设备上执行的热管理守护进程处接收对允许发生与某一属性的某一指定值相关联的事件进行表决的请求;从取样守护进程请求针对该属性进行对等预报;针对与该属性相关联的并被预测要在当前时间附近出现的多个值中的每一个接收得分;基于指定属性值的得分进行表决以允许该事件。
在一些具体实施中,该方法包括:确定所述多个值中的最高得分属性值的数量;当指定属性值包括在该数量的最高得分属性值中时,进行表决以允许该事件。在一些具体实施中,该方法包括:当指定属性值未包括在所述多个值中时,进行表决以阻止该事件。在一些具体实施中,该方法包括:确定所述多个值中的最低得分属性值的数量;当指定属性值包括在该数量的最低得分属性值中时,进行表决以阻止该事件。在一些具体实施中,该方法包括:基于移动设备的当前工作温度来确定最低得分属性值的数量。在一些具体实施中,该方法包括:基于当前工作温度在工作温度范围内的位置来确定最低得分属性值的数量。
在一些具体实施中,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:在移动设备上执行的热管理守护进程处接收对允许发生与某一属性的某一指定值相关联的事件进行表决的请求;从取样守护进程请求针对该属性进行对等预报;针对与该属性相关联的并被预测要在当前时间附近出现的多个值中的每一个接收得分;基于指定属性值的得分进行表决以允许该事件。
在一些具体实施中,指令使得:确定所述多个值中的最高得分属性值的数量;当指定属性值包括在该数量的最高得分属性值中时,进行表决以允许该事件。在一些具体实施中,指令使得:当指定属性值未包括在所述多个值中时,进行表决以阻止该事件。在一些具体实施中,指令使得:确定所述多个值中的最低得分属性值的数量;当指定属性值包括在该数量的最低得分属性值中时,进行表决以阻止该事件。在一些具体实施中,指令使得:基于移动设备的当前工作温度来确定最低得分属性值的数量。在一些具体实施中,指令使得:基于当前工作温度在工作温度范围内的位置来确定最低得分属性值的数量。
在一些具体实施中,提供一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的计算机可读介质,这些指令序列当由所述一个或多个处理器执行时,使得:在移动设备上执行的热管理守护进程处接收对允许发生与某一属性的某一指定值相关联的事件进行表决的请求;从取样守护进程请求针对该属性进行对等预报;针对与该属性相关联的并被预测要在当前时间附近出现的多个值中的每一个接收得分;基于指定属性值的得分进行表决以允许该事件。
在一些具体实施中,指令使得:确定所述多个值中的最高得分属性值的数量;当指定属性值包括在该数量的最高得分属性值中时,进行表决以允许该事件。在一些具体实施中,指令使得:当指定属性值未包括在所述多个值中时,进行表决以阻止该事件。在一些具体实施中,指令使得:确定所述多个值中的最低得分属性值的数量;当指定属性值包括在该数量的最低得分属性值中时,进行表决以阻止该事件。在一些具体实施中,指令使得:基于移动设备的当前工作温度来确定最低得分属性值的数量。在一些具体实施中,指令使得:基于当前工作温度在工作温度范围内的位置来确定最低得分属性值的数量。
第2部分:搜索技术
本部分“搜索技术”中的内容根据一些实施方案描述了执行联合搜索、多域查询完成项以及在引用搜索索引中对用户反馈的使用,并提供了补充本文提供的公开内容的信息。例如,本部分的一些部分描述了通过多个单独的搜索域(例如,搜索地图、人和地点)从查询生成多个经排名的查询结果,其补充了本文提供的公开内容,例如与方法800有关的公开内容,以及与填充图9B-图9C的预测部分930有关的公开内容,如下所述。又如,本部分的一些部分描述了搜索与确定搜索完成项,这补充了本文提供的公开内容,例如那些与在不接收任何用户输入的情况下自动显示相关内容(例如方法800)有关的公开内容,以及与使用先前的搜索历史并基于用户的先前搜索历史来生成预测内容(例如,如下文参考图3A-图3B所讨论的)有关的公开内容。再如,本部分的一些部分描述了监视用户与搜索结果的交互以便改进搜索结果的呈现,这补充了本文的公开内容,例如,那些与使用先前的搜索历史来生成所预测内容(例如,如下文参考图3A- 图3B所讨论的)有关的公开内容。
搜索技术简介
本文描述了执行多域查询搜索的方法和设备装置。在示例性实施方案中,该设备从用户的客户端接收查询前缀。该设备还确定了跨多个独立搜索域的多个搜索完成项。另外,该设备基于针对由对应搜索域确定的多个搜索完成项中的每一个所计算的得分,来对多个搜索完成项进行排名,其中所述多个搜索完成项中的至少一个用于在不具有来自用户的指示的情况下,响应于接收到查询前缀生成多个搜索结果。
在另一个实施方案中,该设备使用来自用户搜索会话的反馈来生成结果高速缓存。在该实施方案中,该设备从客户端接收反馈包,其中该反馈包用响应于用户输入的查询前缀而呈现给用户的搜索会话中的多个查询结果来表征用户交互。该设备还通过使用搜索反馈索引运行所述多个查询以得到多个结果,来针对所述多个查询生成多个结果。另外,该设备从所述多个结果创建结果高速缓存,其中结果高速缓存将所述多个结果映射到所述多个查询,并且该结果高速缓存用于向客户端提供查询结果。
在另一实施方案中,该设备从多个独立搜索域上的查询来生成多个经排名的查询结果。在该实施方案中,该设备接收查询并且使用该查询来确定跨多个独立搜索域的多个结果。该设备还表征该查询。此外,设备基于针对由相应搜索域和查询表征所确定的所述多个结果中的每个结果所计算的得分,来对所述多个结果进行排名,其中该查询表征指示了查询类型。
还描述了其他方法和装置。
搜索技术的详细描述
本文描述了执行多域查询搜索的方法和设备装置。在以下说明中示出了许多具体细节,以提供对本发明的实施例的彻底解释。然而,对于本领域的技术人员显而易见的是,本发明的实施例可在不具有这些具体细节的情况下被实施。在其他情况下,尚未详细示出熟知的部件、结构和技术,以免模糊对此说明的理解。
在本说明书中提到的“一个实施例”(“one embodiment”或“an embodiment”)是指结合实施例所述的特定特征、结构或特性可被包括在本发明的至少一个实施例中。在本说明书中的不同位置出现的短语“在一个实施例中”不一定都是指同一个实施例。
在以下描述和权利要求中,可以使用术语“耦接”和“连接”及其派生词。应当理解,这些术语并非意在彼此同义。“耦接”被用于表示可能或可能不彼此直接物理或电接触的两个或更多个元件彼此合作或交互。“连接”被用于表示彼此耦接的两个或更多元件之间通信的建立。
下图中示出的过程通过处理逻辑部件来执行,该处理逻辑部件包括硬件(例如,电路、专用逻辑部件等)、软件(诸如在通用计算机系统或专用机上运行的软件)、或两者的组合。虽然下文按照某些顺序操作来描述该过程,但应当理解,所述的某些操作可以不同的顺序来执行。
此外,某些操作也可并行执行而并非按顺序执行。
术语“服务器”、“客户端”和“设备”旨在一般性地指代数据处理系统,而不是具体地指代服务器、客户端和/或设备的特定形状要素。
本文描述了执行多域查询搜索的方法和设备装置。在一个实施方案中,设备从客户端接收到由用户输入的递增的查询前缀,并且使用该递增的查询前缀来针对每个查询前缀生成一组查询完成项。例如,在一个实施方案中,如果用户输入字符串“apple”,则设备接收到“a”、“ap”、“app”、“appl”和“apple”的递增式查询前缀。对于每个查询前缀,设备生成一组查询完成项。例如,在一个实施方案中,“a”的完成项可以是“apple.com”、“America”或“Annapolis”。类似地,设备可以针对其他递增式查询前缀生成一组不同的查询完成项。在一个实施方案中,设备从多个搜索域确定该组查询完成项。例如在一个实施方案中,设备跨多个搜索域(诸如,地图搜索域、媒体搜索域、维基搜索域、站点搜索域和其他搜索域)而搜索查询完成项。在一个实施方案中,每个搜索域包括用于确定输入查询前缀的可能完成项的一个或多个查询完成项树。在一个实施方案中,每个搜索域返回一组得分,设备使用该组得分对这些查询完成项进行排名。例如,在一个实施方案中,每个搜索域返回一组原始、局部和全局得分,该得分可由该设备用来对不同域的不同完成项进行排名。
如上所述,传统系统将向用户返回可能的查询完成项,并且用户将针对查询搜索选择可能的查询完成项之一。相比之下,在一个实施方案中,设备不向用户返回该组查询完成项。相反,设备会对该组查询完成项进行排名,并使用该查询完成项的子组来确定该查询完成项子组的相关结果,而不向用户显示该组查询完成项,或者不获取关于使用该组查询完成项中的哪一个来确定相关结果的指示。在一个实施方案中,设备在多个搜索域 (例如,地图、媒体、维基、站点、其他搜索域或另一搜索域)上执行相关结果的搜索。该设备从多个搜索域接收一组结果,并基于从每个搜索域和跨域信息所生成的得分来对这些结果进行排名。在一个实施方案中,设备还基于用于确定这些结果的查询完成项的类型,对相关结果进行排名。例如,在一个实施方案中,如果查询完成项被表征为是对于地点的搜索,则来自地图搜索域的结果以及关于该地点的维基条目可获得更高排名。又如,如果查询完成项被指示为关于艺术家,则媒体搜索域结果可获得更高排名。该设备会将针对查询完成项而发现的相关结果返回给客户端。
在一个实施方案中,查看结果的用户可能会参与或弃用结果。在一个实施方案中,如果在用户的搜索会话期间,用户与呈现给用户的显现结果之一发生交互,则会出现参与事件。例如,在一个实施方案中,用户可以点击针对显现结果之一所呈现的链接。又如,用户可以点击该链接,并花费比预定时间更长的时间来与该链接所引用的对象(例如,网站)进行交互(例如,与所引用的对象进行交互超过60秒)。在该示例中,用户可以接收针对当前美国总统的查询搜索的结果,并且点击引用了描述总统最新演讲的网页的链接。如果用户与网站交互超过预定时间(例如,60-90 秒),则设备将确定用户参与了由该链接表示的结果。在另一个实施方案中,用户可以忽略或弃用为用户显现的结果。例如,在一个实施方案中,如果用户点击针对显现结果之一而呈现的链接,但是在预定时间(例如,小于60-90秒)内未浏览该网站,则该设备确定这是对结果的弃用事件。
在一个实施方案中,该反馈可以被合并到搜索索引中,其中反馈会影响相关结果的排名和筛选。在该实施方案中,呈现并显现相关结果的客户端另外会收集对于用户的搜索会话的参与和弃用事件。客户端将事件收集到反馈包中,并将该包发送到服务器进行处理。在一个实施方案中,服务器
接收反馈包并将反馈包转换成反馈索引条目。在一个实施方案中,反馈索引条目具有<查询,结果,显现计数,参与计数,弃用计数>的格式,其中查询是输入查询和上下文信息查询,诸如设备类型、应用程序、区域设置和地理位置;结果是显现结果;显现计数是针对该查询显现结果的次数;参与计数是该查询的结果受到参与的次数;弃用计数是结果被弃用的次数。该条目被合并到反馈搜索索引中。在一个实施方案中,反馈搜索索引是将用户反馈结合到评分结果中的搜索索引。例如,在一个实施方案中,用于查询结果对的每个参与事件会促进相应查询的结果。在该示例中,如果用户参与特定查询的结果,则未来的用户也可能针对同一查询的该结果进行参与。因此,在一个实施方案中,对于具有相同查询的未来用户而言,该查询的结果将被返回并且排名更高。相反,如果用户弃用特定查询的结果,则未来的用户也可能针对同一查询而放弃该相同的结果。因此,在一个实施方案中,对于具有相同查询的未来用户而言,该查询的结果可被返回并且排名更低。
在一个实施方案中,服务器还使用反馈搜索索引来生成将查询映射到结果的结果高速缓存。在一个实施方案中,结果高速缓存是将查询映射到结果的高速缓存,其可以用于针对用户查询快速返回结果。在一个实施方案中,结果高速缓存存储在紧邻用户设备的边缘服务器中,边缘服务器可以在执行查询搜索之前服务于一个或多个结果。在一个实施方案中,服务器通过运行来自结果的一组查询来生成结果高速缓存,该结果被设定为生成更新的结果组,其将所收集的反馈结合到更新结果组的结果中。此更新的一组结果被发送到边缘服务器。
图32_1是基于输入查询前缀来返回搜索结果的系统32_100的一个实施方案的框图。在图32_1中,系统32_100包括耦接到设备32_102、智能电话32_114和平板电脑32_116的搜索网络32_108。在一个实施方案中,搜索网络是一个或多个服务器的网络,其接收用于不同设备的查询前缀,并将查询结果返回给那些设备。例如在一个实施方案中,搜索网络从设备 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包括web浏览器32_104和文件浏览器32_106。这些浏览器中的每一个都包括由用户输入查询前缀的搜索输入字段。在一个实施方案中,web浏览器32_104是允许用户搜索和检索用于各种类型网页文档的网页的程序。在一个实施方案中,web浏览器32_104包括搜索输入字段32_128。搜索输入字段32_128由用户用于输入查询前缀字符串。在一个实施方案中,查询前缀字符串是将用于被发送到搜索网络32_108的查询前缀的一串文本或其他符号。查询前缀字符串可以是由用户输入的不完整或完整的搜索字符串。在一个实施方案中,当用户在搜索输入字段32_120A中键入查询输入字符串时,web浏览器32_104捕获该查询前缀字符串,并将该查询前缀32_110A中的查询前缀字符串发送到搜索网络。对于在搜索输入字段32_120A中输入的每个符号或文本字符串,web浏览器32_104会创建查询前缀32_110A并将其发送到搜索网络32_108。响应于接收到查询前缀32_110A,搜索网络在多个搜索域上创建一个或多个查询完成项,并且选择这些查询完成项中的一个或多个来创建返回到web浏览器32_104的一组相关结果32_112。例如,在一个实施方案中,当用户输入文本“appl”时,web浏览器32_104使用查询前缀字符串“a”、“ap”、“app”和“appl”来创建查询前缀32_110A。对于这些查询前缀32_110A中的每一个,搜索网络32_108从多个搜索域创建一组查询完成项,使用这些查询完成项来确定相关结果,并且针对不同的查询前缀32_110A返回一组不同的结果。随着用户输入后续字符而捕获查询前缀的过程也可以在文件浏览器32_106中完成。在一个实施方案中,文件浏览器32_106包括用户可用于输入查询前缀字符串的搜索输入字段32_120B。在本实施方案中,随着用户输入查询前缀字符串,文件浏览器32_106创建不同的查询前缀32_110B并将其发送到搜索网络32_108。搜索网络32_108 接收该不同的查询前缀32_110B,并确定一个或多个查询完成项,再返回相关结果,如上所述。此外,查询前缀可用于使用本地存储在设备32_106 上的数据的元数据数据库来执行查询。
在一个实施方案中,也可以在智能电话32_114和平板电脑32_116上执行随字符串的输入而捕获查询输入字符串的相同过程、确定一个或多个查询完成项的相同过程,以及使用这些查询完成项来确定相关结果的相同过程。在该实施方案中,智能电话32_114包括浏览器32_116。浏览器 32_116包括搜索输入字段32_120C。与上述内容类似,搜索输入字段32_120C由用户用于输入查询前缀字符串。该查询前缀字符串由浏览器 32_116递增地捕获,其继而创建发送到搜索网络32_108的一组不同的查询前缀32_110C。响应于接收到这些不同查询前缀32_110C中的每一个,搜索网络32_108确定一个或多个查询完成项,并且使用这些查询完成项来确定返回到浏览器32_116的相关结果32_112C。此外,平板电脑32_116包括浏览器32_118。浏览器32_118包括搜索输入字段32_120D。与上述内容类似,搜索输入字段32_120D由用户用于输入查询前缀字符串。该查询前缀字符串由浏览器32_118递增地捕获,其继而创建发送到搜索网络32_108 的一组不同的查询前缀32_110D。响应于接收到这些不同查询前缀32_110D中的每一个,搜索网络32_108确定一个或多个查询完成项,并且使用这些查询完成项来确定返回到浏览器32_118的相关结果32_112D。在一个实施方案中,搜索网络32_108包括处理查询完成项并返回相关结果的搜索模块32_118。处理查询完成项并返回相关结果将在下文的图32_2-图 32_7中进一步描述。
如上所述,设备上的浏览器向搜索网络32_108发送查询前缀 32_110A-D。在一个实施方案中,查询前缀32_110A-D包括查询前缀字符串、位置(例如,纬度/经度组合)、设备类型标识符(例如,计算机,智能电话,平板电脑等)和应用程序类型标识符(例如,web浏览器(以及什么类型的Web浏览器)、文件浏览器)和区域设置。在本实施方案中,通过提供位置、设备类型标识符、应用程序类型标识符和区域设置,将由用户输入到查询前缀字符串中的上下文提供给搜索网络32_108。在一个实施方案中,搜索网络32_108使用该上下文和查询前缀字符串来确定查询完成项和相关结果。例如,在一个实施方案中,搜索网络32_108可以使用位置信息来确定与提供查询前缀的设备的位置相关的查询完成项和结果。例如,设备位置可用于查找当前设备位置附近的地方的搜索结果。又如,在另一个实施方案中,搜索网络32_108可以使用设备类型标识符来确定针对该设备类型的完成项和结果。在该示例中,如果设备类型标识符指示查询前缀来自智能手机,则搜索网络32_108可以对用于智能电话的应用程序商店而不是用于个人计算机的应用程序商店的结果给予更大权重。在另一示例和另外的实施方案中,应用程序类型标识符和区域设置也可以用于给完成项和结果加权。
在一个实施方案中,搜索网络32_108使用多域查询完成项来完成查询前缀。在本实施方案中,搜索网络32_108将每个所接收的查询前缀发送给搜索网络32_108使用的每个搜索域。例如,在一个实施方案中,搜索网络 32_108将所接收的查询前缀发送到地图搜索域、媒体搜索域、维基搜索域、站点搜索域和其他搜索域。这些搜索域中的每一个将基于该搜索域中包含的数据确定该查询前缀的一个或多个查询完成项。此外,每个搜索域将返回一个或多个查询完成项的一组得分。例如,在一个实施方案中,搜索域将针对每个查询完成项返回原始、局部和/或全局得分。在图3-图6中进一步描述了执行多域查询完成项。
搜索网络32_108使用查询完成项中的一个或多个来确定多个搜索域上的一组相关查询结果,而不是将搜索网络32_108所确定的查询完成项返回给提供查询前缀的设备。在一个实施方案中,使用查询完成来确定一组相关查询结果是在没有来自用户的指示的情况下执行的,该指示为使用这些查询完成项中的哪一个来确定相关结果。在本实施方案中,当用户将字符串输入到搜索输入字段时,搜索网络32_108处理该字符串并将相关结果返回给用户。在一个实施方案中,搜索网络32_108使用所确定的查询完成项中的一个或多个来查找那些查询完成项的查询结果并将其排名。在一个实施方案中,搜索网络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。在一个实施方案中,如果查询前缀字符串具有最小字符数(例如,四个字符),则过程 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可以是维基百科(WIKIPEDIA)。在一个实施方案中,站点搜索域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_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还可以基于一组规则来筛选可能的查询完成项。例如,在一个实施方案中,筛选器规则可以是,过程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对每个结果应用查询应有的新鲜度。在一个实施方案中,查询应有的新鲜度意指,如果针对该结果的计数数量最近存在尖峰或峰值,则该结果是“新鲜”结果,其可以得到提升。其计数随时间而在基线附近波动的结果不是“新鲜”的结果,并且不会得到提升。在一个实施方案中,该计数基于对社交媒体馈送(例如,Twitter等)的分析。
例如,在一个实施方案中,如果查询完成项是“初恋”,且返回了四个结果:(1)来自媒体搜索领域的歌曲“初恋”;(2)来自地图搜索域的名为“初恋之人”的商家;(3)讲初恋广告的一篇新闻文章;和(4)维基条目“初恋”。在该实施方案中,基于搜索域依赖性量度,每个结果具有如下初始得分:来自媒体搜索领域的{年代,评级,和原始得分};来自地图搜索域的{与用户的距离、具有URL、评论数、平均评论}从;来自新闻域的 {年代,新闻得分,引用计数},和维基搜索域的{网页排名,原始得分}。每个搜索域都向过程32_700提供其本身的得分。在该示例中,每个结果的得分最初可以排名为,维基结果>媒体结果>新闻结果>地图结果。过程 32_700还将信号域应用于每个结果。在该示例中,查询“初恋”被表征为一首歌,也可能是一个地点。应用此表征可以提升媒体存储结果,并在较小程度上提升映射结果。在应用了表征提升后,结果评分可排名为:维基结果>媒体结果(但得分更接近)>地图结果>新闻结果。此外,过程 32_700将查询应有的提升应用于结果。例如,因为“初恋”商业广告初次播放已有两天,所以该商业广告的计数有所增加。因此,“初恋”结果会获得查询应有的新鲜度提升。在该示例中,新闻结果“初恋”将得到很大的提升,所以结果将排名为:新闻结果>维基结果>媒体结果>地图结果。
在一个实施方案中,过程32_700另外会筛选搜索结果。在该实施方案中,过程32_700基于某些规则而移除结果。例如在一个实施方案中,过程32_700可以移除低于某个整体得分的结果。另选地,过程32_700可以基于另一个标准(例如,文本与查询匹配不佳、点击率低、流行度低、具有直白内容和/或亵渎性的结果,和/或其组合)来筛选结果。在框32_710处,过程32_700将经排名、筛选的结果返回给用户。
图32_8是将用户反馈并入到搜索索引中的系统32_800的框图。在图 32_8中,系统32_800包括设备32_802,该设备向边缘服务器32_804发送查询前缀32_828,边缘服务器又将查询结果32_830返回给该设备。另外,边缘服务器32_804耦接到核心服务器32_816。在一个实施方案中,设备 32_802随着用户输入查询前缀而将查询前缀32_828发送到边缘服务器。例如,在一个实施方案中,如果用户键入查询前缀“apple”,则会随着用户输入每个字符针对“a”、“ap”、“app”、“appl”和“apple”生成查询前缀,并将其发送到边缘服务器32_804。此外,对于发送到边缘服务器 32_804的每个查询前缀32_828,边缘服务器32_804向客户端返回相关结果32_830。例如,在一个实施方案中,随着用户输入每个字符,边缘服务器将返回用于查询前缀32_828“a”、“ap”、“app”、“appl”和“apple”的相关结果。在一个实施方案中,边缘服务器还可以执行查询完成项。在一个实施方案中,设备32_802还收集关于用户的搜索会话的反馈,将该反馈收集到反馈包32_832中,并将反馈包发送到边缘服务器。收集并发送反馈进一步描述于下文的图32_10中。在一个实施方案中,设备 32_802包括收集并发送反馈的收集反馈模块32_838。
在一个实施方案中,边缘服务器32_804包括反馈模块32_806,其进一步包括反馈搜索模块32_808和反馈收集模块32_810。在一个实施方案中,反馈搜索模块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记录用户是否参与替换搜索选项。
在一个实施方案中,如果用户与呈现给用户的显现结果之一发生交互,则会出现参与事件。例如,在一个实施方案中,用户可以点击针对显现结果之一所呈现的链接。又如,用户可以点击该链接,并花费比预定时间更长的时间来与该链接所引用的对象(例如,网站)进行交互(例如,与所引用的对象进行交互超过60秒)。在该示例中,用户可以接收针对当前美国总统的查询搜索的结果,并且点击引用了描述总统最新演讲的网页的链接。如果用户与网站交互超过预定时间(例如,60-90秒),则过程 32_900将确定用户参与了由该链接表示的结果。因此,这将是此结果的参与事件。在一个实施方案中,悬停在链接上方可以被记录为参与。在另一个实施方案中,用户也可以观察所显示的结果一段时间。在本实施方案中,根据结果的类型以及该时间段之后的动作,原本记录为弃用的动作可以被记录为参与,反之亦然。例如,在一个实施方案中,如果用户查询“中国人口”并得到显示结果,并且用户在删除查询之前停顿了10秒钟,则该事件可以被记录为参与而不是弃用事件。
在另一个实施方案中,用户可以忽略或弃用为用户显现的结果。例如,在一个实施方案中,如果用户点击针对显现结果之一而呈现的链接,但是在预定时间(例如,小于60-90秒)内未浏览该网站,则过程32_900 确定这是对结果的弃用事件。在一个实施方案中,存在其他类型的弃用事件:继续键入更多的字符(扩展查询前缀);点选到另一窗口或应用程序;删除查询;退格一个或多个字符或以其他方式编辑查询;参与除了作为结果而呈现的内容以外的任何事情都可以被记录为弃用该结果。在一个实施方案中,用户的动作随用户花费的时间间隔一起被记录,这可以将对弃用的解读改变为对参与的解读,或反之亦然。
在一个实施方案中,用户的搜索会话可以在预定时间之后结束,无论是在用户会话时长期间、在不活动时间还是在某个其他度量下均如此。响应于搜索会话结束,过程32_900将针对该搜索会话而收集的事件组装成发送到搜索网络的反馈包。收集反馈进一步描述于下文的图32_10中。
在框32_904处,过程32_900处理包括在反馈包中的所接收的反馈。在一个实施方案中,过程32_900将所接收的反馈包转换成用于反馈搜索索引的条目。在一个实施方案中,反馈搜索索引是将用户反馈结合到评分结果中的搜索索引。例如,在一个实施方案中,用于(查询,结果)对的每个参与事件会促进相应查询的结果。在该示例中,如果用户参与特定查询的结果,则未来的用户也可能针对同一查询的该结果进行参与。因此,在一个实施方案中,对于具有相同查询的未来用户而言,该查询的结果将被返回并且排名更高。相反,如果用户弃用特定查询的结果,则未来的用户也可能针对同一查询而放弃该相同的结果。因此,在一个实施方案中,对于具有相同查询的未来用户而言,该查询的结果可被返回并且排名更低。
在一个实施方案中,过程32_900将所接收的反馈包转换成反馈搜索索引条目,该条目具有<查询,结果,显现计数,参与计数,弃用计数>的格式,其中查询是输入查询和上下文信息查询,诸如设备类型、应用程序、区域设置和地理位置;结果是显现结果;显现计数是针对该查询显现结果的次数;参与计数是该查询的结果受到参与的次数;弃用计数是结果被弃用的次数。在一个实施方案中,过程32_900在反馈搜索索引中更新该反馈索引条目。在另一实施方案中,每个反馈包还包括唯一的源标识符,其可以包括用户标识符、设备标识符或会话标识符,且具有或不具有模糊身份以保护隐私的方法,其中更新反馈索引条目附加到引用索引表中的索引,唯一源标识符是反馈引用的来源。然后可以查询反馈索引,以提供针对个人用户或用户组而个人化或定制的结果和权重。处理所接收的反馈进一步描述于下文的图32_11中。
过程32_900在框32_906处更新结果高速缓存。在一个实施方案中,结果高速缓存是将查询映射到结果的高速缓存,其可以用于针对用户查询快速返回结果。在一个实施方案中,结果高速缓存存储在紧邻用户设备的边缘服务器(例如,在地理上比其他边缘服务器更靠近客户端的边缘服务器)中,该边缘服务器可以在执行查询搜索之前服务于一个或多个结果。在一个实施方案中,过程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处记录参与事件。在一个实施方案中,参与事件是,如果用户与呈现给用户的显现结果之一发生交互则会出现的事件。例如,在一个实施方案中,用户可以点击针对显现结果之一所呈现的链接。又如,用户可以点击该链接,并花费比预定时间更长的时间来与该链接所引用的对象 (例如,网站)进行交互(例如,与所引用的对象进行交互超过60秒)。在该示例中,用户可以接收针对当前美国总统的查询搜索的结果,并且点击引用了描述总统最新演讲的网页的链接。如果用户与网站交互超过预定时间(例如,60-90秒),则过程32_1000将确定用户参与了由该链接表示的结果。因此,这将是此结果的参与事件。
在另一实施方案中,过程32_1000可以记录弃用事件,其中弃用事件是用户可以忽略或弃用为用户显现的结果的事件。例如,在一个实施方案中,如果用户点击针对显现结果之一而呈现的链接,但是在预定时间(例如,小于60-90秒)内未浏览该网站,则过程32_900确定这是对结果的弃用事件。在一个实施方案中,用户通过关闭呈现网站的标签或窗口、点选另一应用程序,或指示用户未与所呈现的网站进行交互的某些其他动作来导航离开。
在框32_1006处,过程32_1000从用户搜索会话的所记录事件创建反馈包。在一个实施方案中,用户搜索会话基于下述预定时间而结束:自初始搜索会话事件(例如,15分钟)起的预定时间,或者可以是用户相对于用户搜索会话不活动的预定时间。例如,在一个实施方案中,如果用户在预定时间量(例如,10分钟)内没有活动或者没有与结果或由结果之一所引用的其他类型的对象进行交互,则用户搜索会话将结束。在一个实施方案中,响应于用户搜索会话的结束,过程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将反馈包转换成一个或多个反馈索引条目。在一个实施方案中,反馈索引条目是针对特定查询结果对所记录的事件数量。例如在一个实施方案中,反馈索引条目包括<查询,结果,显现计数,参与计数,弃用计数>,其中查询是输入查询和上下文信息查询,诸如设备类型、应用程序、区域设置和地理位置;结果是显现结果;显现计数是针对该查询显现结果的次数;参与计数是该查询的结果受到参与的次数;弃用计数是结果被弃用的次数。
在框32_1106处,过程32_1100将反馈索引条目插入到反馈索引中。在一个实施方案中,反馈索引是将用户反馈结合到搜索索引中的搜索索引。在一个实施方案中,反馈索引是引用指数,其中参与事件是对结果的肯定引用,而弃用事件是针对该结果的否定引用。在一个实施方案中,引用搜索索引在2009年12月1日提交的标题为“Ranking and SelectingEntities Based on Calculated Reputation or Influence Scores”的美国专利申请No.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具有32_100个参与事件和2个弃用事件,R3具有50个参与事件和10个弃用事件,则针对更新的反馈索引运行查询Q可以返回经排名的结果R2,R3和R1。因此,在一个实施方案中,使用反馈索引将改变更新的结果集RS'中的结果排名。在另一个实施方案中,相关结果筛选器可以具有这样的规则:对于要呈现的结果,结果可需要至少x个参与事件或不超过y个弃用事件。因此,在本实施方案中,使用反馈索引可以改变呈现哪些结果与不呈现哪些结果的情况。过程 32_1200在框32_1208处将更新的结果集RS'发送到每个边缘服务器。在一个实施方案中,过程32_1200将更新的结果集RS'从核心服务器32_816发送到边缘服务器32_804,如上文的图32_8中所述。
图32_13是使用表征查询完成项来执行多域搜索的联合器32_824的一个实施方案的框图。在一个实施方案中,联合器包括完成项模块32_1304、混合器/排名器32_1306、多个搜索域32_1308A-F和词汇服务32_1314。在一个实施方案中,完成项模块32_1304确定用于每个查询前缀的查询完成项,如图32_6中所述。所确定的查询完成项将被转发到混合器/排名器 32_1306,其使用查询完成项来执行针对使用搜索域32_1308A-F的相关结果的多域搜索,如上文在图32_7中所述。在一个实施方案中,搜索域 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_1306所访问的一组其他搜索域,如上文在图32_3中所述。其他搜索域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_1400,以使用用于查询完成项的词汇服务来确定相关结果,如上文在图32_13中所述。在图32_14中,过程32_1400始于在框 32_1402处接收查询完成项。在一个实施方案中,所接收的查询完成项是由过程32_600响应于接收到查询前缀而确定的完成项。在一个实施方案中,过程32_1400在一个并行流中执行框32_1404和框32_1408,并在另一个并行流中执行框32_1406和框32_1410。在框32_1404处,过程32_1400将查询完成项发送到不同的搜索域,以确定可能的相关结果。在一个实施方案中,每个搜索域使用所接收的查询完成项来确定该搜索域的相关结果。在一个实施方案中,多个搜索域并行处理每个查询完成项。过程32_1400将查询完成项发送到词汇服务,以表征每个完成项。在一个实施方案中,词汇服务通过确定查询完成项是否为关于人、地点、事物或另一类型信息的查询,来表征每个查询完成项。在下面的图32_15中进一步描述了对查询完成项的表征。过程32_1400在框32_1408处从多个搜索域接收搜索结果。在一个实施方案中,每个搜索结果包括表征来自相应搜索域的结果的一组得分。
在框32_1410处,处理32_1400接收到表征查询完成项的词汇搜索结果。在一个实施方案中,查询完成项的表征指示了每个查询完成项正在搜索的信息类型。例如,在一个实施方案中,查询完成项是关于人、地点、事物或其他类型信息的查询。在一个实施方案中,两个并行流在框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在知识库中确定该符号化完成项的匹配项。在一个实施方案中,知识库是映射到某一类别的单词或短语的数据库。例如,在一个实施方案中,知识库可以包括如下条目,诸如{艾菲尔铁塔→地点},{Michael Jackson(迈克尔·杰克逊)→艺术家},{BO→总统},{黑寡妇→蜘蛛}等。在一个实施方案中,知识库是使用本体来构建的。在一个实施方案中,过程32_1500使用术语频率匹配算法在知识库中确定查询完成项的匹配项。例如,在一个实施方案中,如果查询完成项是“谁是MichaelJackson?”,则过程32_1500可以就术语“Michael”、“Jackson”或“Michael·Jackson”进行匹配。在该示例中,过程32_1500将尝试找到知识数据库中最长的匹配项。如果知识库具有用于“Michael”、“Jackson”和“Michael·Jackson”的匹配项,那么用于“Michael·Jackson”的匹配项将得到使用。如果存在用于一个或多个查询完成项的匹配项,则过程32_1500会在框32_1508处返回匹配项(一个或多个)。例如,在一个实施方案中,针对查询完成项“谁是Michael Jackson?”,过程32_150可以返回“人”、“艺术家”或另一种类型的表征。如果不存在匹配项,则过程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处所述。
在一些实施方案中,设备100(上文参考图1A所述)用于实现本节中描述的技术。
用于搜索技术的示例性设备、方法和计算机可读介质
在一个方面,本文描述了执行多域查询搜索的方法和设备装置。在示例性实施方案中,设备从用户的客户端接收查询前缀。该设备还确定了跨多个独立搜索域的多个搜索完成项。另外,该设备基于针对由对应搜索域确定的多个搜索完成项中的每一个所计算的得分,来对多个搜索完成项进行排名,其中所述多个搜索完成项中的至少一个用于在不具有来自用户的指示的情况下,响应于接收到查询前缀生成多个搜索结果。
在一些实施方案中,提供了一种具有可执行指令的非暂态机器可读介质,这些可执行指令使得一个或多个处理单元执行一种使用多个独立搜索域上的查询前缀来生成多个排名完成项的方法,该方法包括:从用户的客户端接收查询前缀;确定跨多个独立搜索域的多个搜索完成项;以及基于针对由对应搜索域确定的多个搜索完成项中的每一个所计算的得分,来对多个搜索完成项进行排名,其中所述多个搜索完成项中的至少一个用于在不具有来自用户的指示的情况下,响应于接收到查询前缀生成多个搜索结果。
在一些实施方案中,该方法包括:对所述多个搜索完成项进行筛选。在一些实施方案中,所述多个独立搜索域中的每一个选自地图搜索域、媒体商店搜索域、在线百科全书搜索域和站点搜索域。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的原始得分,其为已经接收到该搜索完成项的次数的频率。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的本地得分,其基于该搜索完成项原始得分以及使用该搜索完成项作为前缀的其他许多可能的搜索完成项。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的全局得分,其基于该搜索完成项原始得分以及该搜索域中的其他许多可能的搜索完成项。在一些实施方案中,查询前缀包括输入字符串和上下文,并且输入字符串由用户输入。在一些实施方案中,上下文包括位置、设备类型、应用程序标识符和区域设置。
在一些实施方案中,提供了一种使用多个独立搜索域上的查询前缀来生成多个排名完成项的方法,该方法包括:从用户的客户端接收查询前缀;确定跨多个独立搜索域的多个搜索完成项;以及基于针对由对应搜索域确定的多个搜索完成项中的每一个所计算的得分,来对多个搜索完成项进行排名,其中所述多个搜索完成项中的至少一个用于在不具有来自用户的指示的情况下,响应于接收到查询前缀生成多个搜索结果。在一些实施方案中,该方法包括:对所述多个搜索完成项进行筛选。在一些实施方案中,所述多个独立搜索域中的每一个选自地图搜索域、媒体商店搜索域、在线百科全书搜索域和站点搜索域。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的原始得分,其为已经接收到该搜索完成项的次数的频率。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的本地得分,其基于该搜索完成项原始得分以及使用该搜索完成项作为前缀的其他许多可能的搜索完成项。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的全局得分,其基于该搜索完成项原始得分以及该搜索域中的其他许多可能的搜索完成项。在一些实施方案中,查询前缀包括输入字符串和上下文,并且输入字符串由用户输入。在一些实施方案中,上下文包括位置、设备类型、应用程序标识符和区域设置。
在一些实施方案中,提供了一种使用多个独立搜索域上的查询前缀来生成多个排名完成项的设备,该设备包括:处理器;通过总线耦接到处理器的存储器;以及通过处理器从存储器执行的进程,该进程使得处理器从用户的客户端接收查询前缀,确定跨多个独立搜索域的多个搜索完成项,以及基于针对由对应搜索域确定的多个搜索完成项中的每一个所计算的得分,来对多个搜索完成项进行排名,其中所述多个搜索完成项中的至少一个用于在不具有来自用户的指示的情况下,响应于接收到查询前缀生成多个搜索结果。在一些实施方案中,该进程还使得处理器对所述多个搜索完成项进行筛选。在一些实施方案中,所述多个独立搜索域中的每一个选自地图搜索域、媒体商店搜索域、在线百科全书搜索域和站点搜索域。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的原始得分,其为已经接收到该搜索完成项的次数的频率。
在另一方面,提供一种使用来自用户搜索会话的反馈来生成结果高速缓存的方法和装置。在该实施方案中,设备从客户端接收反馈包,其中该反馈包用响应于用户输入的查询前缀而呈现给用户的搜索会话中的多个查询结果来表征用户交互。该设备还通过使用搜索反馈索引运行所述多个查询以得到多个结果,来针对所述多个查询生成多个结果。另外,该设备从所述多个结果创建结果高速缓存,其中结果高速缓存将所述多个结果映射到所述多个查询,并且该结果高速缓存用于向客户端提供查询结果。
在一些实施方案中,提供了一种具有可执行指令的非暂态机器可读介质,这些可执行指令使得一个或多个处理单元执行一种使用来自搜索会话的反馈来生成结果高速缓存的方法,该方法包括:从客户端接收反馈包,其中该反馈包用响应于用户输入的查询前缀而呈现给用户的搜索会话中的多个查询结果来表征用户交互;使用反馈包在搜索反馈索引中添加条目;通过使用搜索反馈索引运行所述多个查询以得到多个结果,来针对所述多个查询生成多个结果;以及从所述多个结果创建结果高速缓存,其中结果高速缓存将所述多个结果映射到所述多个查询,并且该结果高速缓存用于向客户端提供查询结果。在一些实施方案中,反馈包包括查询前缀、所述多个查询结果以及在用户交互期间记录的多个事件。在一些实施方案中,所述多个事件包括显现事件,其为向用户显示来自查询前缀的结果的事件。在一些实施方案中,所述多个事件包括针对查询结果中的一个的参与事件,其为指示用户已经参与该查询结果的事件。在一些实施方案中,针对该查询结果的参与事件是针对查询结果链接的点击。在一些实施方案中,所述多个事件包括针对查询结果中的一个的弃用事件,其为指示用户放弃该查询结果的事件。在一些实施方案中,结果高速缓存是由客户端用于针对查询请求返回查询结果的高速缓存。在一些实施方案中,反馈索引条目包括查询前缀、用于查询前缀的结果,以及用于该结果的一组事件。
在一些实施方案中,提供了一种使用来自搜索会话的反馈来生成结果高速缓存的方法,该方法包括:从客户端接收反馈包,其中该反馈包用响应于用户输入的查询前缀而呈现给用户的搜索会话中的多个查询结果来表征用户交互;使用反馈包在搜索反馈索引中添加条目;通过使用搜索反馈索引运行所述多个查询以得到多个结果,来针对所述多个查询生成多个结果;以及从所述多个结果创建结果高速缓存,其中结果高速缓存将所述多个结果映射到所述多个查询,并且该结果高速缓存用于向客户端提供查询结果。在一些实施方案中,反馈包包括查询前缀、所述多个查询结果以及在用户交互期间记录的多个事件。在一些实施方案中,所述多个事件包括渲染(render)事件,其为向用户显示来自查询前缀的结果的事件。在一些实施方案中,所述多个事件包括针对查询结果中的一个的参与事件,其为指示用户已经参与该查询结果的事件。在一些实施方案中,针对该查询结果的参与事件是针对查询结果链接的点击。在一些实施方案中,所述多个事件包括针对查询结果中的一个的弃用事件,其为指示用户放弃该查询结果的事件。在一些实施方案中,结果高速缓存是由客户端用于针对查询请求返回查询结果的高速缓存。在一些实施方案中,反馈索引条目包括查询前缀、用于查询前缀的结果,以及用于该结果的一组事件。
在一些实施方案中,提供了一种使用来自搜索会话的反馈来生成结果高速缓存的设备,该设备包括:该设备包括:处理器;通过总线耦接到处理器的存储器;以及通过处理器从存储器执行的进程,该进程使得处理器使用反馈包在搜索反馈索引中添加条目,通过使用搜索反馈索引运行所述多个查询以得到多个结果,来针对所述多个查询生成多个结果,以及从所述多个结果创建结果高速缓存,其中结果高速缓存将所述多个结果映射到所述多个查询,并且该结果高速缓存用于向客户端提供查询结果。在一些实施方案中,反馈包包括查询前缀、所述多个查询结果以及在用户交互期间记录的多个事件。在一些实施方案中,所述多个事件包括渲染(render)事件,其为向用户显示来自查询前缀的结果的事件。在一些实施方案中,所述多个事件包括针对查询结果中的一个的参与事件,其为指示用户已经参与该查询结果的事件。
在另一方面,提供了一种从多个独立搜索域上的查询来生成多个经排名的查询结果的方法和装置。在该实施方案中,设备接收查询并且使用该查询来确定跨多个独立搜索域的多个结果。该设备还表征该查询。此外,设备基于针对由相应搜索域和查询表征所确定的所述多个结果中的每个结果所计算的得分,来对所述多个结果进行排名,其中该查询表征指示了查询类型。
在一些实施方案中,提供了一种具有可执行指令的非暂态机器可读介质,这些可执行指令使得一个或多个处理单元执行一种从多个独立搜索域上的查询来生成多个经排名的查询结果的方法,该方法包括:接收查询;使用该查询来确定跨多个独立搜索域的多个结果;表征该查询;基于针对由相应搜索域和查询表征所确定的所述多个结果中的每个结果所计算的得分,来对所述多个查询结果进行排名,其中该查询表征指示了查询类型。在一些实施方案中,查询类型选自人、地点和事物。在一些实施方案中,该方法包括:对所述多个搜索结果进行筛选。在一些实施方案中,所述多个独立搜索域中的每一个选自地图搜索域、媒体商店搜索域、在线百科全书搜索域和站点搜索域。在一些实施方案中,表征查询包括:对查询进行符号化;并在知识库中找到该符号化查询的匹配项。在一些实施方案中,找到匹配项包括:在查询中的符号间找到最长匹配项。在一些实施方案中,对查询进行符号化包括:将查询分离成符号。根据一些实施方案,针对由字词和短语组成的组来选择该符号。在一些实施方案中,查询是在没有来自用户关于要使用哪个查询完成项的指示的情况下,从查询前缀完成的查询完成项。
在一些实施方案中,提供了一种从多个独立搜索域上的查询来生成多个经排名的查询结果的方法,该方法包括:接收查询;使用该查询来确定跨多个独立搜索域的多个结果;表征该查询;基于针对由相应搜索域和查询表征所确定的所述多个结果中的每个结果所计算的得分,来对所述多个查询结果进行排名,其中该查询表征指示了查询类型。在一些实施方案中,查询类型选自人、地点和事物。在一些实施方案中,该方法包括:对所述多个搜索结果进行筛选。在一些实施方案中,所述多个独立搜索域中的每一个选自地图搜索域、媒体商店搜索域、在线百科全书搜索域和站点搜索域。在一些实施方案中,表征查询包括:对查询进行符号化;并在知识库中找到该符号化查询的匹配项。在一些实施方案中,找到匹配项包括:在查询中的符号间找到最长匹配项。在一些实施方案中,对查询进行符号化包括:将查询分离成符号。在一些实施方案中,查询是在没有来自用户关于要使用哪个查询完成项的指示的情况下,从查询前缀完成的查询完成项。
在一些实施方案中,提供了一种从多个独立搜索域上的查询来生成多个经排名的查询结果的设备,该设备包括:处理器;通过总线耦接到处理器的存储器;以及通过处理器从存储器执行的进程,该进程使得处理器接收查询,使用该查询来确定跨多个独立搜索域的多个结果,表征该查询,基于针对由相应搜索域和查询表征所确定的所述多个结果中的每个结果所计算的得分,来对所述多个查询结果进行排名,其中该查询表征指示了查询类型。在一些实施方案中,查询类型选自人、地点和事物。在一些实施方案中,该进程还使得处理器对所述多个搜索结果进行筛选。
第3部分:多域搜索技术
本部分中的内容“多域搜索技术”根据一些实施方案来描述了在计算设备上进行多域搜索的操作,并且提供补充本文提供的公开内容的信息。例如,本部分的一些部分描述了利用计算机设备上的本地学习来改善从一个或多个域所获得的搜索结果,这补充了本文提供的公开内容,例如与图 4A-4B、图5相关的那些公开内容,以及与识别并使用用户行为模式相关的公开内容。在一些实施方案中,本部分中的具体内容用于帮助改进在搜索界面中呈现的搜索结果(例如,如上文参考方法600,800,1000和1200所讨论的)。
多域搜索技术简介
描述了下述内容的实施方案:利用在用户的计算设备上本地学习的查询和结果特征,来改善从私人信息的本地数据库返回给用户的搜索结果,以及从一个或多个搜索域返回的结果。在一个实施方案中,一个或多个搜索域可以向计算设备通知与搜索查询相关的一个或多个特征,计算设备可以将本地学习应用于这一个或多个特征上。
在一个实施方案中,计算设备可以使用从计算设备获得的信息,来学习与搜索查询相关的一个或多个特征。从计算设备获得的信息和由计算设备获得的信息可以在计算设备上本地使用,以训练机器学习算法来学习与搜索查询相关的特征,或与从搜索查询返回的结果相关的特征。该功能可被发送到远程搜索引擎,以便针对查询返回更为相关的个性化结果,而不侵犯设备用户的隐私。在一个实施方案中,该特征用于扩展查询。在一个实施方案中,该特征用于使查询发生偏向。该功能也可用于筛选从搜索查询返回的结果。从查询返回的结果可以是本地结果、远程搜索引擎结果,或两者兼而有之。
在一个示例中,计算设备的用户可以订阅将关于体育比分的每日信息推送到计算设备的新闻或RSS供稿。该新闻或RSS供稿所知的关于订阅用户的唯一信息是该用户对体育比分感兴趣。用户可以使用计算设备上的本地查询界面从RSS供稿查询由计算设备接收的针对“足球比分”的信息。对于
美国用户来说,足球是指美式橄榄球,例如,由达拉斯牛仔队所踢的橄榄球。对于欧洲或南美的用户来说,足球常常是指美国人所称的英式足球。因此,就查询词“足球”而言的“英式足球”与“美式足球”的区别,可以是与计算设备要训练的搜索查询相关的特征。如果计算设备的用户与足球比分的本地结果进行交互,则新闻或RSS供稿的本地预测器可以知道,当该设备的用户查询足球比分时,该用户意指英式足球比分。
在一个实施方案中,远程搜索引擎可以学习特征“美式足球与英式足球”。但是,尽管远程搜索引擎可以学习到美式橄榄球和英式足球之间存在明显区别,但是远程搜索引擎并不知道特定用户对足球比分的查询是对美式橄榄球结果感兴趣还是对英式足球结果感兴趣。一旦远程搜索引擎学习到这一区别,在远程搜索服务下一次接收到关于足球比分的查询时,远程搜索引擎就可以返回美式橄榄球比分和英式足球比分,并且还向查询计算设备发送一个特征,来就该特征进行训练,使得计算设备可以学习到计算设备的特定用户是对美式橄榄球比分感兴趣还是对英式足球比分感兴趣。
在一个实施方案中,在本地客户端利用计算设备私有信息学习到该特征之后,在计算设备的用户下一次查询用于足球比分的远程搜索服务时,计算设备可以与查询一起向远程搜索服务发送对特征的偏向。例如,该偏向可以指示这个特定用户是否对美式橄榄球感兴趣还是对英式足球感兴趣。
在一个实施方案中,计算设备可以使用如下统计分析方法之一来学习该特征:线性回归、贝叶斯分类或朴素贝叶斯分类。
一些实施方案包括环境中的一个或多个应用编程接口(AP1),其中调用程序代码与通过一个或多个接口而受调用的其他程序代码进行交互。各种功能调用、消息或其他类型的调用还可包括各种参数,这些调用可以经由调用程序和被调用代码之间的APl而传输。此外,API可以给调用程序代码提供使用在API中定义的、并在被调用程序代码中实现的数据类型或类别的能力。
至少某些实施方案包括这样的环境:其中调用软件组件通过APL与被调用软件组件进行交互。用于在该环境中通过API进行操作的方法包括,经由APL传送一个或多个函数调用、消息、其他类型的调用或参数
通过附图并且通过详细描述,其他特征和好处将显而易见。
多域搜索技术的详细描述
在以下对实施方案的详细描述中将引用附图,附图中类似的附图标记表示相似的元素,并且其中以示例方式示出了可实践的具体实施方案。这些实施方案被足够详细地描述以允许本领域的技术人员实践本发明,并且应当理解,可使用其他实施例,并可在不脱离本公开内容的范围的情况下进行逻辑修改、机械修改、电气修改、功能修改和其他修改。因此,下面的详细描述不应该被理解为限制性的意义,并且本发明的范围仅由所附权利要求书所限定。
描述了下述内容的实施方案:使用计算设备上的本地可用信息来学习查询和结果特征,其改善用于计算设备用户的本地和远程搜索结果,而不向远程搜索引擎公开关于用户的私人信息。
图33_1示出了如本领域中所公知的计算设备33_100上的本地搜索子系统33_130和远程搜索子系统33_135的框图。本地搜索子系统33_130可以包括彼此通信的本地搜索界面33_110和可搜索信息的本地数据库 33_111。
本地数据库33_111索引计算设备33_100上的本地信息,用于使用本地搜索界面33_110进行搜索。本地信息对于计算设备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_130,该系统具有本地学习系统33_116,其可用于改善从本地搜索和远程搜索引擎33_150的搜索所返回的搜索结果,而不暴露私人信息。在一个实施方案中,可以重置本地学习系统33_116,使得学习被刷新。
本地搜索子系统33_130可以包括关于计算设备33_100上的应用程序 33_112和数据33_113的数据和元数据的本地搜索界面33_110和本地数据库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_7将查询传递到远程查询服务33_121,以获得来自远程搜索引擎33_150的查询结果。在一个实施方案中,远程查询服务33_121可经由通信接口33_8接收由本地学习系统33_116所学习的查询特征。该特征可以用于扩展查询和/或将查询特征偏向远程搜索引擎33_150。在一个实施方案中,远程查询服务33_121可以经由通信接口33_8将从远程搜索引擎 33_150返回的查询特征传递到本地学习系统33_116,以对该特征进行训练。
本地搜索和反馈历史33_115可以存储使用本地查询界面33_110发出的所有搜索查询的历史记录,包括经由通信接口33_7发送到远程查询服务33_121的查询。本地搜索和反馈历史33_115还可以存储与从查询所返回的本地和远程结果相关联的用户反馈。反馈可以包括对于如下内容的指示:用户是否例如通过点击结果而参与该结果;用户观看结果所花的时间;该结果是用户与之交互的第一个结果还是其他序数值;该结果是否是用户与之交互的唯一结果;以及是否用户未与结果进行交互,即弃用该结果。可将用户反馈编码,并与生成结果(针对该结果获得反馈)的查询一并存储。在一个实施方案中,本地搜索和反馈历史33_115可以存储对查询所返回的一个或多个结果的引用。存储在本地搜索和反馈历史33_115中的信息被认为是私人用户信息,并且不能被远程搜索子系统33_135使用或访问。在一个实施方案中,可以刷新本地搜索和反馈历史33_115。在一个实施方案中,可以淘汰本地搜索和反馈历史33_115。可对淘汰时间进行分析,以使得比起未显示出稳定趋势的搜索和反馈历史而言,稳定的长期趋势被保持更长时间。
本地学习系统33_116可以分析本地搜索和反馈历史33_115,以识别本地学习系统33_116可以训练的特征。一旦特征受到识别,本地学习系统 33_116就可以生成本地预测器来训练该特征。在一个实施方案中,预测器是对一个或多个数据进行操作的软件组件的实例。在一个实施方案中,本地预测器可以使用统计分类方法进行训练,诸如回归、贝叶斯或朴素贝叶斯。在一个实施方案中,预测器可以特定于特定类别的结果。下文相对于图33_4的操作33_420更详细地对类别进行了讨论:在本地设备上就那些混合、排名和呈现结果。
计算设备33_100还可以包括远程搜索子系统33_135,其包括远程搜索界面33_120和远程查询服务33_121。远程搜索界面33_120可以包括 Web浏览器,诸如查询服务33_121 可以先对查询执行中间处理,再经由网络33_140将查询传递到网络服务 33_122,继而传递到远程搜索引擎33_150。网络服务33_122通行证可以从远程搜索引擎33_150接收结果,用以在远程查询界面33_120上或在本地搜索界面33_110上显示。远程查询服务33_121可以经由通信接口33_4通信地耦接到网络服务33_122。
网络33_140可以包括互联网、802.11有线或无线网络、蜂窝网络、局域网或这些网络的任何组合。
接口33_1-33_8可以使用进程间通信、共享存储器、套接字或应用编程接口(API)来实现。下文参考图33_7更详细地描述了API。
图33_3以框图形式示出了方法33_300,该方法利用本地搜索查询、本地搜索结果以及基于本地搜索结果的本地反馈和搜索历史33_115来在本地学习查询和结果特征。
在操作33_305中,用户可以使用本地查询界面33_110来发出查询。
在操作33_310中,本地查询可以存储在本地搜索历史和反馈历史 33_115中。
在操作33_315中,可以将本地结果从本地数据库33_111返回到本地搜索界面33_110,以供向用户显示。本地数据库33_111索引由一个或多个应用程序33_112生成或处理的数据和元数据33_112,诸如文档、图像、音乐、音频、视频、计算器结果、联系人、查询、文件名、文件元数据,以及由应用程序33_112生成或与数据33_113相关联的其他数据。在一个实施方案中,本地数据库可能不会将任何本地结果返回至用于一个或多个应用程序33_112的查询。例如,如果在操作33_305中将“ham”的查询输入到本地搜索界面33_110中,则本地数据库33_111可以从词典应用程序 33_112、从包含字词“ham”的文档33_113、从具有字词“ham”的联系人 (诸如“Cunningham”)返回结果,但不返回计算器应用程序33_112的结果,这是因为计算器应用程序没有与“ham”相关的数据或元数据 33_113。然而,如果在操作33_305中在本地搜索界面33_110中输入对“Pi”的查询,则本地数据库33_111可以返回与计算器应用程序33_112 相关的结果,诸如“3.141592654”、希腊符号“π”或利用到Pi值的公式,例如圆的圆长或面积公式,或者球体或圆柱体的体积公式。类似地,如果在操作33_305中在本地搜索界面33_110中输入了针对“Lake Tahoe pictures(太浩湖图片)”的查询,则本地数据库33_111可以返回太浩湖图片的结果,该图片可由相机应用程序33_112生成、从电子邮件应用程序 33_112和/或包含由文字处理应用程序33_112所生成的太浩湖图片的文档33_113下载。在一个实施方案中,可以根据获取或生成本地结果的应用程序33_112将本地结果分类以供显示。例如,从电子邮件应用程序33_112 下载的太浩湖图片可以被分类在一起以供显示,由相机应用程序33_112生成的太浩湖图片可以被分类在一起以供显示,并且被并入到由文字处理应用程序33_112所生成的一个或多个文档中的太浩湖图片可以被分类在一起以供显示。
在操作33_320中,用户可以与所显示的本地结果中的一个或多个进行交互。与结果交互的情况或不与结果交互的情况,可以作为对本地结果的反馈而存储在本地搜索和反馈历史33_115中。
在操作33_325中,本地学习系统33_116可以分析本地搜索和本地反馈历史33_115,以确定与查询相关的一个或多个特征。
在操作33_330中,如果本地学习系统33_116已经识别了新特征,则在操作33_335中,可以为该特征生成新的本地预测器,并且本地学习系统 33_116可以对所识别的特征进行训练。
在操作33_340中,在下一次发布查询(特征与该查询相关)时,可以使用该特征来执行以下项中的一个或多个:扩展查询、使查询的术语具有偏向,或筛选从查询返回的结果。
图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_112 相关的本地数据库33_111所返回的结果可被分类与显示在其他本地结果之前。在另一个实施方案中,类别可以按照用户与某一类别的结果发生交互的频率进行排序。例如,如果用户很少与电子邮件结果进行交互,则电子邮件结果可以分类并显示得比其他本地结果低。在一个实施方案中,本地类别的显示次序是固定的。由于本地结果类别很少改变,这可以方便用户进行识别。在另一个实施方案中,可以根据相关性排名次序来显示类别,并且可以通过相关性排名次序来显示每个类别内的结果。
在一个实施方案中,从远程搜索引擎返回的结果33_415可以包括基于以下项中的至少一个的得分:查询词是否与结果标题相等、查询词是否涵盖在结果标题内、查询词是否涵盖在结果正文内,或者基于一个或多个查询词的术语频率与文档频率比对关系的得分。此外,远程搜索引擎搜索结果33_415可以具有指示已发出该查询的其他用户是否已参与该结果的查询依赖性参与得分,这指示用户发现结果与该查询相关。结果还可以具有指示其他用户是否参与了该结果的查询独立性参与得分,这意味着其他用户发现不管使用何种查询来检索结果,结果都是相关的。结果也可能具有“顶级”得分,指示着有许多用户发现结果是相关的,该结果应该排在结果集的顶部。在一个实施方案中,本地学习系统33_116可以针对每个结果生成计算设备33_110用户很可能还会发现结果相关的概率。
在操作33_425中,本地搜索界面可以接收来自用户的反馈,该反馈指示用户是已经参与了该结果(如果是,用户参与该结果的时间有多长),还是用户已经弃用了该结果。不管结果是本地数据库结果还是远程搜索引擎结果,都可以将用户反馈收集并存储在本地搜索和反馈历史33_115中。该查询也可以存储在本地搜索和反馈历史记录33_115中。在一个实施方案中,查询和反馈历史可以与计算设备33_100的特定用户相关联。在一个实施方案中,查询、反馈历史33_115以及与特定用户的关联,可被本地学习 33_116用于为特定用户生成社交图。
例如,假设特定用户Bob在操作33_405中向本地设备和远程搜索引擎发出对于“Bill”和“Steven”的一个或多个查询。可以从例如联系人应用程序33_112接收本地结果33_315,并且可以针对例如名为Bill和Steven 的人的资料返回远程结果33_415以及其他远程结果33_415。在操作420中将结果混合、排名并呈现给用户Bob之后,可以在操作33_425 中存储Bob与本地结果33_315、远程结果33_415或两者所发生的交互的搜索查询和反馈历史33_115。根据该存储的搜索历史和反馈33_115,社交图可以由本地学习系统33_116从Bob与本地结果33_315、远程结果 33_415或两者的交互而生成。
在一个实施方案中,对远程结果的本地学习也可以用于筛选掉已向用户反复呈现但用户没有与其进行交互的结果。例如,在操作33_405中,用户可以向本地设备和远程搜索引擎33_150发出对于当前政治话题的查询。响应于查询而返回的远程结果33_415可包括来自(赫芬顿邮报)”和(福克斯新闻)”的结果。在操作33_425中,学习系统33_116可以从本地存储的反馈中获知用户很少或永远不会与结果发生交互的任何/所有结果。学习系统33_116可以确定要对其进行训练的新功能,即“新闻来源”,并当在操作33_420中在本地设备上混合、排名和显示结果时,学习从未来的远程结果中排除结果。
在操作33_430中,只有远程搜索引擎结果的反馈历史可以返回到远程搜索引擎33_150。可以将反馈历史匿名,使得在发送到远程搜索引擎 33_150的信息中不会识别出特定的用户和/或机器。在一个实施方案中,与匿名反馈相关联的查询不被发送到远程搜索引擎,从而保护用户隐私。
在操作33_435中,本地学习系统33_116可以分析本地搜索和反馈历史33_115,以确定是否可以从结果以及对结果的反馈识别出特征。本地学习系统33_116可以利用对于本地和远程查询的所有结果的反馈,来确定特征是否可以得到识别。
如果在操作33_435中识别出特征,则在操作33_440中,本地学习系统33_116可以针对该特征生成本地预测器,并就该特征进行训练。
在操作33_445中,本地学习系统33_116可以基于由本地学习系统 33_116识别的特征,可选地向远程搜索引擎发送特征矢量。再次使用新闻源的示例,在操作33_405中,用户可以向本地设备和远程搜索引擎33_150 查询当前的政治话题。响应于查询而返回的远程结果33_415可包括来自的结果。远程搜索引擎33_150可以根据远程搜索引擎33_150的许多用户所做的交互,将的结果作为等级最高的结果而返回。然而,该特定用户的本地反馈记录可能指示该特定用户不与结果发生交互,这与远程搜索引擎33_150所得出的结果排名等级最高的情况相反。本地学习系统33_116可以识别作为操作33_435中的特征,即使远程搜索引擎将结果排名为最高等级,该用户也不与结果发生交互,并且本地学习系统可以在操作33_440中对该特征执行本地学习,并且在操作33_445中可选地将该特征发送回远程搜索引擎33_150。
图33_5以框图形式示出了方法33_500,该方法响应于计算设备 33_100发送给远程搜索引擎33_150的查询,而本地学习由远程搜索引擎 33_150传递到计算设备33_100的查询特征。上文已经描述了方法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_150以供本地学习系统33_116学习。在向远程搜索引擎33_150(诸如下文中图 33_6的操作33_630)发送特征信息的实施方案中,可以先将特征信息匿名化,再将特征信息发送到远程搜索引擎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来学习某一功能。下面给出几个示例:
用户可以发出对于“足球比分”的查询。远程搜索引擎33_150可以返回美式橄榄球比分和英式足球比分的结果。远程搜索引擎33_150可已经确定发送查询的计算设备33_100位于在美国的IP地址。因此,远程搜索引擎优先考虑了美式橄榄球(诸如达拉斯牛仔队)比分,作为最相关的结果。在许多欧洲和南美国家,足球意味着英式足球。假设发出查询的用户对英式足球结果感兴趣,并与其进行交互。本地学习系统33_116可以分析本地搜索历史和反馈历史33_115,以确定用户没有与排名较高的美式橄榄球比分相互交互。本地学习系统33_116然后可以分析结果,并确定如下特征:足球具有至少两个含义,且该计算设备33_100的用户对英式足球的偏好大于美式橄榄球。
再次使用足球比分示例,在收到足球比分的结果后,用户可能会想知道为什么他会获得美式橄榄球比分。在从本地数据库33_111返回的本地结果中,可能会出现一个用于字词“足球”的词典条目。用户点击“足球”词典条目。作为响应,本地学习系统33_116可以确定这样的新特征:足球具有另选的定义,并且该用户对英式足球的偏好大于美式橄榄球。
又如,假设用户输入查询“Montana(蒙大拿州)”,并从他的地址簿中接收到本地结果“Mary Montana(玛丽蒙塔纳)”、从他的词典中接收到本地结果、接收到Joe Montana(美式橄榄球传奇)这一远程结果,以及美国蒙大拿州(Montana)这一远程结果。每当该用户查询Montana时,几乎都会从他的本地通讯录中点击Mary Montana。本地学习系统33_116可以确定用于Montana的特征,以及该用户偏好于联系人记录“Mary Montana”这一情况。
再如,用户发出对于“MG”的查询。用户在其本地计算机上有许多英国MG汽车的照片,并且这些照片在本地数据库33_111中有索引。远程搜索引擎33_150可以返回元素“镁”(符号Mg)这一结果。用户也可以在他的计算机上拥有乐队“Booker T.and the MGs”的许多歌曲,并相应地接收本地结果。本地学习系统33_116可以确定这些结果中的差异并且可以确定“MG”的特征。
一旦在操作33_605中接收到特征,或者在操作33_610中确定了特征,则在操作33_620中,本地学习系统33_116可以针对该特征生成本地预测器。
在操作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,并使用若干OS APi来调用操作系统 (OS),A和B可以使用若干OS APi来调用OS。
请注意,服务2具有两个AP,其中一个(服务2API 1)从应用程序1 接收调用并向其返回值,另一个(服务2API 2)从应用程序2接收调用并向其返回值,服务1(其可以是,例如软件库)对OS API 1进行调用并自其接收返回值,服务2(其可以是,例如软件库)对API 1和OS API 2进行调用并自其接收返回值,应用程序2调用API 2并自其接收返回值。
用于多域搜索技术的示例性系统、方法和计算机可读介质
在一些实施方案中,提供了一种计算机实现的方法,该方法包括:在计算设备上学习与搜索查询相关的特征,其中该特征是至少部分地使用计算设备上所生成而不发送到远程搜索引擎的信息来学习的;向远程搜索引擎发送搜索查询和该特征的指示;以及由计算设备响应于搜索查询和该特征的指示而接收搜索结果。在一些实施方案中,该特征的指示包括以下项中至少一个:朝向特征的偏置或特征向量。在一些实施方案中,从计算设备获得的信息包括以下项中的至少一个:在计算设备上执行的计算设备上信息的搜索查询,或由计算设备的用户进行交互的反馈,该反馈具有从在计算设备上执行的存储在计算设备上的信息的搜索查询返回的结果。在一些实施方案中,学习包括对从计算设备获得的信息进行统计分析,其中统计分析包括以下项中的一种:线性回归、贝叶斯(Bayes)分类或朴素贝叶斯 (Naive Bayes)分类。在一些实施方案中,该方法还包括从远程搜索引擎接收与用于让计算设备学习的搜索查询相关的特征。在一些实施方案中,该方法还包括在计算设备上学习从远程搜索引擎接收的特征,其中从远程搜索引擎接收的特征是至少部分地使用计算设备上所生成的、而未传输到远程搜索引擎的信息来学习的。在一些实施方案中,学习该特征包括,根据从计算设备获得的信息来消除与搜索查询相关的查询词。
在一些实施方案中,提供了一种非暂态机器可读介质,其在由处理系统执行时会执行一种方法,该方法包括:在计算设备上学习与搜索查询相关的特征,其中该特征是至少部分地使用计算设备上所生成而不发送到远程搜索引擎的信息来学习的;向远程搜索引擎发送搜索查询和该特征的指示;以及由计算设备响应于搜索查询和该特征的指示而接收搜索结果。在一些实施方案中,该特征的指示包括以下项中至少一个:朝向特征的偏置或特征向量。在一些实施方案中,在计算设备上获得的信息包括以下项中的至少一个:在计算设备上执行的计算设备上信息的搜索查询,或由计算设备的用户进行交互的反馈,该反馈具有从在计算设备上执行的存储在计算设备上的信息的搜索查询返回的结果。在一些实施方案中,学习包括对从计算设备获得的信息进行统计分析,其中统计分析包括以下项中的一种:线性回归、贝叶斯分类或朴素贝叶斯分类。在一些实施方案中,该方法还包括从远程搜索引擎接收与用于让计算设备学习的搜索查询相关的特征。在一些实施方案中,该方法还包括在计算设备上学习从远程搜索引擎接收的特征,其中从远程搜索引擎接收的特征是至少部分地使用计算设备上所生成的、而未传输到远程搜索引擎的信息来学习的。在一些实施方案中,学习该特征包括,根据从计算设备获得的信息来消除与搜索查询相关的查询词。
在一些实施方案中,提供了一种系统,该系统包括:用可执行指令编程的处理系统,该可执行指令在由该处理系统执行时会执行一种方法。该方法包括:在该系统上学习与搜索查询相关的特征,其中该特征是至少部分地使用该系统上所生成而不发送到远程搜索引擎的信息来学习的;向远程搜索引擎发送搜索查询和该特征的指示;以及由该系统响应于搜索查询和该特征的指示而接收搜索结果。在一些实施方案中,该特征的指示包括以下项中至少一个:朝向特征的偏置或特征向量。在一些实施方案中,在系统上获得的信息包括以下项中的至少一个:在系统上执行的系统上信息的搜索查询,或由系统的用户进行交互的反馈,该反馈具有从在系统上执行的存储在系统上的信息的搜索查询返回的结果。在一些实施方案中,学习包括对从系统获得的信息进行统计分析,其中统计分析包括以下项中的一种:线性回归、贝叶斯分类或朴素贝叶斯分类。在一些实施方案中,该方法还包括从远程搜索引擎接收与用于让该系统学习的搜索查询相关的特征。在一些实施方案中,该方法还包括在该系统上学习从远程搜索引擎接收的特征,其中从远程搜索引擎接收的特征是至少部分地使用该系统上所生成的、而未传输到远程搜索引擎的信息来学习的。在一些实施方案中,学习该特征包括,根据从该系统获得的信息来消除与搜索查询相关的查询词。
第4部分:结构化建议
本节“结构化建议”中的内容根据一些实施方案描述了基于对与用户相关联的内容(例如,文本消息)的分析,对建议进行结构化并使用上下文感知计算来为用户建议联系人和日历事件,并且提供了补充本文提供的公开内容的信息。例如,本节的一部分内容描述了识别和建议新联系人的方式,这补充了本文提供的公开内容,例如那些与下文讨论的方法600和方法800有关的公开内容,特别是有关于在图9B-图9C的预测部分930中填充建议人的公开内容。此外,用于分析内容的技术也可以应用于上文参考方法1800和2000所讨论的那些技术,并且用于建议联系人和日历事件的技术可用于基于语音通信内容的分析来执行这些建议。
结构化建议简介
在一些实施方案中,一种建议联系人的方法包括:在电子设备处:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;确定与所识别的实体相关联的联系人不存在于数据库中的多个联系人当中;以及响应于该确定,生成与该实体相关联的联系人,所生成的联系人包括联系人信息和关于所生成的联系人是建议联系人的指示。
在一些实施方案中,一种建议联系人的方法包括:在电子设备处:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息项目;确定与所识别的实体相关联的联系人存在于数据库中的多个联系人当中并且确定该联系人不包括所识别的联系人信息项目;以及响应于该确定,更新该联系人以包括该联系人信息项目和关于该联系人信息项目是建议联系人信息项目的指示。
在一些实施方案中,一种建议联系人的方法包括:在具有显示器的电子设备处:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;生成关于所识别的联系人信息是建议联系人信息的指示;以及显示对应于与该实体相关联的联系人的第一用户界面,该第一用户界面包括第一用户界面对象,该第一用户界面对象基于所生成的指示来指示所识别的联系人信息是建议联系人信息。
在一些实施方案中,一种建议联系人的方法包括:在具有显示器的电子设备处:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的实体的第一用户界面对象;对应于所识别的联系人信息的第二用户界面对象;以及与所识别的联系人信息相关联的第三用户界面对象,如果用户选择该第三用户界面对象,电子设备会将所识别的联系人信息添加到数据库中。
在一些实施方案中,一种建议日历事件的方法包括:在电子设备处:接收消息;在所接收的消息中识别事件信息;以及生成与所识别的事件信息相关联的日历事件,所生成的日历事件包括事件信息和关于所生成的日历事件是建议日历事件的指示。
在一些实施方案中,一种建议日历事件的方法包括:在具有显示器的电子设备处:接收消息;在所接收的消息中识别事件信息;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的事件信息的第一用户界面对象;以及与所识别的事件信息相关联的第二用户界面对象,如果用户选择该第二用户界面对象,电子设备会将所识别的事件信息添加到包括多个日历事件的数据库中。
在一些实施方案中,一种建议多个联系人和/或日历事件的方法包括:在具有显示器的电子设备处:接收消息;在所接收的消息中识别联系人信息或事件信息的多个实例;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,如果用户选择该第二部分,电子设备会显示第二用户界面,该第二用户界面包括所识别的联系人信息或事件信息的多个实例的列表。
结构化建议的详细说明
在以下对本公开和实施方案的描述中将引用附图,在附图中以例示的方式示出了可被实践的特定实施方案。应当理解,在不脱离本公开的范围的情况下,可实践其他实施方案和示例并且可作出变化。
如上文所述,管理电子设备上的联系人和日历事件可能对于用户来讲是非常繁琐的,因为添加或更新联系人和日历事件需要手动执行多个步骤,总共将花费不少的时间。因此,许多用户只是疏于随时更新自己的通讯录和日历,但在以后需要手动搜索自己的设备来查找特定联系人信息或事件信息时,用户还是需要花费时间。这会让用户感到沮丧,影响效率。
本公开提供一种基于消息自动为用户建议联系人和日历事件的电子设备来解决这个问题。这种设备可分析用户的消息来得到联系人和事件信息,然后基于这些信息为用户自动生成或更新建议联系人和日历事件。建议联系人和日历事件可以是可搜索的,就好像是由用户手动输入的一样,并且用户可选择添加或忽略建议联系人和日历事件。这样,用户几乎不费力气便可维护好自己的联系人和日历事件,不仅可节省用户的时间,提高效率,还能生成更有效的人机界面。
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可按三种互相排斥的状态—建议状态34_540、已添加状态34_550和已拒绝状态34_560中的任一种与联系人34_530A相关联。建议状态34_540可反映用户尚未确认或批准将联系人信息34_520A添加到联系人的状态。已添加状态34_550可反映用户已经确认或批准将联系人信息34_520A添加到联系人的状态。已拒绝状态34_560可反映用户已经拒绝将联系人信息34_520A添加到联系人的状态。当所有相关联联系人信息属于同一状态时,联系人34_530A还可与这三种状态中的任一者相关联。
在一些实施方案中,已添加状态34_550可被设备34_500视为默认状态,这意味着不需要添加额外数据与此类联系人相关联来指示其处于已添加状态34_550。例如,用户在设备34_500上添加的联系人可被默认视为已添加状态34_550。
在已添加状态34_550被视为默认状态的实施方案中,设备34_500可把数据与联系人信息34_520A相关联,来指示联系人信息34_520A属于建议状态34_540或已拒绝状态34_560。此数据可采用任何合适的形式,诸如可采用元数据,处理联系人信息34_520A的应用程序将使用相应的形式来辨识联系人信息34_520A是处于建议状态34_540,还是处于已拒绝状态 34_560。
设备34_500还可把数据与联系人34_530A相关联来指示联系人 34_530A和所有相关联联系人信息是属于建议状态34_540,还是属于已拒绝状态34_560。
通过将联系人信息34_520A存储在建议状态34_540中,设备34_500 (例如,经由设备34_500上运行的应用程序)可以在联系人搜索中包括建议联系人信息。为了避免用户混淆,设备34_500还可通过提供视觉指示 (例如,经由添加标记或高亮显示)并且/或者阻止用户直接操作联系人信息34_520A(例如,通过先要求用户提供额外输入,然后再允许用户操作联系人信息34_520A),向用户指示联系人信息34_520A处于建议状态 34_520B。输入可指任何合适的输入方式,诸如触摸、鼠标、语音等。
以已拒绝状态34_560存储联系人信息34_520A,设备34_500便可记住用户已经拒绝的先前所建议的联系人信息,以免再次向用户建议该信息。处于已拒绝状态34_560的联系人信息34_520A,可被处理处于已添加状态34_550和建议状态34_540的联系人信息的应用程序忽略。
设备34_500可将联系人信息34_520A本地存储在设备34_500上,并且制止将联系人信息34_520A同步到远程数据库,直到将联系人信息 34_520A从建议状态34_540变为已添加状态34_550为止。在其他实施方案中,联系人信息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可按三种互相排斥的状态—建议状态34_540、已添加状态34_550和已拒绝状态34_560中的任一种与日历事件34_530B相关联。建议状态34_540可反映用户尚未确认或批准将事件信息34_520B添加到日历事件的状态。已添加状态34_550可反映用户已经确认或批准将事件信息34_520B添加到日历事件的状态。已拒绝状态34_560可反映用户已经拒绝将事件信息34_520B添加到日历事件的状态。当所有相关联日历事件信息属于同一状态时,日历事件34_530B还可与这三种状态中的任一者相关联。
在一些实施方案中,已添加状态34_550可被设备34_500视为默认状态,这意味着不需要添加额外数据与此类日历事件相关联来指示其处于已添加状态34_550。例如,用户在设备34_500上添加的日历事件可被默认视为已添加状态34_550。
在已添加状态34_550被视为默认状态的实施方案中,设备34_500可把数据与事件信息34_520B相关联,来指示事件信息34_520B属于建议状态34_540或已拒绝状态34_560。此数据可采用任何合适的形式,诸如可采用元数据,处理事件信息34_520B的应用程序将使用相应的形式来辨识事件信息34_520B是处于建议状态34_540,还是处于已拒绝状态34_560。
设备34_500还可把数据与日历事件34_530B相关联来指示日历事件34_530B和所有相关联事件信息是属于建议状态34_540,还是属于已拒绝状态34_560。
通过将事件信息34_520B存储在建议状态34_540中,设备34_500 (例如,经由设备34_500上运行的应用程序)可以在日历事件搜索中包括建议事件信息。为了避免用户混淆,设备34_500还可通过提供视觉指示 (例如,经由添加标记或高亮显示)并且/或者阻止用户直接操作事件信息 34_520B(例如,通过先要求用户提供额外输入,然后再允许用户操作事件信息34_520B),向用户指示事件信息34_540处于建议状态34_520B。输入可指任何合适的输入方式,诸如触摸、鼠标、语音等。
以已拒绝状态34_560存储事件信息34_520B,设备34_500便可记住用户已经拒绝的先前所建议的事件信息,以免再次向用户建议该信息。处于已拒绝状态34_560的事件信息34_520B,可被处理处于已添加状态 34_550和建议状态34_540的事件信息的应用程序忽略。
设备34_500可将事件信息34_520B本地存储在设备34_500上,并且制止将事件信息34_520B同步到远程数据库,直到将事件信息34_520B从建议状态34_540变为已添加状态34_550为止。在其他实施方案中,事件信息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进行显示。在该实施例中,联系人与名为John Appleseed的个人相关联并且包括公司名(“某公司”)、办公室电话号码(“405-555-1234”)和手机号码(“405-123-6633”)。公司名和办公室电话号码是确认联系人信息项目,属于已添加状态34_550。手机号码是建议联系人信息项目,属于建议状态34_540。
设备34_500可在用户界面中提供用户界面对象34_600(例如,短语“建议”),用来向用户指示该手机号码是建议联系人信息项目,并没有经过用户确认。可使用任何合适的用户界面对象来实现这一目的,包括标签、图标或其他能够指示手机号码是建议联系人信息项目的视觉指示。当同一联系人包括处于建议状态34_540的联系人信息项目和处于已添加状态 34_550的联系人信息项目时,如在图34_6A中的情况下,设备34_500可把处于建议状态34_540的项目显示在处于已添加状态34_550的所有项目的下方,或比处于已添加状态的所有项目的优先级低的位置。
设备34_500还可阻止用户通过直接调用应用程序(例如,电话模块 138),来从这个初始用户界面用建议号码处呼叫John Appleseed。例如,设备34_500可为与建议号码相关联的文本和/或区提供与确认联系人信息项目的视觉外观不同的视觉外观,诸如灰色显示外观(未示出),以指示用户选择建议号码时将不会直接呼叫该号码。在用户选择建议号码后,设备 34_500可用第二用户界面替换当前用户界面,用户可通过第二用户界面检查并且呼叫建议号码。
如图34_6B所示,第二用户界面(标记为“检查建议”)包括呈横幅形式的建议部分34_606,该建议部分包括与建议号码相关联的用户界面对象34_602(标记为“添加到联系人”)。用户选择用户界面对象34_602时可致使设备34_500将建议号码以已添加状态34_550添加到联系人(例如,将建议号码的状态从建议状态34_540改成已添加状态34_550)。用户在这个后续用户界面中选择手机号码或类似指示诸如紧挨着手机号码显示的电话图标后,设备34_500会调用应用程序(例如,电话模块138)以建议号码呼叫John Appleseed。在一些实施方案中,如果用户不选择用户界面对象34_602,而是选择手机号码或类似指示,则设备34_500会保持手机号码处于建议状态34_540(例如,用户呼叫建议号码的操作,不会被视为是对联系人的建议号码的隐式批准)。在其他实施方案中,设备34_500会在用户选择手机号码后将手机号码的状态改成已添加状态34_550,即使用户尚未选择用户界面对象34_602(例如,用户呼叫建议号码的操作会被视为是对联系人的建议号码的隐式批准)也会如此。
图34_6B中的第二用户界面还包括与建议号码相关联的用户界面对象 34_604(标记为“忽略”)。用户选择用户界面对象34_604时可致使设备 34_500停止显示用户界面对象34_602,这会移除将号码添加到联系人的选项。在选择用户界面对象34_604后,设备34_500会将建议号码的状态从建议状态34_540改成已拒绝状态34_560。处于已拒绝状态34_560时,设备34_500可被配置为不再显示与该联系人相关联的此建议号码,也不再建议与该联系人相关联的此建议号码。
另外,图34_6B中的第二用户界面包括消息部分34_608(标记为“相关电子邮件”),该消息部分中包括设备34_500从其中识别建议号码的消息的一部分。因此,在提供用于检查建议联系人信息的界面的时,图 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包括对应于所识别的实体(“John Appleseed”)的用户界面对象;对应于所识别的联系人信息(“405-123-6633”)的用户界面对象;以及与所识别的联系人信息相关联的用户界面对象34_618(标记为“添加到联系人”),如果用户选择该用户界面对象,设备会将建议号码以已添加状态34_550添加到联系人。建议部分34_612包括与所识别的联系人信息相关联的用户界面对象34_620(标记为“忽略”),如果用户选择该用户界面对象,设备34_500会将所识别的联系人信息的状态从建议状态34_540改成已拒绝状态34_560。处于已拒绝状态34_560时,设备 34_500可被配置为不再显示与该联系人相关联的此建议联系人信息,也不再建议与该联系人相关联的此建议联系人信息。选择位于“忽略”和“添加到联系人”图块上方的建议部分34_616的识别联系人信息34_612时,设备上会出现对应于与所识别实体相关联的联系人的用户界面。例如,在这个实施方案中,设备34_500可在对应于图34_6A所示的用户界面的用户界面中呈现“John Appleseed”的联系人信息。
图34_6E示出了用户在设备34_500上打开消息(例如,由电子邮件客户端模块140显示的电子邮件)后可检视的屏幕,其中设备34_500已经在消息中识别到建议事件信息。图34_6E的用户界面包括建议部分34_620和消息部分34_622。消息部分34_622包括设备34_500收到的消息的内容。建议部分34_620包括对应于所识别的事件信息(“晚餐”、“某寿司店”、“3月7日,周五”或“晚上9:50”)的用户界面对象,以及与所识别的事件信息相关联的用户界面对象34_626(标记为“添加到日历”),如果用户选择该用户界面对象,设备34_500会将建议事件信息以已添加状态34_550添加到日历事件。建议部分34_620包括用户界面对象34_628 (标记为“忽略”),如果用户选择该用户界面对象,设备34_500会将所识别的事件信息的状态从建议状态34_540改成已拒绝状态34_560。处于已拒绝状态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_6F的建议部分 34_630限制在单个横幅内而非将图34_6G的所有建议并入到图34_6F的用户界面中,这样做可以防止图34_6F的建议部分对用户产生干扰,导致用户无法轻松检视并阅读消息部分中的消息。
图34_6G示出了与图34_6F的用户界面相关联的后续用户界面,其中包含在消息中识别的建议联系人信息和事件信息的列表。如图34_6G所示,这些建议信息按类型来组织(例如,建议日历事件分在一个组,建议联系人分在另一个组),并且每条建议信息都包括上述“忽略”和“添加到联系人”及“添加到日历”功能。图34_6G的用户界面还包括用户界面对象34_634(“全部添加”),如果用户选择该用户界面对象,设备 34_500会将所识别的联系人信息或事件信息的多个实例(例如,图34_6G 所示的两个建议日历事件)的分组中的每一个,以已添加状态34_550添加到对应联系人或日历事件。
图34_7A和图34_7B示出了根据一些实施方案的用于生成建议联系人的示例性过程的流程图。该过程可在电子设备(例如,设备34_500)上执行。
电子设备可接收(34_702)消息(例如,图34_6D,消息部分34_614中的电子邮件),然后在所接收的消息中识别(34_704)实体(例如,图 34_6D,“John Appleseed”)和与该实体相关联的联系人信息(例如,图 34_6D,“405-123-6633”)。设备可确定(34_722)与所识别的实体相关联的联系人(例如,图34_5A,联系人34_530A)不存在于数据库(例如,设备34_500上的存储装置,诸如通讯录数据库)中的多个联系人当中,并且响应于此确定(34_724),设备可生成与该实体相关联的联系人,所生成的联系人包括联系人信息和关于所生成的联系人是建议联系人(例如,处于建议状态34_540)的指示(例如,元数据)。需注意,当设备生成联系人“John Appleseed”作为建议联系人时,该联系人中的每个联系人信息项目都可被指示为建议联系人信息项目,并且以建议状态34_540存储,或者整个联系人作为整体可被指示为建议联系人,并且以建议状态34_540存储。还需注意,可使用所公开的过程来分析驻留在设备上的任何消息,诸如传入消息和传出消息。
在一些实施方案中,所识别的实体为(34_706)姓名,并且所识别的联系人信息为电话号码、地址、业务或社交网络处理。
在一些实施方案中,设备可在消息中辨识签名块来在消息中识别非结构化内容。例如,为了在消息中识别实体和相关联联系人信息,设备可识别(34_708)消息的签名块,并且分析所识别的签名块,得到实体和联系人信息。消息中可包括(34_710)电子邮件,并且签名块可为电子邮件签名。电子邮件可包括(34_712)电子邮件线程中的一封或多封先前的电子邮件,并且识别电子邮件签名可包括分析电子邮件线程中的一封或多封先前的电子邮件。展开电子邮件的引用层,有助于设备避免错误地关联电子邮件线程中不同电子邮件中的联系人信息位置。
在一些实施方案中,设备可通过使用数据检测器搜索限定的短语,来在消息中识别非结构化内容。例如,为了在消息中识别实体和相关联联系人信息,设备可基于预定义短语集合在消息中识别(34_714)一个或多个短语,并且分析一个或多个所识别的短语,得到实体和联系人信息。设备可经由网络更新(34_716)预定义短语集合,使得设备可以持续使用准确的短语。如果用户请求拒绝建议联系人,则设备还可以对预定义短语中的一者或多者进行降级(34_718)。换句话讲,如果用户持续拒绝通过使用特定短语识别得到的建议信息,这种行为可被设备视为是对那些短语不准确的指示。设备还可通过把数据库中的联系人信息和电子设备上与该联系人信息相关联的语言(诸如消息、日历事件等)相互关联,来生成(34_720)一个或多个预定义短语。这样,设备便可确定包含联系人信息的消息中的什么确切语言,例如导致了用户用该联系人信息创建或更新联系人。
在一些实施方案中,可使用图34_5A的数据架构让建议联系人变得易于搜索。例如,设备可接收(34_726)对联系人的请求(例如,用户请求经由设备上的应用程序搜索联系人)并且响应于对联系人的请求,搜索建议联系人。
在一些实施方案中,设备可以(34_728)响应于联系人的生成,制止经由网络将建议联系人存储到远程数据库中。例如,如果建议联系人处于建议状态34_540,则设备可制止将该联系人推送到用于经由网络在多个客户端上更新联系人的更新或同步服务(例如,设备上的应用程序)。
在一些实施方案中,设备可(34_730)接收关于将建议联系人添加到数据库中的请求(例如,图34_6D,“添加到联系人”34_618),并且响应于该请求,将所生成的联系人存储在数据库中,而不存储关于所生成的联系人是建议联系人的指示(例如,将联系人的状态从建议状态34_540改成已添加状态34_550)。响应于关于将建议联系人添加到数据库中的请求,设备可通过例如将联系人推送到更新服务或同步服务,来经由网络将所生成的联系人存储(34_732)到远程数据库中,而不存储关于所生成的联系人是建议联系人的指示。
在一些实施方案中,设备可(34_734)接收关于拒绝建议联系人的请求 (例如,图34_6D,“忽略”34_620),并且响应于该请求,拒绝该建议联系人,从而防止将来因为在未来消息中识别到该实体和该联系人信息而生成该建议联系人。可通过以已拒绝状态34_560存储被拒绝的联系人来实现这一点,让设备可以知道哪些已被拒绝。
图34_8A和图34_8B示出了根据一些实施方案的使用建议的联系人信息项目更新现有联系人的示例性过程的流程图。该过程可在电子设备(例如,设备34_500)上执行。
电子设备可接收(34_802)消息(例如,图34_6D,消息部分34_614中的电子邮件),然后在所接收的消息中识别(34_804)实体(例如,图 34_6D,“John Appleseed”)和与该实体相关联的联系人信息项目(例如,图34_6D,“405-123-6633”)。设备可确定(34_822)与所识别的实体相关联的联系人(例如,图34_5A,联系人34_530A)存在于数据库中的多个联系人当中,并且该联系人不包括所识别的联系人信息项目。响应于此确定(34_824),设备可更新联系人,以包括该联系人信息项目和关于该联系人信息项目是建议联系人信息项目(例如,处于建议状态34_540)的指示(例如,元数据)。还需注意,可使用所公开的过程来分析驻留在设备上的任何消息,诸如传入消息和传出消息。
在一些实施方案中,所识别的实体是(34_806)姓名,并且所识别的联系人信息项目是电话号码、地址、业务或社交网络处理。
在一些实施方案中,设备可在消息中辨识签名来在消息中识别非结构化内容。例如,为了在消息中识别实体和相关联联系人信息项目,设备可识别(34_808)消息的签名块,并且分析所识别的签名块,得到实体和联系人信息项目。消息中可包括(34_810)电子邮件,并且签名块可为电子邮件签名。电子邮件可包括(34_812)电子邮件线程中的一封或多封先前的电子邮件,并且识别电子邮件签名可包括分析电子邮件线程中的一封或多封先前的电子邮件。展开电子邮件的引用层,有助于设备避免错误地关联电子邮件线程中不同电子邮件中的联系人信息位置。
在一些实施方案中,设备可通过使用数据检测器搜索限定的短语,来在消息中识别非结构化内容。例如,为了在消息中识别实体和相关联联系人信息项目,设备可基于预定义短语集合在消息中识别(34_814)一个或多个短语,并且分析一个或多个所识别的短语,得到实体和联系人信息项目。设备可经由网络更新(34_816)预定义短语集合,使得设备可以持续使用准确的短语。如果用户请求拒绝建议联系人信息项目,设备还可对一个或多个预定义短语进行降级(34_818)处理。换句话讲,如果用户持续拒绝通过使用特定短语识别得到的建议信息,这种行为可被设备视为是对那些短语不准确的指示。设备还可通过把数据库中的联系人信息和电子设备上与该联系人信息相关联的语言(诸如消息、日历事件等)相互关联,来生成(34_820) 一个或多个预定义短语。这样,设备便可确定包含联系人信息的消息中的什么确切语言,例如导致了用户用该联系人信息创建或更新联系人。
在一些实施方案中,可使用图34_5A的数据架构让建议联系人变得易于搜索。例如,设备可接收(34_826)对联系人的请求(例如,用户请求经由设备上的应用程序搜索联系人)并且响应于对联系人的请求,搜索建议联系人信息项目。
在一些实施方案中,设备可(34_828)响应于联系人的更新,制止经由网络将建议联系人信息项目存储到远程数据库中。如果建议联系人信息项目处于建议状态34_540,则设备可制止将联系人信息项目推送到用于经由网络在多个客户端上更新联系人的更新服务或同步服务(例如,设备上的应用程序)。
在一些实施方案中,设备可(34_830)接收关于将建议联系人信息项目添加到数据库的请求(例如,图34_6B,“添加到联系人”34_602),并且响应于该请求,将所更新的联系人存储在数据库中,而不存储关于该联系人信息项目是建议联系人信息项目的指示(例如,将联系人信息的状态从建议状态34_540改成已添加状态34_550)。响应于对将建议联系人信息项目添加到数据库的请求,设备可通过例如将联系人信息推送到更新/同步服务,来经由网络将所更新的联系人存储(34_832)到远程数据库中,而不存储关于该联系人信息项目是建议联系人信息项目的指示。
在一些实施方案中,设备可(34_834)接收关于拒绝建议联系人信息项目的请求(例如,图34_6B,“忽略”34_604),并且响应于该请求,拒绝该建议联系人信息项目,从而防止将来因为在未来消息中识别到该实体和该联系人信息项目而用该建议联系人信息项目更新该联系人。可通过以已拒绝状态34_560存储被拒绝的联系人信息来实现这一点,让设备可以知道哪些已被拒绝。
图34_9A和图34_9B示出了根据一些实施方案的用于显示具有建议联系人信息的联系人的示例性过程的流程图。该过程可在具有显示器的电子设备(例如,设备34_500)上执行。
电子设备可接收(34_902)消息(例如,图34_6D,消息部分34_614中的电子邮件),然后在所接收的消息中识别(34_904)实体(例如,图 34_6D,“John Appleseed”)和与该实体相关联的联系人信息(例如,图 34_6D,“405-123-6633”)。设备可生成(34_906)关于所识别的联系人信息是建议联系人信息的指示(例如,元数据),并且显示(34_908)对应于与该实体相关联的联系人的第一用户界面(例如,图34_6A)。第一用户界面可基于所生成的指示包括第一用户界面对象(例如,“建议”),从而指示所识别的联系人信息是建议联系人信息。
在一些实施方案中,设备可阻止(34_910)对应于选择建议联系人信息的输入调用应用程序来联系实体(例如,图34_6A,选择建议号码时设备不呼叫该号码)。
在一些实施方案中,设备可(34_912)在第一用户界面中检测对应于选择建议联系人信息的输入,并且响应于该检测,显示第二用户界面(例如,图34_6B),该第二用户界面包括与所识别的联系人信息相关联的第二用户界面对象(例如,图34_6B,“添加到联系人”34_602),如果用户选择该第二用户界面对象,电子设备会将所识别的联系人信息添加到数据库。第二用户界面可(34_914)包括与所识别的联系人信息相关联的第三用户界面对象(例如,图34_6B,“忽略”34_604),如果用户选择该第三用户界面对象,电子设备会停止显示第二用户界面对象。显示第二用户界面时会停止(34_916)显示第一用户界面。设备可响应于把所识别的联系人信息添加到数据库,而停止(34_918)显示第一用户界面对象。
在一些实施方案中,第二用户界面可显示(34_920)消息的至少一部分 (例如,图34_6B,“相关电子邮件”)。设备可(34_922)检测对应于选择所显示的消息的输入,并且响应于该检测,调用应用程序(例如,电子邮件客户端模块140)来打开消息(例如,图34_6D)。消息可(34_924)为电子邮件,并且应用程序可为电子邮件应用程序。
在一些实施方案中,设备可在第二用户界面中检测(34_926)对应于选择建议联系人信息的输入,并且响应于该检测,调用应用程序(例如,电话模块138)来使用所识别的联系人信息联系实体。响应于对对应于在第二用户界面中选择建议联系人信息的输入的检测,设备可(34_928)将所识别的联系人信息添加到数据库(例如,将联系人信息的状态从建议状态34_540 改成已添加状态34_550)。设备可响应于把所识别的联系人信息添加到数据库,而停止(34_918)显示第一用户界面对象。
图34_10示出了根据一些实施方案的建议联系人信息与消息一起显示的示例性过程的流程图。该过程可在具有显示器的电子设备(例如,设备 34_500)上执行。
电子设备可接收(34_1002)消息(例如,图34_6D,消息部分34_614中的电子邮件),然后在所接收的消息中识别(34_1004)实体(例如,图 34_6D,“John Appleseed”)和与该实体相关联的联系人信息(例如,图 34_6D,“405-123-6633”)。消息可(34_1006)为电子邮件。所识别的实体可(34_1008)为姓名,并且所识别的联系人信息可为电话号码、地址、业务或社交网络处理。
设备可显示(34_1010)对应于所接收的消息的第一用户界面(例如,图 34_6D)。第一用户界面可包括:第一部分(例如,图34_6D,消息部分 34_614),其包括电子设备收到的消息的内容;以及第二部分(例如,图 34_6D,建议部分34_612),其包括对应于所识别的实体的第一用户界面对象(例如,图34_6D,“John Appleseed”)、对应于所识别的联系人信息的第二用户界面对象(例如,图34_6D,“405-123-6633”),以及与所识别的联系人信息相关联的第三用户界面对象(例如,图34_6D,“添加到联系人”34_618),如果用户选择该第三用户界面对象,电子设备会将所识别的联系人信息添加到数据库(例如,将联系人信息存储为联系人)。第二部分可(34_1012)包括与所识别的联系人信息相关联的第四用户界面对象(例如,图34_6D,“忽略”34_620),如果用户选择该第四用户界面对象,电子设备会停止显示第三用户界面对象。
图34_11A和图34_11B示出了根据一些实施方案的用于生成建议日历事件的示例性过程的流程图。该过程可在电子设备(例如,设备34_500) 上执行。
电子设备可接收(34_1102)消息(例如,图34_6E,消息部分34_622中的电子邮件),并且在所接收的消息中识别(34_1104)事件信息(例如,图 34_6E,“晚餐”、“某寿司店”、“3月7日,周五”或“晚上 9:50”)。设备可生成(34_1122)与所识别的事件信息相关联的日历事件 (例如,图34_5B,日历事件34_530B),其中所生成的日历事件包括事件信息和关于所生成的日历事件是建议日历事件(例如,处于建议状态 34_540)的指示(例如,元数据)。
在一些实施方案中,所识别的事件信息是(34_1106)日期和时间。在一些实施方案中,设备可通过使用被配置为辨识由此类消息提供的呈特定格式的事件信息的模板,来在消息中识别结构化内容。例如,为了在消息中识别事件信息,设备可(34_1108)识别消息中内容的格式,从预定义模板集合中识别被配置为辨识消息中呈内容格式的事件信息的模板,并且使用所识别的模板分析内容,得到事件信息。消息可包括(34_1110)电子邮件,并且内容可包括预订(例如,图34_6E)。设备可经由网络更新(34_1112)预定义模板集合,使得设备可以持续使用准确的模板。
在一些实施方案中,设备可通过使用数据检测器搜索事件信息标引,来在消息中识别非结构化内容。例如,为了在消息中识别事件信息,设备可基于日期和时间的预定义标引集合来在消息中识别(34_1114)一个或多个日期和时间标引,并且分析一个或多个所识别的日期和时间的标引,得到事件信息。
设备可经由网络更新(34_1116)日期和时间的预定义标引集合,使得设备可以持续使用准确的标引。如果用户请求拒绝建议日历事件,设备可对一个或多个日期和时间的预定义标引进行降级(34_1118)。换句话讲,如果用户持续拒绝通过使用日期和时间的特定标引识别得到的建议信息,这种行为可被设备视为是对那些标引不准确的指示。设备可通过把包括多个日历事件的数据库中的事件信息,与电子设备上与事件信息相关联的语言相互关联,来生成(34_1120)一个或多个日期和时间的预定义标引。这样,设备可更好地确定包含事件信息的消息中的什么语言,例如导致用户用该事件信息创建或更新日历事件。
在一些实施方案中,可使用图34_5A至图34_5B的数据架构让建议日历事件变得易于搜索。例如,设备可接收(34_1124)对日历事件的请求(例如,用户请求经由设备上的应用程序搜索日历事件)并且响应于对日历事件的请求,搜索建议日历事件。
在一些实施方案中,设备可响应于日历事件的生成,制止(34_1126)经由网络将建议日历事件存储到远程数据库中。例如,如果建议日历事件处于建议状态34_540,则设备可制止将日历事件推送到用于经由网络在多个客户端上更新日历事件的更新或同步服务(例如,设备上的应用程序)。
在一些实施方案中,设备可(34_1128)接收将建议日历事件添加到包括多个日历事件的数据库的请求(例如,图34_6E,“添加到日历” 34_626),并且作为响应,将所生成的日历事件存储在数据库中,而不存储关于所生成的日历事件是建议日历事件的指示(例如,将日历事件的状态从建议状态34_540改成已添加状态34_550)。响应于对将建议日历事件添加到数据库的请求,设备可通过例如将日历事件推送到更新或同步服务来经由网络将所生成的日历事件存储(34_1130)到远程数据库中,而不存储关于所生成的日历事件是建议日历事件的指示。
在一些实施方案中,设备可(34_1132)接收关于拒绝建议日历事件的请求(例如,图34_6E,“忽略”34_628),并且响应于拒绝请求,阻止将来因为在未来消息中识别到该事件信息而生成该建议日历事件。可通过以已拒绝状态34_560存储被拒绝的事件来实现这一点,让设备可以知道哪些已被拒绝。
图34_12示出了根据一些实施方案的建议事件信息与消息一起显示的示例性过程的流程图。该过程可在具有显示器的电子设备(例如,设备 34_500)上执行。
电子设备可接收(34_1202)消息(例如,图34_6E,消息部分34_622中的电子邮件),并且在所接收的消息中识别(34_1204)事件信息(例如,图34_6E,“晚餐”、“某寿司店”、“3月7日,周五”或“晚上 9:50”)。消息可为(34_1206)电子邮件。所识别的事件信息可(34_1208)为日期和时间。
设备可显示(34_1210)对应于所接收的消息的第一用户界面(例如,图 34_6E)。第一用户界面可包括:第一部分(例如,图34_6E,消息部分 34_622),其包括电子设备收到的消息的内容;以及第二部分(例如,图 34_6E,建议部分34_620),其包括对应于所识别的事件信息的第一用户界面对象(例如,图34_6E,“晚餐”、“某寿司店”、“3月7日,周五”或“晚上9:50”)和与所识别的事件信息相关联的第二用户界面对象 (例如,图34_6E,“添加到日历”34_626),如果用户选择该第二用户界面对象,电子设备会将所识别的事件信息添加到包括多个日历事件的数据库(例如,将该事件信息存储为日历事件)。第二部分可(34_1212)包括与所识别的事件信息相关联的第三用户界面对象(例如,图34_6E,“忽略”34_628),如果用户选择该第三用户界面对象,电子设备会停止显示第二用户界面对象。
图34_13示出了根据一些实施方案的多个建议联系人信息或事件信息与消息一起显示的示例性过程的流程图。
该过程可在具有显示器的电子设备(例如,设备34_500)上执行。
电子设备可接收(34_1302)消息(例如,图34_6F,消息部分34_632中的电子邮件),并且在所接收的消息中识别(34_1304)联系人信息或事件信息的多个实例(例如,图34_6F,随附行程单中的“2个事件,1个联系人”)。
设备可显示(34_1306)对应于所接收的消息的第一用户界面(例如,图 34_6F)。第一用户界面可包括:第一部分(例如,图34_6F,消息部分 34_632),其包括电子设备所接收到的消息的内容;以及第二部分(例如,图34_6F,建议部分34_630);如果用户选择该第二部分,电子设备会显示第二用户界面(图34_6G),其中包括所识别的联系人信息或事件信息的多个实例的列表。
在一些实施方案中,设备可(34_1308)检测对应于选择第一用户界面的第二部分的输入,并且响应于该检测,显示第二用户界面,该第二用户界面包括所识别的联系人信息或事件信息的多个实例的列表,以及针对所识别的联系人信息或事件信息的多个实例中的每一者的第一用户界面对象 (例如,图34_6G,“添加到日历”或“添加到联系人”),如果用户选择该第一用户界面对象,电子设备会将所识别的信息添加到数据库(例如,将事件信息存储为日历事件,或将联系人信息存储为联系人)。第二用户界面可(34_1310)针对所识别的联系人信息或事件信息的多个实例中的每一者包括第二用户界面对象(例如,图34_6G,“忽略”),如果用户选择该第二用户界面对象,电子设备会停止显示第一用户界面对象。第二用户界面可(34_1312)包括第三用户界面对象(例如,图34_6G,“添加全部”34_634),如果选择该第三用户界面对象,电子设备会将所识别的联系人信息或事件信息的多个实例的分组(例如,多个日历事件或联系人) 中的每一者添加到数据库。显示第二用户界面时会停止(34_1314)显示第一用户界面。
应当理解,已描述的图34_7A至图34_13中的操作的具体次序是示例性的,而并非意图指示所述次序是这些操作可被执行的唯一次序。本领域的普通技术人员会想到多种方式来对本部分所述的操作进行重新排序。为了简明起见,此处不再重复这些细节。此外,需注意,可将过程34_700至 34_1300(图34_7至图34_13)的各方面彼此结合。
上述信息处理过程中的操作可通过运行信息处理装置(诸如通用处理器或专用芯片)中的一个或多个功能模块来实现。这些模块、这些模块的组合、和/或其与一般硬件的组合(例如,如上面相对于图1A、图1B和图 3所述的)都包括在本发明的保护范围内。
图34_14示出了电子设备34_1400的示例性功能框,在一些实施例中,电子设备执行上文所述的功能。如图34_14所示,电子设备34_1400 包括被配置为显示图形对象的显示单元34_1402;被配置为接收用户手势的触敏表面单元34_1404;被配置为检测外部电子设备并与之通信的一个或多个RF单元34_1406;以及耦接到显示单元34_1402、触敏表面单元34_1404和RF单元34_1406的处理单元34_1408。
在一些实施方案中,处理单元34_1408被配置为支持运行一个或多个应用程序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;被配置为检测外部电子设备并与之通信的一个或多个RF单元34_1506;以及耦接到显示单元34_1502、触敏表面单元34_1504和RF单元34_1506的处理单元34_1508。
在一些实施方案中,处理单元34_1508被配置为支持单元34_1510至 1520中的一者或多者执行上述各种功能。例如,接收单元34_1510被配置为执行上述接收功能中的一者或多者(例如,接收消息)。识别单元 34_1512被配置为执行上述识别功能中的一者或多者(例如,在所接收的消息中识别实体和与实体相关联的联系人信息;在所接收的消息中识别事件信息;或在所接收的消息中识别联系人信息或事件信息的多个实例)。确定单元34_1514被配置为执行上述确定功能中的一者或多者(例如,确定与所识别的实体相关联的联系人不存在于数据库中的多个联系人当中;确定与所识别的实体相关联的联系人存在于数据库中的多个联系人当中,以及该联系人不包括所识别的联系人信息项目)。生成单元34_1516被配置为执行上述生成步骤中的一者或多者(例如,响应于确定,生成与实体相关联的联系人;生成关于所识别的联系人信息是建议联系人信息的指示;生成与所识别的事件信息相关联的日历事件)。更新单元34_1518被配置为执行上述更新步骤中的一者或多者(例如,响应于确定,更新联系人,加入联系人信息项目和关于联系人信息项目是建议联系人信息项目的指示)。显示单元34_1520被配置为执行上述显示步骤中的一个或多个(例如,在显示单元34_1502上显示与实体相关联的联系人或所接收的消息对应的第一用户界面)。
设备34_1500的功能块任选地由执行各种所述示例的原理的硬件、软件,或硬件和软件的组合来实现。本领域的技术人员应当理解,图34_15 中所述的功能块任选地被组合或被分离为子块,以实现各种所述示例的原理。因此,本部分的描述任选地支持本部分所述的功能块的任何可能的组合或分离或进一步限定。
用于结构化建议的示例性方法、设备系统和计算机可读介质
在一个方面,本公开提供了一种基于用户的消息来为用户建议联系人和日历事件的电子设备。这种设备可分析用户的消息来得到联系人和事件信息,然后基于这些信息为用户自动生成或更新建议联系人和日历事件。建议联系人和日历事件可以是可搜索的,就好像是由用户手动输入的一样,并且用户可选择添加或忽略建议联系人和日历事件。
在一些具体实施中,提供了一种在电子设备(例如,图1A中的设备 100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;确定与所识别的实体相关联的联系人不存在于数据库中的多个联系人当中;以及响应于该确定,生成与该实体相关联的联系人,所生成的联系人包括联系人信息和关于所生成的联系人是建议联系人的指示。
在一些具体实施中,所识别的实体包括姓名,并且所识别的联系人信息包括电话号码、地址、业务或社交网络处理。在一些具体实施中,所述识别包括识别消息的签名块,以及分析所识别的签名块,得到实体和联系人信息在一些具体实施中,消息包括电子邮件,签名块包括电子邮件签名。在一些具体实施中,电子邮件包括电子邮件线程中的一封或多封先前的电子邮件,并且电子邮件签名的识别包括分析电子邮件线程中的一封或多封先前的电子邮件。在一些具体实施中,所述识别包括基于预定义短语集合在消息中识别一个或多个短语;并且分析一个或多个所识别的短语,得到实体和联系人信息。在一些具体实施中,该方法包括:经由网络更新预定义短语集合。在一些具体实施中,该方法包括:如果用户请求拒绝建议联系人,对预定义短语中的一者或多者进行降级。在一些具体实施中,该方法包括:把数据库中的联系人信息和电子设备上与联系人信息相关联的语言相互关联,来生成预定义短语中的一者或多者。在一些具体实施中,该方法包括:接收对某个联系人的请求;并且响应于对该联系人的请求,搜索建议联系人。在一些具体实施中,该方法包括:响应于联系人的生成,制止经由网络将建议联系人存储到远程数据库中。在一些具体实施中,该方法包括:接收将建议联系人添加到数据库的请求;并且响应于将建议联系人添加到数据库的请求,将所生成的联系人存储到数据库中,而不存储关于所生成的联系人是建议联系人的指示。在一些具体实施中,该方法包括:响应于将建议联系人添加到数据库的请求,经由网络将所生成的联系人存储到远程数据库中,而不存储关于所生成的联系人是建议联系人的指示。在一些具体实施中,该方法包括:接收拒绝建议联系人的请求;并且响应于拒绝建议联系人的请求,阻止将来因为在未来消息中识别到该实体和该联系人信息而生成该建议联系人。
在一些具体实施中,提供了一种系统,该系统包括:用于接收消息的装置;用于在所接收的消息中识别实体和与该实体相关联的联系人信息的装置;用于确定与所识别的实体相关联的联系人不存在于数据库中的多个联系人当中的装置;以及用于响应于该确定,生成与该实体相关联的联系人的装置,其中所生成的联系人包括联系人信息和关于所生成的联系人是建议联系人的指示。
在另一方面,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息项目;确定与所识别的实体相关联的联系人存在于数据库中的多个联系人当中并且确定该联系人不包括所识别的联系人信息项目;以及响应于该确定,更新该联系人以包括该联系人信息项目和关于该联系人信息项目是建议联系人信息项目的指示。
在一些具体实施中,所识别的实体包括姓名,并且所识别的联系人信息项目包括电话号码、地址、业务或社交网络处理。在一些具体实施中,所述识别包括识别消息的签名块,以及分析所识别的签名块,得到实体和联系人信息项目。在一些具体实施中,消息包括电子邮件,签名块包括电子邮件签名。在一些具体实施中,电子邮件包括电子邮件线程中的一封或多封先前的电子邮件,并且电子邮件签名的识别包括分析电子邮件线程中的一封或多封先前的电子邮件。在一些具体实施中,所述识别包括基于预定义短语集合在消息中识别一个或多个短语;并且分析一个或多个所识别的短语,得到实体和联系人信息项目。在一些具体实施中,该方法包括:经由网络更新预定义短语集合。在一些具体实施中,该方法包括:如果用户请求拒绝建议联系人信息项目,对预定义短语中的一者或多者进行降级。在一些具体实施中,该方法包括:把数据库中的联系人信息和电子设备上与联系人信息相关联的语言相互关联,来生成预定义短语中的一者或多者。在一些具体实施中,该方法包括:接收对某个联系人的请求;并且响应于对该联系人的请求,搜索建议联系人信息项目。在一些具体实施中,该方法包括:响应于联系人的更新,制止经由网络将建议联系人信息项目存储到远程数据库中。在一些具体实施中,该方法包括:接收将建议联系人信息项目添加到数据库的请求;并且响应于将建议联系人信息项目添加到数据库的请求,将所更新的联系人存储在数据库中,而不存储关于该联系人信息项目是建议联系人信息项目的指示。在一些具体实施中,该方法包括:响应于将建议联系人信息项目添加到数据库的请求,经由网络将所更新的联系人存储到远程数据库中,而不存储关于该联系人信息项目是建议联系人信息项目的指示。在一些具体实施中,该方法包括:接收拒绝建议联系人信息项目的请求;并且响应于拒绝建议联系人信息项目的请求,阻止将来因为在未来消息中识别到该实体和该联系人信息项目而用该建议联系人信息项目更新该联系人。
在一些具体实施中,提供了一种系统,该系统包括:用于接收消息的装置;用于在所接收的消息中识别实体和与该实体相关联的联系人信息项目的装置;用于确定与所识别的实体相关联的联系人存在于数据库中的多个联系人当中并且确定该联系人不包括所识别的联系人信息项目的装置;以及用于响应于该确定而更新该联系人以包括该联系人信息项目和关于该联系人信息项目是建议联系人信息项目的指示的装置。
在再一方面,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;生成关于所识别的联系人信息是建议联系人信息的指示;以及显示对应于与该实体相关联的联系人的第一用户界面,该第一用户界面包括第一用户界面对象,该第一用户界面对象基于所生成的指示来指示所识别的联系人信息是建议联系人信息。在一些具体实施中,该方法包括:阻止对应于选择建议联系人信息的输入调用应用程序来联系该实体。在一些具体实施中,该方法包括:在第一用户界面中检测对应于选择建议联系人信息的输入;并且响应于在第一用户界面中检测到对应于选择建议联系人信息的输入,显示第二用户界面,该第二用户界面包括与所识别的联系人信息相关联的第二用户界面对象,如果用户选择该第二用户界面对象,电子设备会将所识别的联系人信息添加到数据库。在一些具体实施中,第二用户界面包括与所识别的联系人信息相关联的第三用户界面对象,如果选择该第三用户界面对象,电子设备会停止显示第二用户界面对象。在一些具体实施中,显示第二用户界面时会停止显示第一用户界面。在一些具体实施中,第二用户界面显示消息的至少一部分。在一些具体实施中,该方法包括:检测对应于选择所显示的消息的输入;并且响应于检测到对应于选择所显示的消息的输入,调用应用程序来打开该消息。在一些具体实施中,消息包括电子邮件,应用程序包括电子邮件应用程序。在一些具体实施中,该方法包括:在第二用户界面中检测对应于选择建议联系人信息的输入;并且响应于在第二用户界面中检测到对应于选择建议联系人信息的输入,调用应用程序来使用所识别的联系人信息联系该实体。在一些具体实施中,该方法包括:响应于在第二用户界面中检测到对应于选择建议联系人信息的输入,将所识别的联系人信息添加到数据库。在一些具体实施中,该方法包括:响应于将所识别的联系人信息添加到数据库,停止显示第一用户界面对象。
在一些具体实施中,提供了一种系统,该系统包括:用于接收消息的装置;用于在所接收的消息中识别实体和与该实体相关联的联系人信息的装置;用于生成关于所识别的联系人信息是建议联系人信息的指示的装置;以及用于显示对应于与该实体相关联的联系人的第一用户界面的装置,该第一用户界面包括第一用户界面对象,该第一用户界面对象基于所生成的指示来指示所识别的联系人信息是建议联系人信息。
在又一方面,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的实体的第一用户界面对象;对应于所识别的联系人信息的第二用户界面对象;以及与所识别的联系人信息相关联的第三用户界面对象,如果用户选择该第三用户界面对象,电子设备会将所识别的联系人信息添加到数据库中。在一些具体实施中,第二部分包括与所识别的联系人信息相关联的第四用户界面对象,如果选择该第四用户界面对象,电子设备会停止显示第三用户界面对象。在一些具体实施中,消息包括电子邮件。在一些具体实施中,所识别的实体包括姓名,并且所识别的联系人信息包括电话号码、地址、业务或社交网络处理。
在一些具体实施中,提供了一种系统,该信息包括:用于接收消息的装置;用于在所接收的消息中识别实体和与该实体相关联的联系人信息的装置;以及用于显示对应于所接收的消息的第一用户界面的装置,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的实体的第一用户界面对象;对应于所识别的联系人信息的第二用户界面对象;以及与所识别的联系人信息相关联的第三用户界面对象,如果用户选择该第三用户界面对象,电子设备会将所识别的联系人信息添加到数据库中。
在又一方面,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别事件信息;生成与所识别的事件信息相关联的日历事件,所生成的日历事件包括事件信息和关于所生成的日历事件是建议日历事件的指示。在一些具体实施中,所识别的事件信息包括日期和时间。在一些具体实施中,所述识别包括:识别消息中的内容的格式;从预定义模板集合中识别被配置为辨识消息中呈内容的格式的事件信息的模板;并且使用所识别的模板分析内容,得到事件信息。在一些具体实施中,消息包括电子邮件,内容包括预订。在一些具体实施中,该方法包括:经由网络更新预定义模板集合。在一些具体实施中,所述识别包括基于日期和时间的预定义标引集合来在消息中识别一个或多个日期和时间的标引;并且分析一个或多个所识别的日期和时间的标引,得到事件信息。在一些具体实施中,该方法包括:经由网络更新日期和时间的预定义标引集合。在一些具体实施中,该方法包括:如果用户请求拒绝建议日历事件,则对一个或多个日期和时间的预定义标引进行降级。在一些具体实施中,该方法包括:把包括多个日历事件的数据库中的事件信息和电子设备上与事件信息相关联的语言相互关联,来生成一个或多个日期和时间的预定义标引。在一些具体实施中,该方法包括:接收对日历事件的请求;并且响应于对日历事件的请求,搜索建议日历事件。在一些具体实施中,该方法包括:响应于日历事件的生成,制止经由网络将建议日历事件存储到远程数据库中。在一些具体实施中,该方法包括:接收将建议日历事件添加到包括多个日历事件的数据库的请求;并且响应于将建议日历事件添加到数据库的请求,将所生成的日历事件存储到数据库中,而不存储关于所生成的日历事件是建议日历事件的指示。在一些具体实施中,该方法包括:响应于将建议日历事件添加到数据库的请求,经由网络将所生成的日历事件存储到远程数据库中,而不存储关于所生成的日历事件是建议日历事件的指示。在一些具体实施中,该方法包括:接收拒绝建议日历事件的请求;并且响应于拒绝建议日历事件的请求,阻止将来因为在未来消息中识别到该事件信息而生成该建议日历事件。
在一些具体实施中,提供了一种系统,该系统包括:用于接收消息的装置;用于在所接收的消息中识别事件信息的装置;用于生成与所识别的事件信息相关联的日历事件的装置,其中所生成的日历事件包括事件信息和关于所生成的日历事件是建议日历事件的指示。
在另外一方面,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别事件信息;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的事件信息的第一用户界面对象;以及与所识别的事件信息相关联的第二用户界面对象,如果用户选择该第二用户界面对象,电子设备会将所识别的事件信息添加到包括多个日历事件的数据库。在一些具体实施中,第二部分包括与所识别的事件信息相关联的第三用户界面对象,如果选择该第三用户界面对象,电子设备会停止显示第二用户界面对象。在一些具体实施中,消息包括电子邮件。在一些具体实施中,所识别的事件信息包括日期和时间。在一些具体实施中,提供了一种系统,该系统包括:用于接收消息的装置;用于在所接收的消息中识别事件信息的装置;以及用于显示对应于所接收的消息的第一用户界面的装置,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的事件信息的第一用户界面对象;以及与所识别的事件信息相关联的第二用户界面对象,如果用户选择该第二用户界面对象,电子设备会将所识别的事件信息添加到包括多个日历事件的数据库。
在另外又一方面,提供了一种在电子设备(例如,图1A中的设备 100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别联系人信息或事件信息的多个实例;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,如果选择该第二部分,电子设备会显示第二用户界面,该第二用户界面包括所识别的联系人信息或事件信息的多个实例的列表。在一些具体实施中,该方法包括:检测对应于选择第一用户界面的第二部分的输入;并且响应于检测到对应于选择第一用户界面的第二部分的输入,显示第二用户界面,该第二用户界面包括:所识别的联系人信息或事件信息的多个实例的列表;以及针对所识别的联系人信息或事件信息的多个实例中的每一者的第一用户界面对象,如果用户选择该第一用户界面对象,电子设备会将所识别的信息添加到数据库。在一些具体实施中,第二用户界面针对所识别的联系人信息或事件信息的多个实例中的每一者包括第二用户界面对象,如果选择该第二用户界面对象,电子设备会停止显示第一用户界面对象。在一些具体实施中,第二用户界面包括第三用户界面对象,如果选择该第三用户界面对象,电子设备会将所识别的联系人信息或事件信息的多个实例的分组中的每一者添加到数据库。在一些具体实施中,显示第二用户界面时会停止显示第一用户界面。
在一些具体实施中,提供了一种系统,该信息包括:用于接收消息的装置;用于在所接收的消息中识别联系人信息或事件信息的多个实例的装置;以及用于显示对应于所接收的消息的第一用户界面的装置,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,如果选择该第二部分,电子设备会显示第二用户界面,该第二用户界面包括所识别的联系人信息或事件信息的多个实例的列表。
在一些具体实施中,提供了一种电子设备,该电子设备包括:一个或多个处理器、存储器以及一个或多个程序,其中所述一个或多个程序存储在存储器中并且被配置为由所述一个或多个处理器执行,并且所述一个或多个程序包括用于执行本部分中上述任何方法的指令。在一些具体实施中,提供了计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,所述一个或多个程序包括指令,这些指令在由电子设备执行时,使得该设备执行本部分所述方法中的任何一种。在一些具体实施中,提供了一种系统,其包括用于执行本节中所述的任何方法的装置。
第5部分:在数据稀疏性上下文中学习复杂用户模式的生成模型的决策树分段
本部分中的内容“在数据稀疏性上下文中学习复杂用户模式的生成模型的决策树分段”描述了根据一些实施方案的用于在数据稀疏性上下文中学习复杂用户模式的生成模块的决策树分段,并且提供了补充本部分中所提供的公开内容的信息。例如,本部分的一些部分描述了响应于设备上的事件来建议应用程序的方式,这补充了本部分中提供的公开内容,例如与填充对应于图9B-9C的预测部分930中的应用程序和深层链接的示能表示相关的那些公开内容。在一些实施方案中,本部分中描述的预测模型用于帮助识别适用于预测和向用户显示的应用程序(即,这些预测模型与方法 600,800,1000和1200结合使用)。
在数据稀疏性上下文中学习复杂用户模式的生成模型的决策树分段的发明内容
实施方案可以提供用于基于事件向计算设备的用户建议一个或多个应用程序的系统、方法和装置。计算设备的示例是电话、平板电脑、膝上型电脑或台式计算机。示例性事件包括连接到附件设备和改变电源状态(例如,从关机或睡眠状态唤醒)。
预测模型可以对应于特定事件。可以使用计算设备的一个或多个属性来确定建议的应用程序。例如,可以从关于事件发生之后的用户交互以及当设备具有一个或多个属性时收集的历史数据的子集生成特定子模型(例如,在连接到某人的车这一事件之后选择了哪个应用程序的这一用户交互,其具有一天中的特定时间这一性质)。可以对应于计算设备属性的不同上下文来确定子模型树。并且,可以使用各种标准来确定何时生成子模型,例如,在历史数据子集中提供正确预测的子模型中的置信水平,以及历史数据分布中相对于父模型的信息增益(熵减少)。
其他实施方案涉及与本部分所述的方法相关联的系统、便携式消费设备以及计算机可读介质。
通过参考以下具体实施方式和附图,可更好地理解本部分的实施方案的实质和优点。
在数据稀疏性上下文中学习复杂用户模式的生成模型的决策树分段的详细描述
实施方案可以提供用于向设备的用户建议应用程序的定制和个性化体验,从而使该设备的使用变得更容易。用户可以在特定事件之后发生与用户设备的一组充分的交互(例如,哪些应用程序与事件关联地被启动,或正在与事件关联地运行)。计算设备的示例是电话、平板电脑、膝上型电脑或台式计算机。示例性事件包括连接到附件设备和改变电源状态(例如,从关机或睡眠状态唤醒)。
历史数据中的每个数据点可以对应于特定上下文(例如,对应于设备的一个或多个属性),随着时间推移,会获得用于特定上下文的越来越多的数据。用于特定事件的历史数据可用于向用户建议应用程序。由于不同的用户将具有不同的历史数据,因而实施方案可以提供个性化的体验。
为了提供准确的个性化体验,各种实施方案可以从一个宽泛的模型开始,该模型被简单地训练而不提供应用程序建议,或为各种上下文建议相同的一组应用程序。利用足够的历史数据,该宽泛模型可以被分段为子模型,例如,作为子模型的决策树,每个子模型对应于历史数据的一个不同子集。然后,当事件确实发生时,可以选择特定的子模型来提供对应于设备当前上下文的建议的应用程序。可以使用各种标准来确定何时生成子模型,例如,在历史数据子集中提供正确预测的子模型中的置信水平,以及历史数据分布中相对于父模型的信息增益(熵减少)。
在一些实施方案中,“置信水平”对应于模型可以基于历史数据进行正确预测(即,所预测的应用程序中的至少一个在事件之后受到选择)的概率。置信水平的一个示例是进行了正确预测的事件的百分比。另一个示例使用从正确预测数量和不正确预测数量生成的概率分布(例如,β分布) 的累积分布函数(CDF)。可以通过对概率分布进行积分来计算CDF。在各种具体实施中,置信水平可以是CDF超出输入值(例如,在0和1之间,其中1对应于正确预测)的增长量,或者提供超出输入值的指定CDF的输入值。某一应用程序受到选择的概率可能需要是阈值概率,阈值概率是置信水平高于置信阈值的模型的推论。置信水平可以与熵度量成反比,因此从母模型到子模型的置信水平增加可以对应于熵的降低。
因此,一些实施方案可以决定何时以及如何在用户推荐的上下文中将用户的历史数据分段。例如,在收集一段时间的用户活动之后,实施方案可以累积可能的分段候选项的列表(例如,位置、星期几等)。实施方案还可以训练整个数据集上的模型,并计算数据集和模型的联合分布的置信度度量。可以训练一组模型,为每个分段的数据集(即子集)训练一个,然后测量每个数据模型分布的置信度。如果所有数据模型分布的置信度是可接受的,那么实施方案可以执行分段(分割),然后递归地检查经分段的空间,以用于附加分段。
以这种方式,一些实施方案可以使用推论来探索分段和泛化之间的折衷,为具有更加清晰而复杂的模式的用户创建更复杂的模型,并且为具有更嘈杂而简单的模式的用户创建简单的一般模型。并且,一些实施方案可以基于在潜在候选模型中确定散度分布来生成概率模型树。
I.基于事件建议应用程序
实施方案可以基于事件来建议应用程序,该事件可能限于某些预定事件(也称为触发事件)。例如,当耳机插入到耳机接口中,则可以建议音乐应用程序。在一些实施方案中,上下文信息可以与事件结合使用以识别要向用户建议的应用程序。例如,当将一组耳机插入到耳机插口中时,可以使用与位置相关的上下文信息。如果设备位于例如健身房,则当耳机插入耳机插口时可建议应用程序A。另选地,如果设备位于家中,则当耳机插入耳机插口时可建议应用程序B。因此,可以在适当时候建议可能在某些上下文下受到使用的应用程序,从而增强用户体验。
在一些实施方案中,“上下文信息”统称为可用于定义设备的上下文的任何数据。给定上下文的上下文信息可以包括一个或多个上下文数据,每个上下文数据对应于设备的一种不同属性。潜在的属性可以属于不同的类别,诸如时间类别或位置类别。上下文数据被用作模型(或子模型)的特征,而用于训练模型的数据可以包括相同类别的不同属性。特定上下文可以对应于设备属性的特定组合,或者仅对应于一个属性。
图35_1是根据本发明实施方案的用于基于所检测的事件来建议应用程序的方法35_100的流程图。方法35_100可以由移动设备(例如,电话、平板电脑)或非移动设备执行,并且利用设备的一个或多个用户界面。
在一些实施方案中,“用户界面”对应于用户与设备发生交互的任何界面。应用程序的用户界面允许用户与该应用程序进行交互。当应用程序运行时,用户界面可以是应用程序的界面。又如,用户界面可以是系统界面,其提供了一组简化的应用程序以供用户选择,从而使得用户更容易地使用该应用程序。
在框35_110处,检测到事件。在一些实施方案中,可以确定事件是否为用于建议应用程序的触发事件。在一些具体实施中,仅针对某些预定事件(例如,触发事件)来确定建议的应用程序。在其他具体实施中,可以针对动态事件列表来确定建议的应用程序,该动态事件列表可以基于与设备上的应用程序所发生的历史用户交互来更新。
在一些实施方案中,可以将触发事件识别为充分可能地与设备的独特操作相关联。触发事件的事件列表可以存储在设备上。此类事件可以是默认列表,并作为操作系统的一部分被维护,并且可以由或可以不由用户进行配置。
触发事件可以是由用户和/或外部设备引起的事件。例如,触发事件可以是当附件设备连接到移动设备时。示例包括将耳机插入耳机插口、进行蓝牙连接、打开设备、将设备从睡眠唤醒、到达特定位置(例如,被识别为经常访问的位置)等。在该示例中,这些事件中的每一个可以被分类为不同的触发事件,或者触发事件可以共同地是连接到移动设备的任何附件设备。作为其他示例,触发事件可以是用户与设备的特定交互。例如,用户可将移动设备按与运行一致的方式移动,这种情况下设备的运行状态是触发事件。可以基于设备的传感器来确定这样的运行状态(或其他状态)。
在框35_120处,识别到与该事件相关联的应用程序。例如,当耳机插入到耳机接口中,则可以识别到音乐应用程序。在一些实施方案中,可以识别不止一个应用程序。预测模型可以识别所述相关联的应用程序,其中可以为特定事件选择预测模型。预测模型可以使用上下文信息来识别应用程序,这是因为例如不同的应用程序可能更可能在不同的上下文中受到使用。一些实施方案可以仅在有足够概率被用户选择时(例如,由用户与设备的历史交互确定)才能识别应用程序。
预测模型可以由子模型组成,每个子模型用于不同的上下文数据组合。不同的组合可以具有不同上下文数据量。这些子模型可以在层级树中生成,其中更具体组合的子模型在层级树中所处位置更低。在一些实施方案中,只有当子模型可按比树中更高的模型更准确地预测应用程序时,才会生成该子模型。以这种方式,可以对用户将选择哪个应用程序进行更准确的预测。在一些实施方案中,预测模型和子模型可以识别在存在上下文数据的特定组合时在事件之后由用户选择的前N个应用程序(例如,固定百分比数)。
上下文信息可以针对特定上下文指定设备的一个或多个属性。上下文可以是当接收到触发事件时设备的周围环境(上下文的类型)。例如,上下文信息可以是一天中检测到该事件的时间。在另一示例中,上下文信息可以是当检测到该事件时设备的特定位置。在又一示例中,上下文信息可以是检测到触发事件时的特定日期。这样的上下文信息可以提供关于设备的上下文的更有意义的信息,使得预测引擎可以准确地建议用户在该上下文中可能使用的应用程序。因此,与不使用上下文信息相比,使用上下文信息的预测引擎可以更准确地向用户建议应用程序。
在框35_130处,与应用程序关联地执行一个动作。在一个实施方案中,该动作可以是为用户显示用以选择以运行应用程序的用户界面。用户界面可按各种方式提供,例如通过在设备的屏幕上显示、投影到表面上、或者提供音频接口的方式提供。
在其他实施方案中,可以运行某一应用程序,并且可以向用户提供特定于该应用程序的用户界面。可以响应于例如在锁定屏幕上识别应用程序,而提供任一个用户界面。在其他具体实施中,可以在(例如,通过密码或生物识别)认证用户之后提供用以与应用程序交互的用户界面,但是这样的用户界面将比只有home屏幕的情况更具体,诸如要运行的建议应用程序的较小列表。
在一些实施方案中,“锁定屏幕”是当用户未被验证因而在大多数使用情况下设备被锁定时所示的屏幕。一些功能可以是外露的,例如相机。在一些实施方案中,如果对应于所建议的应用程序的用户界面外露在锁定屏幕上,则可以获得与所建议的应用程序相关联的一些功能。例如,可以运行该应用程序。如果应用程序从锁定屏幕运行,则功能可能受到限制,并且当用户受到验证时有限的功能可得以扩展。
在一些实施方案中,“home屏幕”是当设备首次接通电源时出现的设备屏幕。对于移动设备,home屏幕通常显示与可在设备上运行的各种应用程序相对应的图标阵列。可以访问其他屏幕来浏览home屏幕上未出现的其他应用程序。
II.分段
每当发生特定事件(例如,插入耳机或使设备上电时),设备可以跟踪与事件相关联地使用哪个应用程序。响应于特定事件的每次出现,设备可以保存对应于所选应用程序、使用该应用程序执行的动作以及该事件的数据点。在各种实施方案中,可以单独地保存数据点或与针对特定应用程序被选择的次数确定的计数聚合地保存数据点,其中该计数可以包括用于特定动作的计数。因此,针对同一选择的应用程序的不同动作确定不同的计数。先前用户与设备发生交互的历史数据可以用作确定预测模型的输入,并且用作确定是否要创建子模型以及创建多少个子模型的输入。
一旦检测到特定的事件,就可以选择对应于该特定事件的预测模型。将使用对应于特定事件的历史数据作为训练过程的输入来确定该预测模型。然而,历史数据可能在许多不同的上下文(即,上下文信息的不同组合)中发生,其中在不同的上下文中选择不同的应用程序。因此,总的来说,历史数据可能不会提供将在特定事件发生时受到明确选择的应用程序。
可以对诸如神经网络或回归的模型进行训练,以识别用于特定上下文的特定应用程序,但是当使用了所有相应的历史数据时,这可能较为困难。使用所有历史数据可能导致预测模型过度拟合,并且导致准确度降低。本发明的实施方案可以将历史数据分段成历史数据的不同输入集,每一个输入集对应于不同的上下文。可以针对不同的历史数据输入集训练不同的子模型。
分段可以提高机器学习系统的性能。在分段的一个步骤中,输入空间可以分为两个子空间,这些子空间中的每一个都可以用独立的子模型独立求解。此类分段过程可以增加系统可用的空闲参数的数量,并且可以提高训练准确度,但其代价为减少每个模型中的数据量,这可以在系统被显示新数据时降低系统的精度,例如,如果子模型的数据量很小。只有当从所得子空间创建的数据和模型参数的联合分布较为确信时,实施方案才能对输入空间进行分段。
A.基于不同上下文数据的不同模型
当特定事件发生时,设备可以处于各种上下文中,例如在不同的位置,在不同的时间,在设备的不同运动状态(诸如跑步、步行、在开车,或静止不动),或处于不同的电力使用状态(诸如自睡眠模式被打开或转变)。可以联合所检测的事件检索上下文信息,例如在检测到该事件之后检索上下文信息。可以使用上下文信息来帮助预测可能关于所检测的事件使用哪个应用程序。可以使用诸如加速度计、陀螺仪或GPS传感器的运动传感器来确定不同的运动状态。
实施方案可按各种方式使用上下文信息。在一个示例中,可以使用一条上下文数据(例如,对应于设备的一个属性)作为特定子模型的特征,来预测哪个接收人最有可能被选择。例如,设备的特定位置可以被提供为子模型的输入。这些特征是子模型组成的一部分。
又如,上下文信息的一些或全部上下文数据可以在分段过程中使用。可以使用某段上下文数据来对输入的历史数据进行分段,使得仅使用与该段上下文数据的对应属性相对应的历史数据来确定特定子模型。例如,设备的特定位置不会被用作子模型的输入,而是用于选择要使用的子模型,以及相应地使用哪个输入数据来生成特定子模型。
因此,在一些实施方案中,特定上下文数据可用于识别要使用哪个子模型,并且其他上下文数据可以用作子模型的输入,用于预测用户可能与哪个应用程序进行交互。特定属性(例如,特定位置)不对应于特定子模型,该特定属性可被用作未来(输入)所使用的子模型。如果该特定属性对应于某一特定子模型,则该属性的使用情形可以变得更加丰富,因为整个模型都专用于该特定属性。
将子模型专用于特定属性(或属性的组合)的一个缺点是,可能没有大量与该特定属性相对应的历史数据。例如,用户可能只在特定位置几次执行特定事件(例如,插入耳机)。这种有限的数据量也被称为数据稀疏。当使用属性的组合(例如,特定时间的特定位置)时,数据可能变得更加稀疏。为了克服这个缺点,实施方案可选择性地确定何时生成新的子模型作为分段过程的一部分。
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更高水平的子模型概率,则可以执行分段。还可以使用一个或多个其他标准,来确定是否应该创建子模型作为分段过程的一部分。例如,一个标准可以是,在应用子模型之前,子模型必须具有统计意义上显着的输入历史数据量。由于在少量数据上训练的模型可能不准确,因此对数据量的要求可以为子模型提供更大的稳定性,并且最终提供更准确的数据。
在分段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_210进行进一步分段,以生成上午健身房子模型35_212。在这种情况下,针对上午时间已收集到足够的历史数据,在该时间中,可按比使用更一般的健身房子模型35_210(其仅使用不与下午健身房子模型35_211相对应的数据)更高的准确度来预测应用程序。
1.默认模型
当设备被用户第一次获得(例如带来)时,可以使用默认模型。默认模型可以应用于一组事件(例如,指定为触发事件的所有事件)。如上所述,可以作为种子的默认模型是来自其他用户的聚合数据。在一些实施方案中,默认模型可以简单地选取最流行的应用程序,而不管上下文,例如,由于没有足够的数据可用于任何一个上下文。再次收集数据后,可以丢弃默认模型。
在一些实施方案中,默认模型可以具有硬编码的逻辑,其指定要建议的预定应用程序和要执行的动作。这样,可以探测用户如何响应(例如,否定响应是用户不选择建议的应用程序),这样可以提供简单地跟踪来自用户的肯定响应的额外数据。类似于这种默认模型,可以运行预测模型来将其预测与实际结果进行比较。然后可以根据实际结果来改进预测模型。当预测模型具有足够的置信度时,可以从默认模型切换到预测模型。类似地,可以跟踪子模型的性能。当子模型具有足够的置信度时,子模型可以用于给定的上下文。
2.初始训练
预测模型(例如,事件模型35_205)可以使用到目前为止收集的历史数据来进行初始训练,其中该模型不向用户提供建议。这种训练可以称为初始训练。可以周期性地(例如,每天)更新预测模型来作为后台进程的一部分,这可以在设备充电并且不使用时发生。训练可以涉及优化模型的系数,以便优化正确预测的数量,并与历史数据中的实际结果进行比较。在另一示例中,训练可以包括识别实际选择的前N个(例如,预定数量或预定百分比)应用程序。训练后,可以测量模型的准确度,以确定是否应使用该模型来向用户提供建议的应用程序(和潜在的相应动作)。
一旦模型获得足够的准确度(例如,顶部选择的应用程序是以足够高的准确度被选择的),则可以实现该模型。对于顶级模型(例如,事件模型35_205),这种情况可能不会发生,但是当针对特定上下文测试子模型时可能发生这种情况。因此,可以类似地对子模型执行这样的初始训练。
随着历史信息通过移动设备的使用而累积,可以考虑到新的历史信息来周期性地对预测模型进行训练(即更新)。经过训练后,预测模型可以根据用户和移动设备之间的最新交互模式更准确地建议应用程序和动作。当记录了大量历史信息时,训练预测模型可能是最有效的。因此,训练可以在足够长的时间间隔发生,以允许移动设备检测与用户的大量交互。然而,在训练项目之间等待太久的时间段可能会妨碍预测引擎的适应力。因此,训练项目之间的合适时间段可以在15至20小时之间,诸如18小时。
训练预测模型可能需要时间,并且可能会干扰移动设备的使用。因此,可以在用户最不可能使用该设备时发生训练。预测用户将不使用设备的一种方法是在设备未被使用时等待某个时间段,例如在没有按钮被按下时以及设备没有移动时。这可以指示用户处于在一段短时间内不会与手机交互的状态,例如当用户睡着时。任何合适的持续时间都可以作为要等待的时间段,诸如一到三个小时。在特定实施方案中,等待的时间段是两个小时。
在这两小时结束时,可以更新预测模型。然而,如果用户在两小时结束之前与移动设备交互(例如,按下按钮或移动设备),则可以重新启动两个小时的时间段倒计时。如果在达到两个小时不活动之前该时间段不断重新启动,则移动设备可以在某个绝对时间段之后强制训练预测模型。在一个实施方案中,可以将该绝对时间段被确定为移动设备的用户友好性由于预测模型过时而开始下降的阈值时间段。该绝对时间段可以在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的第一层级对应于位置类别。节点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具有两个子节点:节点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具有两个子节点:节点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可以使用一组历史交互,包括具有计算设备的一个或多个属性的不同集合的交互来建议应用程序。
在框35_410处,设备在输入设备处检测事件。输入设备的示例是耳机接口、网络连接设备、触摸屏、按钮等。事件可以是移动设备与外部实体诸如外部设备或用户交互的任何动作。事件可以是对于设备重复的类型。因此,可以针对事件的不同发生获得历史统计数据。可以使用这种历史数据来训练模型和子模型。
在框35_420处,选择对应于事件的预测模型。所选择的预测模型可以取决于事件。例如,当事件涉及与外部设备建立蓝牙连接时,可以选择设计用于蓝牙连接的预测模型。又如,当事件涉及将一组耳机插入耳机接口时,可以选择设计用于耳机连接的预测模型。
在框35_430处,接收计算设备的一个或多个属性。这一个或多个属性可以由在设备上执行的应用程序建议引擎接收。如本节所述,属性可以对应于时间、位置、运动状态、当前或先前的电源状态(例如,开、关或睡眠)、充电状态、当前音乐选择、日历事件等。这样的一个或多个属性可以对应于定义设备的特定上下文的上下文数据。这一个或多个属性可以在检测到事件的时间附近(例如在一段时间内)被测量。该时间段可以包括在检测到事件之前和之后的时间、恰好在检测到事件之前的时间段,或恰好在检测到事件之后的时间。
在框35_440处,使用一个或多个属性来选择预测模型的特定子模型。例如,可以遍历决策树以确定该特定子模型。特定子模型可以对应于一个或多个属性,例如,因为这一个或多个属性可以唯一地标识该特定子模型。当决策树被定义为在同一父节点下不具有不同类别的属性时,可能会发生这种情况。
可以使用用户与设备的历史交互的特定子集来生成特定子模型。该特定子集可以由分段过程产生,分段过程通过创建子模型来提高准确度。可以通过在事件发生后跟踪用户与设备的交互来获得历史交互的特定子集。当获得特定子集时,计算设备具有这一个或多个属性。因此,设备的当前上下文对应于设备的在其中获得了历史交互的特定子集的上下文。
在框35_450处,特定子模型识别要向用户建议的一个或多个应用程序。这一个或多个应用程序可以具有由用户与该事件关联地访问的一个或多个应用程序中的至少一个的至少一个阈值概率。预测历史数据中的一个或多个应用程序中的一个可以被识别为一次正确预测。阈值概率可以采用各种方式来测量,并且可以使用从历史数据确定的概率分布,如下面更详细描述的。例如,可以需要概率分布的平均(均值)概率、中值概率或峰值高于阈值概率(例如,高于0.5,相当于50%)。因此,置信水平可以是概率分布的平均值、中值或峰值。另一个示例是概率分布上高于特定值的区域大于阈值概率。
在框35_460处,为用户提供用于与一个或多个应用程序进行交互的用户界面。例如,设备可以经由用户可以与之交互以指示用户是否希望访问所识别的应用程序的界面,来向用户显示所识别的应用程序。例如,该用户界面可以包括触敏显示器,该显示器向用户显示所识别的应用程序中的一个或多个,并且允许用户通过与该触敏显示器交互来访问由设备识别的一个或多个应用程序。该用户界面可以允许在具有比计算设备home屏幕上提供的应用程序更少的应用程序的显示屏上交互。
例如,可以在锁定屏幕上提供一个或多个建议的应用程序。用户可以选择从锁定屏幕打开应用程序,从而使用户更容易与应用程序进行交互。可以在其他屏幕上提供用户界面,该用户界面可以在激活按钮以开始使用设备之后出现。例如,特定于应用程序的用户界面可以在(例如,经由密码或生物特征)认证用户之后出现。
C.示例性模型
在一些实施方案中,模型可以为给定的数据集(或子集)选择前N个应用程序。由于这N个应用程序在过去被最多地选取,所以可以预测,未来的行为将反映过去的行为。N可以是预定数量(例如,1,2或3)或百分比的应用程序,它可以是与事件关联地实际使用的应用程序百分比(即,不是设备上的所有应用程序)。这样的模型可以选择前N个应用程序来提供给用户。可以进行进一步的分析,例如,以确定这N个应用程序中的每个应用程序的概率(置信)水平,从而确定是否将它们提供给用户,以及如何将它们提供给用户(例如,动作),这可以取决于置信水平。
在N等于3的示例中,当事件在上下文信息对应于特定子模型的情况下发生时,模型将返回启动最多的前三个应用程序。
在其他实施方案中,与仅使用上下文信息来选择子模型相反,子模型可以使用复合信号,其中一些上下文信息用于确定预测的应用程序。例如,神经网络或逻辑回归模型可以使用位置(或其他特征)并构建这些特征的线性加权组合的类型来预测应用程序。当子模型的数据量明显很大时,此类更复杂的模型可能更适合。一些实施方案可在再次获得用于特定节点(即,上下文数据的特定组合)的数据之后切换在该节点处使用的子模型的类型。
IV.模型和决策树的生成
在一些实施方案中,可以基于重新生成时的历史数据来周期性地(例如,每天)重新生成决策树。因此,决策树在不同的日子可以有不同的形式。子节点(另一个子模型)的生成可以根据用于预测应用程序的置信度增大(也称为信息增益)来控制。子节点的生成还可以根据用于该子节点的数据是否具有统计显著性来控制。在一些实施方案中,给定级别的所有子节点(例如,健身房子模型35_210和其他子模型35_240)可能需要具有统计显著性并且相对于父模型提供信息增益。
在确定决策树的节点时,可以采用各种方式执行分段,以产生不同的决策树。例如,可以使用特定位置和特定时间两者。在一些实施方案中,在决策中可以产生更高的为预测应用程序提供最高信息增益(置信度)增加的属性。这样的分段过程可以确保预测用户将与之交互的正确应用程序的最高概率。
A.模型的准确度分布
模型的准确度可以对照历史数据进行测试。对于给定的事件,历史数据可以识别哪些应用程序与事件关联地使用(例如,恰好在事件之前或恰好在事件之后,诸如一分钟内)。对于每个事件,可以使用上下文数据来确定特定模型。此外,上下文数据可以用作模型的输入特征。
在模型(或子模型)选择顶部应用程序的示例中,可以将实际选择 (启动)顶部应用程序时的多个历史数据点确定为正确的计数,并且可以将顶部应用程序未被选择时的多个历史数据点确定为不正确的计数。在对于选择前N个应用程序的模型而言N大于一的实施方案中,正确的计数可对应于启动了这前N个应用程序中的一个时的任何历史数据点。
正确的计数和不正确的计数可用于确定一个分布,该分布指定模型的准确度如何。可以将二项分布用作准确度分布。具有参数m和p的二项分布是m个独立是/否实验的序列中成功次数的离散概率分布。这里是/否实验是关于预测的N个应用程序中的一个是否正确。例如,如果该模型预测音乐应用程序将被启动,并且音乐应用程序已被启动,则数据点将添加到“是”(“真”)实验数量。如果音乐应用程序未被启动(例如,启动了另一个应用程序或未启动任何应用程序),则数据点将添加到“否” (“伪”)实验数量。
根据贝叶斯定理,p(A│B)=(p(B|A)(P(A))/(P(B))。B是获得指定的已确定的正确计数T和不正确计数F的事件。A是预测的应用程序正确的事件。P(A)是随机选择正确应用程序的先验(期望)概率,它可以被假设为 1,因为没有任何特定应用程序会比任何其他应用程序更被期望,至少没有历史数据。P(A)是模型正确的概率(它对应于正确计数除以总历史事件)。P(B|A)是对于给定概率r(即事件A,它可以被取为0.5来表示正确或不正确的相同概率),获得正确计数T和不正确计数F的似然函数。 P(A|B)是要确定的后验概率,即给定历史数据B时,选择预测应用程序中的一个的概率。
如果先验分布均匀,则P(A)不存在,剩下P(A|B)/P(B),它等于 Beta[正确数,不正确数],即参数为α=正确数和β=不正确数的beta分布。因为对于α=0或β=0,β函数不明确,所以实施方案可以假定对于正确数和不正确数,初始值为1。Beta[1+正确数,1+不正确数]是二项分布。
对于贝叶斯统计,给定证据X(例如,历史数据的正确计数和不正确计数),后验概率p(θ│X)是参数θ的概率(例如,实际选择的应用程序是预测应用程序中的一个)。它与似然函数p(x|θ)形成对照,该似然函数是给定参数(例如,为事件选择该预测应用程序),证据X(例如,历史数据的正确计数和不正确计数)的概率。这两者的关系如下:让我们有一个先验信念,即概率分布函数为P(θ)(例如,所选应用程序正确的期望概率) 并且观测值X具有似然度p(x|θ),则后验概率被定义为p(θ│X)=(p(X|θ)(P(θ))/(P(X))。后验概率可以被认为与似然度和先验概率之积成正比。
可以使用其他准确度分布。例如,可以使用Dirichlet分布,该分布是 beta分布的多元推广。Dirichlet分布是分类分布和多项分布的共轭先验,类似于beta分布是二项分布的共轭先验。Dirichlet使其概率密度函数返回这样的信念,即K个对立事件的概率是x_i,如果给定每个事件已被观测α_i- 1次。Dirichlet分布可用于将应用程序启动的整个直方图(即,针对特定事件的预测应用程序启动次数)生成为多项分布。
相反,实施方案可以将它们分成两类(正确和不正确),因此使用二项分布并且不必提供整个直方图。其他实施方案可以使用Dirichlet分布 (多项分布的共轭先验)来尝试解决更难的描述整个直方图的问题,但是由于需要解释更多的数据,这需要使更多的数据可信。
B.示例性二项分布
图35_5A至图35_5D示出了根据本发明实施方案的用于各种正确数和不正确数的示例性二项分布的曲线图。这些曲线图是从Beta[1+正确数,1+ 不正确数]产生的。在曲线图中的横轴上,1对应于正确的预测,0对应于不正确的预测。纵轴提供模型将正确的频率的概率。这些分布也称为概率密度函数(PDF)。可以将分布归一化以用于比较。
图35_5A示出了对于两个正确预测和两个不正确预测的二项分布。这样的模型将具有相等的正确数和不正确数,因此最高概率出现在0.5处。 0.5处的最大值表示,最可能的是该模型只有一半的时间预测准确。鉴于数据点数量较少,该分布相当宽。因此,关于模型准确度的置信度很低。可感知的概率是该模型在50%的时间较不准确,或者在50%的时间较准确。但是,由于数据点数量少,因此确定准确度的置信度很低。
图35_5B示出了对于2个正确预测和1个不正确预测的二项分布。这样的模式在66%的时间是正确的。因此,该分布的峰值出现在约0.66处。但是,鉴于数据点数量较少,因此置信度非常低。可感知的概率是该模型只在10%或20%的时间才可能准确。
图35_5C示出了对于四个正确预测和两个不正确预测的二项分布。这样的模型也是在66%的时间是正确的。但是,仍鉴于数据点数量较少,仍然存在可感知的概率,即该模型只有30%的准确率,如果数据再次可用的话。
图35_5D示出了对于40个正确预测和20个不正确预测的二项分布。这样的模式同样在66%的时间是正确的。但是,鉴于数据点数量较多,该模型的准确率只有30%的可能性非常低。因此,该分布表明在能够确定模型的准确度为66%方面的置信度更高。此外,该分布下更多的区域在0.5 的右侧,因此可以比图35_5B的情况下更可信地确定该模型在至少50%的时间是准确的。
C.统计显著性
如果模型可以足够的置信度准确地区分它何时正确和何时错误的情况,则可以将该模型视为具有统计显著性。可以使用基于不正确预测和正确预测数量确定的后验概率分布来以足够的置信度确定该模型是否足够准确。
统计显著性所需的置信水平可以采用各种方式提供,并可以具有各种标准。可以要求分布的平均准确率(正确数/总数)、分布的峰值或分布的中位数具有一定的值。例如,可以要求该模型在至少50%的时间是正确的,例如根据分布的平均值所测量的(即,大于0.5)。正确数/总数也称为最大似然估计。
另一个标准(置信水平)可以用于准确度的置信度。置信度可以通过分布的在下限上方的积分(例如,分布的在0.25或其他值上方的面积)来衡量。分布曲线下的面积也称为累积分布函数。在一个实施方案中,该标准可以是PDF的95%的面积大于0.25。区间[x,1.0]覆盖PDF下方95%的面积的点被称为“置信下限”。因此,如果你正确了两次并且错误了一次,则表示你在66%的时间是正确的,但这并不具有统计显著性,因为分布非常宽,如图35_5B中那样。
一些实施方案只有在模型足够准确并且有足够的置信度来了解准确度时,才会开始使用该模型(例如,顶级模型或子模型)。例如,初始模型可能会在使用之前被训练一段时间。只有当准确度和置信度高于相应的阈值,实施方案才可能开始使用该模型来向用户提供建议。在一些实施方案中,对PDF一定量区域的要求可以提供用于确定是否使用模型的单个标准,因为如果该区域被足够地向右移动,则准确度可被认为足够高。
在一些实施方案中,初始模型可以使用来自其他人的数据来提供更多的统计值,至少在起初可以这样。然后,一旦获得足够的统计值,那么只能使用特定人员的数据。此外,特定于用户的数据可以具有更高的权重,以便逐步淘汰来自其他人的数据。
D.信息增益(熵)
可以在模型的第一概率分布和子模型的第二概率分布之间进行比较,以确定是否将模型分段。在一些实施方案中,该比较可以确定是否存在信息增益(例如,Kullback-Leibler散度),或者等效地,熵的降低。高熵将使许多应用程序具有相似的被选择的概率,最大熵使所有应用程序具有相同的概率。在最大熵的情况下,选择正确应用程序的可能性最小,因为所有应用程序具有相等的概率,并且所有应用程序都不比另一个应用程序更可能被选择。
这样的差异量度可以用于确定是否可以使用子模型针对该子模型适用的给定上下文来进行更准确的预测(包括置信度)。如果差异量度值大于差异阈值,则可以执行分段。差异量度可以带一个正号来确保信息实现增益。Kullback-Leibler散度可以用作差异量度。其他示例性量度包括基尼不纯度和方差缩减。
例如,如果有一个模型适用于所有情况,则该模型将只为所有上下文选取顶部应用程序(例如,音乐应用程序)。音乐应用程序将是对所有上下文(例如,健身房、驾驶上班等)的预测。由于子模型是为更具体的上下文生成的,所以预测可以变得更具体,例如,当用户去健身房时,单个应用程序占主导地位,或者特定播放列表占主导地位。因此,一个应用程序被选择的次数可能有一个峰值,然后其他一切都为零。因此,决策树的目标是使信息增益最大化(使熵最小化)。
当更具体的上下文可以提供更多的信息增益时,可以识别其他子模型。例如,早晨的健身房可以是一个更具体的上下文,这时特定的播放列表占主导地位。又如,早晨连接到汽车可以提供对新闻应用程序的更准确预测,因为历史数据组织更多(熵降低)来主要地选择新闻应用程序(或一组新闻应用程序)。
图35_6A和35_6B示出了根据本发明实施方案的从分段产生的父模型和子模型。图35_6A示出了提供80个正确预测和60个不正确预测的父模型的二项分布。可以从用于父模型的历史数据的一部分创建子模型。图 35_6B示出了提供14个正确预测和2个不正确预测的子模型的二项分布。即使该子模型具有较少的数据点,预测也更准确,因为向一移动的证据表示更高的准确度。因此,熵已经降低,并且存在信息增益。
E.何时分段
如上所述,各种实施方案可以使用一个或多个标准来确定是否将模型分段以生成子模型。一个标准可以是,用于做出正确预测的置信水平(选择一组一个或多个预测应用程序中的一个)大于置信度阈值。例如,正确预测的平均概率大于准确度阈值(置信阈值的示例)。又如,可以要求分布的在特定值上方的CDF高于置信水平。
另一个标准可以是使用提供信息增益(熵降低)的子模型而不是模型。例如,可以将用于Kullback-Leibler散度的值与差异阈值进行比较。分段的一个或多个标准可以保证子模型将胜过基本模型。对于某个父模型的所有子模型,例如健身房子模型35_210和其他子模型35_240,可以需要一个或多个标准。
在某些情况下,两个子模型的置信下限可相对于父模型降低,但是仍然具有信息增益和高于阈值的置信下限。置信下限也可以增大。只要所有子模型都具有足够高的置信界限,并且信息增益是足够大,实施方案可以选择将更一般的模型分段(进行划分)。
在一些实施方案中,可以通过确保置信水平作为分段的结果而增加,来满足任何准确度和信息增益标准。例如,可以选择设备的第一属性来测试第一上下文的第一子模型,该子模型可以相对于父模型包括其他属性。可以识别当计算设备具有第一属性时发生的历史交互的第一子集。第一子集是从用于父模型的一组历史交互中选出的,并且小于这组历史交互。
基于历史交互的第一子集,第一子模型可以预测用户将与具有第一置信水平的事件关联地访问的第一组一个或多个应用程序中的至少一个应用程序。可以至少基于第一置信水平大于初始置信水平至少一个阈值量(它可以为0或更大)来创建第一子模型。该阈值量可以对应于差异阈值。在一些具体实施中,第一子模型可以不一定在该标准满足时创建,因为可以使用进一步的标准。如果置信水平不大于初始置信水平,则可以选择另一个属性进行测试。置信水平的这种比较可以对应于对信息增益的测试。可以重复相同的过程以确定用于预测第一组一个或多个应用程序的第一子模型的第二子模型(对于第二属性)的第二置信水平。历史交互的第二子集可以用于第二子模型。可以采用类似的方式测试第三属性或更多属性。
F.决策树的重新生成
实施方案可以周期性地(例如每天)生成模型的决策树。这种生成可以使用当时可用的历史数据。因此,决策树可以从一代变为另一代。在一些实施方案中,构建决策树而不知道先前的决策树。在其他实施方案中,可以从这样的先前知识构建新的决策树,例如,知道哪些子模型是可能的,或者从先前的决策树开始。
在一些实施方案中,尝试所有上下文(或上下文的预定列表)以确定哪些子模型提供最大信息增益。例如,如果位置提供用于分段成子模型的最大信息增益,则可以创建用于至少一个特定位置的子模型。在每个分段级别,可以采用这种贪心的方式测试上下文以确定哪些上下文提供了信息增益的最高增长。
在其他实施方案中,选择上下文的一个子集(例如,随机选择,包括伪随机)来测试分段是否合适。当有许多上下文可以被测试时,这种选择是有利的。可以使用基于MonteCarlo的方法来选择上下文,这种方法可以使用上下文将可能导致分段的概率。可以生成一个随机数(随机过程的一个示例),然后将其用于确定(对于特定属性)要测试哪个上下文。
概率可以用作权重,使得具有较高权重的上下文在该“随机”选择过程中更有可能被选择。可以基于过去生成了哪些子模型来确定概率。例如,如果健身房(并且可能地一天的特定时间)在之前非常成功,那么生成过程会以90%、95%或99%的可能性选取该上下文,具体取决于在过去它被选取的频率,并且也可能取决于在过去信息增益有多高。将为每个级别或为整个树生成过程尝试一定次数的划分。
V.基于概率水平确定动作
预测模型不仅可以测试所选择的应用程序,而且可以测试特定动作,以及可能的媒体内容(例如,特定播放列表)。在一些实施方案中,一旦选择某个应用程序的概率足够准确,就可以提供比仅提供启动选项更为积极的动作。例如,当该应用程序启动时,内容可以自动播放。或者,该应用程序可以自动启动。
当以足够的概率(例如,置信水平高于高阈值)预测选择某个应用程序时,该预测可以开始测试动作。因此,测试不仅仅是用于预测应用程序,而是测试是否可以以足够的准确度预测特定动作。可以从历史数据中获得不同的可能动作(包括媒体项)。可以选择与一个应用程序一起执行多个动作。这多个动作中的每一个可以对应于第一子模型的多个不同子模型中的一个。可以测试这多个不同子模型中每一个的置信水平,以确定是否为这多个动作中的至少一个生成第二子模型。
因此,当存在更大的置信度时,实施方案可以更积极地执行要执行的动作。如果特定动作被执行具有高概率,则预测模型可以提供特定的用户界面。因此,在一些实施方案中,使用的可能性越高,可采取更积极的动作,诸如自动打开具有相应用户界面的应用程序(例如,视觉或语音命令),而不仅仅是提供一种更容易打开应用程序的机制。
例如,基本模型可以具有一定程度的统计显著性(准确度和置信度),动作可能是在锁定屏幕上建议应用程序。又如,更高水平的统计显著性可以导致屏幕亮起(从而引起对应用程序的关注,可以仅选择一个应用程序,或者可以提供该应用程序的用户界面(UI)(即,不是系统的用于选择该应用程序的UI)。一些实施方案可以考虑在确定是否分段时采取的动作,并且在动作失效时不分段,这通常将对应于具有信息增益。
该动作可以取决于模型是仅预测一个应用程序还是预测一组应用程序。例如,如果有机会提出三个建议而不是一个建议,那么这也将改变概率分布,因为选择这三个中的任何一个将提供正确的预测。对一个应用程序的推荐不可信的模型可能对三个应用程序的推荐有足够的置信度。实施方案可以执行将另一个应用程序添加到由模型预测的一组应用程序(例如,尚未在该组中的第二常用的应用程序),从而使模型具有更高置信度。如果模型基于不止一个应用程序的预测,则所提供的用户界面将提供与不止一个应用程序的交互,这可能影响UI的形式。例如,所有应用程序都可以在锁定屏幕上提供,并且一个应用程序不会自动启动。
还可以有多个操作,以及适于不同操作的一个建议。例如,健身房中可以有两个播放列表作为子模型的一部分(例如,当两个动作具有相似的被选择的可能性时,识别出一个应用程序,但在模型中识别出两个动作)。两个动作一起可以具有统计显著性,而它们单独则不具有统计显著性。
例如,当首先针对某个事件(例如,插入耳机)训练该模型时,该模型的置信度可能不足以执行任何动作。在初始置信水平下,可以在锁定屏幕上显示图标或其他对象。在下一个更高的置信水平下,屏幕可以亮起。在进一步的置信水平下,可以显示特定于应用程序的特定功能的用户界面 (例如,用于播放音乐的控件或用于访问新应用程序的头条新闻的滚动窗口)。下一个更高的水平可以对应于应用程序的某些功能自动启动。该动作甚至可以替代应用程序的当前操作(例如,播放一首歌曲)来播放另一首歌曲或播放列表。这些不同的水平可以代表用于定义置信水平的各种值。
其他示例动作可以包括更改正在播放的歌曲,提供通知(可以在屏幕上的醒目位置)。所述动作可以在解锁设备之后发生,例如,在解锁之后可以显示特定于该应用程序的UI。可以使用深链接来定义操作,以开始应用程序的特定功能。
一些实施方案可以在显示屏上向用户显示通知。该通知可以通过例如推送通知发送。该通知可以是视觉通知,视觉通知包括向用户通知建议的应用程序的图片和/或文本。该通知可以向用户建议一个应用程序供用户在闲暇时选择和运行。被选择后,该应用程序可以运行。在一些实施方案中,为了进行更积极的预测,通知还可以包括建议的应用程序内的建议动作。也就是说,该通知可以通知用户建议的应用程序以及在该建议的应用程序内的建议动作。因此,可以向用户提供运行建议的应用程序或执行建议的应用程序内的建议动作的选项。例如,通知可以通知用户建议的应用程序是音乐应用程序,并且建议的动作是在该音乐应用程序中播放某首歌曲。用户可以通过点击示出建议的歌曲的图标来表明他或她想播放这首歌曲。或者,用户可以通过在屏幕上轻扫该通知来指示他或她更希望运行该应用程序播放另一首歌曲。
除了在一个通知中向用户界面输出建议的应用程序和建议的动作之外,预测引擎可以在一个通知中向用户界面输出两个建议的动作。例如,预测引擎可以输出一个建议的动作来播放第一歌曲,以及第二个建议的动作来播放第二歌曲。用户可以通过点击通知中的相应图标来选择播放哪首歌曲。在实施方案中,可以基于不同的标准确定建议的动作。例如,一个建议的动作可以是用于播放最近播放的歌曲而不论上下文信息如何,而另一个建议的动作可以是用于播放在相同或相似的上下文信息下最后播放的歌曲。例如,对于用户进入他或她的车并且触发事件导致预测引擎建议与播放某首歌曲有关的两个动作的情况,歌曲A可以是在家里最后播放的歌曲,而歌曲B可以是用户上次在车里播放的歌曲。当用户选择要播放的歌曲时,该歌曲可以从开始继续,或从最后一次停止的地方(例如,在歌曲的中间)继续。
为了使预测引擎能够建议动作,预测引擎35_302可以访问存储关于设备的活动状态的信息的存储器设备。设备的活动状态可以表示在选择建议的应用程序之后执行的动作。例如,用于音乐应用程序的活动状态可以是播放某首歌曲。活动状态可以记录歌曲最后停止的时间。在实施方案中,历史数据库可以记录与设备的活动状态有关的历史数据。因此,预测引擎可以建议要由建议的应用程序运行的动作。
VI.架构
图35_7示出了用于向用户提供与一个或多个应用程序交互的用户界面的示例性架构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可以识别一个或多个应用程序,以及相应的动作。在与应用程序建议引擎35_740相同的级别,联系人建议引擎35_750 可以提供用于呈现给用户的建议联系人。
可以将建议的应用程序提供给显示中心35_730,该显示中心可以确定向用户提供什么。例如,显示中心35_730可以确定是提供建议的应用程序还是提供联系人。在其他示例中,可以提供应用程序和联系人两者。显示中心可以确定提供给用户的最佳方式。对用户的不同建议可以使用不同的 UI元素。这样,显示中心35_730可以控制对用户的建议,使得不同的引擎不会中断其他引擎提供的建议。在各种实施方案中,引擎可以向显示中心35_730推送建议(推荐)或从显示中心35_730接收对建议的请求。显示中心35_730可以将建议存储一定时间,然后如果没有向用户提供建议,或者用户没有与用户界面进行交互,则确定删除该建议。
显示中心35_730还可以识别用户设备发生的其他动作,以便设备何时发送建议。例如,如果用户正在使用应用程序,则可以不提供建议。显示中心35_730可以基于各种因素,例如设备的运动状态,锁定屏幕是否亮起,或者是否提供了授权的访问,用户是否正在使用设备等,来确定何时发送建议。
在一些实施方案中,包括在设备100(图1A)上的软件部件包括应用程序建议模块。应用程序建议模块可以包括各种子模块或系统,例如上面在图35_7中所描述的。应用程序建议模块可以执行方法37_400的全部或部分。
用于在数据稀疏性上下文中学习复杂用户模式的生成模型的决策树分段的示例 性方法、设备系统和计算机可读介质
本节提供了用于基于事件向用户建议一个或多个应用程序的系统、方法和装置。预测模型可以对应于特定事件。可以使用计算设备的一个或多个属性来确定建议的应用程序。例如,可以从关于事件发生之后的用户交互以及当设备具有一个或多个属性时收集的历史数据的子集生成特定子模型。可以对应于计算设备属性的不同上下文来确定子模型树。并且,可以使用各种标准来确定何时生成子模型,例如,在历史数据子集中提供正确预测的子模型中的置信水平,以及历史数据分布中相对于父模型的信息增益(熵减少)。
在一些实施方案中,提供了一种用于基于事件向计算设备的用户建议一个或多个应用程序的方法,该方法包括:在计算设备处:检测计算设备的输入设备处的事件,该事件是对于计算设备反复出现的类型;选择对应于该事件的预测模型;接收计算设备的一个或多个属性;使用这一个或多个属性来选择预测模型的特定子模型,该特定子模型对应于这一个或多个属性,其中该特定子模型使用用户与计算设备的历史交互的特定子集来生成,历史交互的该特定子集在检测到该事件之后以及当计算设备具有一个或多个属性时发生;由该特定子模型识别要向用户建议的一个或多个应用程序,这一个或多个应用程序具有这一个或多个应用程序中的至少一个被用户与该事件关联地访问的至少一个阈值概率;以及向用户提供用于与这一个或多个应用程序交互的用户界面。
在一些实施方案中,在具有比计算设备home屏幕上提供的应用程序更少的应用程序的显示屏上提供用户交互。在一些实施方案中,特定子模型预测具有大于置信度阈值的置信水平的一个或多个应用程序。在一些实施方案中,该方法包括:基于置信水平确定如何将用户界面提供给用户。在一些实施方案中,该方法包括:通过以下步骤确定置信水平:确定第一概率分布;以及对于大于下限的点,计算第一概率分布的累积分布以获得置信水平。在一些实施方案中,该方法包括:通过以下步骤确定置信水平:确定第一概率分布;以及计算第一概率分布的平均值、中值或峰值以获得置信水平。在一些实施方案中,特定子模型使用相对于用于预测模型的正确预测的第二概率分布的信息增益提供用于正确预测历史交互的特定子集的第一概率分布。在一些实施方案中,信息增益大于差异阈值,并且其中使用Kullback-Leibler散度来确定信息增益。在一些实施方案中,该方法包括:接收在检测到事件之后用户与计算设备的一组历史交互,其中这组历史交互包括并且大于历史交互的所述特定子集,这组历史交互集包括具有计算设备的不同组的一个或多个属性的交互;使用预测模型的初始模型来计算用于基于这组历史交互预测用户将在所述事件之后访问的一个或多个应用程序的初始置信水平;以及通过以下操作生成用于预测模型的子模型树:选择计算设备的第一属性;识别当计算设备具有第一属性时发生的历史交互的第一子集,该第一子集是从这组历史交互中选择的并且小于这组历史交互;使用第一子模型来计算第一置信水平,该第一置信水平用于基于历史交互的第一子集来预测用户将与事件关联地访问的第一组一个或多个应用程序中的至少一个应用程序;基于第一置信水平大于初始置信水平至少阈值量,创建第一子模型;以及当第一置信水平不大于初始置信水平时,选择用于测试的另一属性。在一些实施方案中,该方法包括:当第一置信水平不大于初始置信水平时:将另一应用程序添加到第一组一个或多个应用程序并再次测试第一子模型。在一些实施方案中,该方法包括:进一步通过以下操作来生成用于预测模型的子模型树:选择计算设备的第二属性;识别当计算设备具有第一属性和第二属性时发生的历史交互的第二子集,该第二子集是从历史交互的第一子集中选择的并且小于历史交互的第一子集;使用第二子模型来计算第二置信水平,该第二置信水平用于基于历史交互的第二子集来预测用户将与事件关联地访问的第二组一个或多个应用程序中的一个应用程序;基于第二置信水平大于第一置信水平至少阈值量,创建第二子模型;以及当第二置信水平不大于第一置信水平时,选择用于测试的第三属性。在一些实施方案中,周期性地生成用于预测模型的子模型树。在一些实施方案中,使用随机过程来选择第一属性。在一些实施方案中,第一组一个或多个应用程序是一个应用程序,并且该方法包括:选择要通过这一个应用程序执行的多个动作,这多个动作中的每一个对应于第一子模型的多个不同子模型中的一个;测试这多个不同子模型中每一个的置信水平,以确定是否生成用于这多个动作中的至少一个的第二子模型。
在一些实施方案中,提供了包括非暂态计算机可读介质的计算机产品,非暂态计算机可读介质基于事件存储用于向计算设备的用户建议一个或多个应用程序的多个指令,这多个指令当在计算机系统的一个或多个处理器上执行时,执行:在计算设备处:检测计算设备的输入设备处的事件,该事件是对于计算设备反复出现的类型;选择对应于该事件的预测模型;接收计算设备的一个或多个属性;使用这一个或多个属性来选择预测模型的特定子模型,该特定子模型对应于这一个或多个属性,其中该特定子模型使用用户与计算设备的历史交互的特定子集来生成,历史交互的该特定子集在检测到该事件之后以及当计算设备具有一个或多个属性时发生;由该特定子模型识别要向用户建议的一个或多个应用程序,这一个或多个应用程序具有这一个或多个应用程序中的至少一个被用户与该事件关联地访问的至少一个阈值概率;以及对这一个或多个应用程序执行动作。在一些实施方案中,特定子模型预测具有大于置信度阈值的置信水平的一个或多个应用程序,并且其中特定子模型使用相对于用于预测模型的正确预测的第二概率分布的信息增益提供用于正确预测历史交互的特定子集的第一概率分布。在一些实施方案中,该动作是向用户提供用于与这一个或多个应用程序交互的用户界面。
在一些实施方案中,提供了一种用于基于事件向计算设备的用户建议一个或多个应用程序的计算设备,该计算设备包括:输入设备;一个或多个处理器,其被配置为:检测计算设备的输入设备处的事件,该事件是对于计算设备反复出现的类型;选择对应于该事件的预测模型;接收计算设备的一个或多个属性;使用这一个或多个属性来选择预测模型的特定子模型,该特定子模型对应于这一个或多个属性,其中该特定子模型使用用户与计算设备的历史交互的特定子集来生成,历史交互的该特定子集在检测到该事件之后以及当计算设备具有一个或多个属性时发生;由该特定子模型识别要向用户建议的一个或多个应用程序,这一个或多个应用程序具有这一个或多个应用程序中的至少一个被用户与该事件关联地访问的至少一个阈值概率;以及向用户提供用于与这一个或多个应用程序交互的用户界面。在一些实施方案中,特定子模型预测具有大于置信度阈值的置信水平的一个或多个应用程序,并且其中特定子模型使用相对于用于预测模型的正确预测的第二概率分布的信息增益提供用于正确预测历史交互的特定子集的第一概率分布。在一些实施方案中,这一个或多个处理器被进一步配置为:接收在检测到事件之后用户与计算设备的一组历史交互,其中这组历史交互包括并且大于历史交互的所述特定子集,这组历史交互集包括具有计算设备的不同组的一个或多个属性的交互;使用预测模型的初始模型来计算用于基于这组历史交互预测用户将在所述事件之后访问的一个或多个应用程序的初始置信水平;以及通过以下操作生成用于预测模型的子模型树:选择计算设备的第一属性;识别当计算设备具有第一属性时发生的历史交互的第一子集,该第一子集是从这组历史交互中选择的并且小于这组历史交互;使用第一子模型来计算第一置信水平,该第一置信水平用于基于历史交互的第一子集来预测用户将与事件关联地访问的第一组一个或多个应用程序中的至少一个应用程序;基于第一置信水平大于初始置信水平至少阈值量,创建第一子模型;以及当第一置信水平不大于初始置信水平时,选择用于测试的另一属性。
第6部分:基于检测到的触发事件的应用程序建议
本节“基于检测到的触发事件的应用程序建议”中的材料描述了根据一些实施方案的基于检测到的触发事件的应用程序建议,并且提供补充本文提供的公开内容的信息。例如,本节的一些部分描述了基于触发事件 (将耳机插入设备,并根据用户的当前位置建议不同的应用程序)来推荐使用的应用程序,这补充了本文提供的公开内容,例如与填充图9B至图 9C的预测部分930内的预测内容有关的以及与创建和检测触发条件有关的那些(图4A至图4B)。在一些实施方案中,本部分中描述的预测模型用于帮助识别适用于预测和向用户显示的应用程序(即,这些预测模型与方法600,800,1000和1200结合使用)。
基于检测到的触发事件的应用程序建议的简明摘要
实施方案提供了用于基于触发事件来推荐应用程序的改进型设备和方法。例如,某些事件可以由设备检测并被识别为触发事件。不同的触发事件可以具有不同的预测模型,这可以实现更准确的建议。选择的预测模型可以使用上下文信息(例如,在检测到事件之前或之后收集)来识别用于呈现给用户以更容易访问(例如允许在锁定屏幕上访问)的应用程序。
在一些实施方案中,监视一个或多个输入设备是否发生触发事件。当检测到触发事件时,可以从一个或多个源(例如,已经获得上下文信息的设备的另一应用程序)收集上下文信息。上下文信息可以与触发事件发生时或附近的设备的上下文有关,诸如位置或当日时间。一旦接收到上下文信息,则可以从历史事件数据库收集历史信息。该数据库可以维护用户和设备之间的历史交互的记录。根据触发事件,可以利用上下文信息和历史信息来识别用于用户的一组一个或多个应用程序。然后可以通过以不同于所识别的应用程序被如何、在何时或何地正常访问(例如,在home屏幕上)的方式提供用户界面,为用户提供在需要时运行该应用程序的选项,从而向用户建议所识别的应用程序。
其他实施方案涉及与本节中所述的方法相关联的系统、便携式消费设备以及计算机可读介质。
通过参考以下具体实施方式和附图,可更好地理解本发明的实施方案的实质和优点。
基于检测到的触发事件的应用程序建议的详细描述
当前的移动设备可以将许多应用程序存储在其固态驱动器上。在一些情况下,移动设备可以将数百个应用程序存储在其固态驱动器上。当用户想在其移动设备上运行某个应用程序时,他或她必须解锁设备,搜索设备中的所有应用程序以识别所需的应用程序,然后启动该应用程序的执行。查找所需应用程序的过程可能非常耗时和冗余,特别是对于比其他应用程序更经常使用的应用程序来说。
用户可以将设备预先编程为在特定条件满足时(例如发生触发事件) 自动执行预定应用程序的指定动作。例如,该设备可被编程为在触发事件发生时建议预定的应用程序。但是,这样的操作是静态的,并且需要用户进行配置。
不同于自动建议预定应用程序,本发明的实施方案可以利用预测模型来在发生触发事件时建议给定上下文中可能由用户运行的应用程序。可针对相同的触发事件,识别用于不同上下文的不同应用程序。例如,可以在第一上下文中建议一个应用程序,而可以在第二上下文中建议另一个应用程序。
识别用户可能使用的应用程序有几个好处。可以采用适当的方式或在适当的屏幕中向用户提供用户界面,这可以节省时间并简化设备操作。用户不必搜索许多应用程序来识别要使用的应用程序。可以采用各种方式提供该应用程序的用户界面,这可以取决于用户将使用该应用程序的概率有多高。此外,如果特定动作被执行具有高概率,则预测模型可以提供特定的用户界面。因此,在一些实施方案中,使用的可能性越高,可采取更积极的动作,诸如自动打开具有相应用户界面的应用程序(例如,视觉或语音命令),而不仅仅是提供一种更容易打开应用程序的机制。
VII.应用程序预测
实施方案可以基于触发事件来建议应用程序。例如,当耳机插入到耳机接口中,则可以建议音乐应用程序。在一些实施方案中,上下文信息可以与触发事件结合使用以识别要向用户建议的应用程序。例如,当将一组耳机插入到耳机插口中时,可以使用与位置相关的上下文信息。如果设备位于例如健身房,则当耳机插入耳机插口时可建议应用程序A。另选地,如果设备位于家中,则当耳机插入耳机插口时可建议应用程序B。因此,可以在适当时候建议可能在某些上下文下受到使用的应用程序,从而增强用户体验。
图36_1是根据本发明实施方案的用于基于触发事件来建议应用程序的方法36_100的流程图。方法100可以由移动设备(例如,电话、平板电脑)或非移动设备执行,并且利用设备的一个或多个用户界面。
在框36_102处,检测到触发事件。并非所有在设备上发生的事件都是触发事件。可以将触发事件识别为充分可能地与设备的独特操作相关联。触发事件的事件列表可以存储在设备上。此类事件可以是默认列表,并作为操作系统的一部分被维护,并且可以由或可以不由用户进行配置。
触发事件可以是由用户和/或外部设备引起的事件。例如,触发事件可以是当附件设备连接到移动设备时。示例包括将耳机插入耳机接口、进行蓝牙连接等。在该示例中,它们中的每一个可以被分类为不同的触发事件,或者触发事件可以共同地是连接到移动设备的任何附件设备。作为其他示例,触发事件可以是用户与设备的特定交互。例如,用户可将移动设备按与运行一致的方式移动,这种情况下设备的运行状态是触发事件。可以基于设备的传感器来确定这样的运行状态(或其他状态)。
在框36_104处,识别到与触发事件相关联的应用程序。例如,当耳机插入到耳机接口中,则可以识别到音乐应用程序。在一些实施方案中,可以识别不止一个应用程序。预测模型可以识别所述相关联的应用程序,其中可以为特定触发事件选择预测模型。预测模型可以使用上下文信息来识别应用程序,这是因为例如不同的应用程序可能更可能在不同的上下文中受到使用。一些实施方案可以仅在有足够概率被用户选择时(例如,由用户与设备的历史交互确定)才能识别应用程序。可以使用各种类型的预测模型。预测模型的示例包括神经网络、决策树、多标签逻辑回归及其组合。
在框36_106处,与应用程序关联地执行一个动作。在一个实施方案中,该动作可以是为用户提供用以选择以运行应用程序的用户界面。用户界面可按各种方式提供,例如通过在设备的屏幕上显示、投影到表面上、或者提供音频接口的方式提供。
在其他实施方案中,可以运行某一应用程序,并且可以向用户提供特定于该应用程序的用户界面。可以响应于例如在锁定屏幕上识别应用程序,而提供任一个用户界面。在其他具体实施中,可以在用户被认证(例如,通过密码或生物特征)之后提供与应用程序交互的用户界面。在显示该用户界面时,这样的用户界面将比单独的home屏幕更具特异性,即比 home屏幕上的应用程序少的要运行的建议应用程序的列表。在检测到触发事件之后,该用户界面可以立即显示在设备的显示器上。在其他实施方案中,该用户界面可以在用户提供某种输入(例如,一个或多个点击手势) 之后显示,该输入仍可能是比没有建议任何应用程序时少的用户输入(例如,点击次数)。
VIII.启动预测的事件
触发事件可以是触发识别要提供给用户的一个或多个应用程序的一组预定事件。可以使用由设备部件生成的信号来检测事件。本节将进一步详细讨论触发事件如何被检测的更多细节。
图36_2示出了根据本发明实施方案的用于确定触发事件的检测系统 36_200的简化框图。检测系统36_200可以驻留在正在为其确定触发事件的设备内。如图所示,检测系统36_200可以检测多个不同的事件。检测到的事件中的一个或多个可以由检测系统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,诸如无线连接电路(例如,蓝牙、Wi-Fi等)或有线连接电路(例如,以太网等)。
耳机接口36_210允许一组耳机耦接到设备。当耳机耦接时,例如通过插入到耳机接口36_210时形成电连接,可以生成信号。在更复杂的实施方案中,耳机接口36_210可以包括提供标识设备的耳机接口类型的标识信号的电路。因此可以采用各种方式检测事件,并且采用各种方式生成和/或传送信号。
数据连接36_212可以例如通过无线连接与外部设备通信地耦接。例如,蓝牙连接可以耦接到车辆的计算机或无线耳机的计算机。因此,当外部设备经由数据连接36_212耦接到移动设备时,可以确定外部设备被连接,并且可以生成相应的设备连接事件信号。
2.用户交互事件
用户交互输入设备36_206可以用于检测用户交互事件。用户交互事件可以在用户与设备进行交互时发生。在一些实施方案中,用户可以经由用户交互输入设备36_206中的一个直接激活显示的用户界面。在其他实施方案中,该用户界面可以不显示,但是用户仍可以访问它,例如经由用户摇动设备或提供某种其他类型的手势。此外,交互可以不包括用户界面,例如,当状态引擎使用来自设备的传感器的值时。
可以将用户界面的任何合适的设备部件用作用户交互输入设备 36_206。合适的用户交互输入设备的实施例是按钮36_214(例如,Home 按钮或电源按钮)、触摸屏36_216和加速度计36_218。例如,移动设备的按钮36_214,诸如Home按钮、电源按钮、音量按钮等可以是用户交互输入设备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部件可以生成对应于位置事件的输入信号。通常,移动设备可以每天移动到几十个甚至几百个位置,其中许多位置可能不够重要,不能被认为是位置事件。因此,并不是每个检测到的位置都将是位置事件。在实施方案中,位置事件可以是比其他事件更频繁出现的位置。例如,如果某个事件在一段时间内频繁出现至少阈值次数,例如在六个月到一年的跨度中出现五次,则该事件可以是位置事件。因此,重要的位置可以与不重要的位置区分开来并且被确定为位置事件。
B.确定触发事件
如图36_2进一步所示,输入设备36_202可以输出检测事件36_222,例如作为任何相应事件的结果。检测事件可以包括关于哪个输入设备正在发送用于检测事件36_222的信号的信息、用于特定事件的子类型(例如,哪种耳机类型或数据连接类型)。可以使用这样的信息来确定检测事件 36_222是否是触发事件,并且这样的信息可以被传递到之后的模块,用于确定要使用哪个预测模型或要为建议的应用程序执行哪个动作。
检测事件36_222可由事件管理器36_230接收。事件管理器36_230可以从输入设备36_202接收信号,并且确定检测到什么类型的事件。根据事件的类型,事件管理器36_230可以将信号(例如,事件信号36_232)输出到不同的引擎。不同的引擎可以具有对事件管理器36_230的订阅,以接收对于其功能重要的特定事件信号36_232。例如,可以订阅触发事件引擎 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)将耳机插入耳机接口,(2)经由蓝牙连接连接外部设备,(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_228收集的信息来识别建议的应用程序36_304。如图所示,除了触发事件36_228之外,预测引擎36_302还可以接收上下文数据36_306。预测引擎36_302可以使用从触发事件36_228和上下文信息36_306两者收集的信息来识别建议的应用程序 36_304。预测引擎36_302还可以确定要执行的动作,例如,如何和何时可以为与建议的应用程序交互的用户提供用户界面。
在某些实施方案中,建议的应用程序36_304可以是存在与移动设备的固态驱动器上的任何应用程序。因此,预测引擎36_302可以具有在检测到触发事件时建议任何应用程序的能力。或者,在实施方案中,,预测引擎 36_302可以具有在检测到触发事件时建议少于所有应用程序的能力。例如,用户可以选择某些应用程序对于预测引擎36_302是不可访问的。因此,预测引擎36_302可以不能在检测到触发事件时建议这些应用程序。
1.上下文信息
可以从上下文数据36_306收集上下文信息。在实施方案中,可以在任何时间接收上下文信息。例如,可以在检测到触发事件36_228之前和/或之后接收上下文信息。另外,可以在检测触发事件36_228期间接收上下文信息。上下文信息可以针对特定上下文指定设备的一个或多个属性。上下文可以是当检测到触发事件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。例如,连续轮询GPS 36_312以确定设备的位置可能过度耗电,这可能缩短电池寿命。为了避免缩短电池寿命,预测引擎36_302可以通过从 GPS 36_312以外的源请求设备的位置来确定设备的位置。位置信息的另一个源可能是最近已经针对设备位置轮询了GPS 36_312的应用程序。例如,如果应用程序A是最近针对设备位置轮询GPS 36_312的应用程序,则预测引擎36_302可以从应用程序A请求和接收位置数据,而不是单独轮询 GPS 36_312。
2.历史信息
在某些实施方案中,除了上下文源36_308之外,历史事件数据库 36_316也可由预测引擎36_302使用。历史事件数据库36_316可以包括在检测到触发事件之后用户与移动设备之间的先前交互的历史信息。
历史事件数据库36_316可以记录在某个触发事件之后打开应用程序的次数。例如,数据库36_316可以记录:在耳机插入耳机接口之后,用户十次中有八次打开了应用程序A。因此,预测引擎36_302可以接收该信息作为历史数据36_318,以确定当一组耳机插入到耳机接口中时是否应该为用户识别应用程序A。
历史事件数据库36_316还可以记录当检测到触发事件时在不同上下文下打开应用程序的次数。例如,数据库36_316可以记录:当用户在家时,在耳机插入耳机接口之后,用户十次中有九次打开了应用程序A,并且当用户在健身房时,用户十次中有一次打开了应用程序A。因此,预测引擎 36_302可以接收该信息作为历史数据36_318,并且确定当耳机在家中而不是在健身房被插入到设备中时应识别应用程序A。应当理解,虽然本节中讨论的实施例将位置称为“家庭”或“健身房”,但是表示“家庭”或“健身房”的上下文数据36_306可以是数字坐标的形式。本领域的技术人员理解,可以采用类似的方式利用与当日时间和一年中的日期相关的信息来代替位置,以识别其他应用程序。
历史事件数据库36_316还可以记录用户决定不运行所识别的应用程序的频率以及在什么情况下做出这样的决定。例如,数据库36_316可以记录:当用户在家中将耳机插入到设备中时,用户十次中有两次没有选择向用户建议的应用程序B。因此,预测引擎36_302可以接收该信息作为历史数据36_318,以调整当用户在家中将耳机插入到设备中时建议应用程序B 的概率。
在一些实施方案中,上下文信息36_306和/或历史信息(在本节中进一步讨论)可以在检测到触发事件时不可用或受限制。在这种情况下,可以在检测到触发事件时建议默认应用程序。默认应用程序可以是通常与触发事件类型相关联的一类应用程序。例如,如果将一组耳机插入到耳机接口中,则可以建议音乐应用程序。或者,当与汽车进行蓝牙连接时,可以建议地图应用程序。获得更多历史信息后,可以提供建议的应用程序而不是默认应用程序。
B.多个预测模型
由于不同的触发事件可导致不同的建议的应用程序,实施方案可以针对不同的触发事件使用不同的预测模型。这样,可以改进预测模型以针对特定触发事件提供更准确的建议。
图36_4更详细地示出了根据本发明的实施方案的预测引擎36_302。预测引擎36_302可以是存储在存储器设备上的程序代码。在实施方案处,预测引擎36_302包括一个或多个预测模型。例如,预测引擎36_302可以包括预测模型1到N。每个预测模型可以是专门设计用于针对特定触发事件36_228识别应用程序的代码和/或数据的一部分。例如,预测模型1可以被专门设计用于针对一组耳机被插入到耳机接口中的触发事件来识别应用程序。预测模型2可以被设计为针对连接蓝牙设备时的触发事件识别应用程序。
预测模型3可以被设计为针对用户在一段较长时间之后与设备的用户界面交互(例如,当用户在早晨醒来之后首先与移动设备进行交互时)的触发事件识别应用程序。其他预测模型可以被设计为针对与特定检测运动模式(例如,当用户正在带着移动设备跑步时)、到达特定位置以及选择特定应用程序(例如,选择与汽车的计算机通信的应用程序)相关联的触发事件识别应用程序。任何数量的预测模型可以包括在预测引擎36_302 中,具体取决于触发事件36_228的数量。
如图所示,每个预测模型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的一部分。例如,显示器可以显示用于建议的应用程序的图标,并且当用户轻击显示面板的相应位置时输入信号以运行该应用程序。
现代设备具有防止对设备未经授权的使用的安全措施。这样的设备可以要求用户先解锁设备才能使用户可以访问存储在设备上的所有应用程序。该设备可以限制所有应用程序的可访问性,具体取决于设备安全性的状态。例如,设备可以要求用户先解锁设备才能使设备允许访问其所有应用程序。解锁的设备可以具有显示home屏幕的显示器。home屏幕可以显示和/或提供对设备的所有应用的访问。然而,锁定的设备可以具有显示锁定屏幕的显示器。显示器的某些区域可以被用于解锁设备的提示占据。因此,由于设备安全性的提高状态和有限的显示空间,锁定屏幕可以允许与比home屏幕少的应用程序进行交互。例如,锁定屏幕可以仅允许访问少于设备的所有应用程序,诸如一到三个应用程序。在一些实施方案中,在本节中关于图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可以在设备的锁定屏幕上提供图标,以允许用户通过点击该图标一次来访问该应用程序。如果应用程序具有大约95%的更高概率,则预测引擎36_302甚至可以自动地为用户运行建议的应用程序,而不用户点击任何内容。在此类情况下,预测引擎36_302可以不仅输出建议的应用程序,还输出特定于该应用程序的命令,诸如在音乐应用程序中播放所选择的音乐的命令或者在地图应用程序中启动对特定路线的引导的命令。
根据本发明的实施方案,预测引擎36_302可以确定需要什么水平的交互,然后将该信息输出到事件管理器36_320。然后,事件管理器36_320可以将该信息发送到用户界面36_324以输出给用户。
在实施方案中,用户界面36_324可以在显示屏幕上向用户显示通知。该通知可以通过例如推送通知发送。该通知可以是视觉通知,视觉通知包括向用户通知建议的应用程序的图片和/或文本。该通知可以向用户建议一个应用程序供用户在闲暇时选择和运行。被选择后,该应用程序可以运行。在一些实施方案中,为了进行更积极的预测,通知还可以包括建议的应用程序内的建议动作。也就是说,该通知可以通知用户建议的应用程序以及在该建议的应用程序内的建议动作。因此,可以向用户提供运行建议的应用程序或执行建议的应用程序内的建议动作的选项。例如,通知可以通知用户建议的应用程序是音乐应用程序,并且建议的动作是在该音乐应用程序中播放某首歌曲。用户可以通过点击示出建议的歌曲的图标来表明他或她想播放这首歌曲。或者,用户可以通过在屏幕上轻扫该通知来指示他或她更希望运行该应用程序播放另一首歌曲。
除了在一个通知中向用户界面36_324输出建议的应用程序和建议的动作之外,预测引擎36_302可以在一个通知中向用户界面36_324输出两个建议的动作。例如,预测引擎36_302可以输出一个建议的动作来播放第一歌曲,以及第二个建议的动作来播放第二歌曲。用户可以通过点击通知中的相应图标来选择播放哪首歌曲。在实施方案中,可以基于不同的标准确定建议的动作。例如,一个建议的动作可以是用于播放最近播放的歌曲而不论上下文信息如何,而另一个建议的动作可以是用于播放在相同或相似的上下文信息下最后播放的歌曲。例如,对于用户进入他或她的车并且触发事件导致预测引擎36_302建议与播放某首歌曲有关的两个动作的情况,歌曲A可以是在家里最后播放的歌曲,而歌曲B可以是用户上次在车里播放的歌曲。当用户选择要播放的歌曲时,该歌曲可以从开始继续,或从最后一次停止的地方(例如,在歌曲的中间)继续。
为了使预测引擎36_302能够建议动作,预测引擎36_302可以访问存储关于设备的活动状态的信息的存储器设备。设备的活动状态可以表示在选择建议的应用程序之后执行的动作。例如,用于音乐应用程序的活动状态可以是播放某首歌曲。活动状态可以记录歌曲最后停止的时间。在实施方案中,图36_3的历史数据库36_316可以记录与设备的活动状态有关的历史数据。因此,预测引擎36_302可以建议要由建议的应用程序运行的动作。
XI.确定建议的应用程序的方法
图36_5是根据本发明实施方案的基于触发事件来识别应用程序的方法 36_500的流程图。方法36_500可以完全或部分地由设备执行。作为各种示例,该设备可以是手机、平板电脑、膝上型电脑或本节中已经讨论的其他移动设备。
在框36_502处,设备(例如,移动设备)检测事件。例如,可以将一组耳机插入设备的耳机接口中。又如,无线耳机可以经由蓝牙连接耦接到设备。图36_2中的输入设备36_202可用于检测事件。事件可以是移动设备与外部实体诸如外部设备或用户交互的任何动作。
在框36_504处,设备确定检测事件是否是触发事件。为了确定检测事件是否是触发事件,可以将检测事件与预定事件列表进行比较,例如,图 36_2中的指定的触发事件数据库36_226中的事件列表。如果检测事件与预定事件列表中的一个匹配,则检测事件可被确定为触发事件。
在框36_506处,设备选择预测模型,例如图36_4中的预测模型1到 N中的一个。所选择的预测模型可以取决于触发事件。例如,当触发事件涉及与外部设备建立蓝牙连接时,可以选择设计用于蓝牙连接的预测模型。又如,当触发事件涉及将一组耳机插入耳机接口时,可以选择设计用于耳机连接的预测模型。
在框36_508处,设备接收上下文信息。可以从各种源接收上下文信息,例如图36_3中的上下文源36_308。在实施方案中,上下文信息可以与设备的周围情况相关。例如,上下文信息可以与当日时间、一年中的一天或该设备的位置相关。此外,设备也可以接收历史信息。历史信息可以与存储在数据库中的设备与用户之间的交互历史(例如历史事件数据库36_316)相关。
在框36_510处,设备可以识别被用户访问的概率为至少阈值概率的一个或多个应用程序。如本节中已经提到的,可以存在多个阈值。在一些实施方案中,阈值概率可以是基线阈值概率、较低阈值概率或高阈值概率。例如,一个或多个应用程序可以各自具有大于阈值概率的概率。在另一示例中,一个或多个应用程序可以具有大于阈值概率的组合概率。一个或多个应用程序可以是具有最高概率的应用程序,并且可以各种标准(例如,全部具有大于阈值的概率,如需要的高于阈值但限于最大数目的许多应用程序,等等)被选择。在一些实施方案中,可以忽略具有小于基线阈值概率的概率的应用程序。
被用户访问的概率可以由预测模型确定。预测模型可以通过利用上下文信息以及历史信息来确定该概率。在实施方案中,所识别的应用程序是本节中关于图36_3和图36_4讨论的应用程序。
在一些实施方案中,如果应用程序具有相等的概率,则可以忽略它们,即不识别它们。在这些情况下,设备可能需要生成额外的历史信息来正确识别这一个或多个应用程序。收集的历史信息越多,设备在识别正确的应用程序时就越准确,例如,在给定上下文中期望由用户访问的应用程序。在其他实施方案中,可以提供两个应用程序,例如,如果它们的组合概率足够高,比如两个应用程序具有最高的两个概率时发生的情况。
在框36_512处,设备可以向用户提供用户界面。例如,设备可以经由用户可以与之交互以指示用户是否希望访问所识别的应用程序的界面,来向用户显示所识别的应用程序。例如,该用户界面可以包括触敏显示器,该显示器向用户显示所识别的应用程序中的一个或多个,并且允许用户通过与该触敏显示器交互来访问由设备识别的一个或多个应用程序。
在某些实施方案中,可以在锁定屏幕或home屏幕中提供该用户界面。home屏幕可以是在解锁状态下按home按钮之后显示的屏幕。锁定屏幕可以是在长时间不活动后按home按钮以唤醒设备之后显示的屏幕。在实施方案中,由于锁定屏幕的一部分被保留用于解锁设备,因此锁定屏幕具有比home屏幕更少的可用显示空间来用于显示应用程序。在一些实施方案中,该用户界面可以与已经运行的应用程序相关联。例如,该用户界面可以是具有与正在运行的音乐应用程序相关联的音频控件的音乐播放器界面,如图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可以通过允许用户访问他或她所需的应用程序而不必单击一个或多个图标来增强用户体验。
用户界面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处,设备确定从用户界面首次提供给用户以来是否经过了阈值时间段。可以在锁定屏幕或home屏幕中将用户界面提供给用户。在实施方案中,阈值时间段表示在用户未与设备进行交互的情况下将用户界面提供给用户之后立即开始的预定时间段。
阈值时间段可能会根据触发事件的类型而有所不同。例如,如果触发事件是涉及直接用户交互的事件类型(例如,预期引起事件的用户执行的认知动作),则阈值时间段可能相对较短,诸如15到30秒。这种触发事件的一个示例包括将一组耳机插入耳机接口中。另一个示例包括在一段较长时间之后按下按钮来唤醒设备。阈值时间段可以相对较短,因为可以假设用户直接与电话交互并且可以立即知道输出的所识别的应用程序。由于用户立即知道到识别的应用程序,所以经过了一段识别的应用程序未被访问的较短时间将指示用户不打算访问识别的应用程序。
或者,如果触发事件是不涉及直接用户交互的事件类型,则阈值时间段可能比用于涉及直接用户交互的触发事件的阈值时间段更长。在一个实施方案中,用于不涉及直接用户交互的触发事件的阈值时间段可能相对较长,诸如15至30分钟。一个这样的示例包括到达某个位置。当设备到达特定位置时,假定用户正在行驶,并且没有关注于设备。用户可以不会马上知道输出的所识别的应用程序。因此,在用户检查设备并且知道所识别的应用程序之前,可能会经历更长的时间。
在框36_704处,如果经过了阈值时间段,则可以移除用户界面,使得用户可能根本不会认识到应用程序被建议。然而,如果没有经过阈值时间段,则在框36_706处,设备确定用户是否希望访问该应用程序。用户可以通过任何形式的经由用户界面的用户输入来指示他或她想要访问应用程序,诸如通过与触摸屏交互、按压按钮、拨动开关或使用生物特征识别设备。
如果确定用户尚未指示他或她想要访问该应用程序,则在框36_701 处,设备可以继续向用户提供用户界面。然而,如果设备接收到用户想要访问该应用程序的指示,则在框36_708处,设备可以运行该应用程序。因此,设备可以通过提供到所需应用程序的快捷方式来节省用户时间,从而增强用户体验。
在一些实施方案中,可以在阈值时间段的持续时间之前移除用户界面。如图36_7B所示,在框36_710处,设备确定触发事件是否已经被移除,例如,已经检测到与触发事件相反的动作。例如,如果触发事件是将一组耳机插入耳机接口中,则该触发事件的移除是从耳机接口中拔出这组耳机。在另一个示例中,如果触发事件是建立蓝牙连接,则触发事件的移除是断开蓝牙连接。触发事件的移除可以由设备解释为表明用户不打算访问建议的设备。因此,如果触发事件被移除,则可以在框36_704处移除用户界面,例如,可以清除应用程序,并且可能隐藏用于该应用程序的任何用户界面。
XIII.训练例程
随着历史信息通过移动设备的使用而累积,可以考虑到新的历史信息来周期性地对预测模型(例如,图36_4中讨论的预测模型1至N)进行训练(即更新)。经过训练后,预测模型1至N可以根据用户和移动设备之间的最新交互模式更准确地建议应用程序和动作。当记录了大量历史信息时,训练预测模型1至N可能是最有效的。因此,训练可以在足够长的时间间隔发生,以允许移动设备检测与用户的大量交互。然而,在训练项目之间等待太久的时间段可能会妨碍预测引擎的适应力。因此,训练项目之间的合适时间段可以在15至20小时之间,诸如18小时。
训练预测模型1至N可能需要时间,并且可能会干扰移动设备的使用。因此,可以在用户最不可能使用该设备时发生训练。预测用户将不使用设备的一种方法是在设备未被使用时等待某个时间段,例如在没有按钮被按下时以及设备没有移动时。这可以指示用户处于在一段短时间内不会与手机交互的状态,例如当用户睡着时。任何合适的持续时间都可以作为要等待的时间段,诸如一到三个小时。在特定实施方案中,等待的时间段是两个小时。
在这两小时结束时,可以更新预测模型1至N。然而,如果用户在两小时结束之前与移动设备交互(例如,按下按钮或移动设备),则可以重新启动两个小时的时间段倒计时。如果在达到两个小时不活动之前该时间段不断重新启动,则移动设备可以在某个绝对时间段之后强制训练预测模型1至N。在一个实施方案中,可以将该绝对时间段被确定为移动设备的用户友好性由于预测模型过时而开始下降的阈值时间段。该绝对时间段可以在10至15小时之间,或在特定实施方案中为12小时。因此,训练之间的最长时间可以在28小时(18+10小时)至33小时(18+15小时)之间。在一个特定实施方案中,该最长时间为30小时(18+12小时)。
在一些实施方案中,设备100(图1A)的软件部件包括触发事件模块和预测模块。触发事件模块可以包括各种子模块或系统,例如如本节中相对于图36_2所述。此外,预测模块可以包括各种子模块或系统,例如如本节中相对于图36_3所述。
用于基于检测到的触发事件的应用程序建议的示例性方法、设备和计算机可读介
在一些实施方案中,事件可由输入设备检测。可以通过将事件与一组触发事件进行比较来确定该事件是触发事件。然后选择对应于该事件的第一预测模型。然后接收关于指定计算设备在第一上下文中的一个或多个属性的设备的上下文信息,并且识别一组一个或多个应用程序。当事件在第一上下文中发生时,这组一个或多个应用程序被用户访问的概率可以为至少阈值概率。此后,为用户提供用于与这组一个或多个应用程序交互的用户界面。
在一些实施方案中,提供了一种用于向用户提供用户界面以与在计算设备上执行的建议应用程序进行交互的计算机实现的方法,该方法包括:在计算设备处:检测计算设备的输入设备处的事件;确定该事件对应于指定用于识别一个或多个建议应用程序的一组触发事件中的一个;选择对应于该事件的第一预测模型;接收关于计算设备的上下文信息,该上下文信息指定计算设备针对第一上下文的一个或多个属性;由第一预测模型识别当该事件与第一上下文关联地发生时被用户访问的概率为至少阈值概率的一组一个或多个应用程序,第一预测模型使用在检测到该事件之后用户与计算设备的历史交互;向用户提供用于与这组一个或多个应用程序进行交互的用户界面。在一些实施方案中,检测计算设备的输入设备处的事件包括:检测计算设备与附件设备的连接。在一些实施方案中,附件设备包括耳机或车辆的计算机。在一些实施方案中,上下文信息指定计算设备的位置。在一些实施方案中,用户界面允许在具有比计算设备home屏幕上提供的应用程序更少的应用程序的屏幕上进行交互。在一些实施方案中,检测计算设备的输入设备处的事件包括:使用一个或多个运动传感器检测计算设备的运动;以及基于该移动来确定计算设备的运动状态,其中这组触发事件中的指定用于识别一个或多个建议应用程序的一个包括计算设备的该运动状态。在一些实施方案中,当检测到另一触发事件时,选择第二预测模型,该另一触发事件与所述事件不同,其中第二预测模型不同于第一预测模型。在一些实施方案中,这组一个或多个应用程序的包括多个应用程序,并且其中作为整体的这组一个或多个应用程序具有大于阈值概率的概率。在一些实施方案中,用户界面被提供在计算设备的锁定屏幕上,该用户界面允许从锁定屏幕选择这组应用程序中的一个。在一些实施方案中,该方法包括:运行这组一个或多个应用程序,该用户界面特定于正在运行的一个或多个应用程序。在一些实施方案中,一个或多个属性包括以下各项中的至少一个:计算设备的位置、由计算设备确定的当日时间以及由计算设备确定的当年日期。在一些实施方案中,该方法包括:确定阈值时间段是否已经过去;当确定阈值时间段已经过去时,移除用户界面;当确定阈值时间段尚未过去时,确定用户是否尝试访问这组一个或多个应用程序;以及当确定用户尝试访问这组一个或多个应用程序时,运行这组一个或多个应用程序。在一些实施方案中,用于涉及直接用户交互的触发事件的阈值时间段比用于不涉及直接用户交互的触发事件的阈值时间段。
在一些实施方案中,一种包括非暂态计算机可读介质的计算机产品存储多个指令,这些指令在被执行时,控制包括一个或多个处理器的设备,这些指令包括:检测设备的输入设备处的事件;确定该事件对应于指定用于识别一个或多个建议应用程序的一组触发事件中的一个;选择对应于该事件的第一预测模型;接收关于设备的上下文信息,该上下文信息指定设备针对第一上下文的一个或多个属性;由第一预测模型识别当该事件在第一上下文中发生时被用户访问的概率为至少阈值概率的一组一个或多个应用程序,第一预测模型使用在检测到该事件时用户与设备的历史交互;向用户提供用于与这组一个或多个应用程序进行交互的用户界面。在一些实施方案中,检测该设备的输入设备处的事件包括:检测计算设备与附件设备的连接。
在一些实施方案中,提供了一种设备,该设备包括:用于存储触发事件的触发事件存储区;用于存储历史数据的历史存储区;一个或多个输入设备;一个或多个上下文源;以及一个或多个处理器,这些处理器被配置为:检测一个或多个输入设备处的事件;确定这些事件对应于指定用于识别一个或多个建议应用程序的一组触发事件中的一个;选择对应于该事件的第一预测模型;从一个或多个上下文源接收关于设备的上下文信息,该上下文信息指定计算设备针对第一上下文的一个或多个属性;由第一预测模型识别当该事件在第一上下文中发生时被用户访问的概率为至少阈值概率的一组一个或多个应用程序,第一预测模型使用在检测到该事件时用户与计算设备的历史交互;向用户提供用于与这组一个或多个应用程序进行交互的用户界面。在一些实施方案中,所述一个或多个输入设备包括耳机接口、蓝牙设备、按钮、触摸屏、加速度计和GPS中的至少一个。在一些实施方案中,触发事件是预定事件。在一些实施方案中,用户界面允许与比计算设备home屏幕上提供的应用程序更少的应用程序进行交互。在一些实施方案中,这组一个或多个应用程序的包括多个应用程序,并且其中这多个应用程序中的每个具有大于阈值概率的概率。
第7部分:用于基于设备上下文建议接收人的以人为中心的预测/技术
本节“以人为中心的预测”中的材料描述了根据一些实施方案的基于设备上下文来建议接收人的以人为中心的预测和技术,并且提供了补充本文提供的公开内容的信息。例如,本节的一部分内容描述了识别和预测联系人以及推荐这些联系人供用户使用的方式,这补充了本文提供的公开内容,例如那些与下文讨论的方法600和方法800有关的公开内容,特别是有关于在图9B至图9C的预测部分930中填充建议人的公开内容。在一些实施方案中,在本节中描述的用于帮助预测和建议联系人的预测模型和历史交互数据库用于帮助识别适当的联系人以用于预测、建议和/或包括在用户界面中,诸如搜索界面或锁定屏幕中以供用户立即使用(即,这些预测模型与方法600,800,1000和1200结合使用来建议/预测联系人)。
以人为中心的预测的简明摘要
实施方案基于设备的当前上下文来建议最可能与计算设备的用户相关的通信和交互的接收人。计算设备的示例是电话、平板电脑、膝上型电脑或台式计算机。一个示例性系统收集以前交互的知识,并根据此知识建议预测的接收人。该知识可以与指示用户与其他用户进行交互的时间、地点和方式的信息一起存储在历史交互数据库中。该系统可以推荐接收人(例如,人)以及在给定特定上下文的情况下与他们交互的机制。可以根据指示时间、位置和账户标识符(例如,电子邮件账户)的状态变量来描述上下文。上下文还可以基于关键字(例如,来自电子邮件主题或日历事件标题的关键字)以及其他因素,诸如例如用户以前与之交互过的接收人集合。可以施加额外的限制来帮助将对特定用户、账户、应用程序(例如通信应用程序)或交互机制的建议缩小。
实施方案可以提供用于基于事件和上下文来建议要与计算设备联系的一个或多个接收人的系统、方法和装置。示例性事件包括接收用以发起搜索的输入,接收用以访问电子邮件应用程序的输入,电子邮件的撰写,接收用以访问文本消息收发应用程序的输入,文本消息的撰写,接收用以访问日历应用程序的输入,创建日历条目,编辑日历条目,开始打电话,启动视频通话,以及启动视频会议。示例性上下文包括位置和时间。实施方案可以基于用户正在用来发起或撰写通信的设备的上下文(例如,在家中、上下班、在公司等)来预测该通信的接收人。例如,基于关于该通信的信息(例如,该通信是电子邮件、即时消息、文本消息、视频会议还是日历邀请),预测用于该通信的接收人。还基于先前的通信预测用于通信的接收人。例如,用户在以前已经经由电子邮件、消息或呼叫与之交互的用户或联系人可被建议为用于通信的接收人。
实施方案可以提供用于通过使用上下文信息预测用户可能想要在某一时间和地点与之进行交互的人,从而建议要联系的接收人的方法。一些实施方案确定当设备(例如,移动设备)的用户在应用程序程序中撰写或发起通信时表示当前状态的当前上下文。在实施方案中,当前上下文可以包括上下文信息,诸如时间、位置、下一个日历条目、通信的标题或主题 (例如,电子邮件主题或日历条目标题)、类似通信的上个接收人,以及账户信息(例如,个人电子邮件账户或工作电子邮件账户)。一些实施方案使用当前上下文来预测用户将作为通信的接收人添加的最可能的接收人。
其他实施方案涉及与本文所述的方法相关联的系统、便携式消费设备以及计算机可读介质。
通过参考以下具体实施方式和附图,可更好地理解本发明的实施方案的实质和优点。
以人为中心的预测的详细描述
实施方案可以提供用于向计算设备的用户建议接收人的定制和个性化体验,从而利用该设备来更容易地与其他用户进行交互和通信。实施方案可提供用于使用以人为中心的预测来建议要联系的接收人的方法。以人为中心的预测使用上下文信息来预测用户可能想要在某一时间和地点与之进行交互的人。计算设备的用户可以与一组其他用户(例如,联系人)进行交互和通信。计算设备的示例是电话、平板电脑、膝上型电脑或台式计算机。与其他用户的交互和通信可以在特定事件之后发生。示例性事件包括发起搜索、访问通信应用程序,以及撰写或发起通信。示例性通信应用程序包括电子邮件应用程序、日历应用程序、视频通话应用程序、即时消息应用程序、文本消息应用程序、视频会议应用程序、网络会议应用程序和语音呼叫应用程序。示例性通信包括语音和数据通信,诸如例如电子邮件消息、日历邀请、文本消息、即时消息、视频通话、语音呼叫和视频会议。当在设备上使用通信应用程序时,可以基于将设备的当前上下文与历史信息进行比较来建议通信的接收人。
在实施方案中,来自过往历史交互的数据被存储在数据库的表中并用于建议通信的接收人。该数据库可以包括过往交互的上下文信息,诸如例如时间戳、用于交互的应用程序、账户信息(例如,用于电子邮件账户的账户标识符)和位置。可以将过往交互与设备的上下文进行比较,以建议设备上发起的通信的接收人。例如,可以将设备的当前上下文与历史交互数据进行比较,以将当前上下文与先前接收人的类似过去交互进行匹配。
历史数据中的每个数据点(例如,记录)可以对应于特定上下文(例如,对应于设备的一个或多个属性),随着时间推移,会获得用于特定上下文的越来越多的数据。用于特定事件的历史数据可用于向用户建议接收人。由于不同的用户将具有不同的历史数据,因而实施方案可以提供个性化的体验。
在一些实施方案中,用于先前的类似通信的接收人用于建议用于正被撰写或发起的通信的接收人。例如,如果用户选择用于当前通信的第一接收人,则可以使用添加到与所选择的第一接收人的过去通信的其他接收人来预测用于当前通信的额外接收人。在一个实施方案中,可以基于指示交互的周期性的上下文数据(例如,在一天的类似事件或一周的同一天重复发送的通信)来建议接收人。还可以基于指示用户的当前位置类似于当过往通信被发送到某些联系人时用户所在的位置的位置信息来建议接收人。
在实施方案中,可以使用用户提供的信息来预测接收人。用户提供的信息可以包括电子邮件主题、电子邮件的内容、日历条目标题、事件时间和/或用户选择的接收人。可以将此类用户提供的信息与历史上下文信息进行比较以预测接收人。例如,具有与用户提供的信息相似的特征的过去通信的接收人可以作为当前通信的建议接收人被呈现给用户。一些实施方案可以使用用户已经输入通信的信息(例如,如果用户已经包括主题或附件)来确定这样的信息与潜在接收人的识别相关。例如,实施方案可以解析电子邮件消息或日历条目的主题以识别一个或多个关键字,这些关键字可能与这些信息可用时建议潜在接收人相关。
为了提供准确的个性化体验,各种实施方案可以从一个宽泛的模型开始,该模型被简单地训练而不提供接收人建议,或为各种上下文建议相同的一组接收人。利用足够的历史数据,该宽泛模型可以被分段为子模型,例如,作为一组人或交互,每个子模型对应于历史交互数据的一个不同子集。然后,当事件确实发生时,可以选择特定的子模型来提供对应于设备当前上下文的一个或多个建议的接收人。可以使用各种标准来确定何时生成子模型,例如,在历史数据子集中提供正确预测的子模型中的置信水平,以及历史数据分布中相对于父模型的信息增益(熵减少)。
因此,一些实施方案可以决定何时以及如何在接收人推荐的上下文中将历史数据分段。例如,在收集一段时间的用户交互活动之后,实施方案可以累积可能的分段候选项的列表(例如,位置、星期几、当日时间等)。实施方案还可以训练整个数据集上的模型,并计算数据集和模型的联合分布的置信度度量。可以训练一组模型,为每个分段的数据集(即子集)训练一个,然后测量每个数据模型分布的置信度。如果所有数据模型分布的置信度是可接受的,那么实施方案可以执行分段(分割),然后递归地检查经分段的空间,以用于附加分段。
以这种方式,一些实施方案可以使用推论来探索分段和泛化之间的折衷,为具有更加清晰而复杂的模式的用户创建更复杂的模型,并且为具有更嘈杂而简单的模式的用户创建简单的一般模型。并且,一些实施方案可以基于在潜在候选模型中确定散度分布来生成概率模型树。
I.基于事件建议接收人
实施方案可以基于事件来建议一个或多个接收人,该事件可能限于某些预定事件(也称为触发事件)。示例性触发事件可以包括发起搜索、撰写电子邮件、创建日历条目等。例如,当用户开始使用某个电子邮件账户撰写电子邮件时,可以建议用户先前使用该电子邮件账户向其发送过电子邮件的联系人。在一些实施方案中,上下文信息可以与事件结合使用以识别要向用户建议的接收人。例如,当正在创建或修改日历条目(例如,日历事件、会议或约会)时,可以使用与位置相关的上下文信息。如果设备在办公地点,例如,在该位置有办公室的接收人A可被建议为日历事件的受邀者。或者,如果设备在家中,则与家庭位置相关联的接收人B(即家庭成员或室友)可以被建议为日历条目的受邀者。因此,可以在适当时候建议被预测为在某些上下文下相关的接收人,从而增强用户体验。又如,当打开某个日历条目以进行创建或修改时,可以使用与时间有关的上下文信息。如果该日历条目的预定开始时间对应于用户的典型工作时间,则可以将作为同事的接收人A建议为该日历事件的受邀者。或者,如果该日历条目具有对应于晚上或周末的开始时间,则可以将作为朋友或家庭成员的接收人B建议为该日历事件的受邀者。
图37_1是根据本发明实施方案的用于基于检测事件来建议接收人的方法37_100的流程图。方法37_100可以由移动设备(例如,电话、平板电脑)或非移动设备执行,并且使用设备的一个或多个用户界面。
在框37_102处,检测用户设备处的用户输入。在一些实施方案中,可以确定该输入是否对应于用于建议接收人的触发事件。在一些具体实施中,仅针对某些预定事件(例如,触发事件)来确定一个或多个建议的接收人。在其他具体实施中,可以针对动态事件列表来确定一个或多个建议的接收人,该动态事件列表可以基于使用用户设备进行的历史用户交互来更新。
在一些实施方案中,可以将触发事件识别为充分可能地与设备的通信应用程序的操作相关联。触发事件的事件列表可以存储在设备上。此类事件可以是默认列表,并作为操作系统的一部分被维护,并且可以由或可以不由用户进行配置。
触发事件可以是由用户和/或外部设备引起的事件。例如,触发事件可以是当在移动设备处接收到输入时。示例包括接收用以发起搜索的输入,接收用以访问通信应用程序的输入等。在该示例中,这些事件中的每一个可以被分类为一种不同的触发事件。作为其他示例,触发事件可以是用户与设备的特定交互。例如,用户可以在设备上发起搜索,访问设备上的通信应用程序,或开始在设备上撰写通信消息。此外,例如,用户可以将移动设备移动到工作地点,这种情况下设备的位置状态是触发事件。可以基于设备的传感器来确定这样的位置状态(或其他状态)。
在框37_104处,确定表示设备的当前状态的上下文信息。在一个示例中,上下文信息可以指示在设备上执行的应用程序。例如,上下文信息可以指示用于发起通信的通信应用程序的状态。上下文信息还可以指示用于发起搜索的搜索应用程序的状态。例如,框37_104可以包括确定对应于设备上正在使用的通信应用程序的时间、账户信息(例如,电子邮件账户标识符)和/或位置。框37_104还可以包括确定设备的子状态,子状态是正在执行的应用程序的应用程序状态。例如,应用程序状态可以指示用于撰写电子邮件消息的电子邮件应用程序的状态,用于创建日历事件的日历应用程序的状态,用于发起即时消息的即时消息收发客户端的状态,用于撰写文本消息的应用程序的状态,或用于发起电话呼叫、视频通话或视频会议的应用程序的状态。
上下文信息可以针对特定上下文指定设备的一个或多个属性。上下文可以是当接收到触发事件时设备的周围环境(上下文的类型)。例如,上下文信息可以是一天中检测到该事件的时间。在另一示例中,上下文信息可以是当检测到该事件时设备的特定位置。在又一示例中,上下文信息可以是检测到触发事件时的特定日期。这样的上下文信息可以提供关于设备的上下文的更有意义的信息,使得建议引擎可以准确地建议用户在该上下文中可能选择的接收人。因此,与不使用上下文信息相比,使用上下文信息的预测引擎可以更准确地向用户建议接收人。
在框37_106处,检索表示用户和其他用户之间的过往交互的历史数据。检索是基于上下文信息。例如,框37_106可以包括检索对应于过往电子邮件、消息、电话呼叫、日历条目、视频通话和视频会议的数据。可以从对应于使用用户设备进行的先前通信的表中检索历史数据,其中每个表对应于用户设备的不同设备子状态,并且包括用于不同接收人的先前通信的多个联系人度量。例如,框37_106可以包括使用一个或多个状态变量来识别对应于这一个或多个状态变量的第一组表,然后从该第一组表中获得用于一个或多个潜在接收人的联系人度量。
在框37_108处,将上下文信息与历史数据进行比较。框37_108可以包括查询在框37_106处识别的第一组表,以确定这组表中的历史数据与上下文信息之间的相关性。
在框37_110处,预测用于通信的一个或多个接收人。如图37_1所示,基于在框37_108处执行的比较来预测接收人。例如,当在用户设备处于工作位置时,在工作时间期间使用工作电子邮件账户来撰写电子邮件时,可以将先前使用的具有工作电子邮件地址的联系人识别为预测的接收人。在一些实施方案中,可以识别不止一个接收人。
框37_110可以使用预测引擎或预测模型来识别预测的接收人。例如,可以为特定的触发事件选择预测模型。预测模型可以使用上下文信息来识别接收人,例如,与不同接收人的交互或通信可能在不同的上下文中更有可能发生。一些实施方案可以仅在用户选择建议的接收人有足够概率时(例如,由使用该设备时用户与接收人的历史交互确定)才建议接收人。历史交互的示例可以包括用户使用电子邮件应用程序、文本消息收发(例如,基于SMS的消息收发)、即时消息收发应用程序和视频会议应用程序与接收人交换的至少部分通信。
在一些实施方案中,可以使用基于过往通信和交互的社交元素来预测接收人。例如,在框37_106处获得的历史数据可用于对先前发送的电子邮件的接收人进行加权。社交元素反映用户设备的用户与用户的通信的过去接收人的组(例如,联系人和联系人组)之间的历史交互数据。共同出现 (即发送给同一组接收人的通信)可用于预测电子邮件接收人。例如,社交元素可以对用户已经向其发送电子邮件的每个接收人进行加权,其中较高的权重被分配给已被重复地包括在一组接收人(例如,抄送列表或定义的联系人组)中的接收人。接收人可以通过其各自的电子邮件地址在历史数据中被唯一地标识。与收到的电子邮件相比,用于已发送的电子邮件的社交元素权重可能更高。社交元素也可以基于用户已经用来发送电子邮件的电子邮件账户(例如,个人账户或工作账户)来被加权。当上下文信息指示正在撰写电子邮件时,可以使用社交元素来识别过去电子邮件的接收人的共同出现。这些共同出现可以反过来用于预测正在撰写的电子邮件的接收人,特别是当用户选择已经包括在过去电子邮件消息中的一组接收人中的一个接收人时。
在框37_112处,向用户提供一个或多个预测接收人的指示。框 37_112可以包括在用户设备的用户界面中或在用户设备上执行的通信应用程序中呈现一个或多个预测接收人的列表。在一些实施方案中,可以在框 37_112处与正在执行的应用程序相关联地执行动作。在一个实施方案中,该动作可以是显示用户界面以供用户选择一个或多个预测的接收人。用户界面可按各种方式提供,例如通过在设备的屏幕上显示、投影到表面上、或者提供音频接口的方式提供。
在其他实施方案中,可以运行某一应用程序,并且可以向用户提供特定于该应用程序的用户界面。可以响应于识别接收人,例如通信的潜在接收人,提供任一个用户界面。在其他具体实施中,可以在(例如,通过密码或生物识别)认证用户之后提供用以与应用程序交互的用户界面,但是这样的用户界面将比只有home屏幕的情况更具体,诸如具有建议接收人列表的界面。
II.启动接收人预测的事件
触发事件可以是触发识别要提供给用户的一个或多个接收人的一组预定事件。可以使用由设备部件生成的信号来检测事件。下面将参考图37_2 更详细地讨论如何检测触发事件的细节。
图37_2示出了根据本发明实施方案的用于确定触发事件的检测系统 37_200的简化框图。检测系统37_200可以驻留在正在为其确定触发事件的设备内。如图所示,检测系统37_200可以检测多个不同的事件。检测到的事件中的一个或多个可以由检测系统37_200确定为触发事件。其他处理模块然后可以使用触发事件来执行处理。
A.检测事件
在实施方案中,检测系统37_200包括用于检测触发事件的硬件和软件部件。例如,检测系统37_200可以包括多个输入设备,诸如输入设备 37_202。输入设备37_202可以是能够响应于事件而生成信号的任何合适的设备。例如,输入设备37_202可以包括可以分别检测设备连接事件、用户交互事件和位置事件的用户交互输入设备37_204和位置输入设备37_206。当在输入设备处检测到事件时,输入设备可以发送信号,该信号指示用于进一步分析的特定事件。
在一些实施方案中,部件的集合可以参与单个事件。例如,可以基于运动传感器、GPS定位设备和时间戳检测到人正在上班或下班。
1.用户交互事件
用户交互输入设备37_204可以用于检测用户交互事件。用户交互事件可以在用户与设备进行交互时发生。在一些实施方案中,用户可以经由用户交互输入设备37_204中的一个向应用程序的显示的用户界面提供输入。在其他实施方案中,该用户界面可以不显示,但是用户仍可以访问它,例如经由用户摇动设备或提供某种其他类型的手势。此外,交互可以不包括用户界面,例如,当状态引擎使用来自设备的传感器的值时。
可以将用户界面的任何合适的设备部件用作用户交互输入设备 37_204。合适的用户交互输入设备的实施例是按钮37_208(例如,home按钮或电源按钮)、触摸屏37_210、相机37_212、加速度计37_214、麦克风37_216和鼠标37_218。例如,移动设备的按钮37_208,诸如home按钮、电源按钮、音量按钮等可以是用户交互输入设备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_230的订阅,以接收对于其功能重要的特定事件信号37_232。例如,可以订阅触发事件引擎 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)访问通信应用程序,(2)发起搜索,(3) 撰写通信,(4)感测设备的特定类型的移动,以及(5)到达特定位置。对于 (5),指定的触发事件数据库37_226可以包括特定位置的规格。对于预定事件(1)至(5)中的每一个,事件发生的时间或时间范围可以被包括在指定的触发事件数据库37_226中。例如,指定的触发事件数据库37_226可以存储对应于感测到在早上8点至10点之间到达工作位置的指定触发事件。
III.建议的接收人的确定
检测到触发事件之后,可以基于触发事件来识别一个或多个潜在的接收人。在一些实施方案中,接收人的识别不是预先编程的动作。相反,接收人的识别可以是可以根据附加信息而改变的动态动作。例如,可以基于上下文信息和/或以人为中心的历史交互信息,以及基于其他信息来确定建议的接收人的识别。
每当发生特定的触发事件(例如,访问设备上的电子邮件客户端、日历应用程序、即时消息应用程序或视频会议应用程序)时,设备可以跟踪哪个(些)接收人被选择为与该事件关联的通信的接收人。响应于特定事件的每次出现,设备可以保存对应于所选接收人、使用该应用程序执行的与接收人的交互以及该事件的数据点。在各种实施方案中,可以单独地保存数据点或与针对特定接收人被选择的次数确定的计数聚合地保存数据点,其中该计数可以包括用于特定动作的计数。例如,指示发送到接收人的电子邮件数量的计数可以与指示哪个电子邮件账户被用于发送这些电子邮件、发送电子邮件的时间以及发送电子邮件时设备的位置的信息一起保存。在该实施例中,数据点也可以指示接收人是电子邮件的第一个收件人的次数,收件人作为电子邮件组或通讯组列表的一部分被包括的次数,收件人被复制(例如,抄送/CC或密件抄送/BCC)的次数。因此,针对同一选择的接收人的不同动作确定不同的计数。
指示用户与接收人的先前交互和通信的历史数据可以用作预测模型的输入,该预测模型预测给定的接收人是否应被建议为将来通信的接收人。例如,用于预测/建议接收人的历史数据可以包括与其他用户的过往交互 (即历史交互)的记录。这种历史交互的示例包括语音呼叫、电子邮件、日历条目/事件、即时消息、文本消息(例如,基于SMS的消息)、视频会议和视频通话。例如,历史交互可以包括指示对应于过往语音呼叫的时间、持续时间和接收人(由电话号码标识)的通话历史。此外,例如,历史交互可以包括指示对应于过往电子邮件消息的时间、周期性(例如,每天、每周)和接收人(由电子邮件地址标识)的电子邮件历史。
一旦检测到特定的事件,就可以选择对应于该特定事件的预测模型。将使用对应于特定事件的历史交互数据作为训练过程的输入来确定该预测模型。然而,历史数据可能在许多不同的上下文(即,上下文信息的不同组合)中发生,其中在不同的上下文中选择不同的接收人。因此,总的来说,历史交互数据可能不会建议在特定事件发生时将由用户明确地选择的接收人。
预测模型可以对应于特定事件。可以使用计算设备的一个或多个属性来确定建议的要联系的接收人。例如,可以从对应于事件发生之后用户与其他用户的交互的历史数据子集生成特定的子模型。可以在设备具有一个或多个属性(例如,在访问电子邮件应用程序的事件之后用户与选择的接收人的交互,具有特定位置和/或当日时间的属性)时收集该历史交互数据子集。预测模型可以由子模型组成,每个子模型用于不同的上下文数据组合。不同的组合可以具有不同上下文数据量。这些子模型可以在层级树中生成,其中更具体组合的子模型在层级树中所处位置更低。在一些实施方案中,只有当子模型可以以比树中更高的模型更准确地预测接收人时,才会生成该子模型。以这种方式,可以对用户将选择哪个应用程序进行更准确的预测。在一些实施方案中,预测模型和子模型可以识别在存在上下文数据的特定组合时在事件之后由用户选择的前N个接收人(例如,固定百分比数)。
可以对诸如神经网络或回归的模型进行训练,以识别用于特定上下文的特定应用程序,但是当使用了所有相应的历史数据时,这可能较为困难。使用所有历史交互数据可能导致预测模型过度拟合,并且导致准确度降低。本发明的实施方案可以将历史数据分段成历史数据的不同输入集,每一个输入集对应于不同的上下文。可以针对不同的历史数据输入集训练不同的子模型。
A.基于不同上下文数据的不同模型
当特定事件发生时,设备可以处于各种上下文中,例如在不同的位置 (诸如在工作中、在家中或在学校),在不同的时间,在一周的不同的日子(诸如工作日或周末),在设备的不同运动状态(诸如跑步、步行、在开车,或静止不动),或处于通信应用程序的不同使用状态(诸如用于撰写电子邮件或创建日历条目)。可以联合所检测的事件检索上下文信息,例如在检测到该事件之后检索上下文信息。可以使用上下文信息来帮助预测哪个预测接收人可能被选择作为与检测事件相关联的通信的接收人。可以使用GPS传感器来确定不同的位置,并且可以基于先前的通信何时发送来确定时间。可以使用诸如加速度计、陀螺仪或GPS传感器的运动传感器来确定不同的运动状态。
实施方案可按各种方式使用上下文信息。在一个示例中,可以使用一条上下文数据(例如,对应于设备的一个属性)来预测哪个接收人最有可能被选择。例如,设备的特定位置可以被提供为预测模型的输入。
又如,上下文信息的一些或全部上下文数据可以在分段过程中使用。可以使用某段上下文数据来对输入的历史数据进行分段,使得仅使用与该段上下文数据的对应属性相对应的历史数据来确定特定子模型。例如,设备的特定位置不会被用作子模型的输入,而是用于选择要使用的子模型,以及相应地使用哪个输入数据来生成特定子模型。
因此,在一些实施方案中,特定上下文数据可用于识别要使用哪个子模型,并且其他上下文数据可以用作子模型的输入,用于预测用户可能与哪个接收人进行交互。特定属性(例如,特定位置)不对应于特定子模型,该特定属性可被用作未来(输入)所使用的子模型。如果该特定属性对应于某一特定子模型,则该属性的使用情形可以变得更加丰富,因为整个模型都专用于该特定属性。
将子模型专用于特定属性(或属性的组合)的一个缺点是,可能没有大量与该特定属性相对应的历史数据。例如,用户可能只在特定位置几次执行特定事件(例如,撰写电子邮件)。这种有限的数据量也被称为数据稀疏。当使用属性的组合(例如,特定时间的特定位置)时,数据可能变得更加稀疏。为了克服这个缺点,实施方案可选择性地确定何时生成新的子模型作为分段过程的一部分。
1.默认模型
当设备被用户第一次获得(例如带来)时,可以使用默认模型。默认模型可以应用于一组事件(例如,指定为触发事件的所有事件)。默认模型可以播种有来自与用户关联的其他设备的聚合数据。在一些实施方案中,默认模型可以简单地选取最流行的接收人,而不管上下文,例如,由于没有足够的数据可用于任何一个上下文。再次收集数据后,可以丢弃默认模型。
在一些实施方案中,默认模型可以具有硬编码的逻辑,其指定要建议的预定接收人和要执行的动作。这样,可以探测用户如何响应(例如,否定响应是用户不选择建议的接收人),这样可以提供简单地跟踪所使用的肯定响应的额外数据。类似于这种默认模型,可以运行预测模型来将其预测与实际结果进行比较。然后可以根据实际结果来改进预测模型。当预测模型具有足够的置信度时,可以从默认模型切换到预测模型。类似地,可以跟踪子模型的性能。当子模型具有足够的置信度时,子模型可以用于给定的上下文。在一些实施方案中,存在关于不同事件的不同子模型。例如,电子邮件子模型可用于电子邮件上下文以预测电子邮件的接收人,单独的日历子模型可用于预测日历事件的受邀者。这些不同的子模型可以使用来自历史交互数据库中相应表格的数据来识别以前的电子邮件和日历邀请的接收人。在该实施例中,电子邮件表可以具有过往电子邮件消息的记录,这些记录指示用户以前添加到消息中的接收人。类似地,历史交互数据库中的日历表可以具有过往日历事件的记录,这些记录指示被邀请到日历事件的用户。
2.初始训练
预测模型(例如,事件模型)可以使用到目前为止收集的历史数据来进行初始训练,其中该模型不向用户提供接收人建议。这种训练可以称为初始训练。可以周期性地(例如,每天)更新预测模型来作为后台进程的一部分,这可以在设备充电并且不使用时发生。训练可以涉及优化模型的系数,以便优化正确预测的数量,并与历史交互数据中的实际结果进行比较。在另一示例中,训练可以包括识别实际选择的前N个(例如,预定数量或预定百分比)应用程序。训练后,可以测量模型的准确度,以确定是否应使用该模型来向用户提供建议的接收人(和潜在的相应交互类型)。
一旦模型获得足够的准确度(例如,顶部选择的应用程序是以足够高的准确度被选择的),则可以实现该模型。对于顶级模型(例如,第一事件模型),这种情况可能不会发生,但是当针对特定上下文测试子模型时可能发生这种情况。因此,可以类似地对子模型执行这样的初始训练。
B.获取更多数据时的分段
当用户首次开始使用设备时,将不存在用于预测在特定事件之后(例如,在访问电子邮件应用程序、日历应用程序、视频会议应用程序,或日历应用程序之后)用户可能选择与之交互的接收人的历史交互数据。在初始模式下,可以获得历史交互数据,而不建议预测的接收人。随着获得更多的历史数据,可以确定是否将预测模型分段为子模型。利用更多的历史交互数据,子模型可以被分段成更多的子模型。当有限的历史数据可用于用户与接收人的交互时,不建议接收人,或者可以使用更一般的模型。
分段过程可以由用户设备(例如,移动设备,诸如智能电话)执行,用户设备可以维护数据隐私。在其他实施方案中,可以由与用户设备通信的服务器执行分段过程。分段过程可以在一段时间内(例如,几天或几个月)中部分地执行,或者可以一起执行整个分段过程,并且可以周期性地重新进行。分段过程可以作为接收人预测引擎的例程执行。
随着更多数据被收集,预测模型可以被分段成数个子模型。在收集数据的不同点,可能会发生分段。随着更多数据被获取,可能会发生另一次分段。每个分段可以涉及完全重做分段,这可能或可能不导致如先前分段中那样创建的相同子模型。
在该实施例中,第一事件模型可以对应于特定事件(例如,向特定联系人(诸如同事)发送电子邮件)。该事件模型可以对应于针对该特定事件的预测引擎的顶级。最初,对于该特定事件,只能有一个模型,因为可用的历史交互数据最少。此时,事件模型可能只是出于训练目的跟踪历史数据。事件模型可以进行接收人预测并将这些预测与实际结果进行比较 (例如,用户是否选择建议的接收人以在检测到事件之后的指定时间内与之进行交互)。如果没有接收人具有大于阈值的概率,则在特定事件发生时不会建议任何接收人。
在一些实施方案中,事件模型仅使用针对特定设备收集的数据。在其他实施方案中,事件模型可以播种有从与用户关联的其他设备聚合的历史交互数据。这样的历史交互数据可以允许事件模型提供一些接收人建议,这可以随后允许获得额外的数据点。例如,可以跟踪用户是否经由特定应用程序(例如,电子邮件、音频呼叫、视频会议、即时消息或文本消息) 与建议的接收人进行交互,这可以提供比用户是否确实选择接收人提供更多的数据点。
随着收集更多数据,可以周期性地确定是否应该进行分段。此类确定可以基于是否可以通过分段获得更高的准确度。该准确度可作为可以进行预测的概率水平来测量,这在下文更详细地描述。例如,如果可将接收人预测为具有比事件模型更高水平的子模型概率,则可以执行分段。还可以使用一个或多个其他标准,来确定是否应该创建子模型作为分段过程的一部分。例如,一个标准可以是,在应用子模型之前,子模型必须具有统计意义上显着的输入历史数据量。由于在少量数据上训练的模型可能不准确,因此对数据量的要求可以为子模型提供更大的稳定性,并且最终提供更准确的数据。
C.用于基于触发事件建议接收人的系统
图3示出了根据本发明实施方案的预测系统37_300的简化框图,该预测系统用于基于触发事件和上下文信息来识别接收人和相应的动作命令。预测系统37_300驻留在识别应用程序的设备内。预测系统37_300可以包括硬件和软件部件。
预测系统37_300包括用于识别建议的接收人的预测引擎37_302。预测引擎37_302可以接收触发事件。预测引擎37_302可以使用从触发事件37_328收集的信息来识别建议的接收人37_304。如图所示,除了触发事件 37_328之外,预测引擎37_302还可以接收上下文数据37_306。预测引擎 37_302可以使用从触发事件37_328和上下文数据37_306两者收集的信息来识别建议的接收人37_304。在实施方案中,基于接收的上下文数据 37_306,预测引擎37_302使用不同的模型来识别用于不同类型的通信的建议接收人。例如,当上下文数据37_306指示正在访问电子邮件应用程序或正在撰写电子邮件时,预测引擎37_302可以使用电子邮件子模型。电子邮件子模型可以结合来自历史事件数据库37_316的历史电子邮件数据使用这样的上下文数据37_306来预测电子邮件接收人。电子邮件子模型可用于预测电子邮件的接收人,单独的日历子模型可用于预测日历事件的受邀者。预测引擎37_302还可以确定要执行的动作,例如,如何和何时可以为与建议的接收人交互的用户提供用户界面。
1.上下文信息
可以从上下文数据37_306收集上下文信息。在实施方案中,可以在任何时间接收上下文信息。例如,可以在检测到触发事件37_328之前和/或之后接收上下文信息。另外,可以在检测触发事件37_328期间接收上下文信息。上下文信息可以针对特定上下文指定设备的一个或多个属性。上下文可以是当检测到触发事件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。例如,连续轮询GPS 37_312以确定设备的位置可能过度耗电,这可能缩短电池寿命。为了避免缩短电池寿命,预测引擎37_302可以通过从 GPS 37_312以外的源请求设备的位置来确定设备的位置。位置信息的另一个源可能是最近已经针对设备位置轮询了GPS 37_312的应用程序。例如,如果应用程序A是最近针对设备位置轮询GPS 37_312的应用程序,则预测引擎37_302可以从应用程序A请求和接收位置数据,而不是单独轮询 GPS 37_312。
2.历史信息
在某些实施方案中,除了上下文源37_308之外,历史事件数据库 37_316也可由预测引擎37_302使用。历史事件数据库37_316可以包括在检测到触发事件之后用户与移动设备之间的先前交互的历史信息。
历史事件数据库37_316可以记录在某个触发事件之后用户与接收人交互的次数。例如,数据库37_316可以记录:当包括接收人A时,用户十次中有八次在电子邮件或日历邀请中包括接收人B。因此,预测引擎37_302 可以接收该信息作为历史数据37_318,以确定当为电子邮件或日历通信选择接收人A时,是否应为用户识别接收人B。
历史事件数据库37_316还可以记录当检测到触发事件时在不同上下文下与接收人交互的次数。例如,数据库37_316可以记录:当用户在家时,在用户访问个人电子邮件账户之后,用户十次中有九次与接收人A交互,并且当用户在工作位置时,用户十次中有一次与接收人A交互并且使用工作电子邮件账户。因此,预测引擎37_302可以接收该信息作为历史数据 37_318,并且确定当用户在家访问个人电子邮件账户时应建议接收人A,但当在工作时访问工作电子邮件账户时不建议接收人A。应当理解,虽然本节中讨论的示例将位置称为“家庭”或“工作,但是表示“家庭”或“工作”的上下文数据37_306可以是数字坐标诸如地理坐标的形式。本领域的技术人员理解,可以采用类似的方式使用与当日时间、星期几和一年中的日期相关的信息来代替位置,以识别接收人。
历史事件数据库37_316还可以记录用户决定不选择将所识别的接收人作为用于通信的接收人的频率以及在什么情况下做出这样的决定。例如,数据库37_316可以记录:当用户在家中将耳机插入到设备中时,用户十次中有两次没有选择接收人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允许用户选择一个或多个建议的接收人。如图所示,实施方案可以在没有在主题行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可以允许用户输入一个或多个搜索词。搜索结果窗口 37_510可以呈现建议的接收人。在图37_5的实施例中,用户在搜索窗口 37_508中没有提供任何关键字。如图所示,实施方案可以在没有在搜索窗口37_508中输入任何搜索词或关键字的情况下,基于设备37_502的上下文在搜索结果窗口37_510中呈现建议的接收人。这种零关键字搜索可以由设备37_502基于设备37_502的当前上下文来执行。例如,基于设备的当前位置、当前时间和其他上下文信息,诸如在设备37_502上使用的用户账户标识符,可以确定建议的接收人并显示在搜索结果窗口37_510中。然后,用户可以与搜索结果窗口37_510交互以选择一个或多个建议的接收人。在实施方案中,当用户在搜索窗口37_508中输入搜索词(或其一部分)时,可以基于搜索词来更新搜索结果窗口37_510中的建议的接收人。
在一些实施方案中,搜索结果窗口37_510可以不止图37_5所示的示例性联系人列表。例如,搜索结果窗口37_510可以包括指示用户如何与建议的接收人交互的信息。搜索结果窗口37_510也可以指示为什么应发生交互。例如,搜索结果窗口37_510可以建议用户使用用户的个人账户,根据接收人的个人账户来发起对接收人A的视频通话,因为用户经常在一天的这个时间段内这样做。该建议甚至还可以建议使用特定的通信应用程序来联系接收人A。
E.方法
图37_6是根据本发明实施方案的基于事件向计算设备的用户建议一个或多个接收人的方法37_600的流程图。方法37_600可以由计算设备(例如,由正在跟踪与用户设备的用户交互的用户设备)来执行。方法37_600 可以使用一组历史交互,包括具有计算设备的一个或多个属性的不同集合的交互来建议接收人。
在框37_602处,设备在输入设备处检测事件。如图所示,框37_602 可以包括检测与用户相关联的用户设备处的用户输入。输入设备的示例是触摸屏、用于提供语音命令的麦克风、相机、按钮、鼠标、触笔、键盘等。事件可以是移动设备与外部实体诸如外部设备或用户交互的任何动作。事件可以是对于设备重复的类型。因此,可以针对事件的不同发生获得历史统计数据。可以使用这种历史数据来训练模型和子模型。
框37_602可以包括接收用户设备的一个或多个属性。这一个或多个属性可以由在设备上执行的接收人建议引擎接收。如本节所述,属性可对应于时间、位置、运动状态、日历事件等。这样的一个或多个属性可以对应于定义设备的特定上下文的上下文数据。这一个或多个属性可以在检测到事件的时间附近(例如在一段时间内)被测量。该时间段可以包括在检测到事件之前和之后的时间、恰好在检测到事件之前的时间段,或恰好在检测到事件之后的时间。
在框37_604处,确定用户输入对应于用于经由建议引擎提供建议的接收人的触发器。例如,如果接收到用于在电子邮件应用程序中撰写电子邮件的用户输入,则框37_604可以确定应提供用于该电子邮件的建议的接收人。此外,例如,如果接收到用于在搜索应用程序中发起搜索的用户输入,则框37_604可以包括确定预测的联系人将被包括在搜索结果中。
在框37_606处,填充对应于使用该用户设备进行的先前通信的一个或多个表。在图37_6的实施例中,这一个或多个表中的每一个对应于用户设备的不同子状态,并且包括与不同接收人的先前通信的多个联系人度量。例如,先前通信可以包括与其他用户的先前的交互,诸如例如先前的电子邮件、语音呼叫、文本消息、即时消息、视频通话和日历邀请。
在框37_608处,使用一个或多个状态变量来识别对应于一个或多个状态变量的第一组一个或多个表。例如,如果位置状态变量指示用户设备在用户的家中,则框37_608可以包括识别对应于与用户的家相关联的先前通信的表。也就是说,与使用用户设备进行的先前通信相对应的表可以被过滤到只包括与用户在家时发起或执行的先前通信相对应的表。在该实施例中,当位置状态变量指示用户设备在用户的家中时,可以识别在用户在家时撰写、读取或编辑过往电子邮件的一组表。此外,例如,如果账户状态变量指示用户正在使用工作电子邮件账户,则框37_608可以包括识别与使用该工作电子邮件账户进行的过往通信相对应的一组表。实施方案可以使用多个状态变量(例如,位置状态和账户状态)以
在框37_610处,查询第一组表以获得用于一个或多个潜在接收人的联系人度量。联系人度量可以包括例如对于使用用户设备进行的先前日历事件的日历邀请的接收人的联系人度量、创造先前电子邮件消息(即撰写或发送)的时间、与先前电子邮件消息相关联的电子邮件账户标识、在电子邮件消息上复制的其他接收人、发送到每个接收人的电子邮件的数量。在一个实施例中,可以完成对第一组表的查询以计算发送给一个或多个潜在接收人中的每一个的先前通信的总数。例如,查询第一组表可以包括查询电子邮件表以确定发送给每个潜在接收人或从其接收的电子邮件的累积数量。查询第一组表可以包括查询日历事件表以确定发送给每个潜在接收人或从其接收的日历邀请的累积数量。
框37_610可以基于与潜在接收人的个体交互以及与接收人组的组交互来查询表。例如,框37_610可以预测下一个电子邮件接收人,其中来自电子邮件表的上下文数据指示用户和接收人之间的先前电子邮件交互(例如,发送或接收的电子邮件消息)。框37_610可以包括对应于当前上下文的排名历史交互。例如,交互的权重可以包括指示多个接收人的共同出现的社交元素。在该实施例中,用户与一组接收人的历史交互的排名可以基于用户是否以前在其他过往交互中与该组进行交互而提高。也就是说,可以基于一组接收人已经被包括在常见的过往交互中(例如,接收人在用户发送的电子邮件上被反复地复制)来将这组接收人的成员的排名提升。这样,如果用户先前为过往电子邮件选择了两个接收人,并且这两个接收人都被复制到发送给第三接收人的电子邮件上,则第三接收人将基于以前已被包括在这两个接收人中而得到排名提升。但是,如果用户有另一个交互,其中只包括这三个接收人中的一个,那么这种交互将不会得到相同的排名提升。
在框37_612处,针对这一个或多个潜在接收人中的每一个计算使用所获得的联系人度量的先前通信和交互的总联系人度量。在一个实施例中,先前通信的总联系人度量是发送到这一个或多个潜在接收人中的每一个的先前通信的累积总数。在该实施例中,可以通过查询一个或多个表来计算发送到每个潜在接收人的电子邮件、消息、呼叫和日历邀请的总数。
在框37_614处,预测引擎用于基于这一个或多个潜在接收人的总联系人度量并使用一个或多个标准来识别要向用户建议的一个或多个预测接收人。在一些实施方案中,标准可以包括要建议的预测接收人的最小数量 (例如,前N个接收人)、要建议的预测接收人的百分比(例如,前 25%)和/或用于建议预测接收人的阈值置信水平。框37_614可以包括使用硬中断作为标准。例如,接收人可以只被认为具有与用户的最小过往交互次数。在一些实施方案中,使用社交标准来建议接收人。例如,当预测的接收人与用户先前与之交互的另一建议的接收人共同出现时,可能会建议这些预测的接收人。在一些实施方案中,可以建议具有与其他预测接收人相似特征的接收人。例如,具有相同电子邮件地址域以及与预测接收人相同的位置关联的接收人可被建议为用于通信的额外接收人。
框37_614可以包括使用特定的子模型来识别要向用户建议的一个或多个接收人。这一个或多个接收人可以具有由用户与该触发事件关联地与之交互的一个或多个接收人中的至少一个的至少一个阈值概率。预测历史数据中的一个或多个接收人中的一个可以被识别为一次正确预测。阈值概率可以采用各种方式来测量,并且可以使用从历史数据确定的概率分布,如下面更详细描述的。例如,可以需要概率分布的平均(均值)概率、中值概率或峰值高于阈值概率(例如,高于0.5,相当于37_60%)。因此,置信水平可以是概率分布的平均值、中值或峰值。另一个示例是概率分布上高于特定值的区域大于阈值概率。
在框37_616处,向用户提供这一个或多个预测的接收人。框37_614 可以包括向用户提供用于与这一个或多个接收人通信的用户界面。例如,设备可以经由用户可以与之交互以指示用户是否希望访问所识别的接收人的列表界面,来向用户显示所识别的接收人。例如,该用户界面可以包括触敏显示器,该显示器向用户显示所识别的接收人中的一个或多个,并且允许用户通过与该触敏显示器交互来与由设备识别的一个或多个接收人通信。该用户界面可以允许在具有比含有用户全部接收人的列表中提供的接收人更少的接收人的显示屏上交互。
例如,可以在搜索屏幕上的接收人列表中提供一个或多个建议的接收人。用户可以选择接收人,然后从搜索屏幕中选择如何与所选择的接收人进行通信,从而使用户更容易与所选择的接收人进行交互。例如,特定于通信应用程序(例如,电子邮件应用程序)的用户界面可以在(例如,经由密码或生物特征)认证用户之后出现。
在电子邮件上下文中,框37_614可以将建议的接收人提供为电子邮件消息的潜在接收人。在这种情况下,图37_4的示例性电子邮件应用程序界面可用于向用户提供建议的电子邮件接收人。在搜索上下文中,框37_614 可以包括将建议的接收人提供为搜索界面中的搜索结果。例如,图37_5的搜索界面可用于将建议的接收人呈现在搜索结果列表中。
F.示例性模型
在一些实施方案中,模型可以为给定的数据集(或子集)选择前N个接收人。由于这N个接收人在过去被最经常地选取,所以可以预测,未来的行为将反映过去的行为。N可以是预定数量的接收人(例如,1、2或3 个)或百分比,其可以是与事件相关联的实际过往接收人的接收人数量。这样的模型可以选择前N个接收人来提供给用户。可以进行进一步的分析,例如,以确定这N个接收人中的每个接收人的概率(置信)水平,从而确定是否将它们提供给用户,以及如何将它们提供给用户(例如,动作),这可以取决于置信水平。
在N等于3的示例中,当事件在上下文信息对应于特定子模型的情况下发生时,模型将返回被最常选择的前三个接收人。
在其他实施方案中,与仅使用上下文信息来选择子模型相反,子模型可以使用复合信号,其中一些上下文信息用于确定预测的接收人。例如,神经网络或逻辑回归模型可以使用位置(或其他特征)并构建这些特征的线性加权组合的类型来预测接收人。当子模型的数据量明显很大时,此类更复杂的模型可能更适合。一些实施方案可在再次获得用于特定节点 (即,上下文数据的特定组合)的数据之后切换在该节点处使用的子模型的类型。
模型的准确度可以对照历史交互数据进行测试。对于给定的事件,历史交互数据可以识别用户与事件关联地与哪些接收人交互(例如,恰好在事件之前或恰好在事件之后,诸如一分钟内)。对于每个事件,可以使用上下文数据来确定特定模型。此外,上下文数据可以用作模型的输入特征。
在模型(或子模型)选择顶部接收人的示例中,可以将实际选择 (即,发送通信内容)顶部接收人时的历史数据点数量确定为正确的计数,并且可以将顶部接收人未被选择时的历史数据点数量确定为不正确的计数。在对于选择前N个接收人的模型而言N大于一的实施方案中,正确的计数可对应于选择了这前N个接收人中的一个作为通信的接收人时的任何历史数据点。
基于历史交互的第一子集,第一子模型可以预测用户将与具有第一置信水平的事件关联地与之交互的第一组一个或多个接收人中的至少一个接收人。可以至少基于第一置信水平大于初始置信水平至少一个阈值量(它可以为0或更大)来创建第一子模型。该阈值量可以对应于差异阈值。在一些具体实施中,第一子模型可以不一定在该标准满足时创建,因为可以使用进一步的标准。如果置信水平不大于初始置信水平,则可以选择另一个属性进行测试。置信水平的这种比较可以对应于对信息增益的测试。可以重复相同的过程以确定用于预测第一组一个或多个收件人的第一子模型的第二子模型(对于第二属性)的第二置信水平。历史交互的第二子集可以用于第二子模型。可以采用类似的方式测试第三属性或更多属性。
G.决策树的重新生成
实施方案可以周期性地(例如每天)生成模型的决策树。这种生成可以使用当时可用的历史交互数据。因此,决策树可以从一代变为另一代。在一些实施方案中,构建决策树而不知道先前的决策树。在其他实施方案中,可以从这样的先前知识构建新的决策树,例如,知道哪些子模型是可能的,或者从先前的决策树开始。
在一些实施方案中,尝试所有上下文(或上下文的预定列表)以确定哪些子模型提供最大信息增益。例如,如果位置提供用于分段成子模型的最大信息增益,则可以创建用于至少一个特定位置的子模型。在每个分段级别,可以采用这种贪心的方式测试上下文以确定哪些上下文提供了信息增益的最高增长。
IV.基于概率水平确定动作
预测模型不仅可以测试所选择的接收人,而且还可以测试特定操作 (例如,基于先前添加的接收人将接收人复制到电子邮件上)。在一些实施方案中,一旦选择某个接收人的概率足够准确,就可以提供比仅提供建议的接收人更为积极的动作。例如,当提供接收人时,电子邮件应用程序可以自动启动,并且该接收人作为新电子邮件消息中的接收人被包括。
当以足够的概率(例如,置信水平高于高阈值)预测选择某个接收人时,该预测可以开始测试动作。因此,测试不仅仅是用于预测接收人,而是测试是否可以以足够的准确度预测特定动作。可以从历史交互数据中获得不同的可能动作(包括启动电子邮件、文本消息收发、日历或视频会议应用程序)。
因此,当存在更大的置信度时,实施方案可以更积极地执行要执行的动作。如果特定的通信手段(例如,电子邮件、文本消息、语音呼叫、视频通话和视频会议)具有被用于与接收人通信的高概率,那么预测模型可以提供用于通信应用程序的特定用户界面。例如,如果用户将发送电子邮件给建议的接收人具有高概率,则预测模型可以提供电子邮件应用程序的界面。因此,在一些实施方案中,使用概率越高,就可以采取更积极的动作,诸如自动提供用于使用对应的通信应用程序(例如,电子邮件、日历、即时消息、文本消息、语音呼叫或视频会议)与接收人进行交互的界面,而不是仅提供建议的接收人。
例如,基本模型可以具有一定程度的统计显著性(准确度和置信度),动作可能是在搜索屏幕上建议接收人。又如,更高水平的统计显著性可以导致屏幕亮起(从而引起对接收人的关注,可以仅选择一个接收人,或者可以提供特定应用程序的用户界面(UI)(即,电子邮件应用程序的UI)。
该动作可以取决于模型是仅预测一个接收人还是预测一组接收人。例如,如果有机会提出三个接收人建议而不是一个接收人建议,那么这也将改变概率分布,因为选择这三个接收人中的任何一个将提供正确的预测。对一个接收人的推荐不可信的模型可能对三个接收人的推荐有足够的置信度。实施方案可以执行将另一个接收人添加到由模型预测的一组接收人 (例如,尚未在该组中的第二可能的联系人),从而使模型具有更高置信度。如果模型基于不止一个联系人的预测,则所提供的用户界面将提供与不止一个联系人的交互,这可能影响UI的形式。例如,所有联系人都可以在列表提供,并且一个联系人不会自动被选择。在一个实施方案中,预测可以包括顶部联系人,并且如果选择该联系人,则可以在消息上复制其他联系人(即,由于在历史交互数据中共同出现)。在图37_4的实施例中,这些其他接收人可以列在电子邮件应用程序界面37_406的CC/BCC部分。
还可以有多个操作,以及适于不同操作的一个建议。例如,健身房中可以有两个播放列表作为子模型的一部分(例如,当两个动作具有相似的被选择的可能性时,识别出一个应用程序,但在模型中识别出两个动作)。两个动作一起可以具有统计显著性,而它们单独则不具有统计显著性。
例如,当首先针对某个事件(例如,撰写电子邮件)训练该模型时,该模型的置信度可能不足以执行任何动作。在初始置信水平下,可以显示接收人姓名、图标或其他接收人标识符。在下一个更高的置信水平下,可以显示接收人的联系方式(例如,电子邮件地址或电话号码)。在进一步的置信水平下,可以显示特定于特定通信应用程序的用户界面(例如,用于将预测的接收人添加为新电子邮件、即时消息、电话呼叫或视频通话的接收人的控件)。这些不同的水平可以代表用于定义置信水平的各种值。
其他示例动作可以包括更改正在播放的歌曲,提供通知(可以在屏幕上的醒目位置)。所述动作可以在解锁设备之后发生,例如,在解锁之后可以显示特定于该应用程序的UI。可以使用深链接来定义操作,以开始应用程序的特定功能。
V.数据流和模块
图37_7是用于建议要联系的接收人的示例性数据流程图37_700。数据流程图37_700向各种通信应用程序和交互机制37_701提供接收人建议 37_702。在图37_7的实施例中,应用程序和机制37_701包括日历 37_704、邮件37_706、消息37_708、电话37_710和视频通话37_712。如图37_7所示,示例性邮件37_706应用程序是电子邮件应用程序,并且示例性消息37_708应用程序是即时消息应用程序。如图所示,电话应用程序 37_710可用于发起语音呼叫以及撰写文本消息。视频通话应用程序的一个示例是应用程序。
数据流程图37_700示出接收人建议37_702可以基于来自各种数据源 37_714的数据。数据源37_714可以包括用于过往通信的信息。数据源可以包括事件37_716、搜索37_718、找到的联系人37_720、最近活动 37_722、收集守护进程37_724、通信历史37_726和联系人37_728。可以使用来自通信应用程序和交互机制37_701的数据填充数据源37_714。例如,日历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所示的通信应用程序或交互机制中的一者。应用程序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示出了用于向用户提供与一个或多个接收人交互的用户界面的示例性架构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可以识别一个或多个应用程序,以及相应的动作。在与应用程序建议引擎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的全部或部分。
用于以人为中心的预测的示例性方法、设备和计算机可读介质
一些实施方案提供了用于建议接收人的系统和方法。在检测到设备上的用户输入对应于用于提供建议的接收人的触发器之后,确定表示设备当前状态的设备的上下文信息,其中当前状态由状态变量定义。填充与使用该设备进行的先前通信相对应的表,每个表对应于设备的不同子状态,并且包括与不同接收人的先前通信的联系人度量。状态变量可用于识别与状态变量相对应的一组表。潜在接收人的联系人度量是从这组表中获取的。为每个潜在的接收人计算先前通信的总联系人度量。基于潜在接收人的总体联系人度量并且使用标准来识别要建议的预测接收人,并将预测的接收人提供给用户。
在一些实施方案中,提供了一种提供要与用户的用户设备联系的建议接收人的计算机实现的方法,该方法包括:在所述用户设备处:检测用户设备处的用户输入;确定该用户输入对应于经由建议引擎提供建议的接收人的触发器;确定用户设备的上下文信息,该上下文信息表示用户设备的当前设备状态,其中当前设备状态由一个或多个状态变量定义;填充与使用用户设备进行的先前通信相对应的一个或多个表,这一个或多个表中的每一个对应于用户设备的不同设备子状态并且包括与不同接收人的先前通信的多个接收人度量;使用这一个或多个状态变量来识别对应于这一个或多个状态变量的第一组一个或多个表;从第一组表中获得用于一个或多个潜在接收人的联系人度量;对于这一个或多个潜在接收人中的每一个:使用所获得的联系人度量计算先前通信的总联系人度量;使用建议引擎基于这一个或多个潜在接收人的总联系人度量并使用一个或多个标准来识别一个或多个要向用户建议的预测接收人;以及向用户提供这一个或多个预测接收人。在一些实施方案中,上下文信息包括在用户设备上执行的通信应用程序中的开放通信的一个或多个接收人、包括当前应用程序状态的当前设备状态、包括这一个或多个接收人的当前应用程序状态。在一些实施方案中,上下文信息包括对应于在用户设备上执行的通信应用程序的账户标识符、包括当前应用程序状态的当前设备状态、包括账户标识符的当前应用程序状态。在一些实施方案中,该方法包括:确定用户设备的当前位置,其中上下文信息包括当前位置、包括当前位置状态的当前设备状态、包括当前位置的当前位置状态。在一些实施方案中,上下文信息包括当前时间和当前日期,并且其中这一个或多个标准包括要建议的预测接收人的最小数量。在一些实施方案中,这一个或多个标准包括阈值置信水平,该方法还包括:在用户设备处:基于一个或多个预测接收人中每一个的相应置信水平,确定如何将这一个或多个预测接收人提供给用户。在一些实施方案中,上下文信息包括在用户设备上执行的通信应用程序中的开放通信的主题、包括当前应用程序状态的当前设备状态、包括该主题的当前应用程序状态。在一些实施方案中,开放通信的该主题是电子邮件消息主题、日历事件主题和视频会议主题中的一个或多个。在一些实施方案中,上下文信息包括在用户设备上执行的日历应用程序中的开放日历事件的预定时间、包括当前应用程序状态的当前设备状态、包括预定时间的当前应用程序状态。在一些实施方案中,上下文信息包括在用户设备上执行的日历应用程序中的开放日历事件的位置、包括当前应用程序状态的当前设备状态、包括位置的当前应用程序状态。在一些实施方案中,所述一个或多个表中的一个是与用户设备的日历子状态相对应的日历表,该日历表包括使用该用户设备进行的先前日历事件的日历邀请的接收人的联系人度量。在一些实施方案中,所述一个或多个表中的一个是与用户设备的电子邮件子状态相对应的电子邮件表,该电子邮件表包括使用该用户设备创建的先前电子邮件消息的接收人的联系人度量,该联系人度量包括先前电子邮件消息被创建的时间、与先前电子邮件消息相关联的电子邮件账户标识符、在先前电子邮件消息上复制的其他接收人,以及发送给每个接收人的电子邮件消息数量。在一些实施方案中,计算先前通信的总联系人度量包括查询所述一个或多个表以计算发送到这一个或多个潜在接收人中每一个的先前通信的总数。
在一些实施方案中,一种包括非暂态计算机可读介质的计算机产品存储用于提供要与用户的用户设备联系的建议接收人,这些指令在被用户设备的一个或多个处理器执行时,执行以下操作:检测用户设备处的用户输入;确定该用户输入对应于经由建议引擎提供建议的接收人的触发器;确定用户设备的上下文信息,该上下文信息表示用户设备的当前设备状态,其中当前设备状态由一个或多个状态变量定义;填充与使用用户设备进行的先前通信相对应的一个或多个表,这一个或多个表中的每一个对应于用户设备的不同设备子状态并且包括与不同接收人的先前通信的多个联系人度量;使用这一个或多个状态变量来识别对应于这一个或多个状态变量的第一组一个或多个表;从第一组表中获得用于一个或多个潜在接收人的联系人度量;对于这一个或多个潜在接收人中的每一个:使用所获得的联系人度量计算先前通信的总联系人度量;使用建议引擎基于这一个或多个潜在接收人的总联系人度量并使用一个或多个标准来识别一个或多个要向用户建议的预测接收人;以及向用户提供这一个或多个预测接收人。在一些实施方案中,上下文信息包括在用户设备上执行的通信应用程序中的开放通信的一个或多个接收人、包括当前应用程序状态的当前设备状态、包括这一个或多个接收人的当前应用程序状态。在一些实施方案中,上下文信息包括对应于在用户设备上执行的通信应用程序的当前时间和账户标识符、包括当前应用程序状态的当前设备状态、包括当前时间和账户标识符的当前应用程序状态。
在一些实施方案中,提供了一种用于提供要与用户设备联系的建议接收人的用户设备,该用户设备包括:输入设备;一个或多个处理器,其被配置为:在输入设备处检测用户输入;确定该用户输入对应于经由建议引擎提供建议的接收人的触发器;确定用户设备的上下文信息,该上下文信息表示用户设备的当前设备状态,其中当前设备状态由一个或多个状态变量定义;填充与使用用户设备进行的先前通信相对应的一个或多个表,这一个或多个表中的每一个对应于用户设备的不同设备子状态并且包括与不同接收人的先前通信的多个联系人度量;使用这一个或多个状态变量来识别对应于这一个或多个状态变量的第一组一个或多个表;从第一组表中获得用于一个或多个潜在接收人的联系人度量;对于这一个或多个潜在接收人中的每一个:使用所获得的联系人度量计算先前通信的总联系人度量;使用建议引擎基于这一个或多个潜在接收人的总联系人度量并使用一个或多个标准来识别一个或多个要向用户建议的预测接收人;以及向用户提供这一个或多个预测接收人。在一些实施方案中,上下文信息包括在用户设备上执行的通信应用程序中的开放通信的一个或多个接收人、包括当前应用程序状态的当前设备状态、包括这一个或多个接收人的当前应用程序状态。在一些实施方案中,所述一个或多个表中的一个是与用户设备的电子邮件子状态相对应的电子邮件表,该电子邮件表包括使用该用户设备创建的先前电子邮件消息的接收人的联系人度量,该联系人度量包括先前电子邮件消息被创建的时间、与先前电子邮件消息相关联的电子邮件账户标识符、在先前电子邮件消息上复制的其他接收人,以及发送给每个接收人的电子邮件消息数量。在一些实施方案中,这一个或多个标准包括阈值置信水平,所述一个或多个处理器被进一步配置为在用户设备处:基于一个或多个预测接收人中每一个的相应置信水平,确定如何将这一个或多个预测接收人提供给用户。
第8部分:用于主动助理的应用程序模型
本节“用于主动助理的应用程序模型”中的材料描述了根据一些实施方案的用于主动助理的应用程序模型和与主动地向计算设备的用户提供建议相关的细节,并提供补充本文提供的公开内容的信息。例如,本节的一些部分描述了预测用户可能有兴趣访问的应用程序,这补充了本文提供的公开内容,例如与填充图9B至图9C的预测部分930内的预测内容有关的以及与创建和检测触发条件有关的那些(图4A至图4B)。在一些实施方案中,与应用程序预测引擎相关的细节以及与预测应用程序以包括在搜索界面中相关的细节也适用于本文描述的其它方法(例如,方法600,800, 1000和1200)。
用于主动助理的应用程序模型的摘要
本节中描述的实施方案提出了用于识别用户何时激活他或她的移动计算设备上的搜索应用程序的技术。具体地讲,该技术涉及在从用户接收到搜索参数输入之前呈现用户可能有兴趣访问的一个或多个应用程序的预测,这可以降低用户必须手动向搜索应用程序提供搜索参数的可能性或必要性。根据一些实施方案,搜索应用程序可以被配置为每当搜索应用程序激活时(例如,显示在移动计算设备的用户界面内)与预测引擎(本节中称为“应用程序预测引擎”)进行介接。更具体地讲,当搜索应用程序与应用程序预测引擎介接时,搜索应用程序可以发出对用户可能有兴趣访问的一个或多个应用程序的预测请求。反过来,应用程序预测引擎可以分析与安装在移动计算设备上的应用程序相关联的信息以产生预测。搜索应用程序然后可以在搜索应用程序的用户界面内显示预测的一个或多个应用程序以供用户选择。
一个实施方案提出了一种用于向移动计算设备的用户提供预测的方法。具体地讲,该方法由在移动计算设备上执行的应用程序预测引擎实现,并且包括以下步骤:(1)从在移动计算设备上执行的搜索应用程序接收请求,该请求是关于提供对安装在移动计算设备上并且用户可能有兴趣激活的一个或多个应用程序的预测,(2)识别安装在移动计算设备上的应用程序的列表,(3)针对包括在该应用程序列表中的每个应用程序:(i)通过对与应用程序相对应的一个或多个数据信号执行一个或多个函数来生成应用程序的得分,以及(ii)将该得分与应用程序相关联,(4)根据生成的得分筛选应用程序列表以产生筛选的应用程序列表,(5)用筛选的应用程序列表填充预测,以及(6)向搜索应用程序提供预测。
另一个实施方案提出了一种用于向移动计算设备的用户呈现预测的方法。具体地讲,该方法由在移动计算设备上执行的搜索应用程序实现,并且包括以下步骤:(1)检测搜索应用程序的激活,(2)向应用程序预测引擎发出请求,该请求是关于预测安装在移动计算设备上并且用户可能有兴趣激活的一个或多个应用程序,(3)从应用程序预测引擎接收预测,其中该预测包括一个或多个应用程序的列表,并且每个应用程序与相应的得分相关联,以及(4)根据得分,在搜索应用程序的用户界面内显示用于这一个或多个应用程序中的至少一个应用程序的用户界面条目。
另一个实施方案提出了被配置为向移动计算设备的用户呈现预测的移动计算设备。具体地讲,该移动计算设备包括处理器,该处理器被配置为执行搜索应用程序,该搜索应用程序被配置为执行包括以下操作的步骤: (1)检测搜索应用程序的激活,以及(2)在搜索应用程序的用户界面内接收到来自用户的输入之前:(i)向在移动计算设备上执行的应用程序预测引擎发出请求,该请求是关于安装在移动计算设备上并且用户可能有兴趣激活的一个或多个应用程序的列表,(ii)从应用程序预测引擎接收该列表,以及(iii) 在搜索应用程序的用户界面内显示用于该列表中包括的一个或多个应用程序中的至少一个应用程序的用户界面条目。如上所述,该处理器还被配置为执行应用程序预测引擎,其中应用程序预测引擎被配置为执行包括以下操作的步骤(1)从搜索应用程序接收对用户可能有兴趣激活的一个或多个应用程序的列表的请求,(2)生成该列表,以及(3)向搜索应用程序提供该列表。
其他实施方案包括一种非暂态计算机可读介质,其被配置为存储指令,这些指令在由处理器执行时,使处理器实现本节中提出的前述技术中的任何一种。
提供发明内容仅是为了概述一些示例性实施方案,以便提供对本节中所述的主题的一些方面的基本理解。因此,应当认识到,上文描述的特征只是示例,不应认为其以任何方式缩窄本节中所述主题的范围或实质。本节中所述的主题的其他特征、方面和优点将根据以下具体实施方式、附图和权利要求书而变得显而易见。
根据结合以举例的方式示出所述实施方案的原理的附图而进行的以下详细描述,本节中所述的实施方案的其他方面和优点将变得显而易见。
用于主动助理的应用程序模型的详细描述
在本部分中提供了根据本发明所述的实施方案的装置和方法的代表性应用。提供这些示例仅是为了添加上下文并有助于理解所述实施方案。对于本领域的技术人员因此将显而易见的是,本发明所述的实施方案可在不具有这些具体细节中的一些或全部具体细节的情况下被实施。在其他情况下,未详细描述熟知的工艺步骤,以便避免不必要地模糊本发明所述的实施方案。其他应用也是可能的,使得以下示例不应被视为是限制性的。
本节中描述的实施方案提出了用于识别用户何时激活他或她的移动计算设备上的搜索应用程序,以及在从用户接收到搜索参数的输入之前呈现用户可能有兴趣访问的一个或多个应用程序的预测的技术。根据一些实施方案,搜索应用程序可以被配置为每当搜索应用程序激活(例如,显示在移动计算设备的用户界面内)时与应用程序预测引擎介接,并且查询应用程序预测引擎以预测用户可能有兴趣访问的一个或多个应用程序。反过来,应用程序预测引擎可以分析与安装在移动计算设备上的应用程序相关联的信息以产生预测。该信息可以包括例如应用程序安装时间戳、应用程序激活时间戳、应用程序激活总计、应用程序使用量度、应用程序图标在主用户界面内的位置(例如,在home屏幕上、在文件夹内等)、最近由用户提供的搜索参数、收集的指示先前预测是否准确的反馈等,这使得应用程序预测引擎能够为搜索应用程序提供有意义和相关的预测。反过来,搜索应用程序可以在搜索应用程序的用户界面内显示预测的一个或多个应用程序以供用户选择。值得注意的是,这种技术可以大幅减少在每当用户尝试访问特定应用程序时他或她输入搜索参数的繁琐过程,这可以提供用户对他或她的移动计算设备的整体满意度的大幅改进。
虽然本节中阐述的实施方案主要涉及被配置为预测用户可能希望访问的应用程序的应用程序预测引擎,但是应当指出,可以在移动计算设备内实现用于提供不同种类的预测(例如,用户可能想要联系的人)的其他预测引擎。更具体地讲,并且根据一些实施方案,每个预测引擎可以被配置为将其自身分配为移动计算设备内的特定预测类别的“专家”。例如,应用程序预测引擎可以将自身指定为“应用程序”预测类别上的专家,以指示应用程序预测引擎专门预测移动计算设备的用户可能有兴趣访问的应用程序。根据一些实施方案,应用程序预测引擎可以采用学习模型,学习模型能够使应用程序预测引擎分析数据(例如,上述信息)并且根据该数据提供预测。虽然本公开主要讨论了被配置为实现学习模型的应用程序预测引擎,但是应当注意,用于分析行为数据并提供预测的任何技术都可以由本节中描述的应用程序预测引擎采用。此外,应注意的是,应用程序预测引擎可以的功能在不同类型的用户设备(例如,智能电话、平板电脑、手表、笔记本电脑等)之间变化,以便为这些不同类型的用户设备提供专门的预测。例如,可以将第一类型的应用程序预测引擎分配给智能电话,可以将第二类型的应用程序预测引擎分配给平板电脑,以此类推。
如上所述,在移动计算设备上实现的每个预测引擎可以将其自身指定为移动计算设备内的一个或多个预测类别上的专家。因此,在某些情况下,两个或多个应用程序预测引擎可以将自己指定为“应用程序”预测类别上的专家。在这种情况下,当本节中描述的搜索应用程序发出预测请求时,两个或更多个应用程序预测引擎中的每个应用程序预测引擎将进行其自己的分析(例如,根据该应用程序预测引擎采用的学习模型)并根据请求生成预测。在这种情况下,响应于预测请求生成至少两个或更多个预测,这可以建立搜索应用程序可能无法解释的冗余度和竞争预测。
因此,实施方案还提出了被配置为用作应用程序预测引擎和搜索应用程序之间的介体的“预测中心”。为了提供这种功能,预测中心可以被配置为用作在预测引擎(例如,应用程序预测引擎)初始化并且尝试将自己分配为一个或多个预测类别(例如,“应用程序”预测类别)的专家时用于预测引擎的注册器。类似地,并且根据一些实施方案,预测中心还可以被配置为管理移动计算设备内不同类型的预测类别,使得消费者应用程序 (例如,本节中描述的搜索应用程序)可以查询预测中心来识别可以提供的预测类别。这样,当消费者应用程序发出特定预测类别的预测请求,并且两个或更多个预测引擎以其相应的预测进行响应时,预测中心可以被配置为在响应消费者应用程序发出的请求之前接收并处理预测。处理预测可以涉及例如移除存在于预测中的重复信息,根据与预测引擎相关联的历史性能(即准确度)量度来对预测应用权重,根据预测引擎在生成其预测时通告的得分对预测进行排序等。这样,预测中心可以将多个预测提取成优化的预测,并向消费者应用程序提供优化的预测。因此,该设计有利地简化了消费者应用程序的操作要求(因为它们不需要能够处理多个预测),将繁重处理整合到预测中心,并且使得消费者应用程序能够获得表示已经将其自己分配为感兴趣的预测类别上的专家的各种预测引擎的输入。
因此,上述不同的技术使搜索应用程序能够与预测中心交互,以接收可能用于增强整体用户体验的预测。在一些情况下,搜索应用程序向预测中心/应用程序预测引擎提供反馈以指示预测是否准确可能是有价值的。这样的反馈可以是有益的,例如当学习算法由应用程序预测引擎实现时,因为该反馈可以用于“训练”学习算法并提高其预测的总体准确度。例如,当应用程序预测引擎生成关于最有可能被用户激活的特定应用程序的预测时(例如,当在从用户接收到搜索输入之前在搜索应用程序中显示时),搜索应用程序可以提供表示该预测有效的反馈(例如,该特定应用程序被用户选择并激活)。反过来,应用程序预测引擎可以增加在预测引擎产生相似的后续预测时所通告的得分。
另外,应当注意,预测中心的架构可以被配置使得本节中描述的不同实体(诸如应用程序预测引擎)能够作为移动计算设备内的模块化部件。在一种架构方法中,每个应用程序预测引擎可以被配置为一个集束,预测中心理解其格式(例如,树状结构),并且其使得预测中心能够用作实现应用程序预测引擎功能的平台。根据该方法,预测中心可以被配置为例如解析不同的文件系统路径(例如,当初始化时)来识别驻留在移动计算设备内的不同集束。这样,可以方便地将集束添加到移动计算设备的文件系统中、在其中更新以及从中移除,从而促进可以随着时间推移有效演进而不需要大量更新移动计算设备(例如,操作系统升级)的模块化配置。例如,应用程序预测引擎可以被配置使得能够更新由应用程序预测引擎实现的全部或一部分逻辑(例如通过无线(OTA)更新)。注意,前述架构是示例性的,并且可以使用能够使本节中描述的各种实体彼此通信并提供其不同功能的任何架构。
此外,预测中心/应用程序预测引擎还可以被配置为实现一个或多个高速缓存,其可以用于减少在生成预测时发生的处理量。根据一些实施方案,生成后,预测可以伴随有“有效性参数”,其指示何时应该从存储该预测的高速缓存中移除该预测。有效性参数(本节也称为“到期信息”) 可以定义例如基于时间的到期、基于事件的到期等。这样,当应用程序预测引擎频繁地从搜索应用程序接收到预测请求时,应用程序预测引擎可以生成并缓存预测,以便大幅减少原本会在处理重复预测请求时发生的未来处理量。注意,预测中心/应用程序预测引擎可以被配置为使用各种方法来缓存预测。例如,当可用高速缓冲存储器有限时,预测中心/应用程序预测引擎可以被配置为生成阈值次数的预测(例如,在时间窗口内),并且当满足阈值时,转换到缓存预测并引用高速缓存以用于预测的后续请求(只要到期信息指示预测有效)。
因此,本节中描述的实施方案提出了用于识别用户何时激活他或她的移动计算设备上的搜索应用程序,以及在从用户接收到搜索参数的输入之前呈现用户可能有兴趣访问的一个或多个应用程序的预测的技术。这些技术的更详细的讨论在下面示出并结合图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可以被配置为实现聚合器,该聚合器被配置为整合多个预测,例如当两个或更多个应用程序预测引擎38_104 被实现并且响应于由搜索应用程序38_116发出的请求而生成两个或更多个预测时。然而,应注意的是,应用程序预测引擎38_104和搜索应用程序38_116两者可以被配置为彼此直接通信,以减少甚至消除在移动计算设备 38_100内实现预测中心38_102的需要。应进一步注意的是,应用程序预测引擎38_104和搜索应用程序38_116不需要在逻辑上彼此分离,并且由这些实体实现的不同功能可以被组合以建立提供相同结果的不同架构方法。
如图38_1所示,可以在应用程序预测引擎38_104和搜索应用程序 38_116之间传送预测38_112,例如,预测中心38_102可以接收由应用程序预测引擎38_104生成的预测38_112,并将预测38_112转发到搜索应用程序38_116。反馈38_114也可以在应用程序预测引擎38_104和搜索应用程序38_116之间传送,例如,预测中心38_102可以从搜索应用程序 38_116接收反馈38_114,并向应用程序预测引擎38_104提供反馈 38_114,使得应用程序预测引擎38_104可以随着时间的推移增加预测 38_112的准确度。
另外,预测中心38_102可以被配置为实现高速缓存,其使预测中心 38_102/应用程序预测引擎38_104能够缓存预测38_112,以尝试增加移动计算设备38_100处的处理和能量消耗效率。例如,高速缓存可以包括多个条目,其中每个条目包括预测38_112以及指示预测38_112被认为有效多久的到期信息。到期信息可以包括例如基于时间的到期,基于事件的到期等。这样,当应用程序预测引擎38_104频繁地接收到对预测38_112的请求时,应用程序预测引擎38_104可以生成并缓存预测38_112,以便大幅减少原本会在移动计算设备38_100处发生的处理量,从而提高性能。
如本节所述,应用程序预测引擎38_104可以使用各种架构方法来实现,例如,应用程序预测引擎38_104可以是预测中心38_102外部的独立可执行程序,并经由应用程序编程接口(API)命令与预测中心38_102通信,这些命令由预测中心38_102支持并由应用程序预测引擎38_104使用,应用程序预测引擎38_104可以是存储在移动计算设备38_100的文件系统内以及由预测中心38_102解释和实现的集束,等等。如图38_1所示,应用程序预测引擎38_104可以包括配置参数38_106,其指示应用程序预测引擎 38_104以什么方式生成用于搜索应用程序38_116的预测。具体地讲,配置参数38_106可以定义数据信号38_110(它对应于移动计算设备38_100内的应用程序预测引擎38_104可用的已安装应用程序信息38_108)以什么方式被应用程序预测引擎38_104接收和被应用程序预测引擎38_104处理。根据一些实施方案,数据信号38_110可以表示应用程序安装时间戳(例如,每个应用程序何时安装)、应用程序激活时间戳(例如,每个应用程序最后被激活的时间)、应用程序激活总计(例如,应用程序已被激活的总次数)、应用程序使用量度(例如,应用程序被激活的频率)等。数据信号38_110还可以包括移动计算设备38_100的主用户界面(例如,在 home屏幕上、在文件夹内等)内的应用程序图标的位置,由用户最近提供的应用程序搜索参数,收集的指示由应用程序预测引擎38_104提供的先前预测是否准确的反馈等。
尽管图38_1中未示出,应用程序预测引擎38_104可以被配置为实现学习模型,学习模型使应用程序预测引擎38_104能够提供随着时间的推移而演变并与移动计算设备38_100的用户保持相关的预测38_112。根据一些实施方案,学习模型可以表示被配置为分析信息(例如,数据信号 38_110)并且生成预测38_112的算法,其可以在用户操作移动计算设备38_100时增强用户的整体体验。根据一些实施方案,由应用程序预测引擎 38_104处理的信息可以从移动计算设备38_100内的各种源收集,例如,在移动计算设备38_100上实现的文件系统、由搜索应用程序38_116提供的反馈信息、由移动计算设备38_100的传感器(例如,全球定位系统(GPS) 传感器、麦克风传感器、温度传感器、加速度计传感器等)收集的信息、由外部源(例如,在移动计算设备38_100上执行的其他应用程序、OS内核等)提供的信息等。
另外,如图38_1所示,移动计算设备38_100可以被配置为与一个或多个服务器38_120(例如,经由互联网连接)介接,以便无线(OTA)接收更新38_122,该更新可以用于部分或全部更新应用程序预测引擎38_104、预测中心38_102和搜索应用程序38_116中的一个或多个。因此,图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_112的请求,移动计算设备38_100的用户可能对访问这一个或多个应用程序感兴趣。可以响应于搜索应用程序在移动计算设备 38_100上激活,例如当移动计算设备38_100的用户输入使得该搜索应用程序激活的手势时,由搜索应用程序38_116发出该请求。
在步骤38_204中,应用程序预测引擎38_104识别安装在移动计算设备38_100上的应用程序的列表。该信息可以例如通过已安装应用程序信息 38_108和数据信号38_110获得。在步骤38_206中,应用程序预测引擎 38_104将当前应用程序设置为应用程序列表中的第一应用程序。在步骤 38_208中,应用程序预测引擎38_104通过对与当前应用程序相对应的一个或多个数据信号38_110执行一个或多个函数来生成当前应用程序的得分。根据一些实施方案,对数据信号38_110执行一个函数可以包括计算数据信号38_110的得分,并根据与数据信号38_110相关联的固定权重来调整该得分。例如,当数据信号38_110对应于应用程序的安装日期时,得分可以基于自应用程序安装以来已经过去的时间量,例如较新的安装日期对应于更高的分数。在某些情况下,可以根据衰减值(例如,半衰期)来调整得分,这可以特别适用于表示与应用程序相关联的时间信息(例如,应用程序安装时间戳、应用程序激活时间戳等)的数据信号38_110等)。反过来,与数据信号38_110相关联的固定权重可以应用于得分,以产生得分的更新形式。这样,并且在完成与当前应用程序相对应的一个或多个数据信号38_110上的一个或多个函数时,预测引擎可以产生针对当前的应用程序的得分的最终形式(例如,各个得分的总和)。
在步骤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中接收到的请求来筛选应用程序列表。例如,该请求可以指示在移动计算设备38_100的用户界面中仅显示三个应用程序建议(例如,根据屏幕尺寸或分辨率设置),这可以使应用程序预测引擎38_104从应用程序列表中消除得分不在列表前三名的任何应用程序。在步骤38_216中,应用程序预测引擎38_104利用筛选的应用程序列表填充预测38_112,并将预测38_112提供给搜索应用程序 38_116。
图3示出了根据一些实施方案的由搜索应用程序38_116实现的方法 38_300。如图所示,方法38_300从步骤38_302开始,在该步骤中,搜索应用程序38_116被激活。在步骤38_304中,搜索应用程序38_116发出对用户可能有兴趣访问的一个或多个应用程序的预测38_112的请求。在步骤 38_306中,搜索应用程序38_116响应于该请求接收预测38_112,其中预测38_112包括所述一个或多个应用程序的列表,并且每个应用程序与相应的得分相关联。在步骤38_308中,搜索应用程序38_116根据得分在搜索应用程序38_116的用户界面内显示用于这一个或多个应用程序中的至少一个应用程序的用户界面条目(例如,如图38_4所示以及下文所述)。在步骤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_404(例如,使用包括在用户界面38_402中的虚拟键盘 38_408)。此外,用户界面38_402可以包括用于用户可能有兴趣激活的应用程序的多个用户界面条目38_406的列表,其可以利用由本节中描述的应用程序预测引擎38_104生成的预测38_112来获得。反过来,当用户提供反馈时(反馈可以包括例如取消搜索、忽略建议的应用程序和输入搜索参数,或者选择用户界面条目38_406中的一个),可以将反馈转发到应用程序预测引擎38_104用于处理。
上述的图1A示出了根据一些实施方案的可用于实现本节中所述的各个部件的计算设备100的详细视图。具体地讲,该详细视图示出了图37_1 所示移动计算设备37_100中可包括的各个部件。
用于主动助理的应用程序模型的示例性方法和设备
本节中描述的实施方案提出了用于识别用户何时激活他或她的移动计算设备上的搜索应用程序,以及在从用户接收到搜索参数的输入之前呈现用户可能有兴趣访问的一个或多个应用程序的预测的技术。根据一些实施方案,搜索应用程序可以被配置为每当搜索应用程序激活时与应用程序预测引擎介接,并且查询应用程序预测引擎以预测用户可能有兴趣访问的一个或多个应用程序。反过来,应用程序预测引擎可以分析与安装在移动计算设备上的应用程序相关联的信息以产生预测。使用该预测,搜索应用程序可以在搜索应用程序的用户界面内显示预测的一个或多个应用程序以供用户选择。
在一些实施方案中,提供了一种用于主动地向移动计算设备的用户提供预测的方法,该方法包括:在于移动计算设备上执行的应用程序预测引擎处:对于包括在移动计算设备上已安装的应用程序的列表中的每个应用程序:对与该应用程序相对应的至少一个数据信号执行至少一个函数以建立该应用程序的得分,其中该得分指示该应用程序将被用户激活的可能性,并且将该得分与该应用程序相关联;以及向在移动计算设备上执行的搜索应用程序提供预测,其中该预测包括应用程序列表及其相关联的得分。在一些实施方案中,该方法包括,在向搜索应用程序提供预测之前:从搜索应用程序接收对该预测的请求,其中搜索应用程序响应于该搜索应用程序的激活并且从用户接收搜索输入之前发出该请求。在一些实施方案中,该请求指示应在预测中包括的应用程序列表中包括的特定数量的应用程序。在一些实施方案中,该方法包括:对于包括在应用程序列表中的每个应用程序:根据与至少一个数据信号相关联的权重来调整得分。在一些实施方案中,当至少一个数据信号对应于移动计算设备内的应用程序访问的时间方面时,对所述至少一个数据信号执行至少一个函数还包括:在根据与所述至少一个数据信号相关联的权重来调整得分之前:根据应用于所述至少一个数据信号的衰减因子调整所述至少一个数据信号的得分。在一些实施方案中,所述至少一个数据信号选自以下中的一个或多个:应用程序安装时间戳、应用程序激活时间戳、应用程序激活总计、应用程序使用量度、应用程序图标在移动计算设备的主用户界面中的位置、最近由用户提供的搜索参数,以及收集的指示先前预测是否准确的反馈。在一些实施方案中,应用程序图标在移动计算设备的主用户界面内的位置可以指示:包括该应用程序图标的主用户界面的页码,以及该应用程序是否包括在主用户界面内的文件夹中。在一些实施方案中,该方法包括:在向搜索应用程序提供预测之后:从搜索应用程序接收反馈,其中该反馈指示在向搜索应用程序提供预测之后用户的行为;并更新所收集的反馈以反映从搜索应用程序接收到的反馈。
在一些实施方案中,提供了一种用于主动地向移动计算设备的用户呈现预测的方法,该方法包括:在于移动计算设备上执行的搜索应用程序处:检测搜索应用程序的激活;向应用程序预测引擎发出请求,该请求是关于预测安装在移动计算设备上并且用户可能有兴趣激活的一个或多个应用程序;从应用程序预测引擎接收预测,其中该预测包括一个或多个应用程序的列表,并且每个应用程序与相应的得分相关联;以及根据得分,在搜索应用程序的用户界面内显示用于这一个或多个应用程序中的至少一个应用程序的用户界面条目。在一些实施方案中,在经由搜索应用程序的用户界面中包括的搜索字段接收到搜索输入之前,将该请求发布给应用程序预测引擎。在一些实施方案中,该方法包括:通过搜索应用程序的用户界面接收用户输入;以反馈的形式提供与该用户输入相关联的信息。在一些实施方案中,反馈指示用户是选择了用于所述至少一个应用程序的用户界面条目还是输入了搜索参数。在一些实施方案中,该请求指示应包括在预测中的特定数量的应用程序,并且该特定数量的应用程序使基于能够在搜索应用程序的用户界面内向用户显示的应用程序的用户界面条目的数量。
在一些实施方案中,提供了一种被配置为主动地向移动计算设备的用户呈现预测的移动计算设备,该移动计算设备包括被配置为执行以下项的处理器:搜索应用程序,其被配置为执行包括以下操作的步骤:检测搜索应用程序的激活,并且在从搜索应用程序的用户界面中接收到来自用户的输入之前:向在移动计算设备上执行的应用程序预测引擎发出对移动计算设备上安装的并且用户可能有兴趣激活的一个或多个应用程序的列表的请求,从应用程序预测引擎接收该列表,并且在搜索应用程序的用户界面内显示用于包括在该列表中的一个或多个应用程序中的至少一个应用程序的用户界面条目;以及应用程序预测引擎,其中应用程序预测引擎被配置为执行包括以下操作的步骤:从搜索应用程序接收对用户可能有兴趣激活的一个或多个应用程序的列表的请求,生成该列表,以及将该列表提供给搜索应用程序。在一些实施方案中,生成该列表包括:对于安装在移动计算设备上的每个应用程序:通过对与该应用程序相对应的一个或多个数据信号执行一个或多个函数来生成该应用程序的得分,并且将该得分与该应用程序相关联;以及根据生成的得分来筛选应用程序;以及将应用程序按照筛选后那样合并到该列表中。在一些实施方案中,对所述一个或多个数据信号中的一个数据信号执行所述一个或多个函数中的一个函数包括:基于与该数据信号相关联的信息来建立该数据信号的得分;以及根据与该数据信号相关联的权重来调整得分。在一些实施方案中,该数据信号对应于移动计算设备内的应用程序访问的时间方面,对该数据信号执行至少该函数还包括:在根据与该数据信号相关联的权重来调整得分之前:根据应用于该数据信号的衰减因子调整该数据信号的得分。在一些实施方案中,所述一个或多个数据信号包括应用程序安装时间戳、应用程序激活时间戳、应用程序激活总计、应用程序使用量度、应用程序图标在移动计算设备的主用户界面中的位置、最近由用户提供的搜索参数,以及收集的指示先前预测是否准确的反馈。在一些实施方案中,应用程序图标在移动计算设备的主用户界面内的位置可以指示:包括该应用程序图标的主用户界面的页码,以及该应用程序是否包括在主用户界面内的文件夹中。在一些实施方案中,应用程序预测引擎被进一步配置为:在向搜索应用程序提供该列表之后,执行包括以下操作的步骤:从搜索应用程序接收反馈,其中该反馈指示在向搜索应用程序提供该列表之后用户的行为;并更新所收集的反馈以反映从搜索应用程序接收到的反馈。
第9部分:专家中心(为电子设备的部件提供预测内容项)
本节“专家中心”中的材料描述了专家中心,并且描述了根据一些实施方案将预测内容项提供给电子设备的部件(例如,提供给图1A中设备 100的任何部件),并且提供了补充本文提供的公开内容的信息。例如,本节的一些部分描述了预测引擎和预测类别的创建,这补充了本文提供的公开内容,例如与触发条件的创建/存储相关的那些(图4A至图4B),以及与在搜索界面中检索和呈现预测内容项相关的那些(例如,方法600,800, 1000和1200),或与作为消息收发应用程序中的建议项相关的那些(例如方法2200、2900、2280、2400、2600和2700)。在一些实施方案中,本文所公开的方法利用或使用了下文第9节中描述的预测引擎,以在适当的时间向用户提供各种相关的内容项(例如,预测的应用程序、预测的人/联系人、预测的位置、与用于向各种类型的应用程序快速添加内容的事件/联系人/位置相关的信息,以及上文参考任何方法讨论的其他相关内容项)。
专家中心摘要
本节中描述的实施方案阐述了用于实现各种“预测引擎”的技术,这些预测引擎可以被配置为在移动计算设备内提供不同种类的预测。根据一些实施方案,每个预测引擎可以将其自身分配为移动计算设备内的一个或多个“预测类别”上的“专家”。当消费者应用程序发出特定预测类别的预测请求,并且两个或更多个预测引擎以预测进行响应时,“预测中心”可以被配置为在响应该请求之前接收并处理预测。处理预测可以包括移除存在于预测之间的重复信息,根据由预测引擎通告的置信水平对预测进行排序等。这样,预测中心可以将多个预测提取成优化的预测,并向消费者应用程序提供优化的预测。
一个实施方案提出了一种用于向在移动计算设备上执行的应用程序同步地提供预测的方法。具体地讲,该方法是在移动计算设备上执行的预测中心实现的,并且包括以下步骤:(1)从应用程序接收同步地提供某个预测类别的预测的请求,(2)识别与该预测类别相关联的一个或多个预测引擎,(3)根据该请求接收由这一个或多个预测引擎产生的一个或多个预测,(4)聚合这一个或多个预测以产生由该应用程序请求的预测,和(5)向该应用程序提供该预测。
另一个实施方案提出了一种用于向在移动计算设备上执行的应用程序异步地提供预测的方法。具体地讲,该方法是在移动计算设备上执行的预测中心实现的,并且包括以下步骤:(1)从应用程序接收异步地提供某个预测类别的预测的请求,(2)识别与该预测类别相关联的一个或多个预测引擎,以及(3)通知这一个或多个预测引擎中的每个预测引擎根据该请求异步地提供一个或多个预测。
另一个实施方案提出了被配置根据用户行为生成预测的移动计算设备。具体地讲,该移动设备被配置为实现:(1)预测中心,其被配置用作一个或多个预测引擎与一个或多个应用程序之间的介体,其中该预测中心管理多个预测类别,(2)一个或多个预测引擎,其中这一个或多个预测引擎中的每个预测引擎用作由预测中心管理的多个预测类别中的至少一个预测类别上的专家,以及(3)一个或多个应用程序,其中这一个或多个应用程序中的每个应用程序被配置为执行包括以下操作的步骤:(i)向预测中心发出对这多个预测类别中的特定预测类别的预测的请求,以及(ii)根据该请求从预测中心接收预测,其中该预测是由作为该特定预测类别上的专家的预测引擎产生的至少两个预测的聚合。
其他实施方案包括一种非暂态计算机可读介质,其被配置为存储指令,这些指令在由处理器执行时,使处理器实现本节中提出的前述技术中的任何一种。
提供发明内容仅是为了概述一些示例性实施方案,以便提供对本节中所述的主题的一些方面的基本理解。因此,应当认识到,上文描述的特征只是示例,不应认为其以任何方式缩窄本节中所述主题的范围或实质。本节中所述的主题的其他特征、方面和优点将根据以下具体实施方式、附图和权利要求书而变得显而易见。
根据结合以举例的方式示出所述实施方案的原理的附图而进行的以下详细描述,本节中所述的实施方案的其他方面和优点将变得显而易见。
专家中心详细描述
在此部分中提供了根据本发明所述的实施例的装置和方法的代表性应用。提供这些示例仅是为了添加上下文并有助于理解所述实施方案。对于本领域的技术人员因此将显而易见的是,本发明所述的实施方案可在不具有这些具体细节中的一些或全部具体细节的情况下被实施。在其他情况下,未详细描述熟知的工艺步骤,以便避免不必要地模糊本发明所述的实施方案。其他应用也是可能的,使得以下示例不应被视为是限制性的。
本节中描述的实施方案提出了用于收集和组织行为数据以使得移动计算设备能够为其最终用户提供有意义的预测的技术。根据一些实施方案,该移动计算设备可以被配置为实现各种“预测引擎”,每个“预测引擎”可被配置为在移动计算设备内提供不同种类的预测。更具体地讲,并且根据一些实施方案,每个预测引擎可以将其自身分配为可用于增强移动计算设备的整体操作的一个或多个“预测类别”上的“专家”。预测类别的示例可以包括应用程序(例如,激活/去激活)、人(例如,电话呼叫、聊天等)、地理数据(例如,移动计算设备移动/区域设置)、通知(例如,推送通知到达)、物理输入(例如,将耳机/电力连接到移动计算设备)等。注意,前述预测类别仅仅是示例性的,并且本节中阐述的实施方案可以采用移动计算设备能够维护的任何预测类别。根据一些实施方案,预测引擎可以采用学习模型,学习模型能够使预测引擎分析数据(例如,与用户对移动计算设备的操作关联的行为数据)并且根据该数据提供预测。虽然本公开主要讨论了被配置为实现学习模型的预测引擎,但是应当注意,用于分析行为数据并提供预测的任何技术都可以由本节中描述的预测引擎采用。
如先前在本节中所述的,并且根据一些实施方案,预测引擎可以将其自身分配为移动计算设备内的一个或多个预测类别上的专家。因此,在一些情况下,两个或更多个预测引擎可以将自己分配为移动计算设备内的相同预测类别的专家。因此,当请求实体(在本节中称为“消费者应用程序”)发出对两个或更多个预测引擎已经将自己分配为其专家的预测类别的预测请求时,这两个或更多个预测引擎中的每个预测引擎将进行其自己的分析(例如,根据该预测引擎采用的学习模型),并根据请求生成一个预测(或更多预测)。在这种情况下,响应于预测请求生成至少两个或更多个预测,这可以建立搜索消费者应用程序可能无法解释的冗余度和竞争预测。
因此,实施方案还提出了被配置为用作预测引擎和消费者应用程序之间的介体的“预测中心”。根据一些实施方案,预测中心可以被配置为用作在预测引擎初始化并且尝试将自己分配为一个或多个预测类别的专家时用于预测引擎的注册器。类似地,并且根据一些实施方案,预测中心还可以被配置为管理移动计算设备内不同类型的预测类别,使得消费者应用程序可以查询预测中心来识别可以提供的预测类别。这样,当消费者应用程序发出特定预测类别的预测请求,并且两个或更多个预测引擎以其相应的预测进行响应时,预测中心可以被配置为在响应消费者应用程序发出的请求之前接收并处理预测。处理预测可以涉及例如移除存在于预测中的重复信息,根据与预测引擎相关联的历史性能(即准确度)度量来对预测应用权重,根据预测引擎在生成其预测时通告的置信水平对预测进行排序等。这样,预测中心可以将多个预测提取成优化的预测,并向消费者应用程序提供优化的预测。因此,该设计有利地简化了消费者应用程序的操作要求 (因为它们不需要能够处理多个预测),将繁重处理整合到预测中心,并且使得消费者应用程序能够获得表示已经将其自己分配为感兴趣的预测类别上的专家的各种预测引擎的输入。
根据一些实施方案,预测中心可以使消费者应用程序能够以“同步”的方式接收预测。更具体地讲,消费者应用程序可以被配置为向预测中心发出请求,该请求是使得预测中心与一个或多个预测引擎交互并且向消费者应用程序提供一定程度上即时(即,同步的)响应/预测。例如,当消费者应用程序(诸如聊天应用程序)启动并尝试预先识别移动计算设备的用户最有可能与之收发消息的联系人(例如,根据当前时间)时,可以使用该同步配置。根据其他实施方案,预测中心可以使消费者应用程序能够以“异步”的方式接收预测。更具体地讲,消费者应用程序可以被配置为向预测中心发出请求,该请求是使得预测中心通知/配置一个或多个预测引擎根据需要(即异步/受触发地)提供预测。例如,当消费者应用程序(诸如被配置为激活(即启动)和去激活(即,关闭)移动计算设备上的应用程序的OS内核)尝试响应于在移动计算设备处发生的物理输入而反应性地加载应用程序时,可以使用此异步配置。例如,预测引擎可以确定特定的音乐应用程序在耳机插入用户的移动计算设备的大多数时候由他或她手动启动。反过来,当耳机连接到移动计算设备时,预测引擎可以经由预测来向 OS内核指示该特定音乐应用程序。反过来,OS内核可以(根据预测)预先加载适当的音乐应用程序,这可以帮助改善用户体验并增强移动计算设备的性能。
因此,上述不同的技术使消费者应用程序能够与预测中心交互,以接收可能用于增强整体用户体验的预测。在一些情况下,消费者应用程序向预测中心提供反馈以指示有预测引擎产生的预测是否准确可能是有价值的。这样的反馈可以是有益的,例如当学习算法由预测引擎实现时,因为该反馈可以用于“训练”学习算法并提高其预测的总体准确度。例如,当预测引擎生成用户将采取特定动作的预测,并且消费者应用程序提供指示该预测有效的反馈(即,用户采取了该特定动作)时,预测引擎可以增加由预测引擎产生相似的后续预测时所通告的置信水平。随着置信水平上升,预测引擎产生的预测可以优先于其他预测引擎(如果有的话)产生的竞争预测。或者,当预测引擎预测该特定动作将被用户采取,并且消费者应用程序提供指示该预测无效的反馈(即,用户未采取该特定动作)时,预测引擎可以降低由预测引擎产生相似的后续预测时所通告的置信水平。随着置信水平下降,预测引擎产生的预测可能被由其他预测引擎(如果有的话)产生的竞争预测超过。
另外,并且根据一些实施方案,预测中心/预测引擎可以被配置为实现记录器,该记录器维护生成的预测的记录及其相应的反馈。这些记录可以在各个方面是有益的,例如,预测引擎的开发者可以从大量移动计算设备接收记录,这些记录指示预测引擎正在持续生成不准确的预测。反过来,预测引擎的开发者可以重新访问预测引擎的配置,以提高其准确度。不同移动计算设备之间的预测中心也可以配置为彼此交换信息,以便识别观察到的并且可用于增强整体用户体验的高级趋势。例如,预测中心可以彼此识别,当大多数移动计算设备进入特定地理区域(例如,电影院的周边) 时,移动计算设备的用户手动将其移动计算设备置于静音模式。反过来,该识别可用于向用户提供建议,以便在进入特定地理区域时将其移动计算设备置于静音模式。该识别还可以用于建议设置好自动规则,这样在移动计算设备进入特定地理区域时,移动计算设备会自动进入静音模式,从而使用户无需访问他或她的移动计算设备以及手动地将移动计算设备置于静音模式。
除了上述技术之外,预测中心还可以被配置为实现一个或多个“筛选器”,筛选器可以用于进一步增强在移动计算设备内产生预测的方式。根据一些实施方案,筛选器可用于提供额外的处理层,其有助于减少或消除预测的发生,虽然这些预测是正确和可靠的(在预测引擎的范围内),但它们其实在现实场景中不实际并且不起作用。例如,考虑移动计算设备上的锁定屏幕应用程序代表消费者应用程序的场景,其中锁定屏幕应用程序显示相机应用程序的静态图标,以及(例如,基于当前时间)最有可能被用户访问的应用程序的动态图标。在该实施例中,锁定屏幕应用程序可以在尝试识别应与锁定屏幕应用程序内显示的动态图标相关联的应用程序时,向预测中心发出与“应用程序”预测类别相关联的预测的请求。进一步考虑,在该实施例中,单个预测引擎与“应用程序”预测类别相关联,其中单个预测引擎确定相机应用程序最有可能被用户访问(因为这通常在锁定屏幕应用程序显示时发生)。值得注意的是,在该实施例中,这种预测在某种程度上无意义,因为在锁定屏幕应用程序内为同一相机应用程序显示两个不同的图标将是浪费的。因此,可以使用筛选器来帮助防止这些情况的发生,例如,可以将筛选器配置为当锁定屏幕应用程序在移动计算设备上处于活动状态时从与“应用程序”预测类别相关联的预测中移除相机应用程序。
此外,预测中心/预测引擎还可以被配置为实现一个或多个高速缓存,其可以用于减少在生成预测时发生的处理量。根据一些实施方案,生成后,预测可以伴随有“有效性参数”,其指示何时应该从存储该预测的高速缓存中移除该预测。有效性参数(本节也称为到期信息)可以定义例如基于时间的到期、基于事件的到期等。这样,当预测引擎频繁地接收对特定预测类别的预测的请求时,预测引擎可以生成并缓存预测,以便大幅减少原本会在处理重复预测请求时发生的未来处理量。注意,预测中心/预测引擎可以被配置为使用各种方法来缓存预测。例如,当可用高速缓冲存储器有限时,预测中心/预测引擎可以被配置为生成阈值次数的预测(例如,在时间窗口内),并且当满足阈值时,转换到缓存预测并引用高速缓存以用于预测的后续请求(只要到期信息指示预测有效)。
另外,应当注意,预测中心的架构可以被配置使得本节中描述的不同实体(包括预测引擎、预测类别、筛选器、记录器等)能够作为移动计算设备内的模块化部件。在一种架构方法中,每个实体可以被配置为实现一组应用编程接口(API)函数调用,其使得实体能够与预测中心进行通信并提供本节中描述的不同功能。例如,根据该架构方法,实体可以被配置为自含式可执行文件,该自含式可执行文件可以在预测中心外部操作并且能够提供本节中描述的各种功能。在另一种架构方法中,每个实体可以被配置为一个集束,预测中心理解其格式并且使得预测中心能够用作实现该实体功能的平台。根据该方法,预测中心可以被配置为例如解析不同的文件系统路径(例如,当初始化时)来识别驻留在移动计算设备内的不同集束。这样,可以方便地将集束添加到移动计算设备的文件系统中、在其中更新以及从中移除,从而促进可以随着时间推移有效演进而不需要大量更新移动计算设备(例如,操作系统升级)的模块化配置。注意,前述架构是示例性的,并且可以使用能够使本节中描述的各种实体彼此通信并提供其不同功能的任何架构。
因此,实施方案提出了用于收集和组织行为数据以使得移动计算设备能够为其最终用户提供有意义的预测的技术。这些技术的更详细的讨论在下面示出并结合图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上执行的操作系统(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可以被配置为包括一个或多个学习模型39_202、对应状态39_204,以及预测引擎39_108已经将自身分配为其上专家的预测类别39_106的列表。根据一些实施方案,学习模型39_202可以表示被配置为分析信息(例如,状态39_204)并且生成预测的算法,其可以在用户操作移动计算设备39_100时增强用户的整体体验。根据一些实施方案,可以从移动计算设备 39_100内的各种源收集状态39_204,例如,由消费者应用程序提供的反馈信息39_116、由移动计算设备39_100的传感器(例如,全球定位系统 (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_206,该高速缓存使预测中心39_102/预测引擎39_108能够缓存预测 39_114,以尝试增加移动计算设备39_100处的处理和能量消耗效率。如图 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_114,以便大幅减少原本会在移动计算设备39_100处发生的处理量,从而提高性能。
图39_3A示出了根据一些实施方案的用于预测引擎39_108的高级初始化和操作的方法39_300。如图39_3A所示,方法39_300从步骤39_302 开始,其中预测引擎39_108加载一个或多个学习模型39_202。在可选步骤 39_304处,预测引擎39_108加载与这一个或多个学习模型39_202相关联的先前建立的状态39_204。根据一些实施方案,可从可供预测引擎39_108 使用的任何存储资源(例如,本地非易失性存储器、云存储等)检索先前建立的状态39_204。在步骤39_306处,预测引擎39_108向预测中心 39_102发出作为至少一个预测类别39_106上的专家(并提供预测 39_114)的请求。在步骤39_308处,预测引擎39_108接收为至少一个预测类别39_106同步地提供预测39_114或异步地提供预测39_114的请求。在步骤39_310处,预测引擎39_108根据一个或多个学习模型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_108产生相似的后续预测39_114时所通告的置信水平。在步骤39_314处,预测引擎 39_108根据反馈信息更新一个或多个学习模型39_202。
图39_3B示出了根据一些实施方案的用于在预测引擎39_108处同步地提供预测39_114的方法39_330。如图39_3B所示,方法39_330从步骤 39_332开始,其中预测引擎39_108接收同步提供特定预测类别39_106的预测39_114的请求。根据一些实施方案,该请求可以由预测中心39_102 代表正在请求特定预测类别39_106的预测39_114的消费者应用程序39_112生成。或者,该请求可以由消费者应用程序39_112生成并且直接提供给预测引擎39_108。这样,可以相对于用作预测引擎39_108和消费者应用程序39_112之间的介体的预测中心39_102减少或甚至消除预测中心 39_102的全面参与。在步骤39_334处,预测引擎39_108识别与特定预测类别39_106相关联的至少一个学习模型39_202。在步骤39_336处,预测引擎39_108根据至少一个学习模型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相关联的至少一个学习模型39_202。在步骤39_356处,预测引擎39_108识别与特定预测类别39_106和/或至少一个学习模型39_202相关联的至少一个触发器。在步骤39_358处,预测引擎39_108确定触发器是否激活/发生。在步骤39_358处,如果预测引擎39_108确定触发器被激活,则方法39_350前进至步骤39_360。否则,方法39_350在步骤39_358 重复,直到触发器被激活/发生。在步骤39_360处,预测引擎39_108根据至少一个学习模型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_108是移动计算设备39_100内的特定预测类别39_106上的唯一专家时。在步骤39_404处,消费者应用程序39_112结合在步骤39_402发出的请求,同步地接收特定预测类别39_106的预测39_114。在步骤39_406处,消费者应用程序39_112观察移动计算设备39_100处的行为(例如用户行为),以确定预测39_114是否准确。在步骤39_408处,消费者应用程序39_112提供反馈信息39_116,该反馈信息指示与预测39_114相关联的准确度水平。
图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_116,该反馈信息指示与预测39_114相关联的准确度水平。
图39_5A示出了根据一些实施方案的方法39_500,该方法用于管理预测中心39_102处的预测引擎39_108的注册。如图所示,方法39_500从步骤39_500开始,其中预测中心39_102的管理器39_104从预测引擎39_108 接收用作预测引擎39_108并提供至少一个预测类别39_106的预测39_114 的请求。在步骤39_504处,管理器39_104将预测引擎39_108添加到分配为提供至少一个预测类别39_106的预测39_114的预测引擎39_108的列表中。在可选步骤39_506处,管理器39_104根据与预测引擎39_108相关联的历史性能指标向预测引擎39_108分配权重。在可选步骤39_508处,管理器39_104初始化与预测引擎39_108和/或至少一个预测类别39_106相关联的筛选器39_110(如果有的话)。在步骤39_510处,管理器39_104更新预测中心39_102的配置,以使消费者应用程序39_112能够发出同步和/ 或异步接收与至少一个预测类别39_106相关联的预测39_114的请求。
图39_5B示出了根据一些实施方案的用于向预测中心39_102处的消费者应用程序39_112同步地提供预测39_114的方法39_550。如图39_5B 所示,方法39_550从步骤39_552开始,其中管理器39_104从消费者应用程序39_112接收同步地提供特定预测类别39_106的预测39_114的请求。一个示例性场景可以涉及在移动计算设备39_100处激活消息收发应用程序,并且发出对预测39_114的请求,该预测是关于操作该消息收发应用程序的用户最有可能与之通信的三个联系人。在步骤39_554处,管理器 39_104识别分配给特定预测类别39_106的预测引擎39_108的列表。继续前述示例性场景,进一步考虑两个不同预测引擎39_108已经将其自身注册为“人”预测类别39_106上的专家。在步骤39_556处,管理器39_104查询包括在用于预测39_114的预测引擎39_108的列表中的每个预测引擎 39_108。
在步骤39_558处,管理器39_104从包括在预测引擎39_108的列表中的每个预测引擎39_108接收与置信水平信息相关联的对应预测39_114。继续前述示例性场景,进一步考虑两个预测引擎39_108提供预测39_114,每个预测包括用户最有可能联系的三个联系人的单独列表。例如,第一个列表可以包括读为“Greg:0.7”、“Amy:0.5”和“妈妈:0.3”的条目(其中名称(例如,“Greg”)表示将被联系的预测个体,名称后面的数字 (例如,0.7)表示该预测个体将被联系的相应置信水平),第二个列表可以包括读为“妈妈:0.7”、“Greg:0.4”和“Julie:0.2”的条目。在步骤 39_560处,管理器39_104根据分配给相应预测引擎39_108的权重(如果有的话)来更新与预测39_114相关联的置信水平信息。例如,如果产生第一个列表的预测引擎39_108根据由管理器39_104(例如,经由反馈信息 39_116)观察到的持续不佳的性能而具有0.75的分配权重,则第一个列表中每个条目的置信水平信息将减少0.75。在步骤39_562处,管理器39_104 根据其相关联的置信水平信息(例如,使用聚合器39_220)聚合预测 39_114。继续前述实施例,并且假设在步骤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”的条目被移除,因为消息收发应用程序只需要接收关于三个联系人的预测。在步骤39_564处,管理器39_104 根据聚合预测39_114向消费者应用程序39_112提供预测39_114,该预测将包括“Greg:1.1”、“Mom:1.0”和“Amy:0.5”。
图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_108的权重(如果有的话)来更新与预测39_114相关联的置信水平信息。在步骤39_582处,管理器39_104根据其相关联的置信水平信息来聚合预测39_114。在步骤39_584处,管理器39_104根据聚合预测39_114向消费者应用程序39_112提供预测39_114。
用于专家中心的示例性方法和设备
描述的实施方案阐述了用于实现各种“预测引擎”的技术,这些预测引擎可以被配置为在移动计算设备内提供不同种类的预测。根据一些实施方案,每个预测引擎可以将其自身分配为移动计算设备内的一个或多个“预测类别”上的“专家”。当消费者应用程序发出特定类别的预测请求,并且两个或更多个预测引擎以其各自的预测进行响应时,“预测中心”可以被配置为在响应该请求之前接收并处理预测。处理预测可以包括移除存在于预测之间的重复信息,根据由预测引擎通告的置信水平对预测进行排序等。这样,预测中心可以将多个预测提取成优化的预测,并向消费者应用程序提供优化的预测。
在一些实施方案中,提供了一种用于向移动计算设备上执行的应用程序同步地提供预测的方法,该方法包括:在移动计算设备上执行的预测中心处:从该应用程序接收同步地提供某个预测类别的预测的请求;识别与该预测类别相关联的一个或多个预测引擎;根据该请求接收由这一个或多个预测引擎产生的一个或多个预测;聚合这一个或多个预测以产生由该应用程序请求的预测;以及向该应用程序提供该预测。在一些实施方案中,聚合这一个或多个预测包括执行选自以下的一个或多个操作:从这一个或多个预测中移除重复的预测;根据由预测中心实现的一个或多个筛选器来筛选这一个或多个预测;对于这一个或多个预测中的每个预测:根据分配给产生预测的预测引擎的权重来调整与预测相关联的置信水平,其中与预测相关联的置信水平是由预测引擎在产生预测时生成;以及根据与预测相关联的置信水平对这一个或多个预测中的每个预测进行排序。在一些实施方案中,该方法包括:在接收预测请求之前:对于这一个或多个预测引擎中的每个预测引擎:从预测引擎接收对预测引擎作为该预测类别上的专家的请求;以及将预测引擎与该预测类别相关联。在一些实施方案中,该方法包括:在产生应用程序所请求的预测之后:建立与该预测相关联的有效性参数;将有效性参数与该预测相关联;将预测和有效性参数存储到高速缓存中。在一些实施方案中,有效性参数定义了基于时间的到期或基于触发的到期中的一个或多个。在一些实施方案中,该方法包括:在将预测和有效性参数存储到高速缓存中之后:从第二应用程序接收同步地提供该预测类别的预测的第二请求;将预测定位在高速缓存内;并且当与该预测相关联的有效性参数指示该预测有效时:将该预测提供给第二应用程序。在一些实施方案中,该预测类别被包括在由预测中心管理的多个预测类别中,并且这多个预测类别中的每个预测类别与以下项相关联:移动计算设备上执行的应用程序的激活和去激活、移动计算设备已知的联系人、可向移动计算设备提供的全球定位系统(GPS)信息、由移动计算设备处理的通知,或对移动计算设备进行的物理输入。在一些实施方案中,该方法包括:在向应用程序提供预测之后:从该应用程序接收指示该预测的准确度的反馈信息;以及将该反馈信息提供给这一个或多个预测引擎,其中该反馈信息可由这一个或多个预测引擎利用以增加由这一个或多个预测引擎产生的后续预测的准确度。
在一些实施方案中,提供了一种用于向移动计算设备上执行的应用程序异步地提供预测的方法,该方法包括:在移动计算设备上执行的预测中心处:从该应用程序接收异步地提供某个预测类别的预测的请求;识别与该预测类别相关联的一个或多个预测引擎;通知这一个或多个预测引擎中的每个预测引擎根据该请求异步地提供一个或多个预测。在一些实施方案中,该方法包括:在通知这一个或多个预测引擎中的每个预测引擎之后:接收一个或多个预测;聚合这一个或多个预测以产生应用程序所要求的预测;以及向应用程序提供该预测。在一些实施方案中,该方法包括:在产生应用程序所请求的预测之后:建立与该预测相关联的有效性参数;将有效性参数与该预测相关联;将预测和有效性参数存储到高速缓存中。在一些实施方案中,有效性参数有这一个或多个预测引擎提供,并且定义了基于时间的到期或基于触发的到期中的一个或多个。在一些实施方案中,聚合这一个或多个预测包括执行选自以下的一个或多个操作:从这一个或多个预测中移除重复的预测;根据由预测中心实现的一个或多个筛选器来筛选这一个或多个预测;对于这一个或多个预测中的每个预测:根据分配给产生预测的预测引擎的权重来调整与预测相关联的置信水平,其中与预测相关联的置信水平是由预测引擎在产生预测时生成;以及根据与预测相关联的置信水平对这一个或多个预测中的每个预测进行排序。在一些实施方案中,响应于在移动计算设备处发生的基于触发的事件,这一个或多个预测引擎异步地向预测中心提供一个或多个预测。在一些实施方案中,该方法包括:在接收预测请求之前:对于这一个或多个预测引擎中的每个预测引擎:从预测引擎接收对预测引擎作为该预测类别上的专家的请求;以及将预测引擎与该预测类别相关联。在一些实施方案中,该预测类别被包括在由预测中心管理的多个预测类别中,并且这多个预测类别中的每个预测类别与以下项相关联:移动计算设备上执行的应用程序的激活和去激活、移动计算设备已知的联系人、可向移动计算设备提供的全球定位系统(GPS) 信息、由移动计算设备处理的通知,或对移动计算设备进行的物理输入。
在一些实施方案中,提供了一种被配置为根据用户应为生成预测的移动计算设备,该移动计算设备包括:处理器,其被配置为执行:预测中心,其被配置用作一个或多个预测引擎与一个或多个应用程序之间的介体,其中该预测中心管理多个预测类别;一个或多个预测引擎,其中这一个或多个预测引擎中的每个预测引擎用作由预测中心管理的多个预测类别中的至少一个预测类别上的专家;以及一个或多个应用程序,其中这一个或多个应用程序中的每个应用程序被配置为执行包括以下操作的步骤:向预测中心发出对这多个预测类别中的特定预测类别的预测的请求,以及根据该请求从预测中心接收预测,其中该预测是由作为该特定预测类别上的专家的预测引擎产生的至少两个预测的聚合。在一些实施方案中,聚合所述至少两个预测包括执行选自以下的一个或多个操作:从所述至少两个预测中移除重复的预测;根据由预测中心实现的一个或多个筛选器来筛选所述至少两个预测;对于所述至少两个预测中的每个预测:根据分配给产生预测的预测引擎的权重来调整与预测相关联的置信水平,其中与预测相关联的置信水平是由预测引擎在产生预测时生成;以及根据与预测相关联的置信水平对所述至少两个预测中的每个预测进行排序。在一些实施方案中,预测中心被配置为执行包括以下操作的步骤:在向应用程序提供预测之后:从该应用程序接收指示该预测的准确度的反馈信息;以及将该反馈信息提供给产生所述至少两个预测的预测引擎,其中该反馈信息可由这些预测引擎利用以增加由这些预测引擎产生的后续预测的准确度。在一些实施方案中,这多个预测类别中的每个预测类别与以下项相关联:移动计算设备上执行的应用程序的激活和去激活、移动计算设备已知的联系人、可向移动计算设备提供的全球定位系统(GPS)信息、由移动计算设备处理的通知,或对移动计算设备进行的物理输入。
第10部分:上下文监视、上下文通知、上下文预测和高效上下文监视
本节“上下文监视、上下文通知、上下文预测和高效上下文监视”中的材料描述了根据一些实施方案的设备上下文监视、上下文通知、上下文预测和高效上下文监视,并且提供了补充本文提供的公开内容的信息。例如,本节的一次人部分描述监视计算设备的操作上下文,这补充了本文提供的公开内容,例如与使用数据的收集/存储(图3A至图3B)、触发条件的创建/存储(图4A至图4B),以及基于使用数据和触发条件为用户提供相关内容(例如,方法600和800)有关的那些。在一些实施方案中,本节中讨论的上下文监视/预测细节用于提供用来提供数据的上下文信息,以改善搜索结果的呈现以及本文所讨论的任何方法的其他建议内容(例如,为了补充方法600,800,1000,1200,2200,2280,2900或本文讨论的可以从使用额外上下文信息中受益的任何其他方法)。
上下文监视/预测的简明摘要
公开了用于监视计算设备的当前上下文的系统、方法和非暂态计算机可读存储介质。在一些具体实施中,上下文守护进程可以收集关于计算设备的上下文信息。上下文信息可以包括当前设备硬件状态信息。上下文信息可以包括当前的软件状态信息。上下文可以从硬件状态信息、软件状态信息或任何其他类型的状态信息的组合中导出或暗示。例如,导出的上下文可以是从硬件或软件状态信息导出的或由其暗示的用户状态(例如,用户活动、睡眠、跑步等)。
在一些具体实施中,上下文信息可以由上下文监视器报告给上下文守护进程。上下文监视器可以专门构件用于收集上下文守护进程监视的上下文信息。上下文监视器可以是为其他目的构建、使用或生成硬件或软件状态信息,并将状态信息报告给上下文守护进程的应用程序、实用程序、工具等。收集上下文信息之后,上下文守护进程可以将计算设备的当前上下文存储在中心位置,使得上下文客户端(例如,软件、应用程序、实用程序、操作系统等)可以从单一来源获得当前上下文信息。在一些具体实施中,上下文守护进程可以生成和/或收集历史上下文信息。历史上下文信息可以包括旧的或过时的上下文信息。可以从上下文信息导出历史上下文信息。因此,上下文守护进程可以提供上下文信息的中央存储库,上下文客户端(例如,进程)可以使用该中央存储库确定计算设备的当前上下文。
公开了用于向上下文客户端通知计算设备的当前上下文的改变的系统、方法和非暂态计算机可读存储介质。在一些具体实施中,上下文客户端可以注册在当上下文守护进程检测到指定的上下文时回调。例如,上下文客户端可以指定上下文客户端感兴趣的上下文。当上下文守护进程检测到计算设备的当前上下文对应于已注册的上下文时,上下文守护进程可以通知上下文客户端当前上下文与上下文客户端感兴趣的上下文匹配。因此,上下文客户端不需要独立地获得上下文更新所需的编程以及检测与上下文客户端相关或感兴趣的上下文变化。
公开了用于高效监视计算设备的操作上下文的系统、方法和非暂态计算机可读存储介质。在一些具体实施中,可以终止上下文守护进程和/或上下文客户端以节省系统资源。例如,如果上下文守护进程和/或上下文客户端空闲,则可以关闭它们以节省电池电力或释放其他系统资源(例如,存储器)。当需要上下文守护进程和/或上下文客户端运行的事件发生(例如,当前上下文改变)时,可以重新启动上下文守护进程和/或上下文客户端来处理该事件。因此,可以节省系统资源,同时仍然提供相关的上下文信息收集和回调通知功能。
公开了用于预测计算设备的未来上下文的系统、方法和非暂态计算机可读存储介质。在一些具体实施中,上下文守护进程可以使用历史上下文信息来预测未来的事件和/或上下文变化。例如,上下文守护进程可以分析历史上下文信息以预测用户睡眠模式、用户锻炼模式和/或其他用户活动。在一些具体实施中,上下文客户端可以为预测的未来上下文注册回调。例如,上下文客户端可以请求在预测事件和/或上下文改变之前十分钟收到通知。上下文守护进程可以使用该预测来先于预测事件通知上下文客户端。
上下文监视/预测的详细描述
确定当前上下文
图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收集不同的上下文信息。例如,一个监视器组 40_106可以收集关于蓝牙上下文项的上下文信息,而另一个监视器组40_106可以收集关于锁定状态上下文项的上下文信息。
在一些具体实施中,监视器组40_106可以被配置为从位置API 40_132 收集设备位置上下文信息。例如,上下文监视器40_108可以从位置API 40_132接收由全球导航卫星系统(GNSS)接收器接收到的当前GNSS位置数据。监视器组40_106可以从位置API 40_132接收当前蜂窝和/或WiFi导出的位置数据。
在一些具体实施中,监视器组40_106可以被配置为从锁定状态API 40_134收集锁定状态上下文信息。例如,上下文监视器40_108可以收集描述计算设备的当前锁定状态(例如,锁定、解锁等)的锁定状态上下文信息。例如,计算设备的用户必须解锁计算设备才能使用计算设备或与之交互。当设备锁定时,设备将不会接受用户输入。当设备解锁时,设备将接受用户输入。对于具有触摸屏显示器的手持设备,当设备解锁时,显示器可能会亮起并且可以接受来自用户的触摸输入。当触摸屏设备锁定时,显示器可能较暗,并且触摸屏显示器将不接受触摸输入。因此,计算设备的锁定状态可以提供用户已经与计算设备交互的证据。
在一些具体实施中,监视器组40_106可以被配置为从应用管理器API 40_136收集应用程序上下文信息。例如,上下文监视器40_108可以从应用程序管理器API 40_136接收描述哪些应用程序当前在计算设备上运行、应用程序已经运行多长时间、应用程序何时被调用,以及/或者哪些应用程序当前是焦点应用程序(例如,在前台中、在显示器上可见)的信息。
在一些具体实施中,监视器组40_106可以被配置为从蓝牙API 40_138 收集蓝牙上下文信息。例如,上下文监视器40_108可以从蓝牙API 40_138 接收描述活动蓝牙连接的信息,包括连接到计算设备的蓝牙设备的标识和类型、何时建立了连接,以及计算设备已连接到蓝牙设备多久(例如,持续时间)。
在一些实施方式中,监视器组40_106可被配置为从耳机API 40_138 收集耳机接口信息。例如,上下文监视器40_108可以从耳机API 40_138 接收描述有线耳机或头戴式耳机(或其他设备)当前是否连接到计算设备的耳机接口的信息。在一些具体实施中,监视器组40_106可以从耳机API 40_138接收关于连接到耳机接口的设备的类型的信息。
在一些具体实施中,监视器组40_106可以被配置为从其他设备状态 API 40_142收集其他上下文信息。例如,上下文监视器40_108可以从其他状态API 40_138接收描述WiFi连接、电话连接、应用程序使用、日历事件、照片、媒体使用信息、电池充电状态和/或可以用于描述或推断计算设备的当前内部和/或外部上下文的信息。
在一些具体实施中,可以根据需要将监视器组40_106动态加载到上下文守护进程40_102中。例如,当上下文守护进程40_102需要位置上下文信息(例如,客户端已请求位置信息)时,上下文守护进程40_102可以将位置特定的监视器组40_106加载到监视器组40_104中。加载后,监视器组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的任何软件。例如,在计算设备上运行的地图应用程序可以使用位置API 40_132来获得位置信息,以确定如何将用户从起始位置路由到目的地位置。除了确定该路线之外,地图应用程序可以将从位置 API 40_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可以包括表示蓝牙收发器的连接状态的上下文项(假)。当前上下文40_200可以包括识别当前是计算设备焦点的应用程序(社交应用程序)的上下文项。例如,可以从监视器组40_106和/ 或从报告客户端40_124接收当前上下文40_200中所示的上下文信息。
图40_2B示出了被添加到当前上下文40_250的新上下文项的实施例。当前上下文40_250(当前上下文40_112)可以包括计算设备在稍后的时间T'的上下文信息。例如,当前上下文40_250包括识别计算设备的当前位置的新上下文项。当新位置监视器组40_106被加载到上下文守护进程 40_102中并且开始向上下文守护进程40_102报告位置上下文信息时,可以添加新位置上下文项。例如,可以响应于来自上下文客户端的对位置信息的请求来加载新位置监视器组40_106。
回调请求
参考图40_1,在一些具体实施中,上下文守护进程40_102可以暴露 API,该API允许计算设备上运行的上下文客户端软件访问(例如,查询、查看等)当前上下文40_112中的信息。在一些具体实施中,上下文守护进程40_102可以从请求客户端40_126(上下文客户端)接收到在上下文守护进程40_102检测到特定上下文时回调请求客户端40_126的请求。例如,请求客户端40_126可以向上下文守护进程40_102发送回调请求。回调守护进程40_102可以将回调请求信息存储在回调注册表40_114中。回调注册表40_114可以是回调信息的内存储存库。例如,回调请求可以指定用于通知请求客户端40_126的谓词(例如,上下文条件)。回调请求可以包括请求客户端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的延迟初始化。换句话说,上下文守护进程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_126可以确定上下文守护进程40_102为什么发送回调通知。例如,请求客户端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指定的谓词可以识别由逻辑(例如布尔)运算符分隔的一个或多个上下文条件(例如,硬件状态值、软件状态值、导出的上下文等)。当计算设备的当前状态对应于指定的谓词时,上下文守护进程40_102将通知(例如,回调)请求客户端40_126。
在一些具体实施中,谓词可以包括时间分量。例如,谓词可以包括“之前”和/或“之后”操作符(措辞),其允许请求客户端40_126指示在某个事件(例如,状态变化、上下文变化等)之前或之后的时间量,此时请求客户端40_126应收到通知。例如,上下文守护进程40_102可以接收指示安排了在将来特定时间的会议的日历应用程序状态信息。请求客户端40_126可以注册一个谓词(例如,条目40_316),该谓词指定上下文守护进程40_102应在会议之前三十分钟通知请求客户端40_126。在当前时间对应于会议之前三十分钟时,上下文守护进程40_102可以向请求客户端 40_126发送通知。类似地,上下文守护进程40_102可以基于历史上下文信息预测未来事件(例如,用户睡眠周期、用户到家、用户到达办公室、用户醒来等)。例如,请求客户端40_126可以注册一个谓词(例如条目 40_306),该谓词指定上下文守护进程40_102应在预测的用户睡眠周期之前三十分钟通知请求客户端40_126。在当前时间对应于预测的睡眠周期之前三十分钟时,上下文守护进程40_102可以向请求客户端40_126发送通知。类似地,请求客户端40_126可以注册一个谓词(例如,条目 40_310),该谓词指定上下文守护进程40_102应在基于预测的睡眠周期预测用户醒来之后五分钟通知请求客户端40_126。例如,在当前时间对应于用户醒来之后五分钟时,上下文守护进程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包括指示用于锁定、耳机、充电、蓝牙、焦点应用程序、睡眠和位置上下文项的当前值的当前上下文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可以被配置为周期性地报告蓝牙状态信息。报告的蓝牙状态信息可以包括相同状态值的序列,随后是状态改变。例如,上下文监视器40_106可以报告蓝牙的状态是“关、关、关、开”。历史监视器40_110可以组合一系列“关”蓝牙上下文项值、确定“关”值的开始时间和结束时间,以及计算蓝牙部件处于“关”状态有多长时间。
在一些具体实施中,历史监视器40_110可以收集事件流对象的附加信息(例如,元数据)。例如,继续上述蓝牙实施例,历史监视器40_110可以确定蓝牙上下文项具有“开”值并从蓝牙API 40_138请求额外信息。例如,历史监视器40_110可以从蓝牙API 40_138接收标识连接到计算设备的蓝牙设备的类型的信息、所使用的蓝牙协议、通过蓝牙连接传输的数据量,和/或与蓝牙连接相关的任何其他信息。
在另一实施例中,虽然上下文监视器40_108可以被配置为从电话API 收集当前上下文信息(例如,呼叫信息)(例如,所呼叫的电话号码、发起呼叫的时间、终止呼叫的时间等),历史监视器40_110可以从联系人 API(例如,所呼叫的人的姓名等)或呼叫历史API(例如,被叫的人的姓名,呼叫的持续时间等)收集呼叫的事件流元数据,并且添加该附加信息到电话上下文项的事件流对象。因此,历史监视器40_110可以被配置为生成或收集关于历史事件的附加数据,以使历史事件(例如,事件流、事件流对象)对于历史参考和预测未来事件更有价值。历史监视器40_110收集或生成事件流元数据之后,历史监视器40_110可以将事件流元数据存储在历史知识储存库40_118中。在一些具体实施中,上下文守护进程40_102 和/或历史监视器40_110可以将事件流对象(例如,包括开始时间、停止时间、持续时间和/或元数据)存储在历史数据库40_120中。
图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等)。例如,“锁定”事件流表40_602可以包括描述“锁定”事件流的锁定(或解锁)状态的事件流对象记录40_616、40_618。事件流对象记录可以包括具有指示事件何时开始的时间戳(TS)值的“开始时间”字段。事件流对象记录可以包括指示事件的持续时间(D)的“持续时间”字段。事件流对象记录可以包括描述与事件相对应的状态变化的状态信息(例如,“锁定:假”指示设备未被锁定)。
在一些具体实施中,事件流对象记录可以包括描述与事件相关联的其他数据的元数据。例如,当生成历史事件流数据时,历史监视器40_110可以收集和/或生成描述在事件发生时系统状态的附加属性或周围环境的元数据。例如,对于“充电”事件流40_606,历史监视器40_110可以收集与充电事件开始和/或结束时的电池充电状态相关的信息(例如,百分比电量、充电水平等)。对于蓝牙事件流40_608,历史监视器40_110可以收集与连接到计算设备的蓝牙设备的类型和/或传输到蓝牙设备的媒体的源相关的信息。对于位置事件流40_612,历史监视器40_110可以将原始位置数据(例如,网格坐标、GNSS数据、小区塔标识数据、Wi-Fi网络标识符等)转换为人类用户可以理解的位置词语(例如,家、公司、学校、杂货店、餐厅名称等)。
在一些具体实施中,历史监视器40_110可以生成或获得比上下文监视器40_108更准确的位置信息。例如,上下文监视器40_108可以在没有太多(如果有的话)处理的情况下提供当前(例如,瞬时)位置信息。由于定位技术存在各种问题(例如,信号多路径问题,难以连接到足够的卫星等),该初始位置数据可能不准确。给定附加时间和附加数据,可以更准确地确定位置。由于历史监视器40_110处理历史数据(而不是当前数据或瞬时数据),所以历史监视器40_110可以花费时间从例如位置API 40_132 获得更准确的位置信息。描述事件的该附加元数据可以存储在历史数据库 40_600的事件流记录中。
在一些具体实施中,历史监视器40_110可以在初始化监视器组 40_106之后获得关于上下文项的历史信息。例如,如果监视器组40_106配置为监视位置上下文,则上下文守护进程40_102可以根据需要加载、调用和/或初始化监视器组40_106,如上所述。当监视器组40_106被初始化时,上下文监视器40_108将收集位置上下文项的上下文信息。然而,当监视器组40_106初始化之后,由于该位置上下文项以前没有被监视,所以没有该位置上下文项的历史数据。因此,在一些具体实施中,历史监视器 40_110可以从位置API 40_132请求位置历史数据,并且基于从位置API 40_132接收到的位置历史数据生成历史上下文信息(例如,事件流、事件流对象等)。
事件流隐私
在一些具体实施中,每个事件流可以具有相应的隐私政策。在一些具体实施中,事件流可以配置有默认隐私政策。在一些具体实施中,管理员用户可以向计算设备提供输入以配置每个事件流(例如,每个上下文项) 的隐私政策。例如,对应于各个事件流的隐私政策可随着时间改变。
在一些具体实施中,上下文项的事件流可以具有防止维护上下文项的历史信息的隐私政策。例如,对应于位置上下文项的事件流可以具有不允许维护计算设备的位置的历史记录的政策。当这种“无历史”政策被配置用于事件流时,历史监视器40_110将不会生成事件流的历史上下文信息 (例如,事件流对象)。
在一些具体实施中,上下文项的事件流可以具有指定历史上下文信息在被删除之前应该存储的时间量(例如,生存时间)的隐私政策。例如,对应于“焦点应用”上下文项的事件流可以具有指定比指定时间量(例如,3天、1个月等)更长的“焦点应用”上下文项的事件流数据应被删除的生存时间政策。上下文守护进程40_102可以周期性地对事件流执行维护,以删除比生存时间政策中指定的时间量更长的事件流对象。
在一些具体实施中,上下文项的事件流可以具有时间戳解析政策。例如,当时间戳解析政策生效时,历史监视器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_126的客户端标识符40_704。
在一些具体实施中,客户端标识符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的第一实例时,客户端标识符40_704可以识别请求客户端40_126 的第一实例。当请求客户端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_102 发送回调请求40_708时,请求客户端在请求客户端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_126感兴趣的当前上下文时,上下文守护进程40_102可以通知(例如,回调) 请求客户端40_126。
图40_8A和图40_8B是示出重新启动已被终止的请求客户端的示例性系统40_700的框图。例如,在图8A中,系统40_700已经确定请求客户端 40_126是空闲的并且已经终止请求客户端40_126(例如,请求客户端 40_126的虚线轮廓指示终止)。在图8A中,上下文守护进程40_102仍在运行。然而,由于请求客户端40_126已被终止,因此通信会话40_709也被终止。
图40_8B是示出使用系统40_700重新启动请求客户端40_126的示例性机制的框图。继续图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_702发送从请求客户端40_126接收到的客户端标识符40_704。
在一些具体实施中,在接收到客户端标识符40_704时,启动守护进程 40_702可以启动请求客户端40_126。例如,启动守护进程40_702可以确定上下文守护进程40_102被授权以基于由上下文守护进程40_102提供的客户端标识符来请求重新启动请求客户端40_126。例如,如果请求客户端 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_126发送通知40_710以通知请求客户端40_126由请求客户端40_126提供的回调谓词已被当前上下文所满足。
图40_9A和图40_9B是示出重新启动已被终止的上下文守护进程的示例性系统40_700的框图。例如,在图9A中,系统40_700已经确定上下文守护进程40_102是空闲的并且已经终止上下文守护进程40_102(例如,上下文守护进程40_102的虚线轮廓指示终止)。在图9A中,请求客户端 40_126仍在运行。然而,由于上下文守护进程40_102已被终止,因此通信会话40_709也被终止。
图40_9B是示出使用系统40_700重新启动上下文守护进程40_102的示例性机制的框图。继续图9A的实施例,系统40_700可以响应于从请求客户端40_126接收到针对上下文守护进程40_102的消息来重新启动上下文守护进程40_102。
在一些具体实施中,请求客户端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_702重新启动上下文守护进程40_102。响应于接收到消息,启动守护进程40_702 可以重新启动上下文守护进程40_102。一旦上下文守护进程40_102正在运行,消息系统40_902可以向上下文守护进程40_102发送来自请求客户端 40_126的消息,从而重新建立请求客户端40_126和上下文守护进程 40_102之间的通信信道。
在一些具体实施中,在重新启动时,上下文守护进程40_102可以恢复其回调注册表40_114和当前上下文40_112。例如,回调注册表40_114可以从谓词数据库40_116中恢复。当前上下文40_112可以从上下文数据库 40_712中恢复。在重新启动后,上下文守护进程40_102可以加载收集上下文信息所需的监视器组40_106,以便为从谓词数据库40_116中恢复的回调请求服务。如上所述,上下文守护进程40_102可以利用加载的监视器组 40_104报告的上下文信息来更新当前上下文40_112,并且当前上下文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_1002接收到针对终止的上下文守护进程40_102的消息来重新启动上下文守护进程40_102。例如,类似于图 9B中的请求客户端40_126,干预客户端40_1002可以向现在终止的上下文守护进程40_102发送消息。消息系统40_902可以接收消息并确定上下文守护进程40_102未运行。响应于确定上下文守护进程40_102未运行,消息系统40_902可以向启动守护进程40_702发送消息以使启动守护进程 40_702重新启动上下文守护进程40_102。
在一些具体实施中,在重新启动时,上下文守护进程40_102可以从谓词数据库40_116中恢复其回调注册表40_114。在重新启动时,上下文守护进程40_102可以从上下文数据库40_712中恢复其当前上下文40_112,并且可以开始收集更新的上下文信息,如上所述。当上下文守护进程40_102 确定注册的谓词与当前上下文信息匹配时,上下文守护进程40_102可以尝试通知请求客户端40_126。当上下文守护进程40_102确定在请求客户端 40_126和上下文守护进程40_102之间不存在通信会话40_709时,上下文守护进程40_102可以请求启动守护进程40_702重新启动请求客户端 40_126,使得可以重新建立通信会话,并且上下文守护进程40_102可以回调请求客户端40_126,如上文参考图8B所述。
图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接收器、Wi-Fi或蜂窝数据组件等)生成的位置数据的设备状态40_1104。在一些具体实施中,设备状态 40_1104可以指示位置改变,但是可能不提供高级位置信息(例如,人类可读标签)。
例如,请求客户端40_126可以向上下文守护进程40_102发送具有基于位置的谓词的回调请求40_708。该谓词可以指定请求客户端40_126应被通知计算设备的当前位置(例如,当前上下文)是用户的家(例如,位置=家)。为了确定设备位置是用户的家,上下文守护进程40_102和/或监视器组40_106可以从位置API 40_132以及在用户设备上运行、定义“家”的位置(例如,定义与“家”标签相关联的地理位置)的联系人应用程序收集信息。通过将来自位置API 40_132的位置信息与联系人应用程序中“家”的定义进行比较,上下文守护进程40_102可以确定上下文项“位置”何时等于“家”。如该实施例所示,确定由请求客户端40_126定义的位置谓词(例如,“家”)被满足取决于将当前地理位置数据(例如,网格坐标)与将标签(例如,“家”)与地理位置相关联的用户数据组合起来。因此,抽象位置上下文“家”可以通过分析由计算设备的位置服务和联系人应用程序生成的具体状态数据来确定。
在一些具体实施中,当上下文守护进程40_102从请求客户端40_126 接收到回调请求40_708时,上下文守护进程40_102可以向启动守护进程 40_702发送设备状态请求40_1102以注册对计算设备的特定组件的状态改变的兴趣。当启动守护进程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_1102,以请求当启动守护进程40_702检测到位置组件状态改变时,启动守护进程40_702通知上下文守护进程40_102。
在一些具体实施中,设备状态请求40_1102可以指定当指定的状态改变发生时,启动守护进程40_702应通知请求客户端40_126。例如,当请求客户端40_126向上下文守护进程40_102发送指定基于位置的回调谓词的回调请求时,上下文守护进程40_102可以向启动守护进程40_702发送设备状态请求40_1102,以请求当启动守护进程40_702检测到位置组件状态改变时,启动守护进程40_702通知请求客户端40_126。在一些具体实施中,设备状态请求40_1102可以包括对应于请求客户端40_126的客户端标识符40_704,使得启动守护进程40_702可以确定通知哪个请求客户端 40_126。
图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_126接收回调请求,该回调请求指定向请求客户端40_126发送来自上下文守护进程40_102的通知 40_710的上下文谓词。响应于接收到谓词,上下文守护进程40_102可以向启动守护进程40_702发送设备状态请求40_1102,以注册与谓词相关联的设备状态改变的兴趣。例如,如果请求客户端40_126指定基于位置的回调谓词,则当计算设备的位置改变时,上下文守护进程40_102可以要求启动守护进程40_702通知上下文守护进程40_102。当启动守护进程40_702接收到指示位置改变的设备状态40_1104时,启动守护进程40_702可以尝试通知上下文守护进程40_102。继续图40_12A的实施例,由于上下文守护进程40_102未在计算设备上运行,因此启动守护进程40_702可以确定上下文守护进程40_102未运行并启动(例如,重新启动、发起、调用、执行等)上下文守护进程40_102。一旦重新启动上下文守护进程40_102,上下文守护进程40_102可以请求启动守护进程40_702重新启动请求客户端40_126,如上文参考8B所述。
图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_126接收回调请求,该回调请求指定向请求客户端40_126发送来自上下文守护进程40_102的回调通知 40_710的上下文谓词。响应于接收到谓词,上下文守护进程40_102可以向启动守护进程40_702发送设备状态请求40_1102,以注册与代表请求客户端40_126的谓词相关联的设备状态改变的兴趣。例如,当注册与谓词相关联的设备状态改变的兴趣时,上下文守护进程40_102可以向启动守护进程 40_702提供客户端标识符40_704。例如,如果请求客户端40_126指定基于位置的回调谓词,则当计算设备的位置改变时,上下文守护进程40_102 可以要求启动守护进程40_702通知请求客户端40_126。当启动守护进程 40_702接收到指示位置改变的设备状态40_1104时,启动守护进程40_702 可以尝试通知请求客户端40_126(例如,由客户端标识符40_704识别)。继续图40_13A,由于请求客户端40_126未在计算设备上运行,因此启动守护进程40_702可以确定请求客户端40_126未运行并启动(例如,重新启动、发起、调用、执行等)请求客户端40_126。一旦重新启动请求客户端40_126,请求客户端40_126可以通过向上下文守护进程40_102发送消息来使启动守护进程40_702重新启动上下文守护进程40_102,如上文参考图9B所述。
预测未来事件
在一些具体实施中,上下文守护进程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可以通过确定“锁定”上下文项的当前值为伪(例如,用户已经解锁设备)并且当前时间在预测的睡眠时间段结束之后,检测到用户已经醒来。
未来事件的时隙方式预测
在一些具体实施中,上下文守护进程40_102可以执行时隙方式平均来预测未来事件。例如,为了预测确定睡眠用户睡眠模式,上下文守护进程 40_102可以分析上述锁定状态事件流。上下文守护进程40_102可以通过将锁定状态事件流划分为前40_28天内的连续24小时时间段来分析锁定状态事件流。上下文守护进程40_102可以将每个24小时时间段划分为96个15 分钟时隙。上下文守护进程40_102可以确定每个24小时时间段中每个15 分钟的分钟时段的锁定状态。例如,如果计算设备在整个15分钟时隙内保持锁定,则该时隙的锁定状态可为真(例如,1)。如果计算设备在15分钟时隙内解锁,则该时隙的锁定状态可为伪(例如,0)。可将每个24小时时间段内15分钟时隙的锁定状态数据组合,以生成表示前40_28天中每一天的28个数据向量。例如,每个向量(例如,长度为96)可以包括对应于一天内的15分钟时隙中的每一个的96个锁定状态值。然后,上下文守护进程40_102可以在40_28天时间段内平均每个15分钟时隙,以确定用户的历史睡眠模式。
图40_14是示出用于预测未来事件的时隙方式平均的实施例的图 40_1400。例如,图40_1400示出了使用设备锁定状态来确定睡眠模式并预测未来睡眠时间段。例如,每条水平线表示24小时时间段的锁定状态数据向量。24小时时间段可在t-n至t+n的范围内,其中“t”是对应于用户睡眠周期的大约(例如,推定的、典型的、计算的等)中间的某个时间,并且“n”可以是40_12。例如,如果典型的人从下午10点睡到上午6点,则“t”可以是上午2点。在图40_1400中,“C”表示当天。因此,C-1是昨天,C-2是两天前,C-7是一周前,C-28是四周前。每天具有96个相应的 15分钟时隙。例如,图40_1400描绘了对应于上午3:30-3:45、上午5:00-5:15和上午6:15-6:30的15分钟时隙。虽然在图40_1400上仅示出了三个 15分钟时隙以减少图形40_1400上的混乱,但是每个向量具有96个15分钟时隙,并且将对每个24小时时间段内的96个时隙中的每一个执行参考图40_1400上的三个15分钟时隙描述的操作。
参考图40_1400上的向量C-1,3:30时隙和5:00时隙中的一个的值 (例如,1,真)指示计算设备在整个相应的15分钟时隙期间保持锁定。在6:15时隙期间,零值(例如,0,伪)指示计算设备在15分钟时间段期间的某个时间解锁。例如,上下文守护进程40_102可以推断用户必须已经醒来才能在6:15时隙中解锁计算设备。上下文守护进程40_102可以推断当设备保持锁定长达阈值时间段(例如,5小时)时用户处于睡着状态,如下面进一步描述。
为了确定用户将在当天中的每个15分钟时隙期间保持计算设备锁定 (并且因此保持睡眠)的概率,上下文守护进程40_102可以平均前28天内的每个15分钟时隙的值,以预测当前24小时时间段中的每个15分钟时隙的值。上下文守护进程40_102可以使用针对当前24小时时间段计算的平均15分钟时隙值,来识别当前24小时中超过设备可能保持锁定的睡眠阈值(例如,5小时)的时间段。例如,在15分钟时隙的平均值高于某个阈值(例如,0.5,40_50%等)的情况下,上下文守护进程40_102可以确定计算设备将在该15分钟时隙内保持锁定。上下文守护进程40_102可以确定具有大于阈值的连续(或大部分连续)的系列15分钟时隙,这些时隙在被组合时超过睡眠阈值时间段。一旦确定该系列15分钟时隙,上下文守护进程40_102可以将该系列15分钟时隙所覆盖的时间段识别为预测的睡眠时间段。
在一些具体实施中,上下文守护进程40_102可以在锁定状态数据向量中执行加权平均。例如,可以对每个向量进行加权,使得较旧的锁定状态数据比较新的锁定状态数据对平均值的影响小。在一些具体实施中,上下文守护进程40_102可以在一系列最近几天内(例如,在过去7天的每一天内)执行短期平均,和/或在一系列周内(例如,7天前、14天前、21天前、28天前)执行长期平均。例如,短期平均对于预测每天模式可能更好,而长期平均对于预测用户在一周的特定日期做什么可能更好。例如,如果今天是星期六,则用户在上一个星期六的活动比用户昨天(例如,星期五)的活动可能更好地预测用户今天的行为,特别是在用户星期一至星期五工作的情况下。
短期平均
在一些具体实施中,上下文守护进程40_102可以使用以下短期加权平均算法来确定设备将在15分钟时隙内保持锁定的概率(PS):
其中V1对应于C-1,V2对应于C-2,以此类推,V7对应于C-7,并且λ是通过实验确定的值介于0和1之间的权重。例如,短期加权算法可用于计算前七天内每15分钟的加权平均数。
长期平均
在一些具体实施中,上下文守护进程40_102可以使用以下长期加权平均算法来确定设备将在15分钟时隙内保持锁定的概率(PL):
其中V7对应于C-7,V14对应于C-14,V21对应于C-21,并且V28对应于C-28,并且“λ”是通过实验确定的值介于0和1之间的权重。例如,长期加权算法可用于计算过去四周内每周的同一天的15分钟的加权平均数。
在一些具体实施中,可将短期加权平均算法和长期加权平均算法组合,以生成计算设备将在15分钟时隙内保持锁定的组合(例如,复合、整体等)概率(P),概率(P)如下计算:
其中“r”是可用于调整长期加权平均数对概率计算的影响的通过实验确定的数(例如,0.5)。
比例时隙值
图15分钟描绘了示出计算比例时隙值的示例性图15分钟00和15分钟50。例如,不是如上面的描述那样,上下文守护进程40_102为24小时时间段C-n内的每个15分钟时隙分配真(1)和伪(0)值,而是可以确定计算设备在多少个每个15分钟时隙期间被锁定或解锁,并且向表示设备被锁定的时隙内的比例时间量的时隙分配比例值。
参考图15分钟00,每个15分钟时隙的阴影区域可以表示设备被锁定的时隙内的时间。例如,设备在整个上午3:30-3:45和上午5:00-5:15时隙期间被锁定。因此,3:30和5:00时隙可以被分配值一(1)。然而,计算设备仅在部分上午6:15-6:30时隙内被锁定。如果计算设备在6:15时隙的前40_10 分钟被锁定,则6:15时隙可以被分配值40_10/15或0.67,该值表示设备被锁定的15分钟时隙的比例量,如图15分钟50所示。如果计算设备被反复锁定和解锁(例如,锁定5分钟、解锁2分钟、锁定1分钟、解锁5分钟等),则计算设备可以将锁定的时间段加起来,将解锁的时间段加起来,并计算该计算设备被锁定期间15分钟时隙的比例。在一些具体实施中,可以为24小时时间段(例如,数据向量)内的每个15分钟时隙确定比例值。在一些具体实施中,当计算上述短期和/或长期概率时,可以使用每个 15分钟时隙的比例值。
生成睡眠曲线
图40_16A是示出用于预测未来上下文的示例性方法的图40_1600。例如,图40_16所示的方法可用于预测计算设备的用户的未来睡眠时间段。例如,图40_1600中的每列(例如,列40_1602、列40_1606)可以表示15 分钟时隙,如上所述。每个15分钟时隙的值可以由列的高度表示,并且可以对应于时隙的组合加权平均概率(P),如上所述。例如,概率(P)可以在零 (例如,0,0%)至一(例如,1,40_100%)的范围内。该概率可以表示例如计算设备将在15分钟时隙期间保持锁定的概率,如上所述。该概率可以基于二进制(例如,0,1)15分钟时隙值来计算。该概率可以基于比例 15分钟时隙值来计算。
在一些具体实施中,上下文守护进程40_102可以将概率图40_1600转换成表示计算设备的用户的睡眠周期的概率曲线。例如,上下文守护进程 40_102可以确定睡眠概率阈值40_1606,以确定哪个15分钟时隙对应于用户的睡眠时间段。在一些具体实施中,睡眠概率阈值40_1606可以动态地确定。例如,给定最小睡眠时间段(例如,5小时、7小时等),上下文守护进程40_102可以确定形成一段连续15分钟时隙的睡眠概率阈值40_1606 的值(例如,0.65,40_50%等),该一段连续15分钟时隙至少与最小睡眠时间段一样长并且包括具有超过睡眠概率阈值40_1606的(例如,概率、平均)值的15分钟时隙。换句话说,上下文守护进程40_102可以上下调整睡眠概率阈值40_1606,直到一系列15分钟时隙在被组合时满足或超过最小睡眠时间段并且具有高于睡眠概率阈值的值。
在一些具体实施中,一旦确定睡眠概率阈值40_1606,上下文守护进程40_102可以基于连续的15分钟时隙来确定用户的睡眠时间段40_1608。例如,睡眠时间段40_1608可以对应于连续的15分钟时隙所覆盖的时间段。参考图40_16,睡眠周期可以对应于下午11点开始到上午7点结束的时间段。
图40_16B是示出用于将时隙方式概率转换为概率曲线的示例性方法的图40_1650。例如,为了使得能够一致地预测用户的睡眠周期,可能有用的是,生成随着用户入睡而单调递增(例如,增加设备将保持锁定的概率)并且随着用户醒来而单调递减(例如,降低设备将保持锁定的概率) 的概率曲线(例如,类似于钟形曲线)。
在一些具体实施中,为了生成概率曲线40_1652,上下文守护进程 40_102可以使用上面确定的睡眠概率阈值将针对每个15分钟时隙计算的概率(例如,平均数)转换为二进制(例如,1或0)值。例如,睡眠时间段内(例如,高于睡眠阈值40_1606)的15分钟时隙可以被分配值一(1),并且睡眠时间段之外的15分钟时隙可以被分配值零(0)。一旦将二进制值分配给每个15分钟时隙,上下文守护进程40_102可以将曲线(例如,概率曲线40_1652)拟合为二进制值。一旦生成,上下文守护进程40_102可以使用概率曲线40_1652来估计用户将在一天的特定时间和/或在一天中的特定时间段内处于睡眠状态的概率。例如,上下文守护进程40_102可以使用概率曲线40_1652来预测用户未来在何时可能处于睡眠状态。参考图16B,由于图40_1650所表示的计算的睡眠时间段落在下午11点和上午7点之间,因此上下文守护进程40_102可以预测用户未来将在下午11点和上午7 点之间处于睡眠状态。例如,如果睡眠预测每天完成(例如,在用户早晨醒来之后),则上下文守护进程40_102可以预测用户将在当天下午11点和上午7点之后之间处于睡眠状态。
处理不规则性—异常值和缺失数据
在一些具体实施中,上下文守护进程40_102可以被配置为处理历史事件流数据内的异常值数据。在一些具体实施中,上下文守护进程40_102可以被配置为处理一段时间内以其他方式对应于睡眠时间段的异常值15分钟时隙。例如,可能是睡眠时间段候选者的一段时间(例如,具有超过睡眠阈值的值并且在被组合时超过最小睡眠时间段的一段连续15分钟时隙)可以包括不超过睡眠阈值的15分钟时隙。例如,如果最小睡眠时间段为5小时,则睡眠时间段内存在至少二十个15分钟时隙。在存在二十个15分钟时隙的情况下,可能存在十个超过睡眠阈值的时隙,然后是一个不超过睡眠阈值的时隙(例如,异常值),其次是九个超过睡眠阈值的时隙。这种情况的实施例可以参考图40_16看出,其中异常值时隙40_1608不超过睡眠阈值40_1606,并且被超过睡眠阈值40_1606的时隙(例如,40_1604) 包围。当在超过睡眠阈值的一段15分钟时隙内存在少数(例如,一个、两个)异常值15分钟时隙时,那么上下文守护进程40_102可以将该异常值 15分钟时隙视为犹如其超过睡眠阈值一样,使得可以生成如上所述的睡眠时间段(例如,睡眠曲线)。例如,当确定对应于睡眠时间段的该段连续 15分钟时隙时,上下文守护进程40_102可以忽略异常值15分钟时隙。当将15分钟时隙转换为二进制值以生成概率曲线(如图40_16B所示)时,上下文守护进程40_102可以为异常值15分钟时隙分配值一,使得可以生成概率曲线。
在一些具体实施中,上下文守护进程40_102可以被配置为在预测睡眠时间段时处理历史事件流内的异常值日期(例如,24小时时间段、历史数据向量等)。例如,在计算短期平均数之前,上下文守护进程40_102可以将前七天的锁定事件数据(例如,历史上下文数据)进行比较。例如,上下文守护进程40_102可以对前七个24小时时间段中的每一个的历史数据向量执行相似性分析。如果该七天中的一天(例如,异常值日期)的数据与其他六天完全不同,则上下文守护进程40_102可以从短期平均计算中去除该异常值日期。例如,15分钟时隙的历史设备锁定状态数据中产生较小的日期间变化可能是正常的。然而,大段锁定数据(例如,对应于用户睡眠时间段)中产生变化是不正常的。上下文守护进程40_102可以通过将历史数据中的日期间模式进行比较并检测所观察到的一天的使用模式(例如,用户行为)不对应于所观察到的本周中其他日期的使用模式,来检测异常值日期。例如,当一段15分钟时隙在其他日期通常被锁定时,上下文守护进程40_102可以确定同一段15分钟时隙在异常值日期(24小时时间段)中被解锁。一旦检测到异常值日期,上下文守护进程40_102可以从上述短期平均计算中省略异常值日期。
类似地,在计算长期平均数之前,上下文守护进程40_102可以例如将前四周中的每一周同一天的锁定事件数据(例如,历史上下文数据)进行比较。如果其中一天(例如,异常值日期)的数据与其他四天显著不同,则上下文守护进程40_102可以从长期平均计算中去除该异常值日期。例如,15分钟时隙的历史设备锁定状态数据中产生较小的周间变化可能是正常的。然而,大段锁定数据(例如,对应于用户睡眠时间段)中产生变化是不正常的。上下文守护进程40_102可以通过将历史数据中的周间模式进行比较并检测所观察到的一天的使用模式(例如,用户行为)不对应于所观察到的前几周中同一天的使用模式,来检测异常值日期。一旦检测到异常值日期,上下文守护进程40_102可以从上述长期平均计算中省略异常值日期。
在一些具体实施中,上下文守护进程40_102可以基于用户行为模式的变化来检测异常值日期。例如,如果用户通常在下午11点和上午7点之间睡觉,则历史锁定事件数据将指示设备在下午11点和上午7点之间保持 (大部分)锁定。然而,在极少数日期,用户可以通宵候学习或工作,因此当天的睡眠时间段可变化为另一个时间段(例如,上午6点至下午12点)。在一些具体实施中,上下文守护进程40_102可以基于历史锁定状态数据来检测睡眠模式的这种变化,并且从平均计算中去除这一天。
在一些具体实施中,上下文守护进程40_102可以基于人类行为中已知或普遍认可的限制条件来检测异常值日期。例如,用户可能在周末旅行并且整个周末意外地将计算设备(例如,智能电话)留在家中。在这种情况下,整个周末(例如,两天)设备将保持锁定,从而生成可被上下文守护进程40_102错误地解读为睡眠时间段的一段锁定数据。上下文守护进程 40_102可以通过将对应于该段锁定数据的时间段(例如,睡眠时间段)与最大睡眠时间段(例如,12小时、24小时等)进行比较来检测这种情况。例如,最大睡眠时间段可以基于常识(例如,人类睡眠通常不会超过24小时)或基于所观察到的数据(例如,所观察到的最大用户睡眠时间段为10 小时)确定。如果该段时间超过最大睡眠时间段,则当执行上述长期和/或短期计算时,上下文守护进程40_102可以忽略对应于该段时间的日期或多个日期。
在一些具体实施中,上下文守护进程40_102可以被配置为处理历史事件流中的丢失数据。例如,用户可能在一段时间内关闭计算设备,或者设备在长时间内从外部电源拔出之后可能失去电池电量。当关闭设备时,设备无法收集上下文信息,并且无法生成历史事件流。当再次打开计算设备时,上下文守护进程40_102可以尝试基于对应于关闭设备的时间段的丢失数据来预测未来事件(例如,未来的睡眠时间段)。在这种情况下,上下文守护进程40_102可以确定在该时间段内不存在任何事件(例如,上下文项)数据值,并且当执行上述短期和/或长期平均计算时,忽略(例如,省略)对应于该时间段的日期或多个日期(例如,历史数据向量)。
基于预测事件安排活动
图40_17示出了包括预测的未来事件的示例性事件流40_1700。例如,使用上述机制,上下文守护进程40_102可以预测未来的睡眠时间段40_1702。在一些具体实施中,预测的未来事件可用于在计算设备内安排活动(例如,上下文回调)。参考图1,请求客户端40_126可以在预测的事件之前请求回调通知。例如,请求客户端40_126可以向上下文守护进程40_102发送包括谓词的回调请求,该回调请求指定上下文守护进程40_102 应在用户入睡前三十分钟通知请求客户端40_126。当接收到回调请求时,上下文守护进程40_102可以在预测睡眠时间段开始之前的30分钟内安排通知。类似地,请求客户端可以向上下文守护进程40_102发送包括谓词的回调请求,该回调请求指定上下文守护进程40_102应在用户入睡后一小时通知请求客户端40_126。当接收到回调请求时,上下文守护进程40_102可以在预测睡眠时间段开始之后的一小时内安排通知。
在一些具体实施中,上下文守护进程40_102可以基于事件的预测时间处的当前上下文来确认对未来事件的预测。例如,如果请求客户端40_126 请求上下文守护进程40_102在预测睡眠时间段开始后三十分钟通知请求客户端40_126,则上下文守护进程40_102可以通过分析当前上下文40_112 (例如,上下文项值)以确定设备是否被锁定来确认用户当时实际上已经入睡。如果设备在预测睡眠时间段开始后三十分钟内被解锁(例如,用户未入睡),则上下文守护进程40_102将不通知请求客户端40_126。在一些具体实施中,其他上下文信息可用来确认预测睡眠时间段。例如,加速度计状态可用来确认睡眠时间段。例如,大多数智能电话用户在睡觉时会将智能电话放在桌子上或地板上。桌子和地板通常是静止的物体。因此,智能电话不会生成大量(如果有的话)的加速度计数据。如果智能电话正在生成加速度计数据,则智能电话最有可能在用户的口袋中,而用户正在移动。因此,加速度计数据可以指示用户在预测睡眠时间段内正在移动并且未入睡。
在一些具体实施中,上下文守护进程40_102可以通过识别前体事件来改进对未来事件的预测。例如,上下文守护进程40_102可以分析历史事件流数据以识别用户活动和预测事件之间的关系。例如,用户在睡觉之前可能有检查邮件应用程序、社交网络应用程序、新闻应用程序或其他应用程序的习惯。上下文守护进程40_102可以检测这些模式(例如,使用闹钟应用程序,然后睡觉)并且识别一个或多个前体应用程序(例如,时钟应用程序、新闻应用程序等)。一旦识别一个或多个前体应用程序,上下文守护进程40_102可以使用前体应用程序来预测用户即将睡觉。例如,上下文守护进程40_102可以基于历史事件数据来确定用户通常在使用闹钟应用程序之后40_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可以在预测睡眠时间段开始之前40_10分钟内安排回调通知。当安排时间到达时(例如,当前时间等于安排时间),上下文守护进程40_102可以向操作系统进程发送回调通知。当操作系统进程收到回调通知时,操作系统进程可以提示用户输入用户密码,使得操作系统进程可以在用户入睡时执行维护任务。例如,操作系统进程可以从用户接收密码,并且存储该密码以便在执行系统维护任务期间使用。一旦完成系统维护任务并且不再需要密码,操作系统进程可以从计算设备中删除用户密码。
为了在用户入睡时发起维护任务,操作系统进程可以在预测睡眠时间段开始之后的某个时间(例如,40_30分钟)请求回调通知。在接收到回调请求之后,上下文守护进程40_102可以在预测睡眠时间段开始之后45分钟内安排回调通知。当安排时间到达时(例如,当前时间等于安排时间),上下文守护进程40_102可以在向操作系统进程发送回调通知之前验证用户未使用和/或不会使用计算设备。
在一些具体实施中,上下文守护进程40_102可以通过确定计算设备是否正在为用户发起的活动提供服务来验证用户未使用计算设备。例如,即使计算设备被锁定(例如,指示用户可能正在睡觉),计算设备可以执行用于用户导航请求的导航相关活动。因此,当上下文守护进程40_102确定打开计算设备的导航组件(例如,全球导航卫星系统接收器)时,上下文守护进程40_102可以确定用户正在使用计算设备,并且在预测睡眠时间段内取消或延迟向操作系统进程发送回调通知。类似地,当上下文守护进程 40_102确定计算设备正在提供个人热点服务,响应于用户请求与另一用户设备同步数据(例如,与自动背景同步相反),或者在安排回调通知时提供一些其他用户发起的服务时,上下文守护进程40_102可以取消或延迟向操作系统进程发送回调通知,因为用户仍然正在使用计算设备,即使该设备被锁定。
在一些具体实施中,上下文守护进程40_102可以通过确定计算设备是否即将发起用户可见的活动来验证用户不会使用计算设备。例如,在计算设备上运行的各种进程可以通知用户或获得用户的注意。通信应用程序 (例如,即时消息、文本消息、电子邮件、电话等)可以提醒用户接收到的消息。例如,通信应用程序可以被配置为在接收到消息之后十分钟提醒用户读取或响应接收到的消息。时钟应用程序可以包括被配置为在未来某个时间通知(例如,唤醒)用户的闹钟功能。日历应用程序可以被配置为在未来提醒用户安排的日历事件。如果安排用户参加会议,则导航应用程序可以基于用户从用户的当前位置到会议位置的行进时间量来向用户呈现离开时间提醒。运动应用程序可以被配置为提醒用户站起来、四处走动、去跑步或做其他类型的运动。这些通知、提醒、警报等中的每一者都针对用户,并且将提示或使得用户与计算设备交互。上下文守护进程40_102可以确定这些用户可见的事件中的一者是否将在阈值时间段(例如,一分钟、十分钟、完成系统维护任务所需的时间等)内发生,并且延迟或取消向操作系统进程发送回调通知,因为用户即将开始使用计算设备。
过程
图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_102发送消息的上下文客户端(例如,请求客户端40_126、报告客户端40_124等)。例如,消息可以是来自请求客户端40_126的回调请求。消息可以是从报告客户端 40_124接收的上下文信息更新。在一些具体实施中,事件可以是启动守护进程40_702所接收的设备状态更新,其中上下文守护进程40_102已经注册了兴趣。
在步骤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_1900以重新启动请求客户端40_126,使得请求客户端40_126可以从上下文守护进程40_102接收回调通知。例如,过程40_1900可以对应于参考图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_702发送从请求客户端40_126接收到的客户端标识符。在一些具体实施中,在请求启动守护进程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_126接收指定对应于当前上下文的相同回调预测的回调请求,如在步骤 40_2008处所述。在接收到回调请求时,上下文守护进程40_102可以确定回调请求对应于计算设备的当前上下文。
在步骤40_2016处,计算设备可以向请求客户端40_126发送回调通知。例如,在确定当前上下文与回调请求匹配时,上下文守护进程40_102 可以使用重新建立的通信信道向请求客户端40_126发送回调通知。
图40_21是用于基于历史上下文信息预测未来事件的示例性过程 40_2100的流程图。例如,过程40_2100可以对应于参考图40_14至图 40_17描述的事件预测机制。
在步骤40_2102处,计算设备可以获得上下文项的历史上下文数据。例如,上下文守护进程40_102(例如,使用历史监视器40_110)可以为当前上下文40_112中的每个上下文项生成指示设备上下文(例如,设备状态)随时间变化的历史事件流。例如,历史监视器40_110可以为“锁定的”上下文项生成指示设备何时被锁定或解锁的历史事件流,如上所述。
在步骤40_2104处,计算设备可以生成上下文项的历史上下文数据向量。例如,上下文守护进程40_102可以为前40_28天内的24小时时间段中的上下文项分析历史上下文数据。例如,上下文守护进程40_102可以为 40_28个前24小时时间段中的每一个生成28个数据向量。28个数据向量中的每一个可以包括对应于每个40_24小时时间段中的96个15分钟时隙的96个数据条目(例如,每个向量可以具有长度96)。上下文守护进程 40_102可以向96个15分钟时隙中的每一个分配概率值,该概率值对应于在40_28个前24小时时间段(例如,前40_28天)中的每一个期间所记录的上下文项(例如,设备状态)的观察值。例如,上下文守护进程40_102 可以向40_28个向量中的96个数据时隙中的每一个分配值(例如,0、1、 0.45等),该值指示计算设备在前40_28天中的96个15分钟时隙中的每一个期间将保持锁定的可能性。
在步骤40_2106处,计算设备可以确定在每个时隙中将观察到特定上下文值的短期概率。例如,短期概率可以基于在前几天内所收集的数据来计算。例如,通过如以上部分“短期平均”所述,计算前七天内的15分钟时隙的平均值,上下文守护进程40_102可以计算设备将保持锁定的短期概率(PS)。
在步骤40_2108处,计算设备可以确定在每个时隙中将观察到特定上下文值的长期概率。例如,长期概率可以基于在前几周内的每一周同一天 (例如,星期天、星期三等)所收集的数据来计算。例如,通过如以上部分“长期平均”所述,计算前四周内的15分钟时隙的平均值,上下文守护进程40_102可以计算设备将保持锁定的长期概率(PL)。
在步骤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可以从请求客户端40_126接收回调请求,该回调请求指定上下文守护进程40_102应在用户睡觉之后十分钟通知请求客户端 40_126。
在步骤40_2204处,计算设备可以初始化睡眠上下文监视器以为回调请求提供服务。例如,睡眠上下文监视器可以是监视器组40_106,其包括被配置为监视计算设备的锁定状态的上下文监视器40_108。在一些情况下,上下文监视器40_108可以被配置为监视计算设备的锁定状态以及与睡眠上下文相关联的其他组件的状态。例如,上下文监视器40_108可以监视导航组件、无线网络组件(例如,个人热点、蓝牙等)、设备同步组件和/ 或设备输入/输出组件(例如,耳机插孔连接器等)的状态。
在步骤40_2206处,计算设备可以从上下文监视器接收睡眠上下文信息。例如,上下文监视器40_108可以将计算设备的锁定状态和/或其他受监视组件的状态报告给上下文守护进程40_102。
在步骤40_2208处,计算设备可以预测未来的睡眠时间段。例如,上下文守护进程40_102可以预测未来的睡眠时间段,如上文参考图40_21所述。
在步骤40_2210处,计算设备可以安排睡眠上下文回调。例如,如果预测的睡眠时间段是从下午11点到上午7点,并且睡眠上下文回调指定请求客户端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系统、Wi-Fi 和/或蜂窝数据收发器等)是否被打开。如果当前上下文信息指示这些导航组件被供电,则上下文守护进程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。
用于上下文监控/预测的示例性方法
在一些实施方案中,上下文监控的方法包括:由在计算设备上执行的上下文守护进程接收对应于由一个或多个上下文监视器监视的一个或多个上下文项的值;由上下文守护进程从上下文客户端进程接收对应于第一上下文项的上下文信息请求;由上下文守护进程确定上下文监视器当前未监视第一上下文项;以及由上下文守护进程初始化对应于第一上下文项的新上下文监视器。在一些实施方案中,初始化新上下文监视器包括将对应于新上下文监视器的新软件包动态地加载到上下文守护进程中。在一些实施方案中,初始化新上下文监视器包括调用与上下文守护进程分开的新上下文监视器进程,该新上下文监视器进程对应于新上下文监视器。在一些实施方案中,一个或多个上下文项值描述计算设备的一个或多个硬件组件的当前状态。在一些实施方案中,一个或多个上下文项值描述计算设备的一个或多个软件组件的当前状态。在一些实施方案中,该方法包括:通过新上下文监视器进程生成对应于第一上下文项的历史事件流。在一些实施方案中,新上下文监视器进程生成历史事件流对象,该历史事件流对象识别描述历史事件流中的事件的开始时间、持续时间和上下文项值。
在一些实施方案中,上下文通知的方法包括:由在计算设备上执行的上下文守护进程生成描述计算设备的当前上下文的信息;由上下文守护进程从上下文客户端进程接收指定用于向上下文客户端进程发送通知的谓词的回调请求,该谓词指定用于回调上下文客户端的上下文条件;由上下文守护进程检测当前上下文对应于谓词;以及响应于该检测,由上下文守护进程向请求客户端发送回调通知。在一些实施方案中,上下文条件指定一个或多个上下文项的值,当该一个或多个上下文项的值在当前上下文中被检测到时,使得上下文守护进程向上下文客户端发送回调通知。在一些实施方案中,回调请求包括上下文客户端和谓词的标识符;并且还包括:在一些实施方案中,该方法包括:由上下文守护进程生成回调请求的唯一标识符;以及由上下文守护进程向请求客户端发送该唯一标识符。在一些实施方案中,该方法包括:由上下文守护进程存储唯一标识符、上下文客户端标识符和谓词之间的关联。在一些实施方案中,该存储过程包括将唯一标识符、上下文客户端标识符和谓词存储在与上下文守护进程相关联的存储器中。在一些实施方案中,该存储过程包括将唯一标识符、上下文客户端标识符和谓词存储在谓词数据库中。在一些实施方案中,该方法包括:由上下文守护进程接收描述计算设备的软件和硬件组件的当前状态的设备状态信息;以及由上下文守护进程基于接收到的设备状态信息生成当前上下文信息。
在一些实施方案中,上下文预测的方法包括:由计算设备获得对应于由计算设备监视的上下文项的历史事件流;由计算设备计算在历史事件流中的相应时间段内将观察到上下文项的特定值的多个概率;由计算设备基于计算出的概率生成概率曲线;以及由计算设备基于概率曲线预测上下文项的特定值的未来发生。在一些实施方案中,该方法包括:基于概率曲线预测用户活动的未来发生。在一些实施方案中,预测的用户活动对应于预测的用户睡眠时间段。在一些实施方案中,该方法包括:由上下文守护进程从请求客户端接收请求上下文守护进程在预测的用户活动的未来发生之前的所请求时间通知回调客户端的回调请求;由上下文守护进程安排在所请求时间传送通知;以及由上下文守护进程在预测的用户活动的未来发生之前的所请求时间向请求客户端发送通知。在一些实施方案中,该方法包括:由上下文守护进程从请求客户端接收请求上下文守护进程在预测的用户睡眠时间段期间的所请求时间通知回调客户端的回调请求;由上下文守护进程安排在预测的用户睡眠时间段期间的所请求时间传送通知;确定所请求时间对应于当前时间;由上下文守护进程确定用户在当前时间是否入睡;以及当上下文守护进程确定用户在当前时间入睡时,由上下文守护进程向请求客户端发送通知。在一些实施方案中,确定用户在当前时间是否入睡包括:确定用户发起的操作在当前时间是否正由计算设备执行。在一些实施方案中,确定用户在当前时间是否入睡包括:确定用户可见的操作在相对于当前时间的阈值时间段内是否被安排为由计算设备执行。
在一些实施方案中,有效的上下文监控的方法包括:在在计算设备上执行的上下文守护进程中从上下文客户端接收第一上下文回调请求,该上下文回调请求发起上下文客户端和上下文守护进程之间的第一通信会话;由上下文守护进程接收当前上下文信息;确定当前上下文信息对应于上下文回调请求;响应于该确定,由上下文守护进程检测与上下文客户端的第一通信会话已终止;以及响应于该检测,由上下文守护进程向启动守护进程发送请求启动守护进程重新启动上下文客户端的重新启动消息。在一些实施方案中,回调请求包括客户端标识符,并且还包括:由上下文守护进程向消息中的启动守护进程发送客户端标识符。在一些实施方案中,当前上下文信息包括描述计算设备的当前状态的一个或多个上下文项。在一些实施方案中,上下文回调请求基于上下文守护进程接收到的当前上下文信息来指定用于通知上下文客户端的条件。在一些实施方案中,该方法包括:在上下文守护进程接收到第一上下文回调请求之后终止上下文客户端。在一些实施方案中,该方法包括:在接收到重新启动消息时,由启动守护进程重新启动上下文客户端;在已经重新启动客户端之后,由上下文守护进程从上下文客户端接收第二上下文回调请求;将第二上下文回调请求与当前上下文信息进行比较;以及响应于该比较,通知上下文客户端当前上下文信息对应于第二上下文回调请求。在一些实施方案中,第二上下文回调请求建立上下文客户端和上下文守护进程之间的第二通信会话,并且其中上下文守护进程使用由上下文客户端建立的第二通信会话来通知上下文客户端。
第11部分:应用内搜索的客户端、服务器和Web方面
本部分中的内容“应用内搜索的客户端、服务器和Web方面”描述了根据一些实施方案的应用内搜索、众包应用程序历史搜索以及应用程序视图索引和搜索的客户端、服务器和基于Web的方面,并且提供了补充本文提供的公开内容的信息。例如,本部分的一些部分描述了搜索应用程序状态的方法,这补充了本文提供的公开内容,例如与创建和使用深层链接相关的内容(如下文参考方法600和800所述)。
应用内搜索的客户端、服务器和Web方面的简明摘要
描述了使用多个应用程序状态执行搜索的设备的方法和装置。在示例性实施方案中,设备从在设备上运行的多个应用程序接收多个应用程序状态。设备还创建多个应用程序状态的索引。另外,设备接收用于搜索存储在设备上的数据的查询。此外,设备使用索引和查询来搜索多个应用程序状态。设备另外确定该查询与多个应用程序状态中的一个应用程序状态的匹配情况,并返回该匹配应用程序状态的匹配情况。
在另一个实施方案中,设备使用设备上的多个应用程序状态来执行查询。在该实施方案中,设备使用存储在设备上的索引来执行查询。设备还接收与查询匹配的多个结果。此外,设备确定与对应于安装在设备上的本机应用程序的应用程序状态相对应的多个结果的子集。此外,设备针对多个结果的子集中的每个结果呈现该结果以及对应于该结果的本机应用程序的表示。
在另一实施方案中,设备选择用于多设备搜索的应用程序状态。在该实施方案中,设备在设备上检测是否已经将应用程序状态选择为在该设备上进行设备级搜索的查询结果。设备还向服务器传输应用程序状态,其中应用程序状态将与来自其他设备的其他应用程序状态一起被编入索引。
在另一个实施方案中,设备使用从第二设备接收到的应用程序状态来执行对第一设备的搜索。在该实施方案中,设备从在多个设备上运行的多个应用程序接收多个应用程序状态。设备还创建多个应用程序状态的索引。设备另外接收用于搜索存储在设备上的数据的查询。另外,设备使用索引和搜索查询来搜索多个应用程序状态,并返回匹配的应用程序状态的匹配情况。
在另一个实施方案中,设备执行搜索。在该实施方案中,设备向服务器传输查询并接收与查询匹配的多个结果。设备还确定多个结果的子集,该子集包括在另一设备上生成的应用程序状态,该应用程序状态对应于安装在该设备上的本机应用程序状态。另外,设备针对多个结果的子集中的每个结果呈现本机应用程序的链接和表示。
在另一个实施方案中,设备将应用程序状态在搜索查询索引中编入索引。在该实施方案中,从耦接到服务器的另一设备接收应用程序的应用程序状态。设备还生成与应用程序状态对应的应用程序的视图,其中该视图是与应用程序状态对应的应用程序的用户界面的表示。另外,设备将视图在搜索查询索引中编入索引。
在另一个实施方案中,设备检索具有与查询结果相关联的视图的应用程序状态。在该实施方案中,设备向服务器发送查询。设备还从服务器接收查询结果,其中该结果包括与该结果对应的应用程序的应用程序状态的视图,并且该视图是与应用程序状态相对应的应用程序的用户界面的表示。装置另外呈现具有视图的指示的结果。
还描述了其他方法和装置。
应用内搜索的客户端、服务器、Web方面的详细描述
描述了使用多个应用程序状态执行搜索的设备的方法和装置。在以下说明中,阐述了许多具体细节,以提供对本发明的实施方案的彻底解释。然而,对于本领域的技术人员显而易见的是,本发明的实施方案可在不具有这些具体细节的情况下被实施。在其他情况下,尚未详细示出熟知的组件、结构和技术,以免模糊对本说明的理解。
在本说明书中提及“一个实施方案”或“实施方案”是指结合该实施方案描述的特定特征、结构或特性可被包括在本发明的至少一个实施方案中。在本说明书中的各个位置出现短语“在一个实施方案中”不一定都是指同一个实施方案。
在以下描述和权利要求中,可以使用术语“耦接”和“连接”及其派生词。应当理解,这些术语并非意在彼此同义。“耦接”被用于表示可能或可能不彼此直接物理或电接触的两个或更多个元件彼此合作或交互。“连接”被用于表示彼此耦接的两个或更多元件之间通信的建立。
以下附图中所示的过程由处理逻辑执行,该处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(诸如在通用计算机系统或专用机器上运行的软件)或两者的组合。虽然下文按照某些顺序操作来描述这些过程,但应当理解,所述的某些操作可以不同的顺序来执行。此外,某些操作也可并行执行而非按顺序执行。
术语“服务器”、“客户端”和“设备”旨在一般性地指代数据处理系统,而不是具体地指代服务器、客户端和/或设备的特定形状要素。
描述了使用多个应用程序状态执行搜索的设备的方法和装置。如上所述,能够搜索web浏览器的历史是有用的,因为用户具有使用web浏览器的数字例程。该数字例程还可以包括重复访问相同的应用程序,并且使用这些应用程序进行相同类型的操作。如上所述,智能电话用户平均花费 86%的时间来使用非web浏览器应用程序。然而,能够搜索非web浏览器应用程序的历史可能存在困难,因为应用程序的使用历史的数据难以访问 (如果发生的话)并且具有专有格式。因此,应用程序历史难以搜索。
在一个实施方案中,设备生成并存储执行中的应用程序的应用程序状态。设备还将这些应用程序状态编入索引,使得在设备上运行的本地搜索服务可以搜索编入索引的应用程序状态以为查询结果提供服务。在该实施方案中,应用程序状态是应用程序的即时快照。应用程序状态类似于web 浏览器历史。在一个实施方案中,应用程序状态用于非web浏览器应用程序。在一个实施方案中,应用程序的应用程序状态可以包括状态的标题、视图、在该视图中显示的日期、相关联的元数据和/或其他状态信息。例如,在一个实施方案中,应用程序可以是评论类型应用程序,其显示某个地理区域的不同业务和服务的评论。在该实施例中,每个应用程序状态可以是业务或服务的一组评论和相关信息(例如,名称、地址、联系信息、开放时间、该业务或服务的描述、该服务或业务的访问者或用户提交的一组评论和/或与该业务或服务相关联的任何其他类型的信息)。每个应用程序状态可以在一个用户界面页面上显示或跨多个用户页面显示,其中每个页面都是为了显示而组织的内容(在一些实施方案中,每个页面是在特定时间点的应用程序的窗口)。在一个实施方案中,每个执行中的应用程序导出一个或多个应用程序状态,其中设备将应用程序状态在应用程序状态索引中编入索引。
通过将应用程序状态编入索引,用户可以搜索应用程序的历史。这允许用户搜索并查找先前的应用程序状态。通过查找应用程序状态,用户可以使用该应用程序状态启动相应的应用程序,从而使应用程序指出当应用程序导出应用程序状态时应用程序正在执行的位置。用户可以使用编入索引的应用程序状态,以经由用于多个不同应用程序的公共机制将应用程序返回到先前使用的状态。例如,在一个实施方案中,应用程序状态可以具有公交系统的特定路线的公交应用程序的页面。在该实施例中,用户可以在公交应用程序中导航到特定路线,诸如本地公共汽车路线7。通过导航到该特定路线,公交应用程序将该本地公共汽车路线页面的应用程序状态导出到应用程序状态索引。利用该编入索引的应用程序状态,用户可以经由查询来检索该应用程序状态。例如,在一个实施方案中,用户可以在查询中输入“公共汽车路线7”,并且本地公共汽车路线7的应用程序状态将显示为查询结果。在选择该应用程序状态时,公交应用程序将被加载有本地公共汽车路线7的应用程序状态,并且该公交应用程序中的本地公共汽车路线7的页面将被显示给用户。因此,在该实施例中,公交应用程序被采用为与先前执行的状态相同的状态。
在另一个实施方案中,设备可以将应用程序状态导出到远程应用程序状态索引器,该远程应用程序状态索引器可用于支持来自未生成这些应用程序状态的设备的查询。在该实施方案中,设备输出用户已经占用的应用程序状态,其中所占用的应用程序状态是指响应于用户在设备上的查询应用程序状态已被作为查询结果返回,并且该用户已经选择该应用程序状态。另外,设备通过在导出应用程序状态之前移除私人信息来清理应用程序状态。如果远程应用程序状态索引器已经接收到该应用程序状态必要的次数,则远程应用程序状态索引器接收该应用程序状态并将该应用程序状态编入索引。在该实施方案中,通过在必要的次数之后将应用程序状态编入索引,该应用程序状态已经被众包,使得许多不同的用户和/或设备在本地搜索中已经占用该应用程序状态。在一个实施方案中,需要一定数量的应用程序状态占用增加了该应用程序状态对其他用户有用的可能性。一旦编入索引,远程搜索服务可以搜索远程应用程序状态索引以确定是否存在与查询匹配的应用程序状态。对于每个匹配,远程搜索服务将匹配的应用程序状态返回给客户端。在客户端上,用户可以选择其中相应的应用程序被启动并且使应用程序指出当应用程序导出应用程序状态时应用程序正在执行的位置的应用程序状态。
在另一个实施方案中,设备生成不同应用程序状态的应用程序状态视图。在该实施方案中,应用程序状态视图是对应于该应用程序状态的应用程序的用户界面的表示。例如,在一个实施方案中,可以访问业务和服务的数千条或数百万条评论的内容的评论类型应用程序可以具有针对数千条或数百万条评论中的每一条的视图。这些视图可以用于预览应用程序状态,并且一般还可以用于预览应用程序。在一个实施方案中,这些应用程序状态视图可以用于预览在一组查询结果中返回的应用程序状态,或者一般可以用于预览应用程序。在一个实施方案中,收集一个应用程序的多个应用程序状态视图可用于在应用程序存储中预览该应用程序。例如,在一个实施方案中,评论类型应用程序可以具有可用于该应用程序的数十个应用程序状态视图。
图41_1是将应用程序状态编入索引以在本地设备搜索索引中使用的系统的一个实施方案的框图。在图41_1中,设备41_100包括耦接到应用程序状态索引器41_104的多个应用程序41_102。在一个实施方案中,设备 41_100是可以与另一设备(例如,个人计算机、膝上型电脑、服务器、移动设备(例如,电话、智能电话、智能手表、个人游戏设备等)、其他网络元件等)通信网络数据的任何类型的设备。在一个实施方案中,设备 41_100可以是虚拟机,或者可以是托管一个或多个虚拟机的设备。在一个实施方案中,设备41_100另外包括应用程序状态搜索索引41_108。在一个实施方案中,应用程序41_102中的每一个是在该应用程序正在运行时通过一系列状态进行的执行程序。例如,在一个实施方案中,应用程序41_102 可以是文字处理应用程序、电子表格、联系人、邮件、电话、web浏览器、媒体播放器、评论应用程序、分类广告应用程序、社交网络、效率、实用程序、游戏、房地产、照片、视频、电子商务、店面、优惠券、操作系统和/或可以在设备上运行的任何其他类型的应用程序。
如上所述,应用程序41_102中的每一个在该应用程序正在执行时通过一系列状态进行。在一个实施方案中,这些应用程序状态中的一个应用程序状态是应用程序的即时快照。在一个实施方案中,应用程序41_102的应用程序状态可以包括标题、用户界面状态、在该用户界面中显示的数据、相关联的元数据和/或状态的其他状态信息。在另一个实施方案中,应用程序状态包括描述状态如何在搜索结果中呈现的信息。例如,在一个实施方案中,应用程序41_102可以是评论类型应用程序,其显示某个地理区域的不同业务和服务的评论。在该实施例中,每个应用程序状态可以是业务或服务的一组评论和相关信息(例如,名称、地址、联系信息、开放时间、该业务或服务的描述、该服务或业务的访问者或用户提交的一组评论和/或与该业务或服务相关联的任何其他类型的信息)。在一个实施方案中,在评论类型应用程序的情况下,应用程序状态标题是针对该应用程序状态给出的标题,诸如该业务或服务的名称。应用程序状态的用户界面状态可以是对应于该应用程序状态的应用程序41_102的用户界面的表示。在该实施方案中,用户界面状态可以包括用户界面的以下表示:用户界面滚动到用户界面的位置、用户界面的哪个组件是活动的、应用程序可能处于何种模式(例如,应用程序41_102可以具有用于向用户呈现信息的不同模式)。在一个实施方案中,应用程序可能足够小以包括标题加统一资源定位符或应用程序标识符以及与该状态兼容的应用程序版本号。
在一个实施方案中,每个应用程序状态包括标题、可搜索数据和/或元数据以及特定于应用程序的不透明数据。在该实施方案中,可搜索数据和/ 或元数据是这样的数据:其由应用程序41_102指定为可由搜索索引服务和/ 或查询搜索服务访问的数据,其中该可搜索数据和/或元数据可用于将应用程序状态编入索引,并且还可用于作为查询结果返回应用程序状态。例如,在一个实施方案中,可搜索数据和/或元数据可以是应用程序状态中的内容(例如,应用程序状态标题、在用户界面状态中显示的内容、媒体数据、位置数据、时间数据,或者可以用于搜索索引的任何其他类型的数据或元数据)。在一个实施方案中,特定于应用程序的不透明数据是用于将应用程序返回到其先前状态的特定于应用程序的数据,并且可以是或可以不是可搜索的数据。在该实施方案中,通过相应的应用程序41_102加载应用程序状态将该应用程序返回到应用程序状态。例如,在一个实施方案中,特定于应用程序的不透明数据可以包括用户界面状态、用户界面模式和/或对资源的引用。用户界面模式可以是用户当前面向使用的模式类型。例如,在一个实施方案中,文字处理程序可以是草案布局视图或打印布局视图;并且图像编辑程序可以处于库模式、图像编辑模式或打印模式。在一个实施方案中,所引用的资源可以是被查看或编辑的字段、可以在设备上或另一设备(诸如,网络中的服务器)上的资源的统一资源定位符。在一个实施方案中,作为应用程序状态的一部分的数据可以成对(键、值) 存在于词典中。
在一个实施方案中,应用程序41_102中的一个或多个各自将一个或多个应用程序状态导出到应用程序状态索引器41_104。在该实施方案中,应用程序41_102可以各自将应用程序状态导出到固定或可变的时间表上。例如,在一个实施方案中,在与用户进行一个或多个交互或者一些其他度量之后,应用程序41_102可以基于固定时间导出应用程序状态、导出每个新用户界面状态的应用程序状态。又如,在另一个实施方案中,评论应用程序可以导航到新的评论或评论搜索。在该实施例中,通过导航到新的评论或评论搜索,新的视图被生成,并且新的应用程序状态被创建并被导出到应用程序状态索引器41_104。应用程序状态索引器接收应用程序状态,并将应用程序状态添加到应用程序索引41_108。通过将应用程序状态添加到索引,新的应用程序状态可用于本地搜索服务,以与本地搜索服务接收到的查询匹配。在另一个实施方案中,应用程序状态可以被导出到远程搜索应用程序状态索引41_108,其在下图41_6-11中描述。
图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中存在一个或多个应用程序状态的查询匹配,则本地搜索服务41_208将包括这些一个或多个应用程序状态的一组结果返回到应用程序41_204。应用程序 41_204显示排名结果。如果显示的排名结果中的一个结果是应用程序状态,则应用程序可以显示应用程序的图标、应用程序状态标题和应用程序状态摘要。在一个实施方案中,在选择所显示的应用程序状态时,对应于该应用程序状态的应用程序被加载有该应用程序状态。在该实施方案中,通过使应用程序加载有应用程序状态,应用程序被加载到对应于该应用程序状态的执行状态。例如,在一个实施方案中,如果应用程序状态是优惠券应用程序的特定优惠券(例如,周末租赁汽车5折!),则优惠券应用程序被加载有该应用程序状态,并且应用程序状态显示特定优惠券,犹如用户已经导航到该优惠券一样。
图41_3是在其他查询结果之间显示应用程序状态查询结果的用户界面的实施方案的框图。在图41_3中,示出了在设备上显示应用程序状态的三个不同的可能用户界面41_300A-C。在一个实施方案中,用户界面 41_300A包括搜索输入41_302、应用程序状态显示41_314A、其他动作41_310A和屏幕键盘41_312A。在一个实施方案中,搜索输入41_302A用于输入设备的用户的查询。在该实施方案中,可以输入部分或整个查询并将其发送到本地搜索服务,以便确定一组或多组查询结果。在一个实施方案中,查询的结果返回为输入搜索的一个或多个字符。此外,应用程序状态显示41_314A包括应用程序图标41_304A、应用程序状态标题41_306A 和应用程序状态摘要41_308A。在一个实施方案中,应用程序图标 41_304A是表示与应用程序状态相对应的应用程序的图标。在该实施方案中,应用程序图标41_304A可以是从查询返回的或基于应用程序状态中存储的信息来检索的应用程序状态的一部分。在一个实施方案中,应用程序状态标题41_306A是在应用程序状态下存储的应用程序状态的标题。此外,应用程序状态摘要41_308A是应用程序状态的摘要。例如,在一个实施方案中,应用程序状态摘要41_308A包括应用程序状态的描述,诸如对应用程序状态的内容的描述。在该实施例中,应用程序状态摘要41_308A 可以向用户指示与应用程序状态相关联的内容。
在一个实施方案中,除了显示包括应用程序状态41_314A的查询结果之外,用户界面41_300A还可以包括其他动作41_310A。例如,在一个实施方案中,其他动作41_310A可以包括用于使用该查询搜索网络或者使用该查询搜索在线百科全书的链接。用户界面41_300A还可以包括用户输入搜索查询所使用的屏幕键盘41_312A。或者,可以经由其他方式(例如,经由耦接到设备的麦克风,通过耦接到该设备的另一设备,诸如耦接到便携式设备的智能手表)来输入查询。在一个实施方案中,图标41_304A可以是由应用程序提供的特定于应用程序状态的图像缩略图。此外,图标 41_304A也可以是视频或视频预览。在另一实施方案中,应用程序状态摘要可以包括“动作”按钮,诸如“电话呼叫”图标、“播放”、“方向”、“购买”。
在一个实施方案中,存在可以显示为查询结果的许多不同类型的应用程序状态。例如,在一个实施方案中,应用程序状态可以具有公交系统的特定路线的公交应用程序的视图。在该实施例中,用户可以在公交应用程序中导航到特定路线,诸如本地公共汽车路线7。通过导航到该特定路线,公交应用程序将该本地公共汽车路线视图的应用程序状态导出到应用程序状态索引。通过该已编索引的应用程序状态,用户可以经由查询来检索该应用程序状态。例如,在一个实施方案中,用户可以在查询中输入“公共汽车路线7”,并且本地公共汽车路线7的应用程序状态将显示为查询结果。在选择该应用程序状态时,公交应用程序将被加载有本地公共汽车路线7的应用程序状态,并且该公交应用程序中的本地公共汽车路线7的用户界面将被显示给用户。因此,在该实施例中,公交应用程序被采用为与先前所看到的状态相同的状态。
又如,在另一个实施方案中,用户可以使用食品配送应用程序,并且用户只想再订购他们之前的订单之一。在该实施例中,用户可以使用特定于本地餐馆的应用程序从本地餐馆订购越南粉。在这个订单中,当地餐馆应用程序将导出与越南粉订单对应的应用程序状态。该应用程序状态将被本地搜索服务编入索引并访问。用户可以稍后输入查询“越南粉”、“越南餐馆”或本地餐馆的名称,并且与该订单对应的应用程序状态可以是其中一个结果。此应用程序状态也可以是此结果的最高命中。在选择此应用程序状态时,本地餐馆应用程序将被启动并显示之前的越南粉订单,这样用户可以完成该越南粉的订单。
在另一示例和实施方案中,用户可以维护图像板来规划他们的下一次旷野之旅。在该实施例中,用户使用图像板应用程序来链接关于该下一行程的图片和评论。用户将使用图像板应用程序回到该特定图像板,以便从设备的剪贴板添加链接。图像板应用程序将导出图像板的针对旷野之旅的该应用程序状态,该应用程序状态将由本地搜索服务提供。通过搜索该应用程序状态,诸如旅行地点的名称,用户可以通过查询快速到达图像板应用程序内的该旷野之旅图像板,而不是启动图像板应用程序并导航到该特定图像板视图。
在一个实施方案中,可以使用保存应用程序状态来快速访问可能难以导航到的实用程序的特定视图。例如,在一个实施方案中,设备设置应用程序可以具有许多级别的多种选项。在该实施例中,用户可以进入设置应用程序中的电池使用页面,以查看哪个应用程序正在消耗大部分电池。电池使用页面可能是四级或更多级别,因此难以访问。通过为设置应用程序的电池使用页面导出应用程序状态,用户可能能够输入查询“电池使用率”、“电池”、“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可以包括本地搜索索引中的与“电池”一词匹配的对象索引,与“电池”一词匹配的其他应用程序状态,或者与“电池”一词匹配的本地或远程搜索索引(例如,web搜索索引)的其他匹配查询结果。
如上所述,还可以为在设备上运行的实用应用程序保存应用程序状态。例如,在一个实施方案中,设备的用于配置设备的这些设置应用程序也可以导出应用程序状态。用户界面41_300C是包括设置应用程序的应用程序状态的查询结果的示例。在图41_3中,用户界面41_300C、搜索输入 41_302C与应用程序状态41_314B、其他动作41_310C以及屏幕键盘41_312C一起显示。在一个实施方案中,搜索输入41_302C和屏幕键盘 41_312C与上文针对用户界面41_300A所述的相同。此外,应用程序状态 41_314C包括应用程序图标41_304B、设置应用程序的组件(例如,电池使用率)的应用程序状态标题41_306C以及设置应用程序的组件(电池使用率)的应用程序状态摘要41_308C。
如上所述,为了使本地搜索服务可访问应用程序状态,将应用程序状态添加到本地搜索服务可访问的索引。图4A是用于索引从设备上多个不同应用程序接收的应用程序状态的过程41_400的一个实施方案的流程图。在一个实施方案中,过程41_400由应用程序状态索引器(诸如应用程序状态索引器41_104)执行,如上文在图41_1中所述。在图4A中,过程41_400 始于在框41_402处从设备上的多个应用程序接收多个应用程序状态。例如,在一个实施方案中,过程41_400可以从各种应用程序(诸如文字处理应用程序、电子表格、联系人、邮件、电话、web浏览器、媒体播放器、评论应用程序、分类广告应用程序、社交网络、效率、实用程序、游戏、房地产、照片、视频、电子商务、店面、优惠券、操作系统和/或可以在设备上运行的任何其他类型的应用程序)接收应用程序状态。在一个实施方案中,应用程序可以同时、串行地和/或以其组合将应用程序状态发送到过程41_400。在框41_404处,对于过程41_400接收的每个应用程序状态,过程41_400将这些应用程序状态添加到应用程序状态索引。在一个实施方案中,过程41_400通过向搜索索引数据结构添加应用程序状态标识符、可索引文本、应用程序标识符和/或插入时间来向应用程序状态索引添加应用程序状态(例如,倒排索引和完成尝试)。
通过向应用程序状态索引添加多个应用程序状态,这些索引应用程序状态可用于本地搜索服务的查询搜索。图4B是使用应用程序状态索引确定查询的查询结果的过程450的一个实施方案的流程图。在一个实施方案中,过程450由本地搜索服务执行,以使用应用程序状态索引确定查询的查询结果,诸如在上文的图41_2中所述的本地搜索服务41_208。在图4B 中,过程450始于在框452处接收查询。在一个实施方案中,查询是由用户在应用程序中输入并发送到过程450的搜索字符串。在一个实施方案中,输入可以通过文本、说出词语、自动生成的和/或输入查询前缀的一些其他方式来输入。例如,在一个实施方案中,用户可以在web浏览器或文件浏览器中输入查询。在框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处向本地搜索服务发送查询。在一个实施方案中,查询可以是由用户在应用程序中输入并发送到本地搜索服务的搜索字符串。在该实施方案中,输入可以通过文本、说出词语、自动生成的、从耦接的设备(例如,耦接到便携式设备的智能手表)接收的和/或输入搜索字符串的一些其他方式来输入。在另一个实施方案中,搜索系统可以建议查询,并且用户可以从多个选择中选出一个查询。或者,可以从上下文中提取查询。例如,在一个实施方案中,用户正在阅读文本消息并进行搜索,查询由数据检测系统提取并向用户自动发出或建议。此外,可以通过跟随来自另一应用程序的链接来发出查询。在框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中的每一个将一个或多个应用程序状态41_612 导出到应用程序状态模块41_604。在该实施方案中,如在上文的图41_1至图41_5中所述,应用程序状态模块41_604将应用程序状态搜索索引 41_608中的接收到的应用程序状态编入索引。在另一个实施方案中,这些应用程序状态可被发送到远程应用程序状态索引器41_610。通过将应用程序状态发送到远程应用程序状态索引器41_610,可以使这些应用程序状态可用于支持来自未示出的其他设备的查询。因此,在该实施方案中,响应于由不生成这些应用程序状态的设备发送的查询,可将来自在多个设备上运行的多个应用程序的已编索引的应用程序状态用于查询结果。
在一个实施方案中,本地编入索引的每个应用程序状态也可以被导出到远程应用程序状态索引器41_610。在该实施方案中,可以生成数千或数百万个应用程序状态并将其发送到远程应用程序状态索引器41_610。然而,随着这许多的应用程序状态被导出和编入索引,这可能会创建一个过大和/或具有许多无用虚假条目的应用程序状态索引。此外,导出的应用程序状态中的一些或全部可能包括不希望包括在已编索引的应用程序状态 41_614中的私人信息。
在一个实施方案中,如果已在设备上占用应用程序状态,则应用程序状态模块41_604将这些应用程序状态导出到远程应用程序状态索引器 41_610。在该实施方案中,为了占用应用程序状态,应用程序状态模块响应于用户在设备上的查询来确定该应用程序状态是否已作为查询结果返回,并且确定该用户是否已选择该应用程序状态。在一个实施方案中,占用应用程序状态意味着用户已将查询发送到本地搜索服务,该本地搜索服务已经以一组查询结果的形式返回了该应用程序状态,并且用户已经选择或查看了该应用程序状态。在一个实施方案中,占用应用程序状态向应用程序状态模块41_604指示该特定应用程序状态可能比由设备41_600生成的其他应用程序状态更重要。对于每个已占用的应用程序状态,应用程序状态模块41_604将该应用程序状态导出到远程应用程序状态索引器 41_610。
在另一个实施方案中,在将已占用的应用程序状态导出到远程应用程序状态索引器41_610之前,应用程序状态模块41_604通过移除可处于该应用程序状态的任何可能的私人信息来清理应用程序状态。在一个实施方案中,该应用程序状态可以包括私人信息,诸如用户名、私人联系信息、位置、访问时间、社会安全号码、银行帐号和/或可处于该应用程序状态的任何其他类型的私人信息。在一个实施方案中,创建该应用程序状态的应用程序可将在该应用程序状态下存储的某些信息标记为私人的。在另一个实施方案中,设备可以向该应用程序状态添加私人信息。或者,应用程序状态模块41_604可知道某些信息是私人的,无论该信息是否被标记为私人的。在这些实施方案的任一个中,应用程序状态模块41_604将移除该私人信息。
在一个实施方案中,远程应用程序状态索引器41_610从多个设备 41_600接收应用程序状态。远程应用程序状态索引器41_610可以从几个设备或多达数千或数百万个设备接收应用程序状态。另外,在一个实施方案中,远程应用程序状态索引器41_610维护两组应用程序状态。一组应用程序状态是已编索引的应用程序状态41_614。这些是已经被编入索引并可供搜索服务使用的一组应用程序状态。另一组应用程序状态是未编索引的应用程序状态41_616。在一个实施方案中,一旦应用程序状态已由一个或多个设备占用必要次数,则远程应用程序状态索引器41_610将应用程序状态添加到应用程序状态的索引组。例如,在一个实施方案中,如果应用程序状态被占用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_704。或者,应用程序41_704可以将查询发送到远程应用程序搜索服务41_714,该远程应用程序搜索服务又将该组查询结果发送回到应用程序41_704。
如上所述,远程应用程序状态搜索服务41_714从设备41_702接收查询,并将该查询的一组查询结果返回给设备41_702。在一个实施方案中,远程应用程序状态搜索服务41_714接收搜索索引应用程序状态41_712的查询,以获得与所接收的查询匹配的应用程序状态,对匹配的应用程序状态中的每一个进行评分,对该组结果进行排名,并将经排名的结果返回给应用程序。应用程序41_704显示包括该应用程序状态的结果。在一个实施方案中,应用程序41_704显示如上文在图41_3中所述的应用程序的图标、应用程序状态标题和应用程序状态摘要。在选择所显示的应用程序状态后,应用程序被加载有该应用程序状态。在一个实施方案中,如果该应用程序状态本地存储在该设备上,则应用程序处于与如同在用户已经占用了该应用程序状态的情况下应用程序所处的状态相同的状态。
图41_8是将应用程序状态添加至应用程序状态索引的过程41_800的一个实施方案的流程图。在一个实施方案中,过程41_800由应用程序状态导出器模块执行以将应用程序状态添加到应用程序状态索引,诸如,如上文在图41_6中所述的应用程序状态导出器模块41_606。在图41_8中,过程41_800始于在框41_802处接收应用程序状态。在一个实施方案中,由过程41_800从正在执行过程41_800的设备上运行的一个或多个应用程序接收应用程序状态。在框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_6中,过程 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个客户端向过程900 发送应用程序状态的1/M。在该实施例中,由于应用程序状态生成相同的应用程序状态散列,所以这是相同的应用程序状态。这意味着应用程序状态的这些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的框处确定查询的一组结果。在一个实施方案中,该组结果包括与查询中的一些或全部文本匹配的一个或多个应用程序状态。在框41_1008处,过程41_1000对该组结果进行排名。在一个实施方案中,过程41_1000通过确定结果中每一个的得分并使用这些得分对这些结果进行排名来对该组结果进行排名。在框41_1010处,过程41_1000将一组结果与来自其他搜索域的结果组合。在一个实施方案中,如果搜索是联合搜索,其中使用相同的查询来搜索不同的索引,则过程41_1000将来自其他搜索域的结果与使用应用程序状态索引确定的该组结果组合。例如,在一个实施方案中,查询可用于搜索应用程序状态索引、一般Web搜索索引和/或不同索引(例如,媒体索引、应用程序存储索引、地图索引、在线百科全书索引和/或另一种类型的索引)。在框 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为这些应用程序状态中的每一个生成视图。在一个实施方案中,应用程序状态的视图是对应于该应用程序状态的应用程序的用户界面的表示。例如,在一个实施方案中,用户界面可以包括文本、图像、视频、音频、动画、图形和/或其他类型的用户界面组件。在该实施例中,对应视图是用户界面的二维表示。在一个实施方案中,一个应用程序可以具有基于与该应用程序相关联的不同应用程序状态生成的许多不同视图。例如,在一个实施方案中,可以访问业务和服务的数千条或数百万条评论的内容的评论类型应用程序可具有针对数千条或数百万条评论中的每一条的视图。在下面的图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的视图是二维图像,诸如GIF、JPEG、PNG和/或另一类型的二维图像。在该实施例中,该视图的二维图像可以与该应用程序状态一起存储在应用程序状态索引中。
图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可以为一个或多个应用程序生成多个视图。这些视图可以用于预览应用程序状态,并且一般还可以用于预览应用程序。在一个实施方案中,这些应用程序状态视图可以用于预览在一组查询结果中返回的应用程序状态,或者一般可以用于预览应用程序。在下面的图41_15中进一步描述了使用具有查询的视图。在一个实施方案中,收集一个应用程序的多个应用程序状态视图可用于预览该应用程序。例如,在一个实施方案中,评论类型应用程序可以具有可用于该应用程序的数十个应用程序状态视图。对于对此评论类型应用程序感兴趣的人(例如,在应用程序商店中查看该应用程序的人),可以使这些应用程序状态视图可用,以便用户可以在购买和/或下载该应用程序之前预览该应用程序。在该实施例中,用户可以向前和向后浏览数十个视图,以了解应用程序的外观。
图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检索并显示该应用程序状态视图。
用于应用内搜索的客户端、服务器、Web方面的示例性机器可读介质、方法和系统
在一个方面,提供了使用多个应用程序状态执行搜索的设备的方法和装置。在示例性实施方案中,设备从在设备上运行的多个应用程序接收多个应用程序状态。设备还创建多个应用程序状态的索引。另外,设备接收用于搜索存储在设备上的数据的查询。此外,设备使用索引和查询来搜索多个应用程序状态。设备另外确定该查询与多个应用程序状态中的一个应用程序状态的匹配情况,并返回该匹配应用程序状态的匹配情况。
在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以使用多个应用程序状态执行搜索,该方法包括:从在设备上运行的多个应用程序接收多个应用程序状态;创建多个应用程序状态的索引,该索引存储在设备上;接收用于搜索存储在设备上的数据的查询;使用所述索引和查询来搜索多个应用程序状态;确定该查询与多个应用程序状态中的一个应用程序状态的匹配情况,并返回该匹配应用程序状态的匹配情况。在一些实施方案中,多个应用程序状态中的每一个包括表示针对该应用程序状态的应用程序的即时快照的数据。在一些实施方案中,存在针对多个应用程序中的一个应用程序的多个应用程序状态。在一些实施方案中,除了搜索多个应用程序状态之外,该查询用于搜索存储在设备上的文件。在一些实施方案中,多个应用程序状态中的一个应用程序状态包括用户界面信息,其表示由多个应用程序中对应的一个应用程序使用的用户界面数据的视图位置。
在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以使用多个应用程序状态执行查询,该方法包括:使用存储在设备上的索引对设备执行查询;接收与该查询匹配的多个结果;确定与对应于安装在设备上的本机应用程序的应用程序状态对应的所述多个结果的子集;并且针对所述多个结果的子集中的每个结果呈现该结果以及对应于该结果的本机应用程序的表示。
在另一方面,提供了选择用于多设备搜索的应用程序状态的设备的方法和装置。在该实施方案中,设备在设备上检测是否已经将该应用程序状态选择为在该设备上进行设备级搜索的查询结果。设备还向服务器传输该应用程序状态,其中该应用程序状态将与来自其他设备的其他应用程序状态一起被编入索引。在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以选择用于多设备搜索的应用程序状态,该方法包括:在设备上检测是否已经将该应用程序状态选择为在该设备上进行设备级搜索的查询结果;以及向服务器传输该应用程序状态,其中该应用程序状态与来自其他设备的其他应用程序状态一起被编入索引。
在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以使用从第二设备接收的应用程序状态执行对第一设备的搜索,该方法包括:从在多个设备上运行的多个应用程序接收多个应用程序状态;创建多个应用程序状态的索引;接收用于搜索存储在设备上的数据的查询;使用所述索引和搜索查询来搜索多个应用程序状态;确定该搜索查询与多个应用程序状态中的一个应用程序状态的匹配情况,并返回该匹配应用程序状态的匹配情况。在一些实施方案中,创建索引包括:如果一个应用程序状态被接收到的次数满足阈值,则将多个应用程序状态中的该应用程序状态添加到索引。在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以用于执行搜索,该方法包括:从设备向服务器传输查询;接收与查询匹配的多个结果;确定所述多个结果中每个结果包括在另一设备上生成的与安装在所述设备上的本机应用程序对应的应用程序状态的子集;并且针对所述多个结果的子集中的每个结果呈现本机应用程序的链接和表示。
在又一方面,提供了将应用程序状态在搜索查询索引中编入索引的设备的方法和装置。在该实施方案中,从耦接到服务器的另一设备接收应用程序的应用程序状态。设备还生成与该应用程序状态对应的应用程序的视图,其中该视图是与该应用程序状态对应的应用程序的用户界面的表示。另外,设备将该视图在搜索查询索引中编入索引。在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以将应用程序状态在搜索查询索引中编入索引,该方法包括:使用服务器从耦接到该服务器的设备接收应用程序的应用程序状态;生成与该应用程序状态对应的应用程序的视图,其中该视图是与该应用程序状态对应的应用程序的用户界面的表示;并且将该视图在搜索查询索引中编入索引。在一些实施方案中,还包括:将该视图链接到该应用程序状态的索引条目。在一些实施方案中,索引条目是索引的一部分,其中索引包括针对来自耦接到服务器的多个设备的多个应用程序,其应用程序状态的多个索引条目。在一些实施方案中,应用程序状态包括表示针对该应用程序状态的应用程序的即时快照的数据。在一些实施方案中,索引条目包括选自标题、可搜索数据和特定于应用程序的不透明数据的信息。在一些实施方案中,视图是图像。在一些实施方案中,视图是具有多个帧的图像。在一些实施方案中,生成包括:在虚拟设备上执行应用程序;以及捕获与应用程序状态对应的应用程序的用户界面的屏幕图像。在一些实施方案中,生成包括:用应用程序状态模拟应用程序;以及捕获与应用程序状态对应的应用程序的用户界面的屏幕图像。
在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以检索具有与查询结果相关联的视图的应用程序状态,该方法包括:向服务器发送查询;从服务器接收查询结果,其中该结果包括与该结果对应的应用程序的应用程序状态的视图,并且该视图是与应用程序状态相对应的应用程序的用户界面的表示;并且呈现具有视图的指示的结果。在一些实施方案中,还包括:响应于用户的手势呈现视图。
示例性电子设备的功能框图
根据一些实施方案,图42示出根据各种所述实施方案的原理进行配置的电子设备4200的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图42中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备 4200被实现为便携式多功能设备100(图1A至图1B)。
如图42所示,电子设备4200包括被配置为显示信息的显示单元4201 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4203(例如,图1A的显示控制器156和触敏显示器系统 112),以及与显示单元4201和触敏表面单元4203耦接的处理单元4205。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图42示出了与电子设备4200集成的显示单元4201和触敏表面单元4203,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括执行单元(例如,图42的执行单元4207)、收集单元(例如,图42的收集单元4209)、获取单元 (例如,图42的获取单元4211)、关联单元(例如,图42的关联单元 4213)、提供单元(例如,图42的提供单元4215)、发送单元(例如,图 42的发送单元4217)、接收单元(例如,图42的接收单元4219)、显示单元(例如,图42的显示单元4221)、检测单元(例如,图42的检测单元4223)、执行单元(例如,图42的执行单元4225)、确定单元(例如,图42的确定单元4227)和监视单元(例如,图42的监视单元4229)。
在一些实施方案中,处理单元4205(或其一个或多个部件,诸如单元 1007至1029)被配置为:响应于来自电子设备的用户的指令,在电子设备上(例如,利用执行单元4207)执行应用程序;在执行应用程序时,(例如,利用收集单元4209)收集使用数据,该使用数据至少包括用户在应用程序内执行的一个或多个动作;在无人为干预的情况下,(例如,利用获取单元4211)自动基于收集的使用数据获取至少一个触发条件;(例如,利用关联单元4213)将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作关联;并且在确定已经满足所述至少一个触发条件时,(例如,利用提供单元4215)向用户提供指示,指示与触发条件相关联的特定动作可用。在电子设备4200的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4207至4229)被进一步配置为执行以上在“发明内容”部分中所描述的A2至A22的任一者中的方法。
根据一些实施方案,图43示出根据各种所述实施方案的原理进行配置的电子设备4300的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图43中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备 4300被实现为便携式多功能设备100(图1A至图1B)。
如图43所示,电子设备4300包括被配置为显示信息的显示单元4301 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4303(例如,图1A的显示控制器156和触敏显示器系统112),以及与显示单元4301和触敏表面单元4303耦接的处理单元4305。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图43示出了与电子设备4300集成的显示单元4301和触敏表面单元4303,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括显示单元(例如,图43的显示单元4309)、检测单元(例如,图43的检测单元4307)、检索单元 (例如,图43的检索单元4311)、填充单元(例如,图43的填充单元 4313)、滚动单元(例如,图43的滚动单元4315)、显现单元(例如,图 43的显现单元4317)、选择单元(例如,图43的选择单元4319)、接触单元(例如,图43的接触单元4321)、接收单元(例如,图43的接收单元4323)和执行单元(例如,图43的执行单元4325)。
在一些实施方案中,处理单元4305(或其一个或多个部件,诸如单元 4307至4329)被配置为:(例如,利用检测单元4307和/或触敏表面单元 4303)检测触敏显示器上来自电子设备用户的搜索激活手势;响应于检测到搜索激活手势,在触敏显示器上(例如,利用显示单元4309和/或显示单元4301)显示搜索界面,该搜索界面包括:(i)搜索入口部分;以及(ii)在搜索入口部分处接收到任何用户输入前显示的预测部分,预测部分由以下一项或多项填充:(a)用于联系多个之前联系人员中某个人员的至少一个示能表示,(例如,通过选择单元4319)至少部分地基于当前时间从所述多个之前联系的人员中自动选择该人员,以及(b)用于在电子设备上可用的多个应用程序的某个应用程序中执行预测的动作的至少一个示能表示,(例如,通过选择单元4319)至少部分地基于与电子设备用户相关联的应用程序使用历史来自动选择预测的动作。在电子设备4300的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4307至4325)被进一步配置为执行以上在“发明内容”部分中所描述的C2至C18的任一者中的方法。
根据一些实施方案,图44示出根据各种所述实施方案的原理进行配置的电子设备4400的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图44中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备 4400被实现为便携式多功能设备100(图1A至图1B)。
如图44所示,电子设备4400包括被配置为显示信息的显示单元4401 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4403(例如,图1A的显示控制器156和触敏显示器系统 112),以及与显示单元4401和触敏表面单元4403耦接的处理单元4405。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图44示出了与电子设备4400集成的显示单元4401和触敏表面单元4403,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括检测单元(例如,图44的检测单元4407)、显示单元(例如,图44的显示单元4409)、检索单元 (例如,图44的检索单元4411)、搜索模式进入单元(例如,图44的搜索模式进入单元4412)、填充单元(例如,图44的填充单元4413)、获取单元(例如,图44的获取单元4415)、确定单元(例如,图44的确定单元4417)和选择单元(例如,图44的选择单元4419)。
处理单元4405(或其一个或多个部件,诸如单元4407至4419)被配置为:在显示单元(例如,显示单元4401)上(例如,利用显示单元4409 和/或显示单元4401)显示与正在电子设备上执行的应用程序相关联的内容;通过触敏表面单元(例如,触敏表面单元4403)并(例如,利用检测单元4407和/或触敏表面单元4403)检测轻扫手势,当检测到该手势时,将使电子设备进入不同于该应用程序的搜索模式;响应于检测到轻扫手势,(例如,利用搜索模式进入单元4411)进入搜索模式,搜索模式包括显示单元(例如,显示单元4407)上显示的搜索界面;结合进入搜索模式,至少部分地基于与该内容相关联的信息(例如,利用确定单元4417) 确定至少一个建议的搜索查询;并且在搜索界面处接收到任何用户输入之前,使用所述至少一个建议的搜索查询并(例如,利用填充单元4413)填充显示的搜索界面。在电子设备4400的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4407至4419)被进一步配置为执行以上在“发明内容”部分中所描述的D2至D16的任一者中的方法。
根据一些实施方案,图45示出根据各种所述实施方案的原理进行配置的电子设备4500的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图45中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备 4500被实现为便携式多功能设备100(图1A至图1B)。
如图45所示,电子设备4500包括被配置为显示信息的显示单元4501 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4503(例如,图1A的显示控制器156和触敏显示器系统 112),以及与显示单元4501和触敏表面单元4503耦接的处理单元4505。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图45示出了与电子设备4500集成的显示单元4501和触敏表面单元4503,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括检测单元(例如,图45的检测单元4507)、显示单元(例如,图45的显示单元4509)、填充单元 (例如,图45的填充单元4511)和搜索模式进入单元(例如,图45的搜索模式进入单元4513)。
处理单元4505(或其一个或多个部件,诸如单元1007至1029)被配置为:通过触敏表面单元(例如,触敏表面单元4503)并(例如,利用检测单元4507和/或触敏表面单元4503)检测用户界面上的轻扫手势,其中当检测到轻扫手势时,将使电子设备进入搜索模式;并且响应于检测到轻扫手势,(例如,利用搜索模式进入单元4513)进入搜索模式,并且进入搜索模式包括:在搜索界面内接收到任意用户输入前,使用第一内容项并 (例如,利用填充单元4511和/或显示单元4509和/或显示单元4501)填充与用户界面不同的搜索界面。在一些实施方案中,根据确定用户界面包括与某个应用程序相关联的内容,其中该用户界面不同于包括用于调用应用程序的可选图标的home屏幕,使用第一内容项填充搜索界面包括使用所述至少一个建议的搜索查询并(例如,利用填充单元4511)填充搜索界面,其中该搜索查询至少部分地基于与该应用程序相关联的内容;并且根据确定用户界面与home屏幕的页面相关联,使用第一内容项填充搜索界面包括使用示能表示并(例如,利用填充单元4511)填充搜索界面,该示能表示包括对电子设备当前位置的阈值距离内的至少一个兴趣点的可选描述。在电子设备4500的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4507至4513)被进一步配置为执行以上在“发明内容”部分中所描述的E2的方法。
根据一些实施方案,图46示出根据各种所述实施方案的原理进行配置的电子设备4600的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图46中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备 4600被实现为便携式多功能设备100(图1A至图1B)。
如图46所示,电子设备4600包括被配置为显示信息的显示单元4601 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4603(例如,图1A的显示控制器156和触敏显示器系统 112)、被配置为获得电子设备的定位信息的位置传感器单元4607以及与显示单元4601、触敏表面单元4603和位置传感器单元4607耦接的处理单元4605。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图46示出了与电子设备4600集成的显示单元4601和触敏表面单元4603,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括显示单元 (例如,图46的显示单元4609)、检索单元(例如,图46的检索单元 4611)、确定单元(例如,图46的确定单元4613)、存储单元(例如,图 46的存储单元4615)、识别单元(例如,图46的识别单元4617)、选择单元(例如,图46的选择单元4619)、接收单元(例如,图46的接收单元4621)、提供单元(例如,图46的提供单元4623)和回放单元(例如,图46的回放单元4625)。
处理单元4605(或其一个或多个部件,诸如单元4609至4625)被配置为:在无来自用户的指令情况下,(例如,利用确定单元4613)自动确定电子设备用户位于停留在某个地理位置的车辆内;在确定用户已经离开位于该地理位置的车辆时,(例如,利用确定单元4613)确定从位置传感器单元(例如,位置传感器单元4607)(例如,利用检索单元4621)检索的用于(例如,利用识别单元4617)识别地理位置的定位信息是否满足准确度标准;在(例如,利用确定单元4613)确定定位信息不满足准确度标准时,向用户(例如,利用提供单元4623)提供输入有关地理位置信息的提示;并且响应于提供该提示,(例如,利用接收单元4623)从用户接收关于该地理位置的信息,并将该信息(例如,利用存储单元4615)存储为车辆位置信息。在电子设备4600的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4609至4625)被进一步配置为执行以上在“发明内容”部分中所描述的F2至F16的任一者中的方法。
根据一些实施方案,图47示出根据各种所述实施方案的原理进行配置的电子设备4700的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图47中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备 4700被实现为便携式多功能设备100(图1A至图1B)。
如图47所示,电子设备4700包括被配置为显示信息的显示单元4701 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4703(例如,图1A的显示控制器156和触敏显示器系统 112)、被配置为获得电子设备的定位信息的位置传感器单元4707以及与显示单元4701和触敏表面单元4703耦接的处理单元4705。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图47示出了与电子设备4700集成的显示单元 4701和触敏表面单元4703,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括检测单元(例如,图47的检测单元4709)、显示单元(例如,图47的显示单元4711)、检索单元(例如,图 47的检索单元4713)、确定单元(例如,图47的确定单元4715)、识别单元(例如,图47的识别单元4717)、解锁单元(例如,图47的解锁单元4719)和搜索模式进入单元(例如,图47的搜索模式进入单元 4721)。
处理单元4705(或其一个或多个部件,诸如单元4709至4719)被配置为:在不接收任何来自电子设备用户的指令情况下:使用位置传感器单元(例如,位置传感器单元4707)监测电子设备的地理位置;基于监测的地理位置确定(例如,通过确定单元4715)电子设备在预定类型的兴趣点的阈值距离内;根据确定电子设备在兴趣点的阈值距离内:识别(例如,通过识别单元4717)当前在兴趣点处流行的至少一项活动;检索(例如,通过检索单元4713)关于该兴趣点的信息,包括检索关于至少一项当前在兴趣点处流行的活动的信息;通过触敏表面单元(例如,触敏表面单元 4703)检测(例如,通过检测单元4709和/或触敏表面单元4703)第一输入,第一输入当被检测到时使电子设备进入搜索模式;并且响应于检测到第一输入,进入搜索模式(例如,通过搜索模式进入单元4721),并且进入搜索模式包括在搜索界面处接收到任何用户输入之前,通过显示单元 (例如,显示单元4701)呈现(例如,通过显示单元4711和/或显示单元 4701)包括以下项的示能表示:(i)关于所述至少一项活动的信息,以及(ii) 所述至少一项活动已被确定为当前在兴趣点处流行的活动的指示。在电子设备4700的一些实施方案中,处理单元(或其一个或多个部件,例如单元 4709至4719)被进一步配置为执行如上所述的“摘要”部分中的G2至 G10中的任一方法。
根据一些实施方案,图48示出根据各种所述实施方案的原理进行配置的电子设备4800的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图48中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备4800被实现为便携式多功能设备100(图1A至图1B)。
如图48所示,电子设备4800包括被配置为显示信息的显示单元4801 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4803(例如,图1A的显示控制器156和触敏显示器系统 112)、以及与显示单元4801和触敏表面单元4803耦接的处理单元4805。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图48示出了与电子设备4800集成的显示单元4801和触敏表面单元4803,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括语音通信接收单元(例如,图48的语音通信接收单元4807)、内容项提取单元(例如,图48的内容项提取单元 4809)、可用性确定单元(例如,图48的可用性确定单元4811)、应用程序识别单元(例如,图48的应用程序识别单元4813)、显示单元(例如,图48的显示单元4815)、内容项存储单元(例如,图48的内容项存储单元4817)、反馈提供单元(例如,图48的反馈提供单元4819)、输入检测单元(例如,图48的输入检测单元4821)、应用程序打开单元(例如,图48的应用程序打开单元4823)、填充单元(例如,图48的填充单元 4825)和语音通信分析单元(例如,图48的语音通信分析单元4827)。
在一些实施方案中,处理单元(或其一个或多个部件,诸如单元4807 至4827)被配置为:接收语音通信的至少一部分(例如,通过语音通信接收单元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的一些实施方案中,处理单元被进一步配置为:确定语音通信包括关于第一物理位置的信息;检测输入(例如,通过输入检测单元4821);并且响应于检测到输入,打开(例如,通过应用程序打开单元4823)能够接受位置数据并且用关于第一物理位置的信息填充该应用程序的应用程序。
在电子设备4800的一些实施方案中,该应用程序为地图应用程序,并且使用与第一物理位置有关的信息填充该地图应用程序包括:使用与第一物理位置对应的位置标识符填充该地图应用程序内显示的地图。
在电子设备4800的一些实施方案中,处理单元被进一步配置为:确定语音通信包括关于第一物理位置的信息;(例如,通过输入检测单元 4821)检测输入,并且响应于检测到输入,使用关于第一物理位置的信息 (例如,通过填充单元4825)填充搜索界面。
在电子设备4800的一些实施方案中,提取内容项包括分析语音通信的一部分以检测预定类型的内容,并且在通过与电子设备通信的音频系统输出语音通信的时进行分析。
在电子设备4800的一些实施方案中,分析语音通信包括(例如,使用语音通信分析单元4827):(i)将远程设备的远程用户提供的语音转换为文本;(ii)将自然语言处理算法应用于该文本以确定文本是否包括一个或多个预定义的关键字;并且(iii)根据确定文本包括相应的预定义关键字,确定语音通信包括描述内容项的语音。
在电子设备4800的一些实施方案中,接收至少该部分语音通信包括从电子设备用户接收应分析语音通信该部分的指示(例如,指令)。
在电子设备4800的一些实施方案中,该指示对应于硬件按钮的选择。
在电子设备4800的一些实施方案中,该指示对应于来自电子设备用户的命令,包括字词“嘿,Siri”。
在电子设备4800的一些实施方案中,处理单元被进一步配置为:接收语音通信的第二部分,该第二部分包括由远程设备的远程用户提供的语音和由电子设备的用户提供的语音(例如,语音通信是实时电话呼叫,该第二部分包括用户与远程用户之间的讨论)。处理单元被进一步配置为:至少部分地基于由远程设备的远程用户提供的语音和由电子设备的用户提供的语音(例如,使用内容项提取单元)提取第二内容项4809;根据确定第二内容项当前在电子设备上不可用:(i)识别与第二内容项相关联的第二应用程序(例如,通过应用程序识别单元4813),以及(ii)在显示器上显示第二内容项的第二可选描述(例如,通过显示单元4815和/或显示单元 4801)。响应于检测到第二可选描述的选择,处理单元被配置为:(例如,使用内容项存储单元4817)存储第二内容项以通过识别的第二应用程序进行呈现。
在电子设备4800的一些实施方案中,在用户界面内显示可选描述和第二可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话。
根据一些实施方案,图49示出根据各种所述实施方案的原理进行配置的电子设备4900的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图49中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备4900被实现为便携式多功能设备100(图1A至图1B)。
如图49所示,电子设备4900包括被配置为显示信息的显示单元4901 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4903(例如,图1A的显示控制器156和触敏显示器系统 112)、以及与显示单元4901和触敏表面单元4903耦接的处理单元4905。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图49示出了与电子设备4900集成的显示单元4901和触敏表面单元4903,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括语音通信接收单元(例如,图49的语音通信接收单元4907)、内容项提取单元(例如,图49的内容项提取单元 4909)、指示提供单元(例如,图49的指示提供单元4911)、输入检测单元(例如,图49的输入检测单元4913)、应用程序打开单元(例如,图 49的应用程序打开单元4915)、应用程序填充单元(例如,图49的应用程序填充单元4917)、反馈提供单元(例如,图49的反馈提供单元 4919)和语音通信分析单元(例如,图49的语音通信分析单元4921)。
在一些实施方案中,处理单元(或其一个或多个部件,诸如单元4907 至4921)被配置为:接收语音通信的至少一部分(例如,通过语音通信接收单元4907),语音通信的该部分包括由不同于电子设备用户的远程设备的远程用户提供的语音。处理单元被进一步配置为:确定语音通信包括识别物理位置的语音(例如,通过内容项提取单元4909)。响应于确定语音通信包括识别该物理位置的语音,处理单元被配置为:提供已检测到关于该物理位置的信息的指示(例如,通过内容项提取单元4909)。处理单元被进一步配置为:通过触敏表面单元检测输入(例如,通过输入检测单元 4911)。响应于检测到输入,处理单元2506被配置为:(i)打开接受地理位置数据的应用程序(例如,通过应用程序打开单元4913),并且(ii)使用有关物理位置的信息填充该应用程序(例如,通过应用程序填充单元 4915)。
在电子设备4900的一些实施方案中,语音通信是实时电话呼叫。
在电子设备4900的一些实施方案中,语音通信是实时FaceTime通话。
在电子设备4900的一些实施方案中,语音通信是记录的语音信箱。
在电子设备4900的一些实施方案中,提供指示包括在用户界面内显示物理位置的可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话。
在电子设备4900的一些实施方案中,可选描述指示内容项与语音通信相关联。
在电子设备4900的一些实施方案中,检测输入包括:在显示包括最近通话的用户界面的同时在可选描述上检测输入。
在电子设备4900的一些实施方案中,提供指示包括向电子设备的用户提供触觉反馈(例如,使用反馈提供单元4919)。
在电子设备4900的一些实施方案中,提供指示包括将关于物理位置的信息(例如,使用反馈提供单元4919)发送到靠近电子设备的不同的电子设备。
在电子设备4900的一些实施方案中,确定语音通信包括描述物理位置的语音包括:分析语音通信的该部分以(例如,使用语音通信分析单元 4921)检测关于物理位置的信息,并且在通过与电子设备通信的音频系统输出语音通信的同时执行分析。
在电子设备4900的一些实施方案中,接收至少该部分语音通信包括从电子设备用户接收应分析语音通信该部分的指令。
在电子设备4900的一些实施方案中,该指令对应于硬件按钮的选择。
在电子设备4900的一些实施方案中,该指令对应于来自电子设备用户的命令,包括字词“嘿,Siri”。
根据一些实施方案,图50示出根据各种所述实施方案的原理进行配置的电子设备5000的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图50中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5000被实现为便携式多功能设备100(图1A至图1B)。
如图50所示,电子设备5000包括被配置为显示信息的显示单元5001 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5003(例如,图1A的显示控制器156和触敏显示器系统 112)、以及与显示单元5001和触敏表面单元5003耦接的处理单元5005。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图50示出了与电子设备5000集成的显示单元5001和触敏表面单元5003,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图50的呈现单元5007)、下一输入确定单元(例如,图50的下一输入确定单元5009)、内容分析单元 (例如,图50的内容分析单元5011)、选择接收单元(例如,图50的选择接收单元5013)、键入输入监视单元(例如,图50的键入输入监视单元 5015)和呈现停止单元(例如,图50的呈现停止单元5017)。
在一些实施方案中,处理单元(或其一个或多个部件,例如单元5007 至5017)被配置为:在显示器上的即时消息应用程序中呈现文本输入字段和会话副本(例如,通过呈现单元5007和/或显示单元5001)。当在显示器上呈现即时消息应用程序时,处理单元被进一步配置为:确定来自电子设备用户的下一个可能的输入是关于物理位置的信息(例如,通过下一输入确定单元5009)处理单元另被配置为:分析与文本输入字段和会话副本相关联的内容,至少部分地基于分析的内容的一部分确定建议的物理位置 (例如,通过内容分析单元5011);在显示器上的即时消息应用程序内呈现识别建议物理位置的可选用户界面元素(例如,通过呈现单元5007);接收可选用户界面元素的选择(例如,通过选择接收单元5013和/或触敏表面单元5003);并且响应于接收到选择,在文本输入字段中呈现建议物理位置的表示(例如,通过呈现单元5007)。
在电子设备5000的一些实施方案中,即时消息应用程序包括虚拟键盘,并且可选用户界面元素显示在与虚拟键盘相邻并且在虚拟键盘上方的建议部分中。
在电子设备5000的一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:处理与文本输入字段和会话副本相关联的内容以检测会话副本包括有关用户当前位置的问题。
在电子设备5000的一些实施方案中,处理内容包括应用自然语言处理算法检测构成该问题的一个或多个预定义关键字。
在电子设备5000的一些实施方案中,该问题包括在从不同于该用户的第二用户接收的消息中。
在电子设备5000的一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:在即时消息应用程序的文本输入部分中(例如,使用键入输入监视单元5015)监视从用户接收的键入输入。
在电子设备5000的一些实施方案中,处理单元被进一步配置为:根据确定用户正在键入且尚未选择可选用户界面元素,(例如,使用呈现停止单元5017)停止呈现可选用户界面元素。
在电子设备5000的一些实施方案中,处理单元被进一步配置为:根据确定用户已提供额外输入,其中该输入指示用户将不会选择可选用户界面元素,(例如,使用呈现停止单元5017)停止呈现可选用户界面元素。
在电子设备5000的一些实施方案中,建议物理位置的表示包括用于识别电子设备的当前地理位置的信息。
在电子设备5000的一些实施方案中,建议物理位置的表示是地址。
在电子设备5000的一些实施方案中,建议的物理位置是地图对象,该地图对象包括建议物理位置的标识符。
在电子设备5000的一些实施方案中,建议的物理位置对应于用户最近在即时消息应用程序之外的应用程序中查看的位置。
在电子设备5000的一些实施方案中,即时消息应用程序是邮件应用程序。
在电子设备5000的一些实施方案中,即时消息应用程序是文本消息应用程序。
根据一些实施方案,图51示出根据各种所述实施方案的原理进行配置的电子设备5100的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图51中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5100被实现为便携式多功能设备100(图1A至图1B)。
如图51所示,电子设备5100包括被配置为显示信息的显示单元5101 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5103(例如,图1A的显示控制器156和触敏显示器系统 112)、以及与显示单元5101和触敏表面单元5103耦接的处理单元5105。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图51示出了与电子设备5100集成的显示单元5101和触敏表面单元5103,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图51的信息获取单元 5107)、应用程序退出单元(例如,图51的应用程序退出单元5109)、请求接收单元(例如,图51的请求接收单元5111)、应用程序能力确定单元 (例如,图51的应用程序能力确定单元5113)、应用程序呈现单元(例如,图51的应用程序呈现单元5115)、应用程序填充单元(例如,图51 的应用程序填充单元5117)、输入检测单元(例如,图51的输入检测单元 5119)、应用程序切换用户界面显示单元(例如,图51的应用程序切换用户界面显示单元5121)、应用程序关联确定单元(例如,图51的应用程序关联确定单元5123)和访问提供单元(例如,图51的访问提供单元5125)。
在一些实施例方案中,处理单元(或其一个或多个部件,例如单元 5107至5125)被配置为:在显示第一应用程序的同时,获取用于识别用户在第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元 5107)。处理单元被进一步配置为:退出第一应用程序(例如,通过应用程序退出单元5109),并且在退出第一应用程序后,从用户接收打开不同于第一应用程序的第二应用程序的请求(例如,通过请求接收单元5111)。响应于接收到请求并且根据确定第二应用程序能够接受地理位置信息(例如,由应用程序能力确定单元5113处理或执行的确定),呈现第二应用程序(例如,通过应用程序呈现单元5115),并且呈现第二应用程序包括使用至少部分地基于第一物理位置识别信息的信息填充第二应用程序(例如,通过应用程序填充单元5117)。
在电子设备5100的一些实施方案中,接收打开第二应用程序的请求包括:退出第一应用程序后,在第二应用程序的示能表示上(例如,使用输入检测单元5119)检测输入。
在电子设备5100的一些实施方案中,第二应用程序的示能表示是显示在电子设备home屏幕内的图标。
在电子设备5100的一些实施方案中,检测输入包括:(i)在物理Home 按钮上检测双击,(ii)响应于检测到双击,(例如,使用应用程序切换用户界面显示单元5121)显示应用程序切换用户界面,以及(iii)从应用程序切换用户界面内检测示能表示的选择。
在电子设备5100的一些实施方案中,填充第二应用程序包括显示用户界面对象,该用户界面对象包括至少部分地基于第一物理位置识别信息的信息。
在电子设备5100的一些实施方案中,该用户界面对象包括通知用户第一物理位置最近在第一应用程序中被查看的文本描述。
在电子设备5100的一些实施方案中,该用户界面对象是在第二应用程序中显示的地图,并且填充第二应用程序包括填充地图以包括第一物理位置的标识符。
在电子设备5100的一些实施方案中,第二应用程序呈现虚拟键盘,并且该用户界面对象显示在虚拟键盘的上方。
在电子设备5100的一些实施方案中,获取信息包括获取关于第二物理位置的信息,显示用户界面对象包括显示具有与第二物理位置有关的信息的用户界面对象。
在电子设备5100的一些实施方案中,确定第二应用程序能够接受地理位置信息包括执行以下各项中的一个或多个(例如,由应用程序关联确定单元5123和/或应用程序能力确定单元5113执行的一个或多个确定):(i) 确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii) 确定第二应用程序能够在地图上显示地理位置信息;(iii)确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。
在电子设备5100的一些实施方案中,确定第二应用程序能够接受地理位置信息包括:确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。
在电子设备5100的一些实施方案中,处理单元被进一步配置为:响应于接收到请求,基于用户的应用程序使用历史(例如,使用应用关联确定单元5123)确定第二应用程序是否与第一应用程序相关联。
在电子设备5100的一些实施方案中,处理单元被进一步配置为:在呈现第二应用程序之前,(例如,使用访问提供单元5125)为第二应用程序提供对识别第一物理位置的信息的访问权限,并且在提供该访问权限之前,第二应用程序不能访问识别第一物理位置的信息。
根据一些实施方案,图52示出根据各种所述实施方案的原理进行配置的电子设备5200的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图52中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5200被实现为便携式多功能设备100(图1A至图1B)。
如图52所示,电子设备5200包括被配置为显示信息的显示单元5201 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5203(例如,图1A的显示控制器156和触敏显示器系统 112)、以及与显示单元5201和触敏表面单元5203耦接的处理单元5205。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图52示出了与电子设备5200集成的显示单元5201和触敏表面单元5203,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图52的信息获取单元 5207)、输入检测单元(例如,图52的输入检测单元5209)、应用程序识别单元(例如,图52的应用程序识别单元5211)、示能表示呈现单元(例如,图52的示能表示呈现单元5213)、应用程序打开单元(例如,图52 的应用程序打开单元5215)、应用程序填充单元(例如,图52的应用程序填充单元5217)、应用程序切换用户界面呈现单元(例如,图52的应用程序切换用户界面呈现单元5219)、应用程序能力确定单元(例如,图52的应用程序能力确定单元5221)。
在一些实施方案中,处理单元(或其一个或多个部件,例如单元5207 至5221)被配置为:获取用于识别用户在第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元5207)并且检测第一输入(例如,通过输入检测单元5209)。响应于检测到第一输入,处理单元被配置为: (i)识别能够接受地理位置信息的第二应用程序(例如,通过应用程序识别单元5209),以及(ii)在显示器的至少一部分上呈现不同于第一应用程序的示能表示,并建议打开具有关于第一物理位置的信息的第二应用程序(例如,通过示能表示呈现单元5213)。处理单元还被配置为:在示能表示处检测第二输入(例如,通过输入检测单元5209)。响应于在示能表示处检测到第二输入,处理单元被配置为:(i)打开第二应用程序(例如,通过应用程序打开单元5215),以及(ii)填充第二应用程序以包括至少部分地基于第一物理位置识别信息的信息(例如,通过应用程序填充单元5217)。
在电子设备5200的一些实施方案中,第一输入对应于打开应用程序切换用户界面的请求(例如,第一输入是在电子设备的物理Home按钮上的双击)
在电子设备5200的一些实施方案中,在应用程序切换用户界面内呈现示能表示。
在电子设备5200的一些实施方案中,呈现示能表示包括:结合呈现示能表示,在应用程序切换用户界面内(例如,使用应用程序切换用户界面呈现单元5219)呈现正在电子设备上执行的应用程序的表示;并且在位于应用程序表示下方的显示器区域中呈现示能表示。
在电子设备5200的一些实施方案中,第一输入对应于打开电子设备 home屏幕的请求(例如,第一输入是在电子设备的物理Home按钮上的单次轻击)。
在电子设备5200的一些实施方案中,在home屏幕的一部分上呈现示能表示。
在电子设备5200的一些实施方案中,该建议包括文本描述,该文本描述特定于与第二应用程序相关联的类型。
在电子设备5200的一些实施方案中,填充第二应用程序包括显示用户界面对象,该用户界面对象包括至少部分地基于第一物理位置识别信息的信息。
在电子设备5200的一些实施方案中,该用户界面对象包括通知用户第一物理位置最近在第一应用程序中被查看的文本描述。
在电子设备5200的一些实施方案中,该用户界面对象是在第二应用程序中显示的地图,并且填充第二应用程序包括填充地图以包括第一物理位置的标识符。
在电子设备5200的一些实施方案中,第二应用程序呈现虚拟键盘,并且该用户界面对象显示在虚拟键盘的上方。
在电子设备5200的一些实施方案中,识别能够接受地理位置信息的第二应用程序包括执行以下各项中的一个或多个(例如,使用应用程序能力确定单元5221执行的一个或多个确定):(i)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定第二应用程序能够在地图上显示地理位置信息;(iii)确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。
在电子设备5200的一些实施方案中,识别第二应用程序能够接受地理位置信息包括:(例如,使用应用程序能力确定单元5221)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。
根据一些实施方案,图53示出根据各种所述实施方案的原理进行配置的电子设备5300的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图53中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5300被实现为便携式多功能设备100(图1A至图1B)。
如图53所示,电子设备5300包括被配置为显示信息的显示单元5301 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5303(例如,图1A的显示控制器156和触敏显示器系统 112)、以及与显示单元5301和触敏表面单元5303耦接的处理单元5305。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图53示出了与电子设备5300集成的显示单元5301和触敏表面单元5303,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图53的信息获取单元 5307)、车辆进入确定单元(例如,图53的车辆进入确定单元5309)、提示提供单元(例如,图53的提示提供单元5311)、指令接收单元(例如,图53的指令接收单元5313)、路线引导促进单元(例如,图53的路线引导促进单元5315)和消息检测单元(例如,图53的消息检测单元 5317)。
在一些实施方案中,处理单元(或其一个或多个部件,例如单元5307 至5317)被配置为:获取用于识别用户在所述电子设备上正在执行的所述第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元 5307)。处理单元还被配置为:确定用户已经进入车辆(例如,通过车辆进入确定单元5309)。响应于确定用户已经进入车辆,处理单元被配置为:向用户提供提示,提示用户将第一物理位置作为路线引导的目的地使用(例如,通过提示提供单元5311)。响应于提供该提示,从用户接收指令,指示用户将第一物理位置作为路线引导的目的地使用(例如,通过指令接收单元5313)。处理单元另被配置为:促进到第一物理位置的路线引导(例如,通过路线引导促进单元5307)。
在电子设备5300的一些实施方案中,处理单元被进一步配置为:(例如,通过消息检测单元5317)检测所述电子设备已经接收到消息,包括检测所述消息包含识别第二物理位置的信息;并且响应于所述检测,(例如,通过提示提供单元5311)向所述用户提供使用该第二物理位置作为路线引导的新目的地的新提示。
在电子设备5300的一些实施方案中,处理单元被进一步配置为:响应于从用户接收到将第二物理位置作为新目的地使用的指令,(例如,通过路线引导促进单元5315)促进到第二物理位置的路线引导。
在电子设备5300的一些实施方案中,检测消息含有识别第二物理位置的信息包括:当电子设备上可用的虚拟助理正在通过和电子设备通信的音频系统将消息读出给用户时,执行检测。
在电子设备5300的一些实施方案中,确定用户已经进入车辆包括检测电子设备已经建立与车辆的通信链路。
在电子设备5300的一些实施方案中,促进路线引导包括通过电子设备的显示器提供路线引导。
在电子设备5300的一些实施方案中,促进路线引导包括向车辆发送识别第一物理位置的信息。
在电子设备5300的一些实施方案中,促进路线引导包括通过与电子设备通信的音频系统提供路线引导(例如,汽车扬声器或设备自身的内部扬声器)。
根据一些实施方案,图54示出根据各种所述实施方案的原理进行配置的电子设备5400的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图54中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5400被实现为便携式多功能设备100(图1A至图1B)。
如图54所示,电子设备5400包括被配置为显示信息的显示单元5401 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5403(例如,图1A的显示控制器156和触敏显示器系统 112)、以及与显示单元5401和触敏表面单元5403耦接的处理单元5405。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图54示出了与电子设备5400集成的显示单元5401和触敏表面单元5403,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图54的呈现单元5407)、请求接收单元(例如,图54的请求接收单元5409)、用户界面对象提供单元 (例如,图54的用户界面对象提供单元5411)、主动粘贴单元(例如,图 54的主动粘贴单元5413)和能力确定单元(例如,图54的能力确定单元 5415)。
在一些实施方案中,处理单元(或其一个或多个部件,例如单元5407 至5415)被配置为:在第一应用程序中呈现内容(例如,通过呈现单元 5407和/或显示单元5401);从用户接收打开不同于第一应用程序的第二应用程序的请求(例如,通过请求接收单元和/或触敏表面单元5403),第二应用程序包括输入接收字段;响应于接收到请求,呈现具有输入接收字段的第二应用程序(例如,通过呈现单元5407和/或显示单元5401);在输入接收字段处接收到任何用户输入之前,提供可选用户界面对象以允许用户将内容的至少一部分粘贴到输入接收字段中(例如,通过用户界面对象提供单元5411和/或显示单元5401);并且响应于检测到可选用户界面对象的选择,将内容的该部分粘贴到输入接收字段中(例如,通过主动粘贴单元5413)。
在电子设备5400的一些实施方案中,在提供所述可选用户界面对象前,处理单元被进一步配置为:(例如,使用能力确定单元5415)将输入接收字段识别为能够接受内容该部分的字段。
在电子设备5400的一些实施方案中,响应于检测到输入接收字段的选择,将输入接收字段识别为能够接受内容该部分的字段。
在电子设备5400的一些实施方案中,内容的该部分对应于图像。
在电子设备5400的一些实施方案中,内容的该部分对应于文本内容。
在电子设备5400的一些实施方案中,内容的该部分对应于文本内容和图像。
在电子设备5400的一些实施方案中,第一应用程序是网页浏览应用程序,第二应用程序是即时消息应用程序。
在电子设备5400的一些实施方案中,第一应用程序是照片浏览应用程序,第二应用程序是即时消息应用程序。
在电子设备5400的一些实施方案中,处理单元被进一步配置为:在接收打开第二应用程序的请求前,接收至少复制内容的所述部分的请求。
在电子设备5400的一些实施方案中,可选用户界面对象与以下指示一起显示:内容的该部分最近在第一应用程序中被查看。
根据一些实施方案,图55示出根据各种所述实施方案的原理进行配置的电子设备5500的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图55中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5500被实现为便携式多功能设备100(图1A至图1B)。
如图55所示,电子设备5500包括被配置为显示信息的显示单元5501 (例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5503(例如,图1A的显示控制器156和触敏显示器系统 112)、以及与显示单元5501和触敏表面单元5503耦接的处理单元5505。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备 A至D)配置电子设备。为便于说明,图55示出了与电子设备5500集成的显示单元5501和触敏表面单元5503,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图55的呈现单元5507)、确定单元(例如,图55的确定单元5509)、获取单元(例如,图55的获取单元5511)、搜索执行单元(例如,图55的搜索执行单元5513)、信息准备单元(例如,图55的信息准备单元5515)、示能表示显示单元(例如,图55的示能表示显示单元5517)和检测单元(例如,图55的检测单元5519)。
在一些实施方案中,处理单元(或其一个或多个部件,例如单元5507 至5519)被配置为:在显示器上呈现与应用程序相关联的文本内容(例如,通过呈现单元5507和/或显示单元5501);确定文本内容的一部分与以下各项有关:(i)位置,(ii)联系人,或(iii)事件(例如,通过确定单元 5509);在确定文本内容的该部分与位置相关时,从电子设备上的位置传感器获取位置信息(例如,通过获取单元5511),并且准备所获取的位置信息以显示为预测的内容项(例如,通过信息准备单元5515);在确定文本内容的该部分与联系人相关时,在电子设备上执行搜索,搜索与文本内容的该部分相关的联系人信息(例如,通过搜索执行单元5513),并且准备与至少一个通过搜索检索到的联系人相关联的信息以显示为预测的内容项(例如,通过信息准备单元5515);在确定文本内容的该部分与事件相关时,在电子设备上执行新的搜索,搜索与文本内容的该部分相关的事件信息(例如,通过搜索执行单元5513),并且准备至少部分地基于通过搜索检索到的至少一个事件的信息,以显示为预测的内容项(例如,通过信息准备单元5515);在应用程序中显示包括预测内容项的示能表示(例如,通过示能表示显示单元5517和/或显示单元5501);通过触敏表面检测示能表示的选择(例如,通过检测单元5519);并且响应于检测到选择,在显示器上与文本内容相邻处显示与预测内容项相关联的信息(例如,通过呈现单元5507和/或显示单元5501)。
在电子设备5500的一些实施方案中,文本内容的该部分对应于最近在应用程序中呈现的文本内容。
在电子设备5500的一些实施方案中,该应用程序是即时消息应用程序,并且文本内容的该部分是在即时消息应用程序中接收到的来自不同于电子设备的远程设备的远程用户的问题。
在电子设备5500的一些实施方案中,文本内容的该部分是由电子设备用户在应用程序内的输入接收字段提供的输入。
在电子设备5500的一些实施方案中,响应于用户输入选择包括文本内容该部分的用户界面对象,识别文本内容的该部分。
在电子设备5500的一些实施方案中,该应用程序是即时消息应用程序,并且用户界面对象是在即时消息应用程序内显示的会话中的消息气泡。
在电子设备5500的一些实施方案中,处理单元被进一步配置为:检测第二用户界面对象的选择;响应于检测到选择:(I)停止显示具有预测内容项的示能表示,并且(ii)确定与第二用户界面对象相关联的文本内容与位置、联系人或事件相关;并且根据确定,在应用程序内显示新的预测内容项。
在电子设备5500的一些实施方案中,示能表示被显示为相邻于应用程序内的虚拟键盘。
在电子设备5500的一些实施方案中,其中与预测内容项相关联的信息被显示在输入接收字段中,其中该输入接收字段是显示虚拟键盘处接收到的键入输入的字段。
上述任一信息处理方法中的操作任选地通过运行信息处理装置中的一个或多个功能模块来实现,该信息处理装置诸如为通用处理器(例如,如以上相对于图1A和图3所描述)或特定于应用的芯片。
以上参考图6A至图6B和图8A至图8B所述的操作任选地由图1A至图1B或图42至图55中所描绘的部件来实施。例如,执行操作602和检测操作802任选地由事件分类器170、事件识别器180和事件处理程序190来实现。事件分类器170中的事件监视器171检测触敏显示器112上的接触,并且事件分配器模块174将事件信息递送到应用程序136-1。应用程序136-1的相应事件识别器180将事件信息与相应事件定义186进行比较,并且确定触敏表面上第一位置处的第一接触是否(或该设备的旋转是否)对应于预定义的事件或子事件,诸如对用户界面上的对象的选择、或该设备从一个取向到另一个取向的旋转。当检测到相应的预定义的事件或子事件时,事件识别器180激活与对该事件或子事件的检测相关联的事件处理程序190。事件处理程序190任选地使用或调用数据更新器176或对象更新器 177来更新应用程序内部状态192。在一些实施例中,事件处理程序190访问相应GUI更新器178来更新应用程序所显示的内容。类似地,本领域的技术人员会清楚地知道基于在图1A至图1B中所描绘的部件可如何实现其他过程。
出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然而,上面的示例性讨论并非旨在是穷尽的,也并非旨在将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择和描述实施方案是为了最佳地阐明本发明的原理及其实际应用,以便由此使得本领域的其他技术人员能够最佳地使用具有适合于所构想的特定用途的各种修改的本发明以及各种所描述的实施方案。

Claims (29)

1.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由与显示器通信的电子设备执行时,使得所述电子设备:
在第一应用程序中呈现内容以用于由用户查看,其中所述内容的至少一部分在无需来自用户的输入的情况下被呈现;
接收来自所述用户的打开不同于所述第一应用程序的第二应用程序的请求,所述第二应用程序包括输入接收字段;
响应于接收到所述请求,来呈现具有所述输入接收字段的所述第二应用程序;
在所述输入接收字段处接收任何用户输入之前,提供可选用户界面对象以允许所述用户将所述内容的至少所述部分粘贴到所述输入接收字段;
响应于检测到对所述可选用户界面对象的选择,来将所述内容的所述部分粘贴到所述输入接收字段中,
其中所述可选用户界面对象与以下指示一起显示:所述内容的所述部分最近在所述第一应用程序中被查看。
2.根据权利要求1所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
在提供所述可选用户界面对象前,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
3.根据权利要求2所述的非暂态计算机可读存储介质,其中响应于检测到对所述输入接收字段的选择,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
4.根据权利要求1所述的非暂态计算机可读存储介质,其中所述内容的所述部分对应于图像。
5.根据权利要求1所述的非暂态计算机可读存储介质,其中所述内容的所述部分对应于文本内容。
6.根据权利要求1所述的非暂态计算机可读存储介质,其中所述内容的所述部分对应于文本内容和图像。
7.根据权利要求1所述的非暂态计算机可读存储介质,其中所述第一应用程序是网页浏览应用程序,并且所述第二应用程序是即时消息应用程序。
8.根据权利要求1所述的非暂态计算机可读存储介质,其中所述第一应用程序是照片浏览应用程序,并且所述第二应用程序是即时消息应用程序。
9.根据权利要求1所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
在接收打开所述第二应用程序的所述请求前,接收复制所述内容的至少所述部分的请求。
10.一种方法,包括:
在具有一个或多个处理器、存储器、触敏表面和显示器的电子设备处:
在第一应用程序中呈现内容以用于由用户查看,其中所述内容的至少一部分在无需来自用户的输入的情况下被呈现;
接收来自所述用户的打开不同于所述第一应用程序的第二应用程序的请求,所述第二应用程序包括输入接收字段;
响应于接收到所述请求,来呈现具有所述输入接收字段的所述第二应用程序;
在所述输入接收字段处接收任何用户输入之前,提供可选用户界面对象以允许所述用户将所述内容的至少所述部分粘贴到所述输入接收字段;
响应于检测到对所述可选用户界面对象的选择,来将所述内容的所述部分粘贴到所述输入接收字段中,
其中所述可选用户界面对象与以下指示一起显示:所述内容的所述部分最近在所述第一应用程序中被查看。
11.根据权利要求10所述的方法,还包括:
在提供所述可选用户界面对象前,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
12.根据权利要求11所述的方法,其中响应于检测到对所述输入接收字段的选择,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
13.根据权利要求10所述的方法,其中所述内容的所述部分对应于图像。
14.根据权利要求10所述的方法,其中所述内容的所述部分对应于文本内容。
15.根据权利要求10所述的方法,其中所述内容的所述部分对应于文本内容和图像。
16.根据权利要求10所述的方法,其中所述第一应用程序是网页浏览应用程序,并且所述第二应用程序是即时消息应用程序。
17.根据权利要求10所述的方法,其中所述第一应用程序是照片浏览应用程序,并且所述第二应用程序是即时消息应用程序。
18.根据权利要求10所述的方法,还包括:
在接收打开所述第二应用程序的所述请求前,接收复制所述内容的至少所述部分的请求。
19.一种电子设备,包括:
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
显示单元,所述显示单元被配置为显示用户界面;和
处理单元,所述处理单元与所述触敏表面单元和所述显示单元耦接,所述处理单元被配置为:
在第一应用程序中呈现内容以用于由用户查看,其中所述内容的至少一部分在无需来自用户的输入的情况下被呈现;
接收来自所述用户的打开不同于所述第一应用程序的第二应用程序的请求,所述第二应用程序包括输入接收字段;
响应于接收到所述请求,来呈现具有所述输入接收字段的所述第二应用程序;
在所述输入接收字段处接收任何用户输入之前,提供可选用户界面对象以允许所述用户将所述内容的至少所述部分粘贴到所述输入接收字段;
响应于检测到对所述可选用户界面对象的选择,来将所述内容的所述部分粘贴到所述输入接收字段中,
其中所述可选用户界面对象与以下指示一起显示:所述内容的所述部分最近在所述第一应用程序中被查看。
20.根据权利要求19所述的电子设备,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
在提供所述可选用户界面对象前,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
21.根据权利要求20所述的电子设备,其中响应于检测到对所述输入接收字段的选择,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
22.根据权利要求19所述的电子设备,其中所述内容的所述部分对应于图像。
23.根据权利要求19所述的电子设备,其中所述内容的所述部分对应于文本内容。
24.根据权利要求19所述的电子设备,其中所述内容的所述部分对应于文本内容和图像。
25.根据权利要求19所述的电子设备,其中所述第一应用程序是网页浏览应用程序,并且所述第二应用程序是即时消息应用程序。
26.根据权利要求19所述的电子设备,其中所述第一应用程序是照片浏览应用程序,并且所述第二应用程序是即时消息应用程序。
27.根据权利要求19所述的电子设备,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
在接收打开所述第二应用程序的所述请求前,接收复制所述内容的至少所述部分的请求。
28.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求10-28中任一项所述的方法的装置。
29.一种电子设备,包括:
触敏表面;
显示器;和
用于执行根据权利要求10-28中任一项所述的方法的装置。
CN201810998619.4A 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法 Active CN109240589B (zh)

Applications Claiming Priority (7)

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
CN201680044146.3A CN108027738B (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201680044146.3A Division CN108027738B (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法

Publications (2)

Publication Number Publication Date
CN109240589A true CN109240589A (zh) 2019-01-18
CN109240589B CN109240589B (zh) 2021-10-15

Family

ID=56121210

Family Applications (6)

Application Number Title Priority Date Filing Date
CN201810998574.0A Active CN109240588B (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法
CN201680044146.3A Active CN108027738B (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法
CN202110943177.5A Pending CN113791852A (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法
CN202010997038.6A Pending CN112905276A (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法
CN201810998619.4A Active CN109240589B (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法
CN202110945309.8A Pending CN113722033A (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法

Family Applications Before (4)

Application Number Title Priority Date Filing Date
CN201810998574.0A Active CN109240588B (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法
CN201680044146.3A Active CN108027738B (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法
CN202110943177.5A Pending CN113791852A (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法
CN202010997038.6A Pending CN112905276A (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110945309.8A Pending CN113722033A (zh) 2015-05-27 2016-05-27 用于在触敏设备上主动识别和显示相关内容的系统和方法

Country Status (8)

Country Link
US (5) US10200824B2 (zh)
EP (6) EP3428795B1 (zh)
JP (6) JP6419993B2 (zh)
KR (9) KR102429889B1 (zh)
CN (6) CN109240588B (zh)
AU (9) AU2016268860B2 (zh)
DK (4) DK201670370A1 (zh)
WO (1) WO2016191737A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110222263A (zh) * 2019-05-24 2019-09-10 苏州达家迎信息技术有限公司 应用程序维护控制方法、装置、服务器、终端及存储介质
CN110677190A (zh) * 2019-10-09 2020-01-10 大连大学 一种天地一体化智能网络节点静态处理与缓存方法
CN112417288A (zh) * 2020-11-25 2021-02-26 南京大学 一种用于众包软件测试的任务跨域推荐方法
CN112800376A (zh) * 2021-04-15 2021-05-14 成都万创科技股份有限公司 一种基于Http循环请求的实现方法及其装置

Families Citing this family (381)

* 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
EP2074505A4 (en) 2006-10-05 2010-01-13 Splunk Inc CHRONOLOGICAL SERIES SEARCH ENGINE
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
ES2970433T3 (es) 2009-08-13 2024-05-28 Acufocus Inc Método de fabricación de implantes intraoculares con máscara y lentes
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
WO2013123265A1 (en) 2012-02-16 2013-08-22 Acufocus, Inc. Masked ocular device for implantation adjacent to an intraocular lens
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
CN113470640B (zh) 2013-02-07 2022-04-26 苹果公司 数字助理的语音触发器
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
US10346357B2 (en) 2013-04-30 2019-07-09 Splunk Inc. Processing of performance data and structure data from an information technology environment
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
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
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
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
CN110442699A (zh) 2013-06-09 2019-11-12 苹果公司 操作数字助理的方法、计算机可读介质、电子设备和系统
CN105453026A (zh) 2013-08-06 2016-03-30 苹果公司 基于来自远程设备的活动自动激活智能响应
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
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
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
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
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 삼성전자주식회사 정보처리장치, 영상처리장치 및 그들의 제어방법
US20170038933A1 (en) * 2015-08-06 2017-02-09 Facebook, Inc. Systems and methods for providing reminders for content in social networks
US10582011B2 (en) * 2015-08-06 2020-03-03 Samsung Electronics Co., Ltd. Application cards based on contextual data
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
US9967717B2 (en) 2015-09-01 2018-05-08 Ford Global Technologies, Llc Efficient tracking of personal device locations
US9914418B2 (en) 2015-09-01 2018-03-13 Ford Global Technologies, Llc In-vehicle control location
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 Общество С Ограниченной Ответственностью "Яндекс" Способ и устройство для отрисовки представления электронного документа на экране
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
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
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
US10600220B2 (en) * 2016-08-01 2020-03-24 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
USD835153S1 (en) * 2016-09-20 2018-12-04 Google Llc Display screen with a graphical user interface for a messaging application
USD819044S1 (en) 2016-09-20 2018-05-29 Google Llc Display screen with graphical user interface for an assistive agent
CA2970088C (en) 2016-09-30 2022-02-08 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
CN108279954B (zh) * 2016-12-30 2020-07-07 华为技术有限公司 一种应用程序排序的方法及装置
US11074554B2 (en) * 2016-12-30 2021-07-27 Verizon Patent And Licensing Inc. Cloud-based event calendar synching and notification
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
US10825117B2 (en) * 2017-03-07 2020-11-03 Skyscanner Limited Content recommendation and display based on geographic and user context
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
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 腾讯科技(北京)有限公司 一种数据处理方法及服务器、计算机存储介质
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
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
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL 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
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
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
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
US11257038B2 (en) * 2017-06-02 2022-02-22 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
US10565274B2 (en) * 2017-06-30 2020-02-18 Microsoft Technology Licensing, Llc Multi-application user interest memory management
US9967520B1 (en) * 2017-06-30 2018-05-08 Ringcentral, Inc. Method and system for enhanced conference 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广东移动通信有限公司 应用控制方法、装置、存储介质以及电子设备
US11410648B2 (en) * 2017-10-03 2022-08-09 Google Llc Multiple digital assistant coordination in vehicular environments
US20190122140A1 (en) * 2017-10-20 2019-04-25 STATGRAF Research LLP. Data analysis and rendering
WO2019075962A1 (zh) * 2017-10-20 2019-04-25 华为技术有限公司 一种图标显示方法、设备及系统
US10664784B2 (en) * 2017-11-27 2020-05-26 International Business Machines Corporation Analyzing product impact on a system
US11568003B2 (en) 2017-12-15 2023-01-31 Google Llc Refined search with machine learning
US10783013B2 (en) 2017-12-15 2020-09-22 Google Llc Task-related sorting, application discovery, and unified bookmarking for application managers
US10846109B2 (en) 2017-12-20 2020-11-24 Google Llc Suggesting actions based on machine learning
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广东移动通信有限公司 通话控制方法、装置及存储介质和移动终端
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
US10355773B1 (en) * 2018-01-02 2019-07-16 Talal Awad Connectivity system and method for high speed aircraft internet
USD852222S1 (en) * 2018-01-04 2019-06-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD852223S1 (en) * 2018-01-04 2019-06-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US10303181B1 (en) 2018-11-29 2019-05-28 Eric John Wengreen 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
US11073838B2 (en) 2018-01-06 2021-07-27 Drivent Llc 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 富士通株式会社 情報処理装置、情報処理システム、及びプライバシ保護プログラム
US11481837B1 (en) 2018-04-12 2022-10-25 Wells Fargo Bank, N.A. Authentication circle management
US11386412B1 (en) 2018-04-12 2022-07-12 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
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE 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
US10504518B1 (en) 2018-06-03 2019-12-10 Apple Inc. Accelerated task performance
AU2019282138A1 (en) 2018-06-04 2020-12-17 Smartsky Networks LLC Contextually aware, smart ip address
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 北京微播视界科技有限公司 一种搜索页面显示方法、装置、终端及存储介质
US11537494B2 (en) * 2018-07-16 2022-12-27 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
CN109214386B (zh) * 2018-09-14 2020-11-24 京东数字科技控股有限公司 用于生成图像识别模型的方法和装置
US10471804B1 (en) 2018-09-18 2019-11-12 Drivent Llc Self-driving vehicle systems and methods
US10479319B1 (en) 2019-03-21 2019-11-19 Drivent Llc Self-driving vehicle systems and methods
US10282625B1 (en) 2018-10-01 2019-05-07 Eric John Wengreen Self-driving vehicle systems and methods
US10493952B1 (en) 2019-03-21 2019-12-03 Drivent Llc Self-driving vehicle systems and methods
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11487832B2 (en) 2018-09-27 2022-11-01 Google Llc Analyzing web pages to facilitate automatic navigation
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
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
JP6724223B2 (ja) * 2018-09-29 2020-07-15 ジェギュ イ 多様なアイコンバッジを表示できるデータ処理ターミナル及び該バッジとターミナルを用いる方法
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
US11221622B2 (en) 2019-03-21 2022-01-11 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
US10481606B1 (en) 2018-11-01 2019-11-19 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
US10417497B1 (en) 2018-11-09 2019-09-17 Qwake Technologies Cognitive load reducing platform for first responders
US10896492B2 (en) 2018-11-09 2021-01-19 Qwake Technologies, Llc Cognitive load reducing platform having image edge enhancement
CN113794800B (zh) * 2018-11-23 2022-08-26 华为技术有限公司 一种语音控制方法及电子设备
CN109362032B (zh) * 2018-12-11 2020-06-30 安徽大学 一种基于位置服务的用户位置个性化差分隐私保护方法
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
US11048486B2 (en) 2018-12-13 2021-06-29 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
CN113574504A (zh) * 2019-01-18 2021-10-29 苹果公司 用于呈现关于应用程序功能的信息并促进应用程序功能的用户界面
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
US20220187963A9 (en) * 2019-04-16 2022-06-16 Apple Inc. Reminders techniques on a user device
CN110225180B (zh) * 2019-04-23 2021-01-08 维沃软件技术有限公司 一种内容输入方法及终端设备
CN110046484A (zh) * 2019-04-29 2019-07-23 中核武汉核电运行技术股份有限公司 一种工业控制系统信息安全控制方法及装置
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
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
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
CN110133369B (zh) * 2019-05-15 2021-06-15 宁波三星医疗电气股份有限公司 一种负荷曲线数据显示方法、装置及电能表
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11372696B2 (en) 2019-05-30 2022-06-28 Apple Inc. Siri reminders found in apps
WO2020242711A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Voice assistant discoverability through on-device targeting and personalization
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
KR102425473B1 (ko) * 2019-05-31 2022-07-25 애플 인크. 온-디바이스 목표설정 및 개인화를 통한 음성 어시스턴트 발견가능성
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK180649B1 (en) 2019-05-31 2021-11-11 Apple Inc Voice assistant discoverability through on-device targeting and personalization
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
EP3977053A1 (en) * 2019-06-03 2022-04-06 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
US20200388280A1 (en) 2019-06-05 2020-12-10 Google Llc Action validation for digital assistant-based applications
US11461221B2 (en) * 2019-06-05 2022-10-04 Google Llc Action validation for digital assistant-based applications
CN110278327B (zh) * 2019-06-10 2021-01-08 维沃移动通信有限公司 数据处理方法及移动终端
US11262978B1 (en) * 2019-06-19 2022-03-01 Amazon Technologies, Inc. Voice-adapted reformulation of web-based answers
KR20200144846A (ko) * 2019-06-19 2020-12-30 삼성전자주식회사 외부 장치의 위치 정보를 결정하기 위한 전자 장치 및 그의 동작 방법
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 华为技术有限公司 一种应用程序中等待场景的处理方法和装置
US20220291789A1 (en) * 2019-07-11 2022-09-15 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
US10942625B1 (en) * 2019-09-09 2021-03-09 Atlassian Pty Ltd. Coordinated display of software application interfaces
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
US11488406B2 (en) 2019-09-25 2022-11-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
EP4053798A4 (en) * 2019-10-28 2023-07-19 Japan Tobacco Inc. METHOD OF DISPLAYING TIME-VARIABLE AROMA AS A TIME-VARIABLE OPTICAL ELEMENT, PROGRAM AND INFORMATION PROCESSING DEVICE
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
WO2021116719A1 (en) * 2019-12-13 2021-06-17 Google Llc Systems and methods for adding digital content during an application opening operation
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
US11482231B2 (en) * 2020-01-06 2022-10-25 Vmware, Inc. Skill redirections in a voice assistant
CN111292749B (zh) * 2020-02-10 2023-06-09 北京声智科技有限公司 智能语音平台的会话控制方法及装置
US20210248195A1 (en) * 2020-02-10 2021-08-12 Statum Systems Inc. Messaging interface with contextual search
US11873000B2 (en) 2020-02-18 2024-01-16 Toyota Motor North America, Inc. Gesture detection for transport control
US11762538B2 (en) * 2020-03-10 2023-09-19 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
WO2021262598A1 (en) * 2020-06-21 2021-12-30 Apple Inc. Application library and page hiding
CN113867855A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 一种任务推送方法、装置和电子设备
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
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
JP1699377S (zh) * 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 北京百度网讯科技有限公司 训练搜索模型的方法、搜索目标对象的方法及其装置
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
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
KR20220131721A (ko) * 2021-03-22 2022-09-29 삼성전자주식회사 콘텐츠에 기초하여 루틴을 실행하는 전자 장치 및 전자 장치의 동작 방법
WO2022213313A1 (en) 2021-04-08 2022-10-13 Citrix Systems, Inc. Intelligent collection of meeting background information
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
CN115373834A (zh) * 2021-05-27 2022-11-22 北京火山引擎科技有限公司 一种基于进程调用链的入侵检测方法
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
US20230092073A1 (en) * 2021-09-23 2023-03-23 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
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
CN115562742B (zh) * 2022-01-10 2023-10-20 荣耀终端有限公司 应用启动方法、电子设备及可读存储介质
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
KR20230154591A (ko) * 2022-05-02 2023-11-09 쿠팡 주식회사 정보를 설정하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
EP4273676A1 (en) 2022-05-06 2023-11-08 Apple Inc. Devices, methods, and graphical user interfaces for updating a session region
US11842028B2 (en) 2022-05-06 2023-12-12 Apple Inc. Devices, methods, and graphical user interfaces for updating a session region
US20230367777A1 (en) * 2022-05-10 2023-11-16 Apple Inc. Systems and methods for providing search interface with contextual suggestions
US20230367795A1 (en) * 2022-05-10 2023-11-16 Apple Inc. Navigating and performing device tasks using search interface
CN114821271B (zh) * 2022-05-19 2022-09-16 平安科技(深圳)有限公司 模型训练方法、图像描述生成方法、装置及存储介质
WO2023235143A1 (en) * 2022-05-31 2023-12-07 Apple Inc. Two-layer bandit optimization for recommendations
US11995457B2 (en) 2022-06-03 2024-05-28 Apple Inc. Digital assistant integration with system interface
US20240004940A1 (en) * 2022-06-29 2024-01-04 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
WO2024086048A1 (en) * 2022-10-16 2024-04-25 Google Llc Mitigating latency in spoken input guided selection of item(s)
US11783643B1 (en) * 2022-12-15 2023-10-10 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

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
WO2007057499A1 (en) * 2005-11-17 2007-05-24 Nokia Corporation Application interworking
CN101763341A (zh) * 2009-12-23 2010-06-30 宇龙计算机通信科技(深圳)有限公司 一种文本协同方法、系统及触摸屏设备
CN104050153A (zh) * 2013-03-11 2014-09-17 三星电子株式会社 数据复制和粘贴的方法和装置
CN104281390A (zh) * 2013-07-05 2015-01-14 索尼公司 信息处理装置和存储介质
CN104360990A (zh) * 2014-10-27 2015-02-18 深圳市金立通信设备有限公司 一种编辑内容的方法

Family Cites Families (2763)

* 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
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
KR100620826B1 (ko) 1998-10-02 2006-09-13 인터내셔널 비지네스 머신즈 코포레이션 대화형 컴퓨팅 시스템 및 방법, 대화형 가상 머신, 프로그램 저장 장치 및 트랜잭션 수행 방법
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
DE60043008D1 (de) 1999-05-27 2009-11-05 Tegic Comm Inc Tastatursystem mit automatischer korrektur
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
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
US7130807B1 (en) 1999-11-22 2006-10-31 Accenture Llp Technology sharing during demand and supply planning 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
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US8024415B2 (en) 2001-03-16 2011-09-20 Microsoft Corporation Priorities generation and management
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
CA2446085C (en) 2001-04-30 2010-04-27 Octave Communications, 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
JP2003121164A (ja) 2001-06-29 2003-04-23 Spencer Stephens 位置識別子を受けるナビゲータ並びに関連する装置及び方法
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
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
US7920682B2 (en) 2001-08-21 2011-04-05 Byrne William J Dynamic interactive voice interface
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
US7324947B2 (en) 2001-10-03 2008-01-29 Promptu Systems Corporation Global speech user interface
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
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
US8374879B2 (en) 2002-02-04 2013-02-12 Microsoft Corporation Systems and methods for managing interactions from multiple speech-enabled applications
US9374451B2 (en) 2002-02-04 2016-06-21 Nokia Technologies Oy System and method for multimodal short-cuts to digital services
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
EP1652173B1 (en) 2002-06-28 2015-12-30 Chemtron Research LLC Method and system for processing speech
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
WO2005064592A1 (ja) 2003-12-26 2005-07-14 Kabushikikaisha Kenwood 機器制御装置、音声認識装置、エージェント装置、車載機器制御装置、ナビゲーション装置、オーディオ装置、機器制御方法、音声認識方法、エージェント処理方法、車載機器制御方法、ナビゲーション方法、オーディオ装置制御方法及びプログラム
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
US7774753B1 (en) 2004-11-18 2010-08-10 Adobe Systems Incorporated System and method for communicating data among two 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
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
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
US8228299B1 (en) 2005-01-27 2012-07-24 Singleton Technology, Llc Transaction automation and archival system using electronic contract and disclosure units
WO2006084102A2 (en) 2005-02-03 2006-08-10 Musicstrands, 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
CN101124579A (zh) 2005-02-24 2008-02-13 富士施乐株式会社 单词翻译装置、翻译方法以及翻译程序
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
US8694322B2 (en) 2005-08-05 2014-04-08 Microsoft Corporation Selective confirmation for execution of a voice activated user interface
US7640160B2 (en) 2005-08-05 2009-12-29 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US7844037B2 (en) 2005-08-08 2010-11-30 Palm, Inc. Method and device for enabling message responses to incoming phone calls
CN101366073B (zh) 2005-08-09 2016-01-20 移动声控有限公司 多种语音识别软件实例的使用
US7620549B2 (en) 2005-08-10 2009-11-17 Voicebox Technologies, Inc. System and method of supporting adaptive misrecognition in conversational speech
JP2009505204A (ja) 2005-08-11 2009-02-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ インタラクティブシステムとインタフェースシステムを駆動する方法
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 松下電器産業株式会社 駐車位置探索支援装置、方法およびプログラム
US8265939B2 (en) 2005-08-31 2012-09-11 Nuance Communications, Inc. Hierarchical methods and apparatus for extracting user intent from spoken utterances
EP1934971A4 (en) 2005-08-31 2010-10-27 Voicebox Technologies Inc DYNAMIC LANGUAGE SCRIPTURE
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
US8635073B2 (en) 2005-09-14 2014-01-21 At&T Intellectual Property I, L.P. Wireless multimodal voice browser for wireline-based IPTV services
US8688671B2 (en) 2005-09-14 2014-04-01 Millennial Media Managing sponsored content based on geographic region
US8509827B2 (en) 2005-09-21 2013-08-13 Buckyball Mobile Inc. Methods and apparatus of context-data acquisition and ranking
US8270933B2 (en) 2005-09-26 2012-09-18 Zoomsafer, Inc. Safety features for portable electronic device
US7992085B2 (en) 2005-09-26 2011-08-02 Microsoft Corporation Lightweight reference user interface
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
JP4908094B2 (ja) 2005-09-30 2012-04-04 株式会社リコー 情報処理システム、情報処理方法及び情報処理プログラム
US7633076B2 (en) * 2005-09-30 2009-12-15 Apple Inc. Automated response to and sensing of user activity in portable devices
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
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
US9600568B2 (en) 2006-01-23 2017-03-21 Veritas Technologies Llc Methods and systems for automatic evaluation of electronic discovery review and productions
US9275129B2 (en) 2006-01-23 2016-03-01 Symantec Corporation Methods and systems to efficiently find similar and near-duplicate emails and files
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
JP5218052B2 (ja) 2006-06-26 2013-06-26 日本電気株式会社 言語モデル生成システム、言語モデル生成方法および言語モデル生成用プログラム
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
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
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
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
US7930197B2 (en) 2006-09-28 2011-04-19 Microsoft Corporation Personal data mining
US8014308B2 (en) 2006-09-28 2011-09-06 Microsoft Corporation Hardware architecture for cloud services
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
US8214208B2 (en) 2006-09-28 2012-07-03 Reqall, Inc. Method and system for sharing portable voice profiles
US7528713B2 (en) 2006-09-28 2009-05-05 Ektimisi Semiotics Holdings, Llc Apparatus and method for providing a task reminder based on travel history
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 ハンズフリー通話装置
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
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
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
US7865817B2 (en) 2006-12-29 2011-01-04 Amazon Technologies, Inc. Invariant referencing in digital works
US8019271B1 (en) 2006-12-29 2011-09-13 Nextel Communications, Inc. Methods and systems for presenting information on mobile devices
US7889185B2 (en) 2007-01-05 2011-02-15 Apple Inc. Method, system, and graphical user interface for activating hyperlinks
US8060824B2 (en) 2007-01-05 2011-11-15 Starz Entertainment Llc User interface for a multimedia service
US7889184B2 (en) 2007-01-05 2011-02-15 Apple Inc. Method, system and graphical user interface for displaying hyperlink information
EP2099652B1 (en) 2007-01-05 2016-11-16 Visteon Global Technologies, Inc. System and method for customized audio prompting
US8391844B2 (en) 2007-01-07 2013-03-05 Apple Inc. Voicemail systems and methods
EP2119208A1 (en) 2007-01-09 2009-11-18 Spinvox Limited Selection of a link in a received message for speaking reply, which is converted into text form for delivery
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
WO2008098029A1 (en) 2007-02-06 2008-08-14 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
WO2008106655A1 (en) 2007-03-01 2008-09-04 Apapx, Inc. System and method for dynamic learning
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
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
US8949266B2 (en) 2007-03-07 2015-02-03 Vlingo Corporation Multiple web-based content category searching in mobile search application
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
US20110060587A1 (en) 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
US8996379B2 (en) 2007-03-07 2015-03-31 Vlingo Corporation Speech recognition text entry for software applications
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
JP4836290B2 (ja) 2007-03-20 2011-12-14 富士通株式会社 音声認識システム、音声認識プログラムおよび音声認識方法
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
US8696364B2 (en) 2007-03-28 2014-04-15 Breakthrough Performancetech, Llc Systems and methods for computerized interactive training
CN101542592A (zh) 2007-03-29 2009-09-23 松下电器产业株式会社 关键词提取装置
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 谷歌有限责任公司 多模式输入法编辑器
WO2008134625A1 (en) 2007-04-26 2008-11-06 Ford Global Technologies, Llc Emotive advisory system and method
US8695074B2 (en) 2007-04-26 2014-04-08 Microsoft Corporation Pre-authenticated calling for voice applications
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
US7983915B2 (en) 2007-04-30 2011-07-19 Sonic Foundry, Inc. Audio content search engine
US7912289B2 (en) 2007-05-01 2011-03-22 Microsoft Corporation Image text replacement
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
US8032383B1 (en) 2007-05-04 2011-10-04 Foneweb, Inc. Speech controlled services and devices using internet
US8886521B2 (en) 2007-05-17 2014-11-11 Redstart Systems, Inc. System and method of dictation for a speech recognition command system
US8099418B2 (en) 2007-05-28 2012-01-17 Panasonic Corporation Information search support method and information search support device
KR100968864B1 (ko) 2007-06-01 2010-07-09 엔에이치엔(주) 전자메일에 대한 부가 정보 서비스 제공방법 및 그 시스템
US8055708B2 (en) 2007-06-01 2011-11-08 Microsoft Corporation Multimedia spaces
AU2008258799A1 (en) * 2007-06-04 2008-12-11 Tom Tom International B.V. 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
CN101779200B (zh) 2007-06-14 2013-03-20 谷歌股份有限公司 词典词和短语确定方法和设备
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
KR100930802B1 (ko) 2007-06-29 2009-12-09 엔에이치엔(주) 이미지를 이용한 브라우저 제어 방법 및 시스템
US8050919B2 (en) 2007-06-29 2011-11-01 Microsoft Corporation Speaker recognition via voice sample based on multiple nearest neighbor classifiers
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
JP2010236858A (ja) 2007-08-10 2010-10-21 Mitsubishi Electric Corp ナビゲーション装置
US7983478B2 (en) 2007-08-10 2011-07-19 Microsoft Corporation Hidden markov model based handwriting/calligraphy generation
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
US8374316B2 (en) 2007-08-28 2013-02-12 International Business Machines Corporation System for recording spoken phone numbers during a voice call
US7847709B2 (en) 2007-08-28 2010-12-07 Gm Global Technology Operations, Inc. Multimode vehicle location device and method
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
US9063979B2 (en) 2007-11-01 2015-06-23 Ebay, Inc. Analyzing event streams of user sessions
US8010614B1 (en) 2007-11-01 2011-08-30 Bitdefender IPR Management Ltd. Systems and methods for generating signatures for electronic communication classification
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
US8065152B2 (en) 2007-11-08 2011-11-22 Demand Media, Inc. Platform for enabling voice commands to resolve phoneme based domain name registrations
JP4910991B2 (ja) 2007-11-08 2012-04-04 株式会社デンソー 駐車場案内システム
DE102008051757A1 (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
US20110246471A1 (en) 2010-04-06 2011-10-06 Selim Shlomo Rakib Retrieving video annotation metadata using a p2p network
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
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
US8595004B2 (en) 2007-12-18 2013-11-26 Nec Corporation Pronunciation variation rule extraction apparatus, pronunciation variation rule extraction method, and pronunciation variation rule extraction program
KR101300839B1 (ko) 2007-12-18 2013-09-10 삼성전자주식회사 음성 검색어 확장 방법 및 시스템
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
US8583416B2 (en) 2007-12-27 2013-11-12 Fluential, Llc Robust information extraction from utterances
US8219407B1 (en) 2007-12-27 2012-07-10 Great Northern Research, LLC Method for processing the output of a speech recognizer
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
US8205157B2 (en) 2008-03-04 2012-06-19 Apple Inc. Methods and graphical user interfaces for conducting searches on a portable multifunction device
US8201109B2 (en) 2008-03-04 2012-06-12 Apple Inc. Methods and graphical user interfaces for editing 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
WO2009118716A1 (en) 2008-03-27 2009-10-01 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
US20140365895A1 (en) 2008-05-13 2014-12-11 Apple Inc. Device and method for generating user interfaces from a template
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
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US8516562B2 (en) 2008-05-13 2013-08-20 Veritrix, Inc. Multi-channel multi-factor authentication
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
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
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
US8082498B2 (en) 2008-05-27 2011-12-20 Appfolio, Inc. Systems and methods for automatic spell checking of dynamically generated web pages
US20130100268A1 (en) 2008-05-27 2013-04-25 University Health Network Emergency detection and response system and method
US8464150B2 (en) 2008-06-07 2013-06-11 Apple Inc. Automatic language identification for dynamic text processing
EP2133772B1 (en) 2008-06-11 2011-03-09 ExB Asset Management GmbH Device and method incorporating an improved text input mechanism
JP5093494B2 (ja) 2008-06-12 2012-12-12 カシオ計算機株式会社 ナビゲーション装置およびナビゲーションプログラム
US8140330B2 (en) 2008-06-13 2012-03-20 Robert Bosch Gmbh System and method for detecting repeated patterns in dialog systems
US8412707B1 (en) 2008-06-13 2013-04-02 Ustringer LLC Method and apparatus for distributing content
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
US8300801B2 (en) 2008-06-26 2012-10-30 Centurylink Intellectual Property Llc System and method for telephone based noise cancellation
WO2009156978A1 (en) 2008-06-26 2009-12-30 Intuitive User Interfaces Ltd System and method for intuitive user interaction
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
US20100005085A1 (en) 2008-07-03 2010-01-07 Oracle International Corporation Creating relationship maps from enterprise application system data
EP2311030A1 (en) 2008-07-03 2011-04-20 Mobiter Dicta Oy Method and device for converting speech
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 シャープ株式会社 情報処理装置および情報処理方法
WO2010013369A1 (ja) 2008-07-30 2010-02-04 三菱電機株式会社 音声認識装置
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
US20110131038A1 (en) 2008-08-11 2011-06-02 Satoshi Oyaizu Exception dictionary creating unit, exception dictionary creating method, and program therefor, as well as speech recognition unit and speech recognition method
WO2010017627A1 (en) 2008-08-14 2010-02-18 Dwight Darling 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 日本電気株式会社 言語モデル作成装置、言語モデル作成方法、音声認識装置、音声認識方法、プログラム、および記録媒体
CN101802554B (zh) 2008-08-29 2013-09-25 联发科技(合肥)有限公司 用于播放语音导引的方法及相关导航装置
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
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
US8355919B2 (en) 2008-09-29 2013-01-15 Apple Inc. Systems and methods for text normalization for text to speech synthesis
US8396714B2 (en) 2008-09-29 2013-03-12 Apple Inc. Systems and methods for concatenation of words in text to speech synthesis
JP5520305B2 (ja) 2008-09-29 2014-06-11 フィッシャー−ローズマウント システムズ,インコーポレイテッド プロセス制御の環境設定を行う方法
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 ソニーモバイルコミュニケーションズ, エービー 携帯端末装置、操作オブジェクトの表示方法、及び操作オブジェクトの表示プログラム
EP2353108A4 (en) 2008-11-04 2018-01-03 Strossle International AB Method and system for analyzing text
US8170966B1 (en) 2008-11-04 2012-05-01 Bitdefender IPR Management Ltd. Dynamic streaming message clustering for rapid spam-wave detection
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
US20100205628A1 (en) 2009-02-12 2010-08-12 Davis Bruce L Media processing methods and arrangements
US8122353B2 (en) 2008-11-07 2012-02-21 Yahoo! Inc. Composing a message in an online textbox using a non-latin script
KR20180019752A (ko) 2008-11-10 2018-02-26 구글 엘엘씨 멀티센서 음성 검출
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
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US20100153968A1 (en) 2008-12-11 2010-06-17 Christof Engel External rendering of clipboard data
JP5355591B2 (ja) 2008-12-16 2013-11-27 三菱電機株式会社 ナビゲーション装置
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
JP5409656B2 (ja) 2009-01-22 2014-02-05 パナソニック株式会社 補聴装置
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
US9070282B2 (en) 2009-01-30 2015-06-30 Altorr Corp. Smartphone control of electrical devices
US8862252B2 (en) 2009-01-30 2014-10-14 Apple Inc. Audio user interface for displayless electronic device
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
WO2010096192A1 (en) 2009-02-18 2010-08-26 Exbiblio B.V. Interacting with rendered documents using a multi-function mobile device, such as a mobile phone
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
CA2753576A1 (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
WO2010105245A2 (en) 2009-03-12 2010-09-16 Exbiblio B.V. Automatically providing content associated with captured information, such as information captured in real-time
US8589374B2 (en) * 2009-03-16 2013-11-19 Apple Inc. Multifunction device with integrated search and application selection
US9026426B2 (en) 2009-03-19 2015-05-05 Google Inc. Input method editor
US8924156B2 (en) * 2009-03-26 2014-12-30 Nokia Corporation Method, apparatus, computer program and user interface
KR101078864B1 (ko) 2009-03-26 2011-11-02 한국과학기술원 질의/문서 주제 범주 변화 분석 시스템 및 그 방법과 이를 이용한 질의 확장 기반 정보 검색 시스템 및 그 방법
US8537980B2 (en) 2009-03-27 2013-09-17 Verizon Patent And Licensing Inc. Conversation support
GB0917753D0 (en) 2009-10-09 2009-11-25 Touchtype Ltd 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
US9189472B2 (en) 2009-03-30 2015-11-17 Touchtype Limited System and method for inputting text into small screen devices
US9424246B2 (en) 2009-03-30 2016-08-23 Touchtype Ltd. System and method for inputting text into electronic devices
US10191654B2 (en) 2009-03-30 2019-01-29 Touchtype Limited 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
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
JP5911796B2 (ja) 2009-04-30 2016-04-27 サムスン エレクトロニクス カンパニー リミテッド マルチモーダル情報を用いるユーザ意図推論装置及び方法
KR101032792B1 (ko) 2009-04-30 2011-05-06 주식회사 코오롱 에어백용 폴리에스테르 원단 및 그의 제조 방법
KR20120020164A (ko) 2009-05-08 2012-03-07 오브에지, 엘엘씨 차량 작동자에 의한 모바일 장치의 사용에 대한 정책 기반 제어 및 모니터링을 위한 시스템, 방법, 및 장치
WO2010131256A1 (en) 2009-05-13 2010-11-18 Rajesh Mehra A keyboard for linguistic scripts
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
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
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
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
US10540976B2 (en) 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
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
US20110002487A1 (en) 2009-07-06 2011-01-06 Apple Inc. Audio Channel Assignment for Audio Output in a Movable Device
US8700399B2 (en) 2009-07-06 2014-04-15 Sensory, Inc. Systems and methods for hands-free voice control and voice search
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
US8588378B2 (en) 2009-07-15 2013-11-19 Google Inc. Highlighting of voice message transcripts
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
US8875219B2 (en) 2009-07-30 2014-10-28 Blackberry Limited Apparatus and method for controlled sharing of personal information
US8229488B2 (en) 2009-07-30 2012-07-24 Sony Ericsson Mobile Communications Ab Methods, apparatuses and computer programs for media content distribution
US9015818B2 (en) 2009-07-31 2015-04-21 Adobe Systems Incorporated Software application operational transfer
KR101608770B1 (ko) 2009-08-03 2016-04-04 엘지전자 주식회사 이동단말기 및 그 제어방법
JP2011033874A (ja) 2009-08-03 2011-02-17 Alpine Electronics Inc 多言語音声認識装置及び多言語音声認識辞書作成方法
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
KR101496649B1 (ko) 2009-08-21 2015-03-02 삼성전자주식회사 복합 네트워크 망을 통한 외부 디바이스의 기능 공유 방법 및 그 장치
US9277021B2 (en) 2009-08-21 2016-03-01 Avaya Inc. Sending a user associated telecommunication address
EP2629211A1 (en) 2009-08-21 2013-08-21 Mikko Kalervo Väänänen Method and means for data searching and language translation
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
WO2011028842A2 (en) 2009-09-02 2011-03-10 Sri International Method and apparatus for exploiting human feedback in an intelligent automated assistant
US8451238B2 (en) 2009-09-02 2013-05-28 Amazon Technologies, Inc. Touch-screen user interface
US9031834B2 (en) 2009-09-04 2015-05-12 Nuance Communications, Inc. Speech enhancement techniques on the power spectrum
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
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
US9140569B2 (en) 2009-09-11 2015-09-22 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
US20110066942A1 (en) 2009-09-14 2011-03-17 Barton James M Multifunction Multimedia Device
CA2771899C (en) 2009-09-16 2017-08-01 Ab Initio Technology Llc Mapping dataset elements
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
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
US9384299B2 (en) 2009-09-22 2016-07-05 Thwapr, Inc. Receiving content for mobile media sharing
US9595257B2 (en) 2009-09-28 2017-03-14 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
TW201113741A (en) 2009-10-01 2011-04-16 Htc Corp Lock-state switching method, electronic apparatus and computer program product
KR20110036385A (ko) 2009-10-01 2011-04-07 삼성전자주식회사 사용자 의도 분석 장치 및 방법
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
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
CN102576336A (zh) 2009-10-05 2012-07-11 日本电气株式会社 具有电子邮件发送功能的通信终端,用于发送电子邮件的方法以及计算机可读记录介质
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
WO2011059765A1 (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
CN102056026B (zh) 2009-11-06 2013-04-03 中国移动通信集团设计院有限公司 音视频同步检测方法及其系统、语音检测方法及其系统
CN102483918B (zh) 2009-11-06 2014-08-20 株式会社东芝 声音识别装置
US20120137367A1 (en) 2009-11-06 2012-05-31 Cataphora, Inc. Continuous anomaly detection based on behavior modeling and heterogeneous information analysis
WO2011059997A1 (en) 2009-11-10 2011-05-19 Voicebox Technologies, Inc. System and method for providing a natural language content dedication service
US9171541B2 (en) 2009-11-10 2015-10-27 Voicebox Technologies Corporation System and method for hybrid processing in a natural language voice services environment
US8321209B2 (en) 2009-11-10 2012-11-27 Research In Motion Limited System and method for low overhead frequency domain voice authentication
US8527859B2 (en) 2009-11-10 2013-09-03 Dulcetta, Inc. Dynamic audio playback of soundtracks for electronic visual works
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
US8682649B2 (en) 2009-11-12 2014-03-25 Apple Inc. Sentiment prediction from textual data
US8732180B2 (en) 2009-11-12 2014-05-20 Apple Inc. Recommending media items
US9113264B2 (en) 2009-11-12 2015-08-18 Robert H. Frater Speakerphone and/or microphone arrays and methods and systems of the using the same
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
KR20110052863A (ko) 2009-11-13 2011-05-19 삼성전자주식회사 모바일 기기 및 그 제어 신호 생성 방법
KR20110052997A (ko) 2009-11-13 2011-05-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
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
AU2010325897A1 (en) 2009-12-04 2012-06-21 Tivo Inc. Multifunction multimedia device
US20110137664A1 (en) 2009-12-09 2011-06-09 International Business Machines Corporation Providing Schedule Related Information to External Entities
US8224300B2 (en) 2009-12-11 2012-07-17 Alpine Electronics, Inc. Method and apparatus to enhance navigation user experience for a smart phone device
US8543917B2 (en) 2009-12-11 2013-09-24 Nokia Corporation Method and apparatus for presenting a first-person world view of content
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
US8737975B2 (en) 2009-12-11 2014-05-27 At&T Mobility Ii Llc Audio-based text messaging
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 포항공과대학교 산학협력단 외국어 학습 장치 및 그 제공 방법
US8341037B2 (en) 2009-12-18 2012-12-25 Apple Inc. Mixed source media playback
US8922485B1 (en) 2009-12-18 2014-12-30 Google Inc. Behavioral recognition on mobile devices
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
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
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
EP3091535B1 (en) 2009-12-23 2023-10-11 Google LLC Multi-modal input on an electronic device
KR20110072847A (ko) 2009-12-23 2011-06-29 삼성전자주식회사 열려진 사용자 의도 처리를 위한 대화관리 시스템 및 방법
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
US8346562B2 (en) 2010-01-06 2013-01-01 Csr Technology Inc. Method and apparatus for voice controlled operation of a media player
WO2011085387A2 (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
US20110179372A1 (en) 2010-01-15 2011-07-21 Bradford Allen Moore Automatic Keyboard Layout Determination
US8334842B2 (en) 2010-01-15 2012-12-18 Microsoft Corporation Recognizing user intent in motion capture system
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
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
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
US8375034B2 (en) 2010-01-27 2013-02-12 Google Inc. Automatically schedule and re-schedule meetings using reschedule factors for conflicting 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
WO2011093025A1 (ja) 2010-01-29 2011-08-04 日本電気株式会社 入力支援システム、方法、およびプログラム
JP5752150B2 (ja) 2010-02-01 2015-07-22 ジンジャー ソフトウェア、インコーポレイティッド 特に小型キーボード装置向けのインターネットコーパスを用いた文脈感応型自動言語訂正
WO2011094734A2 (en) 2010-02-01 2011-08-04 Jumptap, Inc. Integrated advertising system
EP2531912A4 (en) 2010-02-02 2015-01-21 4D Retail Technology Corp SYSTEMS AND METHODS FOR PERSONALLY SUPPORTING HUMAN INTELLIGENCE
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
US8751218B2 (en) 2010-02-09 2014-06-10 Siemens Aktiengesellschaft Indexing content at semantic level
US8179370B1 (en) 2010-02-09 2012-05-15 Google Inc. Proximity based keystroke resolution
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
US8850360B2 (en) 2010-02-23 2014-09-30 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
US8521513B2 (en) 2010-03-12 2013-08-27 Microsoft Corporation Localization for interactive voice response systems
JP5642809B2 (ja) 2010-03-12 2014-12-17 ニュアンス コミュニケーションズ, インコーポレイテッド 携帯電話のタッチスクリーンとの使用等のためのマルチモーダルテキスト入力システム
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
EP2559030B1 (en) 2010-03-19 2017-06-21 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
US9628831B2 (en) 2010-03-25 2017-04-18 Whatsapp, Inc. Multimedia transcoding method and system for mobile devices
US20110238676A1 (en) 2010-03-25 2011-09-29 Palm, Inc. System and method for data capture, storage, and retrieval
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
WO2011123122A1 (en) 2010-03-31 2011-10-06 Hewlett-Packard Development Company, L.P. Contextual user interface
US8930176B2 (en) 2010-04-01 2015-01-06 Microsoft Corporation Interactive multilingual word-alignment techniques
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
CA2795812A1 (en) 2010-04-07 2011-10-13 Max Value Solutions INTL, LLC Method and system for name pronunciation guide services
US9929982B2 (en) 2010-04-08 2018-03-27 Microsoft Technology Licensing, Llc Designating automated agents as friends in a social network service
KR101369810B1 (ko) 2010-04-09 2014-03-05 이초강 로봇을 위한 경험적 상황인식 방법을 실행하는 프로그램을 기록한 컴퓨터 판독가능한 기록 매체.
US8810684B2 (en) 2010-04-09 2014-08-19 Apple Inc. Tagging images in a mobile communications device using a contacts list
CN103080873B (zh) 2010-04-12 2016-10-05 谷歌公司 用于输入法编辑器的扩展框
JP5315289B2 (ja) 2010-04-12 2013-10-16 トヨタ自動車株式会社 オペレーティングシステム及びオペレーティング方法
CN102214187B (zh) 2010-04-12 2017-03-01 阿里巴巴集团控股有限公司 复合事件处理方法及装置
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
US20130238647A1 (en) 2010-04-21 2013-09-12 Proteus Digital Health, Inc. Diagnostic System and Method
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
WO2011131785A1 (en) 2010-04-21 2011-10-27 Université Catholique de Louvain Normalisation of noisy typewritten texts
EP2586269B1 (en) 2010-04-22 2019-05-15 Zipit Wireless, Inc. System and method for administration and operation of one or more mobile electronic communications devices
US20110264495A1 (en) 2010-04-22 2011-10-27 Apple Inc. Aggregation of tagged media item information
US20110264999A1 (en) 2010-04-23 2011-10-27 Research In Motion Limited Electronic device including touch-sensitive input device and method of controlling same
US20110264530A1 (en) 2010-04-23 2011-10-27 Bryan Santangelo Apparatus and methods for dynamic secondary content and data insertion and delivery
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
JP2011238022A (ja) 2010-05-11 2011-11-24 Panasonic Corp 端末、コンテンツの利用の把握方法およびコンテンツの利用システム
JP5595112B2 (ja) 2010-05-11 2014-09-24 本田技研工業株式会社 ロボット
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
US9628579B2 (en) 2010-05-13 2017-04-18 Futurewei Technologies, Inc. System, apparatus for content delivery for internet traffic and methods thereof
US9634855B2 (en) 2010-05-13 2017-04-25 Alexander Poltorak Electronic personal interactive device that determines topics of interest using a conversational agent
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
WO2011146276A2 (en) 2010-05-19 2011-11-24 Google Inc. Television related searching
US8694313B2 (en) 2010-05-19 2014-04-08 Google Inc. Disambiguation of contact information using historical data
US9552355B2 (en) 2010-05-20 2017-01-24 Xerox Corporation Dynamic bi-phrases for statistical machine translation
US8522283B2 (en) 2010-05-20 2013-08-27 Google Inc. Television remote control data transfer
US20110288917A1 (en) 2010-05-21 2011-11-24 James Wanek Systems and methods for providing mobile targeted advertisements
CN103026318B (zh) 2010-05-21 2016-08-17 谷歌公司 输入法编辑器
US9236047B2 (en) 2010-05-21 2016-01-12 Microsoft Technology Licensing, Llc Voice stream augmented note taking
US8606579B2 (en) 2010-05-24 2013-12-10 Microsoft Corporation Voice print identification for identifying speakers
US9569549B1 (en) 2010-05-25 2017-02-14 Amazon Technologies, Inc. Location based recommendation and tagging of media content items
JP2011250027A (ja) 2010-05-25 2011-12-08 Panasonic Electric Works Co Ltd リモートコントロール機器及び情報通信システム
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
US10204625B2 (en) 2010-06-07 2019-02-12 Affectiva, Inc. Audio analysis learning using video data
US8707195B2 (en) 2010-06-07 2014-04-22 Apple Inc. Devices, methods, and graphical user interfaces for accessibility via a touch-sensitive surface
US8458115B2 (en) 2010-06-08 2013-06-04 Microsoft Corporation Mining topic-related aspects from user generated content
US8954425B2 (en) 2010-06-08 2015-02-10 Microsoft Corporation Snippet extraction and ranking
ES2534047T3 (es) 2010-06-08 2015-04-16 Vodafone Holding Gmbh Tarjeta inteligente con micrófono
US8874129B2 (en) * 2010-06-10 2014-10-28 Qualcomm Incorporated Pre-fetching information based on gesture and/or location
US20110306426A1 (en) 2010-06-10 2011-12-15 Microsoft Corporation Activity Participation Based On User Intent
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
US8504404B2 (en) 2010-06-17 2013-08-06 Google Inc. Distance and location-aware scheduling assistance in a calendar system with notification of potential conflicts
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
US8620890B2 (en) 2010-06-18 2013-12-31 Accelerated Vision Group Llc System and method of semantic based searching
US8375320B2 (en) 2010-06-22 2013-02-12 Microsoft Corporation Context-based task generation
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
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
US8812299B1 (en) 2010-06-24 2014-08-19 Nuance Communications, Inc. Class-based language model and use
JP2013529794A (ja) 2010-06-24 2013-07-22 本田技研工業株式会社 車載音声認識システム及び車両外音声認識システム間の通信システム及び方法
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
US20120005602A1 (en) 2010-07-02 2012-01-05 Nokia Corporation Methods and apparatuses for facilitating task switching
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
US8699821B2 (en) 2010-07-05 2014-04-15 Apple Inc. Aligning 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
US9167359B2 (en) 2010-07-23 2015-10-20 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
CN102340590A (zh) 2010-07-27 2012-02-01 上海闻泰电子科技有限公司 一种用于手机的感光加解锁装置及其实现方法
US8463592B2 (en) 2010-07-27 2013-06-11 International Business Machines Corporation Mode supporting multiple language input for entering text
US9633656B2 (en) 2010-07-27 2017-04-25 Sony Corporation Device registration process from second display
JP5606205B2 (ja) 2010-07-28 2014-10-15 京セラ株式会社 携帯端末装置
US8521526B1 (en) 2010-07-28 2013-08-27 Google Inc. Disambiguation of a spoken query term
CN102346557B (zh) 2010-07-28 2016-08-03 深圳市世纪光速信息技术有限公司 一种输入法和输入法系统
US8861925B1 (en) 2010-07-28 2014-10-14 Intuit Inc. Methods and systems for audio-visual synchronization
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 話者適応化装置、話者適応化方法および話者適応化用プログラム
US9349368B1 (en) 2010-08-05 2016-05-24 Google Inc. Generating an audio notification based on detection of a triggering event
US8775156B2 (en) 2010-08-05 2014-07-08 Google Inc. Translating languages in response to device motion
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
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
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 深圳市车音网科技有限公司 基于语音命令的导航方法及系统
US8719006B2 (en) 2010-08-27 2014-05-06 Apple Inc. Combined statistical and rule-based part-of-speech tagging for text-to-speech synthesis
US9235845B2 (en) 2010-08-27 2016-01-12 Intel Corporation Intelligent remote control system
US8478519B2 (en) 2010-08-30 2013-07-02 Google Inc. Providing results to parameterless search queries
WO2012030838A1 (en) 2010-08-30 2012-03-08 Honda Motor Co., Ltd. Belief tracking and action selection in spoken dialog systems
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
US20120059655A1 (en) 2010-09-08 2012-03-08 Nuance Communications, Inc. Methods and apparatus for providing input to a speech-enabled application program
EP2612261B1 (en) 2010-09-08 2018-11-07 Nuance Communications, Inc. Internet search related methods and apparatus
US8341142B2 (en) 2010-09-08 2012-12-25 Nuance Communications, Inc. Methods and apparatus for searching the Internet
US8700987B2 (en) 2010-09-09 2014-04-15 Sony Corporation Annotating E-books / E-magazines with application results and function calls
KR102288072B1 (ko) 2010-09-13 2021-08-10 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 부가기능의 관리
CN102402985A (zh) 2010-09-14 2012-04-04 盛乐信息技术(上海)有限公司 提高声纹识别安全性的声纹认证系统及其实现方法
JP5480760B2 (ja) 2010-09-15 2014-04-23 株式会社Nttドコモ 端末装置、音声認識方法および音声認識プログラム
US8560229B1 (en) 2010-09-15 2013-10-15 Google Inc. Sensor based activity detection
US8887169B2 (en) 2010-09-15 2014-11-11 Empire Technology Development Llc Task assignment in cloud computing environment
US9538229B2 (en) 2010-09-15 2017-01-03 Verizon Patent And Licensing Inc. Media experience for touch screen devices
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
US8594997B2 (en) 2010-09-27 2013-11-26 Sap Ag Context-aware conversational user interface
KR20120031722A (ko) 2010-09-27 2012-04-04 삼성전자주식회사 동적 응답 생성 장치 및 방법
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 鸿富锦精密工业(深圳)有限公司 具有学习功能的智能控制系统和方法
CN101958958A (zh) 2010-09-29 2011-01-26 中兴通讯股份有限公司 一种回复信息的方法和终端
CN102436456B (zh) 2010-09-29 2016-03-30 国际商业机器公司 用于对命名实体进行分类的方法和装置
US10037319B2 (en) 2010-09-29 2018-07-31 Touchtype Limited User input prediction
WO2012040872A1 (en) 2010-09-29 2012-04-05 Yahoo! Inc. Training search query intent classifier using wiki article titles and search click log
US8965545B2 (en) 2010-09-30 2015-02-24 Google Inc. Progressive encoding of audio
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
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
US8515736B1 (en) 2010-09-30 2013-08-20 Nuance Communications, Inc. Training call routing applications by reusing semantically-labeled data collected for prior applications
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
US20120271640A1 (en) 2010-10-15 2012-10-25 Basir Otman A Implicit Association and Polymorphism Driven Human Machine Interaction
JP5572059B2 (ja) 2010-10-21 2014-08-13 京セラ株式会社 表示装置
US20120108221A1 (en) 2010-10-28 2012-05-03 Microsoft Corporation Augmenting communication sessions with applications
JP5017441B2 (ja) 2010-10-28 2012-09-05 株式会社東芝 携帯型電子機器
US8335774B2 (en) 2010-10-28 2012-12-18 Google Inc. Replacing a master media file
DE112010005959B4 (de) 2010-10-29 2019-08-29 Iflytek Co., Ltd. Verfahren und System zur automatischen Erkennung eines Endpunkts einer Tonaufnahme
WO2012056463A1 (en) 2010-10-29 2012-05-03 Hewlett-Packard Development Company, L.P. Content recommendation for groups
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
WO2012063260A2 (en) 2010-11-09 2012-05-18 Mango Technologies Pvt Ltd. Virtual secretary on a smart device
US8881057B2 (en) 2010-11-09 2014-11-04 Blackberry Limited Methods and apparatus to display mobile device contexts
US20120124172A1 (en) 2010-11-15 2012-05-17 Google Inc. Providing Different Versions of a Media File
US8352576B2 (en) 2010-11-15 2013-01-08 Google Inc. Media file access
SG190312A1 (en) 2010-11-16 2013-06-28 Shardul Suresh Shroff System and method for providing virtual arbitration
US10144440B2 (en) 2010-11-17 2018-12-04 General Electric Company Methods and systems for data communications
US20120124126A1 (en) 2010-11-17 2012-05-17 Microsoft Corporation Contextual and task focused computing
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 アイシン・エィ・ダブリュ株式会社 車載端末装置
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
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
KR101330328B1 (ko) 2010-12-14 2013-11-15 한국전자통신연구원 음성 인식 방법 및 이를 위한 시스템
KR20120066825A (ko) * 2010-12-15 2012-06-25 고스트리트(주) 휴대용 단말의 인터페이스 방법
US20130297198A1 (en) * 2010-12-20 2013-11-07 Tomtom Belgium N.V. Method for generating map data
US9244606B2 (en) 2010-12-20 2016-01-26 Apple Inc. Device, method, and graphical user interface for navigation of concurrently open software applications
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
US10515147B2 (en) 2010-12-22 2019-12-24 Apple Inc. Using statistical language models for contextual lookup
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
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
US10620794B2 (en) 2010-12-23 2020-04-14 Apple Inc. Device, method, and graphical user interface for switching between two user interfaces
US8838449B2 (en) 2010-12-23 2014-09-16 Microsoft Corporation Word-dependent language model
JP2012142744A (ja) 2010-12-28 2012-07-26 Sanyo Electric Co Ltd 通信装置
US10045321B2 (en) 2010-12-30 2018-08-07 Staton Techiya, Llc Information processing using a population of data acquisition devices
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
EP2661705A4 (en) 2011-01-05 2016-06-01 Google Inc METHOD AND SYSTEM FOR FACILITATING TEXT INPUT
US9022283B2 (en) 2011-01-05 2015-05-05 Laetitia Gazel Anthoine Device for actuating a portable terminal
US8589950B2 (en) 2011-01-05 2013-11-19 Blackberry Limited Processing user input events in a web browser
WO2012092654A1 (en) 2011-01-07 2012-07-12 Research In Motion Limited System and method for controlling mobile communication devices
US8898065B2 (en) 2011-01-07 2014-11-25 Nuance Communications, Inc. Configurable speech recognition system using multiple recognizers
JP5712618B2 (ja) 2011-01-07 2015-05-07 サクサ株式会社 電話システム
US9183843B2 (en) 2011-01-07 2015-11-10 Nuance Communications, Inc. Configurable speech recognition system using multiple recognizers
US20120176255A1 (en) 2011-01-10 2012-07-12 Deutsche Telekom Ag Mobile device-based automatic parking location recorder and reminder using on-board diagnostics
TWI546700B (zh) * 2011-01-13 2016-08-21 宏達國際電子股份有限公司 手持電子裝置及其控制方法與電腦程式產品
US20130283283A1 (en) 2011-01-13 2013-10-24 Htc Corporation Portable electronic device and control method therefor
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
US8689116B2 (en) 2011-01-14 2014-04-01 Apple Inc. Email user interface
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
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
FI126119B (fi) 2011-01-31 2016-06-30 Waertsilae Finland Oy Massavaimennin
WO2012106198A1 (en) 2011-02-04 2012-08-09 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
US20120209654A1 (en) 2011-02-11 2012-08-16 Avaya Inc. Mobile activity assistant analysis
US8862612B2 (en) 2011-02-11 2014-10-14 Sony Corporation Direct search launch on a second display
TW201241640A (en) 2011-02-14 2012-10-16 Microsoft Corp Dormant background applications on mobile devices
US20120209413A1 (en) 2011-02-14 2012-08-16 Microsoft Corporation Background Audio on Mobile Devices
US10429869B2 (en) 2011-02-16 2019-10-01 Kortek Industries Pty Ltd Wireless power, light and automation control
JP2014507903A (ja) 2011-02-16 2014-03-27 コルテック インダストリーズ プロプライエタリー リミテッド 電源、照明およびオートメーションのワイヤレス制御
EP2677408A4 (en) 2011-02-17 2016-11-09 Nec Corp ELECTRONIC DEVICE, DISPLAY METHOD, AND PROGRAM
US8694335B2 (en) 2011-02-18 2014-04-08 Nuance Communications, Inc. Methods and apparatus for applying user corrections to medical fact extraction
US9916420B2 (en) 2011-02-18 2018-03-13 Nuance Communications, Inc. Physician and clinical documentation specialist workflow integration
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
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
US20120246133A1 (en) 2011-03-23 2012-09-27 Microsoft Corporation Online spelling correction/phrase completion system
US9202465B2 (en) 2011-03-25 2015-12-01 General Motors Llc Speech recognition dependent on text message content
US8766793B2 (en) 2011-03-25 2014-07-01 Microsoft Corporation Contextually-appropriate task reminders
CN202035047U (zh) 2011-03-29 2011-11-09 张磊 一种提取地址信息进行导航的移动终端
US9171546B1 (en) 2011-03-29 2015-10-27 Google Inc. Performing functions based on commands in context of telephonic communication
JP2012211932A (ja) 2011-03-30 2012-11-01 Toshiba Corp 音声認識装置及び音声認識方法
US9154555B2 (en) 2011-03-30 2015-10-06 Paypal, Inc. Device specific remote disabling of applications
US9280535B2 (en) 2011-03-31 2016-03-08 Infosys Limited Natural language querying with cascaded conditional random fields
US10630795B2 (en) 2011-03-31 2020-04-21 Oath Inc. Systems and methods for transferring application state between devices based on gestural input
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
JP6105552B2 (ja) 2011-03-31 2017-03-29 マイクロソフト テクノロジー ライセンシング,エルエルシー ロケーションベースの会話理解
US9337999B2 (en) 2011-04-01 2016-05-10 Intel Corporation Application usage continuum across platforms
CN103460786B (zh) 2011-04-01 2016-11-09 交互数字专利控股公司 用于共享公共pdp上下文的系统和方法
US9098488B2 (en) 2011-04-03 2015-08-04 Microsoft Technology Licensing, Llc Translation of multilingual embedded phrases
EP2695057A4 (en) 2011-04-04 2015-07-01 Hewlett Packard Development Co CREATION OF A CORRELATION RULE DEFINING A RELATIONSHIP BETWEEN TYPES OF EVENTS
US20120252367A1 (en) 2011-04-04 2012-10-04 Meditalk Devices, Llc Auditory Speech Module For Medical Devices
US20120316955A1 (en) * 2011-04-06 2012-12-13 Yahoo! Inc. System and Method for Mobile Application Search
US8914275B2 (en) 2011-04-06 2014-12-16 Microsoft Corporation Text prediction
US9292877B2 (en) 2011-04-13 2016-03-22 Longsand Limited Methods and systems for generating concept-based hash tags
CN102137193A (zh) 2011-04-13 2011-07-27 深圳凯虹移动通信有限公司 一种移动通讯终端及其通讯控制方法
US8983995B2 (en) 2011-04-15 2015-03-17 Microsoft Corporation Interactive semantic query suggestion for content search
US9366749B2 (en) 2011-04-15 2016-06-14 Qualcomm Incorporated Device position estimates from motion and ambient light classifiers
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
US20120272156A1 (en) 2011-04-22 2012-10-25 Kerger Kameron N Leveraging context to present content on a communication device
JP2014520297A (ja) 2011-04-25 2014-08-21 ベベオ,インク. 高度な個人的時刻表アシスタントのためのシステムよび方法
US9444692B2 (en) 2011-04-26 2016-09-13 Openet Telecom Ltd. Systems, devices and methods of crowd-sourcing across multiple domains
US9065660B2 (en) 2011-04-26 2015-06-23 Alcatel Lucent Usage monitoring after rollover
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
JP5592433B2 (ja) 2011-05-03 2014-09-17 宏達國際電子股▲ふん▼有限公司 手持ち式電子装置及びそのマルチメディアクリップ記録方法
GB2504256B (en) 2011-05-04 2019-12-25 Blackberry Ltd Methods for adjusting a presentation of graphical data displayed on a graphical user interface
US8150385B1 (en) 2011-05-09 2012-04-03 Loment, Inc. Automated reply messages among end user communication devices
US8171137B1 (en) 2011-05-09 2012-05-01 Google Inc. Transferring application state across devices
KR101760422B1 (ko) 2011-05-11 2017-07-31 엘지전자 주식회사 이동 단말기 및 그 제어방법
KR101233561B1 (ko) 2011-05-12 2013-02-14 엔에이치엔(주) 단어 수준의 후보 생성에 기초한 음성 인식 시스템 및 방법
US9418661B2 (en) 2011-05-12 2016-08-16 Johnson Controls Technology Company Vehicle voice recognition systems and methods
US9064006B2 (en) 2012-08-23 2015-06-23 Microsoft Technology Licensing, Llc Translating natural language utterances to keyword search queries
US9626441B2 (en) 2011-05-13 2017-04-18 Inolex Group, Inc. Calendar-based search engine
US20120290291A1 (en) 2011-05-13 2012-11-15 Gabriel Lee Gilbert Shelley Input processing for character matching and predicted word matching
US9075875B1 (en) 2011-05-13 2015-07-07 Google Inc. System and method for recommending television programs based on user search queries
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
JP6109736B2 (ja) 2011-05-20 2017-04-05 日本放送協会 番組切替制御装置及びプログラム
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
US20120304124A1 (en) 2011-05-23 2012-11-29 Microsoft Corporation Context aware input engine
US8954329B2 (en) 2011-05-23 2015-02-10 Nuance Communications, Inc. Methods and apparatus for acoustic disambiguation by insertion of disambiguating textual information
US9361282B2 (en) 2011-05-24 2016-06-07 Lg Electronics Inc. Method and device for user interface
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
TWI488174B (zh) 2011-06-03 2015-06-11 Apple Inc 自動地建立文字資料與音訊資料間之映射
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
US20120316875A1 (en) 2011-06-10 2012-12-13 Red Shift Company, Llc Hosted speech handling
US8732319B2 (en) 2011-06-10 2014-05-20 Qualcomm Incorporated Context awareness proximity-based establishment of wireless communication connection
WO2012170817A1 (en) 2011-06-10 2012-12-13 Google Inc. Augmenting statistical machine translation with linguistic knowledge
US9082408B2 (en) 2011-06-13 2015-07-14 Mmodal Ip Llc Speech recognition using loosely coupled components
US20120323967A1 (en) 2011-06-14 2012-12-20 Microsoft Corporation Spelling Using a Fuzzy Pattern Search
US20130158977A1 (en) 2011-06-14 2013-06-20 Andrew Senior System and Method for Evaluating Speech Exposure
US9201862B2 (en) 2011-06-16 2015-12-01 Asociacion Instituto Tecnologico De Informatica Method for symbolic correction in human-machine interfaces
US20120321112A1 (en) 2011-06-16 2012-12-20 Apple Inc. Selecting a digital stream based on an audio sample
US20120324391A1 (en) 2011-06-16 2012-12-20 Microsoft Corporation Predictive word completion
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
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
CN102292959B (zh) 2011-06-30 2013-11-06 华为技术有限公司 基于ott的媒体数据传输方法、装置及系统
US20130006633A1 (en) 2011-07-01 2013-01-03 Qualcomm Incorporated Learning speech models for mobile device users
US9367824B2 (en) 2011-07-05 2016-06-14 Sap Se Provisioning and performing action items
DE102011078642A1 (de) 2011-07-05 2013-01-10 Robert Bosch Gmbh Verfahren zum Prüfen eines m aus n Codes
US20140100847A1 (en) 2011-07-05 2014-04-10 Mitsubishi Electric Corporation Voice recognition device and navigation device
US9582598B2 (en) 2011-07-05 2017-02-28 Visa International Service Association Hybrid applications utilizing distributed models and views apparatuses, methods and systems
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
US8732028B2 (en) 2011-07-26 2014-05-20 Expose Retail Strategies Inc. Scheduling of order processing for remotely ordered goods
US8260117B1 (en) 2011-07-26 2012-09-04 Ooyala, Inc. Automatically recommending content
EP2551784A1 (en) 2011-07-28 2013-01-30 Roche Diagnostics GmbH Method of controlling the display of a dataset
US20130030924A1 (en) 2011-07-28 2013-01-31 American Express Travel Related Services Company, Inc. Systems and methods for generating and using a digital pass
US9292112B2 (en) 2011-07-28 2016-03-22 Hewlett-Packard Development Company, L.P. Multimodal interface
US9031842B2 (en) 2011-07-28 2015-05-12 Blackberry Limited Methods and devices for facilitating communications
US20130031177A1 (en) 2011-07-29 2013-01-31 Myxer, Inc. Systems and methods for dynamic media selection
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
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
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
EP2555536A1 (en) 2011-08-05 2013-02-06 Samsung Electronics Co., Ltd. Method for controlling electronic apparatus based on voice recognition and motion recognition, and electronic apparatus applying the same
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 中兴通讯股份有限公司 一种调用应用模块的方法及移动终端
WO2013022135A1 (en) 2011-08-11 2013-02-14 Lg Electronics Inc. Electronic device and method of controlling the same
US8706472B2 (en) 2011-08-11 2014-04-22 Apple Inc. Method for disambiguating multiple readings in language conversion
US8589160B2 (en) 2011-08-19 2013-11-19 Dolbey & Company, Inc. Systems and methods for providing an electronic dictation interface
KR101893151B1 (ko) 2011-08-21 2018-08-30 엘지전자 주식회사 영상 표시 장치, 단말 장치 및 그 동작 방법
US20130055099A1 (en) 2011-08-22 2013-02-28 Rose Yao Unified Messaging System with Integration of Call Log Data
US8943071B2 (en) 2011-08-23 2015-01-27 At&T Intellectual Property I, L.P. Automatic sort and propagation associated with electronic documents
JP5736276B2 (ja) * 2011-08-23 2015-06-17 京セラ株式会社 携帯電子機器、制御方法、および、制御プログラム
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
US20130054706A1 (en) 2011-08-29 2013-02-28 Mary Graham Modulation of Visual Notification Parameters Based on Message Activity and Notification Value
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
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
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
CN102968416A (zh) * 2011-09-01 2013-03-13 佳能株式会社 基于用户意图识别执行推荐的设备和方法
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
US20130061139A1 (en) 2011-09-01 2013-03-07 Google Inc. Server-based spell checking on a user device
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
US9612670B2 (en) 2011-09-12 2017-04-04 Microsoft Technology Licensing, Llc Explicit touch selection and cursor placement
US20130066832A1 (en) 2011-09-12 2013-03-14 Microsoft Corporation Application state synchronization
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
US9519453B2 (en) 2011-09-21 2016-12-13 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 엘지전자 주식회사 사용자 인터페이스 방법 및 장치
US20130080251A1 (en) 2011-09-26 2013-03-28 Accenture Global Services Limited Product registration and tracking system
US8812301B2 (en) 2011-09-26 2014-08-19 Xerox Corporation Linguistically-adapted structural query annotation
US8996381B2 (en) 2011-09-27 2015-03-31 Sensory, Incorporated Background speech recognition assistant
US8768707B2 (en) 2011-09-27 2014-07-01 Sensory Incorporated Background speech recognition assistant using speaker verification
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
AU2012316484A1 (en) 2011-09-30 2014-04-17 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US8452602B1 (en) 2011-09-30 2013-05-28 Google Inc. Structuring verbal commands to allow concatenation in a voice interface in a mobile device
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
US8452597B2 (en) 2011-09-30 2013-05-28 Google Inc. Systems and methods for continual speech recognition and detection in mobile computing devices
EP3200185A1 (en) 2011-09-30 2017-08-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
CN103035251A (zh) 2011-09-30 2013-04-10 西门子公司 一种建立语音转换模型的方法、语音转换的方法及系统
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
US9640175B2 (en) 2011-10-07 2017-05-02 Microsoft Technology Licensing, Llc Pronunciation learning from user correction
US9521175B2 (en) 2011-10-07 2016-12-13 Henk B. Rogers Media tagging
US8738363B2 (en) 2011-10-13 2014-05-27 Xerox Corporation System and method for suggestion mining
US9021565B2 (en) 2011-10-13 2015-04-28 At&T Intellectual Property I, L.P. Authentication techniques utilizing a computing device
US20130097566A1 (en) 2011-10-17 2013-04-18 Carl Fredrik Alexander BERGLUND System and method for displaying items on electronic devices
US8881289B2 (en) * 2011-10-18 2014-11-04 Mcafee, Inc. User behavioral risk assessment
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
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
SG11201401865QA (en) 2011-10-29 2014-05-29 Sweet Spot Inc System and method for location-based, interactive consumer engagement platform
US20130111330A1 (en) 2011-11-01 2013-05-02 Research In Motion Limited Accelerated compositing of fixed position elements on an electronic device
US9223948B2 (en) 2011-11-01 2015-12-29 Blackberry Limited Combined passcode and activity launch modifier
US8996350B1 (en) 2011-11-02 2015-03-31 Dub Software Group, Inc. System and method for automatic document management
US9736089B2 (en) 2011-11-02 2017-08-15 Blackberry 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
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
WO2013075071A1 (en) 2011-11-18 2013-05-23 Ayman Hammad Mobile wallet store and service injection platform apparatuses, methods and systems
US8972263B2 (en) 2011-11-18 2015-03-03 Soundhound, Inc. System and method for performing dual mode speech recognition
KR101467519B1 (ko) 2011-11-21 2014-12-02 주식회사 케이티 음성 정보를 이용한 컨텐츠 검색 서버 및 방법
CN102510426A (zh) 2011-11-29 2012-06-20 安徽科大讯飞信息科技股份有限公司 个人助理应用访问方法及系统
CN103135916A (zh) 2011-11-30 2013-06-05 英特尔公司 手持无线设备中的智能图形界面
EP2786276A1 (en) 2011-11-30 2014-10-08 DeCarta Inc. Systems and methods for performing geo-search and retrieval of electronic point-of-interest records using a big index
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
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
US8818810B2 (en) 2011-12-29 2014-08-26 Robert Bosch Gmbh Speaker verification in a health monitoring system
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 富士通株式会社 画像再生装置、画像再生プログラム、及び画像再生方法
JP5887937B2 (ja) 2012-01-06 2016-03-16 株式会社リコー 出力制御システム、出力制御方法、出力制御装置、および出力制御プログラム
JP5547216B2 (ja) 2012-01-06 2014-07-09 株式会社東芝 電子機器及び表示制御方法
US8994560B2 (en) * 2012-01-06 2015-03-31 International Business Machines Corporation Managing parking space availability
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 晨星软件研发(深圳)有限公司 电子装置的声控系统以及相关控制方法
US8812302B2 (en) 2012-01-17 2014-08-19 Google Inc. Techniques for inserting diacritical marks to text input via a user device
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
JP2013148419A (ja) 2012-01-18 2013-08-01 Clarion Co Ltd 誘導システム、携帯端末装置および車載装置
EP2618239B1 (en) 2012-01-19 2016-10-05 BlackBerry Limited Next letter prediction for virtual keyboard
US9099098B2 (en) 2012-01-20 2015-08-04 Qualcomm Incorporated Voice activity detection in presence of background noise
US20130204813A1 (en) 2012-01-20 2013-08-08 Fluential, Llc Self-learning, context aware virtual assistants, systems and methods
US9372978B2 (en) * 2012-01-20 2016-06-21 Apple Inc. Device, method, and graphical user interface for accessing an application in a locked device
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
US9253135B2 (en) 2012-02-07 2016-02-02 Google Inc. Notification management
KR101900319B1 (ko) 2012-02-07 2018-09-19 삼성전자 주식회사 서비스 연동 수행 방법과 이를 위한 시스템
US8995960B2 (en) 2012-02-10 2015-03-31 Dedo Interactive, Inc. Mobile device authentication
CN102629246B (zh) 2012-02-10 2017-06-27 百纳(武汉)信息技术有限公司 识别浏览器语音命令的服务器及浏览器语音命令识别方法
US8533266B2 (en) 2012-02-14 2013-09-10 Google Inc. User presence detection and event discovery
CN103247290A (zh) 2012-02-14 2013-08-14 富泰华工业(深圳)有限公司 通信装置及其控制方法
US10209954B2 (en) 2012-02-14 2019-02-19 Microsoft Technology Licensing, Llc Equal access to speech and touch input
CN103259907A (zh) 2012-02-15 2013-08-21 深圳富泰宏精密工业有限公司 情景模式切换系统及方法
JP2013167806A (ja) 2012-02-16 2013-08-29 Toshiba Corp 情報通知支援装置、情報通知支援方法、および、プログラム
US8682932B2 (en) 2012-02-16 2014-03-25 Oracle International Corporation Mechanisms for searching enterprise data graphs
US8832092B2 (en) 2012-02-17 2014-09-09 Bottlenose, Inc. Natural language processing optimized for micro content
US8793136B2 (en) 2012-02-17 2014-07-29 Lg Electronics Inc. Method and apparatus for smart voice recognition
CN104115150B (zh) 2012-02-17 2018-05-04 皇家飞利浦有限公司 急性肺损伤(ali)/急性呼吸窘迫整合征(ards)评估和监测
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
US9042867B2 (en) 2012-02-24 2015-05-26 Agnitio S.L. System and method for speaker recognition on mobile devices
GB2503968B (en) 2012-02-24 2021-02-17 Blackberry Ltd Touchscreen keyboard providing word predictions in partitions of the touchscreen keyboard in proximate association with candidate letters
KR101889836B1 (ko) 2012-02-24 2018-08-20 삼성전자주식회사 음성인식을 통한 단말기의 잠금 상태 해제 및 조작 방법 및 장치
US10984337B2 (en) 2012-02-29 2021-04-20 Microsoft Technology Licensing, Llc Context-based search query formation
US8543398B1 (en) 2012-02-29 2013-09-24 Google Inc. Training an automatic speech recognition system using compressed word frequencies
US9026441B2 (en) 2012-02-29 2015-05-05 Nant Holdings Ip, Llc Spoken control for user construction of complex behaviors
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US20130235987A1 (en) 2012-03-06 2013-09-12 Jose Arroniz-Escobar Automatic machine to machine distribution of subscriber contact information
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9240970B2 (en) 2012-03-07 2016-01-19 Accenture Global Services Limited Communication collaboration
US8775177B1 (en) 2012-03-08 2014-07-08 Google Inc. Speech recognition process
US20130238326A1 (en) 2012-03-08 2013-09-12 Lg Electronics Inc. Apparatus and method for multiple device voice control
US9639174B2 (en) 2012-03-09 2017-05-02 Paypal, Inc. Mobile device display content based on shaking the device
US20150006157A1 (en) 2012-03-14 2015-01-01 Nec Corporation Term synonym acquisition method and term synonym acquisition apparatus
WO2013138633A1 (en) 2012-03-15 2013-09-19 Regents Of The University Of Minnesota Automated verbal fluency assessment
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
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 삼성전자주식회사 서드 파티 테스크 공급자들의 서비스 제공을 대행하는 협력적 퍼스널 어시스턴트 시스템 및 그에 따른 방법
JP5870790B2 (ja) 2012-03-19 2016-03-01 富士通株式会社 文章校正装置、及び文章校正方法
US8898064B1 (en) 2012-03-19 2014-11-25 Rawles Llc Identifying candidate passwords from captured audio
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 音声対話支援装置、方法、およびプログラム
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
JP2013200265A (ja) 2012-03-26 2013-10-03 Aisin Aw Co Ltd ナビゲーションアプリがインストールされた電子機器、電子機器の制御方法及びコンピュータプログラム
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
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
CN103366741B (zh) 2012-03-31 2019-05-17 上海果壳电子有限公司 语音输入纠错方法及系统
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
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
US8996356B1 (en) 2012-04-10 2015-03-31 Google Inc. Techniques for predictive input method editors
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
EP2839391A4 (en) 2012-04-20 2016-01-27 Maluuba Inc CONVERSATION 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
JP5921320B2 (ja) * 2012-04-27 2016-05-24 富士通テン株式会社 表示システム、携帯装置、車載装置、及び、プログラム
TWI511537B (zh) 2012-04-27 2015-12-01 Wistron Corp 智慧型電視系統、智慧型電視、行動裝置及其輸入操作方法
WO2013162603A1 (en) 2012-04-27 2013-10-31 Hewlett-Packard Development Company, L.P. Audio input from user
CN102682771B (zh) 2012-04-27 2013-11-20 厦门思德电子科技有限公司 一种适用于云平台的多语音控制方法
US20130289991A1 (en) 2012-04-30 2013-10-31 International Business Machines Corporation Application of Voice Tags in a Social Media Context
US20130285916A1 (en) 2012-04-30 2013-10-31 Research In Motion Limited Touchscreen keyboard providing word predictions at locations in association with candidate letters
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
KR101977072B1 (ko) 2012-05-07 2019-05-10 엘지전자 주식회사 음성 파일과 관련된 텍스트의 표시 방법 및 이를 구현한 전자기기
CN102694909A (zh) 2012-05-07 2012-09-26 深圳桑菲消费通信有限公司 一种手机的智能锁屏系统和方法
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
EP2847657B1 (en) 2012-05-09 2016-08-10 Apple Inc. Device, method, and graphical user interface for displaying additional information in response to a user contact
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
US9467202B2 (en) 2012-05-10 2016-10-11 Lg Electronics Inc. Method and apparatus for downloading content using NFC
US8725808B2 (en) 2012-05-10 2014-05-13 Intel Mobile Communications GmbH Method for transferring data between a first device and a second device
US9746916B2 (en) 2012-05-11 2017-08-29 Qualcomm Incorporated Audio user interaction recognition and application interface
JP5996262B2 (ja) 2012-05-11 2016-09-21 シャープ株式会社 文字入力装置、電子機器、制御方法、制御プログラムおよび記録媒体
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
US8775442B2 (en) 2012-05-15 2014-07-08 Apple Inc. Semantic search using a single-source semantic model
US20130308922A1 (en) 2012-05-15 2013-11-21 Microsoft Corporation Enhanced video discovery and productivity through accessibility
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
CN103426428B (zh) 2012-05-18 2016-05-25 华硕电脑股份有限公司 语音识别方法及系统
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 語音識別方法及系統
US9247306B2 (en) 2012-05-21 2016-01-26 Intellectual Ventures Fund 83 Llc Forming a multimedia product using video chat
US8484573B1 (en) 2012-05-23 2013-07-09 Google Inc. Predictive virtual keyboard
US9406084B2 (en) 2012-05-23 2016-08-02 Specialty's Café & Bakery, Inc. Methods for submitting a food order remotely
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
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
KR20130133629A (ko) 2012-05-29 2013-12-09 삼성전자주식회사 전자장치에서 음성명령을 실행시키기 위한 장치 및 방법
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
CN102750087A (zh) 2012-05-31 2012-10-24 华为终端有限公司 控制语音识别功能的方法、装置和终端设备
US9620128B2 (en) 2012-05-31 2017-04-11 Elwha Llc Speech recognition adaptation systems based on adaptation data
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
US8768693B2 (en) 2012-05-31 2014-07-01 Yahoo! Inc. Automatic tag extraction from audio annotated photos
IN2014DN11252A (zh) 2012-05-31 2015-10-09 Doat Media Ltd
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
US9043150B2 (en) 2012-06-05 2015-05-26 Apple Inc. Routing applications for navigation
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
US9230556B2 (en) 2012-06-05 2016-01-05 Apple Inc. Voice instructions during navigation
US8725823B2 (en) 2012-06-05 2014-05-13 Forget You Not, LLC Location-based communications
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
US9071564B2 (en) 2012-06-07 2015-06-30 Apple Inc. Data synchronization using mail and push notification services
US10444836B2 (en) 2012-06-07 2019-10-15 Nook Digital, Llc Accessibility aids for users of electronic devices
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9002380B2 (en) 2012-06-08 2015-04-07 Apple Inc. Proximity-based notifications in a mobile device
WO2013185109A2 (en) 2012-06-08 2013-12-12 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
US20130332159A1 (en) 2012-06-08 2013-12-12 Apple Inc. Using fan throttling to enhance dictation accuracy
US9674331B2 (en) 2012-06-08 2017-06-06 Apple Inc. Transmitting data from an automated assistant to an accessory
US9230218B2 (en) 2012-06-08 2016-01-05 Spotify Ab Systems and methods for recognizing ambiguity in metadata
US20130332168A1 (en) 2012-06-08 2013-12-12 Samsung Electronics Co., Ltd. Voice activated search and control for applications
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
US9916514B2 (en) 2012-06-11 2018-03-13 Amazon Technologies, Inc. Text recognition driven functionality
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
JP6368455B2 (ja) 2012-06-12 2018-08-01 京セラ株式会社 装置、方法、及びプログラム
JP5921348B2 (ja) 2012-06-13 2016-05-24 三菱電機株式会社 映像表示端末
US20150149469A1 (en) 2012-06-14 2015-05-28 Nokia Corporation Methods and apparatus for associating interest tags with media items based on social diffusions among users
US9241187B2 (en) 2012-06-14 2016-01-19 Flextronics Ap, Llc Method and system for customizing television content
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ドコモ 機能実行指示システム、機能実行指示方法及び機能実行指示プログラム
US9734839B1 (en) 2012-06-20 2017-08-15 Amazon Technologies, Inc. Routing natural language commands to the appropriate applications
US9185501B2 (en) 2012-06-20 2015-11-10 Broadcom Corporation Container-located information transfer module
US20130347018A1 (en) 2012-06-21 2013-12-26 Amazon Technologies, Inc. Providing supplemental content with active media
US20140012574A1 (en) 2012-06-21 2014-01-09 Maluuba Inc. Interactive timeline for presenting and organizing tasks
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
US9813882B1 (en) 2012-06-25 2017-11-07 Amazon Technologies, Inc. Mobile notifications based upon notification content
US8606577B1 (en) 2012-06-25 2013-12-10 Google Inc. Visual confirmation of voice recognized text input
US20130342672A1 (en) 2012-06-25 2013-12-26 Amazon Technologies, Inc. Using gaze determination with device input
US20130346068A1 (en) 2012-06-25 2013-12-26 Apple Inc. Voice-Based Image Tagging and Searching
US9305555B2 (en) 2012-06-25 2016-04-05 Mitsubishi Electric Corporation Onboard information device
US20150201064A1 (en) 2012-06-26 2015-07-16 Blackberry Limited Methods and apparatus to detect and add impact events to a calendar program
US8819841B2 (en) 2012-06-26 2014-08-26 Google Inc. Automated accounts for media playback
CN102801853B (zh) 2012-06-27 2017-02-15 宇龙计算机通信科技(深圳)有限公司 移动终端和自动触发任务执行方法
US20140006153A1 (en) 2012-06-27 2014-01-02 Infosys Limited System for making personalized offers for business facilitation of an entity and methods thereof
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 엘지전자 주식회사 이동 단말기 및 그것의 음성 인식 방법
JP5852930B2 (ja) 2012-06-29 2016-02-03 Kddi株式会社 入力文字推定装置およびプログラム
US10620797B2 (en) 2012-06-29 2020-04-14 Spotify Ab Systems and methods for multi-context media control and playback
US9996628B2 (en) 2012-06-29 2018-06-12 Verisign, Inc. Providing audio-activated resource access for user devices based on speaker voiceprint
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
US9195383B2 (en) 2012-06-29 2015-11-24 Spotify Ab Systems and methods for multi-path control signals for media presentation devices
US20140006012A1 (en) 2012-07-02 2014-01-02 Microsoft Corporation Learning-Based Processing of Natural Language Questions
KR20140004515A (ko) 2012-07-03 2014-01-13 삼성전자주식회사 디스플레이 장치, 대화형 시스템 및 응답 정보 제공 방법
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 삼성전자 주식회사 음성을 이용한 사용자 디바이스들 간 서비스 연결 방법 및 장치
US9064493B2 (en) 2012-07-09 2015-06-23 Nuance Communications, Inc. Detecting potential significant errors in speech recognition results
CN103543902A (zh) 2012-07-09 2014-01-29 上海博路信息技术有限公司 一种短信地址的地图显示方法
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
CA2879619A1 (en) 2012-07-20 2014-01-23 Intertrust Technologies Corporation Information targeting systems and methods
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
US20140031060A1 (en) 2012-07-25 2014-01-30 Aro, Inc. Creating Context Slices of a Storyline from Mobile Device Data
JP2014026629A (ja) 2012-07-26 2014-02-06 Panasonic Corp 入力装置及び入力支援方法
US8949334B2 (en) 2012-07-26 2015-02-03 Microsoft Corporation Push-based recommendations
US8589911B1 (en) 2012-07-26 2013-11-19 Google Inc. Intent fulfillment
US8922034B2 (en) 2012-07-27 2014-12-30 Illinois Tool Works Inc. Power converter for engine generator
US9615173B2 (en) 2012-07-27 2017-04-04 Sony Corporation Information processing system and storage medium
US8442821B1 (en) 2012-07-27 2013-05-14 Google Inc. Multi-frame prediction for hybrid neural network/hidden Markov models
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
US20140039893A1 (en) 2012-07-31 2014-02-06 Sri International Personalized Voice-Driven User Interfaces for Remote Multi-User Services
US9465833B2 (en) 2012-07-31 2016-10-11 Veveo, Inc. Disambiguating user intent in conversational interaction system for large corpus information retrieval
US8831957B2 (en) 2012-08-01 2014-09-09 Google Inc. Speech recognition models based on location indicia
US20140035823A1 (en) 2012-08-01 2014-02-06 Apple Inc. Dynamic Context-Based Language Determination
US10108725B2 (en) 2012-08-02 2018-10-23 Rule 14 Real-time and adaptive data mining
US9160844B2 (en) 2012-08-06 2015-10-13 Angel.Com Incorporated Conversation assistant
US9390174B2 (en) 2012-08-08 2016-07-12 Google Inc. Search result ranking and presentation
WO2014025990A1 (en) 2012-08-10 2014-02-13 Nuance Communications, Inc. Virtual agent communication for electronic devices
US20140052791A1 (en) 2012-08-14 2014-02-20 International Business Machines Corporation Task Based Filtering of Unwanted Electronic Communications
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
EP2885918A4 (en) 2012-08-15 2016-06-15 Ie Business Plains Llc ONLINE COLLABORATIVE SUITE
US20140053101A1 (en) 2012-08-15 2014-02-20 Ge Aviation Systems Llc Methods for displaying on a graphical user interface
US9497515B2 (en) 2012-08-16 2016-11-15 Nuance Communications, Inc. User interface for entertainment systems
KR101922464B1 (ko) 2012-08-16 2018-11-27 삼성전자주식회사 메시지 송수신 방법 및 그 전자장치
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
KR20150045404A (ko) 2012-08-16 2015-04-28 뉘앙스 커뮤니케이션즈, 인코포레이티드 엔터테인먼트 시스템을 위한 사용자 인터페이스
CN102820033B (zh) 2012-08-17 2013-12-04 南京大学 一种声纹识别方法
US20140279739A1 (en) 2013-03-15 2014-09-18 InsideSales.com, Inc. Resolving and merging duplicate records using machine learning
US20160357790A1 (en) 2012-08-20 2016-12-08 InsideSales.com, Inc. Resolving and merging duplicate records using machine learning
WO2014029099A1 (en) 2012-08-24 2014-02-27 Microsoft Corporation I-vector based clustering training data in speech recognition
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 엘지전자 주식회사 단말기 및 그 제어 방법
US20150227505A1 (en) 2012-08-27 2015-08-13 Hitachi, Ltd. Word meaning relationship extraction device
US9390370B2 (en) 2012-08-28 2016-07-12 International Business Machines Corporation Training deep neural network acoustic models using distributed hessian-free optimization
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 京セラ株式会社 電子機器、制御方法、及び制御プログラム
US9049295B1 (en) 2012-08-28 2015-06-02 West Corporation Intelligent interactive voice response system for processing customer communications
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 腾讯科技(深圳)有限公司 一种终端控制方法和设备
US10026394B1 (en) 2012-08-31 2018-07-17 Amazon Technologies, Inc. Managing dialogs on a speech recognition platform
US9218333B2 (en) 2012-08-31 2015-12-22 Microsoft Technology Licensing, Llc Context sensitive auto-correction
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 경희대학교 산학협력단 감정 음성 인식장치 및 방법
US8826415B2 (en) 2012-09-04 2014-09-02 Apple Inc. Automated device access
WO2014036683A1 (zh) 2012-09-04 2014-03-13 华为终端有限公司 媒体播放方法、控制点和终端
JP2014052445A (ja) 2012-09-06 2014-03-20 Canon Inc ズームレンズ
US9536049B2 (en) 2012-09-07 2017-01-03 Next It Corporation Conversational virtual healthcare assistant
US9325809B1 (en) 2012-09-07 2016-04-26 Mindmeld, Inc. Audio recall during voice conversations
US20140074466A1 (en) 2012-09-10 2014-03-13 Google Inc. Answering questions using environmental context
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
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
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
US10656808B2 (en) 2012-09-18 2020-05-19 Adobe Inc. Natural language and user interface controls
JP6057637B2 (ja) 2012-09-18 2017-01-11 株式会社アイ・オー・データ機器 携帯型情報端末装置、機能切替方法、および機能切替プログラム
US9081482B1 (en) 2012-09-18 2015-07-14 Google Inc. Text input suggestion ranking
US9519641B2 (en) 2012-09-18 2016-12-13 Abbyy Development Llc Photography recognition translation
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
US8823507B1 (en) 2012-09-19 2014-09-02 Amazon Technologies, Inc. Variable notification alerts
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
US8983383B1 (en) 2012-09-25 2015-03-17 Rawles Llc Providing hands-free service to multiple devices
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
US8983836B2 (en) 2012-09-26 2015-03-17 International Business Machines Corporation Captioning using socially derived acoustic profiles
US8498864B1 (en) 2012-09-27 2013-07-30 Google Inc. Methods and systems for predicting a text
EP2901730A4 (en) 2012-09-27 2016-08-03 Aegis Mobility Inc MOBILE DEVICE CONTEXT WITH CLOSE-UP COMMUNICATIONS
JP2014072586A (ja) 2012-09-27 2014-04-21 Sharp Corp 表示装置、表示方法、テレビジョン受像機、プログラム、および、記録媒体
CN104469255A (zh) 2013-09-16 2015-03-25 杜比实验室特许公司 改进的音频或视频会议
US10824310B2 (en) 2012-12-20 2020-11-03 Sri International Augmented reality virtual personal assistant for external representation
US8806613B2 (en) 2012-09-28 2014-08-12 Intel Corporation Intelligent task assignment and authorization systems and methods
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
KR20140042994A (ko) 2012-09-28 2014-04-08 한국전자통신연구원 가상 에이전트와의 대화 내용에서 자동으로 추출되는 개인 프로파일링 정보를 이용한 자동학습 기반의 인공지능 대화 시스템
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
US20140095172A1 (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
KR102009423B1 (ko) 2012-10-08 2019-08-09 삼성전자주식회사 음성 인식을 이용한 미리 설정된 동작 모드의 수행 방법 및 장치
US9230560B2 (en) 2012-10-08 2016-01-05 Nant Holdings Ip, Llc Smart home automation systems and methods
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 本田技研工業株式会社 対話システム及び対話システム向け発話の判別方法
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US8713433B1 (en) 2012-10-16 2014-04-29 Google Inc. Feature-based autocorrection
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
WO2014064531A1 (en) 2012-10-22 2014-05-01 Spotify Ab Systems and methods for pre-fetching media content
KR20150069018A (ko) 2012-10-22 2015-06-22 브이아이디 스케일, 인크. 모바일 장치에서의 사용자 존재 검출
US9305439B2 (en) 2012-10-25 2016-04-05 Google Inc. Configurable indicator on computing device
US8527276B1 (en) 2012-10-25 2013-09-03 Google Inc. Speech synthesis using deep neural networks
US20150228274A1 (en) 2012-10-26 2015-08-13 Nokia Technologies Oy Multi-Device Speech Recognition
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
US9459176B2 (en) 2012-10-26 2016-10-04 Azima Holdings, Inc. Voice controlled vibration data analyzer systems and methods
KR20140054643A (ko) 2012-10-29 2014-05-09 삼성전자주식회사 음성인식장치 및 음성인식방법
WO2014070872A2 (en) 2012-10-30 2014-05-08 Robert Bosch Gmbh System and method for multimodal interaction with reduced distraction in operating vehicles
US10304465B2 (en) 2012-10-30 2019-05-28 Google Technology Holdings LLC Voice control user interface for low power mode
KR101967917B1 (ko) 2012-10-30 2019-08-13 삼성전자주식회사 음성을 인식하는 전자 장치 및 방법
KR102117841B1 (ko) 2012-10-30 2020-06-02 삼성전자주식회사 전자장치 및 그 제어방법
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
US9734249B2 (en) 2012-11-07 2017-08-15 Intertrust Technologies Corporation Personalized data management systems and methods
JP6018881B2 (ja) 2012-11-07 2016-11-02 株式会社日立製作所 ナビゲーション装置、及びナビゲーション方法
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 삼성전자주식회사 프로젝션 장치
US9085303B2 (en) 2012-11-15 2015-07-21 Sri International Vehicle personal assistant
US9798799B2 (en) 2012-11-15 2017-10-24 Sri International Vehicle personal assistant that interprets spoken natural language input based upon vehicle context
US9032219B2 (en) 2012-11-16 2015-05-12 Nuance Communications, Inc. Securing speech recognition data
KR102028702B1 (ko) 2012-11-16 2019-10-04 삼성전자주식회사 현재의 상태에 따른 응답 메시지를 송신하는 전자 장치 및 방법
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
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
JP2014102669A (ja) 2012-11-20 2014-06-05 Toshiba Corp 情報処理装置、情報処理方法およびプログラム
KR20140064246A (ko) 2012-11-20 2014-05-28 한국전자통신연구원 착용형 디스플레이 장치
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
US20140149118A1 (en) 2012-11-28 2014-05-29 Lg Electronics Inc. Apparatus and method for driving electric device using speech recognition
RU2530268C2 (ru) 2012-11-28 2014-10-10 Общество с ограниченной ответственностью "Спиктуит" Способ обучения информационной диалоговой системы пользователем
US10026400B2 (en) 2013-06-27 2018-07-17 Google Llc Generating dialog recommendations for chat information systems based on user interaction and environmental data
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 엘지전자 주식회사 가전 기기 구동 장치 및 방법
US20140146200A1 (en) 2012-11-28 2014-05-29 Research In Motion Limited Entries to an electronic calendar
KR102104025B1 (ko) 2012-11-29 2020-04-23 에드센스, 엘.엘.씨. 여러 애플리케이션들을 디스플레이하기 위한 시스템 및 방법
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
US9159319B1 (en) 2012-12-03 2015-10-13 Amazon Technologies, Inc. Keyword spotting with competitor models
US9549323B2 (en) 2012-12-03 2017-01-17 Samsung Electronics Co., Ltd. Method and mobile terminal for controlling screen lock
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
US8930181B2 (en) 2012-12-06 2015-01-06 Prashant Parikh Automatic dynamic contextual data entry completion
US9244905B2 (en) 2012-12-06 2016-01-26 Microsoft Technology Licensing, Llc Communication context based predictive-text suggestion
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
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
US20140164953A1 (en) 2012-12-11 2014-06-12 Nuance Communications, Inc. Systems and methods for invoking virtual agent
US9148394B2 (en) 2012-12-11 2015-09-29 Nuance Communications, Inc. Systems and methods for user interface presentation of virtual agent
US9697827B1 (en) 2012-12-11 2017-07-04 Amazon Technologies, Inc. Error reduction in speech processing
US20140164532A1 (en) 2012-12-11 2014-06-12 Nuance Communications, Inc. Systems and methods for virtual agent participation in multiparty conversation
US9679300B2 (en) 2012-12-11 2017-06-13 Nuance Communications, Inc. Systems and methods for virtual agent recommendation for multiple persons
US9659298B2 (en) 2012-12-11 2017-05-23 Nuance Communications, Inc. Systems and methods for informing virtual agent recommendation
US9276802B2 (en) 2012-12-11 2016-03-01 Nuance Communications, Inc. Systems and methods for sharing information between virtual agents
CN104813311B (zh) 2012-12-11 2018-06-05 纽昂斯通讯公司 用于多人的虚拟代理推荐的系统和方法
US9704486B2 (en) 2012-12-11 2017-07-11 Amazon Technologies, Inc. Speech recognition power management
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 엘지전자 주식회사 텍스트 메시징 서비스를 제공하는 디지털 디바이스 및 그 제어 방법
CN103870168A (zh) * 2012-12-17 2014-06-18 北京千橡网景科技发展有限公司 利用锁屏获取信息的方法和设备
US9213754B1 (en) 2012-12-17 2015-12-15 Google Inc. Personalizing content items
US9141660B2 (en) 2012-12-17 2015-09-22 International Business Machines Corporation Intelligent evidence classification and notification in a deep question answering system
US9978260B2 (en) 2012-12-18 2018-05-22 Samsung Electronics Co., Ltd. Method and apparatus for controlling a home device remotely in a home network system
US9070366B1 (en) 2012-12-19 2015-06-30 Amazon Technologies, Inc. Architecture for multi-domain utterance processing
US9098467B1 (en) 2012-12-19 2015-08-04 Rawles Llc Accepting voice commands based on user identity
US8645138B1 (en) 2012-12-20 2014-02-04 Google Inc. Two-pass decoding for speech recognition of search and action requests
US8977555B2 (en) 2012-12-20 2015-03-10 Amazon Technologies, Inc. Identification of utterance subjects
US20140179295A1 (en) 2012-12-20 2014-06-26 Enno Luebbers Deriving environmental context and actions from ad-hoc state broadcast
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 遊技機
KR101742808B1 (ko) 2012-12-29 2017-06-01 애플 인크. 사용자 인터페이스 계층을 내비게이션하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
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
WO2014105277A2 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for moving a cursor according to a change in an appearance of a control icon with simulated three-dimensional characteristics
CN107832003B (zh) 2012-12-29 2021-01-22 苹果公司 用于放大内容的方法和设备、电子设备和介质
CN103021403A (zh) 2012-12-31 2013-04-03 威盛电子股份有限公司 基于语音识别的选择方法及其移动终端装置及信息系统
CN103902630B (zh) 2012-12-31 2017-08-18 华为技术有限公司 处理消息的方法、终端和系统
US8571851B1 (en) 2012-12-31 2013-10-29 Google Inc. Semantic interpretation using user gaze order
CN103049567A (zh) 2012-12-31 2013-04-17 威盛电子股份有限公司 检索方法、检索系统以及自然语言理解系统
CN103077165A (zh) 2012-12-31 2013-05-01 威盛电子股份有限公司 自然语言对话方法及其系统
CN103020047A (zh) 2012-12-31 2013-04-03 威盛电子股份有限公司 修正语音应答的方法及自然语言对话系统
KR20140088449A (ko) 2013-01-02 2014-07-10 엘지전자 주식회사 중앙 제어 장치 및 그것의 제어 방법
KR101892734B1 (ko) 2013-01-04 2018-08-28 한국전자통신연구원 음성 인식 시스템에서의 오류 수정 방법 및 그 장치
US9497137B2 (en) 2013-01-04 2016-11-15 Sookbox, LLC Digital content connectivity and control via a plurality of controllers that are treated discriminatively
KR20140093303A (ko) 2013-01-07 2014-07-28 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
KR20140089862A (ko) 2013-01-07 2014-07-16 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
CN104903846B (zh) 2013-01-08 2017-07-28 歌乐株式会社 语音识别装置和语音识别方法
US20140195233A1 (en) 2013-01-08 2014-07-10 Spansion Llc Distributed Speech Recognition System
WO2014109017A1 (ja) 2013-01-09 2014-07-17 三菱電機株式会社 音声認識装置および表示方法
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
US20140203939A1 (en) 2013-01-21 2014-07-24 Rtc Inc. Control and monitoring of light-emitting-diode (led) bulbs
US9047274B2 (en) 2013-01-21 2015-06-02 Xerox Corporation Machine translation-driven authoring system and method
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
US9530409B2 (en) 2013-01-23 2016-12-27 Blackberry Limited Event-triggered hands-free multitasking for media playback
EP2760015A1 (en) 2013-01-23 2014-07-30 BlackBerry Limited Event-triggered hands-free multitasking for media playback
US9165566B2 (en) 2013-01-24 2015-10-20 Microsoft Technology Licensing, Llc Indefinite speech inputs
CN103971680B (zh) 2013-01-24 2018-06-05 华为终端(东莞)有限公司 一种语音识别的方法、装置
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 音声認識システムおよび音声認識方法
JP6251958B2 (ja) 2013-01-28 2017-12-27 富士通株式会社 発話解析装置、音声対話制御装置、方法、及びプログラム
US9971495B2 (en) 2013-01-28 2018-05-15 Nook Digital, Llc Context based gesture delineation for user interaction in eyes-free mode
JP6115152B2 (ja) 2013-01-29 2017-04-19 コニカミノルタ株式会社 情報処理システム、情報処理装置、情報処理端末及びプログラム
JP2014150323A (ja) 2013-01-31 2014-08-21 Sharp Corp 文字入力装置
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
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
WO2014124337A2 (en) 2013-02-07 2014-08-14 Opanga Networks, Inc. Transparent media delivery and proxy
CN113470640B (zh) 2013-02-07 2022-04-26 苹果公司 数字助理的语音触发器
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
US9734819B2 (en) 2013-02-21 2017-08-15 Google Technology Holdings LLC Recognizing accented speech
US9019129B2 (en) 2013-02-21 2015-04-28 Apple Inc. Vehicle location in weak location signal scenarios
US9621619B2 (en) 2013-02-21 2017-04-11 International Business Machines Corporation Enhanced notification for relevant communications
US9080878B2 (en) 2013-02-21 2015-07-14 Apple Inc. Automatic identification of vehicle location
US20140236986A1 (en) 2013-02-21 2014-08-21 Apple Inc. Natural language document search
US9672822B2 (en) 2013-02-22 2017-06-06 Next It Corporation Interaction with a portion of a content item through a virtual assistant
US20140245140A1 (en) 2013-02-22 2014-08-28 Next It Corporation Virtual Assistant Transfer between Smart Devices
US10585568B1 (en) 2013-02-22 2020-03-10 The Directv Group, Inc. Method and system of bookmarking content in a mobile device
US9484023B2 (en) 2013-02-22 2016-11-01 International Business Machines Corporation Conversion of non-back-off language models for efficient speech decoding
CN104007832B (zh) 2013-02-25 2017-09-01 上海触乐信息科技有限公司 连续滑行输入文本的方法、系统及设备
US20140304086A1 (en) 2013-02-25 2014-10-09 Turn Inc. Methods and systems for modeling campaign goal adjustment
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
KR101383552B1 (ko) 2013-02-25 2014-04-10 미디어젠(주) 다중 명령어가 포함된 단일 문장의 음성인식방법
US9330659B2 (en) 2013-02-25 2016-05-03 Microsoft Technology Licensing, Llc Facilitating development of a spoken natural language interface
US9172747B2 (en) 2013-02-25 2015-10-27 Artificial Solutions Iberia SL System and methods for virtual assistant networks
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
KR101952179B1 (ko) 2013-03-05 2019-05-22 엘지전자 주식회사 이동 단말기 및 그것의 제어방법
US9454957B1 (en) 2013-03-05 2016-09-27 Amazon Technologies, Inc. Named entity resolution in spoken language processing
US9293129B2 (en) 2013-03-05 2016-03-22 Microsoft Technology Licensing, Llc Speech recognition assisted evaluation on text-to-speech pronunciation issue detection
US10795528B2 (en) 2013-03-06 2020-10-06 Nuance Communications, Inc. Task assistant having multiple visual displays
CN104038621A (zh) 2013-03-06 2014-09-10 三星电子(中国)研发中心 在通信终端中管理事件信息的装置及方法
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
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
US9496968B2 (en) 2013-03-08 2016-11-15 Google Inc. Proximity detection by mobile devices
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
US8964947B1 (en) 2013-03-11 2015-02-24 Amazon Technologies, Inc. Approaches for sharing data between electronic devices
US9761225B2 (en) 2013-03-11 2017-09-12 Nuance Communications, Inc. Semantic re-ranking of NLU results in conversational dialogue applications
US9112984B2 (en) 2013-03-12 2015-08-18 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
US9129013B2 (en) 2013-03-12 2015-09-08 Nuance Communications, Inc. Methods and apparatus for entity detection
US10229697B2 (en) 2013-03-12 2019-03-12 Google Technology Holdings LLC Apparatus and method for beamforming to obtain voice and noise signals
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
US9477753B2 (en) 2013-03-12 2016-10-25 International Business Machines Corporation Classifier-based system combination for spoken term detection
EP3709293A1 (en) 2013-03-12 2020-09-16 Nuance Communications, Inc. Methods and apparatus for detecting a voice command
US9282423B2 (en) 2013-03-13 2016-03-08 Aliphcom Proximity and interface controls of media devices for media presentations
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
US9514741B2 (en) 2013-03-13 2016-12-06 Nuance Communications, Inc. Data shredding for speech recognition acoustic model training under data retention restrictions
US9135248B2 (en) 2013-03-13 2015-09-15 Arris Technology, Inc. Context demographic determination system
US9378739B2 (en) 2013-03-13 2016-06-28 Nuance Communications, Inc. Identifying corresponding positions in different representations of a textual work
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
KR20140112910A (ko) 2013-03-14 2014-09-24 삼성전자주식회사 입력 제어 방법 및 이를 지원하는 전자 장치
US9842584B1 (en) 2013-03-14 2017-12-12 Amazon Technologies, Inc. Providing content on multiple devices
US20140267599A1 (en) 2013-03-14 2014-09-18 360Brandvision, Inc. User interaction with a holographic poster via a secondary mobile device
US9733821B2 (en) 2013-03-14 2017-08-15 Apple Inc. Voice control to diagnose inadvertent activation of accessibility features
US10133546B2 (en) 2013-03-14 2018-11-20 Amazon Technologies, Inc. Providing content on multiple devices
US10572476B2 (en) 2013-03-14 2020-02-25 Apple Inc. Refining a search based on schedule items
US9247309B2 (en) 2013-03-14 2016-01-26 Google Inc. Methods, systems, and media for presenting mobile content corresponding to media content
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
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
US9123345B2 (en) 2013-03-14 2015-09-01 Honda Motor Co., Ltd. Voice interface systems and methods
US20140280072A1 (en) 2013-03-14 2014-09-18 Advanced Search Laboratories, lnc. Method and Apparatus for Human-Machine Interaction
US9977779B2 (en) 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US10642574B2 (en) 2013-03-14 2020-05-05 Apple Inc. Device, method, and graphical user interface for outputting captions
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
US9189157B2 (en) 2013-03-15 2015-11-17 Blackberry Limited Method and apparatus for word prediction selection
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US9631930B2 (en) 2013-03-15 2017-04-25 Apple Inc. Warning for frequently traveled trips based on traffic
CN105431809B (zh) 2013-03-15 2018-12-18 谷歌有限责任公司 用于国际语言的虚拟键盘输入
US9317585B2 (en) 2013-03-15 2016-04-19 Google Inc. Search query suggestions based on personal information
US20140279787A1 (en) * 2013-03-15 2014-09-18 Ximplar Limited Systems And Methods for an Adaptive Application Recommender
US20140267933A1 (en) 2013-03-15 2014-09-18 Toshiba America Information Systems, Inc. Electronic Device with Embedded Macro-Command Functionality
US9922642B2 (en) 2013-03-15 2018-03-20 Apple Inc. Training an at least partial voice command system
AU2014251347B2 (en) 2013-03-15 2017-05-18 Apple Inc. Context-sensitive handling of interruptions
US9201865B2 (en) 2013-03-15 2015-12-01 Bao Tran Automated assistance for user request that determines semantics by domain, task, and parameter
US20150314454A1 (en) 2013-03-15 2015-11-05 JIBO, Inc. Apparatus and methods for providing a persistent companion device
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
US9305374B2 (en) 2013-03-15 2016-04-05 Apple Inc. Device, method, and graphical user interface for adjusting the appearance of a control
EP2973315A4 (en) 2013-03-15 2016-11-16 Adityo Prakash SYSTEMS AND METHODS FOR FACILITATING INTEGRATED BEHAVIORAL SUPPORT
US9299041B2 (en) 2013-03-15 2016-03-29 Business Objects Software Ltd. Obtaining data from unstructured data for a structured data collection
CN110096712B (zh) 2013-03-15 2023-06-20 苹果公司 通过智能数字助理的用户培训
US10638198B2 (en) 2013-03-15 2020-04-28 Ebay Inc. Shoppable video
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
US9558743B2 (en) 2013-03-15 2017-01-31 Google Inc. Integration of semantic context information
US20140282203A1 (en) 2013-03-15 2014-09-18 Research In Motion Limited System and method for predictive text input
US9378065B2 (en) 2013-03-15 2016-06-28 Advanced Elemental Technologies, Inc. Purposeful computing
WO2014143959A2 (en) 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Volume control for mobile device using a wireless device
EP3101392B1 (en) 2013-03-15 2021-12-15 Apple Inc. Mapping application with turn-by-turn navigation mode for output to vehicle display
US9886160B2 (en) 2013-03-15 2018-02-06 Google Llc Managing audio at the tab level for user notification and control
US20140282178A1 (en) 2013-03-15 2014-09-18 Microsoft Corporation Personalized community model for surfacing commands within productivity application user interfaces
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
JP5873038B2 (ja) * 2013-03-21 2016-03-01 株式会社ゼンリンデータコム ナビゲーション装置
US9479499B2 (en) 2013-03-21 2016-10-25 Tencent Technology (Shenzhen) Company Limited Method and apparatus for identity authentication via mobile capturing code
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
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
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
US9760644B2 (en) 2013-04-17 2017-09-12 Google Inc. Embedding event creation link in a document
US20150193392A1 (en) 2013-04-17 2015-07-09 Google Inc. User Interface for Quickly Checking Agenda and Creating New Events
US10445115B2 (en) 2013-04-18 2019-10-15 Verint Americas Inc. Virtual assistant focused user interfaces
NL2010662C2 (en) 2013-04-18 2014-10-21 Bosch Gmbh Robert Remote maintenance.
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
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
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 锤子科技(北京)有限公司 一种移动终端的语音识别方法及其装置
US9472205B2 (en) 2013-05-06 2016-10-18 Honeywell International Inc. Device voice recognition systems and methods
US9384751B2 (en) 2013-05-06 2016-07-05 Honeywell International Inc. User authentication of voice controlled devices
KR20140132246A (ko) 2013-05-07 2014-11-17 삼성전자주식회사 오브젝트 선택 방법 및 오브젝트 선택 장치
PT2994908T (pt) 2013-05-07 2019-10-18 Veveo Inc Interface de entrada incremental de discurso com retorno em tempo real
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
EP2801974A3 (en) 2013-05-09 2015-02-18 DSP Group Ltd. Low power activation of a voice activated device
US9923849B2 (en) 2013-05-09 2018-03-20 Ebay Inc. System and method for suggesting a phrase based on a context
US9081411B2 (en) 2013-05-10 2015-07-14 Sri International Rapid development of virtual personal assistant applications
US9489625B2 (en) 2013-05-10 2016-11-08 Sri International Rapid development of virtual personal assistant applications
JP2014219614A (ja) 2013-05-10 2014-11-20 アルパイン株式会社 オーディオ装置、ビデオ装置及びコンピュータプログラム
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
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
US8918272B2 (en) * 2013-05-14 2014-12-23 Sony Corporation Method and apparatus for finding a lost vehicle
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
US9514470B2 (en) 2013-05-16 2016-12-06 Microsoft Technology Licensing, Llc Enhanced search suggestion for personal information services
KR101334342B1 (ko) 2013-05-16 2013-11-29 주식회사 네오패드 문자 입력 장치 및 문자 입력 방법
US9495266B2 (en) 2013-05-16 2016-11-15 Advantest Corporation Voice recognition virtual test engineering assistant
EP2997444A4 (en) 2013-05-16 2016-12-14 Intel Corp PROCESS FOR NATURAL USER INTERFACE ENTRY ON THE BASIS OF A CONTEXT
US9432499B2 (en) 2013-05-18 2016-08-30 Loralee Hajdu Peripheral specific selection of automated response messages
CN105122353B (zh) 2013-05-20 2019-07-09 英特尔公司 用于语音识别的计算装置和用于计算装置上的语音识别的方法
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
US9747900B2 (en) 2013-05-24 2017-08-29 Google Technology Holdings LLC Method and apparatus for using image data to aid voice recognition
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
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
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9267805B2 (en) 2013-06-07 2016-02-23 Apple Inc. Modeling significant locations
AU2014274913B2 (en) 2013-06-07 2017-05-11 Apple Inc. Intelligent automated assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
US20140365459A1 (en) 2013-06-08 2014-12-11 Apple Inc. Harvesting Addresses
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
EP3005668B1 (en) 2013-06-08 2018-12-19 Apple Inc. Application gateway for providing different user interfaces for limited distraction and non-limited distraction contexts
WO2014197339A1 (en) 2013-06-08 2014-12-11 Apple Inc. Device, method, and graphical user interface for synchronizing two or more displays
CN110442699A (zh) 2013-06-09 2019-11-12 苹果公司 操作数字助理的方法、计算机可读介质、电子设备和系统
US9477393B2 (en) 2013-06-09 2016-10-25 Apple Inc. Device, method, and graphical user interface for displaying application status information
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10481769B2 (en) 2013-06-09 2019-11-19 Apple Inc. Device, method, and graphical user interface for providing navigation and search functionalities
US9495620B2 (en) 2013-06-09 2016-11-15 Apple Inc. Multi-script handwriting recognition using a universal recognizer
US20140365878A1 (en) * 2013-06-10 2014-12-11 Microsoft Corporation Shape writing ink trace prediction
WO2014199596A1 (ja) 2013-06-10 2014-12-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 話者識別方法、話者識別装置及び話者識別システム
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
US9665662B1 (en) 2013-06-13 2017-05-30 DataRPM Corporation Methods and system for providing real-time business intelligence using natural language queries
EP3008964B1 (en) 2013-06-13 2019-09-25 Apple Inc. System and method for emergency calls initiated by voice command
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
EP3012833B1 (en) 2013-06-19 2022-08-10 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
KR102160767B1 (ko) 2013-06-20 2020-09-29 삼성전자주식회사 제스처를 감지하여 기능을 제어하는 휴대 단말 및 방법
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를 이용한 음성 끝점 검출 장치 및 방법
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
US20150006148A1 (en) 2013-06-27 2015-01-01 Microsoft Corporation Automatically Creating Training Data For Language Identifiers
US8947596B2 (en) 2013-06-27 2015-02-03 Intel Corporation Alignment of closed captions
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
WO2014210429A1 (en) 2013-06-28 2014-12-31 Harman International Industries, Inc. 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
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 崔海伟 智能家居系统的状态反馈系统、方法及状态检测装置
JP6102588B2 (ja) 2013-07-10 2017-03-29 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
DE102014109121B4 (de) 2013-07-10 2023-05-04 Gm Global Technology Operations, Llc Systeme und Verfahren zur Arbitrierung eines Sprachdialogdienstes
US9445209B2 (en) 2013-07-11 2016-09-13 Intel Corporation Mechanism and apparatus for seamless voice wake and speaker verification
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
US20150031416A1 (en) 2013-07-23 2015-01-29 Motorola Mobility Llc Method and Device For Command Phrase Validation
US9407950B2 (en) 2013-07-23 2016-08-02 Microsoft Technology Licensing, Llc Controlling devices in entertainment environment
US9772994B2 (en) 2013-07-25 2017-09-26 Intel Corporation Self-learning statistical natural language processing for automatic production of virtual personal assistants
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
CN103412789B (zh) 2013-07-26 2016-09-21 宇龙计算机通信科技(深圳)有限公司 一种启动应用程序的方法、系统及移动终端
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
US9575720B2 (en) 2013-07-31 2017-02-21 Google Inc. Visual confirmation for a recognized voice-initiated action
TWI516698B (zh) 2013-07-31 2016-01-11 Apex Medical Corp Air cushion device and its vent valve
US20150039606A1 (en) 2013-08-01 2015-02-05 Vamsi Krishna Salaka Search phrase modification
TWI601032B (zh) 2013-08-02 2017-10-01 晨星半導體股份有限公司 應用於聲控裝置的控制器與相關方法
KR20150017156A (ko) 2013-08-06 2015-02-16 삼성전자주식회사 휴대단말기에서 추천어를 제공하는 방법 및 장치
CN105493511A (zh) 2013-08-06 2016-04-13 萨罗尼科斯贸易与服务一人有限公司 用于借助于语音命令控制电子设备的系统、更具体地借助于语音命令控制多个电子设备的远程控制器
CN105453026A (zh) 2013-08-06 2016-03-30 苹果公司 基于来自远程设备的活动自动激活智能响应
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 华为终端(东莞)有限公司 一种媒体播放的方法、装置和系统
CN104426841A (zh) 2013-08-21 2015-03-18 阿里巴巴集团控股有限公司 设置背景图像的方法及相关的服务器和系统
JP2015041845A (ja) 2013-08-21 2015-03-02 カシオ計算機株式会社 文字入力装置及びプログラム
US10054327B2 (en) 2013-08-21 2018-08-21 Honeywell International Inc. Devices and methods for interacting with an HVAC controller
US9161188B2 (en) 2013-08-22 2015-10-13 Yahoo! Inc. System and method for automatically suggesting diverse and personalized message completions
US9940927B2 (en) 2013-08-23 2018-04-10 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 北京三星通信技术研究有限公司 一种终端设备及其应用程序的关联显示方法
WO2015031486A1 (en) 2013-08-27 2015-03-05 Persais, Llc System and method for virtual assistants with shared capabilities and agent store
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 联想(北京)有限公司 一种信息处理方法及电子设备
MY175230A (en) 2013-08-29 2020-06-16 Panasonic Ip Corp America Device control method, display control method, and purchase payment method
KR102147935B1 (ko) 2013-08-29 2020-08-25 삼성전자주식회사 데이터 처리 방법 및 그 전자 장치
US20150066506A1 (en) 2013-08-30 2015-03-05 Verint Systems Ltd. System and Method of Text Zoning
CN105453080A (zh) 2013-08-30 2016-03-30 英特尔公司 用于虚拟个人助理的可扩展上下文感知的自然语言交互
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
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
US10001817B2 (en) 2013-09-03 2018-06-19 Apple Inc. User interface for manipulating user interface objects with magnetic properties
US9633669B2 (en) 2013-09-03 2017-04-25 Amazon Technologies, Inc. Smart circular audio buffer
EP3677999B1 (en) 2013-09-03 2024-05-22 Apple Inc. User interface object manipulations in a user interface
KR102065409B1 (ko) 2013-09-04 2020-01-13 엘지전자 주식회사 이동단말기 및 그 제어방법
GB2517952B (en) 2013-09-05 2017-05-31 Barclays Bank Plc Biometric verification using predicted signatures
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
US9208779B2 (en) 2013-09-06 2015-12-08 Google Inc. Mixture of n-gram language models
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
US20150074524A1 (en) 2013-09-10 2015-03-12 Lenovo (Singapore) Pte. Ltd. Management of virtual assistant action items
US20150140934A1 (en) 2013-09-10 2015-05-21 Playtabase, LLC Wireless motion activated user device with bi-modality communication
CN104700832B (zh) 2013-12-09 2018-05-25 联发科技股份有限公司 语音关键字检测系统及方法
US9343068B2 (en) 2013-09-16 2016-05-17 Qualcomm Incorporated Method and apparatus for controlling access to applications having different security levels
US9600228B2 (en) 2013-09-16 2017-03-21 Here Global B.V. Enhanced system and method for static query generation and entry
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
WO2015041892A1 (en) 2013-09-20 2015-03-26 Rawles Llc 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
US10134395B2 (en) 2013-09-25 2018-11-20 Amazon Technologies, Inc. In-call virtual assistants
US9418650B2 (en) 2013-09-25 2016-08-16 Verizon Patent And Licensing Inc. Training speech recognition using captions
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 北京三星通信技术研究有限公司 九宫格键盘输入的方法和装置
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
US20150095278A1 (en) 2013-09-30 2015-04-02 Manyworlds, Inc. Adaptive Probabilistic Semantic System and Method
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 엘지전자 주식회사 오디오 재생장치와 이를 포함하는 시스템
WO2015051480A1 (en) 2013-10-09 2015-04-16 Google Inc. Automatic definition of entity collections
US20150100313A1 (en) 2013-10-09 2015-04-09 Verizon Patent And Licensing, Inc. Personification of computing devices for remote access
KR101506510B1 (ko) 2013-10-10 2015-03-30 송철호 음성인식 홈 네트워크 시스템
KR102114219B1 (ko) 2013-10-10 2020-05-25 삼성전자주식회사 오디오 시스템 및 오디오 출력 방법, 그리고 스피커 장치
US10834546B2 (en) 2013-10-14 2020-11-10 Oath 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
US9659279B2 (en) * 2013-10-25 2017-05-23 Palo Alto Research Center Incorporated Method and system for enhanced inferred mode user interface operations
JP2015083938A (ja) 2013-10-25 2015-04-30 三菱電機株式会社 ナビゲーションシステム
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
US10055681B2 (en) 2013-10-31 2018-08-21 Verint Americas Inc. Mapping actions and objects to tasks
US20150123898A1 (en) 2013-10-31 2015-05-07 Lg Electronics Inc. Digital device and control method thereof
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 情報処理装置、情報処理方法、およびプログラム
GB2520266A (en) 2013-11-13 2015-05-20 Ibm Cursor-Based Character input interface
US10430024B2 (en) 2013-11-13 2019-10-01 Microsoft Technology Licensing, Llc Media item selection using user-specific grammar
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
US10079013B2 (en) 2013-11-27 2018-09-18 Sri International Sharing intents to provide virtual assistance in a multi-person dialog
US9451434B2 (en) 2013-11-27 2016-09-20 At&T Intellectual Property I, L.P. Direct interaction between a user and a communication network
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
EP3077999B1 (en) 2013-12-06 2022-02-02 The ADT Security Corporation Voice activated application for mobile devices
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
CN103645876B (zh) 2013-12-06 2017-01-18 百度在线网络技术(北京)有限公司 语音输入方法和装置
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
US20150162001A1 (en) 2013-12-10 2015-06-11 Honeywell International Inc. System and method for textually and graphically presenting air traffic control voice information
US20150160855A1 (en) 2013-12-10 2015-06-11 Google Inc. Multiple character input with a single selection
US9900177B2 (en) 2013-12-11 2018-02-20 Echostar Technologies International Corporation Maintaining up-to-date home automation models
GB201321927D0 (en) 2013-12-11 2014-01-22 Touchtype Ltd System and method for inputting text into electronic devices
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
US10534623B2 (en) 2013-12-16 2020-01-14 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
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
WO2015094169A1 (en) 2013-12-16 2015-06-25 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
US9711135B2 (en) 2013-12-17 2017-07-18 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
EP3084760A4 (en) 2013-12-20 2017-08-16 Intel Corporation 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 安徽科大讯飞信息科技股份有限公司 一种语音唤醒装置
JP2015127758A (ja) 2013-12-27 2015-07-09 シャープ株式会社 応答制御装置、制御プログラム
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 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および情報処理システム
KR102092164B1 (ko) 2013-12-27 2020-03-23 삼성전자주식회사 디스플레이 장치, 서버 장치 및 이들을 포함하는 디스플레이 시스템과 그 컨텐츠 제공 방법들
US9460735B2 (en) 2013-12-28 2016-10-04 Intel Corporation Intelligent ancillary electronic device
US20150278737A1 (en) 2013-12-30 2015-10-01 Google Inc. Automatic Calendar Event Generation with Structured Data from Free-Form Speech
US9390726B1 (en) 2013-12-30 2016-07-12 Google Inc. Supplementing speech commands with gestures
US10078489B2 (en) 2013-12-30 2018-09-18 Microsoft Technology Licensing, Llc Voice interface to a social networking service
US9830044B2 (en) 2013-12-31 2017-11-28 Next It Corporation Virtual assistant team customization
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
US9152307B2 (en) 2013-12-31 2015-10-06 Google Inc. Systems and methods for simultaneously displaying clustered, in-line electronic messages in one display
US9778817B2 (en) 2013-12-31 2017-10-03 Findo, Inc. Tagging of images based on social network tags or comments
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
US9443516B2 (en) 2014-01-09 2016-09-13 Honeywell International Inc. Far-field speech recognition systems and methods
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
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 广东欧珀移动通信有限公司 一种控制多台移动终端自动执行任务的方法及系统
CN106415721B (zh) 2014-01-22 2019-08-16 苹果公司 音频数据传输的协调切换
EP3097458B1 (en) 2014-01-22 2019-07-24 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
US10978060B2 (en) 2014-01-31 2021-04-13 Hewlett-Packard Development Company, L.P. Voice input command
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
US20160173960A1 (en) 2014-01-31 2016-06-16 EyeGroove, Inc. Methods and systems for generating audiovisual media items
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
US10050926B2 (en) 2014-02-05 2018-08-14 Facebook, Inc. Ideograms based on sentiment analysis
JP2015149568A (ja) 2014-02-05 2015-08-20 キヤノン株式会社 画像形成装置、その制御方法およびプログラム
DE112014006343T5 (de) 2014-02-06 2016-10-20 Mitsubishi Electric Corporation Sprachsuchvorrichtung und Sprachsuchverfahren
US20150334346A1 (en) 2014-05-16 2015-11-19 Elwha Llc Systems and methods for automatically connecting a user of a hands-free intercommunication system
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
US9589562B2 (en) 2014-02-21 2017-03-07 Microsoft Technology Licensing, Llc Pronunciation learning through correction logs
US10469428B2 (en) 2014-02-21 2019-11-05 Samsung Electronics Co., Ltd. Apparatus and method for transmitting message
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
US9412363B2 (en) 2014-03-03 2016-08-09 Microsoft Technology Licensing, Llc Model based approach for on-screen item selection and disambiguation
EP3739460A1 (en) 2014-03-03 2020-11-18 Sony Corporation Information processing apparatus, information processing method, and program
US9582246B2 (en) 2014-03-04 2017-02-28 Microsoft Technology Licensing, Llc Voice-command suggestions based on computer context
US9489171B2 (en) 2014-03-04 2016-11-08 Microsoft Technology Licensing, Llc Voice-command suggestions based on user identity
US9574890B2 (en) 2014-03-04 2017-02-21 Qualcomm Incorporated Reduced power consumption and improved user experience when navigating along familiar routes
US20150256873A1 (en) 2014-03-04 2015-09-10 Microsoft Technology Licensing, Llc Relayed voice control of devices
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
CN103841268A (zh) 2014-03-17 2014-06-04 联想(北京)有限公司 信息处理方法和信息处理装置
US9430186B2 (en) 2014-03-17 2016-08-30 Google Inc Visual indication of a recognized voice-initiated action
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
WO2015144621A1 (en) 2014-03-26 2015-10-01 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
RU2014111971A (ru) 2014-03-28 2015-10-10 Юрий Михайлович Буров Способ и система голосового интерфейса
IN2014DE00899A (zh) 2014-03-28 2015-10-02 Samsung Electronics Co Ltd
GB2545548A (en) 2014-03-29 2017-06-21 Camelot Uk Bidco Ltd Improved method, system and software for searching, identifying, retrieving and presenting electronic documents
US9196243B2 (en) 2014-03-31 2015-11-24 International Business Machines Corporation Method and system for efficient spoken term detection using confusion networks
CN106663424B (zh) 2014-03-31 2021-03-05 三菱电机株式会社 意图理解装置以及方法
US9286892B2 (en) 2014-04-01 2016-03-15 Google Inc. Language modeling in speech recognition
US20150278370A1 (en) 2014-04-01 2015-10-01 Microsoft Corporation Task completion for natural language input
US10749989B2 (en) 2014-04-01 2020-08-18 Microsoft Technology Licensing Llc Hybrid client/server architecture for parallel processing
CN103902373B (zh) 2014-04-02 2017-09-29 百度在线网络技术(北京)有限公司 智能终端控制方法、服务器和智能终端
US10992609B2 (en) 2014-04-02 2021-04-27 CloLa, Inc. Text-messaging based concierge services
EP3127352B1 (en) 2014-04-02 2020-10-28 Sony Corporation Power efficient proximity detection
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 富士通株式会社 语音识别装置、方法以及电子设备
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
US20150294516A1 (en) 2014-04-10 2015-10-15 Kuo-Ching Chiang Electronic device with security module
US20170178664A1 (en) 2014-04-11 2017-06-22 Analog Devices, Inc. Apparatus, systems and methods for providing cloud based 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
US10540979B2 (en) 2014-04-17 2020-01-21 Qualcomm Incorporated User interface for secure access to a device using speaker verification
US20150302856A1 (en) 2014-04-17 2015-10-22 Qualcomm Incorporated Method and apparatus for performing function by speech input
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
US9478247B2 (en) 2014-04-28 2016-10-25 Sonos, Inc. Management of media content playback
US10845982B2 (en) 2014-04-28 2020-11-24 Facebook, Inc. Providing intelligent transcriptions of sound messages in a messaging application
US9520127B2 (en) 2014-04-29 2016-12-13 Microsoft Technology Licensing, Llc Shared hidden layer combination for speech recognition systems
US8976063B1 (en) 2014-04-29 2015-03-10 Google Inc. Automated detection of vehicle parking and location
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 삼성전자주식회사 음성 명령 인식 장치 및 방법
WO2015179632A1 (en) 2014-05-22 2015-11-26 Scheffler Lee J 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
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10033818B2 (en) 2014-05-30 2018-07-24 Apple Inc. Using listen ranges to deliver content to electronic devices from local caching servers
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US11088807B2 (en) 2014-05-30 2021-08-10 Apple Inc. Application-level acknowledgements
US10579212B2 (en) 2014-05-30 2020-03-03 Apple Inc. Structured suggestions
WO2015183366A1 (en) 2014-05-30 2015-12-03 Apple, Inc. Continuity
US9380123B2 (en) 2014-05-30 2016-06-28 Apple Inc. Activity continuation between electronic devices
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US10237711B2 (en) 2014-05-30 2019-03-19 Apple Inc. Dynamic types for activity continuation between electronic devices
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US10387451B2 (en) 2014-05-30 2019-08-20 Apple Inc. Synchronization system for multiple client devices
US9519634B2 (en) 2014-05-30 2016-12-13 Educational Testing Service Systems and methods for determining lexical associations among words in a corpus
WO2015184387A1 (en) 2014-05-30 2015-12-03 Apple Inc. Accessory management system using environment model
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
TWI520007B (zh) 2014-05-30 2016-02-01 由田新技股份有限公司 眼控密碼輸入設備、方法、電腦可讀取紀錄媒體及電腦程式產品
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
WO2015183699A1 (en) 2014-05-30 2015-12-03 Apple Inc. Predictive messaging method
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
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
US9729599B2 (en) 2014-06-04 2017-08-08 Sonos, Inc. Cloud queue access control
US8995972B1 (en) 2014-06-05 2015-03-31 Grandios Technologies, Llc Automatic personal assistance between users devices
JP6307356B2 (ja) 2014-06-06 2018-04-04 株式会社デンソー 運転コンテキスト情報生成装置
EP3158691A4 (en) 2014-06-06 2018-03-28 Obschestvo S Ogranichennoy Otvetstvennostiyu "Speactoit" Proactive environment-based chat information system
US10325205B2 (en) 2014-06-09 2019-06-18 Cognitive Scale, Inc. Cognitive information processing system environment
EP2983065B1 (en) 2014-06-11 2018-08-01 Huawei Technologies Co., Ltd. Method and terminal for quickly starting application service
US10127901B2 (en) 2014-06-13 2018-11-13 Microsoft Technology Licensing, Llc Hyper-structure recurrent neural networks for text-to-speech
CN104090652B (zh) 2014-06-13 2017-07-21 北京搜狗科技发展有限公司 一种语音输入方法和装置
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
KR20150144668A (ko) 2014-06-17 2015-12-28 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US10375129B2 (en) * 2014-06-17 2019-08-06 Microsoft Technology Licensing, Llc Facilitating conversations with automated location mapping
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
US20150371529A1 (en) 2014-06-24 2015-12-24 Bose Corporation Audio Systems and Related Methods and Devices
US9384738B2 (en) 2014-06-24 2016-07-05 Google Inc. Dynamic threshold for speaker verification
US10783166B2 (en) 2014-06-24 2020-09-22 Google Llc List accumulation and reminder triggering
US9632748B2 (en) 2014-06-24 2017-04-25 Google Inc. Device designation for audio input monitoring
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
US10402453B2 (en) 2014-06-27 2019-09-03 Nuance Communications, Inc. Utilizing large-scale knowledge graphs to support inference at scale and explanation generation
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
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
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
US9665248B2 (en) 2014-07-15 2017-05-30 Google Inc. Adaptive background playback behavior
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 广州三星通信技术研究有限公司 通讯连接异常时的信息处理方法和装置
US10120431B2 (en) 2014-07-18 2018-11-06 Apple Inc. Raise gesture detection in a device with preheating of a processor
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
US9301256B2 (en) 2014-07-24 2016-03-29 Verizon Patent And Licensing Inc. Low battery indication for callers to mobile device
US20160028666A1 (en) 2014-07-24 2016-01-28 Framy Inc. System and method for instant messaging
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 北京智谷睿拓技术服务有限公司 任务迁移控制方法、装置和系统
WO2016017997A1 (en) 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Wearable glasses and method of providing content using the same
US20160034811A1 (en) 2014-07-31 2016-02-04 Apple Inc. Efficient generation of complementary acoustic models for performing automatic speech recognition system combination
WO2016018057A1 (en) 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Method and device for providing function of mobile terminal
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
US9548066B2 (en) 2014-08-11 2017-01-17 Amazon Technologies, Inc. Voice application architecture
US9767794B2 (en) 2014-08-11 2017-09-19 Nuance Communications, Inc. Dialog flow management in hierarchical task dialogs
US9361442B2 (en) 2014-08-12 2016-06-07 International Business Machines Corporation Triggering actions on a user device based on biometrics of nearby individuals
US9838999B2 (en) 2014-08-14 2017-12-05 Blackberry Limited Portable electronic device and method of controlling notifications
US10243891B2 (en) 2014-08-14 2019-03-26 Oath Inc. Cross-device integration system and method
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
CN105472587A (zh) 2014-08-26 2016-04-06 小米科技有限责任公司 来电处理方法和装置
DE202015005999U1 (de) 2014-08-26 2015-11-26 Apple Inc. Benutzerschnittstelle zum Einschränken von Meldungen und Alarmen
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US10068008B2 (en) 2014-08-28 2018-09-04 Microsoft Technologies Licensing, LLC Spelling correction of email queries
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
US10019990B2 (en) 2014-09-09 2018-07-10 Microsoft Technology Licensing, Llc Variable-component deep neural network for robust speech recognition
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
US10171558B2 (en) 2014-09-12 2019-01-01 Microsoft Technology Licensing, Llc Cross device application discovery and control
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US10261672B1 (en) 2014-09-16 2019-04-16 Amazon Technologies, Inc. Contextual launch interfaces
CN105490890A (zh) 2014-09-16 2016-04-13 中兴通讯股份有限公司 智能家庭终端及其控制方法
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
US9508028B2 (en) 2014-09-24 2016-11-29 Nuance Communications, Inc. Converting text strings into number strings, such as via a touchscreen input
JP6052814B2 (ja) 2014-09-24 2016-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 音声認識モデルの構築方法、音声認識方法、コンピュータ・システム、音声認識装置、プログラムおよび記録媒体
US10317992B2 (en) 2014-09-25 2019-06-11 Microsoft Technology Licensing, Llc Eye gaze for spoken language understanding in multi-modal conversational interactions
US9606986B2 (en) 2014-09-29 2017-03-28 Apple Inc. Integrated word N-gram and class M-gram language models
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
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9646634B2 (en) 2014-09-30 2017-05-09 Google Inc. Low-rank hidden input layer for speech recognition neural network
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 シャープ株式会社 対話装置
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9378740B1 (en) 2014-09-30 2016-06-28 Amazon Technologies, Inc. Command suggestions during automatic speech recognition
US9578156B2 (en) 2014-09-30 2017-02-21 Samsung Electronics Co., Ltd. Method and apparatus for operating an electronic device
US9830321B2 (en) 2014-09-30 2017-11-28 Rovi Guides, Inc. Systems and methods for searching for a media asset
WO2016054230A1 (en) 2014-10-01 2016-04-07 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
US20160099984A1 (en) 2014-10-03 2016-04-07 Across Lab, Inc. Method and apparatus for remote, multi-media collaboration, including archive and search capability
US9424841B2 (en) 2014-10-09 2016-08-23 Google Inc. Hotword detection on multiple devices
US9318107B1 (en) 2014-10-09 2016-04-19 Google Inc. Hotword detection on multiple devices
US9812128B2 (en) 2014-10-09 2017-11-07 Google Inc. Device leadership negotiation among voice interface 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
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
CN104374399A (zh) * 2014-10-31 2015-02-25 北京搜狗科技发展有限公司 一种导航信息显示方法和装置
US10089364B2 (en) 2014-10-31 2018-10-02 Kabushiki Kaisha Toshiba Item recommendation device, item recommendation method, and computer program product
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
US9842102B2 (en) 2014-11-10 2017-12-12 Oracle International Corporation Automatic ontology generation for natural-language processing applications
US10572589B2 (en) 2014-11-10 2020-02-25 International Business Machines Corporation Cognitive matching of narrative data
CA3216868A1 (en) 2014-11-11 2016-05-19 Webee Corporation 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
US9812126B2 (en) 2014-11-28 2017-11-07 Microsoft Technology Licensing, Llc Device arbitration for listening devices
US10192549B2 (en) 2014-11-28 2019-01-29 Microsoft Technology Licensing, Llc Extending digital personal assistant action providers
US9465867B2 (en) 2014-12-01 2016-10-11 W. Leo Hoarty 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
US9241073B1 (en) 2014-12-09 2016-01-19 Ringcentral, Inc. Systems and methods for managing an event scheduling request in a telephony system
US20160162464A1 (en) 2014-12-09 2016-06-09 Idibon, Inc. Techniques for combining human and machine learning in natural language processing
US9466297B2 (en) 2014-12-09 2016-10-11 Microsoft Technology Licensing, Llc Communication system
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US20160170966A1 (en) 2014-12-10 2016-06-16 Brian Kolo Methods and systems for automated language identification
CN107209549B (zh) 2014-12-11 2020-04-17 微软技术许可有限责任公司 能够实现可动作的消息传送的虚拟助理系统
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
US20170287472A1 (en) 2014-12-18 2017-10-05 Mitsubishi Electric Corporation Speech recognition apparatus and speech recognition method
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
JP6504808B2 (ja) 2014-12-22 2019-04-24 キヤノン株式会社 撮像装置、音声コマンド機能の設定方法、コンピュータプログラム、及び記憶媒体
US9811312B2 (en) 2014-12-22 2017-11-07 Intel Corporation Connected device voice command support
US9690542B2 (en) 2014-12-22 2017-06-27 Microsoft Technology Licensing, Llc Scaling digital personal assistant agents across devices
KR20160076201A (ko) 2014-12-22 2016-06-30 엘지전자 주식회사 이동 단말기 및 그 제어 방법
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
EP3243200B1 (en) 2015-01-05 2021-05-19 Google LLC Processing of multimodal user input
US9959129B2 (en) 2015-01-09 2018-05-01 Microsoft Technology Licensing, Llc Headless task completion within digital personal assistants
CN113140215A (zh) 2015-01-16 2021-07-20 三星电子株式会社 用于执行话音识别的方法和设备
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 深圳市中兴移动通信有限公司 移动终端及其操作方法
US20160227107A1 (en) 2015-02-02 2016-08-04 Lenovo (Singapore) Pte. Ltd. Method and device for notification preview dismissal
US9424412B1 (en) 2015-02-02 2016-08-23 Bank Of America Corporation Authenticating customers using biometrics
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
CN104679472A (zh) 2015-02-13 2015-06-03 百度在线网络技术(北京)有限公司 人机语音交互方法和装置
US10121472B2 (en) 2015-02-13 2018-11-06 Knowles Electronics, Llc Audio buffer catch-up apparatus and method with two microphones
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
US10339440B2 (en) 2015-02-19 2019-07-02 Digital Reasoning Systems, Inc. Systems and methods for neural language modeling
WO2016137272A1 (ko) 2015-02-27 2016-09-01 삼성전자 주식회사 복수의 운영체제가 설치된 디바이스를 제어하는 방법 및 디바이스
US9928232B2 (en) 2015-02-27 2018-03-27 Microsoft Technology Licensing, Llc Topically aware word suggestions
US9911412B2 (en) 2015-03-06 2018-03-06 Nuance Communications, Inc. Evidence-based natural language input recognition
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
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
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
US10956957B2 (en) 2015-03-25 2021-03-23 Facebook, Inc. Techniques for automated messaging
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
US20160293157A1 (en) 2015-03-30 2016-10-06 Google Inc. Contextual Voice Action History
US9484021B1 (en) 2015-03-30 2016-11-01 Amazon Technologies, Inc. Disambiguation in speech recognition
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
US20170047063A1 (en) 2015-03-31 2017-02-16 Sony Corporation Information processing apparatus, control method, and program
US20160322044A1 (en) 2015-04-01 2016-11-03 Elwha Llc Networked User Command Recognition
US20170032783A1 (en) 2015-04-01 2017-02-02 Elwha Llc Hierarchical Networked Command Recognition
CA2982196C (en) 2015-04-10 2022-07-19 Huawei Technologies Co., Ltd. Speech recognition method, speech wakeup apparatus, speech recognition apparatus, and terminal
US10095683B2 (en) 2015-04-10 2018-10-09 Facebook, Inc. Contextual speller models on online social networks
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
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 주식회사 아카인텔리전스 인공지능 대화 장치 및 방법
US11010768B2 (en) 2015-04-30 2021-05-18 Oracle International Corporation Character-based attribute value extraction system
GB2537903B (en) 2015-04-30 2019-09-04 Toshiba Res Europe Limited Device and method for a spoken dialogue 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
US9892363B2 (en) 2015-05-07 2018-02-13 Truemotion, Inc. Methods and systems for sensor-based driving data collection
CN104867492B (zh) 2015-05-07 2019-09-03 科大讯飞股份有限公司 智能交互系统及方法
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
US9953648B2 (en) 2015-05-11 2018-04-24 Samsung Electronics Co., Ltd. Electronic device and method for controlling the same
US9906482B2 (en) 2015-05-13 2018-02-27 The Travelers Indemnity Company Predictive electronic message management systems and controllers
US9761220B2 (en) 2015-05-13 2017-09-12 Microsoft Technology Licensing, Llc Language modeling based on spoken and unspeakable corpuses
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
US10861449B2 (en) 2015-05-19 2020-12-08 Sony Corporation Information processing device and information processing method
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
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
US10110430B2 (en) 2015-05-27 2018-10-23 Orion Labs Intelligent agent features for wearable personal communication nodes
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
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
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10505884B2 (en) 2015-06-05 2019-12-10 Microsoft Technology Licensing, Llc Entity classification and/or relationship identification
US10755032B2 (en) 2015-06-05 2020-08-25 Apple Inc. Indexing web pages with deep links
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US9865265B2 (en) 2015-06-06 2018-01-09 Apple Inc. Multi-microphone speech recognition systems and related techniques
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
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
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
US20160372112A1 (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 百度在线网络技术(北京)有限公司 基于人工智能的人机交互方法、装置和终端设备
CN107667561B (zh) 2015-06-25 2021-01-08 苹果公司 移动通信设备和用于控制移动通信设备接收机的方法
KR102317526B1 (ko) 2015-06-25 2021-10-26 엘지전자 주식회사 헤드셋 및 그 제어 방법
US20160379638A1 (en) 2015-06-26 2016-12-29 Amazon Technologies, Inc. Input speech quality matching
US10325590B2 (en) 2015-06-26 2019-06-18 Intel Corporation Language model modification for local speech recognition systems using remote sources
US10019992B2 (en) 2015-06-29 2018-07-10 Disney Enterprises, Inc. Speech-controlled actions based on keywords and context thereof
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10134425B1 (en) 2015-06-29 2018-11-20 Amazon Technologies, Inc. Direction-based speech endpointing
US9881613B2 (en) 2015-06-29 2018-01-30 Google Llc Privacy-preserving training corpus selection
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
WO2017004204A1 (en) 2015-06-30 2017-01-05 K4Connect Inc. Home automation (ha) system including desired scene implementation based upon user-selectable list of addressable ha devices and related methods
US9536527B1 (en) 2015-06-30 2017-01-03 Amazon Technologies, Inc. Reporting operational metrics in speech-based systems
KR102371188B1 (ko) 2015-06-30 2022-03-04 삼성전자주식회사 음성 인식 장치 및 방법과 전자 장치
US9998597B2 (en) 2015-07-06 2018-06-12 Nuance Communications, Inc. Systems and methods for facilitating communication using an interactive communication system
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
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 삼성전자주식회사 통합 모델 기반의 음성 인식 장치 및 방법
US10572073B2 (en) 2015-08-24 2020-02-25 Sony Corporation Information processing device, information processing method, and program
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
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
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
CN106534469A (zh) 2015-09-11 2017-03-22 昆明我行科技有限公司 一种为智能手机实现电话通讯功能扩展的方法及电子设备
US10026399B2 (en) 2015-09-11 2018-07-17 Amazon Technologies, Inc. Arbitration between voice-enabled devices
US9736318B2 (en) 2015-09-16 2017-08-15 International Business Machines Corporation Adaptive voice-text transmission
US9665567B2 (en) 2015-09-21 2017-05-30 International Business Machines Corporation Suggesting emoji characters based on current contextual emotional state of user
US9875081B2 (en) 2015-09-21 2018-01-23 Amazon Technologies, Inc. Device selection for providing a response
US9734142B2 (en) 2015-09-22 2017-08-15 Facebook, Inc. Universal translation
US20170085547A1 (en) 2015-09-22 2017-03-23 International Business Machines Corporation Storing, indexing and recalling data based on brain activity
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
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US20170091612A1 (en) 2015-09-30 2017-03-30 Apple Inc. Proactive assistant with memory assistance
US20170092278A1 (en) 2015-09-30 2017-03-30 Apple Inc. Speaker recognition
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10425768B2 (en) 2015-09-30 2019-09-24 Lenovo (Singapore) Pte. Ltd. Adjusting audio output volume based on a detected presence of another device
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 삼성전자 주식회사 음성 신호 인식 방법 및 이를 제공하는 전자 장치
DE112016004863T5 (de) 2015-10-21 2018-07-19 Google Llc Parametersammlung und automatische Dialogerzeugung in Dialogsystemen
US20180315416A1 (en) 2015-10-22 2018-11-01 Knowles Electronics, Llc Microphone with programmable phone onset detection engine
AU2016346341B2 (en) 2015-10-26 2019-08-08 [24]7.ai, Inc. Method and apparatus for facilitating customer intent prediction
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
US10229671B2 (en) 2015-12-02 2019-03-12 GM Global Technology Operations LLC Prioritized content loading for vehicle automatic speech recognition systems
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
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 삼성전자주식회사 정보 제공 방법 및 장치
CA3009758A1 (en) 2015-12-29 2017-07-06 Mz Ip Holdings, Llc Systems and methods for suggesting emoji
US9716795B1 (en) 2015-12-30 2017-07-25 Qualcomm Incorporated Diversion of a call to a wearable device
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
US10382729B2 (en) 2016-01-06 2019-08-13 Vivint, Inc. Home automation system-initiated calls
JP2017123564A (ja) 2016-01-07 2017-07-13 ソニー株式会社 制御装置、表示装置、方法及びプログラム
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
US9792534B2 (en) 2016-01-13 2017-10-17 Adobe Systems Incorporated Semantic natural language vector space
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
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
KR20170096774A (ko) 2016-02-17 2017-08-25 이준영 전자기기의 사용자 행동기반 정황인식 작동모드
EP3418881B1 (en) 2016-02-18 2020-04-01 Sony Corporation Information processing device, information processing method, and program
US9947316B2 (en) 2016-02-22 2018-04-17 Sonos, Inc. Voice control of a media playback system
US10743101B2 (en) 2016-02-22 2020-08-11 Sonos, Inc. Content mixing
US9965247B2 (en) 2016-02-22 2018-05-08 Sonos, Inc. Voice controlled media playback system based on user profile
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
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
AU2017234428B2 (en) 2016-03-14 2020-04-09 Apple Inc. Identification of voice inputs providing credentials
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
WO2017184149A1 (en) 2016-04-21 2017-10-26 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
KR20190025549A (ko) 2016-05-06 2019-03-11 더 보드 어브 트러스티스 어브 더 리랜드 스탠포드 주니어 유니버시티 정신 장애들의 치료를 위한 이동 및 착용 가능한 비디오 캡처 및 피드백 플랫-폼들
US10332516B2 (en) 2016-05-10 2019-06-25 Google Llc Media transfer among media output devices
RU2632144C1 (ru) 2016-05-12 2017-10-02 Общество С Ограниченной Ответственностью "Яндекс" Компьютерный способ создания интерфейса рекомендации контента
US10217464B2 (en) 2016-05-13 2019-02-26 Koninklijke Philips N.V. Vocabulary generation system
US20170329466A1 (en) 2016-05-13 2017-11-16 Sap Se User interface application and digital assistant
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
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
GB2551209B (en) 2016-06-06 2019-12-04 Cirrus Logic Int Semiconductor Ltd Voice user interface
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
CN107480161A (zh) 2016-06-08 2017-12-15 苹果公司 用于媒体探究的智能自动化助理
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10127926B2 (en) 2016-06-10 2018-11-13 Google Llc Securely executing voice actions with speaker identification and authentication input types
US10592601B2 (en) 2016-06-10 2020-03-17 Apple Inc. Multilingual word prediction
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
CN107491468B (zh) 2016-06-11 2021-06-01 苹果公司 具有数字助理的应用集成
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
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
AU2017100486C4 (en) 2016-06-11 2019-09-05 Apple Inc. Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
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
EP3482391B1 (en) 2016-07-06 2023-06-14 DRNC 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
US10187503B2 (en) 2016-08-19 2019-01-22 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
US10217462B2 (en) 2016-08-31 2019-02-26 Microsoft Technology Licensing, Llc Automating natural language task/dialog authoring by leveraging existing content
US10546066B2 (en) 2016-08-31 2020-01-28 Microsoft Technology Licensing, Llc End-to-end learning of dialogue agents for information access
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
CN106484139B (zh) 2016-10-19 2019-01-29 北京新美互通科技有限公司 表情符号推荐方法及装置
US11392598B2 (en) 2016-10-19 2022-07-19 Ebay Inc. Applying a quantitative range for qualitative terms
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
US10147306B2 (en) 2016-11-23 2018-12-04 Alarm.Com Incorporated Detection of authorized user presence and handling of unauthenticated monitoring system commands
US10331791B2 (en) 2016-11-23 2019-06-25 Amazon Technologies, Inc. Service for developing dialog-driven applications
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
JP2018101828A (ja) 2016-12-19 2018-06-28 船井電機株式会社 制御装置
US11237696B2 (en) 2016-12-19 2022-02-01 Google Llc Smart assist for repeated actions
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
WO2018118442A1 (en) 2016-12-21 2018-06-28 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
WO2018123067A1 (ja) 2016-12-29 2018-07-05 ヤマハ株式会社 コマンドデータ送信装置、ローカルエリア装置、機器制御システム、コマンドデータ送信装置の制御方法、ローカルエリア装置の制御方法、機器制御方法、及びプログラム
US10210864B2 (en) 2016-12-29 2019-02-19 T-Mobile Usa, Inc. Voice command for communication between related devices
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
US9980183B1 (en) 2017-01-24 2018-05-22 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
US11100384B2 (en) 2017-02-14 2021-08-24 Microsoft Technology Licensing, Llc Intelligent device user interactions
US10467510B2 (en) 2017-02-14 2019-11-05 Microsoft Technology Licensing, Llc Intelligent assistant
CN106776581B (zh) 2017-02-21 2020-01-24 浙江工商大学 基于深度学习的主观性文本情感分析方法
WO2018159971A1 (en) 2017-02-28 2018-09-07 Samsung Electronics Co., Ltd. Operating method of electronic device for function execution based on voice command in locked state and electronic device supporting the same
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
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
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
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
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
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
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
CN109688442B (zh) 2017-05-16 2021-06-04 苹果公司 用于家庭媒体控制的方法和界面
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US11048995B2 (en) 2017-05-16 2021-06-29 Google Llc Delayed responses by computational assistant
KR102477489B1 (ko) 2017-05-16 2022-12-13 애플 인크. 디지털 어시스턴트 서비스의 원거리 확장
US10395659B2 (en) 2017-05-16 2019-08-27 Apple Inc. Providing an auditory-based interface of a digital 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
US20180336439A1 (en) 2017-05-18 2018-11-22 Intel Corporation Novelty detection using discriminator of generative adversarial network
US10170137B2 (en) 2017-05-18 2019-01-01 International Business Machines Corporation Voice signal component forecaster
US10521512B2 (en) 2017-05-26 2019-12-31 Bose Corporation Dynamic text-to-speech response from a smart speaker
US20180349346A1 (en) 2017-06-02 2018-12-06 Apple Inc. Lattice-based techniques for providing spelling corrections
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
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
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
US11004444B2 (en) 2017-09-08 2021-05-11 Amazon Technologies, Inc. Systems and methods for enhancing user experience by communicating transient errors
US10438594B2 (en) 2017-09-08 2019-10-08 Amazon Technologies, Inc. Administration of privileges by speech for voice assistant system
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10719507B2 (en) 2017-09-21 2020-07-21 SayMosaic Inc. System and method for natural language processing
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10466962B2 (en) 2017-09-29 2019-11-05 Sonos, Inc. Media playback system with voice assistance
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 삼성전자주식회사 음성 신호를 제어하기 위한 전자 장치 및 방법
WO2019079015A1 (en) 2017-10-21 2019-04-25 Apple Inc. PERSONAL DOMAIN FOR A VIRTUAL ASSISTANT SYSTEM ON A COLLECTIVE 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 北京小米移动软件有限公司 多语音助手控制方法、装置及计算机可读存储介质
US11037555B2 (en) 2017-12-08 2021-06-15 Google Llc Signal processing coordination among digital voice assistant computing devices
US11182122B2 (en) 2017-12-08 2021-11-23 Amazon Technologies, Inc. Voice control of computing devices
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
US10170135B1 (en) 2017-12-29 2019-01-01 Intel Corporation Audio gait detection and identification
US10685225B2 (en) 2017-12-29 2020-06-16 Wipro Limited Method and system for detecting text in digital engineering drawings
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
US10674014B2 (en) 2018-03-15 2020-06-02 Ways Investments, LLC System, method, and apparatus for providing help
US11044364B2 (en) 2018-03-15 2021-06-22 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
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
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
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
AU2019100576C4 (en) 2018-06-03 2020-01-30 Apple Inc. Accelerated task performance
US10504518B1 (en) 2018-06-03 2019-12-10 Apple Inc. Accelerated task performance
US10818296B2 (en) 2018-06-21 2020-10-27 Intel Corporation Method and system of robust speaker recognition activation
WO2020010530A1 (en) 2018-07-10 2020-01-16 Microsoft Technology Licensing, Llc Automatically generating motions 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
KR20230145521A (ko) 2018-08-23 2023-10-17 구글 엘엘씨 멀티-어시스턴트 환경의 특성에 따른 어시스턴트 응답성 규정하기
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
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
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
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
CN110288077B (zh) 2018-11-14 2022-12-16 腾讯科技(深圳)有限公司 一种基于人工智能的合成说话表情的方法和相关装置
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
US11501862B2 (en) 2019-03-01 2022-11-15 Cambia Health Solutions, Inc. Systems and methods for healthcare provider dashboards
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 北京邮电大学 名片识别方法和装置
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
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
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
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
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
US20200380389A1 (en) 2019-05-31 2020-12-03 Apple Inc. Sentiment and intent analysis for customizing suggestions using user-specific information
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
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11468890B2 (en) 2019-06-01 2022-10-11 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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
WO2007057499A1 (en) * 2005-11-17 2007-05-24 Nokia Corporation Application interworking
CN101763341A (zh) * 2009-12-23 2010-06-30 宇龙计算机通信科技(深圳)有限公司 一种文本协同方法、系统及触摸屏设备
CN104050153A (zh) * 2013-03-11 2014-09-17 三星电子株式会社 数据复制和粘贴的方法和装置
CN104281390A (zh) * 2013-07-05 2015-01-14 索尼公司 信息处理装置和存储介质
CN104360990A (zh) * 2014-10-27 2015-02-18 深圳市金立通信设备有限公司 一种编辑内容的方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110222263A (zh) * 2019-05-24 2019-09-10 苏州达家迎信息技术有限公司 应用程序维护控制方法、装置、服务器、终端及存储介质
CN110677190A (zh) * 2019-10-09 2020-01-10 大连大学 一种天地一体化智能网络节点静态处理与缓存方法
CN112417288A (zh) * 2020-11-25 2021-02-26 南京大学 一种用于众包软件测试的任务跨域推荐方法
CN112417288B (zh) * 2020-11-25 2024-04-12 南京大学 一种用于众包软件测试的任务跨域推荐方法
CN112800376A (zh) * 2021-04-15 2021-05-14 成都万创科技股份有限公司 一种基于Http循环请求的实现方法及其装置
CN112800376B (zh) * 2021-04-15 2021-07-13 成都万创科技股份有限公司 一种基于Http循环请求的实现方法及其装置

Also Published As

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

Similar Documents

Publication Publication Date Title
JP7042963B1 (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
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant