Detection and delivery control for high speed sequential communications
A message detection and delivery control mechanism addresses the issue of rapid message presentation by aggregating messages into a digest upon detecting a delivery event, enhancing user experience and safety in environments like vehicles.
Patent Information
- Application Number
- JP2021210917
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-28
- Filing Date
- 2021-12-24
- Publication Date
- 2025-10-14
- Estimated Expiration
- 2041-12-24
AI Technical Summary
Existing messaging technologies disrupt user experience and pose safety concerns by presenting multiple messages in rapid succession, especially in in-vehicle environments, leading to user confusion and potential distractions.
Implement a message detection and delivery control mechanism that halts the delivery of sequentially received messages until a delivery event condition is detected, aggregating them into a single message digest for presentation.
Reduces user confusion and safety risks by minimizing the frequency and number of message presentations, preserving the original content while allowing users to consume messages in a less disruptive and more organized manner.
Smart Images

Figure 0007753087000001 
Figure 0007753087000002 
Figure 0007753087000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to sequentially generated and received communications, and specifically, in some implementations, to detection and delivery control mechanisms for high-speed, sequential, text-based communications received in an in-vehicle environment. [Background technology]
[0002] Text-based communication on mobile devices has become dramatically more user-friendly with advances in cellular telephone technology over the years. This evolution spans from telephones with only physical numeric keypads, to early smartphones with physical QWERTY keypads, and finally to current smartphones with virtual QWERTY keypads. The improved user messaging experience offered by current mobile devices is leading more and more users to shift an ever-greater percentage of their cellular communications away from voice calls and toward non-voice-based communications such as short message service (SMS) messaging, multimedia messaging service (MMS) messaging, and the like. In some cases, the frequencies at which such messages may be received can make it difficult for users to safely and effectively consume message content, especially when the messages are received in an in-vehicle environment. Summary of the Invention [Problem to be solved by the invention]
[0003] Various embodiments of the disclosed technology systems, methods, and computer-readable media implement delivery control to detect messages received sequentially in short succession and control the timing of delivery of the message content for presentation to a user. [Means for solving the problem]
[0004] In one exemplary embodiment of the invention, a system includes at least one memory storing machine-executable logic and at least one processor configured to access the at least one memory and to execute the machine-executable logic, wherein the at least one processor is configured to execute the machine-readable logic to cause a set of operations to be performed, including: ceasing feeding of messages constituting a message stream while monitoring for a feeding event condition; aggregating content of the messages as a message digest in response to detecting the feeding event condition; and transmitting the aggregated message digest to an output device for presentation of content of the messages via the output device.
[0005] In one exemplary embodiment, stopping delivery of a message in a message stream includes placing the message in a message queue while monitoring for a delivery event condition.
[0006] In one exemplary embodiment, the contents of the message are not presented via the output device until a feed event condition is detected.
[0007] In one example embodiment, detecting the supply event condition includes detecting a temporary pause in communication for a first threshold time period, which can be detected based on a lack of receipt, for the first threshold time period, of a signal announcing the intended communication of a further message in a communication thread that includes the message in the message stream.
[0008] In one exemplary embodiment, the first threshold time period is measured from the time of receipt of the most recently received message or from the time of receipt of the most recent signal announcing an intended communication within the same communication thread as a message in the message stream.
[0009] In one exemplary embodiment, the signal indicating the intended communication of a further message is a typing awareness signal indicating that i) a further message is currently being composed or ii) there is activity from one or more users in a communication session associated with the communication thread.
[0010] In one exemplary embodiment, the typing awareness signal is generated from activity within a communication session associated with a first user who generated the most recently received message in a communication thread.
[0011] In one example embodiment, the communication session includes a first user who generated the most recently received message in the communication thread and a second user, and the typing awareness signal is generated from activity within the communication session associated with the second user.
[0012] In one example embodiment, the messages in the message stream include a first message, and stopping the delivery of the first message while monitoring for a delivery event condition includes determining a time of receipt of the first message and detecting a signal indicating an intended communication of a second message subsequent to the first message a first threshold time period after the time of receipt of the first message.
[0013] In one example embodiment, detecting the feed event condition includes determining that a second threshold time period has elapsed since receipt of a particular one of the messages in the message stream.
[0014] In one exemplary embodiment, the time of receipt of a particular message is prior to the respective time of receipt of each other message in the message stream.
[0015] In one example embodiment, the set of operations further includes determining, in response to a second threshold time period having elapsed, that a second message has not been received, wherein the aggregated message digest is transmitted to the output device in the continued state of receipt of a signal indicating the intended communication of the second message.
[0016] In one example embodiment, the set of operations further includes receiving a second message before sending the aggregated message digest to the output device, and excluding content of the second message from the aggregated message digest.
[0017] In one exemplary embodiment, the output device is a display or speaker provided in the in-vehicle environment.
[0018] In some example embodiments, the above-described system, including any of the aspects and features thereof described herein, can be implemented as an in-vehicle system that includes programmable circuitry configured to implement any of the processes described in connection with the above-described system.
[0019] In other example embodiments, the above-described systems, including any of the aspects and features thereof described herein, may be implemented as a computer program product including a computer-readable medium storing instructions executable by one or more processing units to cause the methods and / or corresponding methods to be performed.
[0020] Other features and aspects of the disclosed technology will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, which illustrate, by way of example, the features in accordance with embodiments of the disclosed technology. This summary is not intended to limit the scope of any inventions described herein, which are defined solely by the appended claims.
[0021] The present disclosure, in accordance with one or more various embodiments, will be described in detail with reference to the following figures, which are provided for illustrative purposes only and which merely depict representative or example embodiments. [Brief explanation of the drawings]
[0022] [Figure 1] FIG. 1 is a schematic diagram of an exemplary message detection and delivery control technique implemented in an in-vehicle environment in accordance with an exemplary embodiment of the present invention. [Figure 2A] FIG. 2A illustrates an exemplary circuit architecture for implementing a message detection and delivery control technique according to an exemplary embodiment of the present invention. [Figure 2B] FIG. 2B illustrates exemplary message detection and delivery control logic according to an exemplary embodiment of the present invention. [Figure 3] FIG. 3 is a flowchart of an exemplary method for message detection and delivery control according to an exemplary embodiment of the present invention. [Figure 4] FIG. 4 is a flowchart of one example implementation of the method of FIG. 3 according to an example embodiment of the present invention. [Figure 5] FIG. 5 is a flowchart of an exemplary method for aggregating messages received in a message stream based on semantic characteristics of the messages according to an exemplary embodiment of the present invention. [Figure 6] FIG. 6 is an example of computing components that may be used to implement various features of the embodiments described in this disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0023] The figures are not intended to be exhaustive or to limit the disclosure to the precise forms disclosed.
[0024] Exemplary embodiments of the invention disclosed herein relate, among other things, to systems, methods, computer-readable media, techniques, and methodologies that detect sequentially received messages in a short sequence and perform delivery control to control the timing of delivery of the message contents for presentation to a user. Specifically, exemplary embodiments of the invention provide a message detection and delivery control mechanism that suppresses presentation of the contents of multiple messages received in a rapid sequence until a delivery event condition is detected. Upon detection of a delivery event condition, the contents of the messages can be aggregated into a single message digest that is presented to a user (e.g., the intended recipient of the message) through an appropriate output interface.
[0025] In some exemplary embodiments, the message is received in an in-vehicle environment via a communications interface and may be presented in the vehicle as an audio output via a speaker and / or as a text-based output on an in-vehicle display unit. The exemplary embodiments of the present invention may be implemented in connection with any of a number of different vehicles and vehicle types, including, without limitation, automobiles, trucks, motorcycles, recreational vehicles, or other on- or off-road vehicles. In addition, the exemplary embodiments of the present invention may be implemented in connection with hybrid electric vehicles, gasoline-powered vehicles, diesel-powered vehicles, fuel cell vehicles, electric vehicles, or the like.
[0026] While exemplary embodiments of the present invention are described herein primarily in the context of an in-vehicle environment, where the technical features of the present invention provide both a significantly improved in-vehicle user experience as well as major public safety benefits, it should be noted that embodiments of the present invention are not limited to a vehicular context and may be implemented in connection with any scenario in which multiple separate messages are received in a high-speed continuum and it is desirable to suppress delivery of messages until a delivery event condition is met at which point the contents of the messages are presented to the intended recipient in an aggregated format.
[0027] Thus, exemplary embodiments of the present invention are applicable to any scenario in which a user is distracted by another task or activity, or is otherwise unable or simply does not prefer to immediately consume multiple separate messages received in a high-speed continuum. Such scenarios include, for example, a meeting in which multiple messages are received on the user's smartphone in a high-speed continuum but the user is unable to immediately consume them, scenarios in which the user would prefer not to be disturbed by audible notifications of received messages (e.g., a library environment, while sleeping, while engaged in another activity, etc.), scenarios in which the user expects to receive multiple messages in a high-speed continuum but does not assign urgency to immediate message consumption (e.g., casual messages received in a group chat session), and any other applicable scenarios. It should be understood that the above-described scenarios to which embodiments of the present invention are applicable are intended to be illustrative and not exhaustive.
[0028] In some example embodiments, the message may include any combination of text, graphics (e.g., emojis), images, videos, or the like. For example, the message may be an SMS message containing only alphanumeric characters, an MMS message containing multimedia content, a message associated with a proprietary or open-source standard (e.g., iMessage, Rich Communication Services (RCS), etc.), a message generated within a chat-based application (e.g., a WhatsApp™ message, a Facebook™ Messenger message, etc.), an email message, a message generated on a social media platform, etc. In some example embodiments, the message may be a voice message, such as a voicemail or a voice memo. It should be understood that the above types of messages are for illustrative purposes only and are not exhaustive. Furthermore, although messages may sometimes be described herein as being text-based communications or as including primarily textual content, it should be understood that this is for ease of explanation only, and that embodiments of the present invention, including any of the features / aspects described herein, may be implemented in connection with messages that include any one or more of textual content, video content, image content, graphical content, audible content, or the like.
[0029] As cellular telephone technology has advanced over the years, so have the ways in which users utilize cellular technology to communicate. Specifically, as user interfaces / experiences for composing messages have improved, users have shifted an increasingly large percentage of their cellular communications away from voice calls and toward non-voice-based communications. Also, while many users use their smartphones or tablet devices to compose email messages, the majority of non-voice-based communications are in the form of text / instant / social media messaging. When users communicate via messaging platforms, there is a general tendency to compose and send a series of messages in a rapid succession, with each message containing a relatively small amount of content. For example, it is common for users to compose and send a separate text or instant message for each independent thought, and it often occurs that each such message contains only a few sentences, or in many cases, a single sentence, sentence fragment or phrase, or even a single word, image, note, or graphic.
[0030] However, in many scenarios, presenting each message in a series of such messages being transmitted in rapid succession in real time or near real time as the messages are received would be disruptive to the user experience and, in some cases, potentially distracting. For example, currently available in-vehicle systems alert vehicle occupants (e.g., the driver) as each new message is received. Regardless of whether only a message notification alert or the message content itself is presented, doing this in an in-vehicle environment in real time or near real time as the messages are received could disrupt the driver's focus on the road. This is true regardless of whether the message content is presented as audio output after text-to-speech conversion or visually on an in-vehicle display.
[0031] Furthermore, while there may be some existing mechanisms for recipients to be immediately alerted to the presence of message content and / or to prevent the message content itself from being immediately presented, such as mute features, do-not-disturb (DND) features, or the like, these features are disruptive to the user experience in their own right. Specifically, if a recipient chooses not to view, listen to, or otherwise immediately consume a message, or in some cases, even chooses not to be notified about the receipt of new messages, message notifications will continue to be layered on top of relatively older notifications, which may make it difficult for a user to understand the context behind a message or know where to begin interacting with the message content when they ultimately choose to consume it. This, in turn, may exacerbate safety concerns already associated with consuming message content while driving a motor vehicle.
[0032] Exemplary embodiments of the present invention address the above-mentioned technical problems that arise when a series of messages is received in a rapid succession in various scenarios, such as in an in-vehicle environment. Specifically, the systems, methods, computer-readable media, techniques, and methodologies disclosed herein implement a message detection and delivery control protocol that provides a technical solution to the above-mentioned technical problems associated with conventional message receipt and delivery by halting the delivery of sequentially received messages in a short succession until a delivery event condition is detected, and, upon detecting the existence of such a condition, aggregating the contents of the messages into a single message digest that is presented to the message recipient through an appropriate output interface. Although message content is described herein as being aggregated into a single message digest for consumption, it should be understood that aggregation of message content may include any reduction in the number of received messages. For example, the content of a stopped message may be aggregated into multiple message digests, as long as the number of aggregated message digests is less than the number of messages whose content is included in the aggregated digest. Further, in an example embodiment, stopping the delivery of a message may include placing the message in a message queue and refraining from performing one or more of the following functions: delivering the message to an output device, presenting the message via an output device, or providing one or more notifications of receipt of the message.
[0033] In some example embodiments, detecting the occurrence of a feed event condition may include detecting a lull in communication in a first time period, where the lull in communication may be determined to exist in response to failing to detect a signal indicating a sender's intent to send another communication subsequent to a most recently received message in the first time period. In some example embodiments, the first time period (also referred to herein as a lull time threshold, a lull threshold time period, a lull in communication time threshold, a lull in communication threshold time period, or some other variation thereof) may be measured from the time of receipt of the most recently received message in the same communication thread or from the time of receipt of the most recent signal indicating the sender's intent to send another message. Furthermore, in some example embodiments, the existence or absence of a lull in communication may be determined in relation to the same sender who sent one or more recent messages to the recipient, such as in the case of a text or instant message conversation involving only the sender and recipient. In other exemplary embodiments, the presence or absence of a lull in communication can be determined in relation to the same or different senders of the most recent messages, such as in the case of a group text or group instant messaging conversation involving multiple participants.
[0034] In an exemplary embodiment, the signal monitored during the communication pause threshold time period may be, for example, a typing awareness signal. The typing awareness signal may be a signal generated by the sender's messaging application and indicating that the sender is actively composing a message for the recipient or exhibiting a certain level of activity within a communication session involving the sender and recipient. The sender's messaging application may communicate the typing awareness signal to the recipient's messaging application before the sender actually completes the message and begins sending it to the recipient. Thus, in an exemplary embodiment, receipt of a typing awareness signal during the communication pause threshold time period may result in a continued cessation of a sequence of one or more received messages that form part of the same communication thread as the intended future message indicated by the typing awareness signal. In an exemplary embodiment, a message stream including a series of sequentially received messages may be considered part of a single communication thread so long as the messages are received consecutively without an intervening feed event condition being detected and so long as the messages are associated with the same communication session. The same communication session may include a point-to-point communication session involving only two users who may alternately act as sender and receiver, or a multipoint communication session involving multiple potential senders and receivers.
[0035] In some example embodiments, the feed event condition may be the expiration of a second time period, which may be longer than a communication pause threshold time period. The second time period may also be referred to herein as a feed wait time, a feed wait time threshold, a feed wait threshold time period, or some other variation thereof. The second time period may be measured from the time of receipt of the earliest received message in a given communication thread. In some example embodiments, a sequence of messages that form part of the same communication thread may be aggregated into a single message digest in response to expiration of the second time period, even if a typing awareness signal or some other signal is received within the communication pause threshold time period. That is, in some example embodiments, received messages that form part of the same communication thread may be aggregated into a single message digest and presented to a recipient upon expiration of the feed wait time threshold, even if a signal is received before the expiration of the feed wait time threshold indicating that the sender is composing a new message in the same communication thread. That is, in some example embodiments, the recipient's client application may aggregate and present to the recipient the contents of stopped messages in the same communication thread upon expiration of the feed wait time threshold, despite being aware of the sender's intent to send a new message in the same communication thread, so that the new message may form part of a new communication thread when received.
[0036] However, in certain exemplary embodiments, if a new message is received before aggregation of already received messages into a single message digest and / or before provision of the aggregated messages to an output device for presentation to a recipient via an output interface of the output device, the content of the new message may be excluded from the aggregated message digest as long as the new message is received after the expiration of the provision wait time threshold. In other exemplary embodiments, if a new message is received before generation of the aggregated message digest, its content may be included in the message digest even if the new message is received after the expiration of the provision wait time threshold. In still other exemplary embodiments, if a new message is received before sending the aggregated message digest to the output device, the aggregated message digest may be modified to include the content of the new message even though the message digest has already been generated and even though the new message is received after the expiration of the provision wait time threshold.
[0037] Additionally, in various exemplary embodiments of the present invention, the amount of message content included in the aggregated message digest can be reduced by performing semantic processing on the message content to further aggregate / remove redundant or semantically similar content. More specifically, semantic processing can be performed on the message content to calculate a semantic similarity score between pairs of messages. A subset of two or more messages having individual semantic similarity scores within a threshold can be identified and aggregated into a single message. Aggregating a subset of messages having semantic similarity scores within a threshold can include selecting only the content of a single one of the messages to be included in the aggregated message, including individual portions of two or more messages in the subset in the aggregated message while simultaneously discarding redundant portions of the messages, etc. In some exemplary embodiments, an aggregated message formed from the content of the subset of messages having semantic similarity scores within a threshold can be combined with the content of one or more other messages in the same communication thread to form an aggregated message digest that is ultimately sent to an output device for presentation to the message recipient.
[0038] As described above, embodiments of the present invention provide technical solutions to the above-mentioned technical problems associated with notifying and / or presenting to a recipient the content of a series of messages received in a rapid succession as part of the same communication thread, where each such message may contain a minimal amount of content. Such technical problems can include general disruption to the user experience, which can result in exacerbation, such as when the messages are received in an in-vehicle environment, and particularly when the intended recipient is operating a vehicle, and can potentially pose significant safety concerns in certain scenarios.
[0039] Exemplary embodiments of the present invention provide a technical solution that halts the delivery and presentation of message content (which may include suppressing the provision of notification of message receipt) until a delivery event condition is detected, and then aggregates the message content into an aggregated format upon detection of the occurrence of such a condition, and presents the message content to the recipient in the aggregated format, thereby dramatically reducing the level of user confusion caused by receiving a sequence of messages in a fast continuum. Thus, the technical solution provided by exemplary embodiments of the present invention addresses the above-mentioned technical problems of existing messaging technologies by reducing the frequency of user confusion associated with receiving messages by both halting the delivery / presentation of messages until a delivery event condition is detected and presenting the message content in an aggregated format upon detection of such a condition.
[0040] Furthermore, the technical solutions provided by the embodiments of the present invention provide several additional technical benefits. For example, the technical solutions disclosed herein do not require senders to change their behavior in any way. That is, senders do not need to be requested or notified to create fewer or longer messages or otherwise change their messaging behavior. In addition, the technical solutions disclosed herein do not require message recipients to adjust their mobile device settings or in-vehicle communication settings (e.g., turn on a mute or DND function). While these features may potentially reduce the level of disruption to message recipients, having a user adjust communication settings to trigger such features can be cumbersome and, not to mention potentially distracting if performed while driving a vehicle. Furthermore, such features may prevent users from consuming received message content in a timely manner, which may be undesirable, especially if the message content is considered important or relatively urgent. In contrast, the technical solution disclosed herein calls for temporarily halting message delivery / presentation until a delivery event condition is detected, but the use of an overall delivery wait time threshold as one type of delivery event condition ensures that an undesirably long period of time does not pass before the message content is presented to the recipient.
[0041] Additionally, the technical solution disclosed herein does not require the user to actively determine which senders / conversations in relation to which the mute or DND function should be implemented or when. Specifically, the message detection and delivery control function disclosed herein can be initiated by a single toggle-on / off function so that when initiated, the function is applied to each communication thread in which it is received, regardless of the sender(s) / conversation(s) involved. This obviates the need for the user to make individual decisions in relation to the importance (or lack thereof) of communications received from a particular sender or as part of a particular conversation / communication session.
[0042] Some exemplary embodiments of the present invention may further reduce the level of user confusion caused by receiving electronic messages at high speeds. That is, some exemplary embodiments not only reduce the number of messages presented to a user (e.g., by presenting an aggregated message digest instead of a series of messages) and the frequency with which the reduced number of messages are presented, but also provide the additional technical benefit of reducing the amount of message content presented to a user. This is achieved by the technical solution disclosed herein, which performs semantic processing on received message content to identify a subset of messages having semantic similarity scores close enough to justify aggregation of the message content and discarding of redundant content. Thus, in these exemplary embodiments, the message content included in the aggregated message digest presented to a user may actually contain less than the total message content received due to the removal of redundant or otherwise low-value content. This results in a further reduction in confusion for the user experience because the user can consume relatively less content without any or only a minor loss of meaning / content. Additionally, the presentation in the form of an aggregated message digest can also be generated in a manner that preserves the underlying message content originally received. When the underlying messages are preserved, the user remains able to return to the original individual messages at any time. Various technical features and aspects of embodiments of the present invention that provide the above-mentioned technical solutions and resulting technical advantages will now be described in more detail with reference to the figures and exemplary embodiments depicted therein.
[0043] Figure 1 is a schematic diagram of an example message detection and delivery control technique implemented in an in-vehicle environment in accordance with an example embodiment of the present invention. Figure 3 is a flowchart of an example method 300 for message detection and delivery control in accordance with an example embodiment of the present invention. Figures 1 and 3 will be described below in conjunction with Figures 2A and 2B, respectively, with reference to these figures as appropriate.
[0044] 1 and 3 , at block 302 of method 300, client application 110 may receive a message stream 104 including a series of separate messages 104(1)-104(N), where N is any integer greater than 1, over a period of time via one or more communication networks 106. In an exemplary embodiment, the series of messages 104(1)-104(N) may be generated sequentially at communication device 102 and transmitted sequentially to client application 110 over one or more networks 106. For example, a user may utilize a client application (not shown) running on communication device 102 to generate and transmit messages to client application 110.
[0045] In an exemplary embodiment, communication device 102 may be a mobile device such as a smartphone, tablet, wearable computing device, or the like, a desktop computer, a laptop computer, a game console, or any other device used to create and send messages including textual, multimedia, and / or graphical content. Client applications running on communication device 102 used to generate and send messages 104(1)-104(N) may utilize standardized SMS / MMS cellular messaging communication protocols, native and open-source cellular messaging communication protocols (e.g., RCS), proprietary cellular messaging communication protocols (e.g., iMessage), etc. Alternatively, client applications used to generate messages 104(1)-104(N) may be messaging applications that rely on Internet Protocol (IP) telephony communication protocols to send messages over the Internet. More generally, client applications running on communication device 102 may be mobile applications, web-based applications, or the like. In yet other example embodiments, the client application used to generate the message stream 104 may be a native email client, a web-based email client, or the like.
[0046] Client application 110 may run on a mobile device associated with a user within vehicle 108, such as a driver or passenger of vehicle 108. For example, the mobile device on which client application 110 runs may be communicatively coupled to an in-vehicle system, such as an in-vehicle infotainment (IVI) system, such that messages received by client application 110 can be presented on a display of the IVI system. Additionally or alternatively, the content of messages received by client application 110 may be converted into speech and output via a speaker system within vehicle 108. In certain exemplary embodiments, graphical content may be converted into descriptive speech that conveys the characteristics / meaning of the graphical content. In some exemplary embodiments, client application 110 may run directly on the in-vehicle system. Client application 110 may include any of the types of applications described above (i.e., applications used to generate messages 104(1)-104(N)) in conjunction with a client application (not shown) running on communication device 102.
[0047] The one or more networks 106 may include any one or more different types of communications networks, such as, without limitation, a cable network, a public network (e.g., the Internet), a private network (e.g., a frame relay network), a wireless network, a cellular network, a telephone network (e.g., a public switched telephone network), or any other suitable private or public packet-switched or circuit-switched network. The one or more networks 106 may have any suitable communications range associated with them and may include, for example, a global network (e.g., the Internet), a metropolitan area network (MAN), a wide area network (WAN), a local area network (LAN), or a personal area network (PAN). Additionally, one or more networks 106 may include communication links and associated networking equipment (e.g., link layer switches, routers, etc.) to transmit network traffic over any suitable type of medium, including, without limitation, coaxial cable, twisted pair wire (e.g., twisted pair copper wire), optical fiber, hybrid fiber coaxial (HFC) medium, microwave medium, radio frequency communication medium, satellite communication medium, or any combination thereof.
[0048] In some example embodiments, messages 104(1)-104(N) comprising message stream 104 may be transmitted as part of a point-to-point communication session between a sender of message 104(1)-104(N) (e.g., a user of communication device 102) and an intended recipient of message 104(1)-104(N) (e.g., a driver or other occupant of vehicle 108). For example, messages 104(1)-104(N) may be transmitted from a sender to a recipient as part of a text or chat messaging conversation solely between the sender and recipient. In other example embodiments, messages 104(1)-104(N) may be transmitted by multiple senders using multiple instances of a client application running on multiple communication devices as part of a group messaging conversation that also includes the recipient (e.g., a driver or other occupant of vehicle 108). In the case of a multipoint communication session (e.g., a group chat), messages 104(1)-104(N) may be sent by multiple different senders, with each message being sent from the individual sender of the message to each other participant in the group communication session.
[0049] In example embodiments, client application 110 can execute message detection and delivery control logic 112 to implement the message detection and delivery control techniques disclosed herein. Logic 112 can be embedded within the source code of client application 110, which, as described above, can be a mobile application, a web-based application, a native device application, or the like. In some example embodiments, logic 112 can be provided in the form of a web browser plug-in, a browser extension, an application add-in, or the like.
[0050] In some embodiments, a message detection and delivery control circuit, such as the example circuit 200 depicted in FIG. 2A , may be provided within the vehicle 108. The circuit 200 may be configured to execute the client application 110 and the message detection and delivery control logic 112. The message detection and delivery control circuit 200 may be implemented as or as part of an electronic control unit (ECU). In other example embodiments, the message detection and delivery control circuit 200 may be implemented independently of the ECU.
[0051] Message detection and delivery control circuitry 200 includes communication circuitry 202, decision circuitry 204 (which in this example includes processor 206 and memory 208), and power supply 210. The components of message detection and delivery control circuitry 200 are shown communicating with each other via a data bus, although other communication interfaces are contemplated. Although not shown in FIG. 2A , message detection and delivery control circuitry 200 may include switches (physical or virtual) that allow a user to toggle on and off the message detection and delivery control functions disclosed herein.
[0052] The processor 206 may include a graphical processing unit (GPU), a central processing unit (CPU), a microprocessor, or any other suitable processing unit or system. The memory 208 may include one or more various forms of memory or data storage (e.g., flash memory, random access memory (RAM), etc.) into which the client application 110 and logic 112 are loaded for execution by the processor 206. The memory 208 may be comprised of one or more modules of one or more different types of memory and may be configured to store data and other information as well as operating instructions that may be used by the processor 206 to implement the message detection and delivery control circuit 200.
[0053] 2A is shown using a processor and memory circuit, as described below with reference to the circuitry disclosed herein, the decision circuit 204 may be implemented utilizing any form of circuitry, including, for example, hardware, software, firmware, or any combination thereof. As a further example, one or more processors, controllers, application specific integrated circuits (ASICs), programmable logic array (PLA) devices, programmable array logic (PAL) devices, complex programmable logic devices (CPLDs), field programmable gate arrays (FPGAs), logic components, software routines, or other mechanisms could be implemented to make up the message detection and delivery control circuit 200. Similarly, in some example embodiments, the logic 112 may be implemented in any combination of software, hardware, or firmware.
[0054] The communications circuitry 202 may include a wireless transceiver circuitry 202A with an associated antenna 212 and / or a wired input / output (I / O) interface 202B with an associated wired data port (not shown). As this example illustrates, communications to and from the message detection and delivery control circuitry 200 may include wired and / or wireless communications. The wireless transceiver circuitry 202A may include a transmitter and receiver (not shown) to allow wireless communications via any of several wireless communications protocols, such as, for example, an 802.11 wireless communications protocol (e.g., WiFi), Bluetooth, Near Field Communication (NFC), Zigbee, or any of several other wireless communications protocols, whether standardized, proprietary, open, point-to-point, networked, or otherwise. The antenna 212 is coupled to the wireless transceiver circuitry 202A and is used by the wireless transceiver circuitry 202A to wirelessly transmit radio frequency (RF) signals to connected wireless devices and to receive wireless signals as well. These RF signals may contain almost any type of information transmitted or received by the message detection and delivery control circuitry 200 to or from other entities, such as vehicle sensors (not shown), other vehicle systems (not shown), the sender's external communication device (e.g., device 102 of FIG. 1), or the like.
[0055] Wired I / O interface 202B may include transmitters and receivers (not shown) for wired communication with other devices. For example, wired I / O interface 202B may provide a wired interface to other components, including vehicle sensors or other vehicle systems. Wired I / O interface 202B may communicate with other devices using Ethernet or any of several other wired communication protocols, whether standardized, proprietary, open, point-to-point, networked, or otherwise.
[0056] The power source 200 may include one or more batteries (e.g., lithium ion, lithium polymer, NiMH, NiCd, NiZn, and NiH2, to name a few, whether rechargeable or primary), a power connector (e.g., one that connects to power provided by the vehicle, etc.), an energy harvester (e.g., solar cell, piezoelectric system, etc.), or any other suitable power source.
[0057] In an example embodiment, message detection and delivery control logic 112 may include one or more program modules, each of which may be configured to perform a specialized set of tasks in connection with the implementation of the message detection and delivery control protocol performed by logic 112. For example, referring now to FIG. 2B , message detection and delivery control logic 112 may include a message queue management module 214 configured to perform processing to stop the delivery / presentation of messages (e.g., messages 104(1)-104(N) in message stream 104) received in rapid succession as part of the same communication thread, for example, by placing the incoming messages in a message queue until a delivery event condition is detected. Message detection and delivery control logic 112 may further include a delivery event condition monitoring module 116 configured to monitor for and perform processing to detect the occurrence of a delivery event condition. The message detection and delivery control logic 112 may further include a message digest generation module 218 configured to perform processing to generate an aggregated message digest from the contents of the queued messages in response to detecting a delivery event condition.
[0058] The message digest generation module 218 may further include a semantics-based message content aggregation submodule 220, which may be configured to perform processing to determine semantic similarity between the content of different messages within the same communication thread and to aggregate the content of messages determined to have semantic similarity within a similarity threshold. Semantically aggregating similar messages may include discarding redundant content between messages. Semantically aggregating similar messages may also include summarizing related content between messages—for example, by noting the names of three members of a group chat who responded “yes” to a user query, as opposed to three independent “yes” responses. It should be understood that the number of modules and tasks associated with each module depicted in FIG. 2B is not limiting and is for illustrative purposes only. The message detection and delivery control logic 112 may include more or fewer modules than those depicted in FIG. 2B, and the partitioning of processing among the modules may also vary. Additionally, any module depicted as a sub-module of another module may instead be a stand-alone module, or vice versa. Furthermore, each module may be implemented in software as computer / machine-executable instructions or code, in firmware, in hardware as hardwired logic within specialized computing circuitry such as an ASIC, FPGA, or the like, or any combination thereof. Any description herein of a module or circuitry performing a particular task or set of tasks should be understood to encompass one or more tasks performed in response to execution of machine-executable instructions in the module and / or hardwired logic of the module.
[0059] 3 , at block 304 of method 300, message queue management module 214 may halt immediate delivery / presentation of received messages 104(1)-104(N) until delivery event condition 116 is detected. More specifically, message queue management module 214 may determine that messages 104(1)-104(N) in message stream 104 form part of the same communication thread and may then halt delivery / presentation of messages 104(1)-104(N) to intended recipients until notified of the occurrence of delivery event condition 116 by delivery event condition monitoring module 216. In an example embodiment, message queue management module 214 may determine that messages 104(1)-104(N) in message stream 104 are part of the same communication thread as long as messages 104(1)-104(N) are received in succession without the detection of an intervening delivery event condition and as long as the messages are associated with the same communication session. The same communication session may include a point-to-point communication session involving only two users who may alternate between the roles of sender and receiver (e.g., an individual text conversation) or a multipoint communication session involving multiple potential senders and receivers (e.g., a group chat conversation).
[0060] In example embodiments, message queue management module 214 can stop the provision / presentation of messages 104(1)-104(N) by placing the messages in message queue 114 and inhibiting the transmission of the message content to output device 120 (e.g., speaker, display, haptic output device, etc.), thereby preventing the presentation of the message content via the output interface of output device 120. Also, in some example embodiments, inhibiting the provision of the message content of messages 104(1)-104(N) to output device 120 can include inhibiting the provision of any notification (e.g., visual, audible, tactile, etc.) to the message recipient of receipt of message 104(1)-104(N). The term output interface may sometimes be used herein to describe the form of output provided by output device 120. For example, if output device 120 is a speaker, the output interface may be considered to be an audible output interface; if output device 120 is a display, the output interface is a visual output interface; and if output device 120 is a haptic feedback device, the output interface is a haptic output interface.
[0061] 3, at block 306 of method 300, supply event state monitoring module 216 may monitor for supply event states 116. Exemplary types of supply event states 116 will be described in further detail with reference to the exemplary method of FIG. 4. While monitoring for supply event states 116, supply event state monitoring module 216 may periodically evaluate whether a supply event state 116 has been detected according to preconfigured criteria at block 308 of method 300. In an exemplary embodiment, the preconfigured criteria may relate to the manner in which the supply event states are defined.
[0062] As long as a feed event is not detected (negative determination at block 307), the feed event state monitoring module 216 may continue to monitor for the occurrence of the feed event state 116. Also, while monitoring for the occurrence of the feed event state 116, additional messages may be received that form part of the same communication thread as the message stream 104, in which case the message queue management module 214 may stop the feeding / presentation of any such messages and place them in the message queue 114 along with previously received messages. In response to detecting the occurrence of the feed event state 116 (positive determination at block 308), the message digest generation module 218 may aggregate the contents of the messages in the message queue 114 that form part of the same communication thread into an aggregated message digest 118 at block 310 of the method 300. Then, at block 312 of method 300, message digest generation module 218 may transmit the aggregated message digest 118 to output device 120 for presentation by output device 120 to the intended recipient of the message content (e.g., the driver of vehicle 108). This results in minimal disruption to the user experience of the message recipient because the number of messages and the frequency with which notifications of receipt / presentation of their content occur are reduced.
[0063] A more specific implementation of example method 300 will now be described in relation to example method 400, which is depicted in the flowchart of Figure 4. In an example embodiment, the steps in blocks 402 and 404 may involve processing similar to the steps in blocks 302 and 304 of method 300 of Figure 3. Furthermore, one or more of the steps in blocks 406, 408, 410, 412, and 414 may represent a particular implementation of the processing performed in blocks 306 and 308 of method 300 of Figure 3.
[0064] Referring now to block 406 of method 400, the message detection and delivery control circuitry 200 may initialize first and second counters. In some exemplary embodiments, the first and second counters may each be initialized to zero. The first and second counters may then be incremented and compared against a communication pause threshold time period and a delivery wait threshold time period, respectively, as part of determining whether a delivery event condition has occurred, as described in more detail below. The communication pause threshold time period and the delivery wait threshold time period may be pre-configurable and changeable values by a user. In other exemplary embodiments, the first counter may be initialized to a first time period representing the communication pause threshold time period, and the second counter may be initialized to a second time period representing the overall delivery wait threshold time period; in this case, the counters may be decremented, and the occurrence of a delivery event condition may be signaled when either counter reaches zero, as described in more detail below. In some example embodiments, the second time period may be longer than the first time period, and thus the first counter may be reset more frequently than the second counter. In still other example embodiments, one of the first counter or the second counter may be initialized to zero, and the other counter may be initialized to a communication pause threshold time period or a supply wait threshold time period, as appropriate.
[0065] Referring next to block 408 of method 400, the feed event state monitoring module 216 can determine whether a typing awareness signal is detected during a temporary inactivity threshold time period of a communication tracked by the first counter. The typing awareness signal can be a signal announcing a sender's intent to send another communication subsequent to a most recently received message within the same communication thread. For example, the typing awareness signal can be a signal generated by the sender's messaging application (e.g., a client application running on the communication device 102) and indicating that the sender is actively composing a message to the recipient or exhibiting a certain level of activity within a communication session involving the sender and recipient. The sender's messaging application can communicate the typing awareness signal to the recipient's messaging application (e.g., client application 110) before the sender actually completes the message and begins sending it to the recipient.
[0066] As described above, the feed event state monitoring module 216 can monitor for a typing awareness signal as the first counter tracks the progress of the communication pause threshold time period. In some example embodiments, the communication pause threshold time period can be initially measured from the time of receipt of the most recently received message in the same communication thread. That is, the first counter can be initialized upon receipt of the most recently received message in the same communication thread. Furthermore, in example embodiments, the first counter can be reset in response to detecting a typing awareness signal (i.e., the communication pause threshold time period can be re-measured from the start of the time period). For example, in response to detecting a typing awareness signal during the communication pause threshold time period (positive determination at block 408), the feed event state monitoring module 216 can reset the first counter at block 414 of method 400. Thus, in an exemplary embodiment, receipt of a typing awareness signal during the communication pause threshold time period may result in a continued cessation of the sequence of received messages (e.g., messages 104(1)-104(N)), which form part of the same communication thread as the intended future message being notified by the typing awareness signal, unless one or more other supply event conditions are detected.
[0067] Furthermore, in some example embodiments, the presence or absence of a lull in communication may be determined relative to the same sender who sent one or more recent messages to the recipient, such as in the case of a text or instant messaging conversation involving only the sender and recipient. In other example embodiments, the presence or absence of a lull in communication may be determined relative to the same or different sender of the most recent message, such as in the case of a group text or group instant messaging conversation involving multiple participants.
[0068] On the other hand, if a typing awareness signal is not detected at block 408, method 400 proceeds to block 410, where the supply event status monitoring module 216 determines whether a communication pause threshold time period has expired. Depending on how the first counter was initialized, the determination at block 410 may include determining whether the first counter has expired (if the first counter was initialized to and then decremented from the communication pause threshold time period) or determining whether the first counter has reached a communication pause time threshold representing the communication pause threshold time period (if the first counter was initialized to zero and then incremented from zero). In some example embodiments, the communication pause threshold time period may be, for example, 5 to 10 seconds.
[0069] If the delivery event state monitoring module 216 determines that the communication pause threshold has not yet expired (a negative determination at block 410), method 400 proceeds to block 412, where the module 216 determines whether another delivery event state has occurred, specifically, whether the delivery wait threshold time period has expired. Depending on how the second counter was initialized, the determination at block 412 may include determining whether the second counter has expired (if the second counter was initialized to and then incremented from the delivery wait threshold time period) or determining whether the second counter has reached a delivery wait time threshold representing the delivery wait threshold time period (if the second counter was initialized to and then incremented from zero). As mentioned above, the delivery wait threshold time period may be longer than the communication pause threshold time period and, in some example embodiments, may be measured from the time of receipt of the earliest received message in a given communication thread. For example, if the communication pause threshold time period is 5-10 seconds, the supply wait threshold time period may be 45-60 seconds, It should be understood that these time period values are for illustrative purposes only and not limiting.
[0070] In an example embodiment, the delivery wait threshold time period can function to ensure that messages are not queued and their delivery is not stopped for an unreasonably long period of time. That is, the delivery wait threshold time period can be a preconfigured length of time that marks a cutoff point at which message delivery is no longer stopped and the contents of the stopped messages in a given communication thread are aggregated for delivery to recipients. Specifically, in response to a positive determination at block 412 indicating that the delivery wait threshold time period has expired and, therefore, an occurrence of delivery event state 116 has been detected, message digest generation module 218 aggregates the contents of the stopped messages in a given communication thread (e.g., messages 104(1)-104(N)) into an aggregated message digest (e.g., aggregated digest 118) at block 416 of method 400. Then, in block 418 of method 400, the message detection and delivery control circuit 200 sends the aggregated message digest to an output device (e.g., output device 120), and the output device presents the aggregated digest to the intended recipient via a corresponding output interface.
[0071] Also, in the exemplary embodiment, method 400 proceeds from block 414 to block 412. That is, in response to detecting a typing awareness signal in block 408 and responsively resetting the first counter (i.e., resetting the communication pause time period) in block 414, method 400 proceeds to block 412 to determine whether another feed event condition has occurred (i.e., expiration of the feed wait threshold time period). If the feed wait threshold time period has expired (a positive determination in block 412), method 400 proceeds to block 416, where an aggregated message digest is generated, as described above. Thus, in some example embodiments, a sequence of stalled messages (e.g., messages 104(1) through 104(N)) that form part of the same communication thread may be aggregated into a message digest (e.g., aggregated message digest 118) in block 416 in response to determining that the supply wait threshold time period has expired in block 412, even if a typing awareness signal or some other signal is received within the communication pause threshold time period.
[0072] That is, in some example embodiments, received messages that form part of the same communication thread can be aggregated into a single message digest and presented to the recipient upon expiration of the serving wait time threshold, even if a signal is received before the serving wait time threshold that indicates the sender is creating a new message within the same communication thread. More particularly, in some example embodiments, the recipient's client application (e.g., client application 110) can aggregate the contents of stalled messages within the same communication thread and present it to the recipient upon expiration of the serving wait time threshold, despite being aware of the sender's intent to send a new message within the same communication thread. As a result, the new message can form part of a new communication thread when it is received.
[0073] In certain exemplary embodiments, if a new message is received before aggregating previously received messages into a single message digest and / or before providing the aggregated message digest to an output device for presentation to a recipient, the content of the new message can be excluded from the aggregated message digest as long as the new message is received subsequent to the expiration of the serving wait time threshold. In other exemplary embodiments, if a new message is received prior to generation of the aggregated message digest, its content can be included in the message digest even if the new message is received subsequent to the expiration of the serving wait time threshold. In still other exemplary embodiments, if a new message is received prior to transmission of the aggregated message digest to an output device, the aggregated message digest can be modified to include the content of the new message even if the message digest has already been generated and the new message is received subsequent to the expiration of the serving wait time threshold.
[0074] On the other hand, referring again to block 412, if the delivery event state monitoring module 216 determines that the delivery wait threshold time period has not expired (a negative determination at block 412), then method 400 may again proceed from block 408, where module 216 checks for receipt of a typing awareness signal. Method 400 may proceed iteratively in this manner until a delivery event condition is detected, such as the absence of a typing awareness signal or other signal indicating a sender's intent to send another message during a temporary lull in communications threshold time period, the expiration of the delivery wait threshold time period, or the occurrence of another delivery event condition.
[0075] It should be understood that the feed event conditions disclosed herein are for illustrative purposes and not exhaustive. For example, other feed event conditions that may trigger the generation of an aggregated message digest include a threshold number of messages received in a given communication thread, a threshold amount of content contained within the received messages (e.g., a threshold number of characters), etc. It should also be understood that the operations at blocks 306 and 308 of example method 300 (as well as specific example implementations of the operations at blocks 406, 408, 410, 412, and 414 of method 400) may be performed in conjunction with a respective communication thread and may begin upon receipt of a first message in a given communication thread. That is, although the processing associated with monitoring for a supply event state is described and depicted as occurring following receipt of a message stream and cessation (e.g., queuing) of the received message, it should be understood that the supply event state monitoring processing may be initiated upon receipt of the first message in a communication thread, and cessation of messages received in that communication thread while a supply event state is not detected may occur in parallel with the supply event state monitoring processing.
[0076] 5 is a flowchart of an example method 500 for aggregating messages received in a message stream based on semantic characteristics of the messages, according to an example embodiment of the present invention. Specifically, example method 500 provides a technique for reducing the amount of message content included in an aggregated message digest by performing semantic processing on the message content to further aggregate / remove redundant or semantically similar content.
[0077] 2B and now referring to FIG. 5, at block 502 of method 500, feed event state monitoring module 216 detects a feed event state related to a message stream that includes a series of separate, sequentially received messages. The messages may form part of the same communication thread, and the feed may have been stopped while module 216 was monitoring for the occurrence of the feed event state, as described above.
[0078] At block 504 of the method 500, the semantics-based message content aggregation module 200 may determine a subset of messages in the message stream that are semantically similar to one another within a desired semantic similarity threshold.
[0079] In some embodiments, the semantics-based message content aggregation module 220 may perform semantic processing on the message content of the received messages to calculate an individual semantic similarity score for each message pair. The module 220 may then determine a subset at block 504 as including those message pairs having corresponding semantic similarity scores within a threshold similarity value. In some example embodiments, each message in the identified subset may have a semantic similarity score relative to each other message in the subset that is within the threshold similarity value. In other example embodiments, a given message may be included in the subset as long as it has a semantic similarity score within a threshold number of other messages in the subset.
[0080] Then, at block 506 of method 500, the semantics-based message content aggregation module 220 may generate an aggregated message from the subset of messages identified at block 504. At block 508 of method 500, the message digest generation module 218 may generate an aggregated message digest that includes not only the aggregated message generated at block 506 but also one or more other messages from the received message stream that were not identified as part of the subset. For example, the one or more other messages may include one or more messages in the message stream that are not sufficiently semantically similar to other messages in the subset to justify their inclusion therein. Finally, at block 510 of method 500, the message detection and delivery control circuitry 200 (FIG. 2A) may transmit the aggregated message digest to an output device for presentation to the intended recipient of the message stream.
[0081] In some example embodiments, there may be multiple threshold similarity values (or ranges of values) that control the characteristics of the aggregation performed in block 506. For example, if each message in the subset identified in block 504 has a semantic similarity score relative to each other message in the subset (or relative to some threshold number of other messages in the subset) that is within a first threshold similarity value, then the aggregation in block 506 may include selecting only the content of single ones of the messages that satisfy the first threshold similarity value relative to each other for inclusion in the aggregated message. The first threshold similarity value may represent the closest level of similarity among the messages in the subset.
[0082] To illustrate this scenario, assume that a set of responses received in a group chat conversation to a question posed by one of the participants all have essentially the same semantic meaning. In this scenario, one of the responses can be selected to represent all of the responses, and the remaining responses can be discarded when generating the aggregated message. As a non-limiting example, assume that the question, "Is everyone OK with having dinner at Restaurant X?" is posed in a group chat conversation. Further assume that the following responses are received: User 1: "Sure," User 2: "Yes," User 3: "I'm OK," and User 4: [graphical element representing a "thumbs up"]. It is clear that each of these responses essentially has the same semantic meaning, and in this case, one of the responses (e.g., "Yes") can be selected for inclusion in the aggregated message generated in block 506, and the remaining messages can be discarded. This single aggregated and summarized response may then be returned to all relevant responders (e.g., User 1, User 2, User 3, User 4) to ensure that context is preserved for the receiving users. This non-limiting example also illustrates that 1) semantic meaning can be identified / derived from non-text message content, including, without limitation, graphical content, audio / video content, image content, etc., and 2) semantic similarity can be determined between different types of content (e.g., graphical content vs. textual content).
[0083] In some example embodiments, the messages in the subset identified in block 504 may have one or more semantic similarity scores relative to one another that are not within a first threshold similarity value but are within a second threshold similarity value indicating a relatively poor degree of similarity between the messages. In such example embodiments, some of the content of the messages may be redundant or essentially identical in a semantic sense, while other portions of the content may be sufficiently dissimilar in a semantic sense that discarding such portions would result in a loss of information. In such example embodiments, semantic similarity scores may be calculated relative to portions of the messages. That is, multiple semantic similarity scores may be calculated for each message in the subset relative to each other message. For example, individual semantic similarity scores may be calculated for each unit portion of a message relative to each unit portion (e.g., each word, phrase, sentence, etc.) of each other message. As a result, in some example embodiments, when forming the aggregated message at block 506, module 220 may include in the aggregated message individual portions of the message that have semantic similarity scores that are within the second threshold similarity value (but not within the first threshold similarity value), while retaining representative message portions that are within the first threshold similarity value between those portions and discarding other semantically redundant portions.
[0084] It should be understood that the above-described techniques for generating aggregated messages in block 506 are illustrative and not exhaustive. It should be further understood that the semantic similarity score may be calculated using any of several known similarity algorithms, including, without limitation, Euclidean distance, Manhattan distance, Minkowski distance, cosine similarity, Jaccard similarity, or the like. Additionally, in some example embodiments, the semantic similarity score may be weighted based on various factors, such as the amount of content in the message, whether an urgency label has been applied to the message, the use of idioms or slang in the message, etc.
[0085] As used herein, the terms circuit and component may describe a given unit of functionality that may be performed according to one or more embodiments of the present application. A component, as used herein, may be implemented using any form of hardware, software, or a combination thereof. For example, one or more processors, controllers, ASICs, PLAs, PALs, CPLDs, FPGAs, logic components, software routines, or other mechanisms may be implemented to constitute a component. The various components described herein may be implemented as separate components, or the described functions and features may be shared, in part or in whole, among one or more components. In other words, as will be apparent to one of ordinary skill in the art after reference to this description, the various features and functions described herein may be implemented in any given application. They may be implemented in one or more separate or shared components in various combinations and permutations. While various features or functional elements may be individually described or claimed as separate components, it should be understood that these features / functions may be shared among one or more common software and hardware elements. Such description does not require or imply that separate hardware or software components be used to implement such features or functionality.
[0086] Where components are implemented in whole or in part using software, these software elements may be implemented to operate in conjunction with computing or processing components capable of performing the described functions in relation thereto. One such example computing component is shown in Figure 6. Various embodiments are described in terms of this example computing component 600. After reading this description, it will be apparent to one skilled in the art how to implement the present application using other computing components or architectures.
[0087] Referring now to FIG. 6 , computing component 600 may represent, for example, computing or processing capabilities found in self-adjusting displays, desktop, laptop, notebook, and tablet computers. They may be found in handheld computing devices (tablets, PDAs, smartphones, cell phones, palmtops, etc.). They may be found in workstations or displays, servers, or other devices with other types of special-purpose or general-purpose computing devices that may be desirable or appropriate for a given application or environment. Computing component 600 could also represent computing capabilities embedded within or otherwise available to a given device. For example, computing components could be found in other electronic devices, such as, for example, portable computing devices, or other electronic devices that may include some form of processing capability.
[0088] Computing component 600 could include, for example, one or more processors, controllers, control components, or other processing devices. This could include processor 606, processor 206 (FIG. 2A), or the like. Processor 604 could be implemented using a general-purpose or special-purpose processing engine, such as, for example, a microprocessor, controller, or other control logic. Processor 604 can be connected to bus 602. However, any communication medium can be used to facilitate interaction with other components of computing component 600 or to communicate externally.
[0089] Computing component 600 may also include one or more memory components, referred to herein simply as main memory 608, which in the illustrative embodiment may include memory 208 (FIG. 2A). For example, random access memory (RAM) or other dynamic memory may be used to store information and instructions to be executed by processor 604. Main memory 608 may also be used to store temporary variables or other intermediate information during execution of instructions to be executed by processor 604. Similarly, computing component 600 may also include read-only memory ("ROM") or other static storage device coupled to bus 602 to store static information and instructions for processor 604.
[0090] The computing component 600 may also include one or more various forms of information storage mechanisms 610, which could include, for example, a media drive 612 and a storage unit interface 620. The media drive 612 could include a drive or other mechanism for supporting fixed or removable storage media 614. For example, a hard disk drive, a solid-state drive, a magnetic tape drive, an optical drive, a compact disc (CD) or digital video disc (DVD) drive (R or RW), or other removable or fixed media drive could be provided. The storage media 614 could include, for example, a hard disk, an integrated circuit assembly, a magnetic tape, a cartridge, an optical disk, a CD, or a DVD. The storage media 614 may be any other fixed or removable media that can be read, written, or accessed by the media drive 612. As these examples illustrate, the storage media 614 can include a computer-usable storage medium having computer software or data stored therein.
[0091] In alternative embodiments, information storage mechanism 610 could include other similar means for allowing computer programs or other instructions or data to be loaded into computing component 600. Such means could include, for example, a fixed or removable storage unit 622 and interface 620. Examples of such storage units 622 and interfaces 620 could include program cartridges and cartridge interfaces, removable memory (e.g., flash memory or other removable memory components), and memory slots. Other examples include PCMCIA slots and cards and other fixed or removable storage units 622 and interfaces 620 that allow software and data to be transferred from storage unit 622 to computing component 600.
[0092] The computing component 600 may also include a communications interface 624. The communications interface 624 may be used to allow software and data to be transferred between the computing component 600 and external devices. Examples of the communications interface 624 may include a modem or soft modem, a network interface (Ethernet, network interface card, IEEE 802.XX, or other interface). Other examples include a communications port or other communications interface (e.g., a USB port, an IR port, an RS232 port, a Bluetooth interface, or other port). The software / data transferred via the communications interface 624 may be carried on signals, which may be electronic, electromagnetic (including optical), or other signals capable of being exchanged by a given communications interface 624. These signals may be provided to the communications interface 624 via a channel 628. The channel 628 may carry signals and may be implemented using a wired or wireless communications medium. Some examples of a channel could include a phone line, a cellular link, an RF link, an optical link, a network interface, a local or wide area network, and other wired or wireless communications channels.
[0093] The terms "computer program medium" and "computer usable medium" are used herein to generally refer to transitory or non-transitory media. Such media may be, for example, memory 608, storage unit 620, medium 614, and channel 628. These and other various forms of computer program medium or computer usable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution. Such instructions embodied on the medium are generally referred to as "computer program code" or a "computer program product" (which may be grouped in the form of a computer program or other grouping). When executed, such instructions may enable computing component 600 to perform the features or functionality of the present application as described herein.
[0094] It should be understood that various features, aspects, and functions described in one or more of the individual embodiments are not limited in their applicability to the particular embodiment being described. Instead, they may be applied alone or in various combinations to one or more other embodiments, regardless of whether such embodiment is described and regardless of whether such features are presented as part of the described embodiment. Accordingly, the breadth and scope of the present application should not be limited by any of the exemplary embodiments described above.
[0095] Terms and phrases used herein, and variations thereof, should be construed as open-ended rather than limiting, unless expressly stated otherwise. As examples of the above, the term "including" should be read to mean "including without limitation" or similar. The term "examples" is used to provide illustrative instances of the subject item, not as an exhaustive or limiting list. The terms "a" or "an" should be read to mean "at least one," "one or more," or similar terms, as well as adjectives such as "conventional," "traditional," "usual," "standard," and "known." Terms of similar import should not be construed to limit the items described to those available in a given period or at a given time. Instead, they should be read to encompass conventional, traditional, ordinary, or standard technology that may be available or known now or at any time in the future. Where this specification refers to technology that would be apparent or known to one of ordinary skill in the art, such technology encompasses that which is apparent or known to one of ordinary skill in the art now or at any time in the future.
[0096] The presence in some instances of an expanding word or phrase such as "one or more," "at least," "without limitation," or other similar phrases should not be read as implying that a narrower case is intended or required in instances where such expanding phrase may be absent. The use of the term "component" does not imply that any aspects or functionality described or claimed as part of a component are configured within a common package. Indeed, any or all of the various aspects of a component, whether control logic or other components, may be combined within a single package or may be maintained separately and further distributed in multiple groupings or packages or across multiple locations.
[0097] Additionally, various embodiments described herein are described in terms of illustrative block diagrams, flow charts, and other diagrams. As will become apparent to those skilled in the art after reading this specification, the illustrated embodiments and various alternatives thereof can be implemented without limitation to the illustrated examples. For example, block diagrams and their accompanying description should not be construed as mandating a particular architecture or configuration.
[0098] Example 1. A system: at least one memory storing machine-executable logic; at least one processor configured to access the at least one memory; and monitoring for a delivery event condition and stopping delivery of a plurality of messages constituting the message stream; aggregating content of the plurality of messages as a message digest, at least in part in response to detecting the feed event condition; and transmitting the aggregated message digest to an output device for presentation of the contents of the plurality of messages via the output device; the at least one processor configured to execute the machine-executable logic; A system having: Example 2. The at least one processor: placing the plurality of messages in a message queue while monitoring for the delivery event status; 2. The system of Example 1, configured to stop providing the plurality of messages by executing the machine-executable logic. Example 3. The system of example 2, wherein the content of the plurality of messages is not presented via the output device until the delivery event condition is detected. Example 4. The at least one processor: to detect a temporary cessation of communication for a first threshold time period; 2. The system of claim 1, further comprising: a processor configured to execute the machine-executable logic to detect the supply event condition; and wherein the temporary pause in communication is detected based on a signal indicating an intended communication of a further message that has not been received in the first threshold time period within a communication thread that includes the plurality of messages. Example 5. 5. The system of Example 4, wherein the first threshold time period is measured from receipt of a most recently received message of the plurality of messages or from receipt of a most recent signal indicating an intended communication within the communication thread. Example 6. The system of Example 4, wherein the signal indicating the intended communication of a further message is a typing awareness signal indicating i) that the further message is currently being composed, or ii) that there is activity from one or more users in a communication session associated with the communication thread. Example 7. The system of Example 6, wherein the typing awareness signal is generated from activity within the communication session associated with a first user who generated a most recently received message of the plurality of messages. Example 8. The system of Example 6, wherein the communication session includes a first user who generated a most recently received message of the plurality of messages and a second user, and the typing awareness signal is generated from activity within the communication session associated with the second user. Example 9. The plurality of messages includes a first message, and the at least one processor: determining a time point of receipt of the first message; and detecting a signal indicating intended communication of a second message subsequent to the first message for a first threshold time period after the time of receipt of the first message; 2. The system of example 1, configured to execute the machine-executable logic to stop delivering the first message while monitoring for the delivery event condition. Example 10. The at least one processor: determining that a second threshold time period has elapsed since receipt of a particular message of the plurality of messages; 10. The system of example 9, configured to detect the supply event condition by executing the machine-executable logic. Example 11. The system of example 10, wherein the time of receipt of the particular message is before the time of receipt of each of the other messages of the plurality of messages. Example 12. The at least one processor: determining that the second message has not been received at least in part in response to the second threshold time period having elapsed; further configured to execute the machine-executable instructions; 12. The system of example 11, wherein the aggregated message digest is transmitted to the output device upon continued receipt of the signal indicating the intended communication of the second message. Example 13. The at least one processor: receiving the second message before transmitting the aggregated message digest to the output device; and to exclude content of the second message from the aggregated message digest; 13. The system of Example 12, further configured to execute the machine-executable instructions. Example 14. The system of example 1, wherein the output device is a display or a speaker provided in an in-vehicle environment. Example 15. A method comprising: Stopping delivery of a plurality of messages comprising the message stream while monitoring for a delivery event condition; aggregating content of the plurality of messages as a message digest at least in part in response to detecting the feed event condition; transmitting the aggregated message digest to an output device for presentation of the contents of the plurality of messages via the output device; A method having the following. Example 16. Detecting the supply event condition comprises: detecting a temporary pause in communication for a first threshold time period, the temporary pause in communication being detected based on a signal notifying an intended communication of a further message not being received within the communication thread comprising the plurality of messages for the first threshold time period; The method of Example 15, comprising: Example 17. The plurality of messages includes a first message, and stopping delivery of the first message while monitoring for the delivery event condition includes: determining a time point when the first message is received; detecting a signal indicating intended communication of a second message subsequent to the first message a first threshold time period after the time of receipt of the first message; The method of Example 15, comprising: Example 18. Determining that a second threshold time period has elapsed since a time of receipt of a particular message of the plurality of messages, the time of receipt of the particular message being prior to a respective time of receipt of each other message of the plurality of messages; determining that the second message has not been received at least in part in response to the second threshold time period having elapsed; and and 18. The method of example 17, wherein the aggregated message digest is transmitted to the output device in continuation of receipt of the signal indicating the intended communication of the second message. Example 19. The method of example 15, wherein the output device is a display or a speaker provided in an in-vehicle environment. Example 20. An in-vehicle system, an output device; 1. A programmable circuit comprising: at least one memory device storing machine-executable logic; and monitoring for a delivery event condition and stopping delivery of a plurality of messages constituting the message stream; aggregating the plurality of messages as a message digest, at least in part in response to detecting the feed event condition; and transmitting the aggregated message digest to an output device for presentation of the contents of the aggregated message digest via the output device; at least one processing unit configured to access the at least one memory unit and to execute the machine-executable logic; a circuit having A system having:
Claims
1. 1. A system comprising: at least one memory storing machine-executable logic; at least one processor configured to access the at least one memory; and to stop feeding messages of a message stream while monitoring for a feed event condition; detecting at least a portion of a delivery event condition by detecting a pause in communication, the pause being the absence of a signal indicating the intended communication of a further message in the message stream, for a first threshold time period; aggregating content of the plurality of messages as a message digest, at least in part in response to detecting the feed event condition; and transmitting the message digest to an output device for presentation of the aggregated content of the plurality of messages via the output device; the at least one processor configured to execute the machine-executable logic; and The signal includes a typing awareness signal that notifies activity from one or more users in a communication thread that includes the plurality of messages.
2. The at least one processor placing the plurality of messages in a message queue while monitoring for the delivery event status; The system of claim 1 , wherein the system is configured to stop providing the plurality of messages by executing the machine-executable logic.
3. The system of claim 1 , wherein the content of the plurality of messages is not presented via the output device until the delivery event condition is detected.
4. 2. The system of claim 1, wherein the first threshold time period is measured from receipt of a most recently received message of the plurality of messages or from receipt of a most recent signal indicating the intended communication of the further message.
5. The system of claim 1 , wherein the activity in the communication thread includes the further message being created.
6. The system of claim 5 , wherein the additional message is created by a first user who created a most recently received message of the plurality of messages.
7. a communication session between a plurality of users includes said communication thread; a first user of the plurality of users generating a most recently received message of the plurality of messages; The system of claim 5 , wherein the further message is created by a second user of the plurality of users.
8. The plurality of messages includes a first message, and the at least one processor: determining a time point of receipt of the first message; and detecting a signal indicating intended communication of a second message subsequent to the first message a first threshold time period after the time of receipt of the first message; The system of any one of claims 1 to 4, configured to execute the machine-executable logic to stop feeding the first message while monitoring for the feed event condition.
9. The at least one processor determining that a second threshold time period has elapsed since receipt of a particular message of the plurality of messages; The system of claim 8 , configured to detect the supply event condition by executing the machine-executable logic.
10. 10. The system of claim 9, wherein the time of receipt of the particular message is before the time of receipt of each of the other messages of the plurality of messages.
11. The at least one processor determining that the second message has not been received at least in part in response to the second threshold time period having elapsed; further configured to execute the machine-executable logic; 11. The system of claim 10, wherein the message digest is transmitted to the output device upon receipt of the signal indicating the intended communication of the second message.
12. 1. A method comprising: Stopping the delivery of a plurality of messages of the message stream while monitoring for a delivery event condition; detecting at least a portion of a delivery event condition by detecting a pause in communication, the pause being the absence of a signal indicating the intended communication of a further message, for a first threshold time period; aggregating content of the plurality of messages as a message digest at least in part in response to detecting the feed event condition; transmitting the message digest to an output device for presentation of the aggregated content of the plurality of messages via the output device; and The method, wherein the signal comprises a typing awareness signal that notifies activity from one or more users in a communication thread that includes the plurality of messages.
13. The plurality of messages includes a first message, and stopping delivery of the first message while monitoring for the delivery event condition includes: determining a time point when the first message is received; detecting a signal indicating intended communication of a second message subsequent to the first message a first threshold time period after the time of receipt of the first message; 13. The method of claim 12, comprising:
14. determining that a second threshold time period has elapsed since a time of receipt of a particular message of the plurality of messages, the time of receipt of the particular message being prior to a respective time of receipt of each other message of the plurality of messages; determining that the second message has not been received at least in part in response to the second threshold time period having elapsed; and and 14. The method of claim 13, wherein the message digest is transmitted to the output device upon receipt of the signal indicating the intended communication of the second message.
Citation Information
Patent Citations
Information processing apparatus, information processing system, information processing method and program
JP2019125213A
Watching system, watching method, and program
JP2020136710A
Dynamic adaptation of notification output provision to reduce user distraction and / or mitigate computational resource usage
JP2020530671A
Organizing and classifying social media conversations to improve customer service
US20160196561A1
Conditional delivery of electronic messages
US20160205054A1