US20160062605A1 - Systems and methods for providing suggested reminders - Google Patents

Systems and methods for providing suggested reminders Download PDF

Info

Publication number
US20160062605A1
US20160062605A1 US14/473,590 US201414473590A US2016062605A1 US 20160062605 A1 US20160062605 A1 US 20160062605A1 US 201414473590 A US201414473590 A US 201414473590A US 2016062605 A1 US2016062605 A1 US 2016062605A1
Authority
US
United States
Prior art keywords
message
messages
objects
task
user
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
US14/473,590
Other versions
US9990610B2 (en
Inventor
Shalini Agarwal
Amarnag Subramanya
Edgar Gonzalez Pellicer
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Priority to US14/473,590 priority Critical patent/US9990610B2/en
Assigned to GOOGLE INC. reassignment GOOGLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AGARWAL, SHALINI, PELLICER, EDGAR GONZALEZ, SUBRAMANYA, AMARNAG
Publication of US20160062605A1 publication Critical patent/US20160062605A1/en
Assigned to GOOGLE LLC reassignment GOOGLE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: GOOGLE INC.
Application granted granted Critical
Publication of US9990610B2 publication Critical patent/US9990610B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/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/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • 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/0482Interaction with lists of selectable items, e.g. menus
    • 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/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes

Definitions

  • the disclosure relates generally to electronic messaging applications, and more specifically to annotating a message.
  • Electronic messaging applications convey various types of information to a recipient such as messages to and from various others.
  • Some messages include a task that the recipient must perform.
  • To identify a task in a message it is necessary to perform several actions. First, the message is reviewed and, if there is a task somewhere in the message, the task is identified and characterized. Next, in order to ensure that the task is not simply forgotten, it is best to annotate the message in some way to indicate that there is a task in the message. For instance, to add a task reminder to the message that includes the task. What are needed in the art are systems and methods for assisting a recipient with identifying such tasks and annotating messages accordingly.
  • a method of annotating a message executes at a computing device having one or more processors and memory.
  • the memory stores one or more programs configured for execution by the one or more processors.
  • a plurality of messages intended for a user is analyzed to determine whether a task reminder is derivable from respective messages in the plurality of messages (e.g., through natural language processing of the respective messages), thereby deriving task reminders for at least a subset of the plurality of messages.
  • the task reminder includes one or more words that are taken from a source independent of the respective message and one or more words that are taken from the respective message.
  • the task reminder is taken or derived exclusively from the respective message.
  • a user interface is provided for an electronic messaging application.
  • the user interface includes a list of objects.
  • an object in the list of objects represents a plurality of messages with a common topic.
  • each object in the list of objects is one of a task, a message, or a plurality of messages.
  • One or more respective object of the objects in the list of objects represents a collapsed state of a corresponding message in the subset of the plurality of messages.
  • Each such respective object comprises: (i) a message summary for the corresponding message, (ii) the task reminder derived from the corresponding message, (iii) optionally, a confirmation affordance (e.g., check box, radio button, etc.), and (iv) a dismissal affordance.
  • the optional confirmation affordance occupy different portions of the respective object.
  • each affordance is an independent check box, radio button, etc.
  • the confirmation affordance and the dismissal affordance are different states of a single affordance that occupies a single portion of the respective object. For example, different states of a toggle button.
  • the confirmation affordance and the dismissal affordance are removed from the respective object. Responsive to user selection of the dismissal affordance, the task reminder, the confirmation affordance (if present), and the dismissal affordance are removed from the respective object.
  • the task reminder, the confirmation affordance (if present), and the dismissal affordance are removed from the respective object.
  • the suggested task reminders are editable or customizable by the user. For instance, in one such embodiment, responsive to user selection of a task reminder of an object in the list of objects, the collapsed state of the message corresponding to the object is replaced with an expanded state of the corresponding message. In some instances this is done in a seamless fashion by pushing any objects in the list of objects that are above the object representing the corresponding message up and pushing any objects in the list of objects that are below the object representing the corresponding message down in the user interface. Further, the optional confirmation affordance (if present) and the dismissal affordance are removed and user editing of the task reminder is facilitated, thereby creating a task for the message.
  • the corresponding message is part of a chain of messages and the expanded state of the message includes the chain of messages.
  • the method further comprises providing a save affordance when the user edits the task reminder and, responsive to user selection of the save affordance, the expanded state of the corresponding message is replaced with the collapsed state of the corresponding message by pushing any objects in the list of objects that are above the object representing the message down and pushing any objects in the list of objects that are below the object representing the message up in the user interface. In so doing, the save affordance is removed.
  • the processing of a respective message in the plurality of messages comprises determining, for each respective predefined candidate task reminder in a plurality of predefined task reminders, whether there is a match between the predefined candidate task reminder and all or a portion of the respective message. When a match between respective predefined candidate task reminder and all or a portion of the respective message is found, the respective predefined candidate task reminder is deemed to be the task reminder for the respective message. In some embodiments, the match between the predefined candidate task reminder and all or a portion of the respective message includes natural language processing of the all or a portion of the respective message. In some embodiments, a predefined candidate task reminder in the plurality of candidate task reminders is provided by the user. In some embodiments, a predefined candidate task reminder in the plurality of candidate task reminders is from a source independent of the user.
  • Another aspect of the present disclosure provides a computing device comprising one or more processors, memory, and one or more programs stored in the memory.
  • the one or more programs are configured for execution by the one or more processors.
  • the one or more programs comprise instructions for analyzing a plurality of messages intended for a user to determine whether a task reminder is derivable from respective messages in the plurality of messages through processing of the respective messages, thereby deriving task reminders for at least a subset of the plurality of messages.
  • a user interface for an electronic messaging application is provided.
  • the user interface includes a list of objects, one or more respective object of the objects in the list of objects representing a collapsed state of a corresponding message in the subset of the plurality of messages and comprising message summary for the corresponding message, the task reminder, a dismissal affordance, and optionally, a confirmation affordance.
  • the optional confirmation affordance responsive to user selection of the confirmation affordance, the confirmation affordance and the dismissal affordance are removed from the respective object. Responsive to user selection of the dismissal affordance, the task reminder, the optional confirmation affordance (if present), and the dismissal affordance are removed from the respective object.
  • Another aspect of the present disclosure provides a non-transitory computer readable storage medium storing one or more programs configured for execution by a computing device having one or more processors and memory.
  • the one or more programs comprise instructions for analyzing a plurality of messages intended for a user to determine whether a task reminder is derivable from respective messages in the plurality of messages (e.g., through natural language processing of the respective messages), thereby deriving task reminder for at least a subset of the plurality of messages.
  • a user interface for an electronic messaging application is provided.
  • the user interface includes a list of objects, one or more respective object of the objects in the list of objects representing a collapsed state of a corresponding message in the subset of the plurality of messages and comprising message summary for the corresponding message, the task reminder, a dismissal affordance and, optionally, a confirmation affordance.
  • the optional confirmation affordance responsive to user selection of the confirmation affordance, the confirmation affordance and the dismissal affordance are removed from the respective object. Responsive to user selection of the dismissal affordance, the task reminder, the optional confirmation affordance (when present), and the dismissal affordance are removed from the respective object.
  • FIG. 1 illustrates a context in which some implementations operate.
  • FIG. 2 is a block diagram of a client computing device according to some implementations.
  • FIG. 3 is a block diagram of a server according to some implementations.
  • FIGS. 4A-4H illustrate aspects of a user interface for annotating a message in accordance with some implementations.
  • FIGS. 5A-5C provide a flowchart of a process for annotating a message according to some implementations.
  • FIG. 1 is a block diagram that illustrates the major components of some implementations.
  • the various client devices 102 also identified herein as computing devices
  • servers 300 in a server system 110 communicate over one or more networks 108 (such as the Internet).
  • a client device 102 may be a smart phone, a tablet computer, a laptop computer, a mobile computing device, a computing device of a vehicle of the user (e.g., an in-vehicle communications system, an in-vehicle entertainment system, an in-vehicle navigation system), a wearable apparatus of the user that includes a computing device (e.g., a watch of the user having a computing device, glasses of the user having a computing device, a wearable music player), desktop computer, or other computing device that has access to a communication network 108 and can run an electronic messaging application 106 .
  • the messaging application runs within a web browser 104 .
  • the server system 110 consists of a single server 300 . More commonly, the server system 110 includes a plurality of servers 300 . In some implementations, the servers 300 are connected by an internal communication network of bus 124 .
  • the server system 110 includes one or more web servers 112 , which receive requests from users (e.g., from client devices 102 ) and return appropriate information, resources, links, and so on.
  • the server system 110 includes one or more application servers 114 , which provide various applications, such as an electronic messaging application 106 .
  • the server system 110 typically includes one or more databases 116 , which store information such as web pages, a user list 118 , various user information 120 (e.g., user names and encrypted passwords, user preferences, and so on), and a plurality of predefined candidate task reminders 122 .
  • databases 116 which store information such as web pages, a user list 118 , various user information 120 (e.g., user names and encrypted passwords, user preferences, and so on), and a plurality of predefined candidate task reminders 122 .
  • FIG. 2 is a block diagram illustrating a client device 102 that a user uses to access an electronic messaging application 106 .
  • a client device is also referred to as a computing device, which may be a tablet computer, a laptop computer, a smart phone, a desktop computer, a PDA, or other computing device than can run an electronic messaging application 106 and has access to a communication network 108 .
  • a client device 102 typically includes one or more processing units (CPUs) 202 for executing modules, programs, or instructions stored in memory 214 and thereby performing processing operations; one or more network or other communications interfaces 204 ; memory 214 ; and one or more communication buses 212 for interconnecting these components.
  • CPUs processing units
  • the communication buses 212 may include circuitry (sometimes called a chipset) that interconnects and controls communications between system components.
  • a client device 102 includes a user interface 206 comprising a display device 208 and one or more input devices or mechanisms 210 .
  • the input device/mechanism includes a keyboard and a mouse; in some implementations, the input device/mechanism includes a “soft” keyboard, which is displayed as needed on the display device 208 , enabling a user to “press keys” that appear on the display 208 .
  • the memory 214 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices.
  • memory 214 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices.
  • the memory 214 includes one or more storage devices remotely located from the CPU(s) 202 .
  • the memory 214 or alternately the non-volatile memory device(s) within memory 214 , comprises a non-transitory computer readable storage medium.
  • the memory 214 , or the computer readable storage medium of memory 214 stores the following programs, modules, and data structures, or a subset thereof:
  • Each of the above identified executable modules, applications, or sets of procedures may be stored in one or more of the previously mentioned memory devices and corresponds to a set of instructions for performing a function described above.
  • the above identified modules or programs (e.g., sets of instructions) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various implementations.
  • the memory 214 stores a subset of the modules and data structures identified above. Furthermore, in some embodiments, the memory 214 stores additional modules or data structures not described above.
  • FIG. 2 shows a client device 102
  • FIG. 2 is intended more as a functional description of the various features that may be present rather than as a structural schematic of the implementations described herein. In practice, and as recognized by those of ordinary skill in the art, items shown separately could be combined and some items could be separated.
  • FIG. 3 is a block diagram illustrating a server 300 that is used in a server system 110 in accordance with some embodiments.
  • a typical server system includes many individual servers 300 , which, in some instances, number in the hundreds or thousands.
  • a server 300 typically includes one or more processing units (CPUs) 302 for executing modules, programs, or instructions stored in the memory 314 and thereby performing processing operations; one or more network or other communications interfaces 304 ; memory 314 ; and one or more communication buses 312 for interconnecting these components.
  • the communication buses 312 include circuitry (sometimes called a chipset) that interconnects and controls communications between system components.
  • a server 300 includes a user interface 306 , which may include a display device 308 and one or more input devices 310 , such as a keyboard and a mouse.
  • the memory 314 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices.
  • the memory 314 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices.
  • the memory 314 includes one or more storage devices remotely located from the CPU(s) 302 .
  • the memory 314 or alternately the non-volatile memory device(s) within memory 314 , comprises a non-transitory computer readable storage medium.
  • the memory 314 , or the computer readable storage medium of memory 314 stores the following programs, modules, and data structures, or a subset thereof:
  • Candidate task reminders 122 and/or 228 are in any form suitable for reminding a user of a task.
  • FIGS. 2 and 3 collectively represent the server 300 and the client device 102 as including predefined candidate task reminders.
  • only the server 300 stores predefined candidate task reminders.
  • only the client device 102 stores predefined candidate task reminders.
  • both the server 300 and the client device 102 store predefined candidate task reminders.
  • the server 300 and the client device 102 store the same predefined candidate task reminders.
  • the server 300 stores a first set of predefined candidate task reminders and the client device 102 stores a second set of predefined candidate task reminders, and there is no overlap between the first set of predefined candidate task reminders and the second set of predefined candidate task reminders, partial overlap between the first set of predefined candidate task reminders and the second set of predefined candidate task reminders, or complete overlap between the predefined candidate task reminders and the second set of predefined candidate task reminders.
  • the first set of predefined candidate task reminders is defined by a source independent of the user
  • the second set of predefined candidate task reminders is defined by a particular user associated with a particular client device 102 .
  • Each of the above identified elements in FIG. 3 may be stored in one or more of the previously mentioned memory devices.
  • Each executable program, module, or procedure corresponds to a set of instructions for performing a function described above.
  • the above identified modules or programs (e.g., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules are combined or otherwise re-arranged in various implementations.
  • the memory 314 stores a subset of the modules and data structures identified above. Furthermore, in some embodiments, the memory 314 stores additional modules or data structures not described above.
  • FIG. 3 illustrates a server 300
  • FIG. 3 is intended more as functional illustration of the various features that may be present in a set of one or more servers rather than as a structural schematic of the implementations described herein.
  • items shown separately could be combined and some items could be separated.
  • the actual number of servers used to implement these features, and how features are allocated among them, will vary from one implementation to another, and depends in part on the amount of data traffic that the system must handle during peak usage periods as well as during average usage periods.
  • the functionality for an electronic messaging application may be shared between a client device 102 and a server system 110 .
  • the majority of the subsequent processing occurs on the client device.
  • the majority of the processing and data storage occurs at a server 300 , and the client device 102 uses a web browser 104 to view and interact with the data.
  • One of skill in the art recognizes that various allocations of functionality between the client device 102 and the server system 110 are possible, and some implementations support multiple configurations (e.g., based on user selection).
  • FIG. 4A illustrates features of an electronic messaging application that supports annotating a message in accordance with some implementations.
  • FIG. 4A illustrates user interface 402 , which is displayed as part of an electronic messaging application (e.g., an email application).
  • each row in the list represents a separate object.
  • objects includes messages, (e.g., messages 404 , 408 , and 414 - 426 ), message clusters (e.g., 406 , 410 ), and task 412 .
  • the objects are all for a user associated with the user interface 402 .
  • individual messages e.g., messages 404 , 408 , and 414 - 426
  • the user interface 402 is, in particular, shown to comprise at least two objects that are message clusters, cluster 406 and cluster 410 .
  • Cluster 406 is a group of electronic messages having a collective association, namely promotional material (e.g., advertisements for retail sales, newsletters from stores).
  • cluster 406 comprises nine new electronic messages
  • cluster 410 comprises 1 new electronic message.
  • a new electronic message refers to a message that has not been viewed, opened, acknowledged or read by the user of the electronic messaging application.
  • Message clusters are disclosed further in U.S. patent application Ser. No. 14/145,005, entitled “Systems and Methods for Throttling Display of Electronic Messages,” filed Dec. 31, 2013, and U.S. patent application Ser. No. 14/139,205, entitled “Systems and Methods for Clustering Electronic Messages,” filed Dec. 23, 2013, each of which is hereby incorporated by reference herein in its entirety.
  • a method of annotating a message is disclosed in more detail.
  • a plurality of messages intended for a user is analyzed to determine whether a task reminder is derivable from respective messages in the plurality of messages through processing of the respective messages, thereby deriving task reminders for at least a subset of the plurality of messages.
  • the user interface 402 for an electronic messaging 106 application is provided.
  • the user interface 402 includes a list of objects.
  • One or more respective object of the objects in the list of objects represents a collapsed state of a corresponding message in the subset of the plurality of messages.
  • user interface 402 includes object 412 from one such message.
  • Object 412 includes a message summary 428 for the corresponding message, the task reminder 430 derived from the corresponding message, and a dismissal affordance 434 .
  • object 412 further includes a confirmation affordance 432 .
  • potential (candidate) task assists are provided to the user.
  • one or more entities associated with the task reminder 430 are identified using at least the description of the task reminder 430 and, optionally, geographic information about the user.
  • an entity is deemed to be associated with a task reminder 430 when the entity is capable of performing an action identified in the task reminder 430 and the entity services such actions from users that are at or from the location identified in the geographical information associated with a user.
  • Information for performing the action with at least one respective entity in the one or more entities based upon an identity of the entity is identified and formatted for use by the user.
  • a task reminder “renew drivers license” coupled with geographic information about the user is used to determine the correct department of motor vehicles website to suggest to the user.
  • the user's geographic information identifies Daly City, Calif. and the Daly City office of the California Department of Motor Vehicles is identified as the information for performing the action of renewing a driver's license.
  • the URL for the Daly City office of the California Department of Motor Vehicles is formatted for use by the user.
  • the user's geographic information identifies Daly City, Calif. and the California URL for the California Department of Motor Vehicles is identified as the information 430 for performing the action of renewing a driver's license.
  • the California URL for the California Department of Motor Vehicles is formatted for use by the user.
  • the task assist provides a URL, phone number, address, map, or other form of information for accomplishing the task.
  • the task is not associated with an entity but rather is an event or action unaffiliated with an entity.
  • the task reminder 430 is “study for math exam” and the task assist is a URL to the current chapter of a math reference that is to be reviewed in preparation for the math examination.
  • the task assist information is obtained from a source distinct from the plurality of messages intended for a user, for instance a public or private knowledge graph, the Internet, or other electronically accessible information sources.
  • one or more task postponement options are provided in accordance with some implementations. For instance, some implementations provide a “pick date & time” task postponement option which allows a user to specify a date and time after the present time in which to redisplay the task reminder 430 . Some implementations provide a “pick place” option, which allows a user to designate a place when the task reminder 430 will reappear. Some implementations include predefined and/or user-defined place names, which may be correlated with GPS coordinates or other location identifiers.
  • a user may identify a “home” location, and when the user (e.g., the user's smart phone) reaches home, the message is displayed in the message list.
  • a source distinct from the messages received by the user such as a database at the server system 110 , includes a table of predefined locations.
  • the predefined locations may include single independent locations (e.g., the LAX airport), or a set of locations that are grouped together (e.g., a chain of sporting goods stores).
  • a “pick place” task postponement option is selected options are displayed to the user for selecting a location (e.g., a drop-down list).
  • some implementations When a user accesses the messaging application from two or more devices, some implementations will display the postponed message when any of the devices are at the designated location (and the messaging application is running) In other implementations, postponing to a specific place considers only the current device that the user is accessing. Some implementations support an option to postpone task reminder 430 until the messaging application is being accessed from a specific device. Some implementations provide a “for duration” option, which allows the user to specify the amount of the delay rather than a specific time when the postponement expires. Some implementations include one or more postponement options that are pulled out of the task reminder 430 , such as postponing until certain place specified in the task reminder is reached, or postponing until a certain location specified in the task reminder is reached.
  • a postponed task reminder 430 when a postponed task reminder 430 reappears it is in the form of an object that represents a collapsed state of a corresponding message in the subset of the plurality of messages such as object 412 of FIG. 4A .
  • Object 412 includes a message summary 428 for the corresponding message, the task reminder 430 derived from the corresponding message and a dismissal affordance 434 .
  • the redisplayed task reminder is displayed independently of any object that represents a particular message.
  • the task reminder is inferred from the electronic message corresponding to the object. Ways to infer a task reminder from a message object are disclosed in U.S. patent application Ser. No. 14/161,368, entitled “Identifying Tasks in Messages,” filed Jan. 22, 2014, which is hereby incorporated by reference herein in its entirety.
  • a message is processed in order to determine whether the message includes a task reminder by determining, for each respective predefined candidate task reminder in a plurality of predefined task reminders, whether there is a match between the predefined candidate task reminder and all or a portion of the respective message.
  • this match between the predefined candidate task reminder and all or a portion of the respective message includes natural language processing of the all or a portion of the respective message as disclosed in U.S. patent application Ser. No. 14/161,368, entitled “Identifying Tasks in Messages,” filed Jan. 22, 2014, which is hereby incorporated by reference herein in its entirety.
  • the plurality of predefined candidate task reminders is stored in database 122 of server system 110 .
  • the plurality of predefined candidate task reminders is stored in application data 222 (as candidate task reminders 228 ) on the client device 102 of a user.
  • each predefined candidate task is a rule, heuristic, phrase, or other expression that is matched or applied against messages intended for a user to see if there is a match between the predefined candidate task and all or a portion of the message.
  • a predefined candidate task reminder is provided by a user. In this way, the user can influence the format and types of task reminders that are generated for the user when messages are received.
  • a predefined candidate task reminder in the plurality of candidate task reminders is from a source other than (external to, independent of) the user. For instance, in some embodiments there is a library of standard or common predefined candidate task reminder formats that are provided for matching.
  • the plurality of predefined candidate task reminders includes some predefined candidate task reminders provided by the user and some predefined candidate task reminders from a source independent of the user.
  • the object corresponding to the message that had a match is updated to include the candidate task reminder derived from the corresponding message.
  • the task reminder “Don't forget to take the trash out” is a task reminder that was derived from a corresponding message.
  • the object 412 includes a task reminder 430 derived from a message, without human intervention.
  • the user the recipient of the corresponding message
  • the optional confirmation affordance 432 is selected.
  • a confirmation affordance 432 is not provided. If the user does not want to keep the message, the dismissal affordance 434 is selected.
  • the confirmation affordance 432 and the dismissal affordance 434 are removed from the respective object as illustrated in FIG. 4B .
  • the task reminder 430 , the confirmation affordance 432 (if present), and the dismissal affordance 434 are all removed from object 412 as illustrated in FIG. 4C .
  • confirmation affordance 434 and dismissal affordance 432 are seen to occupy different portions of the respective object 412 . That is, they are discrete and different affordances.
  • the confirmation affordance and the dismissal affordance are different states of a single affordance that occupies a single portion of the respective object.
  • a two-state radio button, switch or other type of affordance that allows the user to either accept or reject the task reminder 430 .
  • user interface 402 facilitates user editing of task reminders. This is beneficial for task reminders generated without human intervention using the methods of the present disclosure.
  • the use case of FIG. 4D in which the task reminder is editable is reached by selection of the task reminder 430 illustrated in FIG. 4A . In some embodiments it is reached by selection of message summary 428 of FIG. 4A . In some embodiments it is reached by selection of anywhere within object 412 other than affordances 432 and 434 of FIG. 4A . In some embodiments it is reached by selection of a designated “edit” affordance that is not shown in FIG. 4A .
  • FIG. 4D it is seen that, responsive to user selection of a task reminder of an object in the list of objects, for example by any of the ways described above, the collapsed state of the message corresponding to the object is replaced with an expanded state of the corresponding message by pushing any objects in the list of objects that are above the object 412 representing the corresponding message (e.g., objects 404 , 406 , 408 , and 410 ) up and pushing any objects in the list of objects that are below the object 412 representing the corresponding message (e.g., objects 414 , 416 , 418 , 420 , 422 , 424 , and 426 ) down.
  • User edits to the task reminder are then facilitated.
  • FIG. 4D further illustrates how, in some embodiments, the message corresponding to an object is part of a chain of messages 460 and the expanded state of the message includes the chain of messages.
  • the optional confirmation 432 (if present) and dismissal 434 affordances are removed.
  • the suggested task reminder 430 is repopulated with a generic task reminder such as “Remind me to . . . ”.
  • the generic task reminder is removed and replaced with the task reminder provided by the user.
  • a save affordance 450 is provided when the user edits the task reminder 430 . Referring to FIG.
  • the expanded state of the corresponding message is replaced with the original collapsed state of the corresponding message by pushing any objects in the list of objects that are above the object representing the message (e.g., objects 404 , 406 , 408 , and 410 ) down and pushing any objects in the list of objects that are below the object representing the message (e.g., objects 414 , 416 , 418 , 420 , 422 , 424 , and 426 ) up in the user interface and removing the save affordance 450 , thereby creating a task.
  • any objects in the list of objects that are above the object representing the message e.g., objects 404 , 406 , 408 , and 410
  • any objects in the list of objects that are below the object representing the message e.g., objects 414 , 416 , 418 , 420 , 422 , 424 , and 426
  • the illustrated task reminder 430 is an instance where the task reminder is exclusively taken from the respective message.
  • the message is a message chain and text of message 460 - 3 includes the phrase “Don't forget to take the trash out” which is used exclusively to form the task reminder 430 .
  • the task reminder 430 includes one or more words that are taken from a source independent of the respective message and one or more words that are taken from the respective message.
  • some of the words of the task reminder 430 are from the corresponding message and some of the words are from a source independent of the respective messages.
  • words from the respective reminder are reformatted into a standard expression, for instance “Don't forget to take the trash out” is reformatted to “Reminder—take the trash out.”
  • the word “reminder” is taken from a task reminder formatting rule, which is an example of a source independent of the respective message. Additional examples of sources independent of the respective message include inserting current or future dates into the task reminder, inserting locations, places of business, opening and closing times of entities referenced by the corresponding message, and current flight and arrival times.
  • a display device 208 is inherently limited in size. Accordingly, the number of objects displayed in the user interface 402 is necessarily limited. Scrolling may be necessary for a user to get to a desired message. If the number of messages in the message list is small enough, all of the messages may be able to be displayed.
  • FIGS. 5A-5C provide a flowchart of a process 500 , performed by a computing device, for annotating a message ( 502 ).
  • the method is performed ( 504 ) at a computing device 102 and/or 110 having one or more processors and memory.
  • the memory stores ( 504 ) one or more programs configured for execution by the one or more processors.
  • a plurality of messages intended for a user is analyzed to determine whether a task reminder is derivable from respective messages in the plurality of messages through processing of the respective messages ( 506 ). In this way task reminders for at least a subset of the plurality of messages are generated ( 506 ).
  • each of the messages is for one or more recipients and each of the messages include the user as a common recipient.
  • some or all of the messages in the plurality of messages are sent at different times to the user.
  • the analyzing of a respective message in the plurality of messages comprises determining, for each respective predefined candidate task reminder in a plurality of predefined task reminders, whether there is a match between the predefined candidate task reminder and all or a portion of the respective message, where when a match between respective predefined candidate task reminder and all or a portion of the respective message is found, the respective predefined candidate task reminder is deemed to be the task reminder for the respective message ( 508 ).
  • the match between the predefined candidate task reminder and all or a portion of the respective message includes natural language processing of all or a portion of the respective message ( 510 ).
  • a predefined candidate task reminder in the plurality of candidate task reminders is provided by the user ( 512 ).
  • a predefined candidate task reminder in the plurality of candidate task reminders is provided by a source independent of the user ( 514 ).
  • a user interface for an electronic messaging application is provided ( 508 ).
  • the user interface includes a list of objects.
  • One or more respective object of the objects in the list of objects represents a collapsed state of a corresponding message in the subset of the plurality of messages and comprises: (i) a message summary for the corresponding message, (ii) the task reminder derived from the corresponding message, and a dismissal affordance ( 516 )
  • the collapsed state further comprises a confirmation affordance.
  • the corresponding message is part of or comprises a chain of messages and the expanded state of the corresponding message includes the chain of messages ( 518 ).
  • an object in the list of objects represents a plurality of messages with a common topic ( 520 ).
  • an object represents a cluster of messages, and the cluster of messages comprises a plurality of messages sharing a common set of characteristics that meet a first predefined criterion (e.g., clustering criterion) and the plurality of messages are sent at different times covering the same topic and each having the user as a common recipient.
  • a first predefined criterion e.g., clustering criterion
  • each object in the list of objects is one of a task, a message, or a plurality of messages (e.g., a cluster of messages or a conversation) ( 522 ).
  • some objects in the list of objects are one of a task, a message, or a plurality of messages (e.g., a cluster of messages or a conversation), and there are other types of objects in the list as well.
  • the method further comprises, responsive to user selection of a task reminder of an object in the list of objects, replacing the collapsed state of the message corresponding to the object with an expanded state of the corresponding message by pushing any objects in the list of objects that are above the object representing the corresponding message up and pushing any objects in the list of objects that are below the object representing the corresponding message down in the user interface. Further, the confirmation affordance (if present) and the dismissal affordance are removed and user editing of the task reminder is facilitated thereby creating a task ( 524 ).
  • the method further comprises providing a save affordance when the user edits the task reminder and responsive to user selection of the save affordance, replacing the expanded state of the corresponding message with the collapsed state of the corresponding message by pushing any objects in the list of objects that are above the object representing the message down and pushing any objects in the list of objects that are below the object representing the message up in the user interface and removing the save affordance ( 526 ).
  • the task reminder that is generated includes one or more words that are taken from a source independent of the respective message and one or more words that are taken from the respective message ( 528 ). In some embodiments, the task reminder is exclusively taken from the respective message ( 530 ).
  • the confirmation affordance and the dismissal affordance occupy different portions of the respective object ( 532 ).
  • the confirmation affordance and the dismissal affordance are different states of a single affordance that occupies a single portion of the respective object ( 534 ). In some embodiments, there is no confirmation affordance.
  • the confirmation and dismissal affordance(s) are removed from the respective object ( 536 ). Furthermore, responsive to user selection of the dismissal affordance, the task reminder, the confirmation affordance (if present), and the dismissal affordance are removed from the respective object ( 538 ).

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A method for annotating a message executes at a computing device having one or more processors and memory. The memory stores one or more programs configured for execution by the one or more processors. A plurality of messages for a user is analyzed to determine whether a task reminder is derivable for any of the messages. In this way, task reminders are derived for at least a subset of the messages. A user interface for an electronic messaging application is provided. The interface includes a list of objects, one or more of which represents a collapsed state of a message in the message subset and comprises a summary, task reminder, and a dismissal affordance. Responsive dismissal affordance selection, the task reminder and the dismissal affordances are removed from the object.

Description

    TECHNICAL FIELD
  • The disclosure relates generally to electronic messaging applications, and more specifically to annotating a message.
  • BACKGROUND
  • Electronic messaging applications, such as email, convey various types of information to a recipient such as messages to and from various others. Some messages include a task that the recipient must perform. However, to identify a task in a message, it is necessary to perform several actions. First, the message is reviewed and, if there is a task somewhere in the message, the task is identified and characterized. Next, in order to ensure that the task is not simply forgotten, it is best to annotate the message in some way to indicate that there is a task in the message. For instance, to add a task reminder to the message that includes the task. What are needed in the art are systems and methods for assisting a recipient with identifying such tasks and annotating messages accordingly.
  • SUMMARY
  • Disclosed implementations address the above deficiencies and other problems associated with performing tasks. The disclosed implementations provide ways to help annotate messages. In accordance with some implementations, a method of annotating a message executes at a computing device having one or more processors and memory. The memory stores one or more programs configured for execution by the one or more processors. A plurality of messages intended for a user is analyzed to determine whether a task reminder is derivable from respective messages in the plurality of messages (e.g., through natural language processing of the respective messages), thereby deriving task reminders for at least a subset of the plurality of messages. In some embodiments, the task reminder includes one or more words that are taken from a source independent of the respective message and one or more words that are taken from the respective message. In some embodiments, the task reminder is taken or derived exclusively from the respective message.
  • A user interface is provided for an electronic messaging application. The user interface includes a list of objects. In some instances, an object in the list of objects represents a plurality of messages with a common topic. In some embodiments, each object in the list of objects is one of a task, a message, or a plurality of messages.
  • One or more respective object of the objects in the list of objects represents a collapsed state of a corresponding message in the subset of the plurality of messages. Each such respective object comprises: (i) a message summary for the corresponding message, (ii) the task reminder derived from the corresponding message, (iii) optionally, a confirmation affordance (e.g., check box, radio button, etc.), and (iv) a dismissal affordance. In some embodiments that include the optional confirmation affordance, the confirmation affordance and the dismissal affordance occupy different portions of the respective object. For instance, each affordance is an independent check box, radio button, etc. In other embodiments that include the optional confirmation affordance, the confirmation affordance and the dismissal affordance are different states of a single affordance that occupies a single portion of the respective object. For example, different states of a toggle button.
  • In embodiments that include the optional confirmation affordance, responsive to user selection of the confirmation affordance, the confirmation affordance and the dismissal affordance are removed from the respective object. Responsive to user selection of the dismissal affordance, the task reminder, the confirmation affordance (if present), and the dismissal affordance are removed from the respective object. Advantageously, in this way, a user can peruse suggested task reminders that have been identified for messages and confirm whether or not such reminders should be associated with the messages.
  • In some embodiments, the suggested task reminders are editable or customizable by the user. For instance, in one such embodiment, responsive to user selection of a task reminder of an object in the list of objects, the collapsed state of the message corresponding to the object is replaced with an expanded state of the corresponding message. In some instances this is done in a seamless fashion by pushing any objects in the list of objects that are above the object representing the corresponding message up and pushing any objects in the list of objects that are below the object representing the corresponding message down in the user interface. Further, the optional confirmation affordance (if present) and the dismissal affordance are removed and user editing of the task reminder is facilitated, thereby creating a task for the message. In some embodiments, the corresponding message is part of a chain of messages and the expanded state of the message includes the chain of messages. In some embodiments, the method further comprises providing a save affordance when the user edits the task reminder and, responsive to user selection of the save affordance, the expanded state of the corresponding message is replaced with the collapsed state of the corresponding message by pushing any objects in the list of objects that are above the object representing the message down and pushing any objects in the list of objects that are below the object representing the message up in the user interface. In so doing, the save affordance is removed.
  • In some embodiments the processing of a respective message in the plurality of messages comprises determining, for each respective predefined candidate task reminder in a plurality of predefined task reminders, whether there is a match between the predefined candidate task reminder and all or a portion of the respective message. When a match between respective predefined candidate task reminder and all or a portion of the respective message is found, the respective predefined candidate task reminder is deemed to be the task reminder for the respective message. In some embodiments, the match between the predefined candidate task reminder and all or a portion of the respective message includes natural language processing of the all or a portion of the respective message. In some embodiments, a predefined candidate task reminder in the plurality of candidate task reminders is provided by the user. In some embodiments, a predefined candidate task reminder in the plurality of candidate task reminders is from a source independent of the user.
  • Another aspect of the present disclosure provides a computing device comprising one or more processors, memory, and one or more programs stored in the memory. The one or more programs are configured for execution by the one or more processors. The one or more programs comprise instructions for analyzing a plurality of messages intended for a user to determine whether a task reminder is derivable from respective messages in the plurality of messages through processing of the respective messages, thereby deriving task reminders for at least a subset of the plurality of messages. A user interface for an electronic messaging application is provided. The user interface includes a list of objects, one or more respective object of the objects in the list of objects representing a collapsed state of a corresponding message in the subset of the plurality of messages and comprising message summary for the corresponding message, the task reminder, a dismissal affordance, and optionally, a confirmation affordance. In embodiments that include the optional confirmation affordance, responsive to user selection of the confirmation affordance, the confirmation affordance and the dismissal affordance are removed from the respective object. Responsive to user selection of the dismissal affordance, the task reminder, the optional confirmation affordance (if present), and the dismissal affordance are removed from the respective object.
  • Another aspect of the present disclosure provides a non-transitory computer readable storage medium storing one or more programs configured for execution by a computing device having one or more processors and memory. The one or more programs comprise instructions for analyzing a plurality of messages intended for a user to determine whether a task reminder is derivable from respective messages in the plurality of messages (e.g., through natural language processing of the respective messages), thereby deriving task reminder for at least a subset of the plurality of messages. A user interface for an electronic messaging application is provided. The user interface includes a list of objects, one or more respective object of the objects in the list of objects representing a collapsed state of a corresponding message in the subset of the plurality of messages and comprising message summary for the corresponding message, the task reminder, a dismissal affordance and, optionally, a confirmation affordance. In those embodiments that include the optional confirmation affordance, responsive to user selection of the confirmation affordance, the confirmation affordance and the dismissal affordance are removed from the respective object. Responsive to user selection of the dismissal affordance, the task reminder, the optional confirmation affordance (when present), and the dismissal affordance are removed from the respective object.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For a better understanding of the aforementioned implementations of the invention as well as additional implementations thereof, reference should be made to the Description of Implementations below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.
  • FIG. 1 illustrates a context in which some implementations operate.
  • FIG. 2 is a block diagram of a client computing device according to some implementations.
  • FIG. 3 is a block diagram of a server according to some implementations.
  • FIGS. 4A-4H illustrate aspects of a user interface for annotating a message in accordance with some implementations.
  • FIGS. 5A-5C provide a flowchart of a process for annotating a message according to some implementations.
  • Reference will now be made in detail to implementations, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one of ordinary skill in the art that the present invention may be practiced without these specific details.
  • DESCRIPTION OF IMPLEMENTATIONS
  • FIG. 1 is a block diagram that illustrates the major components of some implementations. The various client devices 102 (also identified herein as computing devices) and servers 300 in a server system 110 communicate over one or more networks 108 (such as the Internet). A client device 102 may be a smart phone, a tablet computer, a laptop computer, a mobile computing device, a computing device of a vehicle of the user (e.g., an in-vehicle communications system, an in-vehicle entertainment system, an in-vehicle navigation system), a wearable apparatus of the user that includes a computing device (e.g., a watch of the user having a computing device, glasses of the user having a computing device, a wearable music player), desktop computer, or other computing device that has access to a communication network 108 and can run an electronic messaging application 106. In some implementations, the messaging application runs within a web browser 104.
  • In some implementations, the server system 110 consists of a single server 300. More commonly, the server system 110 includes a plurality of servers 300. In some implementations, the servers 300 are connected by an internal communication network of bus 124. The server system 110 includes one or more web servers 112, which receive requests from users (e.g., from client devices 102) and return appropriate information, resources, links, and so on. In some implementations, the server system 110 includes one or more application servers 114, which provide various applications, such as an electronic messaging application 106. The server system 110 typically includes one or more databases 116, which store information such as web pages, a user list 118, various user information 120 (e.g., user names and encrypted passwords, user preferences, and so on), and a plurality of predefined candidate task reminders 122.
  • FIG. 2 is a block diagram illustrating a client device 102 that a user uses to access an electronic messaging application 106. A client device is also referred to as a computing device, which may be a tablet computer, a laptop computer, a smart phone, a desktop computer, a PDA, or other computing device than can run an electronic messaging application 106 and has access to a communication network 108. A client device 102 typically includes one or more processing units (CPUs) 202 for executing modules, programs, or instructions stored in memory 214 and thereby performing processing operations; one or more network or other communications interfaces 204; memory 214; and one or more communication buses 212 for interconnecting these components. The communication buses 212 may include circuitry (sometimes called a chipset) that interconnects and controls communications between system components. A client device 102 includes a user interface 206 comprising a display device 208 and one or more input devices or mechanisms 210. In some implementations, the input device/mechanism includes a keyboard and a mouse; in some implementations, the input device/mechanism includes a “soft” keyboard, which is displayed as needed on the display device 208, enabling a user to “press keys” that appear on the display 208.
  • In some implementations, the memory 214 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices. In some implementations, memory 214 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. In some implementations, the memory 214 includes one or more storage devices remotely located from the CPU(s) 202. The memory 214, or alternately the non-volatile memory device(s) within memory 214, comprises a non-transitory computer readable storage medium. In some implementations, the memory 214, or the computer readable storage medium of memory 214, stores the following programs, modules, and data structures, or a subset thereof:
      • an operating system 216, which includes procedures for handling various basic system services and for performing hardware dependent tasks;
      • a communications module 218, which is used for connecting the client device 102 to other computers and devices via the one or more communication network interfaces 204 (wired or wireless) and one or more communication networks 108, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;
      • a display module 220, which receives input from the one or more input devices 210, and generates user interface elements for display on the display device 208;
      • a web browser 104, which enables a user to communicate over a network 108 (such as the Internet) with remote computers or devices;
      • an electronic messaging application 106, which enables the user to send and receive electronic messages. In some implementations, the electronic messaging application is an email application. In some implementations, the electronic messaging application is an instant messaging application. In some implementations, the electronic messaging application 106 runs within the web browser 104 as illustrated in FIG. 1. In some implementations, the electronic messaging application 106 runs independently of a web browser 104 (e.g., a desktop application). An example of an electronic messaging application is illustrated below in FIGS. 4A-4H; and
      • application data 222, which is used by the electronic messaging application 106. The application data comprises messages 224 (e.g., email messages or instant messages) as well as tasks 226, and predefined candidate task reminders 228 for completing tasks. In some embodiments a task 226 is associated with a message 224. In some embodiments a task 226 is independent of all messages. In some embodiments, the application data 222 includes configuration data 230, such as user preferences, user history, geographic information about the user, or the state of configuration options.
  • Each of the above identified executable modules, applications, or sets of procedures may be stored in one or more of the previously mentioned memory devices and corresponds to a set of instructions for performing a function described above. The above identified modules or programs (e.g., sets of instructions) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various implementations. In some implementations, the memory 214 stores a subset of the modules and data structures identified above. Furthermore, in some embodiments, the memory 214 stores additional modules or data structures not described above.
  • Although FIG. 2 shows a client device 102, FIG. 2 is intended more as a functional description of the various features that may be present rather than as a structural schematic of the implementations described herein. In practice, and as recognized by those of ordinary skill in the art, items shown separately could be combined and some items could be separated.
  • FIG. 3 is a block diagram illustrating a server 300 that is used in a server system 110 in accordance with some embodiments. A typical server system includes many individual servers 300, which, in some instances, number in the hundreds or thousands. A server 300 typically includes one or more processing units (CPUs) 302 for executing modules, programs, or instructions stored in the memory 314 and thereby performing processing operations; one or more network or other communications interfaces 304; memory 314; and one or more communication buses 312 for interconnecting these components. In some embodiments, the communication buses 312 include circuitry (sometimes called a chipset) that interconnects and controls communications between system components. In some implementations, a server 300 includes a user interface 306, which may include a display device 308 and one or more input devices 310, such as a keyboard and a mouse.
  • In some implementations, the memory 314 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices. In some implementations, the memory 314 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. In some implementations, the memory 314 includes one or more storage devices remotely located from the CPU(s) 302. The memory 314, or alternately the non-volatile memory device(s) within memory 314, comprises a non-transitory computer readable storage medium. In some implementations, the memory 314, or the computer readable storage medium of memory 314, stores the following programs, modules, and data structures, or a subset thereof:
      • an operating system 316, which includes procedures for handling various basic system services and for performing hardware dependent tasks;
      • a communications module 318, which is used for connecting the server 300 to other computers via the one or more communication network interfaces 304 (wired or wireless), an internal network or bus 124, or other communication networks 108, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;
      • an optional display module 320, which receives input from one or more input devices 310, and generates user interface elements for display on a display device 308;
      • one or more web servers 112, which receive requests from client device 102, and returns responsive web pages, resources, or links. In some implementations, each request is logged in the database 116;
      • one or more application servers 114, which provide various applications (such as an email or other electronic messaging application) to client devices 102. In some instances, applications are provided as a set of web pages, which are delivered to client devices 102 and displayed in a web browser 104. The web pages are delivered as needed or requested. In some instances, an application is delivered to a client device 102 as a download, which is installed and run from the client device 102 outside of a web browser 104;
      • one or more databases 116, which store various data used by the modules or programs identified above. In some implementations, the database 116 includes a list of authorized users (e.g., including user names, encrypted passwords, and other relevant information about each user). The database 116 also stores user specific data 120 that is used by one or more of the applications provided by the application server. For example, some implementations store the electronic messages 224 for each user. For example, some implementations store objects 320 for each user. As another example, some implementations store user profiles 340 associated with users. In some implementations, the database 116 includes predefined candidate task reminders 122.
  • Candidate task reminders 122 and/or 228 are in any form suitable for reminding a user of a task. Moreover, it will be appreciated that FIGS. 2 and 3 collectively represent the server 300 and the client device 102 as including predefined candidate task reminders. In some implementations, only the server 300 stores predefined candidate task reminders. In some implementations, only the client device 102 stores predefined candidate task reminders. In some implementations, both the server 300 and the client device 102 store predefined candidate task reminders. In some such implementations, the server 300 and the client device 102 store the same predefined candidate task reminders. In some such implementations, the server 300 stores a first set of predefined candidate task reminders and the client device 102 stores a second set of predefined candidate task reminders, and there is no overlap between the first set of predefined candidate task reminders and the second set of predefined candidate task reminders, partial overlap between the first set of predefined candidate task reminders and the second set of predefined candidate task reminders, or complete overlap between the predefined candidate task reminders and the second set of predefined candidate task reminders. In one embodiment, the first set of predefined candidate task reminders is defined by a source independent of the user, and the second set of predefined candidate task reminders is defined by a particular user associated with a particular client device 102.
  • Each of the above identified elements in FIG. 3 may be stored in one or more of the previously mentioned memory devices. Each executable program, module, or procedure corresponds to a set of instructions for performing a function described above. The above identified modules or programs (e.g., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules are combined or otherwise re-arranged in various implementations. In some implementations, the memory 314 stores a subset of the modules and data structures identified above. Furthermore, in some embodiments, the memory 314 stores additional modules or data structures not described above.
  • Although FIG. 3 illustrates a server 300, FIG. 3 is intended more as functional illustration of the various features that may be present in a set of one or more servers rather than as a structural schematic of the implementations described herein. In practice, and as recognized by those of ordinary skill in the art, items shown separately could be combined and some items could be separated. The actual number of servers used to implement these features, and how features are allocated among them, will vary from one implementation to another, and depends in part on the amount of data traffic that the system must handle during peak usage periods as well as during average usage periods.
  • As illustrated in FIGS. 2 and 3, the functionality for an electronic messaging application may be shared between a client device 102 and a server system 110. In some implementations, after the electronic messaging application is installed on a client device 102, the majority of the subsequent processing occurs on the client device. In other implementations, the majority of the processing and data storage occurs at a server 300, and the client device 102 uses a web browser 104 to view and interact with the data. One of skill in the art recognizes that various allocations of functionality between the client device 102 and the server system 110 are possible, and some implementations support multiple configurations (e.g., based on user selection).
  • FIG. 4A illustrates features of an electronic messaging application that supports annotating a message in accordance with some implementations. FIG. 4A illustrates user interface 402, which is displayed as part of an electronic messaging application (e.g., an email application). In this example, each row in the list represents a separate object. Examples of objects includes messages, (e.g., messages 404, 408, and 414-426), message clusters (e.g., 406, 410), and task 412. The objects are all for a user associated with the user interface 402. In some embodiments, individual messages (e.g., messages 404, 408, and 414-426) are message threads, message conversations, or messages that are addressed to one or more users, including the user uniquely associated with the user interface 402.
  • In FIG. 4A, the user interface 402 is, in particular, shown to comprise at least two objects that are message clusters, cluster 406 and cluster 410. Cluster 406 is a group of electronic messages having a collective association, namely promotional material (e.g., advertisements for retail sales, newsletters from stores). As can be seen in FIG. 4A, cluster 406 comprises nine new electronic messages, and cluster 410 comprises 1 new electronic message. In some embodiments, a new electronic message refers to a message that has not been viewed, opened, acknowledged or read by the user of the electronic messaging application. Message clusters are disclosed further in U.S. patent application Ser. No. 14/145,005, entitled “Systems and Methods for Throttling Display of Electronic Messages,” filed Dec. 31, 2013, and U.S. patent application Ser. No. 14/139,205, entitled “Systems and Methods for Clustering Electronic Messages,” filed Dec. 23, 2013, each of which is hereby incorporated by reference herein in its entirety.
  • Continuing to refer to FIG. 4A, a method of annotating a message is disclosed in more detail. A plurality of messages intended for a user is analyzed to determine whether a task reminder is derivable from respective messages in the plurality of messages through processing of the respective messages, thereby deriving task reminders for at least a subset of the plurality of messages. The user interface 402 for an electronic messaging 106 application is provided. The user interface 402 includes a list of objects. One or more respective object of the objects in the list of objects represents a collapsed state of a corresponding message in the subset of the plurality of messages. In particular, user interface 402 includes object 412 from one such message. Object 412 includes a message summary 428 for the corresponding message, the task reminder 430 derived from the corresponding message, and a dismissal affordance 434. In some embodiments, object 412 further includes a confirmation affordance 432.
  • In some embodiments, rather than simply providing a task reminder 430, potential (candidate) task assists are provided to the user. For example, in some embodiments one or more entities associated with the task reminder 430 are identified using at least the description of the task reminder 430 and, optionally, geographic information about the user. In some instances, an entity is deemed to be associated with a task reminder 430 when the entity is capable of performing an action identified in the task reminder 430 and the entity services such actions from users that are at or from the location identified in the geographical information associated with a user. Information for performing the action with at least one respective entity in the one or more entities based upon an identity of the entity is identified and formatted for use by the user. For example, a task reminder “renew drivers license” coupled with geographic information about the user (e.g., the user's home address or home GPS coordinates) is used to determine the correct department of motor vehicles website to suggest to the user. In one example, the user's geographic information identifies Daly City, Calif. and the Daly City office of the California Department of Motor Vehicles is identified as the information for performing the action of renewing a driver's license. In this example, the URL for the Daly City office of the California Department of Motor Vehicles is formatted for use by the user. In another example, the user's geographic information identifies Daly City, Calif. and the California URL for the California Department of Motor Vehicles is identified as the information 430 for performing the action of renewing a driver's license. In this example, the California URL for the California Department of Motor Vehicles is formatted for use by the user. In some embodiments, the task assist provides a URL, phone number, address, map, or other form of information for accomplishing the task. In some embodiments, the task is not associated with an entity but rather is an event or action unaffiliated with an entity. In one such example, the task reminder 430 is “study for math exam” and the task assist is a URL to the current chapter of a math reference that is to be reviewed in preparation for the math examination. In some embodiments, the task assist information is obtained from a source distinct from the plurality of messages intended for a user, for instance a public or private knowledge graph, the Internet, or other electronically accessible information sources.
  • In some embodiments, rather than simply providing a task reminder 430, one or more task postponement options are provided in accordance with some implementations. For instance, some implementations provide a “pick date & time” task postponement option which allows a user to specify a date and time after the present time in which to redisplay the task reminder 430. Some implementations provide a “pick place” option, which allows a user to designate a place when the task reminder 430 will reappear. Some implementations include predefined and/or user-defined place names, which may be correlated with GPS coordinates or other location identifiers. For example, a user may identify a “home” location, and when the user (e.g., the user's smart phone) reaches home, the message is displayed in the message list. In some implementations, a source distinct from the messages received by the user, such as a database at the server system 110, includes a table of predefined locations. The predefined locations may include single independent locations (e.g., the LAX airport), or a set of locations that are grouped together (e.g., a chain of sporting goods stores). When a “pick place” task postponement option is selected options are displayed to the user for selecting a location (e.g., a drop-down list). When a user accesses the messaging application from two or more devices, some implementations will display the postponed message when any of the devices are at the designated location (and the messaging application is running) In other implementations, postponing to a specific place considers only the current device that the user is accessing. Some implementations support an option to postpone task reminder 430 until the messaging application is being accessed from a specific device. Some implementations provide a “for duration” option, which allows the user to specify the amount of the delay rather than a specific time when the postponement expires. Some implementations include one or more postponement options that are pulled out of the task reminder 430, such as postponing until certain place specified in the task reminder is reached, or postponing until a certain location specified in the task reminder is reached.
  • In some embodiments, when a postponed task reminder 430 reappears it is in the form of an object that represents a collapsed state of a corresponding message in the subset of the plurality of messages such as object 412 of FIG. 4A. Object 412 includes a message summary 428 for the corresponding message, the task reminder 430 derived from the corresponding message and a dismissal affordance 434. In other embodiments, the redisplayed task reminder is displayed independently of any object that represents a particular message.
  • In some instances, the task reminder is inferred from the electronic message corresponding to the object. Ways to infer a task reminder from a message object are disclosed in U.S. patent application Ser. No. 14/161,368, entitled “Identifying Tasks in Messages,” filed Jan. 22, 2014, which is hereby incorporated by reference herein in its entirety. In some embodiments a message is processed in order to determine whether the message includes a task reminder by determining, for each respective predefined candidate task reminder in a plurality of predefined task reminders, whether there is a match between the predefined candidate task reminder and all or a portion of the respective message. In some embodiments, this match between the predefined candidate task reminder and all or a portion of the respective message includes natural language processing of the all or a portion of the respective message as disclosed in U.S. patent application Ser. No. 14/161,368, entitled “Identifying Tasks in Messages,” filed Jan. 22, 2014, which is hereby incorporated by reference herein in its entirety. In some embodiments, the plurality of predefined candidate task reminders is stored in database 122 of server system 110. In some embodiments, the plurality of predefined candidate task reminders is stored in application data 222 (as candidate task reminders 228) on the client device 102 of a user. In some embodiments, each predefined candidate task is a rule, heuristic, phrase, or other expression that is matched or applied against messages intended for a user to see if there is a match between the predefined candidate task and all or a portion of the message. In some embodiments, a predefined candidate task reminder is provided by a user. In this way, the user can influence the format and types of task reminders that are generated for the user when messages are received. In some embodiments, a predefined candidate task reminder in the plurality of candidate task reminders is from a source other than (external to, independent of) the user. For instance, in some embodiments there is a library of standard or common predefined candidate task reminder formats that are provided for matching. In some embodiments the plurality of predefined candidate task reminders includes some predefined candidate task reminders provided by the user and some predefined candidate task reminders from a source independent of the user. When a match is deemed to have been found, the object corresponding to the message that had a match is updated to include the candidate task reminder derived from the corresponding message. Thus, in the case of FIG. 4A, the task reminder “Don't forget to take the trash out” is a task reminder that was derived from a corresponding message.
  • At this stage, it will be appreciated that the object 412 includes a task reminder 430 derived from a message, without human intervention. Thus the user (the recipient of the corresponding message) has not yet confirmed that the task reminder 430 is necessary, wanted or relevant. It is for this reason that one or more affordances are provided. In some embodiments, if the user wants to keep the message, the optional confirmation affordance 432 is selected. In some embodiments, a confirmation affordance 432 is not provided. If the user does not want to keep the message, the dismissal affordance 434 is selected. Specifically, in those embodiments that do have a confirmation affordance 432, responsive to user selection of the confirmation affordance 432, the confirmation affordance 432 and the dismissal affordance 434 are removed from the respective object as illustrated in FIG. 4B. Alternatively, responsive to user selection of the dismissal affordance 434, the task reminder 430, the confirmation affordance 432 (if present), and the dismissal affordance 434 are all removed from object 412 as illustrated in FIG. 4C.
  • Referring back to FIG. 4A, confirmation affordance 434 and dismissal affordance 432 are seen to occupy different portions of the respective object 412. That is, they are discrete and different affordances. However, in other embodiments, the confirmation affordance and the dismissal affordance are different states of a single affordance that occupies a single portion of the respective object. For example, a two-state radio button, switch or other type of affordance that allows the user to either accept or reject the task reminder 430. In still other embodiments, there are three affordances provided: accept, dismiss, and edit. In some such instances, each of these three affordances occupies a different portion of the object. In other such instances, one or more of these options is built into a multi-state object that allows the user to select one of the options.
  • Advantageously with reference to FIG. 4D, in some embodiments, user interface 402 facilitates user editing of task reminders. This is beneficial for task reminders generated without human intervention using the methods of the present disclosure. In some embodiments, the use case of FIG. 4D in which the task reminder is editable, is reached by selection of the task reminder 430 illustrated in FIG. 4A. In some embodiments it is reached by selection of message summary 428 of FIG. 4A. In some embodiments it is reached by selection of anywhere within object 412 other than affordances 432 and 434 of FIG. 4A. In some embodiments it is reached by selection of a designated “edit” affordance that is not shown in FIG. 4A.
  • Turning to FIG. 4D it is seen that, responsive to user selection of a task reminder of an object in the list of objects, for example by any of the ways described above, the collapsed state of the message corresponding to the object is replaced with an expanded state of the corresponding message by pushing any objects in the list of objects that are above the object 412 representing the corresponding message (e.g., objects 404, 406, 408, and 410) up and pushing any objects in the list of objects that are below the object 412 representing the corresponding message (e.g., objects 414, 416, 418, 420, 422, 424, and 426) down. User edits to the task reminder are then facilitated. FIG. 4D further illustrates how, in some embodiments, the message corresponding to an object is part of a chain of messages 460 and the expanded state of the message includes the chain of messages.
  • In some embodiments, as illustrated in FIG. 4D, when the user begins to edit the task reminder, the optional confirmation 432 (if present) and dismissal 434 affordances are removed. In some embodiments, turning to FIG. 4E, when the user selects suggested task reminder editing as described above, the suggested task reminder 430 is repopulated with a generic task reminder such as “Remind me to . . . ”. In some embodiments, turning to FIGS. 4F and 4G, when the user types a task reminder, the generic task reminder is removed and replaced with the task reminder provided by the user. As further illustrated in FIGS. 4F and 4G, a save affordance 450 is provided when the user edits the task reminder 430. Referring to FIG. 4H, responsive to user selection of the save affordance the expanded state of the corresponding message is replaced with the original collapsed state of the corresponding message by pushing any objects in the list of objects that are above the object representing the message (e.g., objects 404, 406, 408, and 410) down and pushing any objects in the list of objects that are below the object representing the message (e.g., objects 414, 416, 418, 420, 422, 424, and 426) up in the user interface and removing the save affordance 450, thereby creating a task.
  • Referring once again to FIG. 4D, the illustrated task reminder 430 is an instance where the task reminder is exclusively taken from the respective message. There, the message is a message chain and text of message 460-3 includes the phrase “Don't forget to take the trash out” which is used exclusively to form the task reminder 430. In other embodiments, the task reminder 430 includes one or more words that are taken from a source independent of the respective message and one or more words that are taken from the respective message. In other words, in some embodiments, in generating a task reminder 430 from a corresponding message without human intervention, some of the words of the task reminder 430 are from the corresponding message and some of the words are from a source independent of the respective messages. In one such example, words from the respective reminder are reformatted into a standard expression, for instance “Don't forget to take the trash out” is reformatted to “Reminder—take the trash out.” Here the word “reminder” is taken from a task reminder formatting rule, which is an example of a source independent of the respective message. Additional examples of sources independent of the respective message include inserting current or future dates into the task reminder, inserting locations, places of business, opening and closing times of entities referenced by the corresponding message, and current flight and arrival times. For instance, consider the case where a user receives a message “I am arriving on flight 10493, please pick me up.” Responsive to this message, the current arrival time of flight 10493 is determined from a source independent of the respective message and the original message is annotated to include the task reminder “Pick Mom up at 9:00 PM (flight arrives at 8:45 PM)” which the user may then accept, edit, or decline as described in the present disclosure.
  • Referring to FIG. 2, a display device 208 is inherently limited in size. Accordingly, the number of objects displayed in the user interface 402 is necessarily limited. Scrolling may be necessary for a user to get to a desired message. If the number of messages in the message list is small enough, all of the messages may be able to be displayed.
  • FIGS. 5A-5C provide a flowchart of a process 500, performed by a computing device, for annotating a message (502). The method is performed (504) at a computing device 102 and/or 110 having one or more processors and memory. The memory stores (504) one or more programs configured for execution by the one or more processors.
  • A plurality of messages intended for a user is analyzed to determine whether a task reminder is derivable from respective messages in the plurality of messages through processing of the respective messages (506). In this way task reminders for at least a subset of the plurality of messages are generated (506). In some embodiments, each of the messages is for one or more recipients and each of the messages include the user as a common recipient. In some embodiments, some or all of the messages in the plurality of messages are sent at different times to the user.
  • In some embodiments, the analyzing of a respective message in the plurality of messages comprises determining, for each respective predefined candidate task reminder in a plurality of predefined task reminders, whether there is a match between the predefined candidate task reminder and all or a portion of the respective message, where when a match between respective predefined candidate task reminder and all or a portion of the respective message is found, the respective predefined candidate task reminder is deemed to be the task reminder for the respective message (508). In some embodiments, the match between the predefined candidate task reminder and all or a portion of the respective message includes natural language processing of all or a portion of the respective message (510). In some embodiments, a predefined candidate task reminder in the plurality of candidate task reminders is provided by the user (512). In some embodiments, a predefined candidate task reminder in the plurality of candidate task reminders is provided by a source independent of the user (514).
  • A user interface for an electronic messaging application is provided (508). The user interface includes a list of objects. One or more respective object of the objects in the list of objects represents a collapsed state of a corresponding message in the subset of the plurality of messages and comprises: (i) a message summary for the corresponding message, (ii) the task reminder derived from the corresponding message, and a dismissal affordance (516) In some embodiments the collapsed state further comprises a confirmation affordance. In some embodiments, the corresponding message is part of or comprises a chain of messages and the expanded state of the corresponding message includes the chain of messages (518).
  • In some embodiments, an object in the list of objects represents a plurality of messages with a common topic (520). For example, in some embodiments an object represents a cluster of messages, and the cluster of messages comprises a plurality of messages sharing a common set of characteristics that meet a first predefined criterion (e.g., clustering criterion) and the plurality of messages are sent at different times covering the same topic and each having the user as a common recipient.
  • In some embodiments, each object in the list of objects is one of a task, a message, or a plurality of messages (e.g., a cluster of messages or a conversation) (522). In some embodiments, some objects in the list of objects are one of a task, a message, or a plurality of messages (e.g., a cluster of messages or a conversation), and there are other types of objects in the list as well.
  • In some embodiments, the method further comprises, responsive to user selection of a task reminder of an object in the list of objects, replacing the collapsed state of the message corresponding to the object with an expanded state of the corresponding message by pushing any objects in the list of objects that are above the object representing the corresponding message up and pushing any objects in the list of objects that are below the object representing the corresponding message down in the user interface. Further, the confirmation affordance (if present) and the dismissal affordance are removed and user editing of the task reminder is facilitated thereby creating a task (524). In some embodiments, the method further comprises providing a save affordance when the user edits the task reminder and responsive to user selection of the save affordance, replacing the expanded state of the corresponding message with the collapsed state of the corresponding message by pushing any objects in the list of objects that are above the object representing the message down and pushing any objects in the list of objects that are below the object representing the message up in the user interface and removing the save affordance (526).
  • In some embodiments, the task reminder that is generated (e.g., without user edits) includes one or more words that are taken from a source independent of the respective message and one or more words that are taken from the respective message (528). In some embodiments, the task reminder is exclusively taken from the respective message (530).
  • In some embodiments that include a confirmation affordance, the confirmation affordance and the dismissal affordance occupy different portions of the respective object (532). In some embodiments, the confirmation affordance and the dismissal affordance are different states of a single affordance that occupies a single portion of the respective object (534). In some embodiments, there is no confirmation affordance.
  • In the method, in embodiments that include the confirmation affordance, responsive to user selection of the confirmation affordance, the confirmation and dismissal affordance(s) are removed from the respective object (536). Furthermore, responsive to user selection of the dismissal affordance, the task reminder, the confirmation affordance (if present), and the dismissal affordance are removed from the respective object (538).
  • The terminology used in the description of the invention herein is for the purpose of describing particular implementations only and is not intended to be limiting of the invention. As used in the description of the invention and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof.
  • The foregoing description, for purpose of explanation, has been described with reference to specific implementations. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations described herein were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various implementations with various modifications as are suited to the particular use contemplated.

Claims (21)

What is claimed is:
1. A method of annotating a message, comprising:
at a computing device having one or more processors and memory storing one or more programs configured for execution by the one or more processors:
analyzing a plurality of messages intended for a user to determine whether a task reminder is derivable from respective messages in the plurality of messages through processing of the respective messages, thereby deriving task reminders for at least a subset of the plurality of messages;
providing a user interface for an electronic messaging application, wherein the user interface includes a list of objects, one or more respective object of the objects in the list of objects representing a collapsed state of a corresponding message in the subset of the plurality of messages and comprising: (i) a message summary for the corresponding message, (ii) the task reminder derived from the corresponding message, (iii) a dismissal affordance; and
responsive to user selection of the dismissal affordance, removing the task reminder and the dismissal affordance from the respective object.
2. The method of claim 1, further comprising:
responsive to user selection of a task reminder of an object in the list of objects:
replacing the collapsed state of the message corresponding to the object with an expanded state of the corresponding message by pushing any objects in the list of objects that are above the object representing the corresponding message up and pushing any objects in the list of objects that are below the object representing the corresponding message down in the user interface;
removing the dismissal affordance; and
facilitating user edits to the task reminder thereby creating a task.
3. The method of claim 2, the method further comprising:
providing a save affordance when the user edits the task reminder; and
responsive to user selection of the save affordance:
replacing the expanded state of the corresponding message with the collapsed state of the corresponding message by pushing any objects in the list of objects that are above the object representing the message down and pushing any objects in the list of objects that are below the object representing the message up in the user interface, and
removing the save affordance.
4. The method of claim 2, wherein the corresponding message is part of a chain of messages and the expanded state of the corresponding message includes the chain of messages.
5. The method of claim 1, wherein an object in the list of objects represents a plurality of messages with a common topic.
6. The method of claim 1, wherein each object in the list of objects is one of a task, a message, or a plurality of messages.
7. The method of claim 1 wherein the task reminder includes one or more words that are taken from a source independent of the respective message and one or more words that are taken from the respective message.
8. The method of claim 1 wherein the task reminder is exclusively taken from the respective message.
9. The method of claim 1, wherein the respective object further comprises a confirmation affordance, wherein
the confirmation affordance and the dismissal affordance occupy different portions of the respective object; the method further comprising:
responsive to user selection of the confirmation affordance, removing the task reminder and the dismissal affordance from the respective object.
10. The method of claim 1, wherein the analyzing of a respective message in the plurality of messages comprises:
determining, for each respective predefined candidate task reminder in a plurality of predefined task reminders, whether there is a match between the predefined candidate task reminder and all or a portion of the respective message, wherein
when a match between respective predefined candidate task reminder and all or a portion of the respective message is found, the respective predefined candidate task reminder is deemed to be the task reminder for the respective message.
11. The method of claim 10, wherein the match between the predefined candidate task reminder and all or a portion of the respective message includes natural language processing of all or a portion of the respective message.
12. The method of claim 10, wherein a predefined candidate task reminder in the plurality of candidate task reminders is provided by the user.
13. The method of claim 10, wherein a predefined candidate task reminder in the plurality of candidate task reminders is provided by a source independent of the user.
14. The method of claim 1, the method further comprising:
determining a task assist based at least upon the task reminder, and wherein the collapsed state of the corresponding message further comprises the task assist.
15. The method of claim 14, wherein the task assist is a phone number, URL, address, or map location associated with the task reminder, and wherein the task assist is obtained from a source distinct from the plurality of messages.
16. A computing device, comprising:
one or more processors;
memory; and
one or more programs stored in the memory configured for execution by the one or more processors, the one or more programs comprising instructions for:
analyzing a plurality of messages intended for a user to determine whether a task reminder is derivable from respective messages in the plurality of messages through processing of the respective messages, thereby deriving task reminders for at least a subset of the plurality of messages;
providing a user interface for an electronic messaging application, wherein the user interface includes a list of objects, one or more respective object of the objects in the list of objects representing a collapsed state of a corresponding message in the subset of the plurality of messages and comprising: (i) a message summary for the corresponding message, (ii) the task reminder derived from the corresponding message, (iii) a dismissal affordance;
; and
responsive to user selection of the dismissal affordance, removing the task reminder and the dismissal affordance from the respective object.
17. The computing device of claim 15, wherein the one or more programs further comprise instructions for:
responsive to user selection of a task reminder of an object in the list of objects:
replacing the collapsed state of the message corresponding to the object with an expanded state of the corresponding message by pushing any objects in the list of objects that are above the object representing the corresponding message up and pushing any objects in the list of objects that are below the object representing the corresponding message down in the user interface;
removing the dismissal affordance; and
allowing the user to edit the task reminder thereby creating a task.
18. The computing device of claim 16, wherein the one or more programs further comprise instructions for providing a save affordance when the user edits the task reminder, wherein
responsive to user selection of the save affordance,
replacing the expanded state of the corresponding message with the collapsed state of the corresponding message by pushing any objects in the list of objects that are above the object representing the message down and pushing any objects in the list of objects that are below the object representing the message up in the user interface; and
removing the save affordance.
19. The computing device of claim 16, wherein the corresponding message is part of a chain of messages and the expanded state of the message includes the chain of messages.
20. The computing device of claim 15, wherein an object in the list of objects represents a plurality of messages with a common topic.
21. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computing device having one or more processors and memory, the one or more programs comprising instructions for:
analyzing a plurality of messages intended for a user to determine whether a task reminder is derivable from respective messages in the plurality of messages through processing of the respective messages, thereby deriving task reminders for at least a subset of the plurality of messages;
providing a user interface for an electronic messaging application, wherein the user interface includes a list of objects, one or more respective object of the objects in the list of objects representing a collapsed state of a corresponding message in the subset of the plurality of messages and comprising: (i) a message summary for the corresponding message, (ii) the task reminder derived from the corresponding message, (iii) a dismissal affordance;
and
responsive to user selection of the dismissal affordance, removing the task reminders and the dismissal affordance from the respective object.
US14/473,590 2014-08-29 2014-08-29 Systems and methods for providing suggested reminders Active 2035-03-12 US9990610B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/473,590 US9990610B2 (en) 2014-08-29 2014-08-29 Systems and methods for providing suggested reminders

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/473,590 US9990610B2 (en) 2014-08-29 2014-08-29 Systems and methods for providing suggested reminders

Publications (2)

Publication Number Publication Date
US20160062605A1 true US20160062605A1 (en) 2016-03-03
US9990610B2 US9990610B2 (en) 2018-06-05

Family

ID=55402486

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/473,590 Active 2035-03-12 US9990610B2 (en) 2014-08-29 2014-08-29 Systems and methods for providing suggested reminders

Country Status (1)

Country Link
US (1) US9990610B2 (en)

Cited By (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170358304A1 (en) * 2016-06-11 2017-12-14 Apple Inc. Intelligent task discovery
US20180004731A1 (en) * 2016-06-30 2018-01-04 International Business Machines Corporation Task-oriented messaging system
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10354652B2 (en) 2015-12-02 2019-07-16 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10381016B2 (en) 2008-01-03 2019-08-13 Apple Inc. Methods and apparatus for altering audio output signals
US10390213B2 (en) 2014-09-30 2019-08-20 Apple Inc. Social reminders
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US10403283B1 (en) 2018-06-01 2019-09-03 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10417344B2 (en) 2014-05-30 2019-09-17 Apple Inc. Exemplar-based natural language processing
US10417405B2 (en) 2011-03-21 2019-09-17 Apple Inc. Device access using voice authentication
US10431204B2 (en) 2014-09-11 2019-10-01 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10438595B2 (en) 2014-09-30 2019-10-08 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10453443B2 (en) 2014-09-30 2019-10-22 Apple Inc. Providing an indication of the suitability of speech recognition
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
US10497365B2 (en) 2014-05-30 2019-12-03 Apple Inc. Multi-command single utterance input method
US10529332B2 (en) 2015-03-08 2020-01-07 Apple Inc. Virtual assistant activation
US10553215B2 (en) 2016-09-23 2020-02-04 Apple Inc. Intelligent automated assistant
US10580409B2 (en) 2016-06-11 2020-03-03 Apple Inc. Application integration with a digital assistant
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10643611B2 (en) 2008-10-02 2020-05-05 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10657961B2 (en) 2013-06-08 2020-05-19 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10657966B2 (en) 2014-05-30 2020-05-19 Apple Inc. Better resolution when referencing to concepts
US10681212B2 (en) 2015-06-05 2020-06-09 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10684703B2 (en) 2018-06-01 2020-06-16 Apple Inc. Attention aware virtual assistant dismissal
US10692504B2 (en) 2010-02-25 2020-06-23 Apple Inc. User profiling for voice input processing
US10699717B2 (en) 2014-05-30 2020-06-30 Apple Inc. Intelligent assistant for home automation
US10714117B2 (en) 2013-02-07 2020-07-14 Apple Inc. Voice trigger for a digital assistant
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10733993B2 (en) 2016-06-10 2020-08-04 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10741181B2 (en) 2017-05-09 2020-08-11 Apple Inc. User interface for correcting recognition errors
US10741185B2 (en) 2010-01-18 2020-08-11 Apple Inc. Intelligent automated assistant
US10748546B2 (en) 2017-05-16 2020-08-18 Apple Inc. Digital assistant services based on device capabilities
US10769385B2 (en) 2013-06-09 2020-09-08 Apple Inc. System and method for inferring user intent from speech inputs
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10930282B2 (en) 2015-03-08 2021-02-23 Apple Inc. Competing devices responding to voice triggers
US10942702B2 (en) 2016-06-11 2021-03-09 Apple Inc. Intelligent device arbitration and control
US10942703B2 (en) 2015-12-23 2021-03-09 Apple Inc. Proactive assistance based on dialog communication between devices
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US11010127B2 (en) 2015-06-29 2021-05-18 Apple Inc. Virtual assistant for media playback
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11023513B2 (en) 2007-12-20 2021-06-01 Apple Inc. Method and apparatus for searching using an active ontology
US11048473B2 (en) 2013-06-09 2021-06-29 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US11070949B2 (en) 2015-05-27 2021-07-20 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on an electronic device with a touch-sensitive display
US11069336B2 (en) 2012-03-02 2021-07-20 Apple Inc. Systems and methods for name pronunciation
US11069347B2 (en) 2016-06-08 2021-07-20 Apple Inc. Intelligent automated assistant for media exploration
US11120372B2 (en) 2011-06-03 2021-09-14 Apple Inc. Performing actions associated with task items that represent tasks to perform
US11127397B2 (en) 2015-05-27 2021-09-21 Apple Inc. Device voice control
US11126400B2 (en) 2015-09-08 2021-09-21 Apple Inc. Zero latency digital assistant
US11133008B2 (en) 2014-05-30 2021-09-28 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11217251B2 (en) 2019-05-06 2022-01-04 Apple Inc. Spoken notifications
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US11231904B2 (en) 2015-03-06 2022-01-25 Apple Inc. Reducing response latency of intelligent automated assistants
US11237797B2 (en) 2019-05-31 2022-02-01 Apple Inc. User activity shortcut suggestions
US11269678B2 (en) 2012-05-15 2022-03-08 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
US11301819B2 (en) 2018-09-07 2022-04-12 International Business Machines Corporation Opportunistic multi-party reminders based on sensory data
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11314370B2 (en) 2013-12-06 2022-04-26 Apple Inc. Method for extracting salient dialog usage from live data
US11350253B2 (en) 2011-06-03 2022-05-31 Apple Inc. Active transport based notifications
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11380310B2 (en) 2017-05-12 2022-07-05 Apple Inc. Low-latency intelligent automated assistant
US11388291B2 (en) 2013-03-14 2022-07-12 Apple Inc. System and method for processing voicemail
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
US11405466B2 (en) 2017-05-12 2022-08-02 Apple Inc. Synchronization and task delegation of a digital assistant
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11423886B2 (en) 2010-01-18 2022-08-23 Apple Inc. Task flow identification based on user intent
US20220291790A1 (en) * 2016-11-17 2022-09-15 Meta Platforms, Inc. Systems and methods for sharing content
US11455081B2 (en) * 2019-08-05 2022-09-27 Snap Inc. Message thread prioritization interface
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11468282B2 (en) 2015-05-15 2022-10-11 Apple Inc. Virtual assistant in a communication session
US11467802B2 (en) 2017-05-11 2022-10-11 Apple Inc. Maintaining privacy of personal information
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US11495218B2 (en) 2018-06-01 2022-11-08 Apple Inc. Virtual assistant operation in multi-device environments
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11500672B2 (en) 2015-09-08 2022-11-15 Apple Inc. Distributed personal assistant
US11516537B2 (en) 2014-06-30 2022-11-29 Apple Inc. Intelligent automated assistant for TV user interactions
US11526368B2 (en) 2015-11-06 2022-12-13 Apple Inc. Intelligent automated assistant in a messaging environment
US11532306B2 (en) 2017-05-16 2022-12-20 Apple Inc. Detecting a trigger of a digital assistant
US11580990B2 (en) 2017-05-12 2023-02-14 Apple Inc. User-specific acoustic models
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11656884B2 (en) 2017-01-09 2023-05-23 Apple Inc. Application integration with a digital assistant
US11657813B2 (en) 2019-05-31 2023-05-23 Apple Inc. Voice identification in digital assistant systems
US11671920B2 (en) 2007-04-03 2023-06-06 Apple Inc. Method and system for operating a multifunction portable electronic device using voice-activation
US11696060B2 (en) 2020-07-21 2023-07-04 Apple Inc. User identification using headphones
US11765209B2 (en) 2020-05-11 2023-09-19 Apple Inc. Digital assistant hardware abstraction
US11790914B2 (en) 2019-06-01 2023-10-17 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11798547B2 (en) 2013-03-15 2023-10-24 Apple Inc. Voice activated device for use with a voice-based digital assistant
US11809483B2 (en) 2015-09-08 2023-11-07 Apple Inc. Intelligent automated assistant for media search and playback
US11838734B2 (en) 2020-07-20 2023-12-05 Apple Inc. Multi-device audio adjustment coordination
US11853536B2 (en) 2015-09-08 2023-12-26 Apple Inc. Intelligent automated assistant in a media environment
US11914848B2 (en) 2020-05-11 2024-02-27 Apple Inc. Providing relevant data items based on context
US11928604B2 (en) 2005-09-08 2024-03-12 Apple Inc. Method and apparatus for building an intelligent automated assistant
US12010262B2 (en) 2013-08-06 2024-06-11 Apple Inc. Auto-activating smart responses based on activities from remote devices
US12014118B2 (en) 2017-05-15 2024-06-18 Apple Inc. Multi-modal interfaces having selection disambiguation and text modification capability
US12051413B2 (en) 2015-09-30 2024-07-30 Apple Inc. Intelligent device identification
US12197817B2 (en) 2016-06-11 2025-01-14 Apple Inc. Intelligent device arbitration and control
US12223282B2 (en) 2016-06-09 2025-02-11 Apple Inc. Intelligent automated assistant in a home environment
US12301635B2 (en) 2020-05-11 2025-05-13 Apple Inc. Digital assistant hardware abstraction
US12307423B2 (en) 2021-09-14 2025-05-20 Apple Inc. Digital assistant-enabled daily briefings

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101769423B1 (en) * 2016-11-08 2017-08-22 최재호 Reminder method and apparatus based on chatting room
US11178093B2 (en) * 2019-04-12 2021-11-16 Google Llc Inter-operative message notification agent
US11924153B2 (en) * 2020-12-31 2024-03-05 Snap Inc. Messaging user interface element with reminders
US11947902B1 (en) 2023-03-03 2024-04-02 Microsoft Technology Licensing, Llc Efficient multi-turn generative AI model suggested message generation
US12282731B2 (en) * 2023-03-03 2025-04-22 Microsoft Technology Licensing, Llc Guardrails for efficient processing and error prevention in generating suggested messages
US11962546B1 (en) 2023-03-03 2024-04-16 Microsoft Technology Licensing, Llc Leveraging inferred context to improve suggested messages

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076037A1 (en) * 2003-10-02 2005-04-07 Cheng-Chung Shen Method and apparatus for computerized extracting of scheduling information from a natural language e-mail
US20050138552A1 (en) * 2003-12-22 2005-06-23 Venolia Gina D. Clustering messages
US20070229517A1 (en) * 2006-03-31 2007-10-04 Research In Motion Limited Snooze support for event reminders
US20090319911A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Synchronized conversation-centric message list and message reading pane
US20110124323A1 (en) * 2009-11-17 2011-05-26 Tip Solutuions, Inc. Communication management features
US20120311585A1 (en) * 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
US20130110940A1 (en) * 2011-10-27 2013-05-02 Research In Motion Limited Setting Reminders From An Instant Messaging Application
US20130125063A1 (en) * 2011-11-11 2013-05-16 Jongwoo LEE Dynamic and local management of hierarchical discussion thread data
US20140135036A1 (en) * 2012-11-13 2014-05-15 International Business Machines Corporation Proximity Based Reminders
US20150212701A1 (en) * 2014-01-30 2015-07-30 Honeywell International Inc. Systems and methods for displaying a datalink message log on a forward field-of-view display

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW447221B (en) * 1998-08-26 2001-07-21 United Video Properties Inc Television message system
US6272532B1 (en) * 1998-12-02 2001-08-07 Harold F. Feinleib Electronic reminder system with universal email input
US20030097361A1 (en) * 1998-12-07 2003-05-22 Dinh Truong T Message center based desktop systems
US7155419B2 (en) * 2000-04-20 2006-12-26 Agreenet Agreement management system and method
US6886139B2 (en) * 2001-10-01 2005-04-26 Yadong Liu Method and apparatus for managing infant care
AU2003201491A1 (en) 2002-01-08 2003-07-24 Sap Aktiengesellschaft Enhanced email management system
US7721228B2 (en) * 2003-08-05 2010-05-18 Yahoo! Inc. Method and system of controlling a context menu
US7231375B2 (en) 2003-10-10 2007-06-12 Microsoft Corporation Computer aided query to task mapping
US7480863B2 (en) * 2003-11-26 2009-01-20 International Business Machines Corporation Dynamic and intelligent hover assistance
US20050160465A1 (en) * 2004-01-21 2005-07-21 United Video Properties, Inc. Interactive television system with automatic switching from broadcast media to streaming media
US8290805B2 (en) 2004-09-13 2012-10-16 Hirokazu Usui Project management system
US20060064316A1 (en) * 2004-09-23 2006-03-23 Wallace Keith M Interactive computer system in the field of family and children adoption services
US20060168025A1 (en) * 2004-12-15 2006-07-27 Jain Anuj K Electronic communication system for user's ease of read
US20080082678A1 (en) * 2005-01-16 2008-04-03 Zlango Ltd. Communications Network System and Methods for Using Same
US20070124400A1 (en) * 2005-11-30 2007-05-31 Digital River, Inc. Sub Accounts System and Method
US7385875B2 (en) * 2006-04-03 2008-06-10 Research In Motion Limited Dismiss all event reminders
US8200762B2 (en) * 2006-06-01 2012-06-12 Aol Inc. Displaying complex messaging threads into a single display
US20090037530A1 (en) * 2007-07-31 2009-02-05 Christopher Lee Bennetts Media broadcasting system
JP2009071576A (en) * 2007-09-13 2009-04-02 Ricoh Co Ltd Access control method, access controller, and image distribution system
US20090119678A1 (en) * 2007-11-02 2009-05-07 Jimmy Shih Systems and methods for supporting downloadable applications on a portable client device
EP2243326B1 (en) * 2008-01-30 2018-10-24 Google LLC Notification of mobile device events
US7889101B2 (en) * 2008-04-14 2011-02-15 Alpine Electronics, Inc Method and apparatus for generating location based reminder message for navigation system
US20100033433A1 (en) * 2008-08-08 2010-02-11 Dell Products, Lp Display system and method within a reduced resource information handling system
US8832201B2 (en) * 2008-08-18 2014-09-09 International Business Machines Corporation Method, system and program product for providing selective enhanced privacy and control features to one or more portions of an electronic message
US20100246791A1 (en) * 2009-03-24 2010-09-30 T-Mobile Usa, Inc. Calendar-based return communication
US9098834B2 (en) 2009-12-23 2015-08-04 Oracle International Corporation Task management using electronic mail

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076037A1 (en) * 2003-10-02 2005-04-07 Cheng-Chung Shen Method and apparatus for computerized extracting of scheduling information from a natural language e-mail
US20050138552A1 (en) * 2003-12-22 2005-06-23 Venolia Gina D. Clustering messages
US20070229517A1 (en) * 2006-03-31 2007-10-04 Research In Motion Limited Snooze support for event reminders
US20090319911A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Synchronized conversation-centric message list and message reading pane
US20110124323A1 (en) * 2009-11-17 2011-05-26 Tip Solutuions, Inc. Communication management features
US20120311585A1 (en) * 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
US20130110940A1 (en) * 2011-10-27 2013-05-02 Research In Motion Limited Setting Reminders From An Instant Messaging Application
US20130125063A1 (en) * 2011-11-11 2013-05-16 Jongwoo LEE Dynamic and local management of hierarchical discussion thread data
US20140135036A1 (en) * 2012-11-13 2014-05-15 International Business Machines Corporation Proximity Based Reminders
US20150212701A1 (en) * 2014-01-30 2015-07-30 Honeywell International Inc. Systems and methods for displaying a datalink message log on a forward field-of-view display

Cited By (207)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11928604B2 (en) 2005-09-08 2024-03-12 Apple Inc. Method and apparatus for building an intelligent automated assistant
US11671920B2 (en) 2007-04-03 2023-06-06 Apple Inc. Method and system for operating a multifunction portable electronic device using voice-activation
US11979836B2 (en) 2007-04-03 2024-05-07 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US11023513B2 (en) 2007-12-20 2021-06-01 Apple Inc. Method and apparatus for searching using an active ontology
US10381016B2 (en) 2008-01-03 2019-08-13 Apple Inc. Methods and apparatus for altering audio output signals
US10643611B2 (en) 2008-10-02 2020-05-05 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US11348582B2 (en) 2008-10-02 2022-05-31 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US11900936B2 (en) 2008-10-02 2024-02-13 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10741185B2 (en) 2010-01-18 2020-08-11 Apple Inc. Intelligent automated assistant
US12165635B2 (en) 2010-01-18 2024-12-10 Apple Inc. Intelligent automated assistant
US12087308B2 (en) 2010-01-18 2024-09-10 Apple Inc. Intelligent automated assistant
US11423886B2 (en) 2010-01-18 2022-08-23 Apple Inc. Task flow identification based on user intent
US10692504B2 (en) 2010-02-25 2020-06-23 Apple Inc. User profiling for voice input processing
US10417405B2 (en) 2011-03-21 2019-09-17 Apple Inc. Device access using voice authentication
US11120372B2 (en) 2011-06-03 2021-09-14 Apple Inc. Performing actions associated with task items that represent tasks to perform
US11350253B2 (en) 2011-06-03 2022-05-31 Apple Inc. Active transport based notifications
US11069336B2 (en) 2012-03-02 2021-07-20 Apple Inc. Systems and methods for name pronunciation
US11269678B2 (en) 2012-05-15 2022-03-08 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US11321116B2 (en) 2012-05-15 2022-05-03 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US10978090B2 (en) 2013-02-07 2021-04-13 Apple Inc. Voice trigger for a digital assistant
US11862186B2 (en) 2013-02-07 2024-01-02 Apple Inc. Voice trigger for a digital assistant
US12009007B2 (en) 2013-02-07 2024-06-11 Apple Inc. Voice trigger for a digital assistant
US11636869B2 (en) 2013-02-07 2023-04-25 Apple Inc. Voice trigger for a digital assistant
US11557310B2 (en) 2013-02-07 2023-01-17 Apple Inc. Voice trigger for a digital assistant
US10714117B2 (en) 2013-02-07 2020-07-14 Apple Inc. Voice trigger for a digital assistant
US12277954B2 (en) 2013-02-07 2025-04-15 Apple Inc. Voice trigger for a digital assistant
US11388291B2 (en) 2013-03-14 2022-07-12 Apple Inc. System and method for processing voicemail
US11798547B2 (en) 2013-03-15 2023-10-24 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10657961B2 (en) 2013-06-08 2020-05-19 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US11727219B2 (en) 2013-06-09 2023-08-15 Apple Inc. System and method for inferring user intent from speech inputs
US10769385B2 (en) 2013-06-09 2020-09-08 Apple Inc. System and method for inferring user intent from speech inputs
US12073147B2 (en) 2013-06-09 2024-08-27 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US11048473B2 (en) 2013-06-09 2021-06-29 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US12010262B2 (en) 2013-08-06 2024-06-11 Apple Inc. Auto-activating smart responses based on activities from remote devices
US11314370B2 (en) 2013-12-06 2022-04-26 Apple Inc. Method for extracting salient dialog usage from live data
US10497365B2 (en) 2014-05-30 2019-12-03 Apple Inc. Multi-command single utterance input method
US11810562B2 (en) 2014-05-30 2023-11-07 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10699717B2 (en) 2014-05-30 2020-06-30 Apple Inc. Intelligent assistant for home automation
US11133008B2 (en) 2014-05-30 2021-09-28 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US11257504B2 (en) 2014-05-30 2022-02-22 Apple Inc. Intelligent assistant for home automation
US12118999B2 (en) 2014-05-30 2024-10-15 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10657966B2 (en) 2014-05-30 2020-05-19 Apple Inc. Better resolution when referencing to concepts
US10417344B2 (en) 2014-05-30 2019-09-17 Apple Inc. Exemplar-based natural language processing
US11699448B2 (en) 2014-05-30 2023-07-11 Apple Inc. Intelligent assistant for home automation
US11670289B2 (en) 2014-05-30 2023-06-06 Apple Inc. Multi-command single utterance input method
US10878809B2 (en) 2014-05-30 2020-12-29 Apple Inc. Multi-command single utterance input method
US12067990B2 (en) 2014-05-30 2024-08-20 Apple Inc. Intelligent assistant for home automation
US10714095B2 (en) 2014-05-30 2020-07-14 Apple Inc. Intelligent assistant for home automation
US11838579B2 (en) 2014-06-30 2023-12-05 Apple Inc. Intelligent automated assistant for TV user interactions
US11516537B2 (en) 2014-06-30 2022-11-29 Apple Inc. Intelligent automated assistant for TV user interactions
US12200297B2 (en) 2014-06-30 2025-01-14 Apple Inc. Intelligent automated assistant for TV user interactions
US10431204B2 (en) 2014-09-11 2019-10-01 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10453443B2 (en) 2014-09-30 2019-10-22 Apple Inc. Providing an indication of the suitability of speech recognition
US10438595B2 (en) 2014-09-30 2019-10-08 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10390213B2 (en) 2014-09-30 2019-08-20 Apple Inc. Social reminders
US11231904B2 (en) 2015-03-06 2022-01-25 Apple Inc. Reducing response latency of intelligent automated assistants
US10930282B2 (en) 2015-03-08 2021-02-23 Apple Inc. Competing devices responding to voice triggers
US11087759B2 (en) 2015-03-08 2021-08-10 Apple Inc. Virtual assistant activation
US11842734B2 (en) 2015-03-08 2023-12-12 Apple Inc. Virtual assistant activation
US10529332B2 (en) 2015-03-08 2020-01-07 Apple Inc. Virtual assistant activation
US12236952B2 (en) 2015-03-08 2025-02-25 Apple Inc. Virtual assistant activation
US11468282B2 (en) 2015-05-15 2022-10-11 Apple Inc. Virtual assistant in a communication session
US12154016B2 (en) 2015-05-15 2024-11-26 Apple Inc. Virtual assistant in a communication session
US12001933B2 (en) 2015-05-15 2024-06-04 Apple Inc. Virtual assistant in a communication session
US11070949B2 (en) 2015-05-27 2021-07-20 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on an electronic device with a touch-sensitive display
US11127397B2 (en) 2015-05-27 2021-09-21 Apple Inc. Device voice control
US10681212B2 (en) 2015-06-05 2020-06-09 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11010127B2 (en) 2015-06-29 2021-05-18 Apple Inc. Virtual assistant for media playback
US11947873B2 (en) 2015-06-29 2024-04-02 Apple Inc. Virtual assistant for media playback
US12204932B2 (en) 2015-09-08 2025-01-21 Apple Inc. Distributed personal assistant
US11853536B2 (en) 2015-09-08 2023-12-26 Apple Inc. Intelligent automated assistant in a media environment
US11500672B2 (en) 2015-09-08 2022-11-15 Apple Inc. Distributed personal assistant
US11550542B2 (en) 2015-09-08 2023-01-10 Apple Inc. Zero latency digital assistant
US11954405B2 (en) 2015-09-08 2024-04-09 Apple Inc. Zero latency digital assistant
US11126400B2 (en) 2015-09-08 2021-09-21 Apple Inc. Zero latency digital assistant
US11809483B2 (en) 2015-09-08 2023-11-07 Apple Inc. Intelligent automated assistant for media search and playback
US12051413B2 (en) 2015-09-30 2024-07-30 Apple Inc. Intelligent device identification
US11526368B2 (en) 2015-11-06 2022-12-13 Apple Inc. Intelligent automated assistant in a messaging environment
US11809886B2 (en) 2015-11-06 2023-11-07 Apple Inc. Intelligent automated assistant in a messaging environment
US11886805B2 (en) 2015-11-09 2024-01-30 Apple Inc. Unconventional virtual assistant interactions
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10354652B2 (en) 2015-12-02 2019-07-16 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10942703B2 (en) 2015-12-23 2021-03-09 Apple Inc. Proactive assistance based on dialog communication between devices
US11853647B2 (en) 2015-12-23 2023-12-26 Apple Inc. Proactive assistance based on dialog communication between devices
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US11069347B2 (en) 2016-06-08 2021-07-20 Apple Inc. Intelligent automated assistant for media exploration
US12223282B2 (en) 2016-06-09 2025-02-11 Apple Inc. Intelligent automated assistant in a home environment
US10733993B2 (en) 2016-06-10 2020-08-04 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US11657820B2 (en) 2016-06-10 2023-05-23 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US12175977B2 (en) 2016-06-10 2024-12-24 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US11037565B2 (en) 2016-06-10 2021-06-15 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10580409B2 (en) 2016-06-11 2020-03-03 Apple Inc. Application integration with a digital assistant
US20170358304A1 (en) * 2016-06-11 2017-12-14 Apple Inc. Intelligent task discovery
US10942702B2 (en) 2016-06-11 2021-03-09 Apple Inc. Intelligent device arbitration and control
US11809783B2 (en) 2016-06-11 2023-11-07 Apple Inc. Intelligent device arbitration and control
US11749275B2 (en) 2016-06-11 2023-09-05 Apple Inc. Application integration with a digital assistant
US12197817B2 (en) 2016-06-11 2025-01-14 Apple Inc. Intelligent device arbitration and control
US10269345B2 (en) * 2016-06-11 2019-04-23 Apple Inc. Intelligent task discovery
US11152002B2 (en) 2016-06-11 2021-10-19 Apple Inc. Application integration with a digital assistant
US12293763B2 (en) 2016-06-11 2025-05-06 Apple Inc. Application integration with a digital assistant
US20180004731A1 (en) * 2016-06-30 2018-01-04 International Business Machines Corporation Task-oriented messaging system
US10140291B2 (en) * 2016-06-30 2018-11-27 International Business Machines Corporation Task-oriented messaging system
US11144733B2 (en) * 2016-06-30 2021-10-12 International Business Machines Corporation Task-oriented messaging system
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10553215B2 (en) 2016-09-23 2020-02-04 Apple Inc. Intelligent automated assistant
US20220291790A1 (en) * 2016-11-17 2022-09-15 Meta Platforms, Inc. Systems and methods for sharing content
US11656884B2 (en) 2017-01-09 2023-05-23 Apple Inc. Application integration with a digital assistant
US12260234B2 (en) 2017-01-09 2025-03-25 Apple Inc. Application integration with a digital assistant
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10741181B2 (en) 2017-05-09 2020-08-11 Apple Inc. User interface for correcting recognition errors
US11599331B2 (en) 2017-05-11 2023-03-07 Apple Inc. Maintaining privacy of personal information
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US10847142B2 (en) 2017-05-11 2020-11-24 Apple Inc. Maintaining privacy of personal information
US11467802B2 (en) 2017-05-11 2022-10-11 Apple Inc. Maintaining privacy of personal information
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US11837237B2 (en) 2017-05-12 2023-12-05 Apple Inc. User-specific acoustic models
US11538469B2 (en) 2017-05-12 2022-12-27 Apple Inc. Low-latency intelligent automated assistant
US11380310B2 (en) 2017-05-12 2022-07-05 Apple Inc. Low-latency intelligent automated assistant
US11405466B2 (en) 2017-05-12 2022-08-02 Apple Inc. Synchronization and task delegation of a digital assistant
US11862151B2 (en) 2017-05-12 2024-01-02 Apple Inc. Low-latency intelligent automated assistant
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
US11580990B2 (en) 2017-05-12 2023-02-14 Apple Inc. User-specific acoustic models
US12014118B2 (en) 2017-05-15 2024-06-18 Apple Inc. Multi-modal interfaces having selection disambiguation and text modification capability
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US11532306B2 (en) 2017-05-16 2022-12-20 Apple Inc. Detecting a trigger of a digital assistant
US12026197B2 (en) 2017-05-16 2024-07-02 Apple Inc. Intelligent automated assistant for media exploration
US10909171B2 (en) 2017-05-16 2021-02-02 Apple Inc. Intelligent automated assistant for media exploration
US12254887B2 (en) 2017-05-16 2025-03-18 Apple Inc. Far-field extension of digital assistant services for providing a notification of an event to a user
US10748546B2 (en) 2017-05-16 2020-08-18 Apple Inc. Digital assistant services based on device capabilities
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US11675829B2 (en) 2017-05-16 2023-06-13 Apple Inc. Intelligent automated assistant for media exploration
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
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
US11710482B2 (en) 2018-03-26 2023-07-25 Apple Inc. Natural assistant interaction
US12211502B2 (en) 2018-03-26 2025-01-28 Apple Inc. Natural assistant interaction
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
US11907436B2 (en) 2018-05-07 2024-02-20 Apple Inc. Raise to speak
US11900923B2 (en) 2018-05-07 2024-02-13 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US11487364B2 (en) 2018-05-07 2022-11-01 Apple Inc. Raise to speak
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US11854539B2 (en) 2018-05-07 2023-12-26 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US11169616B2 (en) 2018-05-07 2021-11-09 Apple Inc. Raise to speak
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US11431642B2 (en) 2018-06-01 2022-08-30 Apple Inc. Variable latency device coordination
US12080287B2 (en) 2018-06-01 2024-09-03 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11630525B2 (en) 2018-06-01 2023-04-18 Apple Inc. Attention aware virtual assistant dismissal
US10684703B2 (en) 2018-06-01 2020-06-16 Apple Inc. Attention aware virtual assistant dismissal
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US12061752B2 (en) 2018-06-01 2024-08-13 Apple Inc. Attention aware virtual assistant dismissal
US10403283B1 (en) 2018-06-01 2019-09-03 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US12067985B2 (en) 2018-06-01 2024-08-20 Apple Inc. Virtual assistant operations in multi-device environments
US10720160B2 (en) 2018-06-01 2020-07-21 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11009970B2 (en) 2018-06-01 2021-05-18 Apple Inc. Attention aware virtual assistant dismissal
US11360577B2 (en) 2018-06-01 2022-06-14 Apple Inc. Attention aware virtual assistant dismissal
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
US11495218B2 (en) 2018-06-01 2022-11-08 Apple Inc. Virtual assistant operation in multi-device environments
US10984798B2 (en) 2018-06-01 2021-04-20 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10944859B2 (en) 2018-06-03 2021-03-09 Apple Inc. Accelerated task performance
US10504518B1 (en) 2018-06-03 2019-12-10 Apple Inc. Accelerated task performance
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
US11301819B2 (en) 2018-09-07 2022-04-12 International Business Machines Corporation Opportunistic multi-party reminders based on sensory data
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11893992B2 (en) 2018-09-28 2024-02-06 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
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
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US12136419B2 (en) 2019-03-18 2024-11-05 Apple Inc. Multimodality in digital assistant systems
US11783815B2 (en) 2019-03-18 2023-10-10 Apple Inc. Multimodality in digital assistant systems
US11217251B2 (en) 2019-05-06 2022-01-04 Apple Inc. Spoken notifications
US12216894B2 (en) 2019-05-06 2025-02-04 Apple Inc. User configurable task triggers
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11675491B2 (en) 2019-05-06 2023-06-13 Apple Inc. User configurable task triggers
US11705130B2 (en) 2019-05-06 2023-07-18 Apple Inc. Spoken notifications
US12154571B2 (en) 2019-05-06 2024-11-26 Apple Inc. Spoken notifications
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11888791B2 (en) 2019-05-21 2024-01-30 Apple Inc. Providing message response suggestions
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11360739B2 (en) 2019-05-31 2022-06-14 Apple Inc. User activity shortcut suggestions
US11237797B2 (en) 2019-05-31 2022-02-01 Apple Inc. User activity shortcut suggestions
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11657813B2 (en) 2019-05-31 2023-05-23 Apple Inc. Voice identification in digital assistant systems
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11790914B2 (en) 2019-06-01 2023-10-17 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US12099701B2 (en) 2019-08-05 2024-09-24 Snap Inc. Message thread prioritization interface
US11455081B2 (en) * 2019-08-05 2022-09-27 Snap Inc. Message thread prioritization interface
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US12301635B2 (en) 2020-05-11 2025-05-13 Apple Inc. Digital assistant hardware abstraction
US11924254B2 (en) 2020-05-11 2024-03-05 Apple Inc. Digital assistant hardware abstraction
US11765209B2 (en) 2020-05-11 2023-09-19 Apple Inc. Digital assistant hardware abstraction
US12197712B2 (en) 2020-05-11 2025-01-14 Apple Inc. Providing relevant data items based on context
US11914848B2 (en) 2020-05-11 2024-02-27 Apple Inc. Providing relevant data items based on context
US11838734B2 (en) 2020-07-20 2023-12-05 Apple Inc. Multi-device audio adjustment coordination
US12219314B2 (en) 2020-07-21 2025-02-04 Apple Inc. User identification using headphones
US11750962B2 (en) 2020-07-21 2023-09-05 Apple Inc. User identification using headphones
US11696060B2 (en) 2020-07-21 2023-07-04 Apple Inc. User identification using headphones
US12307423B2 (en) 2021-09-14 2025-05-20 Apple Inc. Digital assistant-enabled daily briefings

Also Published As

Publication number Publication date
US9990610B2 (en) 2018-06-05

Similar Documents

Publication Publication Date Title
US9990610B2 (en) Systems and methods for providing suggested reminders
US12041021B2 (en) Systems and methods for improved processing of message queries
US10338796B2 (en) Event services modeling framework for computer systems
US8751234B2 (en) Communication device for determining contextual information
US20190199669A1 (en) Automated generation of prompts and analyses of user responses to the prompts to determine an entity for an action and perform one or more computing actions related to the action and the entity
US8849854B2 (en) Method and system for providing detailed information in an interactive manner in a short message service (SMS) environment
US10904187B2 (en) Systems and methods for temporarily postponing messages
US11620444B2 (en) Providing action associated with event detected within communication
AU2010315627A1 (en) Mechanism for adding content from a search to a document or message
US20170192625A1 (en) Data managing and providing method and system for the same
US20170374001A1 (en) Providing communication ranking scheme based on relationship graph
CN106663246B (en) System and method for biased task assisted autocomplete suggestion
US20220407832A1 (en) Systems and methods for triggering redisplay of a postponed message
CN110753911B (en) Automatic context transfer between applications
US11366868B1 (en) Notification of change of value in stale content
US20220284404A1 (en) Systems and Methods for Task Assistance
US20130346405A1 (en) Systems and methods for managing data items using structured tags
WO2017090610A1 (en) Reservation processing device, reservation processing method, and reservation processing program
US9634976B2 (en) Systems and methods for organizing the display of messages
US20160063450A1 (en) Systems and Methods for Task Countdowns for Specified Tasks
US10296190B2 (en) Spatially organizing communications
EP2518643A1 (en) Communication device for determining contextual information
US20170168654A1 (en) Organize communications on timeline
US20160364667A1 (en) Providing dynamically responsive availability view

Legal Events

Date Code Title Description
AS Assignment

Owner name: GOOGLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AGARWAL, SHALINI;SUBRAMANYA, AMARNAG;PELLICER, EDGAR GONZALEZ;REEL/FRAME:033781/0573

Effective date: 20140827

AS Assignment

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044129/0001

Effective date: 20170929

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4