US20200099645A1 - Systems, methods, and apparatus for controlling provisioning of notifications based on sources of the notifications - Google Patents
Systems, methods, and apparatus for controlling provisioning of notifications based on sources of the notifications Download PDFInfo
- Publication number
- US20200099645A1 US20200099645A1 US16/698,874 US201916698874A US2020099645A1 US 20200099645 A1 US20200099645 A1 US 20200099645A1 US 201916698874 A US201916698874 A US 201916698874A US 2020099645 A1 US2020099645 A1 US 2020099645A1
- Authority
- US
- United States
- Prior art keywords
- computing device
- user
- data
- notification
- notifications
- 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.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000009877 rendering Methods 0.000 claims description 31
- 230000000007 visual effect Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 73
- 230000003993 interaction Effects 0.000 abstract description 26
- 238000004891 communication Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 16
- 230000004044 response Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000036961 partial effect Effects 0.000 description 9
- 230000000670 limiting effect Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000015654 memory Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000019771 cognition Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000116 mitigating effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 206010063659 Aversion Diseases 0.000 description 1
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000009182 swimming Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/44—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
-
- H04L51/24—
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3605—Destination input or retrieval
- G01C21/3608—Destination input or retrieval using speech input, e.g. using speech recognition
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3626—Details of the output of route guidance instructions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/224—Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/50—Service provisioning or reconfiguring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/18—Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/025—Services making use of location information using location based information parameters
- H04W4/027—Services making use of location information using location based information parameters using movement velocity, acceleration information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
- H04W4/14—Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
Definitions
- Humans may engage in human-to-computer dialogs with interactive software applications referred to herein as “automated assistants” (also referred to as “digital agents,” “chatbots,” “interactive personal assistants,” “intelligent personal assistants,” “conversational agents,” etc.).
- automated assistants also referred to as “digital agents,” “chatbots,” “interactive personal assistants,” “intelligent personal assistants,” “conversational agents,” etc.
- humans (which when they interact with automated assistants may be referred to as “users”) may provide commands and/or requests using (i) spoken natural language input (i.e. utterances), which may in some cases be converted into text and then processed, and/or (ii) by providing textual (e.g., typed) natural language input.
- the automated assistant may provide various notifications to the user, only for the user to subsequently not remember what notifications were provided.
- the number of incoming messages to the user can be overwhelming and lead to dangerous consequences, should the user become too distracted while driving.
- provisioning of notifications is overall ineffective for eliciting responses from the user, computational resources may subsequently be wasted on repeating the notifications to the user.
- indiscriminately repeating notifications can be a waste of time for a user who may have acknowledged some notifications despite participating in some other activity.
- Implementations described herein relate to systems, methods, and apparatus for dynamically determining whether, when, and/or how to present various electronic notifications to a user, based at least in part on sources of those notifications.
- Dynamically adapting the provisioning of notifications to a user can reduce distractions caused by certain notifications (e.g., by suppressing their provision and/or providing them through a less distracting modality) and/or can reduce consumption of various computational resources associated with providing the certain notifications.
- computational resources can be reduced through reduction in quantities and/or extents of provided notifications, and/or through suppressing immediate provision of certain notifications and instead providing them at a later time when a user is less distracted (thereby mitigating occurrences of providing notifications to the user both: when the user is distracted, and again at the later time).
- distractions associated with received notifications can be mitigated using data related to identities of sources of the notifications and/or contextual data associated with the notifications. For example, whether and/or how notifications are provided to a user can be based on scores of sources that are associated with a source of the notifications. A score for a source can be particularized to the user, and can be based on past computer-based interactions of the user with the source, current contextual data associated with the user, contextual data associated with the source, explicit user interface input from the user, and/or other data.
- a “source”, as used herein, can refer to a person (e.g., “Bob”), an application (e.g., “Messaging App 1”), or a combination of applications, such as media applications, messaging applications, navigations applications, and/or other application(s).
- Notifications initialized by applications can be addressed (e.g., provided or suppressed) according to an importance of the notifications to the user and/or to an activity in which the user is participating (e.g., driving a vehicle).
- sources of notifications can be ranked by the automated assistant according to how the user typically interacts with the source and/or their notifications, and/or any other contextual data (e.g., calendar data, location data, etc.) associated with the source and/or the user.
- the rankings can be adapted over time in order to continue modifying the provisioning of notifications received by the user from the source.
- the user can operate a vehicle that includes a vehicle computing device, and the vehicle computing device can be paired (e.g., via Bluetooth, a “wired” connection, and/or other communication protocol(s)) to a portable computing device that includes a variety of applications.
- the applications can communicate over a network (e.g., LTE, Wi-Fi, Bluetooth or any other network connection) with remote server device(s), in order to receive data from the remote server device(s).
- the adapting of the provisioning of inbound notifications can be performed at the portable computing device, remote server device(s), and/or the vehicle computing device.
- the portable computing device and/or the vehicle computing device can perform all or aspects of the processing involved with selectively suppressing provision of notifications to the user, enabling such processing to be performed even when the remote server device is not available (e.g., because of a network outage).
- the portable computing device can initially filter notifications according to properties of the notifications, and then transmits all or aspects of the remaining notifications to a remote server device. In these and other manners, only those notifications that satisfy the portable computing device's initial filtering are transmitted to the remote server device, thereby mitigating consumption of network resources.
- the remote server device can then process each of the remaining notifications and determine a score for each of the remaining notifications.
- the scores can be based on contents of the notifications (e.g., natural language content), contents of messages corresponding to the notifications, contextual data associated with the notifications, behavioral data associated with the user, and/or any other data that can be used to score a relevance or importance of a notification.
- the remote server device provides the scores to the portable computing device and, when the portable computing device receives the scores, the portable computing device can compare the scores to one or more thresholds in order to determine how and/or when to present the notifications to the user. For example, a score provided for a first notification can satisfy a partial notification threshold and thereby cause the portable computing device to present the notification as a graphic on a display device. Continuing with the example, a score provided for a second notification can satisfy a complete notification threshold and thereby cause the portable computing device to present the notification through an audible modality along with a query regarding whether the user would like to respond to the query.
- a score provided for a third notification can fail to satisfy any notification threshold, thereby causing the portable computing device to suppress immediate provision of any content related to the third notification.
- the remote server device determines, based on the score, whether and/or how notifications are to be provided, and provides, to the portable computing device, indications of whether and/or how the notifications are to be provided (e.g., in lieu of the scores). The portable computing device can then use the indications of whether and/or how the notifications are to be provided, in determining whether and/or how to present the notifications.
- notifications can be limited using hashes that allow an automated assistant to identify an application that is associated with the notification.
- the automated assistant can be executing at least in part on the portable computing device and/or in communication with the portable computing device.
- Using hashes to identify an application that is associated with the notification can allow the automated assistant to address provisioning of the notification based on the application associated with the notification.
- the automated assistant can enable immediate provisioning of notifications with a hash that corresponds to a messaging application while suppressing immediate provision of notifications that correspond to certain other notifications (e.g., notifications regarding sales, game applications, airfares, etc.).
- an inbound notification can be included in a data packet that includes a string of data that is based on a name of the application that originated the inbound notification.
- the string of data can be compared to a table of hashes in order to determine the application that the inbound notification corresponds to and/or the score or priority of the application.
- the automated assistant can cause further processing to be performed on the inbound message or inbound notification.
- contents of the message e.g., title, subject, body, recipients, sender, etc.
- other contextual data e.g., location of the user, a location of the source, calendar data, relationship of the source to the user, related notifications, and/or any other data
- the notification can be limited based on whether the user is driving, or whether the user has explicitly indicated that they do not want to be disturbed while driving.
- the automated assistant can be accessible through the vehicle computing device and the vehicle computing device can include an audio interface capable of receiving voice commands from the user.
- the automated assistant begins to indicate that a notification has been received (e.g., “You have received a message from Karen. would you like . . . ”)
- the user can interrupt the automated assistant and indicate that they would not like to be disturbed (e.g., “Please don't disturb me right now.”).
- the automated assistant can gather contextual data about the response provided by the user in order to limit similar notifications that would otherwise be provided under similar circumstances.
- the automated assistant can use a scoring of sources in order to query the user regarding whether to limit notifications from the sources. For instance, if multiple notifications are being received from relatively low scoring applications (e.g., a shopping application that the user accesses infrequently, such as once a week), the automated assistant can query the user regarding whether the user would like to receive those notifications at the time of receipt (e.g., while driving). If the user indicates that they would not like to receive the notifications, the scoring of the sources can be further reduced based on the response of the user and any contextual data (e.g., vehicle-related data) gathered at the time receipt.
- relatively low scoring applications e.g., a shopping application that the user accesses infrequently, such as once a week
- the automated assistant can query the user regarding whether the user would like to receive those notifications at the time of receipt (e.g., while driving). If the user indicates that they would not like to receive the notifications, the scoring of the sources can be further reduced based on the response of the user and any contextual data (e.
- Source scoring can be performed by one or more processes.
- source scoring can be performed by a contextual scoring engine and a score adjustment engine.
- the contextual scoring engine can use contextual data in order to score a source of the data that is being used by the automated assistant as a basis for a notification.
- the contextual scoring engine can operate at one or more of the vehicle computing device, the portable computing device, and/or the remote server device.
- the automated assistant can be operating at least at the remote server device, and the contextual scoring engine can be operating at the portable computing device.
- the contextual scoring engine can limit the notifications that will be provided to the user according to how the contextual scoring engine is scoring the sources.
- Source scoring can be established and/or adjusted at the contextual scoring engine using contextual data and/or user behavior data that is available to the portable computing device. For instance, a source that is specified as being a spouse of the user, at least according to a list of contacts stored at the portable computing device, can be scored higher than most other contacts in the list of contacts. In this way, distractions can be mitigated according to data that has been explicitly provided by the user, as well as any other contextual data and/or behavioral data collected by the automated assistant.
- Source scoring can be further adapted by a score adjustment engine, which can operate in combination with the contextual scoring engine.
- the score adjustment engine can update scores of sources (e.g., persons and/or applications) according to learned behaviors of the user, as observed by the automated assistant and/or any other device with which the user interacts. Such learned behaviors can be based on how the user responds to a source, whether a user chooses to receive a notification from a source, previous interactions between the user and the source, and/or any other actions that can be associated with the user and/or the source. For example, a user may have asked the automated assistant to call a particular contact (i.e., a source) while driving their vehicle. Therefore, the score adjustment engine can increase a score of the particular contact based on the willingness of the user to participate in a phone call with the particular contact while operating the vehicle during the phone call.
- sources e.g., persons and/or applications
- learned behaviors can be based on how the user responds to a source, whether a user chooses to receive
- the automated assistant can explicitly ask the user about the importance of a particular source in order that the automated assistant can cause a scoring of the particular source to be adjusted accordingly. For example, the first time a message is received from a particular source during an activity (e.g., driving), the automated assistant can query the user regarding whether they would like to know the contents of the message (e.g., “You received a message from Nancy. Would you like to hear the message?”). If the user responds positively (e.g., “Sure”), the scoring of the particular source can be set above a particular notification threshold for receiving notifications from the source during the activity. If the user responds negatively (e.g., “Not right now”), the scoring of the particular source can be set below the particular notification threshold so that, in the future, the user will not be distracted with messages from the source until the score of the source increases above the threshold.
- the scoring of the particular source can be set below the particular notification threshold so that, in the future, the user will not be distracted with messages from the source until the score of the source increases above the threshold.
- a scoring of a source can be modified to exceed a particular threshold, despite the scoring initially being set below the particular threshold. For example, if the user receives a notification regarding an incoming message from a new contact while the user is driving their vehicle, and the user declines to receive the content of the message, the score of the new contact can be set below a notification threshold. Thereafter, if the user adds an event in their calendar, and the new contact is identified as an attendee of the event, the score of the new contact can be increased by the score adjustment engine.
- notifications regarding messages from the new contact can be received while the user is participating in an activity (e.g., driving), at least until the user again indicates their aversion to receiving such notifications while participating in the activity.
- an activity e.g., driving
- scoring of a source can be based on an interaction(s) between the source and the user immediately before the user is engaged in an activity. For example, a source and a user can participate in a conversation via a messaging application, and, before the conversation is over, the user can decide to subsequently enter their vehicle and drive to a location. If, during the drive, the vehicle computing device, or a portable computing device carried by the user, receives a notification indicating that a message was received from the source, a score of the source can be adjusted based on recent contextual data.
- the recent contextual data can identify a time of the most recent conversation between the user and the source, and therefore indicate that the conversation was immediately before the user started driving.
- the user can receive the notification or the message during their drive. However, if the increase in score does not cause the score to increase above the notification threshold, the user can be notified about the message after the user has completed their drive or at some other time when the user is less engaged in an activity.
- Limitations on provisioning of notifications can be based on one or more notification thresholds, such as a complete notification threshold and/or a partial notification threshold.
- a score of each source associated with a notification can be compared to each threshold in order to determine how a notification should be presented to the user.
- a contextual scoring engine can initially establish a score of a source to be below both the complete notification threshold and the partial notification threshold. As a result, notifications associated with the source would not be provided to the user while the user is driving or engaged in a particular activity.
- the score of the source increases past the partial notification threshold, as a result of explicit instructions from the user and/or from other data being collected by the automated assistant, at least a portion of the notification, or a message associated with the notification, can be presented to the user while the user is engaged in an activity. If the score of the source further increases past the complete notification threshold, the entire notification, or message associated with the notification, can be presented to the user while the user is engaged in the activity.
- a method implemented by one or more processors is set forth as including operations such as receiving, at a first computing device, notifications from a remote server device that is accessible to applications from which the notifications are based.
- the operations can further include identifying a first source of a first notification of the notifications and a second source of a second notification of the notifications.
- the first source can correspond to a first entity that controls a first application of the applications and the second source can corresponds to a second entity that controls a second application of the applications.
- the operations can also include determining that a first score for the first source satisfies a notification threshold and a second score for the second source fails to satisfy the notification threshold.
- the first score can be based on first previous instances of interaction between a user of the first computing device and the first source.
- the second score can be based on second previous instances of interaction between the user and the second source.
- the operations can also include receiving, from a second computing device, contextual data that is based on one or more properties of an activity in which the second computing device is participating.
- the second computing device can be configured to provide certain notifications according to scores of sources associated with the notifications.
- the operations can include modifying the second score based on the contextual data, determining that the modified second score satisfies the notification threshold, and causing the second computing device to provide the first notification and the second notification based on the first score and the modified second score satisfying the notification threshold.
- the second computing device can be a vehicle computing device that is integrated in a vehicle and that is paired with the first computing device.
- the activity can be navigating a vehicle that includes the vehicle computing device.
- the one or more properties on which the contextual data can be based identify how the vehicle is navigating. Navigating the vehicle can include navigating the vehicle through a route that is dictated at an audio interface of the vehicle computing device, and the vehicle computing device can include a navigation application corresponding to a third score that satisfies the notification threshold. Modifying the second score based on the activity can further cause the second score to temporarily satisfy the notification threshold until the second computing device ceases participating in the activity.
- the notification threshold can be associated with a particular modality through which the first notification and the second notification are provided.
- the particular modality can include one or both of: an audio modality and a visual modality.
- a method implemented by one or more processors is set forth as including steps of receiving, at a client computing device of a user during performance of an activity by the user, a notification, and identifying, at the client computing device, a source of the notification.
- the operations can also include determining, at the client computing device and based on the source of the notification, that the notification is a candidate for providing to the user during the performance of the activity.
- the operations can further include, in response to determining that the notification is a candidate for providing to the user during the performance of the activity: transmitting, by the client computing device to a remote server device, notification data that is based on the notification; receiving, from the remote server device in response to the transmitting, provisioning data that indicates whether to provide the notification; and causing, by the client computing device and based on the provisioning data, notification content, that is based on the notification, to be provided to the user during the activity.
- Causing the notification content to be provided can include causing the notification content to be provided via at least one of: the client computing device and an additional computing device paired with the client device.
- the operations can include receiving, at the client computing device during performance of the activity, an additional notification, and identifying, at the client computing device, an additional source of the additional notification.
- the operations can also include determining, at the client computing device and based on the additional source of the additional notification, that the additional notification is not a candidate for providing to the user during the activity.
- the operations can also include, based on determining that the notification is not a candidate for providing to the user: suppressing transmission of additional notification data to the remote server, wherein the additional notification data is based on the additional notification; and suppressing provision of the additional notification during the activity. Transmitting the notification data to the remote server device can be further based on determining, at the client device, that the user is engaged in the activity.
- the provisioning data received from the remote server device in response to the transmitting can further indicate a particular modality via which to provide the notification.
- Causing the notification content to be provided can include: causing the notification content to be provided via the particular modality based on the provisioning data indicating the particular modality.
- the particular modality can be one of: an audio only modality, a graphical only modality, and a combined audio and graphical modality.
- the particular modality can indicate whether the notification content is to be provided via the client computing device only, the additional computing device only, or both the client computing device and the additional computing device.
- the activity can be related to a vehicle, and the additional computing device can be integral with the vehicle.
- causing the notification content to be provided can include: controlling, by the client device, the additional computing device to cause the additional computing device to provide the notification content.
- the notification can be a message from a source and includes natural language content formulated by the source. Additionally, determining, at the client computing device, that the notification is a candidate for providing to the user can be based on the source of the notification and can be independent of the natural language content.
- the provisioning data can be determined at the remote server device based on the natural language content.
- the notification content can include a subset of the notification or a rewrite of the notification, and the provisioning data can be received from the remote server device further comprises the notification content.
- the provisioning data can include a score for the notification, and causing the notification data to be provided based on the provisioning data can include causing the notification data to be provided based on the score satisfying a threshold.
- a method implemented by one or more processors is set forth as including operations such as receiving one or more pre-activity messages in a messaging session between participants.
- the participants can include a user and one or more additional users. Each of the participants can engage in the messaging session using a corresponding messaging application of a corresponding computing device.
- the pre-activity messages can be received prior to the user engaging in a particular activity.
- the operations can also include determining, after receiving the one or more pre-activity messages, that the user is engaged in the particular activity, and, in response to determining that the user is engaged in the particular activity: activating a modified notification mode that selectively suppresses provisioning of electronic notifications to the user.
- the operations can further include receiving, while the user is engaged in the particular activity and while the modified notification mode is activated, an additional message provided in the messaging session by one of the one or more additional users.
- the operations can also include determining a score for the additional message based on at least one of: recency of the one or more pre-activity messages, and a quantity of the one or more pre-activity messages. Additionally, the operations can include causing, based on the score, content that can be based on the additional message to be rendered via at least one computing device of the user.
- Causing, based on the score, the content to be rendered via the at least one computing device can include determining, based on the score, to provide the content in lieu of suppressing the content.
- Causing, based on the score, the content to be rendered via the at least one computing device can include selecting the computing device, or a modality for rendering of the content, based on the score.
- the method can include receiving, while the user is engaged in the particular activity and while the modified notification mode is activated, an additional notification that is not part of the messaging session.
- the method can also include determining an additional score for the additional notification based on a source of the additional notification, and suppressing, based on the additional score, provision to the user of any additional content that is based on the additional notification.
- the score can also be generated using interaction data that identifies an instance when the user previously received a prior notification from the participant while formerly engaged in the activity.
- Causing, based on the score, the content that can be based on the additional message to be rendered via the at least one computing device of the user comprises causing the content to be audibly rendered.
- the method can further include receiving, while the user is engaged in the particular activity and while the modified notification mode is activated, an additional notification that is not part of the messaging session. Additionally, the method can include determining an additional score for the additional notification based on a source of the additional notification; and causing, based on the additional score, additional content that is based on the additional notification to be graphically rendered via the at least one computing device, without being simultaneously audibly rendered.
- Various implementations disclosed herein may include one or more non-transitory computer readable storage media storing instructions executable by a processor (e.g., a central processing unit (CPU), graphics processing unit (GPU), and/or Tensor Processing Unit (TPU)) to perform a method such as one or more of the methods described herein.
- a processor e.g., a central processing unit (CPU), graphics processing unit (GPU), and/or Tensor Processing Unit (TPU)
- CPU central processing unit
- GPU graphics processing unit
- TPU Tensor Processing Unit
- Yet other various implementations may include a system of one or more computers that include one or more processors operable to execute stored instructions to perform a method such as one or more of the methods described herein.
- FIG. 1 illustrates a system for limiting notification provided to a user according to scores generated for the notifications and/or sources of the notifications.
- FIG. 2 includes a state diagram that illustrates how notification scores can be adapted to reduce distractions for a user.
- FIG. 3 illustrates a method for limiting notifications provided to a user according to scores that are assigned to sources of the notifications.
- FIG. 4 illustrates a method for limiting notifications to a subset of notifications based on score data that is at least partially generated at a remote device.
- FIG. 5 illustrates a method for dynamically modifying scores for sources of notifications at least according to one or more activities that a user is participating in to reduce distractions experienced by the user.
- FIG. 6 is a block diagram of an example computer system.
- FIG. 1 illustrates a system 100 for limiting notification provided to a user according to scores generated for the notifications and/or sources of the notifications.
- the system 100 can include a remote device 114 , such as a server device 102 , which can host an automated assistant 104 .
- the automated assistant 104 can be hosted at the server device 102 , and/or one or more computing devices capable of hosting an assistant application.
- the automated assistant 104 can be hosted at a personal computing device 118 , a vehicle computing device 134 , and/or the remote device 114 .
- Processes and/or functions performed by the automated assistant 104 can be performed by the server device 102 , or distributed over separate devices.
- a user can provide an input, such as a voice command or a textual input, at an assistant interface of the personal computing device 118 .
- the input from the user can be transmitted from the personal computing device 118 , over a network 116 , such as a private network (e.g., peer-to-peer), or a public network (e.g., the internet), to the server device 102 .
- a network 116 such as a private network (e.g., peer-to-peer), or a public network (e.g., the internet).
- the input can be received at a voice to text engine 108 , which can be part of the automated assistant 104 or separate from the automated assistant 104 .
- the voice to text engine 108 can convert the input into text, which can be parsed by the automated assistant 104 to determine how the automated assistant 104 can sufficiently respond to the input from the user.
- Interactions between one or more users and the automated assistant 104 can be stored as assistant interaction data 106 .
- the assistant interaction data 106 can, for example, provide correspondence data that identifies one or more inputs received from the one or more users and one or more responses generated from the automated assistant 104 .
- the automated assistant 104 can employ one or more machine learning algorithms for learning or otherwise adapting to user requests, preferences, and/or how the user otherwise interacts with the automated assistant 104 .
- the server device 102 and/or the automated assistant 104 can include a server scoring engine 110 .
- the server scoring engine 110 can be an application, script, and/or other executable data capable of determining or otherwise estimating a score for a source of notifications 112 to be received by the user.
- Notifications can be generated at the server device 102 and/or provided to the server device 102 , or the personal computing device 118 , from a separate device and/or application.
- data from a separate server device can cause the server device 102 , the personal computing device 118 , and/or the automated assistant 104 to receive or generate a notification 112 .
- data from other devices such as a portable computing device 142 , operated by another user 140 , can also cause the server device 102 , the personal computing device 118 , and/or the automated assistant 104 to receive or generate a notification 112 .
- multiple different applications from multiple different sources e.g., persons or machines
- notifications 112 can be stored at any of the devices provided in the system 100 .
- the system 100 can include a vehicle apparatus 130 such as a vehicle computing device 134 , which is part of a vehicle 132 and can be in communication with the personal computing device 118 and/or the server device 102 .
- the other user 140 can cause a message to be transmitted from a messaging application on their portable computing device 142 to the vehicle computing device 134 and/or the personal computing device 118 .
- the automated assistant 104 can be aware of the message transmission and generate a notification 112 .
- the automated assistant 104 can be in communication with a messaging application associated with the user, and the user's messaging application can provide an indication to the automated assistant 104 regarding receipt of the message from the other user 140 .
- the message transmitted from the portable computing device 142 can be transmitted by a network carrier over the network 116 to the personal computing device 118 , which can include an assistant application 120 that is in communication with the automated assistant 104 .
- the personal computing device 118 can generate a notification 122 regarding the received message and provide an indication to the automated assistant 104 at the server device 102 that a message was received from the other user 140 .
- the personal computing device 118 can also provide a notification to the vehicle computing device 134 for presentation at a vehicle application 138 , audio interface, and/or display interface of the vehicle computing device 134 .
- notifications can be limited according to certain properties of the notifications.
- a navigation application at the personal computing device 118 can provide audible instructions regarding various turns to take during the route navigation.
- a client scoring engine 124 operating at the personal computing device 118 , can filter and/or score notifications or sources of notifications in order to limit an amount of distractions that the user will experience.
- a source of notifications can include the navigation application, which can be scored to satisfy one or more thresholds that, as a result, allow the notifications from the navigation application to be presented to the user while driving. Scoring of the navigation application can be based on the fact that the user opened the application while driving their vehicle, or that the user paired their personal computing device 118 with the vehicle computing device 134 .
- the scoring of the navigation application to satisfy one or more thresholds can be based on contextual data 136 , which can provide information regarding the operations of the vehicle, an environment of the vehicle, other activities the user is engaging in within the vehicle, other vehicle applications 138 that are being accessed at the vehicle 132 , and/or any other information related to activities being performed by the user.
- a score assigned to particular sources of notifications can be modified according to the contextual data 136 .
- a score for a navigation application can be increased when the contextual data 136 indicates that the vehicle 132 is in motion.
- scores assigned to applications unrelated to navigation can be decreased by the client scoring engine 124 as a result of the contextual data 136 indicating that the vehicle 132 is in motion and/or has reached a threshold velocity.
- notifications 122 from multiple different sources can be received at the personal computing device 118 , and the client scoring engine 124 can score the sources such that only scores for less than a total number of sources satisfy a notification threshold.
- the notifications 122 can be at least partially based on data provided by messaging applications (e.g., such as the messaging application on the portable computing device 142 ) and a game application.
- the client scoring engine 124 can score the messaging applications, and/or the sources of messages using the messaging applications, such that the scores satisfy the notification threshold.
- the client scoring engine 124 can score the gaming application such that the score for the gaming application fails to satisfy the notification threshold.
- the sources that have scores satisfying the notification threshold will be associated with notifications that constitute a subset of notifications.
- the subset of notifications can thereafter be presented to the user via an interface 126 of a computing device 128 , such as the personal computing device 118 , or provided to the server device 102 for further processing.
- notification data corresponding to the subset of notifications can be provided to the automated assistant 104 and/or the server scoring engine 110 for further processing.
- the server scoring engine 110 can provide a score for each source of each notification in the subset of notifications.
- the server scoring engine 110 can access assistant interaction data 106 that can provide an indication of who the user has had conversations with while driving and who the user has declined to respond to while driving.
- the server scoring engine 110 can use the assistant interaction data 106 to increase a score of a source that the user has previously elected to receive messages from while driving, and decrease a score of a separate source that the user has previously declined to receive messages from while driving.
- scores for sources can be based on a relationship of the source (e.g., spouse, family, acquaintance, co-worker, etc.). For instance, a source that corresponds to a spouse of the user can be assigned a higher score than a separate source that corresponds to a friend of the user. Alternatively, or additionally, a source that is an attendee to an event to which the user is driving to can be assigned a higher score than a separate source that is not identified as an attendee, at least according to calendar data that is accessible to the automated assistant 104 .
- a relationship of the source e.g., spouse, family, acquaintance, co-worker, etc.
- a source that corresponds to a spouse of the user can be assigned a higher score than a separate source that corresponds to a friend of the user.
- a source that is an attendee to an event to which the user is driving to can be assigned a higher score than a separate source that is not identified as an attendee, at least according to calendar data that is accessible
- Scores for the sources corresponding to the subset of notifications can be transmitted back to the personal computing device 118 , which can compare the scores to notification thresholds stored by, or otherwise accessible to, the personal computing device 118 . Messages that correspond to sources having scores satisfying the notification thresholds can thereafter be presented to the user at the personal computing device 118 and/or at the vehicle computing device 134 . Other messages that correspond to sources having scores failing to satisfy the notification thresholds can be withheld from being presented to the user, at least until the scores for the sources satisfy the notification thresholds under subsequent circumstances.
- the scores for sources can be compared to multiple different notification thresholds that are stored by, or otherwise accessible to, the personal computing device 118 .
- the scores can be compared to a complete notification threshold and, when a score satisfies the complete notification threshold, a notification corresponding to the source that was assigned the score can be presented in a full and complete form.
- the assistant application 120 can cause the text message to be audibly or visually presented to the user.
- the assistant application 120 can be presented with an option to respond to the text message.
- the notification thresholds can include a partial notification threshold and, when a score satisfies the partial notification threshold, a notification corresponding to the source that was assigned the score can be partially presented to the user. For instance, if the notification is associated with an email, the assistant application 120 can cause a subject line of the email to audibly or visually presented to the user. Alternatively, if the score for the source of the email satisfies the partial notification threshold, the assistant application 120 can cause a graphic to be displayed at the personal computing device 118 and/or the vehicle computing device 134 in order to mitigate distractions while the user is driving.
- the other user 140 can operate a portable computing device 142 that also includes an automated assistant, or is accessible to an automated assistant.
- the score for the user can be set by the client scoring engine 124 and/or the server scoring engine 110 .
- the score for the user can be set below one or more notification thresholds, at least based on contextual data 136 that indicates the user is driving the vehicle 132 .
- Such scoring can be performed in response to selecting a preference at their portable computing device 142 in order to not receive messages from people while they are driving.
- the assistant application associated with the other user 140 can communicate this preference of the other user 140 to the automated assistant 104 , and the automated assistant 104 can put the user on notice of the preference of the other user 140 . This can further encourage the user to not text while driving, as the user will be aware that the messages they are sending while driving will not actually be received by the other user 140 until the driving user is done driving.
- FIG. 2 includes a state diagram 200 that illustrates how notification scores can be adapted to reduce distractions for a user.
- the state diagram 200 can be embodied as one or more processes executing at one or more computing devices, such as a personal computing device, a server computing device, and/or any other computing device capable of processing notifications.
- the state diagram 200 illustrates how a first user 204 and a second user 208 can participate in communications that cause their respective score data to change dynamically. Specifically, the score data can be adjusted in order to reduce distractions experienced by the first user 204 and/or the second user 208 , at least when one of the users is participating in an activity. This can allow vital communications to be transmitted to a user, and less important communications to be delayed, omitted, or otherwise presented to the user in a less distracting format or modality.
- the state diagram 200 includes a remote device 202 , which can be a server device that hosts an assistant application, and/or any other application capable of processing notifications (e.g., a scoring engine).
- the remote device 202 can be in communications with a first computing device 206 that is operated by a first user 204 , as well as a second computing device 210 that is operated by a second user 208 .
- Each of the remote device 202 , the first computing device 206 , and the second computing device 210 can generate and/or modify scores, which can be used to qualify sources of data as being relevant or important enough to be a basis for providing notifications to a user.
- the state diagram 200 provides an example scenario of scores of sources being modified as a result of particular circumstances affecting the first user 204 and the second user 208 .
- the second user 208 can initially input contact information 212 into the second computing device 210 .
- the contact information 212 can be transmitted to the remote device 202 , which can score a source corresponding to the contact information 212 based on data provided in the contact information 212 and/or any other data associated with the second user 208 .
- the contact information 212 can be associated with a co-worker with whom the second user 208 has previously corresponded with over electronic communications.
- the second user 210 can add the contact information 212 into the second computing device 210 , and the remote device 202 , after being introduced to the co-worker.
- the first user 204 which can be the co-worker, can send a message 214 to the second user 208 .
- the message 214 can be received by the second computing device 210 and/or the remote device 202 . However, depending on the circumstances in which the second user 208 receives the message 214 , the second user 208 may not be notified of the message 214 until a score corresponding to the first user 204 has satisfied a notification threshold. In some implementations, the second computing device 210 can generate score data associated with the first user 204 . In other implementations, the message 214 can initially be received at the second computing device 210 , and the second computing device 210 can provide notification data 216 to the remote device 202 .
- the notification data 216 can be processed by the remote device 202 in order that the remote device 202 can identify the source of the message 214 , and/or any other data related to a context of the message.
- the remote device 202 can process the notification data 216 for determining interaction data 218 .
- the interaction data 218 can identify or describe previous instances where the first user 204 and the second user 208 interacted or otherwise communicated.
- the interaction data 218 can also identify other data that is associated with the first user 204 , such as calendar data, location data, social network data, message data, phone call data, purchase data, and/or any other data that can be associated with a source of information.
- the notification data 216 can be used as a basis for the remote device 202 to generate first score data 220 , which can be transmitted from the remote device 202 to the first computing device to 10 .
- the first computing device 206 can perform a process of modifying the first score data 222 .
- the modified first score data 222 can be based on the first score data 222 and/or any other information available to the first computing device 206 .
- the first computing device 206 can be aware of one or more applications that the second user 208 is accessing, and the first score data can be modified according to the types of applications the second user 208 is using.
- the modified first score data 222 can be compared to one or more notification thresholds in order to determine whether to present the notification about the message 214 to the second user 208 . If the modified for score data 222 satisfies a notification threshold, a notification regarding the message 214 can be presented (i.e., presenting notification 224 ) at the second computing device 210 and/or a separate computing device that is associated with the second user 208 . If the modified first score data 222 does not satisfy the notification threshold, the notification can be provided at another time, in a different format, in a different modality, or omitted completely.
- the second user 208 can send a responsive message 226 to the first user 204 .
- the second user 208 can direct an automated assistant to provide the responsive message 226 to the first user 204 .
- the remote device 202 will have a record of the second user 208 responding to the first user 204 .
- the automated assistant can perform a process of modifying the first score data 228 .
- the automated assistant can modify the first score data 228 to reflect the willingness of the second user 208 to communicate with the first user 204 during the activity.
- the first score can be increased such that when the second user 208 is involved in the activity and receives a message from the first user 204 , the first computing device 210 can present the message to the first user 204 , at least based on how high the first score is.
- the first computing device 206 can provide notification data 230 to the remote device 202 .
- the remote device 202 can perform a process of determining an activity 234 of the second user 208 .
- the remote device 202 can process the notification data 230 along with any data related to the activity being performed by the second user 208 in order to provide second score data 232 .
- the second score data 232 can be based on a relationship between the first user 204 and the second user 208 .
- the second score data 232 can be based on preferences of the second user 208 along with data identifying the content of the responsive message 226 , and/or any other data related to the second user 208 .
- the first computing device 206 can perform a process of presenting the notification 236 .
- the first user 204 can then provide a responsive message 238 to the second user 208 .
- the remote device 202 can acknowledge the responsive message 238 and perform a process of modifying the second score data 240 .
- the second score data 240 can reflect the willingness of the first user 204 to communicate with the second user 208 , in view of the second user participating in an activity, having a particular relationship with the first user 204 , and/or any other circumstance or information related to the second user 208 and the first user 204 .
- FIG. 3 illustrates a method 300 for limiting notifications provided to a user according to scores that are assigned to sources of the notifications.
- the method 300 can be performed by one or more computing devices, and/or any other apparatus capable of processing notifications to be received by a person or machine.
- the method 300 can include an operation 302 of receiving, at a first computing device, notifications from a remote server device that is accessible to applications from which the notifications are based.
- the first computing device can be, for example, a cellular phone that includes an automated assistant interface for interacting with an automated assistant application via the automated assistant interface.
- the applications accessible to the remote server device can be messaging applications, gaming applications, media applications, network applications, fitness applications, navigation applications, and/or any other applications that can operate at a computing device.
- the method 300 can further include an operation 304 of identifying a first source of a first notification of the notifications and a second source of a second notification of the notifications.
- the first source and the second source can correspond to separate entities that each control an application of the applications.
- the first source can correspond to a person that is a spouse of the user, as indicated by a contact list that is accessible to the first computing device.
- the second source can correspond to a co-worker of the user.
- the first source and the second source can each be associated with separate servers that communicate data, associated with the notifications, to the remote server device.
- the method 300 can include an operation 306 of determining that a first score for the first source satisfies a notification threshold and a second score for the second sources fails to satisfy the notification threshold.
- the notification threshold can be stored by, or otherwise accessible to, the first computing device.
- the notification threshold can be associated with how a notification will be provided to the user.
- the notification threshold can be one of multiple different notification thresholds that can be used to filter notifications according to their corresponding scores or the scores of their corresponding sources.
- the notification threshold of operation 306 can be provided to initially filter sources according to who they are or what applications they are associated with. Scores of the sources that satisfy the notification threshold can thereafter be updated based on other criteria, such as, for example, interaction data, contextual data, and/or any other information that can be associated with the sources.
- the method 300 can include an operation 308 of receiving, from a second computing device, contextual data associated with an activity in which the second computing device is participating.
- the second computing device can be a vehicle computing device that collects data related to the operation of the vehicle, and any other information related to the context in which the vehicle is being operated.
- the contextual data can include vehicle speed, route data, weather data, vehicle maintenance data, passenger data, and/or any other data that can be derived from a context of a computing device.
- the contextual data can be based on signals from one or more sensors on the vehicle, or one or more remote devices that are in communication with the vehicle computing device.
- the contextual data can correspond to route data that is provided by a navigation application operating at the vehicle computing device.
- the route data can identify the destination for the route as being a work meeting location associated with the second source (e.g., a co-worker).
- the contextual data can be compared to the sources having scores that have previously satisfied the notification threshold, to determine how to further adjust the scores.
- the method 300 can include an operation 310 of modifying, based on the contextual data, the second score to cause the second score to satisfy the notification threshold.
- the second source can be a co-worker and the destination identified by the contextual data can be a location for a work meeting or other work-related location.
- the score for the second source can therefore be adjusted based on the relevance of the second source to the contextual data.
- scores for sources can change dynamically as the context of the notifications change.
- the second score can be modified such that the second score temporarily satisfies the notification threshold. For instance, when the contextual data indicates that the user has arrived at the destination, or subsequently left the destination after arriving, the second score can be again modified to not satisfy the notification threshold.
- the method 300 can further include an operation 312 of causing or controlling the second computing device to provide the first notification and the second notification based on the first score and the second score satisfying the notification threshold.
- causing the second computing device to provide the first notification and the second notification can include causing a display device connected to the second computing device of a vehicle to display graphics and/or text corresponding to the first notification and the second notification.
- FIG. 4 illustrates a method 400 for limiting notifications to a subset of notifications based on score data that is at least partially generated at a remote device.
- the method 400 can be performed by one or more computing devices, and/or any other apparatus capable of processing notifications to be received by a person or machine.
- the method 400 can include an operation 402 of receiving, at a client device, notifications from a remote server device that is accessible to applications from which the notifications are based.
- the notifications can be from multiple different applications, web services, automated assistants, third party agents, and/or any other program capable of providing data to a device.
- the method 400 can further include an operation 404 of identifying sources of the notifications.
- the sources can correspond to entities that control the applications.
- the applications can includes messaging applications and a third party agent application. Therefore, sources that control the messaging applications and the third party agent application can be one or more persons, devices, and/or any other entity capable of controlling an application or device.
- the sources can be identified using data that is included, or otherwise associated, with the received notifications.
- the data can include headers or other strings text that can be compared with a lookup table for determining the names of the sources of the notifications.
- the lookup table can include or be associated with a list of scores for the sources.
- the scores can include dynamic scores that change over time as the user interacts with the sources, and/or as context of the user and/or the sources changes over time.
- the method 400 can further include an operation 406 of determining a subset of notifications based on the identified sources and/or interaction data that indicates one or more instances of interaction between the user and one or more identified sources that originated the subset of notifications.
- the subset of notifications can be limited to notifications that were provided by sources corresponding to messaging applications.
- the subset of notifications can be limited to notifications that were provided by sources corresponding to persons that the user frequently engages with via a messaging application.
- Determinations regarding who the user frequently engages with can be based on assistant interaction data that tracks how often a user engages an assistant application to contact a source, how recently a user contacted a source, other application data that identifies the source, and/or any other information that can be used to determine how willing a user may be to receiving notifications from a source.
- determining the subset of notifications can be based on an identity of the identified sources and be independent of the content of the notifications.
- the method 400 can also include an operation 408 of providing, to the remote server device, notification data that identifies the subset of notifications.
- the notification data can identify sources of the subset of notifications and/or any other data associated with the subset of notifications. For example, when the subset of notifications include notifications related to messages from one or more sources, the notification data can include content from the messages, other recipients of the message, subject lines in the messages, time of receipt and/or sending of the messages, and/or any other data that can be associated with a message.
- the method 400 can further include an operation 410 of receiving, from the remote server device, score data that indicates a score for (i) each notification of subset of notifications or (ii) each source of the one or more sources that originated the subset of notifications.
- the score data can represent a relevance of each notification to the user and/or a current context of the user. For example, a first source for a first notification of the subset of notifications can correspond to a spouse of the user, while a second source for a second notification of the subset of notifications can correspond to an acquaintance with which the user rarely communicates. Therefore, the first source can be scored higher than the second score, at least based on their relationships to the user, as indicated by data that is available to the remote server device.
- the client device can initially determine the subset of notifications from the received notifications independent of content (e.g., natural language message content) of the notifications.
- content e.g., natural language message content
- the client device can initially filter notifications to generate the subset of notifications based on the sources and/or scores for the sources.
- the remote server device can determine the score data based on the content of the notifications. In this way, computational resources can be conserved at the client device, while more extensive processing (e.g., processing of natural language content) can be left to the remote server device.
- the method 400 can include an operation 412 of causing one or more notifications of the subset of notifications to be provided to a user based on the score data.
- a modality in which the notifications are provided can also be based on the score data, or otherwise identified in provisioning data received from the remote server device. For example, because the first source (e.g., the spouse) has been assigned a higher score than the second source (e.g., the acquaintance), first notification can be presented to the user differently than the second notification. The first notification can, for instance, be presented through both an audio and video modalities, and the second notification can be presented through a video modality.
- the remote server device can provide provisioning data that also details the content of the notifications to be presented to the user.
- the remote server device can provide provisioning data that details text to be displayed for the user and/or audio to be dictated to the user in order to elicit a response from the user.
- FIG. 5 illustrates a method 500 for dynamically modifying scores for sources of notifications at least according to one or more activities that a user is participating in to reduce distractions experienced by the user.
- the method 500 can be performed by one or more computing devices, and/or any other apparatus capable of processing notifications to be received by a person or a machine.
- the method 500 can include an operation 502 of receiving one or more messages corresponding to a chat session between a user and one or more participants.
- Each participant of the one or more participants can engage in the chat session using a computing device that includes a messaging application.
- each messaging application operated by the participants can be in communication either directly or indirectly with an automated assistant that is accessible to the user. In this way, the automated assistant can be privy to communications occurring between the user and the participants.
- the method 500 can also include an operation 504 of determining, during the chat session, that the user is involved in an activity that engages the user differently than participating in the chat session.
- the activity can include one or more activities such as, for example, driving a vehicle.
- the activity can be participating in an audio or video call, walking on stairs, swimming, recording audio or video, working outside of a home of the user, playing a game, and/or any other activity that requires some amount of cognition from the user.
- the activity e.g., driving
- interaction data associated with the activity can be used to determine an amount of engagement that the user typically exhibits when involved in the activity.
- the automated assistant or other application can determine that the activity at least partially visually engages the user. Therefore, any scoring of sources of notifications received during the activity can be based on the activity, and, specifically, on how the user is engaging in the activity.
- the method 500 can include an operation 506 of receiving, while the user is involved in the activity, a notification indicating that a participant of the one or more participants has sent a message for receipt by the user in furtherance of the chat session.
- the chat session has continued into a time after the user was initially involved in the activity. For example, when the activity is driving, the notification would be received while the user is driving their vehicle.
- the method 500 can include an operation 508 of causing a remote server device to determine a score for the participant that sent the message.
- the score can be generated using at least interaction data that identifies instances of interaction between the participant and the user while the user is involved in the activity, or at any other time when the user interacted with the participant.
- the interaction data can indicate information that correlates the participant to the activity in which the user is involved. For example, the activity can be driving, and the participant can be identified in the interaction data as someone the user has previously communicated with while driving. Alternatively, or additionally, the interaction data can indicate an amount of time since the user has communicated with the user.
- the score can be increased or otherwise generated to cause the notification from the participant to be presented to the user during the activity. However, if the amount of time does not satisfy the communication threshold, the score can be decreased or otherwise generated to cause the notification from the participant to be presented in a partial format (e.g., only a portion of the corresponding messaging), or delayed until the user is no longer involved in the activity.
- a partial format e.g., only a portion of the corresponding messaging
- the method 500 can further include an operation 510 of causing the notification to be presented to the user based on the score for the participant at least temporarily satisfying a notification threshold.
- a personal computing device of the user can cause or control a vehicle computing device of the user to present the notification via an audio-visual interface of the vehicle computing device.
- the personal computing device can present the notification to the user in a complete or partial format, depending on the notification threshold that has been satisfied by the score.
- FIG. 6 is a block diagram 600 of an example computer system 610 .
- Computer system 610 typically includes at least one processor 614 which communicates with a number of peripheral devices via bus subsystem 612 .
- peripheral devices may include a storage subsystem 624 , including, for example, a memory 625 and a file storage subsystem 626 , user interface output devices 620 , user interface input devices 622 , and a network interface subsystem 616 .
- the input and output devices allow user interaction with computer system 610 .
- Network interface subsystem 616 provides an interface to outside networks and is coupled to corresponding interface devices in other computer systems.
- User interface input devices 622 may include a keyboard, pointing devices such as a mouse, trackball, touchpad, or graphics tablet, a scanner, a touchscreen incorporated into the display, audio input devices such as voice recognition systems, microphones, and/or other types of input devices.
- pointing devices such as a mouse, trackball, touchpad, or graphics tablet
- audio input devices such as voice recognition systems, microphones, and/or other types of input devices.
- use of the term “input device” is intended to include all possible types of devices and ways to input information into computer system 610 or onto a communication network.
- User interface output devices 620 may include a display subsystem, a printer, a fax machine, or non-visual displays such as audio output devices.
- the display subsystem may include a cathode ray tube (CRT), a flat-panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visible image.
- the display subsystem may also provide non-visual display such as via audio output devices.
- output device is intended to include all possible types of devices and ways to output information from computer system 610 to the user or to another machine or computer system.
- Storage subsystem 624 stores programming and data constructs that provide the functionality of some or all of the modules described herein.
- the storage subsystem 1124 may include the logic to perform selected aspects of method 300 , method 400 , method 500 , and/or to implement one or more of remote device 114 , server device 102 , automated assistant 104 , personal computing device 118 , vehicle computing device 134 , remote device 202 , first computing device 206 , second computing device 210 , and/or any other device capable of performing any operations discussed herein.
- Memory 625 used in the storage subsystem 624 can include a number of memories including a main random access memory (RAM) 630 for storage of instructions and data during program execution and a read only memory (ROM) 632 in which fixed instructions are stored.
- a file storage subsystem 626 can provide persistent storage for program and data files, and may include a hard disk drive, a floppy disk drive along with associated removable media, a CD-ROM drive, an optical drive, or removable media cartridges.
- the modules implementing the functionality of certain implementations may be stored by file storage subsystem 1126 in the storage subsystem 624 , or in other machines accessible by the processor(s) 614 .
- Bus subsystem 612 provides a mechanism for letting the various components and subsystems of computer system 610 communicate with each other as intended. Although bus subsystem 612 is shown schematically as a single bus, alternative implementations of the bus subsystem may use multiple busses.
- Computer system 610 can be of varying types including a workstation, server, computing cluster, blade server, server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, the description of computer system 610 depicted in FIG. 6 is intended only as a specific example for purposes of illustrating some implementations. Many other configurations of computer system 610 are possible having more or fewer components than the computer system depicted in FIG. 6 .
- the systems described herein collect personal information about users (or as often referred to herein, “participants”), or may make use of personal information
- the users may be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current geographic location), or to control whether and/or how to receive content from the content server that may be more relevant to the user.
- user information e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current geographic location
- certain data may be treated in one or more ways before it is stored or used, so that personal identifiable information is removed.
- a user's identity may be treated so that no personal identifiable information can be determined for the user, or a user's geographic location may be generalized where geographic location information is obtained (such as to a city, ZIP code, or state level), so that a particular geographic location of a user cannot be determined.
- geographic location information such as to a city, ZIP code, or state level
- the user may have control over how information is collected about the user and/or used.
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Acoustics & Sound (AREA)
- Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
- Traffic Control Systems (AREA)
- Telephonic Communication Services (AREA)
- Navigation (AREA)
Abstract
Description
- Humans may engage in human-to-computer dialogs with interactive software applications referred to herein as “automated assistants” (also referred to as “digital agents,” “chatbots,” “interactive personal assistants,” “intelligent personal assistants,” “conversational agents,” etc.). For example, humans (which when they interact with automated assistants may be referred to as “users”) may provide commands and/or requests using (i) spoken natural language input (i.e. utterances), which may in some cases be converted into text and then processed, and/or (ii) by providing textual (e.g., typed) natural language input. When the user is participating in an activity such as driving, the user may not be available to give the automated assistant much attention because of the amount of cognition needed by the user to navigate a vehicle. As a result, the automated assistant may provide various notifications to the user, only for the user to subsequently not remember what notifications were provided. Furthermore, if the user is participating in a group chat or subscribes to various services, the number of incoming messages to the user can be overwhelming and lead to dangerous consequences, should the user become too distracted while driving. If provisioning of notifications is overall ineffective for eliciting responses from the user, computational resources may subsequently be wasted on repeating the notifications to the user. Furthermore, indiscriminately repeating notifications can be a waste of time for a user who may have acknowledged some notifications despite participating in some other activity.
- Implementations described herein relate to systems, methods, and apparatus for dynamically determining whether, when, and/or how to present various electronic notifications to a user, based at least in part on sources of those notifications. Dynamically adapting the provisioning of notifications to a user can reduce distractions caused by certain notifications (e.g., by suppressing their provision and/or providing them through a less distracting modality) and/or can reduce consumption of various computational resources associated with providing the certain notifications. For example, computational resources can be reduced through reduction in quantities and/or extents of provided notifications, and/or through suppressing immediate provision of certain notifications and instead providing them at a later time when a user is less distracted (thereby mitigating occurrences of providing notifications to the user both: when the user is distracted, and again at the later time).
- In various implementations, distractions associated with received notifications can be mitigated using data related to identities of sources of the notifications and/or contextual data associated with the notifications. For example, whether and/or how notifications are provided to a user can be based on scores of sources that are associated with a source of the notifications. A score for a source can be particularized to the user, and can be based on past computer-based interactions of the user with the source, current contextual data associated with the user, contextual data associated with the source, explicit user interface input from the user, and/or other data. A “source”, as used herein, can refer to a person (e.g., “Bob”), an application (e.g., “
Messaging App 1”), or a combination of applications, such as media applications, messaging applications, navigations applications, and/or other application(s). Notifications initialized by applications can be addressed (e.g., provided or suppressed) according to an importance of the notifications to the user and/or to an activity in which the user is participating (e.g., driving a vehicle). In some implementations, sources of notifications can be ranked by the automated assistant according to how the user typically interacts with the source and/or their notifications, and/or any other contextual data (e.g., calendar data, location data, etc.) associated with the source and/or the user. Furthermore, the rankings can be adapted over time in order to continue modifying the provisioning of notifications received by the user from the source. - Techniques related to selectively suppressing and/or otherwise adapting provisioning of inbound notifications according to sources of the notifications and/or contextual data are implemented by one or more computing devices. For example, the user can operate a vehicle that includes a vehicle computing device, and the vehicle computing device can be paired (e.g., via Bluetooth, a “wired” connection, and/or other communication protocol(s)) to a portable computing device that includes a variety of applications. The applications can communicate over a network (e.g., LTE, Wi-Fi, Bluetooth or any other network connection) with remote server device(s), in order to receive data from the remote server device(s). The adapting of the provisioning of inbound notifications can be performed at the portable computing device, remote server device(s), and/or the vehicle computing device. For example, the portable computing device and/or the vehicle computing device can perform all or aspects of the processing involved with selectively suppressing provision of notifications to the user, enabling such processing to be performed even when the remote server device is not available (e.g., because of a network outage).
- In some implementations, the portable computing device can initially filter notifications according to properties of the notifications, and then transmits all or aspects of the remaining notifications to a remote server device. In these and other manners, only those notifications that satisfy the portable computing device's initial filtering are transmitted to the remote server device, thereby mitigating consumption of network resources. The remote server device can then process each of the remaining notifications and determine a score for each of the remaining notifications. The scores can be based on contents of the notifications (e.g., natural language content), contents of messages corresponding to the notifications, contextual data associated with the notifications, behavioral data associated with the user, and/or any other data that can be used to score a relevance or importance of a notification. In some versions of those implementations, the remote server device provides the scores to the portable computing device and, when the portable computing device receives the scores, the portable computing device can compare the scores to one or more thresholds in order to determine how and/or when to present the notifications to the user. For example, a score provided for a first notification can satisfy a partial notification threshold and thereby cause the portable computing device to present the notification as a graphic on a display device. Continuing with the example, a score provided for a second notification can satisfy a complete notification threshold and thereby cause the portable computing device to present the notification through an audible modality along with a query regarding whether the user would like to respond to the query. Still continuing with the example, a score provided for a third notification can fail to satisfy any notification threshold, thereby causing the portable computing device to suppress immediate provision of any content related to the third notification. In some additional and/or alternative versions of those implementations, the remote server device determines, based on the score, whether and/or how notifications are to be provided, and provides, to the portable computing device, indications of whether and/or how the notifications are to be provided (e.g., in lieu of the scores). The portable computing device can then use the indications of whether and/or how the notifications are to be provided, in determining whether and/or how to present the notifications.
- In some implementations, notifications can be limited using hashes that allow an automated assistant to identify an application that is associated with the notification. The automated assistant can be executing at least in part on the portable computing device and/or in communication with the portable computing device. Using hashes to identify an application that is associated with the notification can allow the automated assistant to address provisioning of the notification based on the application associated with the notification. For example, the automated assistant can enable immediate provisioning of notifications with a hash that corresponds to a messaging application while suppressing immediate provision of notifications that correspond to certain other notifications (e.g., notifications regarding sales, game applications, airfares, etc.). In some implementations, an inbound notification can be included in a data packet that includes a string of data that is based on a name of the application that originated the inbound notification. The string of data can be compared to a table of hashes in order to determine the application that the inbound notification corresponds to and/or the score or priority of the application.
- When an inbound notification, corresponding to a messaging application, is received at the portable computing device or vehicle computing device, the automated assistant can cause further processing to be performed on the inbound message or inbound notification. For example, contents of the message (e.g., title, subject, body, recipients, sender, etc.), combined with other contextual data (e.g., location of the user, a location of the source, calendar data, relationship of the source to the user, related notifications, and/or any other data) can be used to determine whether to notify the user of the message or limit the notification in some way. In some implementations, the notification can be limited based on whether the user is driving, or whether the user has explicitly indicated that they do not want to be disturbed while driving. For example, the automated assistant can be accessible through the vehicle computing device and the vehicle computing device can include an audio interface capable of receiving voice commands from the user. When the automated assistant begins to indicate that a notification has been received (e.g., “You have received a message from Karen. Would you like . . . ”), the user can interrupt the automated assistant and indicate that they would not like to be disturbed (e.g., “Please don't disturb me right now.”). In response, the automated assistant can gather contextual data about the response provided by the user in order to limit similar notifications that would otherwise be provided under similar circumstances.
- Additionally or alternatively, the automated assistant can use a scoring of sources in order to query the user regarding whether to limit notifications from the sources. For instance, if multiple notifications are being received from relatively low scoring applications (e.g., a shopping application that the user accesses infrequently, such as once a week), the automated assistant can query the user regarding whether the user would like to receive those notifications at the time of receipt (e.g., while driving). If the user indicates that they would not like to receive the notifications, the scoring of the sources can be further reduced based on the response of the user and any contextual data (e.g., vehicle-related data) gathered at the time receipt.
- Source scoring can be performed by one or more processes. In some implementations, source scoring can be performed by a contextual scoring engine and a score adjustment engine. The contextual scoring engine can use contextual data in order to score a source of the data that is being used by the automated assistant as a basis for a notification. The contextual scoring engine can operate at one or more of the vehicle computing device, the portable computing device, and/or the remote server device. For example, the automated assistant can be operating at least at the remote server device, and the contextual scoring engine can be operating at the portable computing device. As the portable computing device receives notifications from the automated assistant, the contextual scoring engine can limit the notifications that will be provided to the user according to how the contextual scoring engine is scoring the sources. Source scoring can be established and/or adjusted at the contextual scoring engine using contextual data and/or user behavior data that is available to the portable computing device. For instance, a source that is specified as being a spouse of the user, at least according to a list of contacts stored at the portable computing device, can be scored higher than most other contacts in the list of contacts. In this way, distractions can be mitigated according to data that has been explicitly provided by the user, as well as any other contextual data and/or behavioral data collected by the automated assistant.
- Source scoring can be further adapted by a score adjustment engine, which can operate in combination with the contextual scoring engine. The score adjustment engine can update scores of sources (e.g., persons and/or applications) according to learned behaviors of the user, as observed by the automated assistant and/or any other device with which the user interacts. Such learned behaviors can be based on how the user responds to a source, whether a user chooses to receive a notification from a source, previous interactions between the user and the source, and/or any other actions that can be associated with the user and/or the source. For example, a user may have asked the automated assistant to call a particular contact (i.e., a source) while driving their vehicle. Therefore, the score adjustment engine can increase a score of the particular contact based on the willingness of the user to participate in a phone call with the particular contact while operating the vehicle during the phone call.
- In some implementations, the automated assistant can explicitly ask the user about the importance of a particular source in order that the automated assistant can cause a scoring of the particular source to be adjusted accordingly. For example, the first time a message is received from a particular source during an activity (e.g., driving), the automated assistant can query the user regarding whether they would like to know the contents of the message (e.g., “You received a message from Nancy. Would you like to hear the message?”). If the user responds positively (e.g., “Sure”), the scoring of the particular source can be set above a particular notification threshold for receiving notifications from the source during the activity. If the user responds negatively (e.g., “Not right now”), the scoring of the particular source can be set below the particular notification threshold so that, in the future, the user will not be distracted with messages from the source until the score of the source increases above the threshold.
- A scoring of a source can be modified to exceed a particular threshold, despite the scoring initially being set below the particular threshold. For example, if the user receives a notification regarding an incoming message from a new contact while the user is driving their vehicle, and the user declines to receive the content of the message, the score of the new contact can be set below a notification threshold. Thereafter, if the user adds an event in their calendar, and the new contact is identified as an attendee of the event, the score of the new contact can be increased by the score adjustment engine. Eventually, if the score of new contact reaches or exceeds the notification threshold, notifications regarding messages from the new contact can be received while the user is participating in an activity (e.g., driving), at least until the user again indicates their aversion to receiving such notifications while participating in the activity.
- In some implementations, scoring of a source can be based on an interaction(s) between the source and the user immediately before the user is engaged in an activity. For example, a source and a user can participate in a conversation via a messaging application, and, before the conversation is over, the user can decide to subsequently enter their vehicle and drive to a location. If, during the drive, the vehicle computing device, or a portable computing device carried by the user, receives a notification indicating that a message was received from the source, a score of the source can be adjusted based on recent contextual data. The recent contextual data can identify a time of the most recent conversation between the user and the source, and therefore indicate that the conversation was immediately before the user started driving. If the increase in score of the source causes their score to be above the notification threshold, the user can receive the notification or the message during their drive. However, if the increase in score does not cause the score to increase above the notification threshold, the user can be notified about the message after the user has completed their drive or at some other time when the user is less engaged in an activity.
- Limitations on provisioning of notifications can be based on one or more notification thresholds, such as a complete notification threshold and/or a partial notification threshold. As notifications are provided to a computing device (e.g., a vehicle computing device and/or a portable computing device), a score of each source associated with a notification can be compared to each threshold in order to determine how a notification should be presented to the user. For example, a contextual scoring engine can initially establish a score of a source to be below both the complete notification threshold and the partial notification threshold. As a result, notifications associated with the source would not be provided to the user while the user is driving or engaged in a particular activity. If the score of the source increases past the partial notification threshold, as a result of explicit instructions from the user and/or from other data being collected by the automated assistant, at least a portion of the notification, or a message associated with the notification, can be presented to the user while the user is engaged in an activity. If the score of the source further increases past the complete notification threshold, the entire notification, or message associated with the notification, can be presented to the user while the user is engaged in the activity.
- In some implementations, a method implemented by one or more processors is set forth as including operations such as receiving, at a first computing device, notifications from a remote server device that is accessible to applications from which the notifications are based. The operations can further include identifying a first source of a first notification of the notifications and a second source of a second notification of the notifications. The first source can correspond to a first entity that controls a first application of the applications and the second source can corresponds to a second entity that controls a second application of the applications. The operations can also include determining that a first score for the first source satisfies a notification threshold and a second score for the second source fails to satisfy the notification threshold. The first score can be based on first previous instances of interaction between a user of the first computing device and the first source. The second score can be based on second previous instances of interaction between the user and the second source. The operations can also include receiving, from a second computing device, contextual data that is based on one or more properties of an activity in which the second computing device is participating. The second computing device can be configured to provide certain notifications according to scores of sources associated with the notifications. Furthermore, the operations can include modifying the second score based on the contextual data, determining that the modified second score satisfies the notification threshold, and causing the second computing device to provide the first notification and the second notification based on the first score and the modified second score satisfying the notification threshold.
- The second computing device can be a vehicle computing device that is integrated in a vehicle and that is paired with the first computing device. The activity can be navigating a vehicle that includes the vehicle computing device. The one or more properties on which the contextual data can be based identify how the vehicle is navigating. Navigating the vehicle can include navigating the vehicle through a route that is dictated at an audio interface of the vehicle computing device, and the vehicle computing device can include a navigation application corresponding to a third score that satisfies the notification threshold. Modifying the second score based on the activity can further cause the second score to temporarily satisfy the notification threshold until the second computing device ceases participating in the activity. The notification threshold can be associated with a particular modality through which the first notification and the second notification are provided. The particular modality can include one or both of: an audio modality and a visual modality.
- In other implementations, a method implemented by one or more processors is set forth as including steps of receiving, at a client computing device of a user during performance of an activity by the user, a notification, and identifying, at the client computing device, a source of the notification. The operations can also include determining, at the client computing device and based on the source of the notification, that the notification is a candidate for providing to the user during the performance of the activity. The operations can further include, in response to determining that the notification is a candidate for providing to the user during the performance of the activity: transmitting, by the client computing device to a remote server device, notification data that is based on the notification; receiving, from the remote server device in response to the transmitting, provisioning data that indicates whether to provide the notification; and causing, by the client computing device and based on the provisioning data, notification content, that is based on the notification, to be provided to the user during the activity. Causing the notification content to be provided can include causing the notification content to be provided via at least one of: the client computing device and an additional computing device paired with the client device. In some implementations, the operations can include receiving, at the client computing device during performance of the activity, an additional notification, and identifying, at the client computing device, an additional source of the additional notification. The operations can also include determining, at the client computing device and based on the additional source of the additional notification, that the additional notification is not a candidate for providing to the user during the activity. The operations can also include, based on determining that the notification is not a candidate for providing to the user: suppressing transmission of additional notification data to the remote server, wherein the additional notification data is based on the additional notification; and suppressing provision of the additional notification during the activity. Transmitting the notification data to the remote server device can be further based on determining, at the client device, that the user is engaged in the activity.
- The provisioning data received from the remote server device in response to the transmitting can further indicate a particular modality via which to provide the notification. Causing the notification content to be provided can include: causing the notification content to be provided via the particular modality based on the provisioning data indicating the particular modality. The particular modality can be one of: an audio only modality, a graphical only modality, and a combined audio and graphical modality. The particular modality can indicate whether the notification content is to be provided via the client computing device only, the additional computing device only, or both the client computing device and the additional computing device. The activity can be related to a vehicle, and the additional computing device can be integral with the vehicle. Furthermore, causing the notification content to be provided can include: controlling, by the client device, the additional computing device to cause the additional computing device to provide the notification content. The notification can be a message from a source and includes natural language content formulated by the source. Additionally, determining, at the client computing device, that the notification is a candidate for providing to the user can be based on the source of the notification and can be independent of the natural language content. The provisioning data can be determined at the remote server device based on the natural language content. The notification content can include a subset of the notification or a rewrite of the notification, and the provisioning data can be received from the remote server device further comprises the notification content. The provisioning data can include a score for the notification, and causing the notification data to be provided based on the provisioning data can include causing the notification data to be provided based on the score satisfying a threshold.
- In yet other implementations, a method implemented by one or more processors is set forth as including operations such as receiving one or more pre-activity messages in a messaging session between participants. The participants can include a user and one or more additional users. Each of the participants can engage in the messaging session using a corresponding messaging application of a corresponding computing device. The pre-activity messages can be received prior to the user engaging in a particular activity. The operations can also include determining, after receiving the one or more pre-activity messages, that the user is engaged in the particular activity, and, in response to determining that the user is engaged in the particular activity: activating a modified notification mode that selectively suppresses provisioning of electronic notifications to the user. The operations can further include receiving, while the user is engaged in the particular activity and while the modified notification mode is activated, an additional message provided in the messaging session by one of the one or more additional users. The operations can also include determining a score for the additional message based on at least one of: recency of the one or more pre-activity messages, and a quantity of the one or more pre-activity messages. Additionally, the operations can include causing, based on the score, content that can be based on the additional message to be rendered via at least one computing device of the user.
- Causing, based on the score, the content to be rendered via the at least one computing device can include determining, based on the score, to provide the content in lieu of suppressing the content. Causing, based on the score, the content to be rendered via the at least one computing device can include selecting the computing device, or a modality for rendering of the content, based on the score. The method can include receiving, while the user is engaged in the particular activity and while the modified notification mode is activated, an additional notification that is not part of the messaging session. The method can also include determining an additional score for the additional notification based on a source of the additional notification, and suppressing, based on the additional score, provision to the user of any additional content that is based on the additional notification. The score can also be generated using interaction data that identifies an instance when the user previously received a prior notification from the participant while formerly engaged in the activity. Causing, based on the score, the content that can be based on the additional message to be rendered via the at least one computing device of the user comprises causing the content to be audibly rendered. The method can further include receiving, while the user is engaged in the particular activity and while the modified notification mode is activated, an additional notification that is not part of the messaging session. Additionally, the method can include determining an additional score for the additional notification based on a source of the additional notification; and causing, based on the additional score, additional content that is based on the additional notification to be graphically rendered via the at least one computing device, without being simultaneously audibly rendered.
- Various implementations disclosed herein may include one or more non-transitory computer readable storage media storing instructions executable by a processor (e.g., a central processing unit (CPU), graphics processing unit (GPU), and/or Tensor Processing Unit (TPU)) to perform a method such as one or more of the methods described herein. Yet other various implementations may include a system of one or more computers that include one or more processors operable to execute stored instructions to perform a method such as one or more of the methods described herein.
- It should be appreciated that all combinations of the foregoing concepts and additional concepts described in greater detail herein are contemplated as being part of the subject matter disclosed herein. For example, all combinations of claimed subject matter appearing at the end of this disclosure are contemplated as being part of the subject matter disclosed herein.
-
FIG. 1 illustrates a system for limiting notification provided to a user according to scores generated for the notifications and/or sources of the notifications. -
FIG. 2 includes a state diagram that illustrates how notification scores can be adapted to reduce distractions for a user. -
FIG. 3 illustrates a method for limiting notifications provided to a user according to scores that are assigned to sources of the notifications. -
FIG. 4 illustrates a method for limiting notifications to a subset of notifications based on score data that is at least partially generated at a remote device. -
FIG. 5 illustrates a method for dynamically modifying scores for sources of notifications at least according to one or more activities that a user is participating in to reduce distractions experienced by the user. -
FIG. 6 is a block diagram of an example computer system. -
FIG. 1 illustrates asystem 100 for limiting notification provided to a user according to scores generated for the notifications and/or sources of the notifications. Thesystem 100 can include aremote device 114, such as aserver device 102, which can host anautomated assistant 104. In some implementations, theautomated assistant 104 can be hosted at theserver device 102, and/or one or more computing devices capable of hosting an assistant application. For example, in some implementations, theautomated assistant 104 can be hosted at apersonal computing device 118, avehicle computing device 134, and/or theremote device 114. Processes and/or functions performed by theautomated assistant 104 can be performed by theserver device 102, or distributed over separate devices. For instance, a user can provide an input, such as a voice command or a textual input, at an assistant interface of thepersonal computing device 118. The input from the user can be transmitted from thepersonal computing device 118, over anetwork 116, such as a private network (e.g., peer-to-peer), or a public network (e.g., the internet), to theserver device 102. When the input is a voice command, or other audible input from the user, the input can be received at a voice totext engine 108, which can be part of theautomated assistant 104 or separate from theautomated assistant 104. The voice totext engine 108 can convert the input into text, which can be parsed by theautomated assistant 104 to determine how theautomated assistant 104 can sufficiently respond to the input from the user. - Interactions between one or more users and the
automated assistant 104 can be stored asassistant interaction data 106. Theassistant interaction data 106 can, for example, provide correspondence data that identifies one or more inputs received from the one or more users and one or more responses generated from theautomated assistant 104. Theautomated assistant 104 can employ one or more machine learning algorithms for learning or otherwise adapting to user requests, preferences, and/or how the user otherwise interacts with theautomated assistant 104. In some implementations, theserver device 102 and/or theautomated assistant 104 can include aserver scoring engine 110. Theserver scoring engine 110 can be an application, script, and/or other executable data capable of determining or otherwise estimating a score for a source ofnotifications 112 to be received by the user. - Notifications can be generated at the
server device 102 and/or provided to theserver device 102, or thepersonal computing device 118, from a separate device and/or application. For example, data from a separate server device can cause theserver device 102, thepersonal computing device 118, and/or theautomated assistant 104 to receive or generate anotification 112. Additionally, data from other devices, such as aportable computing device 142, operated by anotheruser 140, can also cause theserver device 102, thepersonal computing device 118, and/or theautomated assistant 104 to receive or generate anotification 112. In this way, multiple different applications from multiple different sources (e.g., persons or machines) can causenotifications 112 to be stored at any of the devices provided in thesystem 100. - In some implementations, the
system 100 can include avehicle apparatus 130 such as avehicle computing device 134, which is part of avehicle 132 and can be in communication with thepersonal computing device 118 and/or theserver device 102. For example, theother user 140 can cause a message to be transmitted from a messaging application on theirportable computing device 142 to thevehicle computing device 134 and/or thepersonal computing device 118. Initially, when theother user 140 sends the message over thenetwork 116, theautomated assistant 104 can be aware of the message transmission and generate anotification 112. For instance, theautomated assistant 104 can be in communication with a messaging application associated with the user, and the user's messaging application can provide an indication to theautomated assistant 104 regarding receipt of the message from theother user 140. Alternatively, the message transmitted from theportable computing device 142 can be transmitted by a network carrier over thenetwork 116 to thepersonal computing device 118, which can include anassistant application 120 that is in communication with theautomated assistant 104. Thepersonal computing device 118 can generate anotification 122 regarding the received message and provide an indication to theautomated assistant 104 at theserver device 102 that a message was received from theother user 140. Thepersonal computing device 118 can also provide a notification to thevehicle computing device 134 for presentation at avehicle application 138, audio interface, and/or display interface of thevehicle computing device 134. However, because the presentation of notifications while driving, or performing other activities, can be distracting to the user, notifications can be limited according to certain properties of the notifications. - For example, while navigating the
vehicle 132 along a route, a navigation application at thepersonal computing device 118 can provide audible instructions regarding various turns to take during the route navigation. Aclient scoring engine 124, operating at thepersonal computing device 118, can filter and/or score notifications or sources of notifications in order to limit an amount of distractions that the user will experience. A source of notifications can include the navigation application, which can be scored to satisfy one or more thresholds that, as a result, allow the notifications from the navigation application to be presented to the user while driving. Scoring of the navigation application can be based on the fact that the user opened the application while driving their vehicle, or that the user paired theirpersonal computing device 118 with thevehicle computing device 134. Alternatively, the scoring of the navigation application to satisfy one or more thresholds can be based oncontextual data 136, which can provide information regarding the operations of the vehicle, an environment of the vehicle, other activities the user is engaging in within the vehicle,other vehicle applications 138 that are being accessed at thevehicle 132, and/or any other information related to activities being performed by the user. - A score assigned to particular sources of notifications can be modified according to the
contextual data 136. For example, a score for a navigation application can be increased when thecontextual data 136 indicates that thevehicle 132 is in motion. Furthermore, scores assigned to applications unrelated to navigation can be decreased by theclient scoring engine 124 as a result of thecontextual data 136 indicating that thevehicle 132 is in motion and/or has reached a threshold velocity. - In some instances,
notifications 122 from multiple different sources can be received at thepersonal computing device 118, and theclient scoring engine 124 can score the sources such that only scores for less than a total number of sources satisfy a notification threshold. For example, thenotifications 122 can be at least partially based on data provided by messaging applications (e.g., such as the messaging application on the portable computing device 142) and a game application. Theclient scoring engine 124 can score the messaging applications, and/or the sources of messages using the messaging applications, such that the scores satisfy the notification threshold. Furthermore, theclient scoring engine 124 can score the gaming application such that the score for the gaming application fails to satisfy the notification threshold. As a result, the sources that have scores satisfying the notification threshold will be associated with notifications that constitute a subset of notifications. The subset of notifications can thereafter be presented to the user via aninterface 126 of acomputing device 128, such as thepersonal computing device 118, or provided to theserver device 102 for further processing. - In some implementations, notification data corresponding to the subset of notifications can be provided to the
automated assistant 104 and/or theserver scoring engine 110 for further processing. Specifically, theserver scoring engine 110 can provide a score for each source of each notification in the subset of notifications. For example, theserver scoring engine 110 can accessassistant interaction data 106 that can provide an indication of who the user has had conversations with while driving and who the user has declined to respond to while driving. Theserver scoring engine 110 can use theassistant interaction data 106 to increase a score of a source that the user has previously elected to receive messages from while driving, and decrease a score of a separate source that the user has previously declined to receive messages from while driving. Alternatively, or additionally, scores for sources can be based on a relationship of the source (e.g., spouse, family, acquaintance, co-worker, etc.). For instance, a source that corresponds to a spouse of the user can be assigned a higher score than a separate source that corresponds to a friend of the user. Alternatively, or additionally, a source that is an attendee to an event to which the user is driving to can be assigned a higher score than a separate source that is not identified as an attendee, at least according to calendar data that is accessible to theautomated assistant 104. - Scores for the sources corresponding to the subset of notifications can be transmitted back to the
personal computing device 118, which can compare the scores to notification thresholds stored by, or otherwise accessible to, thepersonal computing device 118. Messages that correspond to sources having scores satisfying the notification thresholds can thereafter be presented to the user at thepersonal computing device 118 and/or at thevehicle computing device 134. Other messages that correspond to sources having scores failing to satisfy the notification thresholds can be withheld from being presented to the user, at least until the scores for the sources satisfy the notification thresholds under subsequent circumstances. - In some implementations, the scores for sources can be compared to multiple different notification thresholds that are stored by, or otherwise accessible to, the
personal computing device 118. For example, the scores can be compared to a complete notification threshold and, when a score satisfies the complete notification threshold, a notification corresponding to the source that was assigned the score can be presented in a full and complete form. For instance, if the notification is associated with a text message, theassistant application 120 can cause the text message to be audibly or visually presented to the user. Furthermore, in some implementations, if the score satisfies the complete notification threshold and the notification is associated with a text message, theassistant application 120 can be presented with an option to respond to the text message. In other implementations, the notification thresholds can include a partial notification threshold and, when a score satisfies the partial notification threshold, a notification corresponding to the source that was assigned the score can be partially presented to the user. For instance, if the notification is associated with an email, theassistant application 120 can cause a subject line of the email to audibly or visually presented to the user. Alternatively, if the score for the source of the email satisfies the partial notification threshold, theassistant application 120 can cause a graphic to be displayed at thepersonal computing device 118 and/or thevehicle computing device 134 in order to mitigate distractions while the user is driving. - In some implementations, the
other user 140 can operate aportable computing device 142 that also includes an automated assistant, or is accessible to an automated assistant. When the user sends a message to theother user 140 while driving thevehicle 132, the score for the user can be set by theclient scoring engine 124 and/or theserver scoring engine 110. The score for the user can be set below one or more notification thresholds, at least based oncontextual data 136 that indicates the user is driving thevehicle 132. Such scoring can be performed in response to selecting a preference at theirportable computing device 142 in order to not receive messages from people while they are driving. In this way, the user will not receive responsive messages from theother user 140, at least until they are done driving, because theother user 140 would not have received the message from the user while the user is driving. In some implementations, the assistant application associated with theother user 140 can communicate this preference of theother user 140 to theautomated assistant 104, and theautomated assistant 104 can put the user on notice of the preference of theother user 140. This can further encourage the user to not text while driving, as the user will be aware that the messages they are sending while driving will not actually be received by theother user 140 until the driving user is done driving. -
FIG. 2 includes a state diagram 200 that illustrates how notification scores can be adapted to reduce distractions for a user. The state diagram 200 can be embodied as one or more processes executing at one or more computing devices, such as a personal computing device, a server computing device, and/or any other computing device capable of processing notifications. The state diagram 200 illustrates how afirst user 204 and asecond user 208 can participate in communications that cause their respective score data to change dynamically. Specifically, the score data can be adjusted in order to reduce distractions experienced by thefirst user 204 and/or thesecond user 208, at least when one of the users is participating in an activity. This can allow vital communications to be transmitted to a user, and less important communications to be delayed, omitted, or otherwise presented to the user in a less distracting format or modality. - The state diagram 200 includes a
remote device 202, which can be a server device that hosts an assistant application, and/or any other application capable of processing notifications (e.g., a scoring engine). Theremote device 202 can be in communications with afirst computing device 206 that is operated by afirst user 204, as well as asecond computing device 210 that is operated by asecond user 208. Each of theremote device 202, thefirst computing device 206, and thesecond computing device 210 can generate and/or modify scores, which can be used to qualify sources of data as being relevant or important enough to be a basis for providing notifications to a user. The state diagram 200 provides an example scenario of scores of sources being modified as a result of particular circumstances affecting thefirst user 204 and thesecond user 208. - The
second user 208 can initially inputcontact information 212 into thesecond computing device 210. Thecontact information 212 can be transmitted to theremote device 202, which can score a source corresponding to thecontact information 212 based on data provided in thecontact information 212 and/or any other data associated with thesecond user 208. For example, thecontact information 212 can be associated with a co-worker with whom thesecond user 208 has previously corresponded with over electronic communications. Thesecond user 210 can add thecontact information 212 into thesecond computing device 210, and theremote device 202, after being introduced to the co-worker. Thereafter, as provided in state diagram 200, thefirst user 204, which can be the co-worker, can send amessage 214 to thesecond user 208. - The
message 214 can be received by thesecond computing device 210 and/or theremote device 202. However, depending on the circumstances in which thesecond user 208 receives themessage 214, thesecond user 208 may not be notified of themessage 214 until a score corresponding to thefirst user 204 has satisfied a notification threshold. In some implementations, thesecond computing device 210 can generate score data associated with thefirst user 204. In other implementations, themessage 214 can initially be received at thesecond computing device 210, and thesecond computing device 210 can provide notification data 216 to theremote device 202. - The notification data 216 can be processed by the
remote device 202 in order that theremote device 202 can identify the source of themessage 214, and/or any other data related to a context of the message. For example, theremote device 202 can process the notification data 216 for determininginteraction data 218. Theinteraction data 218 can identify or describe previous instances where thefirst user 204 and thesecond user 208 interacted or otherwise communicated. Theinteraction data 218 can also identify other data that is associated with thefirst user 204, such as calendar data, location data, social network data, message data, phone call data, purchase data, and/or any other data that can be associated with a source of information. The notification data 216 can be used as a basis for theremote device 202 to generatefirst score data 220, which can be transmitted from theremote device 202 to the first computing device to 10. Thefirst computing device 206 can perform a process of modifying thefirst score data 222. The modifiedfirst score data 222 can be based on thefirst score data 222 and/or any other information available to thefirst computing device 206. For example, thefirst computing device 206 can be aware of one or more applications that thesecond user 208 is accessing, and the first score data can be modified according to the types of applications thesecond user 208 is using. - The modified
first score data 222 can be compared to one or more notification thresholds in order to determine whether to present the notification about themessage 214 to thesecond user 208. If the modified forscore data 222 satisfies a notification threshold, a notification regarding themessage 214 can be presented (i.e., presenting notification 224) at thesecond computing device 210 and/or a separate computing device that is associated with thesecond user 208. If the modifiedfirst score data 222 does not satisfy the notification threshold, the notification can be provided at another time, in a different format, in a different modality, or omitted completely. - If the
second user 208 receives a notification regarding themessage 214, thesecond user 208 can send aresponsive message 226 to thefirst user 204. Specifically, thesecond user 208 can direct an automated assistant to provide theresponsive message 226 to thefirst user 204. When the automated assistant is hosted at theremote device 202, theremote device 202 will have a record of thesecond user 208 responding to thefirst user 204. If thesecond user 208 was performing an activity when theresponsive message 226 was sent, the automated assistant can perform a process of modifying the first score data 228. Specifically, the automated assistant can modify the first score data 228 to reflect the willingness of thesecond user 208 to communicate with thefirst user 204 during the activity. For example, the first score can be increased such that when thesecond user 208 is involved in the activity and receives a message from thefirst user 204, thefirst computing device 210 can present the message to thefirst user 204, at least based on how high the first score is. - In response to receiving the
responsive message 226, thefirst computing device 206 can provide notification data 230 to theremote device 202. Theremote device 202 can perform a process of determining anactivity 234 of thesecond user 208. Theremote device 202 can process the notification data 230 along with any data related to the activity being performed by thesecond user 208 in order to providesecond score data 232. In some implementations, thesecond score data 232 can be based on a relationship between thefirst user 204 and thesecond user 208. In other implementations, thesecond score data 232 can be based on preferences of thesecond user 208 along with data identifying the content of theresponsive message 226, and/or any other data related to thesecond user 208. - When
second score data 232 satisfies a notification threshold associated with thefirst user 204, thefirst computing device 206 can perform a process of presenting thenotification 236. Thefirst user 204 can then provide a responsive message 238 to thesecond user 208. Theremote device 202 can acknowledge the responsive message 238 and perform a process of modifying thesecond score data 240. By modifyingsecond score data 240, thesecond score data 240 can reflect the willingness of thefirst user 204 to communicate with thesecond user 208, in view of the second user participating in an activity, having a particular relationship with thefirst user 204, and/or any other circumstance or information related to thesecond user 208 and thefirst user 204. -
FIG. 3 illustrates amethod 300 for limiting notifications provided to a user according to scores that are assigned to sources of the notifications. Themethod 300 can be performed by one or more computing devices, and/or any other apparatus capable of processing notifications to be received by a person or machine. Themethod 300 can include anoperation 302 of receiving, at a first computing device, notifications from a remote server device that is accessible to applications from which the notifications are based. The first computing device can be, for example, a cellular phone that includes an automated assistant interface for interacting with an automated assistant application via the automated assistant interface. Furthermore, the applications accessible to the remote server device can be messaging applications, gaming applications, media applications, network applications, fitness applications, navigation applications, and/or any other applications that can operate at a computing device. - The
method 300 can further include anoperation 304 of identifying a first source of a first notification of the notifications and a second source of a second notification of the notifications. The first source and the second source can correspond to separate entities that each control an application of the applications. For example, the first source can correspond to a person that is a spouse of the user, as indicated by a contact list that is accessible to the first computing device. The second source can correspond to a co-worker of the user. In some implementations, the first source and the second source can each be associated with separate servers that communicate data, associated with the notifications, to the remote server device. - Additionally, the
method 300 can include anoperation 306 of determining that a first score for the first source satisfies a notification threshold and a second score for the second sources fails to satisfy the notification threshold. The notification threshold can be stored by, or otherwise accessible to, the first computing device. The notification threshold can be associated with how a notification will be provided to the user. Furthermore, the notification threshold can be one of multiple different notification thresholds that can be used to filter notifications according to their corresponding scores or the scores of their corresponding sources. For instance, the notification threshold ofoperation 306 can be provided to initially filter sources according to who they are or what applications they are associated with. Scores of the sources that satisfy the notification threshold can thereafter be updated based on other criteria, such as, for example, interaction data, contextual data, and/or any other information that can be associated with the sources. - Furthermore, the
method 300 can include anoperation 308 of receiving, from a second computing device, contextual data associated with an activity in which the second computing device is participating. The second computing device can be a vehicle computing device that collects data related to the operation of the vehicle, and any other information related to the context in which the vehicle is being operated. For example, the contextual data can include vehicle speed, route data, weather data, vehicle maintenance data, passenger data, and/or any other data that can be derived from a context of a computing device. In some implementations, the contextual data can be based on signals from one or more sensors on the vehicle, or one or more remote devices that are in communication with the vehicle computing device. For instance, the contextual data can correspond to route data that is provided by a navigation application operating at the vehicle computing device. The route data can identify the destination for the route as being a work meeting location associated with the second source (e.g., a co-worker). In this way, the contextual data can be compared to the sources having scores that have previously satisfied the notification threshold, to determine how to further adjust the scores. - The
method 300 can include anoperation 310 of modifying, based on the contextual data, the second score to cause the second score to satisfy the notification threshold. For example, the second source can be a co-worker and the destination identified by the contextual data can be a location for a work meeting or other work-related location. The score for the second source can therefore be adjusted based on the relevance of the second source to the contextual data. In this way, scores for sources can change dynamically as the context of the notifications change. In some implementations, the second score can be modified such that the second score temporarily satisfies the notification threshold. For instance, when the contextual data indicates that the user has arrived at the destination, or subsequently left the destination after arriving, the second score can be again modified to not satisfy the notification threshold. - The
method 300 can further include anoperation 312 of causing or controlling the second computing device to provide the first notification and the second notification based on the first score and the second score satisfying the notification threshold. In some implementations, causing the second computing device to provide the first notification and the second notification can include causing a display device connected to the second computing device of a vehicle to display graphics and/or text corresponding to the first notification and the second notification. -
FIG. 4 illustrates amethod 400 for limiting notifications to a subset of notifications based on score data that is at least partially generated at a remote device. Themethod 400 can be performed by one or more computing devices, and/or any other apparatus capable of processing notifications to be received by a person or machine. Themethod 400 can include anoperation 402 of receiving, at a client device, notifications from a remote server device that is accessible to applications from which the notifications are based. The notifications can be from multiple different applications, web services, automated assistants, third party agents, and/or any other program capable of providing data to a device. - The
method 400 can further include anoperation 404 of identifying sources of the notifications. The sources can correspond to entities that control the applications. For example, the applications can includes messaging applications and a third party agent application. Therefore, sources that control the messaging applications and the third party agent application can be one or more persons, devices, and/or any other entity capable of controlling an application or device. The sources can be identified using data that is included, or otherwise associated, with the received notifications. For example, the data can include headers or other strings text that can be compared with a lookup table for determining the names of the sources of the notifications. In some implementations, the lookup table can include or be associated with a list of scores for the sources. The scores can include dynamic scores that change over time as the user interacts with the sources, and/or as context of the user and/or the sources changes over time. - The
method 400 can further include anoperation 406 of determining a subset of notifications based on the identified sources and/or interaction data that indicates one or more instances of interaction between the user and one or more identified sources that originated the subset of notifications. For example, the subset of notifications can be limited to notifications that were provided by sources corresponding to messaging applications. Furthermore, in some implementations, the subset of notifications can be limited to notifications that were provided by sources corresponding to persons that the user frequently engages with via a messaging application. Determinations regarding who the user frequently engages with can be based on assistant interaction data that tracks how often a user engages an assistant application to contact a source, how recently a user contacted a source, other application data that identifies the source, and/or any other information that can be used to determine how willing a user may be to receiving notifications from a source. In some implementations, determining the subset of notifications can be based on an identity of the identified sources and be independent of the content of the notifications. - The
method 400 can also include anoperation 408 of providing, to the remote server device, notification data that identifies the subset of notifications. The notification data can identify sources of the subset of notifications and/or any other data associated with the subset of notifications. For example, when the subset of notifications include notifications related to messages from one or more sources, the notification data can include content from the messages, other recipients of the message, subject lines in the messages, time of receipt and/or sending of the messages, and/or any other data that can be associated with a message. - The
method 400 can further include anoperation 410 of receiving, from the remote server device, score data that indicates a score for (i) each notification of subset of notifications or (ii) each source of the one or more sources that originated the subset of notifications. The score data can represent a relevance of each notification to the user and/or a current context of the user. For example, a first source for a first notification of the subset of notifications can correspond to a spouse of the user, while a second source for a second notification of the subset of notifications can correspond to an acquaintance with which the user rarely communicates. Therefore, the first source can be scored higher than the second score, at least based on their relationships to the user, as indicated by data that is available to the remote server device. It should be noted that the client device can initially determine the subset of notifications from the received notifications independent of content (e.g., natural language message content) of the notifications. In other words, the client device can initially filter notifications to generate the subset of notifications based on the sources and/or scores for the sources. Meanwhile, the remote server device can determine the score data based on the content of the notifications. In this way, computational resources can be conserved at the client device, while more extensive processing (e.g., processing of natural language content) can be left to the remote server device. - Additionally, the
method 400 can include anoperation 412 of causing one or more notifications of the subset of notifications to be provided to a user based on the score data. In some implementations, a modality in which the notifications are provided can also be based on the score data, or otherwise identified in provisioning data received from the remote server device. For example, because the first source (e.g., the spouse) has been assigned a higher score than the second source (e.g., the acquaintance), first notification can be presented to the user differently than the second notification. The first notification can, for instance, be presented through both an audio and video modalities, and the second notification can be presented through a video modality. In this way, distractions for the user will be mitigated, as only notifications will be filtered according to an importance or relevance of the source of the notification to the user. Furthermore, the remote server device can provide provisioning data that also details the content of the notifications to be presented to the user. For example, the remote server device can provide provisioning data that details text to be displayed for the user and/or audio to be dictated to the user in order to elicit a response from the user. -
FIG. 5 illustrates amethod 500 for dynamically modifying scores for sources of notifications at least according to one or more activities that a user is participating in to reduce distractions experienced by the user. Themethod 500 can be performed by one or more computing devices, and/or any other apparatus capable of processing notifications to be received by a person or a machine. Themethod 500 can include anoperation 502 of receiving one or more messages corresponding to a chat session between a user and one or more participants. Each participant of the one or more participants can engage in the chat session using a computing device that includes a messaging application. Furthermore, each messaging application operated by the participants can be in communication either directly or indirectly with an automated assistant that is accessible to the user. In this way, the automated assistant can be privy to communications occurring between the user and the participants. - The
method 500 can also include an operation 504 of determining, during the chat session, that the user is involved in an activity that engages the user differently than participating in the chat session. The activity can include one or more activities such as, for example, driving a vehicle. Alternatively, the activity can be participating in an audio or video call, walking on stairs, swimming, recording audio or video, working outside of a home of the user, playing a game, and/or any other activity that requires some amount of cognition from the user. The activity (e.g., driving) can be identified, and interaction data associated with the activity can be used to determine an amount of engagement that the user typically exhibits when involved in the activity. For example, if the user has typically declined to receive video calls during the activity, the automated assistant or other application can determine that the activity at least partially visually engages the user. Therefore, any scoring of sources of notifications received during the activity can be based on the activity, and, specifically, on how the user is engaging in the activity. - The
method 500 can include anoperation 506 of receiving, while the user is involved in the activity, a notification indicating that a participant of the one or more participants has sent a message for receipt by the user in furtherance of the chat session. In other words, the chat session has continued into a time after the user was initially involved in the activity. For example, when the activity is driving, the notification would be received while the user is driving their vehicle. - The
method 500 can include anoperation 508 of causing a remote server device to determine a score for the participant that sent the message. The score can be generated using at least interaction data that identifies instances of interaction between the participant and the user while the user is involved in the activity, or at any other time when the user interacted with the participant. Alternatively, or additionally, the interaction data can indicate information that correlates the participant to the activity in which the user is involved. For example, the activity can be driving, and the participant can be identified in the interaction data as someone the user has previously communicated with while driving. Alternatively, or additionally, the interaction data can indicate an amount of time since the user has communicated with the user. If the amount of time satisfies a communication threshold, the score can be increased or otherwise generated to cause the notification from the participant to be presented to the user during the activity. However, if the amount of time does not satisfy the communication threshold, the score can be decreased or otherwise generated to cause the notification from the participant to be presented in a partial format (e.g., only a portion of the corresponding messaging), or delayed until the user is no longer involved in the activity. - The
method 500 can further include anoperation 510 of causing the notification to be presented to the user based on the score for the participant at least temporarily satisfying a notification threshold. For example, a personal computing device of the user can cause or control a vehicle computing device of the user to present the notification via an audio-visual interface of the vehicle computing device. Alternatively, the personal computing device can present the notification to the user in a complete or partial format, depending on the notification threshold that has been satisfied by the score. -
FIG. 6 is a block diagram 600 of anexample computer system 610.Computer system 610 typically includes at least oneprocessor 614 which communicates with a number of peripheral devices viabus subsystem 612. These peripheral devices may include astorage subsystem 624, including, for example, amemory 625 and afile storage subsystem 626, userinterface output devices 620, userinterface input devices 622, and anetwork interface subsystem 616. The input and output devices allow user interaction withcomputer system 610.Network interface subsystem 616 provides an interface to outside networks and is coupled to corresponding interface devices in other computer systems. - User
interface input devices 622 may include a keyboard, pointing devices such as a mouse, trackball, touchpad, or graphics tablet, a scanner, a touchscreen incorporated into the display, audio input devices such as voice recognition systems, microphones, and/or other types of input devices. In general, use of the term “input device” is intended to include all possible types of devices and ways to input information intocomputer system 610 or onto a communication network. - User
interface output devices 620 may include a display subsystem, a printer, a fax machine, or non-visual displays such as audio output devices. The display subsystem may include a cathode ray tube (CRT), a flat-panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visible image. The display subsystem may also provide non-visual display such as via audio output devices. In general, use of the term “output device” is intended to include all possible types of devices and ways to output information fromcomputer system 610 to the user or to another machine or computer system. -
Storage subsystem 624 stores programming and data constructs that provide the functionality of some or all of the modules described herein. For example, the storage subsystem 1124 may include the logic to perform selected aspects ofmethod 300,method 400,method 500, and/or to implement one or more ofremote device 114,server device 102, automatedassistant 104,personal computing device 118,vehicle computing device 134,remote device 202,first computing device 206,second computing device 210, and/or any other device capable of performing any operations discussed herein. - These software modules are generally executed by
processor 614 alone or in combination with other processors.Memory 625 used in thestorage subsystem 624 can include a number of memories including a main random access memory (RAM) 630 for storage of instructions and data during program execution and a read only memory (ROM) 632 in which fixed instructions are stored. Afile storage subsystem 626 can provide persistent storage for program and data files, and may include a hard disk drive, a floppy disk drive along with associated removable media, a CD-ROM drive, an optical drive, or removable media cartridges. The modules implementing the functionality of certain implementations may be stored by file storage subsystem 1126 in thestorage subsystem 624, or in other machines accessible by the processor(s) 614. -
Bus subsystem 612 provides a mechanism for letting the various components and subsystems ofcomputer system 610 communicate with each other as intended. Althoughbus subsystem 612 is shown schematically as a single bus, alternative implementations of the bus subsystem may use multiple busses. -
Computer system 610 can be of varying types including a workstation, server, computing cluster, blade server, server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, the description ofcomputer system 610 depicted inFIG. 6 is intended only as a specific example for purposes of illustrating some implementations. Many other configurations ofcomputer system 610 are possible having more or fewer components than the computer system depicted inFIG. 6 . - In situations in which the systems described herein collect personal information about users (or as often referred to herein, “participants”), or may make use of personal information, the users may be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current geographic location), or to control whether and/or how to receive content from the content server that may be more relevant to the user. Also, certain data may be treated in one or more ways before it is stored or used, so that personal identifiable information is removed. For example, a user's identity may be treated so that no personal identifiable information can be determined for the user, or a user's geographic location may be generalized where geographic location information is obtained (such as to a city, ZIP code, or state level), so that a particular geographic location of a user cannot be determined. Thus, the user may have control over how information is collected about the user and/or used.
- While several implementations have been described and illustrated herein, a variety of other means and/or structures for performing the function and/or obtaining the results and/or one or more of the advantages described herein may be utilized, and each of such variations and/or modifications is deemed to be within the scope of the implementations described herein. More generally, all parameters, dimensions, materials, and configurations described herein are meant to be exemplary and that the actual parameters, dimensions, materials, and/or configurations will depend upon the specific application or applications for which the teachings is/are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific implementations described herein. It is, therefore, to be understood that the foregoing implementations are presented by way of example only and that, within the scope of the appended claims and equivalents thereto, implementations may be practiced otherwise than as specifically described and claimed. Implementations of the present disclosure are directed to each individual feature, system, article, material, kit, and/or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and/or methods, if such features, systems, articles, materials, kits, and/or methods are not mutually inconsistent, is included within the scope of the present disclosure.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/698,874 US20200099645A1 (en) | 2017-11-20 | 2019-11-27 | Systems, methods, and apparatus for controlling provisioning of notifications based on sources of the notifications |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/818,323 US10498685B2 (en) | 2017-11-20 | 2017-11-20 | Systems, methods, and apparatus for controlling provisioning of notifications based on sources of the notifications |
US16/698,874 US20200099645A1 (en) | 2017-11-20 | 2019-11-27 | Systems, methods, and apparatus for controlling provisioning of notifications based on sources of the notifications |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/818,323 Continuation US10498685B2 (en) | 2017-11-20 | 2017-11-20 | Systems, methods, and apparatus for controlling provisioning of notifications based on sources of the notifications |
Publications (1)
Publication Number | Publication Date |
---|---|
US20200099645A1 true US20200099645A1 (en) | 2020-03-26 |
Family
ID=64650521
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/818,323 Active 2038-04-18 US10498685B2 (en) | 2017-11-20 | 2017-11-20 | Systems, methods, and apparatus for controlling provisioning of notifications based on sources of the notifications |
US16/698,874 Abandoned US20200099645A1 (en) | 2017-11-20 | 2019-11-27 | Systems, methods, and apparatus for controlling provisioning of notifications based on sources of the notifications |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/818,323 Active 2038-04-18 US10498685B2 (en) | 2017-11-20 | 2017-11-20 | Systems, methods, and apparatus for controlling provisioning of notifications based on sources of the notifications |
Country Status (6)
Country | Link |
---|---|
US (2) | US10498685B2 (en) |
EP (2) | EP3619926B1 (en) |
JP (1) | JP6955034B2 (en) |
KR (2) | KR102377935B1 (en) |
CN (2) | CN117319339A (en) |
WO (1) | WO2019099695A1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10826862B1 (en) * | 2018-02-27 | 2020-11-03 | Amazon Technologies, Inc. | Generation and transmission of hierarchical notifications to networked devices |
US11990236B2 (en) * | 2019-08-29 | 2024-05-21 | Medtronic Minimed, Inc. | Adjusting diabetes alerts and therapy based on gesture-based detection of vehicle operation |
US11558335B2 (en) * | 2020-09-23 | 2023-01-17 | International Business Machines Corporation | Generative notification management mechanism via risk score computation |
CN113815637A (en) * | 2021-08-28 | 2021-12-21 | 济南臻真技术研究所 | Method, apparatus and storage medium for scheduling notification based on driving assistance function |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120295645A1 (en) * | 2011-05-18 | 2012-11-22 | Microsoft Corporation | Delayed and time-space bound notifications |
US20160223343A1 (en) * | 2015-01-30 | 2016-08-04 | Here Global B.V. | Method and apparatus for providing aggregated notifications for travel segments |
Family Cites Families (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8270933B2 (en) * | 2005-09-26 | 2012-09-18 | Zoomsafer, Inc. | Safety features for portable electronic device |
EP1879000A1 (en) * | 2006-07-10 | 2008-01-16 | Harman Becker Automotive Systems GmbH | Transmission of text messages by navigation systems |
US20130150004A1 (en) * | 2006-08-11 | 2013-06-13 | Michael Rosen | Method and apparatus for reducing mobile phone usage while driving |
US8700014B2 (en) * | 2006-11-22 | 2014-04-15 | Bindu Rama Rao | Audio guided system for providing guidance to user of mobile device on multi-step activities |
US9865099B2 (en) * | 2008-02-05 | 2018-01-09 | Madhavi Jayanthi | Vehicle installed mobile device and server for GPS services and task assignments |
US20130275899A1 (en) * | 2010-01-18 | 2013-10-17 | Apple Inc. | Application Gateway for Providing Different User Interfaces for Limited Distraction and Non-Limited Distraction Contexts |
US9615213B2 (en) * | 2009-07-21 | 2017-04-04 | Katasi Llc | Method and system for controlling and modifying driving behaviors |
US20120050028A1 (en) * | 2010-08-27 | 2012-03-01 | Nissan Technical Center North America, Inc. | Vehicle text messaging system and method using a meter cluster display |
US8312096B2 (en) | 2010-12-08 | 2012-11-13 | Google Inc. | Priority inbox notifications and synchronization for mobile messaging application |
US8655321B2 (en) * | 2011-04-11 | 2014-02-18 | Microsoft Corporation | Adaptive notifications |
US9288270B1 (en) * | 2011-04-22 | 2016-03-15 | Angel A. Penilla | Systems for learning user preferences and generating recommendations to make settings at connected vehicles and interfacing with cloud systems |
US9229905B1 (en) * | 2011-04-22 | 2016-01-05 | Angel A. Penilla | Methods and systems for defining vehicle user profiles and managing user profiles via cloud systems and applying learned settings to user profiles |
US10289288B2 (en) * | 2011-04-22 | 2019-05-14 | Emerging Automotive, Llc | Vehicle systems for providing access to vehicle controls, functions, environment and applications to guests/passengers via mobile devices |
US9104537B1 (en) * | 2011-04-22 | 2015-08-11 | Angel A. Penilla | Methods and systems for generating setting recommendation to user accounts for registered vehicles via cloud systems and remotely applying settings |
US9123035B2 (en) * | 2011-04-22 | 2015-09-01 | Angel A. Penilla | Electric vehicle (EV) range extending charge systems, distributed networks of charge kiosks, and charge locating mobile apps |
US9285944B1 (en) * | 2011-04-22 | 2016-03-15 | Angel A. Penilla | Methods and systems for defining custom vehicle user interface configurations and cloud services for managing applications for the user interface and learned setting functions |
US8805349B2 (en) * | 2011-05-04 | 2014-08-12 | General Motors Llc | Method for controlling mobile communications |
US8565838B2 (en) * | 2011-05-04 | 2013-10-22 | General Motors Llc | Method for controlling mobile communications |
US9338235B2 (en) * | 2011-09-29 | 2016-05-10 | Samsung Electronics Co., Ltd | Method for providing in-vehicle notification service, machine-readable storage medium, head unit device, and mobile device |
US8942692B2 (en) * | 2011-12-02 | 2015-01-27 | Text Safe Teens, Llc | Remote mobile device management |
US20140227991A1 (en) * | 2012-03-31 | 2014-08-14 | Michael S. Breton | Method and system for location-based notifications relating to an emergency event |
US8943126B1 (en) * | 2012-08-21 | 2015-01-27 | Google Inc. | Rate limiter for push notifications in a location-aware service |
US9330379B2 (en) * | 2012-09-14 | 2016-05-03 | Intel Corporation | Providing notifications of messages for consumption |
US20140123157A1 (en) * | 2012-10-31 | 2014-05-01 | Nokia Corporation | Method and apparatus for providing application notifications |
US20140129661A1 (en) * | 2012-11-06 | 2014-05-08 | Somas THYAGARAJA | Smart Web Notifications |
JP6308942B2 (en) * | 2013-01-18 | 2018-04-11 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | Content presentation method and program |
US9167388B2 (en) | 2013-01-18 | 2015-10-20 | Apple Inc. | Method and apparatus for automatically adjusting the operation of reminders based on device event history |
US9141583B2 (en) * | 2013-03-13 | 2015-09-22 | Ford Global Technologies, Llc | Method and system for supervising information communication based on occupant and vehicle environment |
US9300779B2 (en) * | 2013-03-15 | 2016-03-29 | Blackberry Limited | Stateful integration of a vehicle information system user interface with mobile device operations |
JP6433641B2 (en) * | 2013-04-02 | 2018-12-05 | クラリオン株式会社 | Information display device and information display method |
US10805861B2 (en) * | 2013-05-08 | 2020-10-13 | Cellcontrol, Inc. | Context-aware mobile device management |
US10268530B2 (en) * | 2013-05-08 | 2019-04-23 | Cellcontrol, Inc. | Managing functions on an iOS-based mobile device using ANCS notifications |
US20150046828A1 (en) * | 2013-08-08 | 2015-02-12 | Samsung Electronics Co., Ltd. | Contextualizing sensor, service and device data with mobile devices |
US20170279957A1 (en) * | 2013-08-23 | 2017-09-28 | Cellepathy Inc. | Transportation-related mobile device context inferences |
US9710792B2 (en) * | 2013-11-12 | 2017-07-18 | International Business Machines Corporation | Retrospective management of previously sent electronic messages |
US9024747B1 (en) * | 2013-11-27 | 2015-05-05 | Google Inc. | Deferring alert of notifications for a particular time |
GB2521124B (en) * | 2013-11-29 | 2020-12-23 | Denso Corp | Method for an in-vehicle apparatus, an in-vehicle apparatus and a vehicle |
US8738723B1 (en) | 2013-12-10 | 2014-05-27 | Google Inc. | Predictive forwarding of notification data |
US9866673B2 (en) * | 2013-12-18 | 2018-01-09 | Medlegal Network, Inc. | Methods and systems of managing accident communications over a network |
JP6546741B2 (en) * | 2014-01-06 | 2019-07-17 | ハーマン インターナショナル インダストリーズ インコーポレイテッド | Scheduling of in-vehicle notification presentation |
US9037455B1 (en) * | 2014-01-08 | 2015-05-19 | Google Inc. | Limiting notification interruptions |
US8938394B1 (en) * | 2014-01-09 | 2015-01-20 | Google Inc. | Audio triggers based on context |
US9754425B1 (en) * | 2014-02-21 | 2017-09-05 | Allstate Insurance Company | Vehicle telematics and account management |
US20150244854A1 (en) * | 2014-02-21 | 2015-08-27 | Todd E. Babel | Vehicle operation safety systems |
US10284651B2 (en) * | 2014-02-27 | 2019-05-07 | Harman International Industries, Incorporated | Data aggregation and delivery |
WO2015134311A1 (en) * | 2014-03-03 | 2015-09-11 | Inrix Inc | Traffic obstruction detection |
US9960986B2 (en) * | 2014-03-19 | 2018-05-01 | Uber Technologies, Inc. | Providing notifications to devices based on real-time conditions related to an on-demand service |
US9736650B2 (en) * | 2014-03-27 | 2017-08-15 | Here Global B.V. | Method and apparatus for adapting navigation notifications based on compliance information |
JP6678382B2 (en) * | 2014-03-28 | 2020-04-08 | 株式会社デンソー | Mobile terminal operation system for vehicles |
EP3127060A1 (en) * | 2014-03-31 | 2017-02-08 | PCMS Holdings, Inc. | System and method for updating notifications across devices and applications |
US10467600B2 (en) * | 2014-06-04 | 2019-11-05 | Google Llc | Determining additional task features for a task of a user |
EP3158691A4 (en) * | 2014-06-06 | 2018-03-28 | Obschestvo S Ogranichennoy Otvetstvennostiyu "Speactoit" | Proactive environment-based chat information system |
CN106464747B (en) * | 2014-06-22 | 2020-09-08 | 萨维罗纳2014有限公司 | Vehicle safety system and method for operating driver's mobile phone |
US9272658B2 (en) * | 2014-06-24 | 2016-03-01 | Google Inc. | Attention and event management |
GB201411309D0 (en) * | 2014-06-25 | 2014-08-06 | Tomtom Int Bv | Vehicular human machine interfaces |
US10070282B2 (en) * | 2014-07-23 | 2018-09-04 | Verizon Patent And Licensing Inc. | System and method for handling undesired communication at a mobile device |
US20180299284A1 (en) * | 2014-12-02 | 2018-10-18 | Kevin Sunlin Wang | Method and System For Avoidance of Accidents |
US9509820B2 (en) * | 2014-12-03 | 2016-11-29 | Harman International Industries, Incorporated | Methods and systems for controlling in-vehicle speakers |
US9509857B2 (en) * | 2014-12-10 | 2016-11-29 | Google Inc. | Mobile device push notification using mobile application usage history |
US10009738B2 (en) * | 2014-12-23 | 2018-06-26 | Palo Alto Research Center Incorporated | System and method for determining an appropriate time for providing a message to a driver |
KR102323393B1 (en) * | 2015-01-12 | 2021-11-09 | 삼성전자주식회사 | Device and method of controlling the device |
US20180174446A1 (en) * | 2015-02-09 | 2018-06-21 | Kevin Sunlin Wang | System and method for traffic violation avoidance |
US9554356B2 (en) * | 2015-02-19 | 2017-01-24 | Microsoft Technology Licensing, Llc | Personalized reminders |
JP6559437B2 (en) * | 2015-02-19 | 2019-08-14 | クラリオン株式会社 | Information processing system, in-vehicle device, and terminal device |
US10135937B2 (en) * | 2015-02-19 | 2018-11-20 | Microsoft Technology Licensing, Llc | Personalized notifications |
JP2018508090A (en) * | 2015-03-13 | 2018-03-22 | プロジェクト レイ リミテッド | System and method for adapting user interface to user attention and driving conditions |
JP6292218B2 (en) * | 2015-04-03 | 2018-03-14 | 株式会社デンソー | Information presenting apparatus and information presenting method |
US9586524B2 (en) * | 2015-07-31 | 2017-03-07 | International Business Machines Corporation | Personalized in-car variable message signs |
US20170072850A1 (en) * | 2015-09-14 | 2017-03-16 | Pearl Automation Inc. | Dynamic vehicle notification system and method |
US20170101054A1 (en) * | 2015-10-08 | 2017-04-13 | Harman International Industries, Incorporated | Inter-vehicle communication for roadside assistance |
CN105227572B (en) * | 2015-10-19 | 2018-04-20 | 武汉大学 | Access control system and method based on context aware on a kind of mobile platform |
US9739617B2 (en) * | 2015-11-23 | 2017-08-22 | Telenav, Inc. | Navigation system with prompt mechanism and method of operation thereof |
US20160080223A1 (en) * | 2015-12-01 | 2016-03-17 | Electro-Motive Diesel Inc. | Dynamic management of notifications |
WO2017100167A1 (en) * | 2015-12-06 | 2017-06-15 | Voicebox Technologies Corporation | System and method of conversational adjustment based on user's cognitive state and/or situational state |
US11205240B2 (en) * | 2015-12-30 | 2021-12-21 | Waymo Llc | Autonomous vehicle services |
US10302445B2 (en) * | 2016-02-01 | 2019-05-28 | Ford Global Technologies, Llc | System and method for navigation guidance using a wireless network |
US10219116B2 (en) * | 2016-03-10 | 2019-02-26 | Allstate Insurance Company | Detection of mobile device location within vehicle using vehicle based data and mobile device based data |
US10887266B2 (en) * | 2016-04-13 | 2021-01-05 | Mcafee, Llc | Personalization of delivery of notifications |
US20170316533A1 (en) * | 2016-04-29 | 2017-11-02 | GM Global Technology Operations LLC | Personal safety and privacy features for passengers of an autonomous vehicle based transportation system |
US20170324684A1 (en) * | 2016-05-09 | 2017-11-09 | Bidhu Kishan Dharmapalan | Centralized message system and methods |
US9826500B1 (en) * | 2016-05-11 | 2017-11-21 | International Business Machines Corporation | Preventing driver distraction from incoming notifications |
US10423292B2 (en) * | 2016-05-17 | 2019-09-24 | Google Llc | Managing messages in vehicles |
US10306586B2 (en) * | 2016-06-10 | 2019-05-28 | Apple Inc. | Coordinated notifications |
US10769548B2 (en) * | 2016-06-17 | 2020-09-08 | Facebook, Inc. | Value model for sending notifications |
US9730181B1 (en) * | 2016-07-14 | 2017-08-08 | Yoshinori Matsumoto | Mobile terminal with call function or texting function, or a function as a game terminal, game program and game method executed by mobile terminal |
US10471896B2 (en) * | 2016-10-20 | 2019-11-12 | Google Llc | Automated pacing of vehicle operator content interaction |
US10191462B2 (en) * | 2017-06-06 | 2019-01-29 | International Business Machines Corporation | Vehicle electronic receptionist for communications management |
-
2017
- 2017-11-20 US US15/818,323 patent/US10498685B2/en active Active
-
2018
- 2018-11-15 JP JP2019568379A patent/JP6955034B2/en active Active
- 2018-11-15 KR KR1020217021143A patent/KR102377935B1/en active IP Right Grant
- 2018-11-15 CN CN202311182819.XA patent/CN117319339A/en active Pending
- 2018-11-15 CN CN201880038733.0A patent/CN110771186B/en active Active
- 2018-11-15 EP EP18815433.0A patent/EP3619926B1/en active Active
- 2018-11-15 EP EP23159021.7A patent/EP4221270A3/en active Pending
- 2018-11-15 KR KR1020197036461A patent/KR102276283B1/en active IP Right Grant
- 2018-11-15 WO PCT/US2018/061318 patent/WO2019099695A1/en unknown
-
2019
- 2019-11-27 US US16/698,874 patent/US20200099645A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120295645A1 (en) * | 2011-05-18 | 2012-11-22 | Microsoft Corporation | Delayed and time-space bound notifications |
US20160223343A1 (en) * | 2015-01-30 | 2016-08-04 | Here Global B.V. | Method and apparatus for providing aggregated notifications for travel segments |
Also Published As
Publication number | Publication date |
---|---|
CN110771186B (en) | 2023-10-03 |
KR20210088021A (en) | 2021-07-13 |
US20190158447A1 (en) | 2019-05-23 |
EP4221270A2 (en) | 2023-08-02 |
EP3619926B1 (en) | 2023-05-03 |
EP3619926A1 (en) | 2020-03-11 |
JP2020530605A (en) | 2020-10-22 |
CN110771186A (en) | 2020-02-07 |
WO2019099695A1 (en) | 2019-05-23 |
CN117319339A (en) | 2023-12-29 |
KR20200005641A (en) | 2020-01-15 |
KR102276283B1 (en) | 2021-07-12 |
EP4221270A3 (en) | 2023-08-16 |
KR102377935B1 (en) | 2022-03-23 |
US10498685B2 (en) | 2019-12-03 |
JP6955034B2 (en) | 2021-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200099645A1 (en) | Systems, methods, and apparatus for controlling provisioning of notifications based on sources of the notifications | |
US11817099B2 (en) | Systems, methods, and apparatuses for resuming dialog sessions via automated assistant | |
JP7250853B2 (en) | A virtual assistant configured to recommend actions to facilitate existing conversations | |
CN108460285B (en) | Transitioning between private and non-private states | |
KR20200010503A (en) | Dynamic adjustment of notification output provision to reduce user distraction and / or to reduce the use of computing resources | |
GB2555922A (en) | Selecting chatbot output based on user state | |
US20220391772A1 (en) | Automatic generation and transmission of a status of a user and/or predicted duration of the status | |
US20210335356A1 (en) | Dynamically delaying execution of automated assistant actions and/or background application requests | |
MX2013005342A (en) | Messaging system with multiple messaging channels. | |
US20240167833A1 (en) | Conditional preparation for automated assistant input from a user in a vehicle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GOOGLE LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AGGARWAL, VIKRAM;GALI, MOISES MORGENSTERN;SIGNING DATES FROM 20171116 TO 20171117;REEL/FRAME:051821/0438 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PRE-INTERVIEW COMMUNICATION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |