Limiting message notifications and conversations based on device type, message category, and time period
By maintaining the data structures of equipment, message and time categories, combined with machine learning model analysis, selective presentation and hiding of notifications and conversations are achieved, solving the problem of notification interrupting user workflow in the existing technology, and improving user experience.
Patent Information
- Application Number
- CN202380090394.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-01-06
- Filing Date
- 2023-12-19
- Publication Date
- 2025-08-08
AI Technical Summary
Existing messaging platforms cannot provide fine-grained control over presenting notifications on user devices, resulting in notifications that may interrupt user workflow or occur at inappropriate times.
By maintaining data structures, the relationship between device categories, message categories and time categories of user devices, selectively present or hide notifications and conversations based on these category information, machine learning models analyze message content to predict categories, and control the presentation of notifications based on the time period configured by the user.
It enables automatic ban on unnecessary notifications and conversations at specified times and device categories, improving user experience and avoiding workflow disruptions.
Smart Images

Figure CN120457445A_ABST
Abstract
Description
Background Art
[0001] Users may receive a large number of email messages, text messages, chat messages, and / or other types of messages on their user devices throughout the day. User devices typically present graphical, auditory, and / or tactile notifications to alert the user that a message has been received. However, it is not always desirable to receive such notifications. Notifications may interrupt the user's workflow or may be inappropriate at certain times. Users may wish to limit which message notifications can be presented on their user devices of different categories based on the message category and the time period in which the messages were received. However, current messaging platforms do not provide such fine-grained control over the notifications presented on user devices. Therefore, there is a need for improved systems and methods that provide fine-grained control over which notifications are presented to users based on the message category, the category of each user device, and the time at which the message was received. Summary of the Invention
[0002] An example data processing system according to the present disclosure may include a processor and a machine-readable medium storing executable instructions. The instructions, when executed, cause the processor to perform operations including: maintaining a data structure defining identification codes of user devices associated with a user, a device class and a message class associated with each of the user devices, and a relationship between the message classes; and updating the data structure. Updating the data structure includes: obtaining device category information, the device category information grouping a plurality of user devices associated with a first user into a plurality of categories, the device category information including a device identifier and a device category associated with each of the plurality of user devices; obtaining time category information, the time category information associating each of a plurality of time periods with allowed device category information and message category information, the allowed device category information indicating which categories of user devices are allowed to provide notifications of received messages during the time period, and the message category information indicating which categories of messages from a plurality of message categories may be generated for the notifications during the time period; receiving a first message for the first user at a first time; determining a first message category of the first message from the plurality of message categories; determining a first time category associated with the first message based on the first time; determining, based on the data structure associated with the first user, that a first subset of the plurality of user devices associated with the first device category are allowed to provide notifications that the first message has been received, the first subset of the plurality of user devices being associated with one or more user device categories that are allowed to provide notifications of received messages of the first message category associated with the first time category; and causing the first subset of the plurality of user devices to present a first notification regarding receipt of the first message.
[0003] An example data processing system according to the present disclosure may include a processor and a machine-readable medium storing executable instructions. The instructions, when executed, cause the processor to perform operations including: maintaining a data structure defining relationships between user devices associated with a user, device classes associated with the devices, and message classes; and updating the data structure. Updating the data structure includes obtaining device category information at a user device, the device category information indicating that the user device is associated with a first user device category among multiple user devices associated with a first user; obtaining time category information at the user device, the time category information associating each time period in a plurality of time periods with message category information, the message category information indicating which message categories of a plurality of message categories the user device is allowed to display instant notifications of received messages within the time period; receiving a first message for the first user at a first time; determining a first message category of the first message among the multiple message categories; determining a first time category associated with the first message based on the first time; determining, based on the data structure associated with the first user, that the user device is allowed to provide a notification that the first message has been received based on the first category of the user device, the first category of the user device indicating that the user device is allowed to provide notifications of received messages of the first message category associated with the first time category; and presenting a first notification about the receipt of the first message via a user interface of the user device.
[0004] An example data processing system according to the present disclosure may include a processor and a machine-readable medium storing executable instructions. When the instructions are executed, the processor performs operations, the operations including: maintaining a data structure that defines an identification code of a user device associated with a user, a device category associated with each of the user devices, a message category, and a time category; and updating the data structure by the following operations: obtaining device category information, the device category information grouping a plurality of user devices associated with a first user into a plurality of categories, the device category information including a device identifier and a device category associated with each of the plurality of user devices; obtaining time category information, the time category information associating each of a plurality of time periods with allowed device category information and message category information, the allowed device category information indicating which categories of user devices are allowed to provide notifications of received messages during the time period, and and the message category information indicates for which categories of messages from multiple message categories the notification can be generated during the time period; obtaining conversation information of multiple conversations associated with the user; determining the message category associated with each of the multiple conversations; determining a first time category associated with a first time; based on the data structure associated with the first user, determining a first subset of the multiple conversations that are allowed to be presented on a first user device associated with the first user according to the first time category, and determining a second subset of the multiple conversations that are not allowed to be presented on the first user device associated with the first user according to the first time category; causing the first subset of the multiple conversations to be presented on the first user device; and causing the second subset of the multiple conversations to be hidden on the first user device.
[0005] This Summary is intended to introduce a set of concepts in a simplified form that are further described in the Detailed Description below. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The accompanying drawings depict one or more embodiments of the present teachings by way of example only and not limitation. In the accompanying drawings, like reference numerals refer to identical or similar elements. In addition, it should be understood that the accompanying drawings are not necessarily drawn to scale.
[0007] Figure 1 is a diagram illustrating an example computing environment in which the techniques disclosed herein for managing synchronization of files and file information between user devices and a file storage platform may be implemented.
[0008] Figure 2A and Figure 2B It shows Figure 1 A diagram illustrating additional features of the communication platform and user equipment is shown.
[0009] Figures 3A to 3D An example of the interaction between the user equipment and the communication platform shown in the previous figures is shown.
[0010] Figures 4A to 4F is a diagram of an example user interface illustrating examples of notifications that are selectively presented or hidden according to the techniques disclosed herein.
[0011] Figures 4G to 4K is a diagram of an example user interface illustrating an example of a dialog that is selectively presented or hidden according to the techniques disclosed herein.
[0012] 5A to 5D is a diagram of an example data structure for storing configuration information for the techniques provided herein.
[0013] Figure 6A is a flow diagram of an example process for managing notifications presented on a user device associated with a user.
[0014] Figure 6B is a flow diagram of an example process for managing notifications presented on a user device associated with a user.
[0015] Figure 6C is a flow diagram of an example process for managing a conversation presented on a user device.
[0016] Figure 7 is a block diagram illustrating an example software architecture, portions of which may be used in conjunction with the various hardware architectures described herein, which may implement any of the features described.
[0017] Figure 8 is a block diagram illustrating components of an example machine configured to read instructions from a machine-readable medium and perform any of the features described herein. DETAILED DESCRIPTION
[0018] In the following detailed description, numerous specific details are set forth by way of example in order to provide a thorough understanding of the relevant teachings. However, it will be apparent that the present teachings can be practiced without such details. In other instances, well-known methods, procedures, components, and / or circuits have been described at a relatively high level, without detail, in order to avoid unnecessarily obscuring aspects of the present teachings.
[0019] Technologies are provided for limiting which notifications and / or conversations are presented on user devices. These technologies address technical issues associated with configuring which notifications are presented on user devices by providing users with fine-grained control over which notifications are presented. These technologies allow users to associate each of their user devices with a device category. The user also defines time category information that associates each of multiple time periods with allowed device category information and allowed message category information. Users can configure which categories of user devices are allowed to present notifications based on the message category and the time period during which messages are received. A technical benefit of this approach is that the messaging platform can automatically prohibit the presentation of unnecessary and / or undesirable notifications on user devices of a specified category at a specified time. Another technical benefit is that these technologies automatically temporarily hide entire conversations on user devices of a specified category at a specified time during a selected time period. As a result, the user workflow is not interrupted by the presentation of notifications and / or conversations that the user does not want to see at that time, and the user experience is significantly improved. These and other technical benefits of the technology disclosed herein will become apparent through a discussion of the following example embodiments.
[0020] Figure 1 1 is a diagram illustrating an example computing environment 100 in which the techniques disclosed herein for limiting notifications presented to a user may be implemented. The computing environment 100 may include a communication platform 110. The example computing environment 100 may also include user devices 105a, 105b, 105c, and 105d (collectively, user devices 105). The user devices 105a, 105b, 105c, and 105d may communicate with the communication platform 110 via a network 120. The network 120 may be a combination of one or more public and / or private networks and may be implemented, at least in part, by the Internet.
[0021] exist Figure 1 In the example shown, user devices 105a-105d are associated with the same user. User device 105a is a laptop computer, which is associated with a device category indicating that laptop computers are primarily used for work. User device 105b is a desktop computer, which is also associated with a device category indicating that desktop computers are primarily used for work. User device 105c is a mobile phone, which is a hybrid device used for both work and personal use. User device 105d is a tablet computer, which is associated with a personal device category indicating that tablets are primarily used for personal use unrelated to work. Figure 1 The example shown includes only four user devices 105a-105d, and the user devices 105 are associated with only three device categories. In other implementations, a user may be associated with a different number of user devices 105 and / or a user device 105 may be associated with a different number of device categories.
[0022] exist Figure 1In the example shown, the communication platform 110 is implemented as a cloud-based service or set of services. The communication platform 110 is configured to facilitate communications between users of the communication platform 110. The communication platform 110 supports one or more of emails, text messages, chat messages, and / or other types of messages. In some embodiments, the communication platform 110 may also provide other services accessible to users via their respective user devices 105, such as, but not limited to, a collaborative platform that enables users to create and share electronic content. The term "electronic document" as used herein may refer to any document or component in electronic form that can be created by a computing device, stored in a machine-readable storage medium, and / or transmitted between computing devices over a network connection or via a machine-readable storage medium. Examples of such electronic documents include, but are not limited to, word processing documents, presentations, websites (e.g., Microsoft Site), digital drawings, media files, their components, etc.
[0023] User devices 105a, 105b, 105c, and 105d are each computing devices that can be implemented as portable electronic devices, such as mobile phones, tablet computers, laptop computers, portable digital assistant devices, portable game consoles, and / or other such devices. User devices 105a, 105b, and 105c can also be implemented in computing devices having other form factors, such as desktop computers, in-vehicle computing systems, kiosks, point-of-sale systems, video game consoles, and / or other types of computing devices. Although Figure 1 The example embodiment shown includes four user devices, but other embodiments may include a different number of user devices 105 that can utilize the services provided by the communication platform 110. Furthermore, in some embodiments, the application functionality provided by the communication platform 110 may be implemented in part by native applications installed on the user devices 105a, 105b, 105c, and 105d, and the user devices 105a, 105b, 105c, and 105d may communicate directly with the communication platform 110 via a network connection.
[0024] Figure 2A and Figure 2B is a diagram illustrating additional features of the communication platform and user equipment 105. Figure 2A In the illustrated example embodiment, the communication platform 110 is configured to implement the techniques provided herein for managing which notifications and / or conversations may be presented on the user device 105 in response to receiving a message. Figure 2B In the illustrated embodiment, user device 105 is configured to implement the techniques provided herein for managing which notifications and / or conversations may be presented on the user device in response to receiving a message.
[0025] Figure 2AAdditional features of the communication platform 110 and user device 105 are shown. The communication platform 110 includes a message processing unit 205, a notification configuration unit 210, a configuration data store 215, a content classification model 220, an authentication unit 225, a user interface unit 230, a message queue 235, and a conversation visibility unit 240.
[0026] Message processing unit 205 receives messages intended for a user of user device 105. Messages may be received from a user device of another user (not shown). Message processing unit 205 is configured to determine the intended recipient of a message based on a phone number, email address, user alias, or other identifier associated with the intended recipient of the message. Message processing unit 205 is configured to obtain user device information of the intended recipient from configuration data repository 215. As discussed in the previous example, a user may be associated with multiple user devices, and the user may receive messages on all or a subset of these user devices. Messages may also be associated with a conversation, which is a group of related messages in a message thread. User device information also includes information associating each user device with a device category. Users associated with the devices may assign a device category from a set of predefined device categories to each device. In other embodiments, communication platform 110 provides a user interface that enables users to define additional user device categories. Message processing unit 205 also accesses time category information from configuration data repository 215. The time category information associates each of a plurality of time periods with allowed device category information and allowed message category information. The allowed device category information indicates which categories of user devices are allowed to provide notifications for received messages during a specified time period, and the message category information indicates which categories of messages from multiple message categories can be generated for notifications during the time period. The message processing unit 205 determines the message category of the received message and determines whether the message can be delivered to each user device based on the user device information retrieved from the configuration data repository 215. In some embodiments, the message processing unit 205 determines the message category based on user input. In other embodiments, the message processing unit 205 uses the content classification model 220 to analyze the message to obtain a prediction of the message category. The message processing unit 205 sends the message to each user device for which notifications are allowed during the time category of the received message. The message processing unit 205 delays the delivery of the message to other user devices until a time period in which the message can be delivered to these other user devices is reached.
[0027] In some embodiments, the message processing unit 205 inserts the delayed message into a message queue 235, which is a data structure for storing information indicating which messages have not yet been delivered and the user devices to which the messages have not yet been delivered. In some embodiments, the message queue 235 can be implemented as a separate queue for each type of message that can be processed by the communication platform 110. In a non-limiting example, for each type of message that the communication platform 110 is configured to process, email messages are inserted into a first queue, text messages are inserted into a second queue, chat messages are inserted into a third queue, and so on. The message processing unit 205 is configured to periodically check the message queue 235 to determine whether the pending message can be delivered based on the message category information and the time category information.
[0028] In some embodiments, the notification configuration unit 210 provides a web application that can be accessed by a browser application implemented on the user device 105a-105d or a native application that supports the browser. The web application provides a user interface that enables the user to associate the user device with the user. The web application also provides a user interface that enables the user to define the user's time category information and associate the allowed device category information and allowed message category information with the time category information. In some embodiments, these categories are applied to notifications associated with individual messages and / or entire conversations. The notification configuration unit 210 stores the configuration information obtained from the user in the configuration data repository 215. In some embodiments, the configuration data repository 215 updates the configuration data repository 215 with the information obtained from the user. 5A to 5D The data structure shown in .
[0029] The configuration data store 215 is a persistent data store that stores configurations used by the communication platform 110. Each user can be associated with customized device category information and time category information that suits the user's needs. Users may have different combinations of user devices and different usage habits, which can be accommodated by allowing users to customize which notifications can be presented on which devices during a specific time period.
[0030] The content classification model 220 can be implemented using various machine learning architectures, such as deep neural networks (DNNs), recurrent neural networks (RNNs), convolutional neural networks (CNNs), and / or other types of neural networks. The content classification model 220 is trained to receive a text message as input and output a prediction of the message's category. The input can be various types of messages, including, but not limited to, emails, text messages, or chat messages. The content classification model 220 is trained to predict the message category from a set of predetermined message categories for which the model has been trained. Examples of such message categories include, but are not limited to, work-related messages, urgent work-related messages, personal messages, and urgent personal messages. In some embodiments, a default message category may also be provided and initially assigned to a message and / or conversation until a message category is determined for that message or conversation. Furthermore, once a message category has been assigned to a message in a conversation, subsequent messages in the thread may be assigned the same message category without each message in the thread being analyzed by the content classification model 220 to determine its message category. In other embodiments, each message in a conversation is analyzed by the content classification model 220 to ensure that the message category has not changed. In a non-limiting example, a first message in a conversation is classified as a personal message, and a second message in the conversation is classified as a work-related message. This change in message classification can cause the communication platform 110 to handle notifications associated with the two messages differently. In a non-limiting example, the change in message classification from personal to work-related causes the communication platform 110 to allow notifications associated with the message thread to be presented to the user during work hours and / or to display the conversation to the user in the browser application 250 and / or one or more native applications 255. Before the conversation is reclassified from personal to work-related, the communication platform 110 will delay notifications associated with messages associated with the conversation during work hours and / or provide silent notifications for messages associated with the conversation during work hours. Additionally, in some embodiments, the communication platform 110 will hide the conversation in the browser application 250 and / or one or more native applications 255 during work hours to avoid distracting the user with personal messages during work hours.
[0031] In some embodiments, the performance of the content classification model 220 is fine-tuned based on feedback received from users indicating whether the communication platform 110 correctly classified the message. In some embodiments, the notification configuration unit 210 provides a user interface that allows the user to provide this feedback. Fine-tuning the content classification model 220 can enable the model to provide better predictions of message categories in the future.
[0032] The authentication unit 225 provides functionality for verifying whether a user is allowed to access services provided by the communication platform 110. In some embodiments, the authentication unit 225 provides functionality for receiving a user's authentication credentials from the user's corresponding user device 105. The authentication unit 225 can be configured to verify that the authentication credentials are valid and, in response to the authentication credentials being valid, allow the user to access services provided by the communication platform 110.
[0033] In some embodiments, the communication platform 110 includes a conversation visibility unit 240. In such embodiments, the communication platform 110 is configured to selectively present or hide conversations associated with certain message categories on the user device 105 based on the message category associated with the conversation, time category information associated with the user, and user device category information. The selective presentation and / or hiding of conversations can be implemented in addition to or in lieu of selectively delaying notifications and / or silencing the presentation of notifications. Furthermore, in some embodiments, the selective presentation and / or hiding of conversations can be performed on certain categories of user devices while selectively delaying notifications and / or silencing the presentation of notifications on other categories of user devices.
[0034] In some embodiments, the user accesses the message content via one or more native applications 255 on each user device 105. In such embodiments, the communication platform 110 is configured to maintain information indicating which conversations are associated with the user of the user device 105 and the message category associated with each conversation. In some embodiments, the message category associated with each conversation is re-evaluated and updated each time a message associated with the conversation is received. In some embodiments, the conversation visibility unit 240 is scheduled to periodically determine whether conversations associated with the user can be presented on each category of user devices associated with the user. In some embodiments, this determination is performed by the conversation visibility unit 240 at the beginning of a time period associated with each time category to determine whether each conversation should be presented to the user or hidden from the user on each category of user devices and when a message associated with each conversation is received.
[0035] The communication platform 110 sends a signal to one or more native applications 255 to selectively present or hide a conversation. An example of selectively hiding a conversation is Figures 4G to 4K , which is discussed in detail in the following examples. In other embodiments, for example Figure 2B As shown, the user device 105 determines whether to display each conversation based on the device category of the client device 205, the time category information, and the message category associated with each conversation.
[0036] In some embodiments, the communication platform 110 implements a web application that provides access to various services of the communication platform 110. The message processing unit 205 provides a web application for creating, receiving, and replying to messages. The notification configuration unit 210 provides a web application for configuring various parameters for controlling the types of notifications that can be presented on the user device 105. In some embodiments, the conversation visibility unit 240 sends a signal to one or more native applications 255 to selectively present or hide a conversation based on the message category, time category information, and device category information.
[0037] The user device 105 may include one or more native applications 255 and / or browser applications 250. In some embodiments, the one or more native applications 255 include a native application configured to communicate with the communication platform. In some embodiments, the communication platform 110 provides a web application that provides access to various services of the communication platform 110. In some embodiments, the one or more native applications 255 include a native application configured to communicate with the communication platform 110. In such embodiments, the native application implements a user interface for sending and receiving messages and for configuring various parameters for controlling notifications that can be presented on the user device 105.
[0038] The browser application 250 is an application for accessing and viewing web-based content, which may be provided by the communication platform 110. In some embodiments, the notification configuration unit 210 of the communication platform 110 provides a web application that enables users to utilize the services of the communication platform 110 in a manner similar to the native applications described above.
[0039] The communication platform 110 can support both one or more web-enabled native applications 255 and one or more web applications, and users can choose which approach best suits their needs. The communication platform 110 can also provide support for one or more native applications 255, browser applications 250, or both to provide functionality for users of user devices 105 to obtain services provided by the communication platform 110.
[0040] In some embodiments, the user device 105 includes a message queue 265. In such embodiments, the message processing unit 205 sends to the user device 105 messages that have been stored in the message queue 235 of the communication platform 110, along with an indication of a time period during which the messages should be stored in the message queue 265 until a notification can be presented on the user device 105. In some embodiments, the indication can include time period information indicating when the user device 105 can remove the deferred message from the message queue 265 for processing by the native application 255, along with a notification of the message presented on the user device 105. In other embodiments, the message processing unit 205 sends to the user device 105 an indication that the message can be moved from the message queue 265 for processing by the native application 255, along with a notification of the message presented on the user device 105.
[0041] exist Figure 2B In the illustrated embodiment, the user device 105, rather than the communication platform 110, is configured to manage which notifications are presented on the user device 105. The user device 105 includes a message processing unit 270, a notification configuration unit 275, a configuration data store 280, and a content classification model 285. In such an embodiment, the message processing unit 205 sends messages received for a user to each user device 105 associated with the user. The message processing unit 205 is configured to obtain user device information of the intended recipient and device information of the intended recipient's user device 105 from the configuration data store 215. The message processing unit 205 then sends the message to each user device 105 for processing by the message processing unit 270 implemented on the user device 105. The message processing unit 270 obtains the user device information and the time category from the configuration data store 280. In some embodiments, the user device information and the time category information are provided by the user using the native application 255, and the native application 255 updates the configuration data store 280 on the user device 105 with this information. In some implementations, the user device 105 propagates this information to the communication platform 110 to update the configuration data repository 215 maintained by the communication platform 110. Updates to this information may also be propagated by the communication platform 110 to each user device 105 associated with the user, so that the user does not have to manually configure the settings of each user device 105 individually.
[0042] The message processing unit 270 analyzes the message received from the communication platform 110 and determines the category of the message. The message processing unit 270 determines the message category of the received message and determines whether a notification of the message can be presented on the user device 105 based on the user device information and time category information retrieved from the configuration data repository 215. In some embodiments, the message processing unit 270 determines the message category based on user input. In other embodiments, the message processing unit 270 uses a content classification model 285 to classify the message. The content classification model 285 is similar to Figure 2A . In some embodiments, the message processing unit 270 places messages for which notifications must be delayed into the message queue 265. The message processing unit 270 periodically checks the messages in the message queue 265 to determine whether the messages can be removed from the queue and the notifications presented to the user. In other embodiments, the message processing unit 270 is configured to provide incoming messages to the native application 255 for processing rather than placing the messages in the message queue 265, and the message processing unit 270 generates a silent notification on the user device 105. Silent notifications do not provide a tactile or audible indication on the user device 105. Silent notifications can include unobtrusive graphical elements on the display of the user device, such as a small icon or other indicator that a message has been received. Such graphical indications do not obstruct any content or application windows open on the user device, which could interrupt the user workflow.
[0043] In some embodiments, the client device 205 includes a conversation visibility unit 290. In such embodiments, the conversation visibility unit 290 is configured to cause conversations associated with certain message categories presented by one or more native applications 255 to be selectively presented or hidden based on the message categories associated with the conversations, time category information associated with the user, and device category information.
[0044] Figures 3A to 3D 105d and the communication platform 110.
[0026] An example of interaction between user devices 105a-105d and the communication platform 110 shown in the previous figures is shown. User devices 105a and 105b are laptop and desktop computers, respectively, associated with the work-related device category. User device 105c is a mobile phone associated with the mixed device category, indicating that user device 105c can be used for both work-related and personal tasks. User device 105d is a tablet computer associated with the personal device category, indicating that user device 105d is used for personal tasks not related to work. These example device categories are intended to illustrate the concepts herein and do not limit these techniques to those specific device categories or combinations of device categories.
[0045] exist Figure 3AIn the illustrated example embodiment, a work-related email message is received at communication platform 110. In this example embodiment, communication platform 110 determines that the intended recipient of the email message is associated with user devices 105a-105d. Communication platform 110 accesses user device information to determine the category of each user device in user devices 105a-105d. Communication platform 110 also determines the message category associated with the work-related email message. Communication platform 110 then uses temporal category information, including the determined allowed device category information and allowed message category information, to determine which categories of devices are permitted to display a notification regarding the receipt of the email message. In this example, during the time period in which the work-related email was received, the work-related email message is permitted to be addressed to devices in the work-related device category and the mixed device category. Communication platform 110 sends the email to user devices 105a, 105b, and 105c, and user devices 105a, 105b, and 105c display a notification regarding the receipt of the work-related email. The communication platform 110 does not send work-related emails to the user device 105d, which is a personal user device, and the user has not authorized notifications of messages in the work-related message category to be presented to the user on the user device 105d.
[0046] exist Figure 3BIn the illustrated example embodiment, a personal text message is received at communication platform 110. In this example embodiment, a notification indicating that a personal text message has been received can be presented on all user devices 105a-105d. However, communication platform 110 determines that notifications for the personal text message cannot be presented on user devices 105a and 105b, both of which fall into the work-related device category. The user in this embodiment has defined time category information that prevents notifications in the personal message category from being presented during work hours. Therefore, communication platform 110 inserts a copy of the personal text message into message queue 235 on the personal device. Communication platform 110 periodically checks whether messages in the message queue can be sent to user devices 105a and 105b. In this example embodiment, the user has defined time category information that indicates that notifications for any type of message that falls into the personal message category can be presented on work-related user devices 105a and 105b after work hours. The user has defined time category information indicating that personal messages can be sent to devices in the mixed device category and the personal device category at any time. Therefore, communication platform 110 sends the personal text message to user devices 105c and 105d when communication platform 110 receives the personal text message. The personal text message is forwarded to user devices 105c and 105d, and mobile devices 105c and 105d display a graphical, audible, or tactile notification of the personal text message.
[0047] Figure 3C is shown similar to Figure 3B FIGURE 1 illustrates another embodiment of an embodiment in which a personal text message is received at a communication platform 110. In this embodiment, the communication platform 110 does not store the personal text message in a message queue on the communication platform 110. Instead, each of the user devices 105a-105d is configured to manage notifications presented on that user device. The communication platform 110 sends the personal text message to the user devices 105a-105d. In some embodiments, the communication platform 110 may include a silent notification indicator with the personal text message sent to the user devices 105a and 105b, indicating that the user devices 105a and 105b should not present a tactile or audible notification to the user. However, the user devices 105a and 105b may present an unobtrusive graphical notification on the display of the user device. As will be discussed in more detail in the following examples, silent notifications may also be used in embodiments in which the conversation is hidden.
[0048] Figure 3D is shown similar to Figure 3B and Figure 3CFIG2 is a diagram of another embodiment of an embodiment shown. Communication platform 110 does not retain personal text messages in a message queue on communication platform 110, and user devices 105a-105d are responsible for managing notifications presented on these devices. User devices 105a and 105b store personal text messages in a message queue 265 implemented on each user device, and the personal text messages remain in message queue 265 until a time period is reached during which user devices in the work-related device category are allowed to present notifications in the personal message category.
[0049] Figures 4A to 4F is a diagram of an example user interface illustrating an example of the notification in the previous figures. Figure 4A 4 is an example of a user interface 402 of a text messaging application in which a first user (a project manager) drafts a text message 404 to a second user requesting an update on a project. The message is sent to the communication platform 110, which determines whether a notification regarding the receipt of the message should be presented on the second user's user device 105. Figure 4B An example user interface 406 is shown representing the desktop of a second user's laptop computer. The laptop computer is associated with a work-related device category, and the message is categorized as being associated with a work-related message category. In this example, communication platform 110 determines that a notification should be presented on the second user's laptop computer, and notification 408 is displayed on user interface 406.
[0050] Figure 4C 4 is an example of a user interface 410 of a text messaging application in which a first user drafts a text message 412 to a second user asking if the second user is still willing to have lunch together. As in the previous example, the message 412 is received by the communication platform 110, and the communication platform 110 determines whether the user device 105 associated with the second user can display a notification that the message 412 has been received. Figure 4D An example of a user interface 414 of a second user's mobile phone is shown. The mobile phone is associated with a personal device category, and the communication platform 110 categorizes the message as a personal message. The communication platform 110 determines that a notification 416 should be presented on the user interface 414 of the mobile phone. However, assume that the second user has a second mobile phone that is primarily used for work and is categorized in the work-related device category. The communication platform 110 determines, based on the time category information associated with the user, that notifications for messages that are not categorized in the work-related message category should not be displayed on the second mobile device during work hours. Figure 4D In the embodiment shown, no audible or tactile notification is presented to the user. Only an unobtrusive graphical notification 420 is presented on the user interface 418 of the second mobile phone. Figure 4EAnother example of a user interface 422 showing a laptop computer associated with a second user and categorized in the work-related device category is shown. An unobtrusive graphical notification 424 is presented on the laptop computer's user interface 422. Notifications 420 and 424 represent examples of silent notifications that may be presented on a user device. In other implementations, other types of silent notifications may be used.
[0051] Figures 4G to 4K 4 is a diagram of an example user interface 430 of a messaging application illustrating how conversations may be categorized and selectively presented or hidden on a native application 255 or a browser application on a client device 205. Conversations are selectively presented or hidden based on a device category associated with the client device 205, temporal category information, and a message category associated with the conversation.
[0052] exist Figure 4G In FIG, the message interface 430 shows four dialogues 432, 434, 436 and 438. In some embodiments, for example Figure 2A In the example embodiment shown in , the communication platform 110 is configured to classify each conversation and enable the conversation to be selectively presented or hidden. In other embodiments, for example Figure 2B In the example embodiment shown in , user device 105 is configured to classify each conversation and cause the conversation to be selectively presented or hidden. In this example, conversations 432 and 436 are work-related conversations, and conversations 434 and 438 are non-work-related personal conversations.
[0053] Figure 4H An example of these conversations that have been categorized is shown, and category indicators 442, 444, 446, and 448 are presented next to each conversation. In some implementations, such indicators can be presented next to each conversation to inform the user of the category that has been associated with the conversation. In some implementations, the user can click or otherwise actuate the category indicator to cause the conversation category configuration pane 470 to be displayed, as shown in FIG. Figure 4I As shown. The conversation category configuration pane 470 includes a drop-down menu from which a user can select a category from a category of message categories that can be associated with the conversation. The communication platform 110 and / or client device 105 updates the category associated with the message in response to the user changing the category. In some embodiments, feedback can be provided to the model used to classify messages to improve its predictions in response to the user changing the message category automatically assigned to the conversation by the communication platform 110 or client device 105.
[0054] Figure 4JAn example of a user interface 430 shown on a work-related device (e.g., user devices 105a and 105b and / or hybrid user device 105c used for both work-related and personal tasks) during a user's work hours is shown. Figure 4J In the example shown, the communication platform 110 or client device 105 has presented work-related conversations 432 and 436 and hidden personal conversations 434 and 438 based on user device information, category information, and message category information, as discussed in the previous examples. Figure 4K Another example of a user interface 430 is shown in which work-related conversations are presented and other conversations have been hidden. The user interface 430 includes a message 490 indicating that filtering is activated and providing the user with a link to display all conversations and / or configure notification settings for determining which message notifications and / or conversations should be presented to the user on each client device 105 for each message category and time category.
[0055] 5A to 5D is a diagram of an example data structure for storing configuration information for the techniques provided herein. Figure 5A An example of a user device data structure is shown that associates a user identifier of a user with a device identifier associated with the user device of the user. The user device data structure also includes a device category for each user device. As discussed in the previous example, a user can assign a device category to each of their user devices via a user interface provided by the communication platform 110. In some embodiments, the user device data is stored in the configuration data repository 215 on the communication platform 110 and / or the configuration data repository 280 on the user device 105.
[0056] Figure 5B An example of a temporal category data structure is shown that associates each of a plurality of time periods with allowed device category information and message category information. The allowed device category information indicates which categories of user devices are allowed to provide notifications of received messages during the time period, and the message category information indicates which categories of messages from a plurality of message categories may be notified during the time period.
[0057] Figure 5C An example of a message queue data structure that can be used to store message information in message queue 235 and / or message queue 265 is shown. The message queue data structure associates a message identifier, a message category, and a device identifier with each message. In some embodiments, the text of the message is also stored in the message queue data structure.
[0058] Figure 5DAn example of a temporal category data structure including a Hide Conversations field is shown. The communications platform 110 and / or client device 105 uses the Hide Conversations field to determine whether to hide conversations associated with message categories other than those permitted to be presented on the client device. If the Hide Other Conversations field is set to a "yes" value, conversations associated with message categories other than those permitted are hidden on the device categories listed in the Device Category Allowed field. The Delay Notification field is used to indicate whether notifications for other message categories are delayed. If the Delay Notification field is set to no, the communications platform 110 and / or client device 105 may present silent notifications for the hidden conversations. If the Delay Notification field is set to yes, the communications platform 110 and / or client device 105 are not permitted to present silent notifications for the hidden conversations, and notifications will be delayed until notifications associated with the category of messages associated with the conversation can be presented on client devices of the particular category.
[0059] exist Figure 5D In the non-limiting example shown, only conversations associated with the urgent work-related message category are allowed to be presented during "focused" time at work. Conversations not associated with this message category are hidden, and notifications associated with conversations associated with other categories are hidden. However, during non-focused time at work, all conversations associated with work-related conversations are allowed to be presented to the user on work-related devices and mixed work and personal use devices. In addition, during non-focused time at work, conversations associated with urgent personal messages are allowed to be presented on both work-related and mixed user devices. In this example, notifications for conversations associated with other message categories are not delayed, so silent notifications of messages for conversations in this message category are allowed, but these conversations are hidden on work-related and mixed devices. However, the user can click or otherwise activate these notifications to cause conversations associated with such silent notifications to be at least temporarily displayed. This method allows the user to work without interruption caused by distracting notifications, but provides the option to view messages and / or conversations associated with such silent notifications as needed.
[0060] Figure 6A 6 is a flow chart of an example process 600 for managing notifications presented on a user device 105 associated with a user. Process 600 may be implemented by the message processing unit 205 of the communication platform 110. Process 600 may be used in implementations where the communication platform 110 is responsible for determining which notifications may be presented to a user upon receipt of a message and on which user devices the notifications may be presented. Process 600 may also be used to determine which notifications must be delayed until such time as such notifications can be presented on a user device.
[0061] Process 600 includes an operation 602 of maintaining a data structure that defines a relationship between an identification code of a user device associated with a user, a device class associated with each of the user devices, and a message class. As discussed in the previous examples, the data structure (e.g., Figures 5A-5C The data structure shown in ) can be used to store data for configuring message categories, and notifications for the message categories can be presented on user devices 105 of a specific category when messages are received within a specific time category.
[0062] Process 600 includes an operation of updating a data structure 604. The message processing unit 205 and / or other units of the user device 105 may update the data structure. In some embodiments, updating the data structure includes operations 606-618.
[0063] Process 600 includes an operation 606 of obtaining device category information that groups a plurality of user devices associated with a first user into a plurality of categories. The device category information includes a device identifier and a device category associated with each of the plurality of user devices of the user. As discussed in the previous example, a user can categorize their user devices into one of a plurality of categories. In some embodiments, devices can be categorized into work-related devices, personal devices, and hybrid devices for a combination of personal and work-related uses. These categories are intended merely to illustrate the concepts described herein, and other embodiments may be used in addition to or in place of one or more of these example categories.
[0064] Process 600 includes an operation of obtaining temporal category information 608. The temporal category information associates each of a plurality of time periods with allowed device category information and message category information. The allowed device category information indicates which categories of user devices are allowed to provide notifications of received messages during the time period, and the message category information indicates which categories of messages from a plurality of message categories can be generated for notifications during the time period.
[0065] Process 600 includes an operation 610 of receiving a first message for a first user at a first time. In some embodiments, the communication platform 110 receives the first message from the user device 105 of the sender of the message. The first message may be an email message, a text message, a chat message, and / or other types of messages. The message processing unit 205 processes the received message to determine whether a notification of the received message can be presented on the user device 105 of the first user. In some embodiments, the message processing unit 205 stores the message in an incoming message queue 235 for processing before being sent to the user device 105 of the first user. The first message remains in the message queue 235 until the first message can be sent to all of the user's user devices.
[0066] Process 600 includes an operation 612 of determining a first message category for a first message from a plurality of message categories. In some embodiments, a user can manually tag a message thread with a category. In such embodiments, the user can specify a message category upon receiving the initial message. In some embodiments, message processing unit 270 can assign a default message category to the message thread, and if the user disagrees with the default assignment, the user can assign a different message category. In other embodiments, message processing unit 205 relies on content classification model 220 to analyze the first message to determine the first message category.
[0067] Process 600 includes an operation 614 of determining a first time category associated with a first message based on a first time. In some embodiments, the first time represents the time when the message is received by the user device 105. As discussed in the foregoing examples, a user can define time periods referred to as time categories that represent specific times when certain categories of messages can be presented on the user device. In some embodiments, the time categories can be associated with a specific day or days of the week. For example, a work time category can be defined for days of the week and hours when a user typically works, and a personal time category can be defined for days of the week and times when the user typically does not work. Other embodiments utilize other time categories in addition to or in place of one or more of these example time categories.
[0068] Process 600 includes determining, based on a data structure associated with a first user, that a first subset of a plurality of user devices associated with a first device class is permitted to provide notification that a first message has been received 616. The first subset of the plurality of user devices is associated with one or more user device classes that are permitted to provide notification of received messages of a first message class that are associated with a first time class.
[0069] Process 600 includes an operation 618 of causing a first subset of a plurality of user devices to present a first notification regarding receipt of a first message and causing remaining user devices of the plurality of user devices that are not included in the first subset of the plurality of user devices to delay presentation of the first notification. The remaining user devices of the plurality of user devices are associated with one or more second device categories that are not permitted to provide notifications of received messages of the first message category during a first time period associated with a first time category. In some embodiments, a first message is sent to each user device in the first subset of the plurality of user devices, and the user devices are configured to present the first notification to the user in response to receiving the first message. The first notification can be presented as a graphical, audible, and / or tactile notification notifying the user that the first message has been received. In some embodiments, the type of notification to be presented to the user is configurable by the user.
[0070] Figure 6B 6 is a flow chart of an example process 640 for managing notifications presented on a user device. The process 640 may be implemented by the message processing unit 270 on the user device 105. Figure 2B Process 640 may be used in implementations where the user device 105 is responsible for determining which notifications can be presented to the user upon receipt of a message and which notifications must be delayed until such time as such notifications can be presented on the user device.
[0071] Process 640 includes an operation 642 of maintaining a data structure that defines relationships between user devices associated with users, device classes associated with devices, and message classes. As discussed in the previous examples, the data structure (e.g., Figures 5A to 5B The data structure shown in ) can be used to store data for configuring message categories for which notifications can be presented on the user device 105 when a message is received within a specific time category.
[0072] The process 640 includes an operation 644 of updating the data structure. The message processing unit 270 and / or other units of the user device 105 may update the data structure. In some embodiments, updating the data structure includes operations 648-658.
[0073] Process 640 includes an operation 646 of obtaining device category information at a user device, the device category information indicating that the user device is associated with a first user device category among a plurality of user devices associated with a first user. As discussed in the previous examples, users can categorize their user devices into one of a plurality of categories. In some embodiments, devices can be categorized into work-related devices, personal devices, and hybrid devices for a combination of personal and work-related uses. These categories are intended only to illustrate the concepts described herein, and other embodiments may be used in addition to or in place of one or more of these example categories.
[0074] Process 640 includes an operation 648 of obtaining temporal category information at the user device, the temporal category information associating each of a plurality of time periods with message category information indicating for which message categories the user device is permitted to display instant notifications of received messages during the time period.
[0075] Process 640 includes an operation 650 of receiving a first message for a first user at a first time. The user device 105 receives the first message from the communication platform 110. The first message can be an email message, a text message, a chat message, and / or other types of messages. The message processing unit 270 processes the received message to determine whether a notification of the received message can be presented on the user device 105. In some embodiments, the message processing unit 270 also performs other types of actions on the first message, such as storing the message in the incoming message queue 265 for processing by a native messaging application (e.g., the native application 255). In some embodiments, the message processing unit 270 provides the first message as input to the native application 255 configured to process the message, and the native application 255 is configured to store the message in an inbox, a message queue, a message thread, or a memory of the user device.
[0076] Process 640 includes an operation 652 for determining a first message category for a first message from a plurality of message categories. In some embodiments, a user can manually tag a message thread with a category. In such embodiments, the user can specify a message category upon receiving the initial message. In some embodiments, message processing unit 270 can assign a default message category to the message thread, and if the user disagrees with the default assignment, the user can assign a different message category. In other embodiments, message processing unit 270 relies on content classification model 285 to analyze the first message to determine the first message category.
[0077] Process 640 includes an operation 654 of determining a first time category associated with the first message based on the first time. In some embodiments, the first time represents the time when the message is received by the user device 105. As discussed in the aforementioned examples, a user can define time periods referred to as time categories that represent specific times when certain categories of messages can be presented on the user device. In some embodiments, the time categories can be associated with a specific day or days of the week. For example, a work time category can be defined for days of the week and hours when the user typically works, and a personal time category can be defined for days of the week and times when the user typically does not work. Other embodiments utilize other time categories in addition to or in place of one or more of these example time categories.
[0078] Process 640 includes an operation 656 of determining, based on a data structure associated with the first user, that the user device is permitted to provide notifications regarding the receipt of a first message based on a first category of the user device. The first category of the user device indicates that the user device is permitted to provide notifications for received messages of a first message category associated with a first time category. As discussed in the previous example, the user device is permitted to provide notifications when messages of certain categories are received on devices of certain categories at a specified time. Delivery of notifications for messages of other categories is delayed until the time when the user device is permitted to present such notifications.
[0079] Process 640 includes an operation 658 of presenting a first notification regarding receipt of a first message via a user interface of the user device. The first notification may be presented as a graphical, audible, and / or tactile notification notifying the user that the first message has been received. In some embodiments, the type of notification to be presented to the user may be configurable by the user.
[0080] Figure 6C is a flow diagram of an example process 670 for managing a conversation presented on a user device. The process 670 can be implemented on the user device 105 or the communication platform 110 as discussed in the previous examples.
[0081] Process 670 includes an operation 672 of maintaining a data structure that defines relationships between user devices associated with users, device classes associated with devices, and message classes. As discussed in the previous examples, the data structure (e.g., Figures 5A to 5B The data structure shown in ) can be used to store data for configuring message categories, and conversations for the message categories can be presented on the user device 105 based on the message categories associated with the conversations.
[0082] Process 670 includes an operation 674 of updating the data structure. The user device 105 or the communication platform 110 may update the data structure. In some implementations, updating the data structure includes operations 678-688.
[0083] Process 640 includes an operation 676 of obtaining device category information that groups a plurality of user devices associated with the first user into a plurality of categories. The device category information includes a device identifier and a device category associated with each of the plurality of user devices of the user. As discussed in the previous example, a user can categorize their user devices into one of a plurality of categories. In some embodiments, devices can be categorized into work-related devices, personal devices, and hybrid devices for a combination of personal and work-related uses. These categories are intended only to illustrate the concepts described herein, and other embodiments may be used in addition to or in place of one or more of these example categories.
[0084] Process 670 includes an operation 678 of obtaining temporal category information. The temporal category information associates each of the plurality of time periods with allowed device category information and message category information. The allowed device category information indicates which categories of user devices are allowed to provide notifications of received messages during the time period, and the message category information indicates which categories of messages from the plurality of message categories can be generated for notifications during the time period.
[0085] Process 670 includes an operation 680 of obtaining conversation information for a plurality of conversations associated with a user. As discussed in the previous examples, client device 105 and / or communication platform 110 can group messages from a message thread into conversations. A conversation can include one or more messages and can include messages from one or more other users with whom the user is communicating. A conversation can include threads of email messages, text messages, chat messages, and / or other types of messages supported by communication platform 110 and client device 105. In some embodiments, copies of the messages and conversation information for the conversations associated with the messages are stored in a persistent data store of communication platform 110. In other embodiments, the messages and / or conversation information are stored in a persistent data store of client device 105.
[0086] Process 670 includes an operation 682 of determining a message category associated with each of the plurality of conversations. As discussed in the previous example, each conversation is categorized based on the message category associated with the conversation, and the category of the conversation may change over time if the message category associated with the conversation changes over time. For example, a conversation with a work colleague that was initially categorized as personal may be recategorized as work-related because the topic of the conversation changes from a non-work-related topic to a work-related topic. Each time the communication platform 110 and / or the client device 105 receives a message, the conversation may be analyzed to determine the message category associated with the message.
[0087] Process 670 includes an operation 684 of determining a first time category associated with a first time, and an operation 686 of determining, based on a data structure associated with the first user, a first subset of a plurality of conversations that is permitted to be presented on a first user device associated with the first user based on the first time category, and determining a second subset of the plurality of conversations that is not permitted to be presented on the first user device associated with the first user based on the first time category. As discussed in the previous example, time categories are used to determine which categories of messages and / or which categories of conversations can be presented or hidden on a particular user device at a particular time. Each category of user device may be permitted to present a particular category of conversations at a particular time. In some embodiments, the communication platform 110 and / or the client device 105 is configured to periodically determine, based on the time of day, whether each of the conversations accessible to the user via the browser application 250 and / or one or more native applications 255 should be visible or hidden to the user. In a non-limiting example, the user configures the time category information such that non-work-related conversations are hidden from the user in the browser application 250 and / or one or more native applications 255 of the work-related user device 105 during work hours to prevent unwanted distractions. Similarly, messages of other categories may be presented to the user or hidden from the user on certain categories of user devices at certain times. For example, a user may configure the communication platform 110 or client device 105 to display personal content on certain hybrid user devices 105 (e.g., their mobile phones) after work hours and hide work-related conversations on these devices. The technology herein is not limited to these specific examples. Other implementations utilizing different message categories, time categories, and device categories are possible. The client device 105 or communication platform 110 may be scheduled to periodically determine whether a conversation associated with the user may be presented on each category of user devices associated with the user. In some implementations, a determination may be performed at the beginning of a time period associated with each time category and upon receiving a message associated with each conversation to determine whether each conversation should be presented to the user on each category of user devices or hidden from the user. In some implementations, the communication platform 110 and / or client device 105 is configured to delay notifications associated with hidden conversations or present silent notifications for hidden conversations in accordance with the technology disclosed herein to prevent notifications associated with hidden conversations from distracting the user and interrupting the user's workflow.
[0088] Process 670 includes an operation 688 of causing a first subset of the plurality of conversations to be presented on a first user device, and an operation 690 of causing a second subset of the plurality of conversations to be hidden on the first user device. Conversations that are permitted to be displayed on a particular user device 105 associated with the user are displayed on that class of user devices 105, while other conversations that are not permitted to be displayed on that class of user devices are hidden. Other classes of user devices associated with the user may be permitted to present different subsets of conversations and to hide different subsets of conversations.
[0089] Although the foregoing examples describe specific time categories, device categories, and message categories, these examples are intended only to illustrate the technology described herein. Other implementations may utilize different time categories, device categories, and / or message categories, and are not limited to the specific categories shown herein.
[0090] To illustrate the present disclosure and its benefits, the present invention is presented herein in conjunction with Figures 1 to 6C Detailed examples of the systems, devices, and techniques described herein are provided. Such usage examples should not be construed as limitations on the logical process embodiments of the present disclosure, nor should variations from the user interface methods described herein be considered outside the scope of the present disclosure. It should be understood that references to displaying or presenting an item (such as, but not limited to, presenting an image on a display device, presenting audio via one or more speakers, and / or vibrating a device) include issuing instructions, commands, and / or signals that cause or are reasonably expected to cause a device or system to display or present an item. In some embodiments, Figures 1 to 6B The various features described in the present invention are implemented in corresponding modules, which may also be referred to as and / or include logic, components, units and / or mechanisms. Modules may constitute software modules (eg, codes embodied on a machine-readable medium) or hardware modules.
[0091] In some examples, the hardware module can be implemented mechanically, electronically, or using any suitable combination thereof. For example, the hardware module may include dedicated circuits or logic configured to perform certain operations. For example, the hardware module may include a dedicated processor, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). The hardware module may also include programmable logic or circuits temporarily configured by software to perform certain operations, and may include a portion of machine-readable media data and / or instructions for such configuration. For example, the hardware module may include software contained within a programmable processor configured to execute a software instruction set. It should be understood that the decision to implement a hardware module mechanically, in a dedicated and permanently configured circuit, or in a temporarily configured circuit (e.g., configured by software) may be driven by cost, time, support, and engineering considerations.
[0092] Therefore, the phrase "hardware module" should be understood to encompass a tangible entity that is capable of performing certain operations and can be configured or arranged in a certain physical manner, and can be an entity that is physically constructed, permanently configured (e.g., hardwired) and / or temporarily configured (e.g., programmed) to operate in a certain manner or perform certain operations described herein. As used herein, a "hardware-implemented module" refers to a hardware module. Considering examples in which hardware modules are temporarily configured (e.g., programmed), each hardware module does not need to be configured or instantiated at any one time instance. For example, in the case where a hardware module includes a programmable processor that is configured by software to become a special-purpose processor, the programmable processor can be configured as different special-purpose processors (e.g., including different hardware modules) at different times. Software can configure one or more processors accordingly, for example, to constitute a specific hardware module at one moment and to constitute different hardware modules at different moments. Hardware modules implemented using one or more processors can be referred to as "processor-implemented" or "computer-implemented."
[0093] A hardware module can provide information to other hardware modules and receive information from other hardware modules. Therefore, the described hardware modules can be considered to be communicatively coupled. In the case where multiple hardware modules are present at the same time, communication can be achieved by signal transmission (e.g., through appropriate circuits and buses) between or among two or more hardware modules. In an embodiment where multiple hardware modules are configured or instantiated at different times, communication between such hardware modules can be achieved, for example, by storing and retrieving information in a memory device that multiple hardware modules can access. For example, a hardware module can perform an operation and store the output in a memory device, and another hardware module can then access the memory device to retrieve and process the stored output.
[0094] In some examples, at least some of the operations of the method can be performed by one or more processors or processor-implemented modules. In addition, one or more processors can also operate to support the execution of related operations in a "cloud computing" environment or as a "software as a service" (SaaS). For example, at least some of the operations can be performed by multiple computers (as an example of a machine including a processor) and / or between these multiple computers, where these operations can be accessed via a network (e.g., the Internet) and / or via one or more software interfaces (e.g., application program interfaces (APIs)). The execution of certain operations can be distributed among the processors, not only residing in a single machine, but also deployed across several machines. The processor or processor-implemented module can be in a single geographic location (e.g., in a home or office environment or in a server farm), or can be distributed across multiple geographic locations.
[0095] Figure 7is a block diagram 700 illustrating an example software architecture 702, portions of which may be used in conjunction with the various hardware architectures described herein, which may implement any of the features described above. Figure 7 is a non-limiting example of a software architecture, and it should be understood that many other architectures can be implemented to facilitate the functionality described herein. The software architecture 702 can be implemented in a system such as Figure 8 800, which includes, among other things, a processor 810, a memory 830, and input / output (I / O) components 850. Representative hardware layers 704 are illustrated and may represent, for example, Figure 8 800. A representative hardware layer 704 includes a processing unit 706 and associated executable instructions 708. Executable instructions 708 represent executable instructions of the software architecture 702, including implementations of the methods, modules, and the like described herein. Hardware layer 704 also includes memory / storage 710, which also includes executable instructions 708 and accompanying data. Hardware layer 704 may also include other hardware modules 712. Instructions 708 held by processing unit 706 may be a portion of instructions 708 held by memory / storage 710.
[0096] The example software architecture 702 can be conceptualized as layers, each providing various functionalities. For example, the software architecture 702 may include layers and components such as an operating system (OS) 714, libraries 716, frameworks 718, applications 720, and a presentation layer 744. In operation, applications 720 and / or other components within a layer may invoke API calls 724 to other layers and receive corresponding results 726. The layers shown are representative in nature, and other software architectures may include additional or different layers. For example, some mobile or specialized operating systems may not provide framework / middleware 718.
[0097] OS 714 can manage hardware resources and provide public services. OS 714 may include, for example, a kernel 728, services 730, and drivers 732. Kernel 728 may serve as an abstraction layer between hardware layer 704 and other software layers. For example, kernel 728 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. Services 730 may provide other public services for other software layers. Driver 732 may be responsible for controlling or interfacing with the underlying hardware layer 704. For example, depending on the hardware and / or software configuration, driver 732 may include a display driver, a camera driver, a memory / storage device driver, a peripheral device driver (e.g., via a universal serial bus (USB)), a network and / or wireless communication driver, an audio driver, etc.
[0098] Libraries 716 may provide common infrastructure that can be used by applications 720 and / or other components and / or layers. Libraries 716 generally provide functionality used by other software modules to perform tasks, rather than interacting directly with OS 714. Libraries 716 may include system libraries 734 (e.g., C standard libraries) that may provide functionality such as memory allocation, string manipulation, and file operations. In addition, libraries 716 may include API libraries 736, such as media libraries (e.g., supporting the presentation and manipulation of image, sound, and / or video data formats), graphics libraries (e.g., OpenGL libraries for rendering 2D and 3D graphics on a display), database libraries (e.g., SQLite or other relational database functions), and web libraries (e.g., WebKit, which may provide web browsing functionality). Libraries 716 may also include a variety of other libraries 738 to provide numerous functions for applications 720 and other software modules.
[0099] Framework 718 (sometimes also referred to as middleware) provides a higher-level common infrastructure that can be used by applications 720 and / or other software modules. For example, framework 718 can provide various graphical user interface (GUI) functions, advanced resource management, or advanced location services. Framework 718 can provide a wide range of other APIs for applications 720 and / or other software modules.
[0100] Applications 720 include built-in applications 740 and / or third-party applications 742. Examples of built-in applications 740 may include, but are not limited to, contact applications, browser applications, location applications, media applications, messaging applications, and / or game applications. Third-party applications 742 may include any application developed by an entity other than the vendor of a particular platform. Applications 720 may use functionality available via OS 714, libraries 716, frameworks 718, and presentation layer 744 to create a user interface for interacting with the user.
[0101] Some software architectures use virtual machines, such as virtual machine 748. Virtual machine 748 provides an execution environment where applications / modules can run as if they were on a hardware machine (e.g., Figure 8 800). Virtual machine 748 may be hosted by a host OS (e.g., OS 714) or a hypervisor and may have a virtual machine monitor 746 that manages the operation of virtual machine 748 and its interoperation with the host operating system. Software architecture that may be different from software architecture 702 outside the virtual machine is executed within virtual machine 748, such as OS 750, libraries 752, frameworks 754, applications 756, and / or presentation layer 758.
[0102] Figure 8800 is a block diagram illustrating components of an example machine 800 configured to read instructions from a machine-readable medium (e.g., a machine-readable storage medium) and perform any of the features described herein. The example machine 800 is in the form of a computer system in which instructions 816 (e.g., in the form of software components) can be executed to cause the machine 800 to perform any of the features described herein. In this way, the instructions 816 can be used to implement the modules or components described herein. The instructions 816 cause the unprogrammed and / or unconfigured machine 800 to act as a specific machine configured to perform the described features. The machine 800 can be configured to act as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 800 can operate in the capacity of a server machine or a client machine in a server-client network environment, or as a node in a peer-to-peer or distributed network environment. The machine 800 can be embodied as, for example, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a gaming and / or entertainment system, a smartphone, a mobile device, a wearable device (e.g., a smartwatch), and an Internet of Things (IoT) device. Further, while only a single machine 800 is illustrated, the term "machine" includes any collection of machines that individually or jointly execute instructions 816.
[0103] The machine 800 may include a processor 810, a memory 830, and I / O components 850, which may be communicatively coupled via, for example, a bus 802. The bus 802 may include multiple buses that couple various elements of the machine 800 via various bus technologies and protocols. In an example, the processor 810 (including, for example, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, or a suitable combination thereof) may include one or more processors 812a through 812n that may execute instructions 816 and process data. In some examples, one or more processors 810 may execute instructions provided or recognized by one or more other processors 810. The term "processor" includes a multi-core processor, which includes cores that may execute instructions concurrently. Although Figure 8 Multiple processors are shown, but machine 800 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors each with a single core, multiple processors each with multiple cores, or any combination thereof. In some examples, machine 800 may include multiple processors distributed across multiple machines.
[0104] The memory / storage 830 may include a main memory 832, a static memory 834 or other memory, and a storage unit 836, both of which may be accessed by the processor 810, such as via the bus 802. The storage unit 836 and the memories 832, 834 store instructions 816 that embody any one or more of the functions described herein. The memory / storage 830 may also store temporary, intermediate, and / or long-term data for the processor 810. The instructions 816 may also reside, completely or partially, within the memories 832, 834, within the storage unit 836, within at least one of the processors 810 (e.g., within a command buffer or cache memory), within at least one of the I / O components 850, or any suitable combination thereof during execution thereof. Thus, the memories 832, 834, the storage unit 836, the memory in the processor 810, and the memory in the I / O components 850 are examples of machine-readable media.
[0105] As used herein, a "machine-readable medium" refers to a device that is capable of temporarily or permanently storing instructions and data that cause the machine 800 to operate in a particular manner, and may include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical storage media, magnetic storage media and devices, cache memory, network-accessible or cloud storage devices, other types of storage devices, and / or any suitable combination thereof. The term "machine-readable medium" applies to a single medium or a combination of multiple media used to store instructions (e.g., instructions 816) for execution by the machine 800, such that the instructions, when executed by one or more processors 810 of the machine 800, cause the machine 800 to perform one or more features described herein. Thus, a "machine-readable medium" may refer to a single storage device, as well as a "cloud-based" storage system or storage network comprising multiple storage devices or devices. The term "machine-readable medium" does not include the signals themselves.
[0106] The I / O components 850 may include various hardware components suitable for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, etc. The specific I / O components 850 included in a particular machine will depend on the type and / or function of the machine. For example, a mobile device such as a mobile phone may include a touch input device, while a headless server or IoT device may not include such a touch input device. Figure 8The specific examples of I / O components shown are by no means limiting, and other types of components may be included in the machine 800. The grouping of the I / O components 850 is merely to simplify this discussion, and the grouping is by no means limiting. In various examples, the I / O components 850 may include a user output component 852 and a user input component 854. The user output component 852 may include, for example, a display component (e.g., a liquid crystal display (LCD) or a projector) for displaying information, an acoustic component (e.g., a speaker), a tactile component (e.g., a vibration motor or force feedback device), and / or other signal generators. The user input component 854 may include, for example, an alphanumeric input component (e.g., a keyboard or touch screen), a pointing component (e.g., a mouse device, a touchpad, or another pointing instrument), and / or a touch input component (e.g., a physical button or touch screen that provides the location and / or force of a touch or touch gesture), which is configured to receive various user inputs, such as user commands and / or selections.
[0107] In some examples, the I / O components 850 may include a biometric component 856, a motion component 858, an environmental component 860, and / or a positioning component 862, as well as various other physical sensor components. The biometric component 856 may include, for example, components for detecting body expressions (e.g., facial expressions, vocal expressions, hand or body gestures, or eye tracking), measuring biosignals (e.g., heart rate or brain waves), and identifying people (e.g., via voice-based, retinal, fingerprint, and / or facial recognition). The motion component 858 may include, for example, an acceleration sensor (e.g., an accelerometer) and a rotation sensor (e.g., a gyroscope). The environmental component 860 may include, for example, a brightness sensor, a temperature sensor, a humidity sensor, a pressure sensor (e.g., a barometer), an acoustic sensor (e.g., a microphone for detecting ambient noise), a proximity sensor (e.g., infrared sensing of nearby objects), and / or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. Positioning component 862 may include, for example, a position sensor (e.g., a Global Positioning System (GPS) receiver), an altitude sensor (e.g., a barometric pressure sensor from which altitude can be derived), and / or an orientation sensor (e.g., a magnetometer).
[0108] The I / O components 850 may include a communication component 864 that implements various technologies operable to couple the machine 800 to a network 870 and / or a device 880 via respective communication couplings 872 and 882. The communication component 864 may include one or more network interface components or other suitable devices to interface with the network 870. The communication component 864 may include, for example, components suitable for providing wired communication, wireless communication, cellular communication, near field communication (NFC), Bluetooth communication, Wi-Fi, and / or communication via other modalities. The device 880 may include other machines or various peripheral devices (e.g., via USB coupling).
[0109] In some examples, the communication component 864 can detect an identifier or include a component suitable for detecting an identifier. For example, the communication component 864 can include a radio frequency identification (RFID) tag reader, an NFC detector, an optical sensor (e.g., a one-dimensional or multi-dimensional barcode or other optical code), and / or an acoustic detector (e.g., a microphone for identifying an audio signal of a tag). In some examples, location information can be determined based on information from the communication component 862, such as, but not limited to, a geographic location via an Internet Protocol (IP) address, a location via Wi-Fi, cellular, NFC, Bluetooth, or other wireless station identification and / or signal triangulation.
[0110] Although various embodiments have been described, the description is intended to be exemplary rather than restrictive, and it should be understood that more embodiments and implementations within the scope of the embodiments are possible. Although many possible combinations of features are shown in the drawings and discussed in this detailed description, many other combinations of the disclosed features are possible. Unless otherwise specifically limited, any feature of any embodiment can be used in combination with any other feature or element in any other embodiment or replace any other feature or element in any other embodiment. Therefore, it should be understood that any feature shown and / or discussed in this disclosure can be implemented together in any suitable combination. Therefore, the embodiments are not limited except in accordance with the appended claims and their equivalents. Moreover, various modifications and changes can be made within the scope of the appended claims.
[0111] While the foregoing has described what is believed to be the best mode and / or other examples, it should be understood that various modifications may be made therein, and the subject matter disclosed herein may be implemented in a variety of forms and examples, and the teachings may be applied to many applications, only some of which are described herein. It is intended that the appended claims claim any and all applications, modifications, and variations that fall within the true scope of the present teachings.
[0112] Unless otherwise indicated, all measurements, values, ratings, positions, quantities, sizes and other specifications set forth in this specification (including in the appended claims) are approximate and not exact. They are intended to have a reasonable range consistent with the functions to which they relate and with customary practice in the art to which they pertain.
[0113] The scope of protection is limited solely by the appended claims. When interpreted in light of this specification and subsequent prosecution history, the scope is intended and should be interpreted to be consistent with the plain meaning of the language used in the claims and to encompass all structural and functional equivalents. Nevertheless, none of the claims are intended to include subject matter that fails to meet the requirements of Sections 101, 102, or 103 of the Patent Act, nor should they be interpreted in such a manner. Therefore, protection is not claimed for any unexpected encirclement of such subject matter.
[0114] Except as stated immediately above, nothing stated or shown is intended or should be construed as causing exclusive use to the public of any component, step, feature, object, benefit, advantage, or equivalent, whether or not recited in the claims.
[0115] Should be understood that the terms and expressions used herein have the ordinary meaning consistent with these terms and expressions about its corresponding inquiry and research field, unless this paper sets forth a specific meaning in addition. Relational terms such as first and second etc. can be used only to distinguish one entity or action from another entity or action, without requiring or implying any actual such relationship or order between these entities or actions. The term "comprise", "comprising" or any other variation thereof is intended to cover non-exclusive inclusion, so that the process, method, article or device comprising a list of elements not only includes those elements, but also can include other elements that are not clearly listed or that are inherent to such process, method, article or device. In the absence of further constraints, an element starting with "a" or "an" does not exclude the presence of additional identical elements in the process, method, article or device comprising the element.
[0116] The Abstract of the present disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It should be understood that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various examples for the purpose of simplifying the present disclosure. The method of the present disclosure should not be interpreted as reflecting the following intention: the claims require more features than those expressly recited in each claim. On the contrary, as reflected in the appended claims, the inventive subject matter lies in less than all the features of a single disclosed example. Therefore, the appended claims are hereby incorporated into the Detailed Description, with each claim independently serving as a separately claimed subject matter.
Claims
1. A data processing system comprising: processor; as well as A machine-readable medium storing executable instructions that, when executed, cause the processor to perform operations comprising: maintaining a data structure defining a relationship between an identification code of a user device associated with a user, a device class associated with each of the user devices, a message class, and a time class; and Update the data structure by: obtaining device category information, the device category information grouping a plurality of user devices associated with the first user into a plurality of categories, the device category information including a device identifier and a device category associated with each user device in the plurality of user devices; obtaining temporal category information, the temporal category information associating each time period of a plurality of time periods with allowed device category information and message category information, the allowed device category information indicating which categories of user devices are allowed to provide notifications of received messages during the time period, and the message category information indicating which categories of messages from a plurality of message categories for which notifications can be generated during the time period; receiving a first message directed to the first user at a first time; determining a first message category of the first message among the plurality of message categories; determining a first time category associated with the first message based on the first time; determining, based on the data structure associated with the first user, that a first subset of the plurality of user devices associated with a first device class is permitted to provide notification that the first message has been received, the first subset of the plurality of user devices being associated with one or more user device classes permitted to provide notifications of received messages of the first message class during a first time period associated with the first time class; and causing the first subset of the plurality of user devices to present a first notification regarding receipt of the first message, and causing remaining user devices of the plurality of user devices that are not included in the first subset of the plurality of user devices to delay presentation of the first notification, wherein the remaining user devices of the plurality of user devices are associated with one or more second device categories that are not permitted to provide notifications of received messages of the first message category during the first time period associated with the first time category.
2. The data processing system according to claim 1, wherein: Determining the first message category further includes the following operations: The first message is analyzed using a first machine learning model to obtain the first message category, the first machine learning model being trained to analyze text messages and classify the messages into a message category among the plurality of message categories.
3. The data processing system according to claim 2, wherein: The machine-readable storage medium includes instructions configured to cause the processor to: receiving feedback information from the plurality of user devices, the feedback information indicating whether the first machine learning model correctly classified the first message; and Fine-tune operating parameters of the first machine learning model based on the feedback information.
4. The data processing system according to claim 1, wherein: Determining the first message category further includes the following operations: An indication of the first message category is received from a user via a user interface of a user device associated with a user of the plurality of user devices.
5. The data processing system according to claim 1, wherein: The machine-readable storage medium includes instructions configured to cause the processor to: causing a second subset of the user devices associated with a second device category to delay presentation of the first notification until a second time period during which the second subset of the plurality of user devices is allowed to present the first notification, the second subset of the plurality of user devices being associated with one or more user device categories that are not allowed to provide notifications of received messages of the first message category associated with the first time category. The data processing system according to claim 5 , wherein: Causing a second subset of the user devices associated with a second device category to delay presentation of the first notification further comprises: The first message is sent to the second subset of the plurality of user equipment, the first message having an indication to delay presenting the first notification that the first message has been received until the second time period.
7. The data processing system according to claim 5, wherein: Causing a second subset of the user devices associated with a second device category to delay presentation of the first notification further comprises: The first message is sent to the second subset of the plurality of user devices, the first message having an indication to store the first message in a pending message queue on the user devices until the second time period.
8. The data processing system of claim 5, wherein causing a second subset of the user devices associated with a second device category to delay presentation of the first notification further comprises: The first notification is caused to be stored in a notification queue of each user equipment in the second subset of the plurality of user equipment until the second time period.
9. The data processing system according to claim 5, wherein: The machine-readable storage medium includes instructions configured to cause the processor to: A silent notification is caused to be presented on a display of each user device in the second subset of the plurality of user devices, the silent notification causing the user device to not generate a tactile or audible indication.
10. A method for limiting notifications on a user device, the method comprising: maintaining a data structure defining a relationship between a user device associated with a user, a device class associated with the device, and a message class; as well as Update the data structure by: Obtaining device category information at a user device, the device category information indicating that the user device is associated with a first user device category among a plurality of user devices associated with a first user; obtaining temporal category information at the user device, the temporal category information associating each of a plurality of time periods with message category information, the message category information indicating for which message categories of a plurality of message categories the user device is permitted to display instant notifications of received messages during the time period; receiving a first message directed to the first user at a first time; determining a first message category of the first message among the plurality of message categories; determining a first time category associated with the first message based on the first time; determining, based on the data structure associated with the first user, that the user device is permitted to provide notification that the first message has been received based on the first category of the user device, the first category of the user device indicating that the user device is permitted to provide notification of received messages of the first message category associated with the first time category; as well as A first notification of receipt of the first message is presented via a user interface of the user device.
11. The method according to claim 10, wherein: Determining the first message category further includes: The first message is analyzed using a first machine learning model to obtain the first message category, the first machine learning model being trained to analyze text messages and classify the messages into a message category among the plurality of message categories.
12. The method according to claim 11, further comprising: receiving feedback information indicating whether the first machine learning model correctly classified the first message; as well as Fine-tune operating parameters of the first machine learning model based on the feedback information.
13. The method according to claim 10, wherein: Determining the first message category further includes: An indication of the first message category is received from the user via a user interface of the user device.
14. The method according to claim 10, further comprising: receiving a second message directed to the first user at a second time; analyzing the second message using the first machine learning model to obtain an indication that the second message is associated with a second message category that is different from the first message category; determining, based on the second time, that the message is associated with the first time category; determining, based on the first user equipment category, the temporal category information, the first temporal category associated with the second message, and the second message category associated with the second message, that the user equipment is not permitted to provide an immediate notification that the first message has been received; Presentation of a second notification associated with the second message is delayed until a second time period during which the user device is permitted to present the second notification.
15. The method according to claim 10, further comprising: A silent notification is caused to be presented on a display of the user device, the silent notification causing the user device to produce no tactile or audible indication.