HK1246468B - Intelligent surfacing of reminders - Google Patents
Intelligent surfacing of remindersInfo
- Publication number
- HK1246468B HK1246468B HK18105717.1A HK18105717A HK1246468B HK 1246468 B HK1246468 B HK 1246468B HK 18105717 A HK18105717 A HK 18105717A HK 1246468 B HK1246468 B HK 1246468B
- Authority
- HK
- Hong Kong
- Prior art keywords
- user
- time
- predicted
- individual
- reminder
- Prior art date
Links
Description
技术领域Technical Field
背景技术Background Art
日历和日程应用及服务通常对用户的活动、任务、工作、约会、会议和其他类型的事件进行组织和显示。它们还可以基于事件的日期和时间提供呈现给用户的事件提醒或通知。现有服务可能局限于在事件的时间、在事件之前的默认时间段、或在用户指定的某个时间段来呈现或触发提醒,其可能向用户提供足够提前的通知,或者可能不会提供足够提前的通知。触发提醒的一些方法是基于地理围栏和/或检测到与提醒相关联的个体的通信。Calendar and scheduling applications and services typically organize and display a user's activities, tasks, work, appointments, meetings, and other types of events. They may also provide event reminders or notifications that are presented to the user based on the date and time of the event. Existing services may be limited to presenting or triggering reminders at the time of the event, a default time period before the event, or a user-specified time period, which may or may not provide sufficient advance notice to the user. Some methods of triggering reminders are based on geo-fencing and/or detecting communications with individuals associated with the reminder.
发明内容Summary of the Invention
提供本发明内容以便以简化的形式介绍原理的选择,这些原理将在下面具体实施方式中做进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或重要特征,也不旨在用于帮助确定所要求保护的主题的范围。This summary is provided to introduce a selection of principles in a simplified form, which are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
在各种实施例中,提供系统、方法和计算机存储介质以用于基于上下文信息来在相关时间向用户触发事件提醒或通知。提醒可以基于以下类型的信息被触发:诸如日历信息、用户简档信息和/或诸如经常访问的位置、经常行进的路线、行进时间、会议参与者、与另一个体的邻近范围等一个或多个条件的信息。在一个实施例中,标识与提醒相关联的另一个体,并且对该用户被预期将处于该另一个体的邻近范围内的未来时间进行预测。触发提醒的时间继而可以基于比该用户被预期处于另一个体的邻近范围内时提前的一些时间量。In various embodiments, systems, methods, and computer storage media are provided for triggering event reminders or notifications to users at relevant times based on contextual information. Reminders can be triggered based on information such as calendar information, user profile information, and/or one or more conditions such as frequently visited locations, frequently traveled routes, travel times, meeting participants, proximity to another individual, etc. In one embodiment, another individual associated with the reminder is identified, and a future time is predicted when the user is expected to be within the proximity of the other individual. The time at which the reminder is triggered can then be based on an amount of time in advance of when the user is expected to be within the proximity of the other individual.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
以下参考附图详细描述本发明,其中:The present invention is described in detail below with reference to the accompanying drawings, in which:
图1描绘适于与本发明实施例一起使用的示例性操作环境;FIG1 depicts an exemplary operating environment suitable for use with embodiments of the present invention;
图2描绘适于与本发明实施例一起使用的触发提醒的呈现的示例性方法流程图;FIG2 depicts a flow chart of an exemplary method for triggering presentation of reminders suitable for use with embodiments of the present invention;
图3描绘适于与本发明实施例一起使用的触发提醒的呈现的示例性方法流程图;FIG3 depicts a flow chart of an exemplary method for triggering presentation of reminders suitable for use with embodiments of the present invention;
图4描绘适于与本发明实施例一起使用的触发提醒的呈现的示例性系统;以及FIG4 depicts an exemplary system for triggering presentation of reminders suitable for use with embodiments of the present invention; and
图5描绘适于与本发明实施例一起使用的触发提醒的呈现的示例性系统。FIG5 depicts an exemplary system for triggering the presentation of reminders suitable for use with embodiments of the present invention.
具体实施方式DETAILED DESCRIPTION
在相关联的事件或任务之前,在用户设备中触发事件提醒或通知可以向用户提供足够的时间,以便行进和/或做出该事件或任务可能需要的任何准备。可以使用上下文信息来确定提前到什么程度来浮现通知或触发通知。关于事件的上下文信息可以从用户简档信息(诸如经常访问的位置、经常行进的路线、与事件相关联的位置、与用户相关联的个体、与用户相关联的位置、用户的当前位置等确定。关于事件的上下文信息也可以从用户日历中的其他信息和/或来自另一用户日历的信息确定。在一个实施例中,与提醒相关联的数据或参数结合上下文信息用于确定使提醒浮现的相关时间。相关时间可以包括事件之前足够长的时间,该时间允许用户从当前位置行进到事件,并且在事件被安排出现的时间前(或早于该时间)到达。相关时间可以包括在使得事件(诸如针对不与特定时间绑定的事件)能够出现的环境的预测聚集之前的时间。Triggering an event reminder or notification in a user device before an associated event or task can provide the user with sufficient time to travel and/or make any preparations that may be required for the event or task. Contextual information can be used to determine how far in advance to surface a notification or trigger a notification. Contextual information about the event can be determined from user profile information (such as frequently visited locations, frequently traveled routes, locations associated with the event, individuals associated with the user, locations associated with the user, the user's current location, etc.). Contextual information about the event can also be determined from other information in the user's calendar and/or information from another user's calendar. In one embodiment, data or parameters associated with the reminder are combined with the contextual information to determine a relevant time for causing the reminder to surface. The relevant time can include a time long enough before the event that allows the user to travel from the current location to the event and arrive before (or earlier than) the time at which the event is scheduled to occur. The relevant time can include a time before a predicted aggregation of circumstances that enable the event (such as for an event that is not bound to a specific time) to occur.
如本文所使用的,术语“事件”包括突发事件、偶然事件、计划的重要事件、待执行的任务、待记住的信息等等。由此,作为示例而非限制,事件可以包括会议、使命、任务、特殊重要事件,以及通常包括用户希望或需要被提醒的任何内容。一些事件可能与特定位置、时间和/或个体相关联,诸如,在特定日期和时间、在特定会议室中与同事的工作会议。然而,事件不是必须与特定位置、时间或个体相关联。例如,“今天从工作位置回家的道路上购买牛奶”的任务并不指定特定的杂货店,而且与个体(除该用户之外)无关联。“从第12号街道的图书馆借阅园艺书”的任务并没有指定特定日期、时间或个体。任务“向Fred还我欠他的五美元”没有指定具体日期或位置。一些实施例确定触发事件通知的相关时间,而不管事件是否与具体位置、日期或时间相关联。As used herein, the term "event" includes sudden events, accidental events, planned important events, tasks to be performed, information to be remembered, and the like. Thus, by way of example and not limitation, events may include meetings, missions, tasks, special important events, and generally anything that a user wants or needs to be reminded of. Some events may be associated with a specific location, time, and/or individual, such as a work meeting with colleagues in a specific conference room at a specific date and time. However, events are not necessarily associated with a specific location, time, or individual. For example, the task of "buying milk on the way home from work today" does not specify a specific grocery store and is not associated with an individual (other than the user). The task of "borrowing a gardening book from the library on 12th Street" does not specify a specific date, time, or individual. The task of "paying Fred the five dollars I owe him" does not specify a specific date or location. Some embodiments determine the relevant time for triggering an event notification regardless of whether the event is associated with a specific location, date, or time.
根据本发明的一些实施例,分析事件提醒数据以标识与提醒/事件相关联的个体(除该用户之外)。事件提醒数据可以包括用于配置提醒的参数,诸如位置、日期、时间、主题、对其他用户或个体的提及等等。可以基于提醒数据内的描述性术语或姓名结合关于该用户的上下文信息,来标识另一用户或个体。基于与用户相关联的上下文信息,确定该用户被预测或预期处于关联于该提醒的个体的邻近范围内的未来时间。上下文信息可以包括诸如日历信息、预定事件、其他提醒、用户历史上行进的已知路线、用户历史访问的已知位置等信息。在一个实施例中,基于用户日历数据内的具体事件,确定用户被预测或预期将处于关联于该提醒的个体的邻近范围内的未来时间。例如,当用户的日历数据包括与另一个体相关联的第二事件时,第二事件的排定时间是该用户被预期处于该个体的邻近范围内时的未来时间。例如,第二事件可能是所计划的与另一个体的晚餐。备选地,用户被预期处于个体的邻近范围内的未来时间可以基于来自该用户的日历信息(和/或其他上下文信息)以及另一个体的日历信息(和/或上下文信息)的信息。在一个实施例中,可以利用另一个体的日历和/或上下文数据来确定该个体将会位于与用户未来位置相同的位置(或附近位置)处,该用户未来位置从用户的日历和/或上下文数据被确定。为了与某些其他用户协调事件的目的,可以向用户提供允许其日历信息和/或其上下文信息的其他部分被访问的选择。如本文所使用的,术语“邻近范围”是指落在阈值内的距离和/或行进时间的量,其中阈值被指定为建议用户为了完成任务、事件等需要行进的可接受距离或行进时间的量。例如,如果用户需要执行与另一个体有关的任务(例如,给Joe二十美元),邻近范围阈值是五分钟行进时间,以及当用户处于特定位置时预测该用户与另一个体将处于彼此相隔五分钟步行(或五分钟车程)距离,则可以向该用户呈现以下提醒或建议:可以在该特定位置执处行该任务。According to some embodiments of the present invention, event reminder data is analyzed to identify individuals (other than the user) associated with the reminder/event. Event reminder data may include parameters for configuring reminders, such as location, date, time, subject, mentions of other users or individuals, and the like. Another user or individual can be identified based on descriptive terms or names within the reminder data combined with contextual information about the user. Based on the contextual information associated with the user, a future time is determined when the user is predicted or expected to be within the proximity of the individual associated with the reminder. The contextual information may include information such as calendar information, scheduled events, other reminders, known routes the user has historically traveled, and known locations the user has historically visited. In one embodiment, based on specific events within the user's calendar data, a future time is determined when the user is predicted or expected to be within the proximity of the individual associated with the reminder. For example, when the user's calendar data includes a second event associated with another individual, the scheduled time for the second event is a future time when the user is expected to be within the proximity of the individual. For example, the second event may be a planned dinner with the other individual. Alternatively, the future time at which a user is expected to be within the proximity of an individual can be based on information from the user's calendar information (and/or other contextual information) and the calendar information (and/or contextual information) of another individual. In one embodiment, the calendar and/or contextual data of another individual can be used to determine that the individual will be at the same location (or a nearby location) as the user's future location, which is determined from the user's calendar and/or contextual data. For the purpose of coordinating events with certain other users, the user can be provided with the option of allowing other parts of their calendar information and/or its contextual information to be accessed. As used herein, the term "proximity range" refers to the amount of distance and/or travel time that falls within a threshold, wherein the threshold is specified as the amount of acceptable distance or travel time that the user needs to travel in order to complete a task, event, etc. For example, if a user needs to perform a task related to another individual (e.g., give Joe twenty dollars), the proximity range threshold is a five-minute travel time, and when the user is at a specific location, it is predicted that the user and the other individual will be within a five-minute walk (or a five-minute drive) of each other, then the following reminder or suggestion can be presented to the user: the task can be performed at the specific location.
在一个实施例中,确定触发时间(即,触发提醒的提前时间),并且基于所确定的触发时间来触发提醒。可以基于到达第二事件的位置所需的行进时间量来确定触发时间。例如,可以预测用户的起始位置,并且可以确定从起始位置到第二事件的位置的预测路线。行进时间可以基于诸如沿着路线的距离、速度限制、交通模式、天气状况等因素来确定。在一个实施例中,可以至少部分地基于地理围栏来确定触发时间,例如,当用户离开特定位置或到达特定位置(诸如工作场所、家庭、商店,等等)时可以触发提醒,或者可以在用户离开或到达特定位置之前或之后一些确定的时间量触发提醒。所确定的时间量可以基于行进时间和/或上述任何其他因素来确定。In one embodiment, a trigger time (i.e., the lead time for triggering the reminder) is determined, and the reminder is triggered based on the determined trigger time. The trigger time can be determined based on the amount of travel time required to reach the location of the second event. For example, a starting location of the user can be predicted, and a predicted route from the starting location to the location of the second event can be determined. The travel time can be determined based on factors such as distance along the route, speed limits, traffic patterns, weather conditions, etc. In one embodiment, the trigger time can be determined at least in part based on geo-fencing, for example, the reminder can be triggered when the user leaves or arrives at a specific location (such as a workplace, home, store, etc.), or the reminder can be triggered some determined amount of time before or after the user leaves or arrives at the specific location. The determined amount of time can be determined based on the travel time and/or any other factors described above.
在一个实施例中,在用户界面内的特定位置或页面上呈现提醒。例如,用户界面可以具有“主”页面或“需要知道”部分,或用户界面的某些其他指定部分,用户可以在该处查看已经出现的任何未完成提醒。由此,当提醒被触发时,它可以被放置在用户界面的指定部分中,在用户选择可以在该指定部分查看提醒。附加地,提醒可以在用户界面的该位置持续一段时间,使得如果用户稍后返回到用户界面的指定部分,该提醒仍然被呈现。在一个实施例中,用户不会被通知提醒已经放置在用户界面的指定部分中,而是必须查看界面的该部分以确定提醒是否已被放置在那里。在另一个实施例中,用户可以接收已经将提醒放置在用户界面的指定部分中的通知,诸如可听音、振动或弹出消息。在一些实施例中,当用户正在查看用户界面的其他部分时,直接将提醒呈现给用户、或者附加于将该提醒放置在用户界面的指定部分中,还直接将提醒呈现给用户,以代替于将该提醒放置在用户界面的指定部分中。例如,提醒可以呈现为弹出消息、对话框或其他类型的主动提供的消息。无论用户是否正在主动查看设备,都可以呈现提醒,并且可以利用可听音或振动来吸引用户的注意力以查看提醒。In one embodiment, reminders are presented in a specific location or page within a user interface. For example, the user interface may have a "Home" page or a "Need to Know" section, or some other designated portion of the user interface where the user can view any pending reminders that have appeared. Thus, when a reminder is triggered, it can be placed in a designated portion of the user interface, where the user can view the reminder if they choose. Additionally, the reminder can persist in that location for a period of time, so that if the user later returns to the designated portion of the user interface, the reminder is still presented. In one embodiment, the user is not notified that the reminder has been placed in the designated portion of the user interface, but must instead view that portion of the interface to determine whether the reminder has been placed there. In another embodiment, the user may receive notification that the reminder has been placed in the designated portion of the user interface, such as an audible tone, vibration, or pop-up message. In some embodiments, instead of placing the reminder in the designated portion of the user interface, the reminder is presented to the user directly while the user is viewing other portions of the user interface, or in addition to being placed in the designated portion of the user interface. For example, the reminder may be presented as a pop-up message, a dialog box, or other type of unsolicited message. Reminders can be presented regardless of whether the user is actively viewing the device and can utilize an audible tone or vibration to attract the user's attention to view the reminder.
在第一方面,提供一种用于触发提醒的呈现的方法。该方法包括访问提醒,该提醒描述与用户设备的用户相关联的事件。标识除该用户之外的与第一事件相关联的个体。预测用户将处于另一个体的邻近范围内的未来时间。确定触发提醒以用于呈现给用户的时间,使得触发提醒的时间在预测该用户将处于该个体的邻近范围内的未来时间之前出现。确定触发提醒的时间已经出现,以及基于该确定,提醒被触发以呈现给用户。In a first aspect, a method for triggering presentation of a reminder is provided. The method includes accessing a reminder describing an event associated with a user of a user device. Identifying an individual, other than the user, associated with the first event. Predicting a future time when the user will be within proximity of the other individual. Determining a time to trigger the reminder for presentation to the user such that the time to trigger the reminder occurs before the future time when the user is predicted to be within proximity of the individual. Determining that the time to trigger the reminder has occurred, and based on this determination, triggering the reminder for presentation to the user.
在第二方面,提供了一种用于触发日历事件提醒的呈现的系统。该系统包括一个或多个计算设备和配置为存储与用户设备的用户相关联的日历信息的数据存储设备。该系统还包括配置为收集与用户相关联的上下文信息的数据收集组件,以及配置为存储上下文信息的数据存储。系统还包括推断引擎,其被配置为访问事件提醒,该时间提醒描述与用户设备的用户相关联的事件、标识除用户之外的与事件相关联的个体,以及确定预测用户处于个体的预定邻近范围内的未来时间,确定触发提醒以呈现给用户的时间,使得触发时间将在预测用户处于个体的预定邻近范围内的未来时间之前的时间段出现。该系统还包括提醒出现组件,其配置为确定触发提醒的时间已经出现,以及触发提醒以呈现给用户。In a second aspect, a system for triggering the presentation of a calendar event reminder is provided. The system includes one or more computing devices and a data storage device configured to store calendar information associated with a user of a user device. The system also includes a data collection component configured to collect contextual information associated with the user, and a data storage configured to store the contextual information. The system also includes an inference engine configured to access an event reminder that describes an event associated with a user of the user device, identifies an individual other than the user associated with the event, and determines a future time when the user is predicted to be within a predetermined proximity of the individual, determines a time to trigger the reminder to be presented to the user, such that the triggering time will occur in a time period prior to the future time when the user is predicted to be within the predetermined proximity of the individual. The system also includes a reminder appearance component configured to determine that the time to trigger the reminder has occurred, and trigger the reminder to be presented to the user.
在第三方面,提供一种用于触发日历事件提醒的呈现的方法。访问事件提醒,该时间提醒描述与用户设备的用户相关联的事件。标识除用户之外的与该事件相关联的个体。预测用户将处于个体的预定邻近范围内时的未来时间,该个体位于沿着预测用户行进的路线的点处。确定触发提醒以呈现给用户的时间,使得触发提醒的时间出现在用户将处于个体的预定邻近范围内的预测的未来时间之前的时间段。确定触发提醒的时间已经出现,以及提醒被触发以呈现给用户。In a third aspect, a method for triggering the presentation of a calendar event reminder is provided. An event reminder is accessed, the time reminder describing an event associated with a user of a user device. An individual associated with the event, other than the user, is identified. A future time is predicted when the user will be within a predetermined proximity of the individual, the individual being located at a point along a route predicted to be traveled by the user. A time is determined to trigger the reminder for presentation to the user, such that the time to trigger the reminder occurs within a time period prior to the predicted future time when the user will be within the predetermined proximity of the individual. It is determined that the time to trigger the reminder has occurred, and the reminder is triggered for presentation to the user.
首先参考图2,具体地,流程图描绘适于与本发明实施例一起使用的用于触发提醒的呈现的示例性方法,并且总体上被称为方法200。方法200仅仅是一种合适的方法的示例,并且不旨在对本发明的使用范围或功能性提出任何限制。方法200也不应被解释为具有与本文所示任何单个组件或组件组合有关的任何依赖性或要求。Referring first to FIG. 2 , in particular, a flowchart depicts an exemplary method for triggering presentation of a reminder suitable for use with embodiments of the present invention, and generally referred to as method 200. Method 200 is merely an example of one suitable method and is not intended to suggest any limitation as to the scope of use or functionality of the present invention. Method 200 should also not be interpreted as having any dependency or requirement relating to any single component or combination of components illustrated herein.
在步骤210,访问描述与用户设备的用户相关联的事件的提醒。用户设备可以是与以下针对图1描述的计算设备100类似的用户设备。提醒可以包括关于事件的信息,诸如任务、偶然事件、聚会、特殊场合、会议、位置、日期、时间、一个或多个其他个体等等。提醒可以作为日历应用、日程应用或存储和利用提醒的其他类型的应用的一部分而被存储在用户设备上的存储器中。提醒备选地可以被远程地存储,诸如在与用户设备进行通信并管理多个用户设备的提醒的网络服务器上。将要呈现给用户的提醒示例可能包括“今晚下班后在Acme杂货店购买牛奶”、“2015年6月4日下午2点,在15号会议室与Sam和Tom会面”、“还我欠Joe的二十美元”,等等。在一个实施例中,提醒不需要与特定个体、特定位置或特定日期/时间相关联。At step 210, reminders describing events associated with a user of a user device are accessed. The user device may be a user device similar to computing device 100 described below with respect to FIG. 1 . Reminders may include information about events, such as tasks, casual events, gatherings, special occasions, meetings, locations, dates, times, one or more other individuals, and the like. Reminders may be stored in memory on the user device as part of a calendar application, a schedule application, or other type of application that stores and utilizes reminders. Alternatively, reminders may be stored remotely, such as on a network server that communicates with the user device and manages reminders for multiple user devices. Examples of reminders that may be presented to the user may include "Buy milk at Acme Grocery Store after get off work tonight," "Meet Sam and Tom in Conference Room 15 at 2 PM on June 4, 2015," "Pay back the twenty dollars I owe Joe," and the like. In one embodiment, reminders need not be associated with a specific individual, a specific location, or a specific date/time.
在步骤212,标识与事件相关联的个体(除用户之外)。在上述示例提醒中,Sam和Tom是与会议提醒相关联的个体,以及Joe是与还钱的提醒相关联的个体。这两个提醒之间的一个区别是:会议提醒与位置和日期/时间相关联,而还钱的提醒与位置或时间无关联。个体可以以各种方式来标识。基于对术语或姓名(例如,“Joe”、“Tom Smith”、“孩子们”等)进行标识,可以从与用户相关联的用户简档中标识个体,该用户简档存储关于用户的上下文信息。可能有助于标识个体的上下文信息的示例包括家庭成员、朋友、同事以及一般地与用户相关联的任何人的指示,并且还可以包括用户与个体具有的关系或关联的类型的指示。在一个实施例中,用户可以将特定个体指定为与用户相关联的“核心圈子(innercircle)”成员。可以为核心圈子的成员分配各种优先级别,当浮现提醒时,可以使用该优先级别。例如,用户的配偶可以被指定为核心圈子的成员,而用户的房地产经纪人可能不是。在这种情况下,当与配偶相关联的提醒和与房地产经纪人相关联的提醒都出现时,因为配偶被指定在用户的核心圈子中,与配偶相关联的提醒可以基于配偶相对于房地产经纪人的优先级别,而更显着地、突出地或以其他方式进行强调。类似地,配偶和朋友都可以被包括在用户的核心圈子中,但是用户可以将配偶指定为具有比朋友更高的优先级别。由此,基于分配给配偶和朋友的优先级别,与配偶相关联的提醒相对于与朋友相关联的提醒将被给予强调,即使两者都在核心圈子中。用户可能希望优先考虑的个体的其他示例包括子女、其他家庭成员、工作主管等等。In step 212, individuals associated with the event (other than the user) are identified. In the example reminder above, Sam and Tom are individuals associated with the meeting reminder, and Joe is an individual associated with the reminder to pay back the money. One difference between these two reminders is that the meeting reminder is associated with a location and date/time, while the reminder to pay back the money is not associated with a location or time. Individuals can be identified in various ways. Based on identifying terms or names (e.g., "Joe," "Tom Smith," "the kids," etc.), individuals can be identified from a user profile associated with the user, which stores contextual information about the user. Examples of contextual information that may be helpful in identifying individuals include identification of family members, friends, coworkers, and generally anyone associated with the user. It may also include an indication of the type of relationship or association the user has with the individual. In one embodiment, a user can designate specific individuals as members of an "inner circle" associated with the user. Members of the inner circle can be assigned various priority levels, which can be used when surfacing reminders. For example, a user's spouse may be designated as a member of the inner circle, while the user's real estate agent may not be. In this case, when both a reminder associated with a spouse and a reminder associated with a real estate agent appear, because the spouse is designated in the user's Inner Circle, the reminder associated with the spouse may be given more prominence, prominence, or other emphasis based on the spouse's priority level relative to the real estate agent. Similarly, both a spouse and a friend may be included in the user's Inner Circle, but the user may designate the spouse as having a higher priority level than the friend. Thus, based on the priority levels assigned to the spouse and the friend, the reminder associated with the spouse will be given emphasis relative to the reminder associated with the friend, even though both are in the Inner Circle. Other examples of individuals that a user may wish to prioritize include children, other family members, work supervisors, and the like.
在步骤214,确定预测用户将处于与提醒相关联的个体的邻近范围内的未来时间。未来时间可以基于与用户相关联的上下文信息来被确定。上下文信息可以包括诸如日历信息、预定事件、其他提醒、用户历史上行进的已知路线和/或用户行进的次数、用户历史访问的已知位置和/或用户访问次数等的信息。类似地,可以使用关于另一个体的已知信息来预测其他个体的位置。这可以包括:(1)在用户的上下文信息中已知的、而不需要访问其他个体的个人信息的信息(例如,包括个体、个体的家庭位置、个体的工作位置等的日历邀请);以及(2)需要访问其他个体的个人信息的信息(例如,日历信息、提醒、来自个体的移动设备的当前GPS等)。另一个体的个人信息可以基于另一个体所授予的许可进行访问。在一个实施例中,可以基于一个或两个个体位于另一个体的核心圈子中的指定来授予许可。可以基于用户与另一个体之间的距离(诸如,直线距离或沿着诸如街道、人行道等的路线的距离)来确定用户与另一个体的邻近范围。距离不需要仅仅基于典型的测量单位(例如,英里、英尺等)来被确定,而是也可以基于诸如用户与个体是否在同一建筑物内、彼此处于某些数量的建筑物内等因素来确定。邻近范围也可以基于用户与个体之间的行进时间量,例如步行时间、行车时间或其他交通工具时间的量。In step 214, a future time is determined at which the user is predicted to be within the proximity of the individual associated with the reminder. The future time can be determined based on contextual information associated with the user. The contextual information can include information such as calendar information, scheduled events, other reminders, known routes that the user has historically traveled and/or the number of times the user has traveled, known locations that the user has historically visited and/or the number of times the user has visited, etc. Similarly, known information about another individual can be used to predict the location of the other individual. This can include: (1) information that is known in the user's contextual information and does not require access to the other individual's personal information (e.g., calendar invitations that include the individual, the individual's home location, the individual's work location, etc.); and (2) information that requires access to the other individual's personal information (e.g., calendar information, reminders, current GPS from the individual's mobile device, etc.). The other individual's personal information can be accessed based on permission granted by the other individual. In one embodiment, permission can be granted based on a designation that one or both individuals are within the other individual's inner circle. The proximity of the user to the other individual can be determined based on the distance between the user and the other individual (e.g., straight-line distance or distance along a route such as a street, sidewalk, etc.). Distance need not be determined solely based on typical units of measurement (e.g., miles, feet, etc.), but may also be determined based on factors such as whether the user and the individual are in the same building, within a certain number of buildings of each other, etc. Proximity may also be based on the amount of travel time between the user and the individual, such as the amount of walking time, driving time, or other means of transportation.
在一个实施例中,基于用户的日历信息确定未来时间。标识与同一个体相关联并被安排在未来时间的第二事件。由此,将第二事件的预定时间标识为预测用户处于个体的邻近范围内的未来时间。例如,假设提醒是“还我欠Joe的二十美元”。访问用户的日历信息时,另一事件-“下周六下午3:00与Joe会面打壁球”-可能会被标识。下周六下午3:00由此可能被标识为预测用户将处于Joe的邻近范围内的未来时间,这将是还钱的适当时间。第二事件可能是与第一事件不同的事件。例如,在上面的示例中,“下周六下午3:00与Joe会面打壁球”和“还我欠Joe的二十美元”,可能会作为单独的无关事件而被存储在用户日历/提醒信息中。由此,这两个事件彼此独立,即,可以在没有另一个的情况下出现,并且它们并不特别地需要在同一时间或位置出现。In one embodiment, a future time is determined based on the user's calendar information. A second event associated with the same individual and scheduled for a future time is identified. Thus, the scheduled time for the second event is identified as a future time when the user is predicted to be within the vicinity of the individual. For example, suppose the reminder is "Pay back the twenty dollars I owe Joe." When accessing the user's calendar information, another event—"Meet Joe for squash next Saturday at 3:00 PM"—may be identified. Next Saturday at 3:00 PM may thus be identified as a future time when the user is predicted to be within Joe's vicinity, making it an appropriate time to pay the money back. The second event may be different from the first. For example, in the above example, "Meet Joe for squash next Saturday at 3:00 PM" and "Pay back the twenty dollars I owe Joe" may be stored as separate, unrelated events in the user's calendar/reminder information. Thus, these two events are independent of each other, meaning that they can occur without the other and do not specifically need to occur at the same time or location.
在上述示例中,提醒“还我欠Joe的二十美元”与特定场所或时间无关联,例如,其不是安排在具体场所或时间进行的。然而,在一个实施例中,即使提醒与具体时间和/或位置相关联,也可以将不同的时间和/或位置确定为执行任务/事件的时机,并且建议给用户。例如,假设提醒是“下周日在教堂还我欠Joe的二十美元”。从用户的日历信息可知,第二事件“下周六下午3:00与Joe会面打壁球”可能被标识为给Joe还钱的较早机会,并且提醒可能在壁球比赛之前提前浮现。In the above example, the reminder "Pay back the twenty dollars I owe Joe" is not associated with a specific place or time, e.g., it is not scheduled for a specific place or time. However, in one embodiment, even if a reminder is associated with a specific time and/or location, different times and/or locations can be identified as opportunities to perform the task/event and suggested to the user. For example, suppose the reminder is "Pay back the twenty dollars I owe Joe at church next Sunday." Based on the user's calendar information, a second event, "Meet Joe for squash next Saturday at 3:00 PM," may be identified as an earlier opportunity to pay Joe back, and the reminder may surface in advance of the squash game.
在步骤216,确定触发提醒以用于呈现给用户的相关时间。相关时间可能是在第二事件之前足够长的时间,用户有时间采取任何可能需要的动作来完成与提醒相关联的任何任务或准备。触发提醒的时间可以是具体时间,或者可以基于地理围栏(诸如当用户离开或到达特定位置时)。在一个实施例中,预测用户在预测的未来时间将处于个体的邻近范围内的用户未来位置。标识用户的起始位置,并且预测用户将从起始位置行进到未来位置的路线。可以确定沿着从起始位置到未来位置的预测路线所需的行进时间量,并且可以至少部分地基于所需行进时间量来确定触发提醒的时间。例如,如果下周六用户在与Joe会面之前在家,则相关提醒可能会在Joe离家之前触发,以便用户被提醒将二十美元带到壁球比赛。可以基于从用户的移动电话、全球定位系统(GPS)或用户在特定位置现身的其他指示收集的信息来确定在预定事件之前的用户位置。还可以基于作为用户上下文信息的一部分被存储的历史行进或访问模式来预测用户的位置。例如,如果从上下文信息确定用户在每周六下午2:00总是(或通常)访问特定的咖啡店,则咖啡店可以被预测为用户在该周六下午2:00的当前位置。触发提醒的相关时间可能是用户能够访问本地ATM(或回家)以获得现金(如果需要)、并且仍然准时到达壁球比赛的足够早的时间。At step 216, a relevant time is determined for triggering a reminder for presentation to the user. The relevant time may be long enough before the second event for the user to take any necessary actions to complete any tasks or preparations associated with the reminder. The time to trigger the reminder may be a specific time or may be based on a geofence (such as when the user leaves or arrives at a specific location). In one embodiment, a future location of the user is predicted to be within the proximity of an individual at the predicted future time. A starting location of the user is identified, and a route that the user will travel from the starting location to the future location is predicted. The amount of travel time required to follow the predicted route from the starting location to the future location can be determined, and the time to trigger the reminder can be determined based at least in part on the required travel time. For example, if the user is at home next Saturday before meeting Joe, a relevant reminder may be triggered before Joe leaves home so that the user is reminded to bring twenty dollars to the racquetball game. The user's location before the scheduled event can be determined based on information collected from the user's mobile phone, global positioning system (GPS), or other indication of the user's presence at a specific location. The user's location can also be predicted based on historical travel or visit patterns stored as part of the user's contextual information. For example, if it is determined from contextual information that the user always (or typically) visits a particular coffee shop every Saturday at 2:00 p.m., the coffee shop may be predicted as the user's current location at 2:00 p.m. on that Saturday. A relevant time to trigger a reminder may be early enough for the user to be able to visit a local ATM (or go home) to get cash (if needed) and still arrive on time for the racquetball game.
在一个实施例中,将起始位置预测或标识为用户的当前位置。在另一实施例中,如上所述,基于用户的预测的未来位置来标识起始位置。例如,可以访问用户的用户简档数据来标识用户的历史行进模式,并且标识用户经常访问的一个或多个位置。在一个实施例中,可以标识一个或多个位置,其中用户于一周同一天的同一时间在历史上访问过这些位置,或者用户在访问用户被预测处于个体的邻近范围内的位置之前在历史上访问过这些位置。基于与历史访问的每个位置相关联的概率或置信度得分,可以从历史访问的位置确定最可能的起始位置。由此,在用户将处于个体的邻近范围内的时间之前、该用户的预测的未来位置被标识为用户的起始位置。In one embodiment, the starting location is predicted or identified as the user's current location. In another embodiment, the starting location is identified based on the user's predicted future location, as described above. For example, the user's user profile data can be accessed to identify the user's historical travel patterns and identify one or more locations that the user frequently visits. In one embodiment, one or more locations can be identified where the user has historically visited these locations at the same time on the same day of the week, or where the user has historically visited these locations before visiting a location where the user is predicted to be within the proximity of the individual. Based on the probability or confidence score associated with each historically visited location, the most likely starting location can be determined from the historically visited locations. Thus, the user's predicted future location before the time when the user will be within the proximity of the individual is identified as the user's starting location.
在一个实施例中,预测用户将从起始位置行进到未来位置的路线包括:访问与用户相关联的用户简档数据,以及标识用户在历史上从起始位置行进到未来位置的一条或多条路线。基于与每个历史行进路线相关联的概率或置信度得分,最可能的路线可以从用户历史上行进的路线被确定。由此,最可能的路线被标识为用户将从起始位置行进到未来位置的预测路线。In one embodiment, predicting a route that a user will travel from a starting location to a future location includes accessing user profile data associated with the user and identifying one or more routes that the user has historically traveled from the starting location to the future location. Based on a probability or confidence score associated with each historical travel route, a most likely route can be determined from the user's historically traveled routes. Thus, the most likely route is identified as the predicted route that the user will travel from the starting location to the future location.
在步骤218,确定触发提醒的时间已经出现,例如,基于当前时间与特定预定时间之间的对应关系,或者基于用户的当前位置与地理围栏之间的对应关系。例如,基于用户在咖啡店的位置,触发时间可能是下午2:30,从而允许前往最近的ATM以及从ATM到壁球场的行进时间。在步骤220,一旦触发时间已经出现,则触发提醒以呈现给用户。在一个实施例中,一旦提醒被触发,它被配置成在用户将处于个体的邻近范围内的时间之前持续一段时间。在一个实施例中,当用户具有多个用户设备时,提醒可以在任何或全部用户设备上浮现。如果用户具有智能手机和平板电脑设备,则可能会在两者上都浮现提醒。在一个实施例中,提醒可以在当前使用的设备上浮现。备选地,可以基于与提醒或与用户设备相关联的一个或多个用户偏好,在特定设备上浮现提醒。In step 218, a determination is made as to whether a time has occurred to trigger the reminder, for example, based on a correspondence between the current time and a specific predetermined time, or based on a correspondence between the user's current location and a geofence. For example, based on the user's location at a coffee shop, the trigger time might be 2:30 p.m., allowing for travel time to the nearest ATM and from the ATM to the racquetball courts. In step 220, once the trigger time has occurred, the reminder is triggered for presentation to the user. In one embodiment, once the reminder is triggered, it is configured to persist for a period of time prior to the time when the user will be within the proximity of the individual. In one embodiment, when a user has multiple user devices, the reminder can surface on any or all of the user devices. If the user has both a smartphone and a tablet device, the reminder may surface on both. In one embodiment, the reminder can surface on the device currently in use. Alternatively, the reminder can surface on a specific device based on one or more user preferences associated with the reminder or with the user device.
参考图3,流程图描绘适于与本发明实施例一起使用的触发提醒的呈现的示例性方法,并且整体上被称为方法300。方法300仅仅是一种合适的方法的示例,并且不旨在对本发明的使用范围或功能性提出任何限制。方法300也不应被解释为具有与本文所示任何单个组件或组件组合有关的任何依赖性或要求。3 , a flowchart depicts an exemplary method for triggering the presentation of reminders suitable for use with embodiments of the present invention, and is generally referred to as method 300. Method 300 is merely an example of one suitable method and is not intended to suggest any limitation as to the scope of use or functionality of the present invention. Method 300 should also not be interpreted as having any dependency or requirement relating to any single component or combination of components illustrated herein.
在步骤310,访问提醒,该提醒描述与用户设备的用户相关联的事件。用户设备可以是与以下针对图1描述的计算设备100类似的用户设备。提醒描述了以某种方式与用户设备的用户相关联的事件,并且被配置为在某个时间点被呈现在用户设备上以向用户提醒事件。提醒可以包括关于事件的信息,诸如任务、偶然事件、聚会、会议、特殊场合、位置、日期、时间、与提醒相关联的一个或多个其他个体等等。在一些实施例中,提醒不需要与个体、位置或特定日期/时间相关联。提醒可以被存储在用户设备上,或者可以被远程存储,诸如在云中或在与用户设备通信并管理针对多个用户设备的提醒的网络服务器上。呈现给用户的提醒示例可能包括“向Paul交付季度报告”、“在Acme服装店购买夹克”、“还我欠Joe的二十美元”等等。In step 310, a reminder is accessed that describes an event associated with the user of the user device. The user device may be a user device similar to the computing device 100 described below with respect to FIG. 1 . A reminder describes an event that is associated in some way with the user of the user device and is configured to be presented on the user device at a certain point in time to remind the user of the event. The reminder may include information about the event, such as a task, a casual event, a party, a meeting, a special occasion, a location, a date, a time, one or more other individuals associated with the reminder, and the like. In some embodiments, the reminder need not be associated with an individual, a location, or a specific date/time. The reminder may be stored on the user device, or may be stored remotely, such as in the cloud or on a network server that communicates with the user device and manages reminders for multiple user devices. Examples of reminders presented to the user may include "Deliver the quarterly report to Paul," "Buy a jacket at Acme Clothing Store," "Pay back the twenty dollars I owe Joe," and the like.
在步骤312,标识与事件相关联的个体(除用户之外)。在上述示例提醒中,Paul是与交付季度报告相关联的个体,以及Joe是与还钱相关联的个体。除了与购买夹克相关联的用户之外,没有其他个体。在一些实施例中,提醒不需要与特定个体、位置或日期/时间相关联。可以通过各种方式标识个体。基于标识术语或姓名(例如,“Paul”、“妻子”、“孩子们”等),可以从与用户相关联的用户简档中标识个体,该用户简档存储关于用户的上下文信息。可能有助于标识个体的上下文信息示例包括家庭成员、朋友、同事、一般与用户相关联的任何人以及其与用户的关系或关联性指示的列表。In step 312, individuals associated with the event (other than the user) are identified. In the example reminder above, Paul is the individual associated with delivering the quarterly report, and Joe is the individual associated with paying the money back. There are no other individuals besides the user associated with purchasing the jacket. In some embodiments, the reminder need not be associated with a specific individual, location, or date/time. Individuals can be identified in various ways. Based on an identifying term or name (e.g., "Paul," "wife," "children," etc.), individuals can be identified from a user profile associated with the user, which stores contextual information about the user. Examples of contextual information that may be helpful in identifying individuals include a list of family members, friends, co-workers, anyone generally associated with the user, and an indication of their relationship or relevance to the user.
在步骤314,确定在沿着用户将行进的预测路线的点处、用户被预测将处于个体的预定邻近范围内的未来时间。可以基于沿着预测路线的点与个体之间的距离(诸如,直线距离或沿着诸如街道、人行道等的路线的距离等)来确定个体的邻近范围。邻近范围也可以基于沿着预测路线的点与个体之间的行进时间量,例如步行时间、行车时间或其他交通工具时间的量。在一个实施例中,邻近范围是基于为了与另一个体相遇而所需要从预测路线偏离的距离和/或行进时间的量。At step 314, a future time is determined at which the user is predicted to be within a predetermined proximity of an individual at a point along the predicted route that the user will travel. The proximity of an individual can be determined based on the distance between the point along the predicted route and the individual (such as a straight-line distance or a distance along a route such as a street, sidewalk, etc.). The proximity can also be based on the amount of travel time between the point along the predicted route and the individual, such as the amount of walking time, driving time, or other means of transportation time. In one embodiment, the proximity is based on the amount of distance and/or travel time required to deviate from the predicted route in order to meet up with the other individual.
可以基于与用户相关联的上下文信息来确定未来时间。上下文信息可以包括诸如以下的信息:日历信息、预定事件、其他提醒、用户历史上行进的已知路线和/或用户的行进时间、用户历史上访问的已知位置和/或用户访问次数、用户的家庭位置、用户的当前位置等。类似地,可以使用关于另一个体的已知信息来预测其他个体的位置。这可以包括:(1)在用户的上下文信息中已知的、而不需要访问其他个体的个人信息的信息(例如,包括个体、个体的家庭位置、个体的工作位置等的日历邀请);以及(2)需要访问其他个体的个人信息的信息(例如,日历信息、提醒、来自个体的移动设备的当前GPS等)。另一个体的个人信息可以基于另一个体授予的许可进行访问。The future time can be determined based on contextual information associated with the user. The contextual information can include information such as calendar information, scheduled events, other reminders, known routes that the user has historically traveled and/or the user's travel times, known locations that the user has historically visited and/or the number of times the user has visited, the user's home location, the user's current location, etc. Similarly, the location of another individual can be predicted using known information about the other individual. This can include: (1) information that is known in the user's contextual information and does not require access to the other individual's personal information (e.g., a calendar invitation that includes the individual, the individual's home location, the individual's work location, etc.); and (2) information that requires access to the other individual's personal information (e.g., calendar information, reminders, current GPS from the individual's mobile device, etc.). The other individual's personal information can be accessed based on the permission granted by the other individual.
作为一个示例,假设提醒是“还我欠Joe的二十美元”。访问用户的日历信息时,安排于下周六下午3:30的事件“在Acme房地产与房地产经纪人会面”可能会被标识出。可以至少基于用户的日历信息、用户的用户简档、用户的历史行进模式、起始位置等中的一个或多个,预测用户将前往Acme房地产进行预定事件的路线。在一个实施例中,预测用户将要行进的路线包括标识用户当前行进的路线,以及将当前路线的剩余部分(remainder)预测为路线。As an example, assume the reminder is "Pay me back the twenty dollars I owe Joe." When accessing the user's calendar information, the event "Meet with the real estate agent at Acme Real Estate" scheduled for next Saturday at 3:30 PM may be identified. The route the user will take to Acme Real Estate for the scheduled event may be predicted based on at least one or more of the user's calendar information, the user's user profile, the user's historical travel patterns, a starting location, etc. In one embodiment, predicting the route the user will take includes identifying the user's current route and predicting the remainder of the current route as the route.
Joe在用户将行进路线前往Acme房地产时刻的位置也可以预测。例如,可以访问Joe的日历信息,以及可以标识事件“下周六下午3:00在Acme体育馆锻炼”。在一些实施例中,在用户将行进路线前往Acme房地产的时刻,Joe的位置是从Joe的用户简档信息和/或Joe的历史行进模式确定的。继而可以确定Acme体育馆处于沿着预测用户行进到Acme房地产路线的某一点的预定邻近范围内。可以预测用户将沿着路线到达该点的时间,以及确定Joe将在该时间位于Acme体育馆。由此,该预测的时间被标识为用户将处于个体的预定临近范围内时的预测的未来时间。Joe's location at the time the user will travel the route to Acme Properties can also be predicted. For example, Joe's calendar information can be accessed, and the event "Workout at Acme Gym next Saturday at 3:00 PM" can be identified. In some embodiments, Joe's location at the time the user will travel the route to Acme Properties is determined from Joe's user profile information and/or Joe's historical travel patterns. It can then be determined that Acme Gym is within a predetermined proximity of a point along the predicted route the user will take to Acme Properties. A time can be predicted for the user to arrive at that point along the route, and it can be determined that Joe will be at Acme Gym at that time. Thus, the predicted time is identified as a predicted future time when the user will be within the predetermined proximity of an individual.
在一些实施例中,确定用户将处于另一个体的邻近范围内的预测的未来时间包括:选择路线,继而向用户建议该路线。例如,可以标识用户的起始位置,以及可以标识用户被预测在未来时间将行进的目的地位置。在一个实施例中,用户的目的地位置独立于另一个体被预测将要位于的位置,例如,这两个位置不是相同位置。可以基于诸如映射数据、地理空间数据等的信息,标识从起始位置到目的地位置的一个或多个潜在路线。可以基于确定预测个体在未来时间将位于的位置,以及确定沿着潜在路线之一的点处于该个体被预测将位于的位置的邻近范围内,而从一个或多个潜在路线选择路线。可以向用户建议该路线,以及可以通过标识用户被预测到达沿着建议路线的点的时间来确定用户被预测将处于个体的邻近范围内的未来时间。In some embodiments, determining a predicted future time at which a user will be within proximity of another individual includes selecting a route and then suggesting the route to the user. For example, a starting location of the user may be identified, and a destination location to which the user is predicted to travel at a future time may be identified. In one embodiment, the user's destination location is independent of the location at which the other individual is predicted to be located, for example, the two locations are not the same location. One or more potential routes from the starting location to the destination location may be identified based on information such as mapping data, geospatial data, and the like. A route may be selected from the one or more potential routes based on determining the location at which the individual is predicted to be located at the future time, and determining that a point along one of the potential routes is within proximity of the location at which the individual is predicted to be located. The route may be suggested to the user, and the future time at which the user is predicted to be within proximity of the individual may be determined by identifying the time at which the user is predicted to arrive at a point along the suggested route.
在步骤316,确定触发提醒以用于呈现给用户的相关时间。相关时间可能是在用户处于个体的邻近范围内的时刻之前足够长的时间,用户有时间采取任何可能需要的动作和/或准备来完成与提醒相关联的任何任务。触发提醒的时间可以是具体时间,或者可以基于地理围栏(诸如当用户离开或到达特定位置时)。附加地,由于用户可能不知道周六Joe在何处,所以提醒可能会被修改,以指示当用户正在行进预测路线时,Joe将会在Acme体育馆。提醒也可能被修改,以建议用户偏离预测路线,在体育馆停留并且还Joe钱。例如,如果用户在下周六行进到Acme房地产之前会在家,相关的提醒可能会在用户离开家之前触发,并呈现消息,诸如:“在行进前往Acme房地产时,在Acme体育馆还Joe我欠他的二十美元”。由此,提醒告知用户有一个方便的机会还Joe钱,并且也用于提醒用户带着二十美元。触发提醒的时间可能会有所不同,这取决于用户的位置。例如,Acme房地产可能距离用户的家15分钟车程,但如果用户正在与朋友一起参观公园,则可能是从公园到Acme房地产45分钟的车程。由此,基于经确定的与从特定位置到Acme房地产的路线相关联的行进时间,较之于在用户家,提醒将需要在公园处早点被触发。可以基于从用户的移动电话、GPS、小区塔位置、WiFi连接和/或用户位于特定位置处的其他指示收集的信息,确定用户在预定事件之前的位置。也可以基于作为用户上下文信息的一部分被存储的历史行进或访问模式来预测用户的位置。例如,如果从上下文信息确定用户在每周六下午2:30总是(或通常)访问特定咖啡店,则咖啡店可以基于该访问模式被预测为用户的位置。触发提醒的相关时间可能是用户能够访问本地ATM(或回家)以获得现金(如果需要)、并且仍然有时间在去往Acme房地产的路上在Acme体育馆停留的足够早的时间。At step 316, a relevant time is determined for triggering the reminder for presentation to the user. The relevant time may be long enough before the moment the user is within the proximity of the individual to allow the user to take any necessary actions and/or prepare to complete any tasks associated with the reminder. The time to trigger the reminder can be a specific time or can be based on a geofence (such as when the user leaves or arrives at a specific location). Additionally, since the user may not know where Joe will be on Saturday, the reminder may be modified to indicate that Joe will be at Acme Gym when the user is traveling the predicted route. The reminder may also be modified to suggest that the user deviate from the predicted route, stop at the gym, and pay Joe back. For example, if the user will be home next Saturday before traveling to Acme Real Estate, a relevant reminder may be triggered before the user leaves home and presented with a message such as: "Pay Joe the twenty dollars I owe him at Acme Gym while traveling to Acme Real Estate." This reminder thus informs the user of a convenient opportunity to pay Joe back and also serves to remind the user to have the twenty dollars with them. The time the reminder is triggered may vary depending on the user's location. For example, the Acme estate might be a 15-minute drive from the user's home, but if the user is visiting the park with friends, it might be a 45-minute drive from the park to the Acme estate. Thus, based on the determined travel time associated with the route from the particular location to the Acme estate, the reminder would need to be triggered earlier at the park than at the user's home. The user's location prior to the scheduled event can be determined based on information gathered from the user's mobile phone, GPS, cell tower location, WiFi connection, and/or other indications that the user is at a particular location. The user's location can also be predicted based on historical travel or visit patterns stored as part of the user's contextual information. For example, if it is determined from contextual information that the user always (or typically) visits a particular coffee shop every Saturday at 2:30 PM, the coffee shop can be predicted as the user's location based on this visit pattern. A relevant time to trigger the reminder might be early enough for the user to be able to visit a local ATM (or return home) to obtain cash (if needed) and still have time to stop at the Acme gym on the way to the Acme estate.
在步骤318,确定触发提醒的时间已经出现(例如,当前时间对应于特定的预定时间,或者基于地理围栏)。例如,基于用户在咖啡店的位置,触发时间可能是下午2:45,从而允许前往最近的ATM的行进时间以及从ATM到Acme房地产的行进时间,并且及允许在Acme体育馆停留的时间。在步骤320,一旦触发时间已经出现,触发提醒以呈现给用户。At step 318, a determination is made as to whether a time has occurred to trigger the reminder (e.g., the current time corresponds to a specific predetermined time, or is based on a geofence). For example, based on the user's location at a coffee shop, the trigger time might be 2:45 PM, allowing travel time to the nearest ATM, travel time from the ATM to the Acme property, and time to stay at the Acme gym. At step 320, once the trigger time has occurred, the reminder is triggered for presentation to the user.
参考图4,描绘适于与本发明实施例一起使用的触发提醒的呈现的示例性系统,并且整体上被称为系统400。系统400仅仅是一种合适的系统的示例,并且不旨在对本发明的使用范围或功能性提出任何限制。系统400也不应被解释为具有与本文所示任何单个组件或组件组合有关的任何依赖性或要求。除了示出的那些之外或替代所示出的那些,可以使用其他布置和元件,以及为了清楚起见,可以完全省略一些元件。此外,本文描述的许多元件是功能实体,其可以被实施为离散或分布式组件,或与其他组件结合使用,并且以任何合适的组合和位置实施。With reference to Figure 4, an exemplary system for presenting a trigger reminder suitable for use with an embodiment of the present invention is depicted and is referred to as system 400 as a whole. System 400 is merely an example of a suitable system and is not intended to impose any limitations on the scope of use or functionality of the present invention. System 400 should also not be interpreted as having any dependencies or requirements related to any single component or combination of components shown herein. Other arrangements and elements may be used in addition to or in place of those shown, and some elements may be omitted entirely for clarity. In addition, many of the elements described herein are functional entities that may be implemented as discrete or distributed components, or used in combination with other components, and implemented in any suitable combination and location.
系统400包括服务器410、数据收集组件412、推断引擎414、提醒浮现组件416、用户简档数据存储418、日历信息存储420,并且可以可选地包括用户设备422。系统400的各种组件可以经由网络426进行通信。System 400 includes server 410, data collection component 412, inference engine 414, reminder surfacing component 416, user profile data store 418, calendar information store 420, and may optionally include user device 422. The various components of system 400 may communicate via network 426.
服务器410包括一个或多个计算设备,以及可以是被配置为经由网络426进行通信的一个服务器、多个服务器或其他计算设备。服务器410可以包括用户设备上的、跨多个用户设备的和/或在云中的一个或多个应用或服务。数据收集组件412被配置为收集与用户相关联的上下文信息。在一个实施例中,上下文信息包括用户偏好、与用户相关联的个体的标识、经常访问的位置、经常行进的路线、与事件相关联的位置、与用户相关联的位置、用户的当前位置等等。上下文信息可以从各种来源收集或推导。在一些实施例中,上下文数据可以从一个或多个传感器获得,诸如提供以下数据的传感器:智能手机数据、家庭传感器数据、GPS数据、车辆信号数据、可穿戴设备数据、用户设备数据、陀螺仪数据、加速度计数据、日历数据、电子邮件数据、时间表数据、信用卡使用数据、购买历史数据、天气数据、可以由传感器(或检测器)组件感测或以其他方式检测的其他传感器数据、可以从与用户或事件相关联的传感器组件推导出的数据(包括位置、运动、方向、位置、用户访问、用户活动、网络访问、设备充电或能够由一个或多个传感器组件提供的其他数据)以及其他更多数据。数据收集组件412还可以被配置为收集与关联于用户的其他个体(包括与用户的日历事件和/或提醒相关联的个体)相关联的上下文信息。The server 410 includes one or more computing devices and may be a server, multiple servers, or other computing devices configured to communicate via the network 426. The server 410 may include one or more applications or services on a user device, across multiple user devices, and/or in the cloud. The data collection component 412 is configured to collect contextual information associated with the user. In one embodiment, the contextual information includes user preferences, identities of individuals associated with the user, frequently visited locations, frequently traveled routes, locations associated with events, locations associated with the user, the user's current location, and the like. The contextual information may be collected or derived from a variety of sources. In some embodiments, contextual data can be obtained from one or more sensors, such as sensors that provide the following data: smartphone data, home sensor data, GPS data, vehicle signal data, wearable device data, user device data, gyroscope data, accelerometer data, calendar data, email data, schedule data, credit card usage data, purchase history data, weather data, other sensor data that can be sensed or otherwise detected by a sensor (or detector) component, data that can be derived from a sensor component associated with a user or event (including location, motion, direction, position, user access, user activity, network access, device charging, or other data that can be provided by one or more sensor components), and other more data. The data collection component 412 can also be configured to collect contextual information associated with other individuals associated with the user (including individuals associated with the user's calendar events and/or reminders).
用户简档存储418被配置为存储由数据收集组件412收集的上下文信息。用户简档存储418可以包括一个或多个计算机存储介质和/或一个或多个计算设备,并且可以包括在用户设备上、跨多个用户设备和/或在云中的一个或多个应用或服务。用户简档存储418可以包括一个或多个存储设备。在一个实施例中,除了由数据收集组件412收集的上下文信息之外,用户简档存储418还存储从所收集的数据或与用户相关联的其他信息推断或以其他方式推导的上下文信息。例如,可以存储可以从历史位置/行进数据和日历数据推断的经常访问的位置、经常行进的路线、定期参加的事件等的指示。The user profile storage 418 is configured to store contextual information collected by the data collection component 412. The user profile storage 418 may include one or more computer storage media and/or one or more computing devices, and may include one or more applications or services on the user device, across multiple user devices, and/or in the cloud. The user profile storage 418 may include one or more storage devices. In one embodiment, in addition to the contextual information collected by the data collection component 412, the user profile storage 418 also stores contextual information inferred or otherwise derived from the collected data or other information associated with the user. For example, indications of frequently visited locations, frequently traveled routes, regularly attended events, etc., which can be inferred from historical location/travel data and calendar data, may be stored.
日历信息存储420可以包括一个或多个计算机存储介质和/或一个或多个计算设备,并且可以包括在用户设备上、跨多个用户设备或在云中的一个或多个应用或服务。日历信息存储420存储与以下应用相关的信息:用户的日历应用和/或日程应用,或者利用或维护预定事件和提醒的其他类型应用。日历和日程应用程序通常组织和显示用户的活动、任务、作业、约会、会议和其他类型的事件。它们还可以基于事件的日期和时间,提供呈现给用户的事件提醒或通知。在一个实施例中,日历信息存储420存储与多个用户相关联的信息。Calendar information storage 420 may include one or more computer storage media and/or one or more computing devices and may include one or more applications or services on a user device, across multiple user devices, or in the cloud. Calendar information storage 420 stores information related to a user's calendar application and/or calendar application, or other types of applications that utilize or maintain scheduled events and reminders. Calendar and calendar applications typically organize and display a user's activities, tasks, assignments, appointments, meetings, and other types of events. They may also provide event reminders or notifications that are presented to the user based on the date and time of the event. In one embodiment, calendar information storage 420 stores information associated with multiple users.
推断引擎414可以包括被配置为推导与用户相关联的上下文信息的一个或多个计算设备。推断引擎414可以包括在用户设备上、跨多个用户设备和/或在云中的一个或多个应用或服务。在一个实施例中,推断引擎414基于从日历信息存储420和用户简档存储418所访问的信息,推导与用户相关联的上下文信息。推断引擎414被配置为推导可以用于确定何时浮现或触发提醒的各种信息。例如,在一个实施例中,推断引擎414在用户的日历信息内访问描述与用户相关联的事件的事件提醒。推断引擎414标识除用户之外的与事件相关联的个体,以及确定预测用户将处于个体的邻近范围阈值内的未来时间。可以基于用户与其他个体之间的距离(诸如,直线距离或沿着诸如街道、人行道等的路线的距离),确定用户与其他个体的邻近范围。邻近范围也可以基于用户与个体之间的行进时间量,例如步行时间、行车时间或其他交通工具时间的量。在一个实施例中,个体的邻近范围基于在另一个体与沿着用户被预测将行进的路线的点之间的距离和/或行进时间量来被确定。邻近范围也可以基于为了与另一个体相遇、需要从预测路线偏离的距离和/或行进时间的量来被确定。可以基于用户对具体距离或具体行进时间和/或预定距离或行进时间的偏好来确定与邻近范围相关联的阈值,其中在该阈值内,用户将被确定为处于个体的邻近范围内。在一个实施例中,至少部分地基于用户与另一个体之间关系的性质和/或与另一个体相关联的优先级别来确定与邻近范围相关联的阈值。例如,当任务与亲密的家庭成员相关联时,较之于与朋友相关联的任务,用户可能愿意为了执行任务而行进较远。较之于任务与朋友相关联,在这种情况下可以使用较大的邻近范围阈值。与另一个体相关联的优先级别可以基于该个体是否被指定在用户的核心圈子内,和/或基于向用户核心圈子内的个体分配的优先级别。Inference engine 414 may include one or more computing devices configured to derive contextual information associated with a user. Inference engine 414 may include one or more applications or services on a user device, across multiple user devices, and/or in the cloud. In one embodiment, inference engine 414 derives contextual information associated with a user based on information accessed from calendar information storage 420 and user profile storage 418. Inference engine 414 is configured to derive various information that can be used to determine when a reminder should surface or be triggered. For example, in one embodiment, inference engine 414 accesses event reminders describing events associated with the user within the user's calendar information. Inference engine 414 identifies individuals associated with the event, other than the user, and determines a future time at which the user is predicted to be within a proximity threshold of the individual. The user's proximity to another individual may be determined based on the distance between the user and the other individual (e.g., straight-line distance or distance along a route such as a street, sidewalk, etc.). The proximity may also be based on the amount of travel time between the user and the individual, such as walking time, driving time, or other means of transportation. In one embodiment, an individual's proximity is determined based on the distance and/or travel time between another individual and a point along the route the user is predicted to travel. The proximity can also be determined based on the distance and/or travel time required to deviate from the predicted route in order to meet the other individual. A threshold associated with the proximity can be determined based on the user's preference for a specific distance or specific travel time and/or a predetermined distance or travel time, within which the user is determined to be within the proximity of the individual. In one embodiment, the threshold associated with the proximity is determined at least in part based on the nature of the relationship between the user and the other individual and/or the priority level associated with the other individual. For example, when a task is associated with a close family member, the user may be willing to travel farther to perform the task than when the task is associated with a friend. In this case, a larger proximity threshold can be used than when the task is associated with a friend. The priority level associated with the other individual can be based on whether the individual is designated within the user's inner circle and/or based on the priority levels assigned to individuals within the user's inner circle.
可以基于与用户相关联的上下文信息来确定未来时间。上下文信息可以包括诸如以下的信息:日历信息、预定事件、其他提醒、用户历史上行进的已知路线和/或用户行进的次数、用户历史上访问的已知位置和/或用户访问次数等。类似地,可以使用关于另一个体的已知信息来预测另一个体的位置。这可以包括:(1)在用户的上下文信息中已知的、而不需要访问另一个体的个人信息的信息(例如,包括个体、个体的家庭位置、个体的工作位置等的日历邀请);以及(2)需要访问另一个体的个人信息的信息(例如,日历信息、提醒、来自个体的移动设备的当前GPS等)。另一个体的个体信息可以基于另一个体授予的许可进行访问。确定触发提醒以用于呈现给用户的时间,并且该时间可以被确定为在用户被预测将处于个体的邻近范围内的未来时间之前的时间段出现。触发提醒的时间可以是特定时间,或者可以至少部分基于地理围栏(诸如当用户离开或到达特定位置时)。在一个实施例中,提醒出现组件416被配置为确定触发提醒的时间已经出现(例如,当前时间对应于特定的预定时间,或者基于地理围栏),以及触发提醒以呈现给用户。The future time can be determined based on contextual information associated with the user. The contextual information can include information such as calendar information, scheduled events, other reminders, known routes that the user has historically traveled and/or the number of times the user has traveled, known locations that the user has historically visited and/or the number of times the user has visited, etc. Similarly, the location of another individual can be predicted using known information about the other individual. This can include: (1) information that is known in the user's contextual information and does not require access to the other individual's personal information (e.g., calendar invitations that include the individual, the individual's home location, the individual's work location, etc.); and (2) information that requires access to the other individual's personal information (e.g., calendar information, reminders, current GPS from the individual's mobile device, etc.). The other individual's personal information can be accessed based on the permission granted by the other individual. A time is determined to trigger a reminder for presentation to the user, and the time can be determined to occur in a time period before the future time when the user is predicted to be in the vicinity of the individual. The time to trigger the reminder can be a specific time, or can be based at least in part on a geofence (such as when the user leaves or arrives at a specific location). In one embodiment, the reminder appearance component 416 is configured to determine that a time to trigger a reminder has occurred (eg, the current time corresponds to a specific predetermined time, or is based on a geofence), and trigger the reminder for presentation to the user.
参考图5,描绘适于与本发明实施例一起使用的触发提醒的呈现的示例性系统,并且整体上被称为系统500。系统500仅仅是一种合适的系统的示例,并且不旨在对本发明的使用范围或功能性提出任何限制。系统500也不应被解释为具有与本文所示任何单个组件或组件组合有关的任何依赖性或要求。除了示出的那些之外或替代所示出的那些,可以使用其他布置和元件,以及为了清楚起见,可以完全省略一些元件。此外,本文描述的许多元件是功能实体,其可以被实施为离散或分布式组件,或与其他组件结合使用,并且以任何合适的组合和位置实施。With reference to Figure 5, an exemplary system for presenting a trigger reminder suitable for use with an embodiment of the present invention is depicted and is referred to as system 500 as a whole. System 500 is merely an example of a suitable system and is not intended to impose any limitations on the scope of use or functionality of the present invention. System 500 should also not be interpreted as having any dependencies or requirements related to any single component or combination of components shown herein. Other arrangements and elements may be used in addition to or in place of those shown, and some elements may be omitted entirely for clarity. In addition, many of the elements described herein are functional entities that may be implemented as discrete or distributed components, or used in combination with other components, and implemented in any suitable combination and location.
系统500包括提醒组件510、用户简档存储512、辅助服务组件514、数据收集组件516和推断引擎518。系统500与一个或多个用户设备520进行通信,这些用户设备不必须是系统500的一部分。System 500 includes an alert component 510, a user profile store 512, an auxiliary service component 514, a data collection component 516, and an inference engine 518. System 500 communicates with one or more user devices 520, which are not necessarily part of system 500.
在一个实施例中,提醒组件510包括被配置为管理提醒的一个或多个计算设备。提醒组件510可以包括在用户设备上、跨多个用户设备、在云中或其组合的一个或多个应用或服务。提醒组件510与用户设备520通信,以及可以从用户设备520接收诸如提醒数据和上下文用户信息的数据。提醒数据可能包括用于配置提醒的参数,诸如位置、日期、时间、主题、对其他用户或个体的提及等等。上下文用户信息可以包括当前位置、本地时间、GPS和其他传感器数据、日历信息、用户偏好、电子邮件数据、文本消息数据等。上下文信息可以被存储在用户简档存储512中。在一个实施例中,提醒组件510存储并维护在某个时间点将显示(即,呈现)给用户的提醒。存储的提醒可以包括从用户设备520接收的上述提醒参数中的任何或全部。在一个实施例中,存储的提醒包括从推断引擎518接收的一个或多个参数。例如,推断引擎518可以提供用于触发特定提醒的触发时间。从提醒组件510向用户设备520传送的数据可以包括待在用户设备上呈现给用户的提醒。在一个实施例中,提醒组件510配置为确定触发提醒的时间已经出现,以及触发提醒以呈现给用户。在一个实施例中,提醒组件510确保提醒跨设备智能同步,例如,根据用户当前使用的哪个或哪些设备,在用户的适当设备上触发提醒。提醒组件510还可以解析或推断关于在事件或提醒中指名的个体的一些信息,诸如个体与用户的关联是否来自工作关系、个人关系、社会关系、家庭关系等等。In one embodiment, reminder component 510 includes one or more computing devices configured to manage reminders. Reminder component 510 may include one or more applications or services on a user device, across multiple user devices, in the cloud, or a combination thereof. Reminder component 510 communicates with user device 520 and may receive data such as reminder data and contextual user information from user device 520. Reminder data may include parameters used to configure reminders, such as location, date, time, subject, references to other users or individuals, and so on. Contextual user information may include current location, local time, GPS and other sensor data, calendar information, user preferences, email data, text message data, and so on. Contextual information may be stored in user profile storage 512. In one embodiment, reminder component 510 stores and maintains reminders to be displayed (i.e., presented) to the user at a certain point in time. Stored reminders may include any or all of the aforementioned reminder parameters received from user device 520. In one embodiment, stored reminders include one or more parameters received from inference engine 518. For example, inference engine 518 may provide a trigger time for triggering a particular reminder. The data transmitted from the reminder component 510 to the user device 520 may include a reminder to be presented to the user on the user device. In one embodiment, the reminder component 510 is configured to determine that a time to trigger a reminder has occurred and trigger the reminder to be presented to the user. In one embodiment, the reminder component 510 ensures that reminders are intelligently synchronized across devices, for example, triggering reminders on the appropriate device of the user based on which device or devices the user is currently using. The reminder component 510 may also parse or infer information about individuals named in events or reminders, such as whether the individual is related to the user through a work relationship, personal relationship, social relationship, family relationship, etc.
用户简档存储512可以包括一个或多个计算机存储介质和/或一个或多个计算设备,以及可以包括一个或多个存储设备。用户简档存储512可以包括在用户设备上、跨多个用户设备或在云中的一个或多个应用或服务。在一个实施例中,用户简档存储512配置为存储与用户设备520和/或用户设备520的用户相关联的上下文信息。上下文信息可以从提醒组件510接收,并且还可以从数据收集组件516和推断引擎518的任一或二者接收。在实施例中,除了上下文信息之外,用户简档存储512存储从其他上下文数据和/或与用户相关联的其他信息所推断出或以其他方式推导的上下文信息。例如,可以存储从用户的历史行进模式确定的经常访问的位置、经常行进的路线、定期参加的事件等的指示。The user profile storage 512 may include one or more computer storage media and/or one or more computing devices, and may include one or more storage devices. The user profile storage 512 may include one or more applications or services on a user device, across multiple user devices, or in the cloud. In one embodiment, the user profile storage 512 is configured to store contextual information associated with the user device 520 and/or the user of the user device 520. The contextual information may be received from the reminder component 510 and may also be received from either or both of the data collection component 516 and the inference engine 518. In an embodiment, in addition to the contextual information, the user profile storage 512 stores contextual information inferred or otherwise derived from other contextual data and/or other information associated with the user. For example, indications of frequently visited locations, frequently traveled routes, regularly attended events, etc. determined from the user's historical travel patterns may be stored.
在一个实施例中,推断引擎518包括一个或多个计算设备,以及可以包括在用户设备上、跨多个用户设备和/或在云中的一个或多个应用或服务。推断引擎518可以被配置为基于从用户设备520接收的任何信息、日历信息、提醒信息和用户简档信息来推导与用户相关联的上下文信息。用户简档存储512可以包括一个或多个计算机存储介质和/或在用户设备上、跨多个用户设备和/或在云中的一个或多个应用或服务。推断引擎518可以推导可用于确定何时浮现或触发提醒的各种信息。例如,在一个实施例中,推断引擎518访问描述与用户相关联的事件的事件提醒。推断引擎518标识除用户之外的与事件相关联的个体,以及确定预测用户将处于个体的预定邻近范围内的未来时间。可以基于用户与个体之间的距离(诸如,直线距离或沿着诸如街道、人行道等的路线的距离)来确定用户与个体的邻近范围。邻近范围也可以基于用户与个体之间的行进时间量,例如步行时间、行车时间或其他交通工具时间的量。在一个实施例中,个体的邻近范围是基于在另一个体与沿着用户被预测将行进的路线的点之间的距离和/或行进时间量来被确定。邻近范围也可以基于为了与另一个体相遇而需要从预测路线偏离的距离和/或行进时间的量来被确定。In one embodiment, the inference engine 518 includes one or more computing devices and one or more applications or services that may be included on a user device, across multiple user devices, and/or in the cloud. The inference engine 518 may be configured to derive contextual information associated with the user based on any information received from the user device 520, calendar information, reminder information, and user profile information. The user profile storage 512 may include one or more computer storage media and/or one or more applications or services on the user device, across multiple user devices, and/or in the cloud. The inference engine 518 may derive various information that can be used to determine when a reminder should be surfaced or triggered. For example, in one embodiment, the inference engine 518 accesses an event reminder that describes an event associated with the user. The inference engine 518 identifies individuals associated with the event, other than the user, and determines a future time at which the user is predicted to be within a predetermined proximity of the individual. The proximity of the user to the individual may be determined based on the distance between the user and the individual (e.g., straight-line distance or distance along a route such as a street, sidewalk, etc.). The proximity may also be based on the amount of travel time between the user and the individual, such as walking time, driving time, or other transportation time. In one embodiment, the proximity of an individual is determined based on the distance and/or travel time between the other individual and a point along the route that the user is predicted to travel. The proximity can also be determined based on the distance and/or travel time required to deviate from the predicted route in order to meet the other individual.
可以基于与用户相关联的上下文信息来确定未来时间。上下文信息可以包括诸如以下的信息:日历信息、预定事件、其他提醒、用户历史上行进的已知路线和/或用户行进的次数、用户历史上访问的已知位置和/或用户访问次数等。类似地,可以使用关于另一个体的已知信息来预测另一个体的位置。这可以包括:(1)在用户的上下文信息中已知的、而不需要访问另一个体的个人信息的信息(例如,包括个体、个体的家庭位置、个体的工作位置等的日历邀请);以及(2)需要访问另一个体的个人信息的信息(例如,日历信息、提醒、来自个体的移动设备的当前GPS等)。另一个体的个体信息可以基于另一个体授予的许可进行访问。确定触发提醒以呈现给用户的时间,并且该时间可以被确定为在用户被预测处于个体的邻近范围内的未来时间之前的时间段出现。触发提醒的时间可以是具体预定时间,或者可以基于地理围栏(诸如当用户离开或到达特定位置时)。在一个实施例中,推断引擎518提供触发时间给提醒组件510,提醒组件510将该触发时间与提醒相关联,并且可以确定触发提醒的时间已经出现(例如当前时间对应于特定的预定时间,或基于地理围栏)。The future time can be determined based on contextual information associated with the user. The contextual information can include information such as calendar information, scheduled events, other reminders, known routes that the user has historically traveled and/or the number of times the user has traveled, known locations that the user has historically visited and/or the number of times the user has visited, etc. Similarly, the location of another individual can be predicted using known information about the other individual. This can include: (1) information that is known in the user's contextual information and does not require access to the other individual's personal information (e.g., calendar invitations that include the individual, the individual's home location, the individual's work location, etc.); and (2) information that requires access to the other individual's personal information (e.g., calendar information, reminders, current GPS from the individual's mobile device, etc.). The other individual's personal information can be accessed based on the permission granted by the other individual. A time is determined to trigger a reminder for presentation to the user, and the time can be determined to occur in a time period before the future time when the user is predicted to be within the proximity of the individual. The time to trigger the reminder can be a specific scheduled time, or can be based on a geofence (such as when the user leaves or arrives at a specific location). In one embodiment, the inference engine 518 provides the trigger time to the reminder component 510, which associates the trigger time with the reminder and can determine that the time to trigger the reminder has occurred (e.g., the current time corresponds to a specific scheduled time, or based on a geofence).
在一个实施例中,数据收集组件516包括一个或多个计算设备,并且被配置为收集与用户相关联的上下文信息。数据收集组件516可以包括在用户设备上、跨多个用户设备或在云中的一个或多个应用或服务。在一个实施例中,上下文信息包括用户偏好、与用户相关联的个体的标识、经常访问的位置、经常行进的路线、与事件相关联的位置、与用户相关联的位置、用户的当前位置等等。上下文信息可以从各种来源收集或推导。在一些实施例中,上下文数据可以从一个或多个传感器获得,诸如提供下述数据的传感器:智能手机数据、家庭传感器数据、GPS数据、车辆信号数据、可穿戴设备数据、用户设备数据、陀螺仪数据、加速度计数据、日历数据、电子邮件数据、时间表数据、信用卡使用数据、购买历史数据、天气数据、可以由传感器(或检测器)组件感测或以其他方式检测的其他传感器数据、可以从与用户或事件相关联的传感器组件推导出的数据(包括位置、运动、方向、位置、用户访问、用户活动、网络访问、设备充电或能够由一个或多个传感器组件提供的其他数据)以及其他更多数据。In one embodiment, the data collection component 516 includes one or more computing devices and is configured to collect contextual information associated with the user. The data collection component 516 may include one or more applications or services on a user device, across multiple user devices, or in the cloud. In one embodiment, the contextual information includes user preferences, identification of individuals associated with the user, frequently visited locations, frequently traveled routes, locations associated with events, locations associated with the user, the user's current location, and the like. Contextual information can be collected or derived from various sources. In some embodiments, contextual data can be obtained from one or more sensors, such as sensors that provide the following data: smartphone data, home sensor data, GPS data, vehicle signal data, wearable device data, user device data, gyroscope data, accelerometer data, calendar data, email data, schedule data, credit card usage data, purchase history data, weather data, other sensor data that can be sensed or otherwise detected by a sensor (or detector) component, data derived from a sensor component associated with a user or event (including position, motion, direction, location, user access, user activity, network access, device charging, or other data that can be provided by one or more sensor components), and other more data.
在一个实施例中,辅助服务组件514包括一个或多个计算设备,并且被配置为基于由提醒组件510确定的提醒数据、来自用户简档存储512的用户简档数据和/或关于用户的其他上下文数据来向用户展示上下文相关的提醒和相关内容。辅助服务组件514可以包括在用户设备上、跨多个用户设备、在云中或其组合上的一个或多个应用或服务。例如,在一个实施例中,辅助服务组件514对跨与该用户相关联的多个用户设备520向用户呈现提醒进行管理。基于提醒数据和用户上下文数据,辅助服务组件514可以确定在哪个用户设备520上呈现提醒,以及呈现的上下文,包括如何呈现(或以什么格式呈现及呈现多少内容,这可以取决于用户设备或上下文)、何时呈现,以及哪些补充内容与之一起呈现。具体地,在一些实施例中,辅助服务组件514应用感测的用户数据和上下文信息,以便确定提醒的呈现。In one embodiment, the auxiliary service component 514 includes one or more computing devices and is configured to present context-related reminders and related content to the user based on reminder data determined by the reminder component 510, user profile data from the user profile storage 512, and/or other context data about the user. The auxiliary service component 514 may include one or more applications or services on a user device, across multiple user devices, in the cloud, or a combination thereof. For example, in one embodiment, the auxiliary service component 514 manages the presentation of reminders to the user across multiple user devices 520 associated with the user. Based on the reminder data and user context data, the auxiliary service component 514 can determine on which user device 520 to present the reminder, and the context of the presentation, including how to present (or in what format and how much content to present, which may depend on the user device or context), when to present, and which supplementary content to present with it. Specifically, in some embodiments, the auxiliary service component 514 applies the sensed user data and context information to determine the presentation of the reminder.
在一些实施例中,辅助服务组件514生成与通知相关联的用户界面特征。这些功能可以包括界面元素(诸如,图形按钮、滑块、菜单、音频提示、警报、闹钟、振动、弹出窗口、通知栏或状态栏项目、应用内通知或用于与用户对接的其他类似特征)、查询和提示。辅助服务组件514的一些实施例捕获用户对通知的响应或者与通知相关联的用户活动。In some embodiments, the auxiliary service component 514 generates user interface features associated with the notification. These features may include interface elements (such as graphical buttons, sliders, menus, audio prompts, alerts, alarms, vibrations, pop-ups, notification or status bar items, in-app notifications, or other similar features for interfacing with the user), queries, and prompts. Some embodiments of the auxiliary service component 514 capture user responses to notifications or user activities associated with notifications.
用户设备520可以包括能够由用户使用的任何类型的计算设备。例如,在一个实施例中,用户设备520可以类似于下面针对图1描述的计算设备100。作为示例而非限制,用户设备可以被具化为个人计算机、膝上型计算机、移动或移动设备、智能电话、平板电脑、智能手表、可穿戴计算机、个人数字助理(PDA)、MP3播放器、GPS或设备、视频播放器、手持通信设备、游戏设备或系统、娱乐系统、车载计算机系统、嵌入式系统控制器、远程控制、家电、消费电子设备、工作站或这些所描述设备的任何组合,或任何其他合适的设备。User device 520 may include any type of computing device capable of being used by a user. For example, in one embodiment, user device 520 may be similar to computing device 100 described below with respect to FIG. By way of example and not limitation, a user device may be embodied as a personal computer, a laptop computer, a mobile or mobile device, a smartphone, a tablet computer, a smartwatch, a wearable computer, a personal digital assistant (PDA), an MP3 player, a GPS or device, a video player, a handheld communication device, a gaming device or system, an entertainment system, an in-vehicle computer system, an embedded system controller, a remote control, an appliance, a consumer electronic device, a workstation, or any combination of these described devices, or any other suitable device.
现在参考图1,示出适用于实施本发明实施例的示例性操作环境,并且在整体上被称为计算设备100。计算设备100仅仅是一种合适的计算环境的示例,并且不旨在对本发明实施方式的使用范围或功能性提出任何限制。计算环境100也不应被解释为具有与本文所示任何单个组件或组件组合有关的任何依赖性或要求。With reference now to FIG1 , an exemplary operating environment suitable for implementing embodiments of the present invention is illustrated and generally referred to as computing device 100. Computing device 100 is merely an example of one suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the present invention. Neither should computing environment 100 be interpreted as having any dependency or requirement relating to any single component or combination of components illustrated herein.
可以在计算机代码或机器可用指令的一般性上下文中描述本发明的一些实施例,计算机代码或机器可用指令包括由计算机或其他机器(诸如个人数字助理或手持设备)执行的计算机可执行指令(诸如程序模块)。通常,包括例程、程序、对象、组件、数据结构等的程序模块是指执行特定任务或实施特定抽象数据类型的代码。本发明的一些实施例可以在各种系统配置(包括手持设备、消费电子设备、通用计算机、更专业的计算设备等)中被实践。本发明的一些实施例也可以在分布式计算环境中实施,其中任务是由通过通信网络链接的远程处理设备执行。Some embodiments of the present invention may be described in the general context of computer code or machine-usable instructions, which include computer-executable instructions (such as program modules) executed by a computer or other machine (such as a personal digital assistant or handheld device). Generally, program modules, including routines, programs, objects, components, data structures, etc., refer to code that performs a specific task or implements a specific abstract data type. Some embodiments of the present invention may be practiced in various system configurations (including handheld devices, consumer electronic devices, general-purpose computers, more specialized computing devices, etc.). Some embodiments of the present invention may also be implemented in a distributed computing environment, where tasks are performed by remote processing devices linked through a communication network.
参考图1,计算设备100包括直接或间接耦合以下设备的总线110:存储器112、一个或多个处理器114、一个或多个呈现组件116、输入/输出端口118、输入/输出组件120和示意性电源122。总线110代表一个或多个总线(诸如,地址总线、数据总线或其组合)。尽管为了清楚起见,图1的各种框用线示出,但实际上各种组件的划分划分没有如此清楚,打个比方,线是灰色和模糊的将更准确。例如,可以将诸如显示设备的呈现组件视为I/O组件。而且,处理器具有内存。我们认识到这是本领域的特质,并且重申:图1仅仅是可以结合本发明的一个或多个实施例使用的示例性计算设备的说明。在诸如“工作站”、“服务器”、“笔记本电脑”、“手持设备”等类别之间不做区分,因为所有这些都涵盖在图1的范围内并被指代为“计算设备”。Referring to FIG. 1 , computing device 100 includes a bus 110 that directly or indirectly couples the following devices: memory 112 , one or more processors 114 , one or more presentation components 116 , input/output ports 118 , an input/output component 120 , and a schematic power supply 122 . Bus 110 represents one or more buses (such as an address bus, a data bus, or a combination thereof). Although various blocks in FIG. 1 are illustrated with lines for clarity, the demarcation of various components is not so clear; for example, gray and fuzzy lines would be more accurate. For example, presentation components such as display devices can be considered I/O components. Furthermore, processors have memory. We recognize that this is a quirk of the art and reiterate that FIG. 1 is merely illustrative of an exemplary computing device that can be used in conjunction with one or more embodiments of the present invention. No distinction is made between categories such as "workstation," "server," "laptop," "handheld device," etc., as all are encompassed within the scope of FIG. 1 and referred to as a "computing device."
计算设备100通常包括各种计算机可读介质。作为示例而非限制,计算机可读介质可以包括随机存取存储器(RAM);只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存或其他内存技术;CDROM、数字通用盘(DVD)或其他光学或全息介质;磁带盒、磁带、磁盘存储器或其他磁存储设备、载波或可用于编码所需信息并被计算设备100访问的任何其他介质。The computing device 100 typically includes a variety of computer-readable media. By way of example and not limitation, the computer-readable media may include random access memory (RAM); read-only memory (ROM); electrically erasable programmable read-only memory (EEPROM); flash memory or other memory technology; CDROM, digital versatile disk (DVD) or other optical or holographic media; magnetic cassettes, magnetic tape, disk storage or other magnetic storage devices, carrier waves, or any other medium that can be used to encode the desired information and accessed by the computing device 100.
存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移除的、不可移除的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。如本文所使用的,计算机存储介质本身不包括信号。Memory 112 includes computer storage media in the form of volatile and/or non-volatile memory. The memory can be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical drives, etc. As used herein, computer storage media itself does not include signals.
计算设备100包括从诸如存储器112或I/O组件120的各种实体读取数据的一个或多个处理器。呈现组件116向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等。I/O端口118允许计算设备100在逻辑上耦合到包括I/O组件120的其他设备,这些其他设备中的一些可以被内置。示意性组件包括麦克风、游戏杆、游戏垫、卫星天线、扫描仪、打印机、无线设备等。Computing device 100 includes one or more processors that read data from various entities such as memory 112 or I/O components 120. Presentation component 116 presents data indications to a user or other device. Exemplary presentation components include a display device, a speaker, a printing component, a vibration component, etc. I/O ports 118 allow computing device 100 to be logically coupled to other devices including I/O components 120, some of which may be internal. Exemplary components include a microphone, a joystick, a game pad, a satellite dish, a scanner, a printer, a wireless device, etc.
从上文可以看出,本发明非常适于实现上文与其他优势一起给出的所有目标和目的,这些其他优点是显而易见的并且是结构固有的。应当理解,某些特征和子组合是有实用性的,并且可以在不参考其他特征和子组合的情况下使用。这是由权利要求的范围构想的并且位于权利要求的范围内。由于在不脱离本发明范围的情况下可以做出本发明的许多可行实施例,所以应当理解,在本文阐述的或在附图中示出的所有内容将被解释为说明性的而不是限制性的。As can be seen from the foregoing, the present invention is well suited to achieve all of the goals and objectives set forth above, along with other advantages that are readily apparent and inherent to the structure. It will be understood that certain features and subcombinations are useful and can be used without reference to other features and subcombinations. This is contemplated by and within the scope of the claims. Since many possible embodiments of the present invention can be made without departing from the scope of the invention, it will be understood that all matter set forth herein or shown in the accompanying drawings is to be interpreted as illustrative and not restrictive.
Claims (18)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/720,136 US9602975B2 (en) | 2015-05-22 | 2015-05-22 | Intelligent surfacing of reminders |
| US14/720,136 | 2015-05-22 | ||
| PCT/US2016/033384 WO2016191223A1 (en) | 2015-05-22 | 2016-05-20 | Intelligent surfacing of reminders |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1246468A1 HK1246468A1 (en) | 2018-09-07 |
| HK1246468B true HK1246468B (en) | 2021-09-03 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9602975B2 (en) | Intelligent surfacing of reminders | |
| US10567568B2 (en) | User event pattern prediction and presentation | |
| US20190158609A1 (en) | System and method for improved mapping and routing | |
| US10044818B2 (en) | Notification related to predicted future geographic location of mobile device | |
| US9269098B2 (en) | Push-based recommendations | |
| US8706406B2 (en) | System and method for determination and display of personalized distance | |
| US20200242560A1 (en) | Suggested locations for calendar events | |
| US20120084248A1 (en) | Providing suggestions based on user intent | |
| US20090150489A1 (en) | System and method for conditional delivery of messages | |
| US20140278071A1 (en) | Estimating times to leave and to travel | |
| JP6588033B2 (en) | Personal intelligence platform | |
| WO2011095897A9 (en) | A method, system and device for negotiating face-to-face meetings through predicting significant places | |
| HK1246468B (en) | Intelligent surfacing of reminders |