Fork and return point selection for sidebar communication threads
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-04-25
- Publication Date
- 2026-08-14
Smart Images

Figure CN119278613B_ABST
Abstract
Description
Technical Field
[0001] The embodiments involve a sidebar communication thread. Some embodiments involve the automatic sending of a final message as a result of the sidebar communication thread. Background Technology
[0002] Electronic communication, including email, chat, instant messaging, and message boards, allows users to communicate using electronically sent and received messages. These communications can be organized into groups of one or more messages known as message threads. A thread can include one or more related messages on the same topic; have a shared set of participants; or be initiated by replying to or replying to all messages on the same ancestor message. For example, an email thread can be created by replying to or replying to all messages. For some communication modalities, each successive message in a thread can include the content or history of past messages within that thread. In a chat room, each “thread” can be organized by the location where a message is posted. For example, each chat “room” can be dedicated to a specific topic and can be considered a specific thread. In some examples, more granular categories of messages can be provided. For example, a message board can have sections dedicated to specific categories. Within each category, each thread deals with a question, topic, or other relevant content within that specific category. Threads can then be initiated by users within that specific category by posting a new thread within that category. These threads can then be replied to by the user who initiated the thread or by other users. Attached Figure Description
[0003] In accompanying drawings that are not necessarily drawn to scale, similar reference numerals may describe similar components in different views. Similar numbers with different letter suffixes may indicate different instances of similar components. The accompanying drawings generally illustrate the various embodiments discussed in this document by way of example rather than limitation.
[0004] Figure 1 The illustration shows an example logic diagram of a sidebar thread according to some examples of this disclosure.
[0005] Figure 2 The illustration shows an example logic diagram of a sidebar thread according to some examples of this disclosure.
[0006] Figure 3 The illustration shows an example logic diagram of a sidebar thread according to some examples of this disclosure.
[0007] Figure 4 The diagram illustrates a graphical user interface (GUI) according to some examples of this disclosure, showing a message display interface with user controls for creating sidebar threads.
[0008] Figure 5The diagram illustrates a graphical user interface (GUI) according to some examples of this disclosure, showing a message display interface with user controls for creating a sidebar thread with deployed drop-down menus.
[0009] Figure 6 The diagram illustrates a GUI that creates a UI based on sidebar thread messages, according to some examples of this disclosure.
[0010] Figure 7 The illustration shows a sidebar thread message creation user interface with a sidebar thread message creation dialog according to some examples of this disclosure.
[0011] Figure 8 The illustration shows another example of a sidebar thread message creation user interface with a sidebar thread message creation dialog, according to some examples of this disclosure.
[0012] Figure 9 The diagram illustrates a GUI of a selection interface according to some examples of this disclosure.
[0013] Figure 10 The illustration shows a GUI of a message screen displayed to a sidebar thread participant when a sidebar message from the sidebar thread is received, according to some examples of this disclosure.
[0014] Figure 11 The diagram illustrates the logic of a sidebar thread occurring in a different communication modality from the main thread, according to some examples of this disclosure.
[0015] Figure 12 The diagram illustrates a logical diagram of a sidebar thread that branches from the main thread to an existing second communication thread, according to some examples of this disclosure.
[0016] Figure 13 The illustration shows examples of data structures corresponding to the sidebar thread according to some examples of this disclosure.
[0017] Figure 14 The illustration shows a logic diagram of the main thread participant group and the sidebar communication thread participant group according to some examples of this disclosure.
[0018] Figure 15 The illustration shows a logic diagram of the main thread participant group and the sidebar communication thread participant group according to some examples of this disclosure.
[0019] Figure 16 The illustration shows a logic diagram of a communication service and communication application according to some examples of this disclosure.
[0020] Figure 17 The diagram illustrates a flowchart of a method for providing a sidebar thread according to some examples of this disclosure.
[0021] Figure 18 The diagram illustrates a flowchart of a method, according to some examples of this disclosure, in which the reply position in the main thread for receiving main thread messages is specified.
[0022] Figure 19 The diagram illustrates a flowchart of a method for providing a sidebar thread as part of an associated pre-existing thread, according to some examples of this disclosure.
[0023] Figure 20 The illustration shows a GUI of a unified communications platform according to some examples of this disclosure and illustrates the creation of a sidebar message for creating a sidebar thread.
[0024] Figure 21 The illustration shows a portion of the GUI of a unified communications application according to some examples of this disclosure, and also illustrates the sidebar thread.
[0025] Figure 22 The illustration shows a portion of the GUI of a unified communications application according to some examples of this disclosure.
[0026] Figure 23 The illustration shows a portion of the GUI of a unified communications application according to some examples of this disclosure.
[0027] Figure 24 This is a block diagram illustrating an example of a machine on which one or more embodiments can be implemented. Detailed Implementation
[0028] Participants in a specific messaging thread (hereinafter referred to as the main thread) may want to receive feedback on messages that a participant is considering posting to the main thread from other users who may or may not be participants in the main messaging thread, without making that feedback visible to all participants in the main thread. For example, an employee and a customer may be discussing a product issue in the main thread, and the employee may want to get their boss's approval to post it to the main thread before posting it. Typically, the employee forwards an email to their boss and includes a message about their proposal. The boss will then approve the post, edit the proposed post, or otherwise reply in a separate messaging thread. Once the employee has the approval to post in the main thread, the employee will manually copy the post (e.g., the approved post or the modified post) back to its position in the main thread. This is time-consuming and results in cluttered inboxes and other messaging interfaces. It can also have the side effect of confusing the messaging system by grouping both the main thread and side threads into the same session. This can confuse one or more employees or bosses.
[0029] Methods, systems, devices, and machine-readable media for providing sidebar communication threads that fork from or are associated with the main thread are disclosed in some examples. The main thread involves a first set of participants (including the participant who initiated the sidebar thread, referred to as the sidebar initiator), and the sidebar communication thread involves a second set of participants, including the sidebar initiator. The sidebar thread is a regular messaging thread forked from the main thread, which may include different participants from the main thread, and its purpose is to discuss potential posts to the main thread. Messages in the sidebar communication thread may include the history of the main thread, including one or more messages from the main thread, and may include proposed main thread messages that are topics of discussion in the sidebar thread. The sidebar thread may also include sidebar thread messages that carry conversations between the participants of the sidebar thread. Once a termination condition is met for the sidebar thread, the sidebar thread terminates, and the proposed main thread message (potentially modified by a participant of the sidebar thread) becomes an accepted main thread message and is posted to the main thread as if it were sent by the sidebar initiator or no message is posted (e.g., the proposed main thread message is rejected). Communication threads can include email, chat, instant messaging, and postings on message boards.
[0030] The main thread can be an existing thread, and the received main thread message can be published from the sidebar thread as a reply, reply all, etc. In other examples, the received main thread message can be the first message in a completely new thread (e.g., the sidebar initiator might want to get feedback before issuing the message to start the main thread).
[0031] Participants in the sidebar thread and the main thread can be the same or different, but there is a common sidebar thread initiator. Termination conditions can include approval of a proposed main thread message, rejection of a proposed main thread message, a specified number of sidebar thread messages, time expiration, etc. In some examples, the sidebar thread and its history are not retained in the sidebar participants' inboxes or other communication stores. In other examples, the sidebar thread can be stored in a specific inbox or communication store. In other examples, the sidebar thread history may be available to the sidebar thread participants by selecting an option or link within the GUI that displays the main thread.
[0032] Therefore, this disclosure solves the technical problem of organizing sidebar message threads in the GUI of a messaging application using a separately tracked thread, which automatically publishes approved messages to the main thread. This reduces wasted network and computing resources by decreasing the message delivery and time required to manually maintain the sidebar thread and then publish the results to the main thread. It also leads to improvements in the GUI interface by reducing visual clutter caused by user-managed sidebar threads.
[0033] Figure 1 The diagram illustrates an example logic diagram of a sidebar thread according to some examples of this disclosure. A main thread 100 involving participant group A begins with an original message 105 as the root of the main thread. Users in group A can reply to create a first reply message 110. In some examples, such as email, the first reply message may include a copy of the original message 115. Users in group A can become sidebar initiators by selecting a sidebar user interface option of the communication application to fork the first reply message 110 into a sidebar thread. In response to the selection of the sidebar thread option, a sidebar message 160 is created. Sidebar message 160 can create a sidebar thread 150 when it is sent and can be the root of sidebar thread 150. Sidebar thread 150 can be on the same communication modality as or a different communication modality than the main thread 100. In some examples, sidebar thread 150 can be a new thread (as in...). Figure 1 As shown in the example), but in other examples, the sidebar thread can be added to a related (and existing) communication thread that is different from the main thread (see [example]). Figure 12 ).
[0034] When a sidebar thread is initiated, the sidebar initiator specifies the set of participants for the sidebar thread. This is done by specifying the set of participants in sidebar message 160. Figure 1 In the example, this is sidebar thread participant group B. The set of participants in the sidebar thread can be or include participants in the main thread (e.g., participant group A), can be different participants (besides the user who created the sidebar thread), or can include some common participants and some different participants. In some examples, the set of sidebar thread participants can change as users are added and subtracted with each message. For example, the first sidebar reply message 165 can add or remove participants from group B. Similarly, the participants in group A can change over time for the main thread. Therefore, the actual composition of the participant groups for these two communication threads can change over time.
[0035] The first sidebar message 160 may include a copy of the original message 152, a copy of the first reply message 154, the proposed main thread message 156, and the sidebar message 158. This message is delivered to the sidebar thread participants in group B.
[0036] Sidebar thread participants can have a number of available actions they can take in response to receiving the first sidebar message 160. The options can depend on the settings selected by the sidebar thread initiator when the sidebar thread is created. Example actions may include one or more of the following: approving the proposal in the main thread message 156, rejecting the proposal in the main thread message 156, replying to the first sidebar message 160 with additional sidebar messages (e.g., “looks good Bob, but I wouldn’t mention our Texas operations just yet.”), directly editing the proposal in the main thread message 156 (which may include changes to the tracking and comments), forwarding the sidebar message 160, etc. In some examples, the list of actions available to sidebar thread participants may differ for each user and may depend on the participant’s role in the organization relative to the sidebar thread initiator’s role (e.g., the initiator’s boss may have more available actions than the initiator’s colleagues, who may have more available actions than the initiator’s subordinates). Figure 1 In the example, a user in participant group B has replied and created a first sidebar reply message 165. This message may include a copy of the original message 175, a copy of the first reply message 173, the main thread message 171 proposing an edit, a copy of the sidebar message 169, and a sidebar reply message 167. Further messages may occur between sidebar thread participants until the sidebar thread termination condition is met.
[0037] In some examples, the sidebar thread can terminate upon the occurrence of one or more configured termination events. The event terminating the sidebar thread can be configured by the sidebar thread initiator, the administrator of the communication system, etc. Example termination conditions may include approval or rejection of a proposed main thread message by specific sidebar thread participants; approval or rejection of a proposed main thread message by a specified number of sidebar thread participants; expiration of a specified amount of time; a specified number of sidebar thread messages being published to the sidebar thread; and so on. In other examples, events from the main thread can trigger the sidebar thread's termination event. For example, a reply following the first reply message 110 can terminate the sidebar thread.
[0038] Based on termination events, the sidebar thread may or may not publish messages to the main thread. For example, some termination events cause the sidebar thread to terminate without publishing any messages from the sidebar thread (e.g., any proposed main thread messages) to the main thread. For instance, if a proposed main thread message is rejected by a participant in the sidebar thread. Other termination events can cause a proposed main thread message to become an accepted main thread message and be published to the main thread. In some examples, termination events that result in no messages being published to the main thread and termination events that result in messages being published to the main thread can be configured by the sidebar thread initiator, system administrator, etc.
[0039] In some examples, the system may allow participants in a sidebar thread to edit a proposed main thread message from a sidebar thread receiver. In some examples, these changes may be automatically accepted and incorporated into an accepted main thread message published to the main thread upon the sidebar thread's termination event. In other examples, edits may require approval from one or more sidebar thread participants (e.g., the sidebar thread initiator) in order to be incorporated into the accepted main thread message published to the main thread. In some examples, whether an edit is automatically accepted or requires additional approval may depend on the editing participant's relative role within the organization compared to the initiator. For example, if the original sidebar message 160 was sent by an employee, and the edit in the first sidebar response message 165 was made by the employee's boss, the edit may be accepted without approval. Relationships and roles may be determined by the communication system through communication with a directory service. Edits requiring approval may be sent to the sidebar thread participants and may include symbols indicating the original edit (e.g., red lines). These symbols may be stripped from the proposed response message before being published to the main thread.
[0040] exist Figure 1 In the example, once the proposed main thread message is approved, it becomes an approved main thread message, which can be directly published to main thread 100 as if it came from the initiating user who created the sidebar thread. Figure 1 In the example, the edited proposed main thread message 171 is published to the main thread as a new message 120 in the main thread. This publication may include a copy of the original message 124 and a copy of the first reply message 122.
[0041] Figure 2 The illustration shows an example logic diagram of a sidebar thread 250 according to some examples of this disclosure. Figure 2 Similar to Figure 1 In addition to receiving the second reply message 215 in the main thread 200 while the sidebar thread 250 is in progress. Figure 2The main thread 200 is started by the original message 205. The first reply message 210 includes a copy of the original message. Participants in participant group A initiate a sidebar thread from the first reply message 210 by sending the first sidebar message 260. The sidebar message 260 creates a sidebar thread 250 that forks the main thread at the first reply message 210. Note that the sidebar thread can also be started from the original message 205 or from any other message in the main thread 200. In some examples, the user can select various messages for the thread to use as forking points for the sidebar thread.
[0042] As the sidebar thread continues, a sidebar reply 265 is generated, but before the proposed second reply message is published to the main thread, a participant in the main thread publishes a second reply message 215. In some examples, all participants in the sidebar thread are notified of the new reply at 230. For example, the second reply message can be copied to the display version of the sidebar message (e.g., as if the sidebar thread forks from the second reply message). In other examples, other notifications, such as email, attachments, or other methods of delivering the second reply message 215 to participant group B, can be used. Once the termination event of the sidebar thread 250 is identified, the accepted main thread message can be published as a third reply message 225, since a reply to the second reply message 215 OR can be published as a third reply message 220 to the first reply message 210. The choice of where to publish the accepted main thread message can be specified when initiating the sidebar thread (e.g., the initiator can specify to publish the response directly to where the sidebar forks, or the latest message in the main thread); or the timing of when the sidebar thread 250 terminates can be specified.
[0043] In some examples, the location where the sidebar thread branches off from the main thread could be the currently selected message. For instance, in an email client, a button similar to a reply button could allow the creation of a sidebar thread that branches off from the currently displayed message. In other examples, the system could allow participants to initiate the sidebar thread creation option and then choose which message in the main thread to branch from. Similarly, the initiator could choose where to publish accepted main thread messages. Figure 3The illustration shows an example logic diagram of a sidebar thread according to some examples of this disclosure, wherein the point in the main thread where the sidebar thread forks and the point in the main thread where the received main thread message is published can be selected or otherwise configured (e.g., set). When the original message 310 is sent to a participant group, the main thread 300 is created. Participants can reply using a first reply message 315. The first reply message 315 may include a copy of the original message 317. Participants in group A can reply to the first reply message 315 and create a second reply message 320. The second reply message may include a copy of the first reply message 322 and a copy of the original message 324. Participants in the main thread can then submit input that causes the sidebar thread 350 to fork. The initiator of the sidebar thread can select one of the main thread messages (e.g., 310, 315, or 320—note that message 330 has not yet been published when the sidebar thread is initiated) to use as the fork point and initial thread of the sidebar thread. The message history of the thread from the original message 310 to the parent thread of the sidebar thread can be included in the first sidebar message 355. For example, if the initiator of the sidebar thread chooses the original message 310 as the branch point, the main thread message history 357, 367 included in the sidebar thread can include only a copy of the original message 310. Conversely, if the initiator chooses the second reply message 320 as the branch point, the main thread message history 357, 367 can include the original message 310, the first reply message 315, and a copy of the second reply message 320.
[0044] As previously mentioned, the first sidebar message 355 may include a copy of the main thread message, the proposed main thread message 361, and the main thread message history 357 of the sidebar message 363. A response to the first sidebar message 355 and the first sidebar reply message 365 may include a sidebar reply message 375 and a copy of the first sidebar message 373. Figure 3 In the example, the first reply message 365 in the sidebar does not propose any editing of the proposed main thread message 361.
[0045] The termination event of sidebar thread 350 can occur and be detected by the communication service, and the proposed main thread messages 361 and 371 can become accepted main thread messages, which are then published to main thread 300. While sidebar thread 350 is in progress, participants in the main thread may have left a third reply message 330 as a response to the second reply message. The third reply message 330 may include copies of the original message 332, the first reply message 334, and the second reply message 336. As a result of the termination condition, the proposed main thread messages 361 and 371 can be published as reply 340 to any message later than and including the fork point. The selection of this can be based on user settings, user selection when the sidebar thread is forked, user selection when the proposed main thread message is published, etc. In some examples, the proposed main thread messages 361 and 371 can be published as the accepted main thread message as a response to any message in the thread. Figure 3 As shown, if the user forks the sidebar thread from message 324, the accepted main thread message can be published as a reply from message 324 or a third reply message 330. The accepted main thread message 340 may include a copy of the original message 346, copies of reply messages 1 and 2 344, and in some examples, a copy of the third reply message 342 (as well as the accepted main thread message).
[0046] Figure 4 A diagram illustrating a graphical user interface (GUI) 400 according to some examples of this disclosure shows a message display interface with user controls for creating sidebar threads. The GUI 400 displays received messages in a message window 410. An address information pane 415 indicates who the message originated from (“Scott James”), who the message was sent to (“Newsletter List”, “James Jones”, and “Chester McCarthy”), and who the message was copied to (“Daphne Jones”). Users can use UI controls in toolbar 405 to perform various actions on the message. For example, a user can delete the message, archive the message, reply to the sender, reply to all recipients and senders, forward the message to other recipients, and publish the message to a unified communications platform (as shown). Archive the message in one of six different folders (e.g., "Quick Steps"), move the message, apply rules or other actions, or export the message to a note-taking application (as shown). Toolbar 405 may also include a sidebar fork button 420. The sidebar fork button 420 can cause the sidebar thread to fork from the email shown in message window 410. The button may include a drop-down menu that allows specifying one or more parameters for the sidebar thread, such as termination conditions and allowed recipient actions (e.g., edit the proposed main thread message, approve, reject, etc.).
[0047] Figure 5 A diagram illustrating a graphical user interface (GUI) 500 according to some examples of this disclosure shows a message display interface with user controls for creating a sidebar thread with deployed dropdown menus 510. GUI 500 is GUI 400 with deployed dropdown menus 510. Dropdown menu 510 may include one or more options, such as selection of a termination event for the sidebar thread. Examples include: sending a final message after approval from all recipients 512, some recipients, or a specific recipient; after approval, but setting a maximum time (shown as 15 minutes) for approval in box 514—so that if no approval or disapproval is received within 15 minutes, a final message is published. Another termination condition may include a maximum number of sidebar emails (e.g., 4 emails) 516. Once the limit is reached, the current final message is sent. Additional options can be accessed by selecting additional option item 518.
[0048] Once the sidebar thread option is selected, the sidebar thread message creation UI is displayed. Figure 6The diagram illustrates a GUI 600 showing a sidebar thread message creation UI according to some examples of this disclosure. In some examples, a termination condition can be configured in the GUI 600 using a dropdown menu 510. The user can enter the recipient of the accepted main thread message (if the sidebar thread causes the accepted main thread message) in the main thread recipient input box 610. The main thread recipient is a participant in the main thread that receives the accepted main thread message after the sidebar thread ends if the termination condition causes the acceptance of the proposed main thread message. Although in some examples these participants will be all participants in the main thread, in other examples these participants may be a subset of the main thread's participants. In yet another example these participants may include additional participants. When the user selects the sidebar thread creation option for a specific message from an existing main message delivery thread, the main thread recipient input box 610 can be pre-populated with the same participants as the reply, or reply with all commands from the specific message. The main thread receiver input box 610 may have input elements for a direct receiver 612 (TO), an indirect receiver 614 (CC-copy), and a subject box 616. In other examples, one or more main thread receivers may not yet be members of the main thread. In these examples, after an received main thread message is published to the main thread, a main thread receiver that is not yet a member of the main thread may be added as a participant to the main thread. In other examples, the specified receiver may not be a main thread participant and may not become a main thread participant. Although shown as an email address, the address of a participant in the sidebar thread and / or the main thread, etc., can be an email address, username, IP address, phone number, etc.
[0049] The proposed main thread message can be entered into input box 618. The proposed main thread message input box 618 can contain the proposed main thread message 620, and if the main thread is an existing message delivery thread, it can contain one or more messages from the existing message delivery thread. For example, a specific message and a parent message can be displayed.
[0050] Additionally, GUI 600 may include a sidebar receiver input box 625, including input areas for direct receivers 627, indirect receivers 629, and a subject box 631 for the sidebar thread. Also included is a sidebar message text 630. The sidebar message text 630 may not be published to the main message delivery thread when the sidebar thread terminates. A send button 650 can send a sidebar thread message and start the sidebar thread.
[0051] Although GUIs 500 and 600 are described as being displayed in response to a received message, and thus the sidebar thread is forked from the existing main communication thread, in other examples, the sidebar thread can be created in a way that seeks input on the creation of a new main thread. For example, GUI 600 can be activated in response to selecting the "New Sidebar Thread" option. In these examples, once the proposed main thread message is approved as the accepted main thread message, that message is sent as the first message in the new thread to the recipients listed in the main thread receiver input box 610.
[0052] Besides GUI 600, other sidebar threads can also be used to create the GUI. For example, Figure 7 The diagram illustrates a sidebar thread message creation user interface 700, showing a sidebar thread message creation dialog. The message creation user interface 700 may include a sidebar thread address and a subject input box 705 specifying the participants in the sidebar thread. The sidebar message may include an automatically generated message 710 that informs the sidebar recipient that this is a sidebar message thread. The sidebar message thread message area 712 can be marked from other text-depicted control text using an asterisk. Similarly, the proposed main thread message can be depicted using control text such as an asterisk in area 714. Previous main thread history can be in area 718. These depictions can be automatically created by the system when the initiator initiates the sidebar thread, can be placed manually by the initiator, or can be built into the sidebar message at the user's cursor position based on the sidebar start 720, sidebar end 722, main message start 724, and main message end 726 buttons. In other words, when the Start 720 button in the sidebar is pressed, the system can paste the text "***Start Sidebar Message Area***" into the message. Figure 7 In the example, the main thread receiver could be a reply to or a reply to all messages in the main thread that the initiator causes the sidebar thread to fork. In other examples, the main thread receiver can be specified using control text, or it can be specified later using a UI element.
[0053] Figure 8 The illustration shows another example of a sidebar thread message creation user interface 700 with a sidebar thread message creation dialog, according to some examples of this disclosure. Alternative Figure 7 Control text, in Figure 8 In the GUI 800, users can highlight text 805 and then press a keyboard shortcut or UI button (not shown) to set the sidebar message area.
[0054] Figure 9The diagram illustrates a selection interface GUI 900 that allows a sidebar thread initiator to select one or more messages from the main thread to fork into a sidebar thread. In some examples, it also allows the sidebar thread initiator to select the location where the accepted main thread message is published. GUI 900 shows the message thread of the main thread. In response to the initiator activating one or more user interface controls to indicate that the initiator wishes to start a sidebar thread from the main thread, markers 915 and / or 910 can be displayed. Marker 915 can point to the portion of the main thread where the sidebar thread is forked. The initiator can move marker 915 to different messages, such as messages 920, 925, or 930. For example, in... Figure 9 In the code, marker 915 points to message 925. This means that the sidebar thread can fork from message 925, and the sidebar thread can include message history that precedes and includes message 925. Marker 910 can mark the position where main thread messages received in the main thread will be published (if any). In some examples, the user can specify the position where accepted main thread messages from the sidebar thread will be published when the sidebar thread is forked. In other examples, the user can specify that accepted main thread messages from the sidebar thread will be published when a termination event occurs in the sidebar thread.
[0055] although Figure 9 The illustration shows the sidebar thread initiator choosing a return point when the sidebar thread is created. However, in other examples, the fork and / or return point can be chosen at a different time using a GUI such as GUI 900. For example, just before the main thread message for approval is published from the sidebar thread. While the initiator can be the one choosing the fork and / or return point, in other examples, other participants in the sidebar thread can be participants in choosing the fork and / or return point. For example, as part of an approval process.
[0056] Figure 10 The illustration shows a GUI 1000, according to some examples of this disclosure, of a message screen displayed to a sidebar thread participant when a sidebar message from a sidebar thread is received. The GUI 1000 may include a toolbar 1005, a sidebar thread message display area 1015, and a main thread proposal message display area 1020. The sidebar thread message display area 1015 displays the sidebar thread message, and the main thread proposal message display area 1020 may display the proposed main thread message, and in some examples, show any edits made to the proposal (e.g., using tracking changes). The main thread proposal message display area 1020 may also display one or more previous messages from the main thread, such as a message history of messages prior to the point where the sidebar thread branches off from the main thread.
[0057] Action control 1010 can provide sidebar message recipients with one or more options for taking actions on received sidebar messages. Available actions can vary based on the identity of the sidebar message recipient. For example, the actions shown may not be valid for all users. Valid actions can depend on the sidebar thread initiator's settings, which may specify valid actions for all users, valid actions for a specific user (e.g., based on settings specified by the initiator, one user may be able to edit the proposed main thread message while another user may not), etc. (See also...) Figure 10 As shown, actions include the Reply action and the Reply All action. The Reply action responds to the sender of the sidebar thread message. In the case of the first message in the sidebar thread, the Reply button will respond to the sidebar initiator. The Reply All action can respond to all participants in the sidebar thread. The reply message can be displayed in a GUI, such as GUI 600, which allows sidebar participants to edit the proposed main thread message, contribute sidebar messages (and the sidebar message box can include the sidebar message history), add or remove sidebar recipients and / or main thread participants (when an accepted main thread message is published to the main thread—if that happens), etc. In some examples, and as already noted, a particular sidebar participant may not have authorization to edit the proposed main thread message or a main thread participant. In some examples, a particular sidebar participant may not have authorization to Reply or Reply All. In some examples, the action can include approving or disapproving the currently displayed main thread proposal.
[0058] The action of approving or disapproving a participant is available for each new message in the sidebar thread. That is, one can approve, disapprove, reply, reply to all, edit the first sidebar message, etc. Approval indicates that the proposed main thread message is acceptable to the participant. Disapproval indicates that the proposed main thread message is unacceptable to the participant. Both approval and disapproval can allow a participant to propose edits to the main thread proposal. In some examples, editing the proposed main thread message can invalidate all previous approvals or disapprovals.
[0059] As previously described, a possible sidebar thread termination event could include the approval or disapproval of a proposed main thread message. In some examples, a specific predetermined number or percentage of sidebar thread participants must approve the proposed main thread message to become an accepted main thread message, which is then published to the main thread. If the required number or percentage is not reached, the sidebar thread can continue—for example, by one or more participants editing the proposed main thread message, or by a dialogue with the sidebar thread message—until the required number or percentage of approvals, disapprovals, a time limit, or a sidebar thread message limit is reached, or some other termination event is reached. As noted, once a particular version of the proposed main thread message has achieved sufficient approvals, it can be published to the main thread as an accepted main thread message. Additionally, in some examples, and as already noted, only specific sidebar thread participants may have the authority to approve or disapprove.
[0060] Figure 11 The diagram illustrates a logic diagram of a sidebar thread occurring in a different communication modality than the main thread, according to some examples of this disclosure. Original message 1110 serves as the root message for the main conversation thread 1105. A first reply message 1112 is created, and the communication participants in the main thread decide to fork the first reply message 1112 to the sidebar thread 1150. The sidebar thread begins with message 1152 and reply message 1154. Reply message 1154 terminates the sidebar thread 1150, and the proposed main thread message becomes an accepted main thread message and is published to the main thread 1105 using message 1114. In some examples, the main thread is hosted on a first communication modality, and the sidebar thread is hosted on a second communication modality. For example, the main thread could be an email thread, and the sidebar thread could be a message board.
[0061] In some examples, the system can suggest sidebar threads for different communication modalities. For instance, the similarity of topics between the sidebar thread and one or more threads in the second communication modality (e.g., determined by natural language processing algorithms, latent Dirichlet analysis, etc.) can be based on the number of common participants between the sidebar thread (as input by the initiator when forking the thread) and the second communication modality. Suggestions can be presented to the user before or after the sidebar thread is created by sending a sidebar message upon user activation of a control. The system can publish the entire sidebar thread to the second communication modality and then publish messages from that second communication modality back to the main thread on the first communication modality (e.g., in...). Figure 11 (As shown in the diagram). In other examples, the system may publish the sidebar thread to a first communication modality and publish a link to the sidebar thread to a second communication modality.
[0062] Figure 12 The diagram illustrates a logical flow of a sidebar thread forking from a main thread into an existing second communication thread, according to some examples of this disclosure. The main thread 1200 is initiated by an initial message 1205 between participants in group A. Members of group A reply to create a first reply message 1210. Members of group A then initiate a sidebar thread with a sidebar fork. The initiator can specify one or more sidebar thread participants. The system can scan the initiator's pre-existing communication threads to find similar threads and can prompt the initiator to ask if it wishes to publish the sidebar thread within one of its existing communication threads.
[0063] Similar threads can be determined based on the number of common participants between the second communication thread and those input to the sidebar thread. That is, similar threads can be those where the percentage or number of common participants exceeds a threshold. In other examples, the thread's topic can be compared to the topic of the sidebar communication and / or the main thread. Similarity can be determined based on a similarity score using an NLP algorithm. A similarity score above a threshold can be used to indicate similar threads. In other examples, an NLP algorithm can be used to evaluate the similarity of the content of the main thread, the sidebar thread, and the second communication thread to generate a similarity score. A similarity score above a threshold can be used to indicate similar threads. In other examples, two or more of the common participant measurement, the topic similarity score, and the thread content similarity score can be used to suggest similar threads. User selection of similar threads can be used to refine the NLP model or adjust the threshold.
[0064] The second communication thread 1250 can be initiated by the original message 1252 and can have a first reply 1254. The sidebar thread 1256 can then be merged into the second communication thread 1250. For example, by using the first sidebar message 1258 as a reply or replying to all messages published to the second communication thread 1250, such as the first reply 1254. The first sidebar message 1258 may include the second thread message history 1260, the main thread message history 1262, the proposed main thread message 1264, and the sidebar message. Participants in the sidebar thread can reply. The first sidebar reply message 1266 may include a copy of the second thread message history 1268, the main thread message history 1270, the sidebar message thread history 1272, and the proposed main thread message 1274 (original or edited by the reply). Once a termination event is detected, the sidebar thread is terminated, and the proposed main thread message (based on configuration and the received approval, original or edited) is published to the main thread as an accepted main thread message 1215, or nothing is published. exist Figure 12In the example, the message is published as a reply to the first reply message from the initiator in participant group A. As previously described, the message can be automatically published to the main thread, such as from the first user (initiator), based on the approval of the second user's proposal to the main thread message. Once the sidebar thread terminates, the second communication thread can continue with the third reply 1276. In some examples, the third reply 1276 can be a reply to the first sidebar reply message 1266 and can retain the history of the sidebar thread. In other examples, it can be a reply to the first reply 1254, and the history of the sidebar thread 1256 can be removed from the second communication thread.
[0065] In some examples, records of messages from the sidebar communication thread can be removed from participants in the sidebar thread. For instance, messages and other records from the sidebar thread can be deleted from the inbox, outbox, or other folders of the participant. In other examples, messages and records from the sidebar communication thread can be saved or retained in a specific folder (e.g., an archive folder). In still other examples, settings by the initiator, administrator, etc., can specify whether sidebar thread messages and records are removed, saved, or moved to a different location.
[0066] Figure 13 Examples of data structures corresponding to sidebar threads according to some examples of this disclosure are illustrated. Sidebar thread communication message 1310 may store information associated with a single sidebar thread communication message. Sidebar header 1312 may identify the message as part of a sidebar conversation and may indicate the address of the recipient of the sidebar thread message. Sidebar header 1312 may also include the subject of the sidebar thread communication message. Sidebar message body 1314 may store the sidebar message body content, including new sidebar thread communication messages, and in some examples (e.g., email) including past sidebar thread communications.
[0067] The main thread header 1316 may include the recipients of the accepted main thread message (if a termination event causes the proposed main thread message to be published as an accepted main thread message), which may be all participants in the main thread or a subset of the participants in the main thread. Recipients of the main thread may include additional, newly added participants who are not yet participants in the main thread. The main thread message body 1318 may include the main thread history displayed to the sidebar participants. The history may be all messages of the main thread, a summary of the main thread's messages (either manually entered by the initiator or via a summarization algorithm), links to the thread history, etc. If the sidebar thread's termination event indicates acceptance, the proposed main thread message 1320 is the currently proposed main thread message to be published as an accepted main thread message.
[0068] Sidebar thread communication message 1310 can be created by one or more communication clients or a communication server, stored on the communication server (e.g., in a mailbox), and then sent to one or more communication clients for display to sidebar thread participants. In other examples, the sidebar thread communication message 1310 can be translated to or derived from other structures, as appropriate, for the application programming interface between the communication client and the communication server.
[0069] The sidebar thread data structure 1322 can be stored on the server and / or client and can be a record of the sidebar thread. The main thread message 1324 of the proposal can store the current (e.g., edited) main thread message 1324 of the proposal. In some examples, the main thread message 1324 of the proposal can store the edit history of the main thread message 1324 of the proposal, which can provide a view of each edit and which participant in the sidebar thread made the edit.
[0070] The sidebar thread message list 1326 can be the header of a linked list of sidebar thread communication messages 1310. The main thread pointer 1328 can point to either a message in the main thread or a main thread structure pointing to a message in the main thread. The setting structure 1330 includes or points to setting structures, such as setting structure 1340. In some examples (and not shown), each sidebar thread communication message may include a pointer to the next message in the list. Therefore, the sidebar thread message list 1326 can be a linked list, where the sidebar thread message list 1326 is the list header.
[0071] The setup structure 1340 may include a permitted action field 1342. The permitted action field 1342 may specify permitted actions for participants in the sidebar thread. The permitted actions may be for all participants or may be decomposed by users, allowing some users to have different actions they can take. The termination event 1344 specifies the termination of the sidebar thread, and under what conditions the proposed main thread message is accepted as the accepted main thread message and published to the main thread, as well as the termination event itself, and under what conditions the proposed main thread message is not accepted as the accepted main thread message and therefore not published to the main thread.
[0072] In some examples, the sidebar thread can be entirely served by the same communication service. For instance, all participants in the sidebar thread can obtain communication services from the same service. In these examples, the computing device of the communication service can provide the sidebar thread, monitor termination events, and publish the results to the main thread. Figure 14A logic diagram 1400 illustrates a group 1405 of main thread participants and a group 1410 of sidebar communication thread participants according to some examples of this disclosure. Participants are represented by user accounts of the communication service. For example, main thread participants include user account A 1415, user account B 1420, and user account C 1425. User accounts can be used to log in and view communications using a communication application running on one or more devices corresponding to or owned by the user who owns the user account. User account C 1425 is the initiator user and account. Sidebar communication thread participants 1410 include the initiator user account, user account C 1425, user account D 1435, and user account E 1430. Figure 14 In these examples, all thread participants are served by the same communication service 1440. In these examples, communication service 1440 can provide both the sidebar thread and the main thread.
[0073] Communication service 1440 can handle the detection of termination events of the sidebar thread and publish the accepted main thread message to the main thread. For example, when a termination event is detected, such as when user accounts D and / or E approve the proposed main thread message, communication service 1440 can publish the proposed main thread message as the accepted main thread message on behalf of user account C1425 (but not directly by it) to the main thread. This publication is as if it were made directly by user account C1425, but in reality it can be in response to an action by another user account of sidebar communication thread participant 1410.
[0074] Figure 15 A logic diagram 1500 is illustrated for a group 1505 of main thread participants and a group 1510 of sidebar communication thread participants according to some examples of this disclosure. One or more user accounts of either the main thread participant 1505 or the sidebar communication thread participant 1510 may be hosted by a first communication service 1540 and / or a second communication service 1570. In an example involving multiple communication service accounts in the sidebar thread, both the communication service and / or application may be configured to provide the sidebar thread and identify messages addressed to communication recipients hosted by the communication service as sidebar threads. This allows the communication service and / or application to notify participants that it is a sidebar thread and provide information such as... Figure 10 The GUI shown.
[0075] Additionally, a communication service supporting sidebar threads allows the communication service and / or application to provide appropriate actions to participants, detect various sidebar thread termination events, and, when a termination event causes the proposed main thread message to become the accepted main thread message, send the accepted main thread message to the main thread. For some termination events, only one communication service can track these events. For example, time-based termination events can be monitored by the communication service hosting the initiator user's account. In some examples, upon detecting a sidebar thread termination event that causes the proposed main thread message to become the accepted main thread message, and if the communication service hosting the initiator account is not the one that detected the termination event, the communication service that detected the termination event can contact the communication service hosting the initiator account to notify it that it should send the proposed main thread message to the main thread as the accepted main thread message on behalf of the initiator.
[0076] Communication services can communicate with each other using one or more application programming interfaces (APIs) and / or one or more standard messages—such as those specified by one or more request annotations (RFCs) that can describe or standardize the message exchange and format used to implement communications such as email. These RFCs can be updated to provide sidebar threads.
[0077] Figure 16 The illustration shows a logic diagram of a communication service 1605 and a communication application 1655 according to some examples of this disclosure. One or more computing devices can be configured to implement the communication service 1605 and the communication application 1655, for example, through software. Although in Figure 16 Specific components are shown, but those skilled in the art will recognize that additional components not shown may be part of communication service 1605 and communication application 1655. Additionally, in Figure 16 The logic diagram in the diagram is exemplary and can use fewer or more components, and the functionality described for one or more components can be performed by one or more other components. Communication service 1605 includes components that, together with communication application 1655, can provide communication between one or more user accounts of one or more users and one or more other communication services via one or more communication modalities. (For clarity, in...) Figure 16 (May not be shown in the image). Communication modes may include email, text, chat, instant messaging, message boards, Voice over Internet Protocol (VoIP), video calling, online conferencing, etc. Communication application 1655 can interface with communication service 1605 to provide communication services to client computing user devices of user accounts.
[0078] Communication service 1605 may include message publishing component 1610, which can publish one or more messages, including messages for the main thread, sidebar thread, or other threads. Messages can be published in various ways, including adding messages to a user's mailbox or a group's message storage in message data storage 1615, sending messages to communication application 1655, sending messages to another communication service, etc. As used herein, publishing means a method of delivering a message using a specific communication modality. For example, for email, the publishing unit sends an email; for instant messaging, the publishing unit sends an instant message; for a message board, the publishing unit publishes a message to the message board; and so on.
[0079] Communication service 1605 may include a sidebar thread management component 1620, which manages sidebar threads, such as creating and terminating sidebar threads, communicating with other communication services related to sidebar threads, and publishing received main thread messages in the main thread. For example, when communication service 1605 receives a command to create a sidebar communication thread that branches off from the main communication thread, the sidebar thread creation component 1625 of the sidebar thread management component 1620 may receive (as part of the command, or as part of the command itself). Figure 13 The sidebar thread communication message 1310 is received, and in response, a sidebar thread data structure 1322 can be created. The sidebar thread creation component 1625 can initialize the settings structure 1330 to settings received in the creation command, settings subsequently entered by the user, or settings sent with a different command. The creation command can be a specific creation command (which may include a sidebar thread message) or a sidebar thread message sent to a sidebar thread participant (which may be identified using one or more header fields or flags). Additionally, the proposed main thread message can be extracted and added to the proposed main thread message 1324 of the sidebar thread data structure 1322. When a sidebar message is published by a sidebar thread participant, the sidebar thread management component 1620 can add it to the sidebar thread message list 1326. Furthermore, the sidebar thread management component 1620 can populate and track... Figure 13 Other components of the data structure.
[0080] In some examples, if the proposed main thread message is accepted and published to the main thread as said accepted main thread message, the main message selection component 1630 manages the selection of both the fork point and the return point of the sidebar thread within the main message. In some examples, the message of the communication service includes both a thread identifier (which may be referred to as a session identifier) and a message identifier. When a command to create a sidebar thread is received, the command may include the thread identifier of the main thread and the message identifier of the message from which it forks. In some examples, this corresponds to the main message from which the user selects the sidebar thread fork option. In other examples, this may be a different message selected by the main message selection component 1670 of the communication application 1655.
[0081] The main message selection component 1630 of the communication service 1605 can determine the message that branches the sidebar thread by searching the message data store 1615 for messages that match the thread identifier and / or message identifier. The main message selection component 1630 can then determine the main thread's communication by extracting the message body from the message body field in the message data structure. This communication can then become part of the sidebar thread. The main message selection component 1630 can then use one or more receiver fields in the message data structure to determine the main thread receiver for the sidebar communication.
[0082] In some examples, the same process can be applied to the point where the received main thread message can be published to the main thread's merge point. That is, the main message selection component 1630 can determine the main thread message to which the sidebar thread is merged back by searching the message data store 1615 for messages matching the thread identifier and / or message identifier, using either or both of the thread identifier and message identifier. The main message selection component 1630 can then determine the main thread communication by extracting the message body from the message body field in the message data structure. This communication can then become part of the message published back to the main thread and the received main thread message.
[0083] The sidebar thread tracking component 1635 can track sidebar thread messages and maintain the sidebar thread data structure 1322 by updating the sidebar thread message list 1326, tracking any setting changes made by the initiator or other users in the setting structure 1330, tracking any changes made to the proposed main thread message 1324, tracking changes made to the main thread or sidebar thread participants, and / or monitoring termination events specified by the settings in the setting structure 1330.
[0084] The sidebar thread communication component 1640 communicates with one or more other communication services to provide, as previously referenced, [the following is also mentioned]. Figure 15The described sidebar thread. The sidebar thread communication component 1640 can use one or more APIs, standard formats (such as RFCs), protocols, etc. Communication can include messages from the sidebar thread, the main thread, settings information, termination event information, etc.
[0085] The similarity component 1645 can find and recommend to the initiator one or more other similar threads to the sidebar thread or the main thread, whether in the same communication modality or different modalities. In some examples, the similarity component can contact other communication services to find these threads involving sidebar participants, main thread participants, etc. In some examples, similarity can be determined based on the number of common participants between the main thread or sidebar thread and similar threads. Threads with a number of common participants exceeding a threshold can be suggested to the initiator.
[0086] In other examples, a similarity score can be calculated based on multiple factors that quantify the computed similarity within a thread. In some examples, these factors can be weighted. In others, the similarity score can be calculated as a weighted sum of factors. Factors include the number of common participants between the main thread or sidebar thread and similar threads; computed text similarity between the threads' topics (e.g., in the subject line of an email, a chat room or message board topic description, etc.); computed text similarity within the thread's content; the number of identical attachments within the thread (e.g., determined by file fingerprints, file names, sizes, etc.); and so on. The text similarity score can be measured using one or more NLP algorithms as described herein.
[0087] As mentioned, the termination event can be monitored by the sidebar thread tracking component 1635. Upon detecting a termination event, the sidebar thread tracking component 1635 can evaluate whether the event causes the proposed main thread message to become the accepted main thread message. If not, the sidebar thread tracking component 1635 can clean up the sidebar thread. Cleanup may include deletion or archiving. Figure 13 One or more data structures in the data structure, hiding the sidebar thread from the participant's communication application, removing the sidebar thread from the participant's communication application, etc. If an event causes the main thread message to become an accepted main thread message, the sidebar thread tracking component 1635 notifies the main thread composition component 1650.
[0088] The main thread composition component 1650 can create a publication to the main thread when the sidebar thread experiences a termination event, such that the proposed main thread message becomes an accepted main thread message. Example termination events include acceptance of the proposed main thread message. Such publication can be completed in response to approval or modification of the proposed main thread message, and in some examples, it can be completed automatically in response to approval or modification of the proposed main thread message. The main thread composition component 1650 can create main thread communication from the address of the initiator of the sidebar thread, which is addressed to one or more main thread receivers (such as a receiver identified by the main thread selection component or a receiver identified in the command that creates the sidebar thread). The main thread composition component 1650 includes an approved main thread message (e.g., the initially proposed main thread message or a modification thereof) as the message body. The main thread composition component 1650 can then publish the message from the initiator's address to the main thread receiver in the main communication thread. In some examples, the main thread composition component 1650 may not include any sidebar thread messages in the publication to the main thread.
[0089] The communication application 1655 may include a message publishing component 1657, which publishes messages (including sidebar thread creation commands or messages) to one or more communication threads by sending commands or other messages to the communication service 1605. If the message or command is a sidebar thread, the message is processed by the message publishing component 1610 and / or the sidebar thread management component 1620. The GUI component 1665 provides one or more GUIs, such as... Figure 4 The new sidebar thread creation display component 1690 can provide one or more sidebar thread creation GUIs in response to the selection of a sidebar thread creation UI element. For example, in response to the activation of the sidebar fork button 420, the new sidebar thread creation display component 1690 can display one or more GUIs, such as... Figure 6 , Figure 7 and Figure 8 The sidebar settings component 1675 can display one or more GUIs that allow users (e.g., participants in the sidebar thread, such as the initiator) to specify one or more settings for the sidebar thread. For example, Figure 5 The drop-down menu 510.
[0090] The main message selection component 1670 can display one or more user interfaces that allow sidebar participants, such as the initiator, to select fork points and / or return points, wherein accepted main thread messages from the sidebar thread are published to the main thread. For example, using... Figure 9 The GUI shown.
[0091] The received sidebar message display component 1680 displays the received messages for the sidebar thread, regardless of whether the sidebar thread was initiated by the user of the communication application 1655 instance or another user. For example, by displaying messages as shown in... Figure 10 The GUI is shown in the diagram. Action component 1685 can determine one or more available actions for the user and display UI controls allowing the user to perform actions on the GUI. Actions can be described as metadata in received sidebar messages. For example, the metadata of a sidebar message can describe the actions available to each user. Action component 1685 can both determine the actions available to the user and display user interface elements to allow the user to perform those actions; respond to user activation of user interface elements; and send an activation indication for the action to sidebar message command component 1695. Sidebar message command component 1695 can create and send a command to communication service 1605 for creating a sidebar thread, sending one or more action notifications (e.g., main thread messages for accepting, approving, replying to, or editing proposals) or other sidebar thread messages or commands to communication service 1605.
[0092] Figure 17 A flowchart illustrating a method 1700 for providing a sidebar thread according to some examples of this disclosure is shown. At operation 1710, a communication service may receive a command from an initiator user account via an initiator's computing device for creating a sidebar communication thread (main communication thread) forking from a first communication thread. The main communication thread may be among a first plurality of main communication thread participants, including the initiator (e.g., the sender of the command to create the sidebar thread). The first plurality of main communication thread participants may include a final recipient user account. If the sidebar thread terminates in such a manner that the proposed main thread message becomes the accepted main thread message, the final recipient user account is designated to receive the accepted main thread message. The final recipient may be all participants in the main thread, some members of the main thread, a single member of the main thread, or may not be a member of the main thread until added by posting from the sidebar thread.
[0093] In some examples, the sidebar communication thread can be a thread among a second or more thread participants, including a sender and a sidebar receiver. In some examples, the command to create the sidebar communication thread includes a proposing main thread message, the address of the final receiver, and the address of the sidebar thread receiver. The command can be in the form of a sidebar thread message, a specific command, etc., and can be received from the initiator's computing device over a network. In some examples, the command can include one or more sidebar thread messages, which can be delivered to the sidebar participants along with the proposed main thread message. The proposed main thread message and sidebar thread messages (e.g., the initial sidebar thread message and subsequent sidebar thread messages) can be displayed in one or more GUIs in a way that visually distinguishes them from each other.
[0094] In response, the communication system initializes one or more data structures (such as in...) Figure 13 The data structure shown is used to create the sidebar thread (e.g., as per the information about...). Figure 16 (As described). At operation 1712, the communication system can enable notifications to be sent to the sidebar thread receiver. For example, by sending sidebar thread messages or other commands to the sidebar thread receiver via a communication network. At operation 1714, the system can provide the sidebar thread until a termination event occurs. This can include sending and receiving one or more sidebar thread messages from one or more sidebar thread participants. This can also include modifications to the proposed main thread message. This can include tracking those modifications. This can also include tracking and responding to various actions of the sidebar thread participants.
[0095] At operation 1716, a termination event may occur, which may be received or otherwise identified. At operation 1718, the system may determine whether the termination event corresponds to an event as approval or modification of the proposed main thread message, causing the proposed main thread message to be published to the main thread as the accepted main thread message. If the termination event does not correspond to an event as approval or modification of the proposed main thread message, causing the proposed main thread message to be published to the main thread as the accepted main thread message—for example, the proposed main thread message is rejected—then at operation 1724, the sidebar thread may be terminated without a message reaching the main thread. Additional cleanup operations may be performed to remove the sidebar thread message history from the inbox or other communication storage and delete or move it to a different location that will not clutter the inboxes or communication storage of the sidebar thread participants.
[0096] On the other hand, if the termination event does indeed correspond to an event of approval or modification of the proposed main thread message, causing the proposed main thread message to be published to the main thread as the accepted main thread message, then operations 1720 and 1722 can be performed. At operation 1720, the system can create main thread communication from the initiator's address to the address of the final receiver (e.g., one or more participants in the main communication thread). The main thread communication includes the accepted main thread message. The accepted main thread message can be the proposed main thread message or any modification to that message specified by the sidebar thread's settings. Depending on the sidebar settings and the approval actions and roles of the sidebar thread participants, the message can be modified by the sidebar thread participants, the initiator, etc., and can be approved by one or more other participants. At operation 1722, the main thread communication can be published to the main thread.
[0097] In some examples, approval at operation 1718 can be received from a sidebar thread participant who is not the initiator. In some examples, operations 1720 and 1722 can be executed automatically in response to approval at operation 1718. In some examples, messages published to the main thread can be sent or published to the main thread on behalf of the sidebar thread's initiator. In some examples, main thread communication can be created without any sidebar thread messages and only includes the received main thread message (which is the proposed main thread message and the accepted edit based on the sidebar thread's settings).
[0098] Figure 18 A flowchart of method 1800 according to some examples of this disclosure is illustrated, wherein a response position in the main thread for a received main thread message is specified. At operation 1810, the system may receive an indication of a response position in the main thread. This indication may be included in the method for... Figure 1 The instruction is given at operation 1710 in the command to create a sidebar thread. In other examples, the instruction may be a setting by the user, system, or administrator. The setting may be a response position indicating where the sidebar thread is forked, the current main thread message (which may be a later message from where the sidebar thread is forked), etc. In other examples, the instruction may be received after the command to create the sidebar thread; for example, a sidebar thread participant (the initiator or other participant) may specify a position in the main thread while the sidebar thread is in progress. The response position may be a message identifier relative to the thread identifier.
[0099] At operation 1812, the system can determine the thread identifier of the main thread—for example, a command created from the sidebar thread. For example, the main thread pointer 1328 based on the sidebar thread data structure 1322. At operation 1814, the data store of the communication service can be searched for a message data structure that matches the thread identifier determined in step 1812 and has a message index matching the reply position. At operation 1816, the system can use data structures to determine the communication of the main thread. For example, the message body and message history. At operation 1818, the system can use the message data structure from operation 1814 to determine the receiver main thread participant. The main thread communication determined in operation 1816 and the receiver determined in operation 1818 can be used to create the main thread communication in operation 1720 and as the receiver of the communication published in operation 1722.
[0100] Figure 19 The diagram illustrates a flowchart of method 1900, according to some examples of this disclosure, for providing a sidebar thread as part of an associated pre-existing thread. At operation 1910, the communication service may receive a command from the initiator user account for creating a sidebar communication thread that branches off from the main communication thread. The main communication thread may be among a first plurality of main communication thread participants, including the initiator, and also including the final recipient user account. In some examples, the sidebar communication thread may be a thread among a second plurality of sidebar communication thread participants, including the sender and at least one sidebar recipient. In some examples, the command for creating the intermediate communication thread includes a proposed main thread message, the address of the final recipient, and the address of the intermediate recipient. The command may be a sidebar thread message, a specific command, etc., and may be received from the initiator user device via a network. In some examples, the command may include one or more sidebar thread messages that may be delivered to the sidebar participants along with the proposed main thread message. The proposed main thread message and the sidebar thread messages (e.g., the initial sidebar thread message and subsequent sidebar thread messages) may be displayed in one or more GUIs in a manner that visually distinguishes them from each other.
[0101] At operation 1912, the system can find a second pre-existing communication thread. In some examples, the second thread can be selected based on similarity to the main thread; the sidebar thread; or both the main thread and the sidebar thread. In some examples, the second thread can be selected based on at least one common participant of the sidebar communication thread and the second communication thread. In some examples, the second thread must be a thread where the initiating user is a participant. In other examples, the initiator may not be a thread where the initiating user is a participant.
[0102] In response, the communication system creates a sidebar thread by initializing one or more data structures (e.g., as per [reference]). Figure 16 (As described). At operation 1913, the communication system can create a sidebar thread by publishing messages from the sidebar thread to a second communication thread. For example, by sending sidebar thread messages or other commands to the sidebar thread receiver via a communication network published to the second communication thread. In some examples, the sidebar thread is part of or a sub-part of the second communication thread. In some examples, the sidebar thread's messages are removed from the second communication thread once the sidebar thread terminates. In other examples, the messages are retained, but the second communication thread resumes the thread's dialogue and / or discussion. In some examples, the sidebar communication thread can be a fork of the second communication thread. Therefore, the original dialogue of the second communication thread can continue, and the sidebar thread can be a fork of the second communication thread. The system can provide a UI dialogue to the user, asking if the user wishes to utilize the second thread for the sidebar thread. If the user accepts, the method continues. If the user does not accept, the process proceeds as described. Figure 17 Continue with the sidebar thread.
[0103] At operation 1914, if the user accepts, the system may provide the sidebar thread as part of a second communication thread until a termination event occurs. This may include sending and receiving one or more sidebar thread messages from one or more sidebar thread participants. It may also include modifications to the proposed main thread message.
[0104] At operation 1916, a termination event may occur, which can be received from the second communication thread or otherwise identified. At operation 1918, the system can determine whether the termination event corresponds to an event of approval or modification of the proposed main thread message, which causes the proposed main thread message to be published to the main thread as the accepted main thread message. If the termination event does not correspond to an event of approval or modification of the proposed main thread message, which causes the proposed main thread message to be published to the main thread as the accepted main thread message—for example, the proposed main thread message is rejected—then at operation 1924, the sidebar thread can be terminated without a message reaching the main thread.
[0105] On the other hand, if the termination event does indeed correspond to an event of approval or modification of the proposed main thread message, causing the proposed main thread message to be published to the main thread as the accepted main thread message, then operations 1920 and 1922 can be performed. At operation 1920, the system can create main thread communication from the initiator's address to the address of the final receiver (e.g., one or more participants in the main communication thread). The final receiver can be a reply, a reply to all, a subset of the main communication thread participants, etc. The main thread communication includes the accepted main thread message. The accepted main thread message can be the proposed main thread message or any modification of that message specified by the sidebar thread's settings. Depending on the sidebar settings and the approval actions and roles of the sidebar thread participants, the message can be modified by the sidebar thread participants, the initiator, etc., and can be approved by one or more other participants. At operation 1922, the message created at operation 1920 can be published to the main thread.
[0106] In some examples, approval at operation 1918 can be received by a sidebar thread participant who is not the initiator. In some examples, operations 1920 and 1922 can be executed automatically in response to approval at operation 1918. In some examples, messages published to the main thread can be sent or published to the main thread on behalf of the sidebar thread's initiator. In some examples, main thread communication can be created without any sidebar thread messages and only includes the accepted main thread messages (which are the proposed main thread messages and accepted edits based on the sidebar thread's settings).
[0107] exist Figure 19 In the examples, if there are differences in the participants of the sidebar thread and the second communication thread, several options exist. In some examples, the initiator specifies the participants in the sidebar thread, and those participants selected who are in the sidebar thread but not in the second communication thread may not be included in the sidebar thread. That is, a user selecting the second thread to host the sidebar thread could be a confirmation to remove the indication for users not in the second communication thread who are indicated for the sidebar thread. It could also be a confirmation that users not indicated for the sidebar thread that are in the second communication thread will be included as participants in the sidebar thread.
[0108] In other examples, users in the sidebar thread who are not part of the second communication thread can be invited to participate in the second communication thread. In some examples, the invitation terminates when the sidebar's termination event occurs. Once this happens, additional participants can choose not to participate in the second communication thread. In some examples, additional participants in the sidebar thread who were not previously part of the second communication thread can see the previous history of the second thread. In other examples, additional participants in the sidebar thread who were not previously part of the second communication thread can not see the previous history of the second thread before the sidebar thread.
[0109] In some examples, participants in a second communication thread who were not invited by the initiator to be part of the sidebar thread may not see the sidebar thread communication that is part of the second communication thread. In other examples, these users can see the sidebar thread communication but cannot reply or participate. In still other examples, they can be invited to be participants in the sidebar thread.
[0110] The participants in a communication thread, including the sidebar communication thread, can change over time. That is, the first message of a communication thread can have a set of participants, and the second message can have different participants. Therefore, the set of participants for a thread can depend on the message of the thread being considered.
[0111] In some examples, threads, messages, etc., can be compared to determine their similarity. In others, these similarity measures can use text or topic similarity. These similarity measures can use various algorithms, such as NLP algorithms for similarity between two texts. One algorithm could be cosine similarity of text vectors, where each dimension is a distinct term or word in the two texts being compared (e.g., a one-hot encoding). The vectors of the first and second texts are then scored based on the cosine angle between them. Other algorithms can include Euclidean distance, Word2Vec, neural networks, Latent Dirichlet algorithm, etc.
[0112] Figure 20The illustration shows a GUI 2002 of a unified communications platform according to some examples of this disclosure, and illustrates the creation of a sidebar message for creating a sidebar thread. GUI 2002 includes a title bar 2006 with a search and command bar 2004, where users can search for matching communications, files, folders, and other content. Status icons 2005 indicate the user's status and availability. Clicking or otherwise selecting a status icon allows users to set their status and availability, as well as other account and application options. A function bar 2010 allows users to select various functions of the unified communications application; such as viewing recent activity on the unified communications service relevant to the user; participating in one or more chat sessions; viewing one or more communications topic groups (referred to as teams); joining or scheduling online meetings; participating in one or more voice calls; viewing files shared within the unified communications service; accessing additional storage that adds functionality to the unified communications service; providing feedback, etc.
[0113] As in Figure 20 As shown, selecting the team feature, and in the team selection bar 2008, displays the communication groups the user has subscribed to. Figure 20 In the example, the user subscribes to two teams: Team 1 and Team 2. A communication topic group can have subgroups, referred to as channels for discussing one or more subtopics with the communication topic group. Figure 20 In the example, there are two teams, each with four channels. The Team Selection bar 2008 allows users to choose between the teams and channels they have subscribed to. Figure 20 In the example, the first channel of the second team is selected.
[0114] Each channel can then have multiple tabs selectable via the tab selection bar 2012. Tabs can separate different types of content and communication, and provide another way to organize channels. Figure 20 In the example shown, the selected channel has four tabs: Posts, Files, Content Tab 1, and Content Tab 2. The Posts tab is selected. Tab area 2013 displays the content of the selected tab. Figure 20 This is the bulletin board for the channel. The bulletin board includes posts organized by threads. Two threads are shown; the first thread 2026 includes two posts, 2014 and 2018, and a third post is entered into the sidebar thread message creation input area 2022. The second thread 2028 is shown with one post, 2024, but additional posts can be part of a thread and can be accessed using the vertical scrollbar.
[0115] Posts can include one or more file attachments. At the bottom of the thread, users can reply to posts using the Action Bar 2020. The reply functionality and sidebar thread features are shown. Figure 20 In the example, the user has already activated the sidebar threading feature, and the sidebar threading message creation input area 2022 can be shown. The sidebar threading message creation input area 2022 allows the user to specify the sidebar thread participants (“Sidebar to:”), the sidebar threading message (“Sidebar threading text”), the proposed main threading text, etc. The sidebar threading message creation input area 2022 can also allow the user to specify a subset of the main threading users who will see the proposed responses.
[0116] Figure 21 The illustration shows a portion of the GUI 2112 of a unified communications application according to some examples of this disclosure, and also illustrates the sidebar thread. Figure 21 Only tab area 2113 is shown. Tab area 2113 can be used to direct input to... Figure 20 The results of the sidebar thread message creation input area in the tab area 2013 and the sidebar message posting in the tab area 2022 are shown below. For clarity, in... Figure 21 The second thread 2028 is omitted. Sidebar thread 2130 can be visually set from its forked main thread—namely, thread 2026. In some examples, one or more visual connections (such as arrows) indicate that it is a sidebar thread forked from a specific message in the main thread. Sidebar message 2122 and the proposed main thread message 2124 can be displayed along with any sidebar thread reply message (such as reply 2126). In some examples, edits to the proposed main thread message 2124 can be published as an additional message, or the proposed main thread message 2124 can be edited inline. Sidebar thread participants can have one or more action icons (such as action icons shown for replies and sidebar threads). Upon approval, icons, such as icon 2128, can be displayed in the approved user's post.
[0117] Figure 22 A partial GUI 2212 of a unified communications application according to some examples of this disclosure is shown. Figure 21 resemblance, Figure 22 Only the tab area 2213 is illustrated. GUI 2212 shows the main thread message 2124 being changed from the proposed main thread message 2124 to the accepted main thread message and from the initiator of the thread in the sidebar (in... Figure 20-22In the example, "Brad Smith" is published to thread 2026 after thread 2026. When the system detects the termination of the sidebar thread and approves the termination event of the proposed main thread message, message 2260 is published to thread 2026 as if it came from the initiator of the sidebar thread. In some examples, after the sidebar thread termination event occurs, sidebar thread 2130 may remain visible to its participants. In other examples, sidebar thread 2130 may remain visible to its participants after the termination event occurs and then disappear. In still other examples, once the termination event occurs, the sidebar thread may disappear from its participants. Sidebar thread 2130 is no longer displayed. Figure 22 Participants in thread 2026, which is not a participant of sidebar thread 2130, will not see sidebar thread 2130. For these participants, they will see messages 2014 and 2018 of thread 2026, and then, when the sidebar thread terminates (with a post to the main thread), it will see message 2260.
[0118] Figure 23 The diagram shows a portion of the GUI of a unified communications application according to some examples of this disclosure. Figure 21 and Figure 22 resemblance, Figure 23 Only the tab area 2313 of the Unified Communications application is shown in the illustration. Figure 23 The diagram shows... Figure 12 In this example, a sidebar thread of the first thread is published within a second thread. The first thread 2330 includes messages 2310, 2312, 2314, and 2316. After message 2312, a sidebar thread 2338 is created within thread 2330. The sidebar thread may include messages 2350, 2352, and 2354. Sidebar thread 2338 may be published as part of thread 2330. In some examples, and as shown, sidebar thread 2338 may be visually distinguishable from other posts in thread 2330. Once a sidebar thread termination event occurs, thread 2330 may continue. In some examples, the sidebar thread 2338 post is removed from thread 2330 once the termination event occurs. In other examples, the sidebar thread post remains within thread 2330. Sidebar thread 2338 may be considered a child thread or a sub-thread of thread 2330.
[0119] From Figures 4-10 and Figures 20-23The GUI can be provided by a client communication application, such as communication application 1655. In other examples, a communication service, such as communication service 1605, can provide these GUIs. For example, these GUIs are created by providing data to communication application 1655. In other examples, communication service 1605 can provide these GUIs as one or more GUI descriptors. The GUI descriptors can be rendered by an application such as a browser on the client device or otherwise displayed. Example GUI descriptors may include Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), scripts, Java, or other files.
[0120] As used in this article, a message is "published" to another message thread by transmitting or delivering the message to the thread according to the thread's communication modality, so that the message is added to the thread. For example, a message can be published by sending an email, posting it to a bulletin board, posting it to a message thread of a unified communications application, or posting it to a chat room by sending a chat message.
[0121] Figure 24 A block diagram of an example machine 2400 on which any one or more of the techniques (e.g., methods) discussed herein can be performed. In alternative embodiments, machine 2400 may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, machine 2400 may operate within the capacity of a server machine, a client machine, or both in a server-client network environment. In the example, machine 2400 may act as a peer-to-peer (P2P) (or other distributed) network environment. Machine 2400 may be in the form of a server computer, personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), mobile phone, smartphone, web device, network router, switch, or bridge, or any machine capable of executing instructions (sequentially or otherwise) specifying actions to be taken by the machine. Machine 2400 may be configured to provide... Figures 1-3 , Figure 11 and Figure 12 The communication thread shown; provides Figures 4-10 A GUI for creating, storing, and managing data. Figure 13 The data structure; it can be a communication server that provides communication services, and is... Figure 14 and 15 The user account shown is a user device; implemented in Figure 16 One or more components as shown; and implementation Figure 17-19Furthermore, although only a single machine is illustrated, the term "machine" should also be considered as any collection of machines that individually or jointly execute a set (or more sets) of instructions to perform any one or more of the methods discussed herein, such as cloud computing, Software as a Service (SaaS), and other computer cluster configurations.
[0122] As described herein, examples may include or may operate on one or more logical units, components, or mechanisms (hereinafter referred to as "components"). A component is a tangible entity (e.g., hardware) capable of performing a specified operation and which can be configured or arranged in a certain way. In the examples, circuitry may be arranged as a component in a specified manner (e.g., internally or relative to external entities, such as other circuitry). In the examples, all or part of one or more computer systems (e.g., standalone, client, or server computer systems) or one or more hardware processors may be configured by firmware or software (e.g., instructions, application portions, or applications) to operate to perform the specified operation. In the examples, the software may reside on a machine-readable medium. In the examples, the software causes the hardware to perform the specified operation of the component when executed by the underlying hardware of the component.
[0123] Therefore, the term "component" is understood to encompass tangible entities that are physically constructed, specifically configured (e.g., hardwired), or temporarily (e.g., provisionally) configured (e.g., programmed) to operate in a specified manner or perform any of the operations described herein, in part or in whole. Consider an example where components are provisionally configured, and each component does not need to be instantiated at any given time. For example, in the case where components include a general-purpose hardware processor configured using software, the general-purpose hardware processor can be configured as different components at different times. The software can accordingly configure the hardware processor, for example, to constitute a specific module at one time and different components at different times.
[0124] Machine (e.g., computer system) 2400 may include one or more hardware processors, such as processor 2402. Processor 2402 may be a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof. Machine 2400 may include main memory 2404 and static memory 2406, some or all of which may communicate with each other via interconnect (e.g., bus) 2408. Examples of main memory 2404 may include synchronous dynamic random access memory (SDRAM), such as double data rate memory, such as DDR4 or DDR5. Interconnect 2408 may be one or more different types of interconnects, such that one type of interconnect can be used to connect one or more components, and another type of interconnect can be used to connect one or more components. Example interconnects may include a memory bus, peripheral component interconnect (PCI), peripheral component interconnect fast (PCIe) bus, universal serial bus (USB), etc.
[0125] Machine 2400 may also include a display unit 2410, an alphanumeric input device 2412 (e.g., a keyboard), and a user interface (UI) navigation device 2414 (e.g., a mouse). In this example, the display unit 2410, input device 2412, and UI navigation device 2414 may be a touchscreen display. Machine 2400 may additionally include a storage device (e.g., a drive unit) 2416, a signal generation device 2418 (e.g., a speaker), a network interface device 2420, and one or more sensors 2421, such as a Global Positioning System (GPS) sensor, a compass, an accelerometer, or other sensors. Machine 2400 may include an output controller 2428, such as a serial (e.g., Universal Serial Bus (USB), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection, to transmit or control one or more peripheral devices (e.g., a printer, a card reader, etc.).
[0126] Storage device 2416 may include machine-readable medium 2422 thereon storing one or more sets of data structures or instructions 2424 (e.g., software) embodying or used by any one or more of the techniques or functions described herein. Instructions 2424 may also reside wholly or at least partially within main memory 2404, static memory 2406, or hardware processor 2402 during execution by machine 2400. In the example, one or any combination of hardware processor 2402, main memory 2404, static memory 2406, or storage device 2416 may constitute a machine-readable medium.
[0127] Although machine-readable medium 2422 is shown as a single medium, the term "machine-readable medium" can include a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) configured to store one or more instructions 2424.
[0128] The term "machine-readable medium" can include any medium capable of storing, encoding, or carrying instructions for execution by machine 2400 and causing machine 2400 to perform any one or more of the technologies disclosed herein, or any medium capable of storing, encoding, or carrying data structures used by or associated with such instructions. Examples of non-limiting machine-readable media can include solid-state memory as well as optical and magnetic media. Specific examples of machine-readable media can include: non-volatile memory, such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)) and flash memory devices; disks, such as internal hard disks and removable disks; magneto-optical disks; random access memory (RAM); solid-state drives (SSDs); and CD-ROMs and DVD-ROMs. In some examples, machine-readable media can include non-transitory machine-readable media. In some examples, machine-readable media can include machine-readable media that are not transient propagating signals.
[0129] Commands 2424 can also be sent or received on the communication network 2426 via the network interface device 2420 using a transmission medium. The machine 2400 can communicate wired or wirelessly using any of a variety of transmission protocols, such as Frame Relay, Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), etc. Example communication networks may include local area networks (LANs), wide area networks (WANs), packet data networks (e.g., the Internet), mobile phone networks (e.g., cellular networks), conventional telephone (POTS) networks, and wireless data networks such as the IEEE 802.11 family of standards, the IEEE 802.15.4 family of standards, the 5G New Radio (NR) family of standards, the Long Term Evolution (LTE) family of standards, the Universal Mobile Telecommunications System (UMTS) family of standards, peer-to-peer (P2P) networks, etc. In the example, the network interface device 2420 may include one or more physical jacks (e.g., Ethernet, coaxial, or telephone jacks) or one or more antennas for connection to the communication network 2426. In the example, network interface device 2420 may include multiple antennas to perform wireless communication using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) techniques. In some examples, network interface device 2420 may use multi-user MIMO technology for wireless communication.
[0130] Other notes and examples
[0131] Example 1 is a method for providing a sidebar thread for communication, the method comprising: using one or more processors of a communication server: receiving, via a communication network, a command from a sender for creating a sidebar thread forked from a first communication thread, the first communication thread being among a first plurality of first communication thread participants including the sender, the sidebar thread being among a second plurality of sidebar thread participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and the address of the sidebar receiver; and, in response to receiving the command, causing the sidebar thread to be transmitted via the communication network. A notification is sent to the address of the sidebar recipient, the notification including the first message and a portion of the first communication thread or a link to a portion of the first communication thread; approval or modification of the first message is received from the sidebar recipient in the sidebar thread via the communication network; in response to receiving the approval or modification of the first message, automatically: a communication message addressing from the sender's address to the address of the final recipient is created by including the approved first message or the modification of the first message; and the communication message is published from the sender's address to the final recipient in the first communication thread.
[0132] In Example 2, the subject of Example 1 includes the following: the sidebar thread includes multiple sidebar communications between sidebar thread participants in the sidebar thread prior to receiving the approval or modification of the first message, the multiple sidebar communications including multiple sidebar thread message contents that are not the first message or a modification of the first message.
[0133] In Example 3, the subject of Example 2 includes, wherein creating the communication message includes excluding the content of the plurality of sidebar thread messages.
[0134] In Example 4, the subject of Examples 1-3 includes, wherein the notification of the sidebar thread includes the message history of the second communication thread, and wherein, the method further includes: identifying the second communication thread, which is different from the first communication thread and the sidebar thread; and publishing the communication message to the second communication thread in addition to publishing the communication message from the address of the sender in the first communication thread to the final recipient.
[0135] In Example 5, the subject matter of Examples 1-4 includes, wherein, publishing the communication message from the address of the sender in the first communication thread to the final receiver includes replying to the message in the first communication thread.
[0136] In Example 6, the subject of Example 5 includes, wherein the message in the first communication thread is a message indicating that the sidebar thread has been forked.
[0137] In Example 7, the subject of Examples 5-6 includes the following: the message in the first communication thread is a message published to the first communication thread after the sidebar thread is forked from the first communication thread.
[0138] In Example 8, the subject of Examples 1-7 includes the following: the first communication thread is hosted by a first communication modality, and the sidebar thread is hosted by a second communication modality.
[0139] In Example 9, the subject of Examples 1-8 includes the following: the first communication thread and the sidebar thread are both one of the following: an email communication thread, a chat thread, a message board thread, a text message thread, or a thread from a unified communications application.
[0140] In Example 10, the subject of Examples 1-9 includes, wherein receiving the command includes receiving an email, and wherein publishing the communication message includes sending an email.
[0141] In Example 11, the subject of Examples 1-10 includes the following: the final recipient is a participant in the first communication thread, and the posting of the communication message from the address of the sender in the first communication thread to the final recipient includes: posting the communication message to the final recipient and all other participants in the first communication thread, the posting including one of the following: emailing the communication message, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group in a unified communications service.
[0142] In Example 12, the subject matter of Examples 1-11 includes: providing the sender with a graphical user interface (GUI) displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an instruction for selecting the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing the sender with a second GUI, the second GUI providing GUI controls for accepting the designation of the sidebar recipient, the designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein receiving the instruction is in response to the selection of the creation control in the second GUI.
[0143] Example 13 is a computing device for providing a sidebar thread for communication, the computing device comprising: a processor; and a memory storing instructions that, when executed by the processor, cause the computing device to perform operations including: receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a first communication thread among a first plurality of first communication thread participants including the sender, the sidebar thread being a thread among a second plurality of sidebar thread participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and the address of the sidebar receiver; and responding to receiving the command... The command causes a notification of the sidebar thread to be sent via the communication network to the address of the sidebar recipient, the notification including the first message and a portion of the first communication thread or a link to a portion of the first communication thread; receives approval or modification of the first message from the sidebar recipient in the sidebar thread via the communication network; in response to receiving the approval or modification of the first message, automatically: creates a communication message addressing from the sender's address to the address of the final recipient by including the approved first message or the modification of the first message; and publishes the communication message from the sender's address to the final recipient in the first communication thread.
[0144] In Example 14, the subject of Example 13 includes the following: the sidebar thread includes multiple sidebar communications between sidebar thread participants in the sidebar thread prior to receiving the approval or modification of the first message, the multiple sidebar communications including multiple sidebar thread message contents that are not the first message or a modification of the first message.
[0145] In Example 15, the subject of Example 14 includes, wherein the operation of creating the communication message includes excluding the content of the plurality of sidebar thread messages.
[0146] In Example 16, the subject of Examples 13-15 includes the following: the notification of the sidebar thread includes the message history of the second communication thread; and the operation further includes: identifying the second communication thread, which is different from the first communication thread and the sidebar thread; and publishing the communication message to the second communication thread in addition to publishing the communication message from the address of the sender in the first communication thread to the final recipient.
[0147] In Example 17, the subject matter of Examples 13-16 includes, wherein the operation of publishing the communication message from the address of the sender in the first communication thread to the final receiver includes replying to the message in the first communication thread.
[0148] In Example 18, the subject of Example 17 includes the following: the message in the first communication thread is a message from which the sidebar thread is forked.
[0149] In Example 19, the subject of Examples 17-18 includes the following: the message in the first communication thread is a message published to the first communication thread after the sidebar thread is forked from the first communication thread.
[0150] In Example 20, the subject of Examples 13-19 includes the following: the first communication thread is hosted by a first communication modality, and the sidebar thread is hosted by a second communication modality.
[0151] In Example 21, the subject of Examples 13-20 includes the following: the first communication thread and the sidebar thread are both one of the following: an email communication thread, a chat thread, a message board thread, a text message thread, or a thread from a unified communications application.
[0152] In Example 22, the subject of Examples 13-21 includes, wherein the operation of receiving the command includes receiving an email, and wherein publishing the communication message includes sending an email.
[0153] In Example 23, the subject of Examples 13-22 includes the following: the final recipient is a participant in the first communication thread, and the operation of publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of the following: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0154] In Example 24, the subject matter of Examples 13-23 includes: providing the sender with a graphical user interface (GUI) displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an instruction for selecting the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing the sender with a second GUI, the second GUI providing GUI controls for accepting the designation of the sidebar recipient, the designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein the operation of receiving the command is in response to the selection of the creation control in the second GUI.
[0155] Example 25 is a machine-readable medium storing instructions for providing a sidebar thread for communication, the instructions, when executed by a machine, causing the machine to perform operations including: receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a first communication thread, the first communication thread being among a first plurality of first communication thread participants including the sender, the sidebar thread being among a second plurality of sidebar thread participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and the address of the sidebar receiver; and, in response to receiving the command, causing the communication... The network sends a notification from the sidebar thread to the address of the sidebar recipient, the notification including the first message and a portion of the first communication thread or a link to a portion of the first communication thread; receives approval or modification of the first message from the sidebar recipient in the sidebar thread via the communication network; in response to receiving the approval or modification of the first message, automatically: creates a communication message addressing from the sender's address to the address of the final recipient by including the approved first message or the modification of the first message; and publishes the communication message from the sender's address to the final recipient in the first communication thread.
[0156] In Example 26, the subject of Example 25 includes the following: the sidebar thread includes multiple sidebar communications between sidebar thread participants in the sidebar thread prior to receiving the approval or modification of the first message, the multiple sidebar communications including multiple sidebar thread message contents that are not the first message or a modification of the first message.
[0157] In Example 27, the subject of Example 26 includes, wherein the operation of creating the communication message includes excluding the content of the plurality of sidebar thread messages.
[0158] In Example 28, the subject of Examples 25-27 includes the following: the notification of the sidebar thread includes the message history of the second communication thread; and the operation further includes: identifying the second communication thread, which is different from the first communication thread and the sidebar thread; and publishing the communication message to the second communication thread in addition to publishing the communication message to the final recipient from the address of the sender in the first communication thread.
[0159] In Example 29, the subject of Examples 25-28 includes the following: the operation of publishing the communication message from the address of the sender in the first communication thread to the final receiver includes replying to the message in the first communication thread.
[0160] In Example 30, the subject of Example 29 includes, wherein the message in the first communication thread is a message from which the sidebar thread is forked.
[0161] In Example 31, the subject of Examples 29-30 includes, wherein the message in the first communication thread is a message published to the first communication thread after the sidebar thread is forked from the first communication thread.
[0162] In Example 32, the subject of Examples 25-31 includes the following: the first communication thread is hosted by a first communication modality, and the sidebar thread is hosted by a second communication modality.
[0163] In Example 33, the subject of Examples 25-32 includes the following: the first communication thread and the sidebar thread are both one of the following: an email communication thread, a chat thread, a message board thread, a text message thread, or a thread from a unified communications application.
[0164] In Example 34, the subject matter of Examples 25-33 includes, wherein the operation of receiving the command includes receiving an email, and wherein publishing the communication message includes sending an email.
[0165] In Example 35, the subject matter of Examples 25-34 includes, wherein the final recipient is a participant in the first communication thread, and wherein the operation of publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0166] In Example 36, the subject matter of Examples 25-35 includes: providing the sender with a graphical user interface (GUI) displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an instruction for selecting the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing the sender with a second GUI, the second GUI providing GUI controls for accepting the designation of the sidebar recipient, the designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein the operation of receiving the command is in response to the selection of the creation control in the second GUI.
[0167] Example 37 is a device for providing a sidebar thread for communication, the device comprising: a unit for receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a first communication thread, the first communication thread being among a first plurality of first communication thread participants including the sender, the sidebar thread being among a second plurality of sidebar thread participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and the address of the sidebar receiver; and a unit for, in response to receiving the command, sending a notification of the sidebar thread via the communication network to the sidebar receiver. The unit for the recipient's address, the notification including the first message and a portion of the first communication thread or a link to a portion of the first communication thread; the unit for receiving approval or modification of the first message from the sidebar recipient in the sidebar thread via the communication network; and the unit for automatically performing the following operations in response to receiving the approval or modification of the first message: creating a communication message addressing from the sender's address to the final recipient's address by including the approved first message or the modification of the first message; and publishing the communication message from the sender's address to the final recipient in the first communication thread.
[0168] In Example 38, the subject of Example 37 includes the following: the sidebar thread includes multiple sidebar communications between sidebar thread participants in the sidebar thread prior to receiving the approval or modification of the first message, the multiple sidebar communications including multiple sidebar thread message contents that are not the first message or a modification of the first message.
[0169] In Example 39, the subject of Example 38 includes a unit for automatically creating the communication message, which includes a unit for excluding the content of the plurality of sidebar thread messages.
[0170] In Example 40, the subject of Examples 37-39 includes, wherein the notification of the sidebar thread includes the message history of the second communication thread, and wherein, the device further includes: a unit for identifying the second communication thread, the second communication thread being different from the first communication thread and the sidebar thread; and a unit for publishing the communication message to the second communication thread in addition to publishing the communication message from the address of the sender in the first communication thread to the final recipient.
[0171] In Example 41, the subject of Examples 37-40 includes, wherein, publishing the communication message from the address of the sender in the first communication thread to the final receiver includes a unit for replying to the message in the first communication thread.
[0172] In Example 42, the subject of Example 41 includes the following: the message in the first communication thread is a message from which the sidebar thread is forked.
[0173] In Example 43, the subject of Examples 41-42 includes, wherein the message in the first communication thread is a message published to the first communication thread after the sidebar thread is forked from the first communication thread.
[0174] In Example 44, the subject of Examples 37-43 includes the following: the first communication thread is hosted by a first communication modality, and the sidebar thread is hosted by a second communication modality.
[0175] In Example 45, the subject of Examples 37-44 includes the following: the first communication thread and the sidebar thread are both one of the following: an email communication thread, a chat thread, a message board thread, a text message thread, or a thread from a unified communications application.
[0176] In Example 46, the subject of Examples 37-45 includes, wherein the unit for receiving the command includes a unit for receiving email, and wherein publishing the communication message includes sending email.
[0177] In Example 47, the subject matter of Examples 37-46 includes, wherein the final recipient is a participant in the first communication thread, and wherein publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0178] In Example 48, the subject matter of Examples 37-47 includes: a unit for providing a graphical user interface (GUI) to the sender, the GUI displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; a unit for receiving an instruction to select the selectable options to create the sidebar thread; and a unit for providing a second GUI to the sender in response to the selection of the selectable options, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein receiving the instruction is in response to a selection of the creation control in the second GUI.
[0179] Example 49 is a method for providing a sidebar thread for communication, the method comprising: using one or more processors of a communication server: receiving, via a communication network, a command from a sender for creating a sidebar thread forked from a first communication thread, the first communication thread being among a first plurality of first communication thread participants including the sender, the sidebar thread being among a second plurality of sidebar thread participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, a sidebar thread message, and the address of the sidebar receiver; and, in response to receiving the command, causing a notification of the sidebar thread to be sent via the communication network to a... The notification includes the first message and a portion of the first communication thread or a link to a portion of the first communication thread, as well as the sidebar thread message; receiving approval or modification of the first message from the sidebar recipient in the sidebar thread via the communication network; in response to receiving the approval or modification of the first message, automatically: creating a communication message addressing from the sender's address to the final recipient's address by including the approved first message or the modification of the first message and excluding the sidebar thread message; and publishing the communication message from the sender's address to the final recipient in the first communication thread.
[0180] In Example 50, the subject of Example 49 includes using a natural language processing algorithm for communication from the sidebar thread to identify the first message or the modification of the first message.
[0181] In Example 51, the subject of Examples 49-50 includes receiving a command to publish a message to the sidebar thread after the notification of the sidebar thread has been sent to the address of the sidebar recipient via the communication network and before the approval has been received; and in response to receiving the command to publish the message to the sidebar thread, notifying the participants of the sidebar thread of the message.
[0182] In Example 52, the subject of Examples 49-51 includes using a data structure that stores messages of the sidebar thread to identify the first message or the modification of the first message.
[0183] In Example 53, the subject of Examples 49-52 includes the following: the first communication thread is hosted by a first communication modality, and the sidebar thread is hosted by a second communication modality.
[0184] In Example 54, the subject of Examples 49-53 includes, wherein the first communication thread is an email communication thread.
[0185] In Example 55, the subject of Examples 49-54 includes, wherein receiving the command includes receiving an email, and wherein publishing the communication message includes sending an email.
[0186] In Example 56, the subject of Examples 49-55 includes the following: the sidebar thread is published as a child thread of a second thread.
[0187] In Example 57, the subject of Examples 49-56 includes, wherein, creating the communication message includes excluding all messages from the sidebar thread except the first message.
[0188] In Example 58, the subject matter of Examples 49-57 includes: providing the sender with a graphical user interface (GUI) displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an instruction for selecting the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing the sender with a second GUI, the second GUI providing GUI controls for accepting the designation of the sidebar recipient, the designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein receiving the instruction is in response to the selection of the creation control in the second GUI.
[0189] In Example 59, the subject matter of Examples 49-58 includes, wherein the final recipient is a participant in the first communication thread, and wherein, publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0190] Example 60 is a computing device that provides a sidebar thread for communication. The computing device includes: a processor; and a memory storing instructions that, when executed by the processor, cause the computing device to perform operations including: receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a first communication thread among first plurality of first communication thread participants including the sender; the sidebar thread being a thread among second plurality of sidebar thread participants including the sender and a sidebar receiver; the command for creating the sidebar thread including a first message, an address of a final receiver, a sidebar thread message, and the address of the sidebar receiver; and, in response to receiving the command, causing... The notification of the sidebar thread, comprising the first message and a portion of the first communication thread or a link to a portion of the first communication thread, and the sidebar thread message, is sent to the address of the sidebar recipient via the communication network; approval or modification of the first message is received from the sidebar recipient in the sidebar thread via the communication network; in response to receiving the approval or modification of the first message, automatically: a communication message addressing from the sender's address to the address of the final recipient is created by including the approved first message or the modification of the first message and excluding the sidebar thread message; and the communication message is published from the sender's address to the final recipient in the first communication thread.
[0191] In Example 61, the subject of Example 60 includes, wherein the operation further includes: using a natural language processing algorithm to identify the first message or a modification of the first message from the communication of the sidebar thread.
[0192] In Example 62, the subject matter of Examples 60-61 includes, wherein the operation further includes: receiving a command to publish a message to the sidebar thread after causing the notification of the sidebar thread to be sent through the communication network to the address of the sidebar recipient and before receiving the approval; and in response to receiving the command to publish the message to the sidebar thread, notifying the participants of the sidebar thread of the message.
[0193] In Example 63, the subject of Examples 60-62 includes, wherein the operation further includes: using a data structure that stores messages of the sidebar thread to identify the first message or a modification of the first message.
[0194] In Example 64, the subject of Examples 60-63 includes the following: the first communication thread is hosted by a first communication modality, and the sidebar thread is hosted by a second communication modality.
[0195] In Example 65, the subject of Examples 60-64 includes, wherein the first communication thread is an email communication thread.
[0196] In Example 66, the subject of Examples 60-65 includes, wherein receiving the command includes receiving an email, and wherein publishing the communication message includes sending an email.
[0197] In Example 67, the subject of Examples 60-66 includes the sidebar thread being published as a child thread of a second thread.
[0198] In Example 68, the subject of Examples 60-67 includes the fact that the operation of creating the communication message includes excluding all messages other than the first message from the sidebar thread.
[0199] In Example 69, the subject matter of Examples 60-68 includes, wherein the operation further includes: providing the sender with a graphical user interface (GUI) displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an instruction for selecting the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing the sender with a second GUI, the second GUI providing GUI controls for accepting the designation of the sidebar recipient, the designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein receiving the instruction is in response to the selection of the creation control in the second GUI.
[0200] In Example 70, the subject of Examples 60-69 includes the following: the final recipient is a participant in the first communication thread, and the operation of publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0201] Example 71 is a machine-readable medium storing instructions that provide a sidebar thread for communication. When executed by a machine, the instructions cause the machine to perform operations including: receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a first communication thread, the first communication thread being among a first plurality of first communication thread participants including the sender; the sidebar thread being among a second plurality of sidebar thread participants including the sender and a sidebar receiver; the command for creating the sidebar thread including a first message, an address of a final receiver, a sidebar thread message, and the address of the sidebar receiver; and, in response to receiving the command, causing the sidebar thread to be transmitted via the communication network. A notification from the thread is sent to the address of the sidebar recipient, the notification including the first message and a portion of the first communication thread or a link to a portion of the first communication thread, and the sidebar thread message; approval or modification of the first message is received from the sidebar recipient in the sidebar thread via the communication network; in response to receiving the approval or modification of the first message, automatically: a communication message addressing from the sender's address to the address of the final recipient is created by including the approved first message or the modification of the first message and excluding the sidebar thread message; and the communication message is published from the sender's address to the final recipient in the first communication thread.
[0202] In Example 72, the subject of Example 71 includes, wherein the operation further includes: using a natural language processing algorithm to identify the first message or the modification of the first message from the communication of the sidebar thread.
[0203] In Example 73, the subject matter of Examples 71-72 includes, wherein the operation further includes: receiving a command to publish a message to the sidebar thread after causing the notification of the sidebar thread to be sent through the communication network to the address of the sidebar recipient and before receiving the approval; and in response to receiving the command to publish the message to the sidebar thread, notifying the participants of the sidebar thread of the message.
[0204] In Example 74, the subject of Examples 71-73 includes, wherein the operation further includes: using a data structure that stores messages of the sidebar thread to represent the first message or a modification of the first message.
[0205] In Example 75, the subject of Examples 71-74 includes the following: the first communication thread is hosted by a first communication modality, and the sidebar thread is hosted by a second communication modality.
[0206] In Example 76, the subject of Examples 71-75 includes, wherein the first communication thread is an email communication thread.
[0207] In Example 77, the subject of Examples 71-76 includes, wherein receiving the command includes receiving an email, and wherein publishing the communication message includes sending an email.
[0208] In Example 78, the subject of Examples 71-77 includes the sidebar thread being published as a child thread of a second thread.
[0209] In Example 79, the subject of Examples 71-78 includes the fact that the operation of creating the communication message includes excluding all messages other than the first message from the sidebar thread.
[0210] In Example 80, the subject matter of Examples 71-79 includes, wherein the operation further includes: providing the sender with a graphical user interface (GUI) displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an instruction for selecting the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing the sender with a second GUI, the second GUI providing GUI controls for accepting the designation of the sidebar recipient, the designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein receiving the instruction is in response to the selection of the creation control in the second GUI.
[0211] In Example 81, the subject of Examples 71-80 includes the following: the final recipient is a participant in the first communication thread, and the operation of publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0212] Example 82 is an apparatus for providing a sidebar thread for communication, the apparatus comprising: unit for receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a first communication thread, the first communication thread being among a first plurality of first communication thread participants including the sender, the sidebar thread being among a second plurality of sidebar thread participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, a sidebar thread message, and the address of the sidebar receiver; and unit for, in response to receiving the command, sending a notification of the sidebar thread via the communication network to the address of the sidebar receiver. The notification includes the first message and a portion of the first communication thread or a link to and from a portion of the first communication thread, as well as the sidebar thread message; a unit for receiving approval or modification of the first message from the sidebar recipient in the sidebar thread via the communication network; and a unit for automatically performing the following operations in response to receiving the approval or modification of the first message: creating a communication message addressing from the sender's address to the final recipient's address by including the approved first message or the modification of the first message and excluding the sidebar thread message; and publishing the communication message from the sender's address to the final recipient in the first communication thread.
[0213] In Example 83, the subject of Example 82 includes a unit for identifying the first message or the modification of the first message using a natural language processing algorithm from the communication from the sidebar thread.
[0214] In Example 84, the subject matter of Examples 82-83 includes: a unit for receiving a command to publish a message to the sidebar thread after causing the notification of the sidebar thread to be sent through the communication network to the address of the sidebar recipient and before receiving the approval; and a unit for notifying participants of the sidebar thread of the message in response to receiving the command to publish the message to the sidebar thread.
[0215] In Example 85, the subject matter of Examples 82-84 includes: a unit for identifying the first message or the modification of the first message using a data structure that stores messages of the sidebar thread.
[0216] In Example 86, the subject of Examples 82-85 includes the following: the first communication thread is hosted by a first communication modality, and the sidebar thread is hosted by a second communication modality.
[0217] In Example 87, the subject of Examples 82-86 includes, wherein the first communication thread is an email communication thread.
[0218] In Example 88, the subject matter of Examples 82-87 includes, wherein the unit for receiving the command includes a unit for receiving email, and wherein publishing the communication message includes sending email.
[0219] In Example 89, the subject of Examples 82-88 includes the sidebar thread being published as a child thread of a second thread.
[0220] In Example 90, the subject of Examples 82-89 includes, wherein the unit for creating the communication message includes: excluding all messages other than the first message from the sidebar thread.
[0221] In Example 91, the subject matter of Examples 82-90 includes: a unit for providing a graphical user interface (GUI) to the sender, the GUI displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; a unit for receiving an instruction to select the selectable options to create the sidebar thread; and a unit for providing a second GUI to the sender in response to the selection of the selectable options, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein receiving the instruction is in response to a selection of the creation control in the second GUI.
[0222] In Example 92, the subject matter of Examples 82-91 includes, wherein the final recipient is a participant in the first communication thread, and wherein the unit for publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group of a unified communications service.
[0223] Example 93 is a method for providing a sidebar thread for communication, the method comprising: using one or more processors of a communication server: receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a specified message of a first communication thread, the first communication thread being among a first plurality of first communication thread participants including the sender, the sidebar thread being among a second plurality of sidebar thread participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and an address of the sidebar receiver; in response to receiving the command: causing a notification of the sidebar thread to be sent via the communication network to the address of the sidebar receiver, the notification including the first message and a portion of the first communication thread or a link to a portion of the first communication thread; receiving an indication of a reply location in the first communication thread for posting a reply; and using the first communication thread's... The identifier of the first communication thread is determined by a thread identifier field in the specified message data structure; the communication server data storage is searched to find a message data structure having a thread identifier field that matches the identifier of the first communication thread and has a message index that matches the reply position; approval or modification of the first message is received from the sidebar recipient in the sidebar thread via the communication network; in response to receiving the approval or modification of the first message, automatically: a communication message addressing from the sender's address to the address of the final recipient is created by including the approved first message or the modification of the first message; and the communication message is published from the sender's address in the first communication thread to the final recipient as a reply to the message corresponding to the found message data structure, the message being addressable to the final recipient and including at least a portion of the message body field of the message data structure.
[0224] In Example 94, the subject of Example 93 includes, wherein receiving the indication of the reply location for publishing the reply in the first communication thread includes: identifying configuration options; and determining the reply location based on the configuration options and the message of the first communication thread.
[0225] In Example 95, the subject of Example 94 includes, wherein the configuration option is set to indicate that the reply position is the value of the last message in the thread, and wherein the reply position is determined based on the last message in the first communication thread.
[0226] In Example 96, the subject matter of Examples 93-95 includes, wherein receiving an indication of the reply position for posting a reply in the first communication thread includes receiving a selection of the reply position in the first communication thread from a sidebar thread participant.
[0227] In Example 97, the subject of Example 96 includes, wherein the instruction is part of the command.
[0228] In Example 98, the subject of Examples 96-97 includes, wherein the sidebar thread participant is the sender.
[0229] In Example 99, the subject of Examples 93-98 includes, wherein the sidebar thread includes multiple communications prior to the approval or modification of the first message.
[0230] In Example 100, the subject matter of Examples 93-99 includes, wherein the method further includes: providing a display of a plurality of messages in the first communication thread to a graphical user interface (GUI); and wherein receiving an indication of a reply location in the first communication thread for posting a reply includes receiving a selection of one of the plurality of messages in the first communication thread from the GUI.
[0231] In Example 101, the subject of Examples 93-100 includes, wherein the final recipient is a participant in the first communication thread, and wherein publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0232] Example 102 is a computing device for providing a sidebar thread for communication, the computing device comprising: a processor; and a memory storing instructions that, when executed by the processor, cause the computing device to perform operations including: receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a specified message of a first communication thread, the first communication thread being among a first plurality of first communication thread participants including the sender, the sidebar thread being among a second plurality of sidebar thread participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and the address of the sidebar receiver; in response to receiving the command: causing a notification of the sidebar thread to be sent on the communication network to the address of the sidebar receiver, the notification including the first message and a portion of the first communication thread or a link to a portion of the first communication thread; and receiving a response to be published in the first communication thread. The following actions are described: indicating the reply location; determining the identifier of the first communication thread using the thread identifier field in the data structure of the specified message of the first communication thread; searching the communication server data storage to find a message data structure having a thread identifier field that matches the identifier of the first communication thread and has a message index that matches the reply location; receiving approval or modification of the first message from the sidebar recipient in the sidebar thread via the communication network; automatically, in response to receiving the approval or modification of the first message: creating a communication message addressed from the sender's address to the address of the final recipient by including the approved first message or the modification of the first message; and publishing the communication message from the sender's address in the first communication thread to the final recipient as a reply to the message corresponding to the found message data structure, the message being addressed to the final recipient and including at least a portion of the message body field of the message data structure.
[0233] In Example 103, the subject of Example 102 includes the operation of receiving the indication of the reply location for publishing the reply in the first communication thread, which includes: identifying configuration options; and determining the reply location based on the configuration options and the message of the first communication thread.
[0234] In Example 104, the subject of Example 103 includes, wherein the configuration option is set to indicate that the reply position is the value of the last message in the thread, and wherein the operation includes determining the reply position based on the last message in the first communication thread.
[0235] In Example 105, the subject of Examples 102-104 includes the operation of receiving the indication of the reply position for posting a reply in the first communication thread, which includes receiving a selection of the reply position in the first communication thread from a sidebar thread participant.
[0236] In Example 106, the subject of Example 105 includes, wherein the instruction is part of the command.
[0237] In Example 107, the subject of Examples 105-106 includes, wherein the sidebar thread participant is the sender.
[0238] In Example 108, the subject of Examples 102-107 includes, wherein the sidebar thread includes multiple communications prior to the approval or modification of the first message.
[0239] In Example 109, the subject matter of Examples 102-108 includes, wherein the operation further includes: providing a display of a plurality of messages in the first communication thread to a graphical user interface (GUI); and wherein receiving an indication of a reply location in the first communication thread for posting a reply includes receiving a selection of one of the plurality of messages in the first communication thread from the GUI.
[0240] In Example 110, the subject of Examples 102-109 includes the following: the final recipient is a participant in the first communication thread, and the operation of publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of the following: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0241] Example 111 is a machine-readable medium storing instructions for providing a sidebar thread for communication, the instructions causing the machine to perform operations when executed by the machine, the operations including: receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a specified message of a first communication thread, the first communication thread being among a first plurality of first communication thread participants including the sender, the sidebar thread being among a second plurality of sidebar thread participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and the address of the sidebar receiver; in response to receiving the command: causing a notification of the sidebar thread to be sent via the communication network to the address of the sidebar receiver, the notification including the first message and a portion of the first communication thread or a link to a portion of the first communication thread; receiving an indication of a reply location in the first communication thread for posting a reply; and using the first communication... The identifier of the first communication thread is determined by a thread identifier field in the data structure of the specified message of the thread; the communication server data storage is searched to find a message data structure with a thread identifier field that matches the identifier of the first communication thread and has a message index that matches the reply position; approval or modification of the first message is received from the sidebar recipient in the sidebar thread via the communication network; in response to receiving the approval or modification of the first message, automatically: a communication message addressing from the sender's address to the address of the final recipient is created by including the approved first message or the modification of the first message; and the communication message is published from the sender's address in the first communication thread to the final recipient as a reply to the message corresponding to the found message data structure, the message being addressed to the final recipient and including at least a portion of the message body field of the message data structure.
[0242] In Example 112, the subject of Example 111 includes the operation of receiving the indication of the reply location for publishing the reply in the first communication thread, which includes: identifying configuration options; and determining the reply location based on the configuration options and the message of the first communication thread.
[0243] In Example 113, the subject of Example 112 includes, wherein the configuration option is set to indicate that the reply position is the value of the last message in the thread, and wherein the operation includes determining the reply position based on the last message in the first communication thread.
[0244] In Example 114, the subject of Examples 111-113 includes the operation of receiving the indication of the reply position for posting a reply in the first communication thread, which includes receiving a selection of the reply position in the first communication thread from a sidebar thread participant.
[0245] In Example 115, the subject of Example 114 includes, wherein the instruction is part of the command.
[0246] In Example 116, the subject of Examples 114-115 includes, wherein the sidebar thread participant is the sender.
[0247] In Example 117, the subject of Examples 111-116 includes, wherein the sidebar thread includes multiple communications prior to the approval or modification of the first message.
[0248] In Example 118, the subject matter of Examples 111-117 includes, wherein the operation further includes: providing a display of a plurality of messages in the first communication thread to a graphical user interface (GUI); and wherein receiving an indication of a reply location in the first communication thread for posting a reply includes: receiving a selection of one of the plurality of messages in the first communication thread from the GUI.
[0249] In Example 119, the subject of Examples 111-118 includes the following: the final recipient is a participant in the first communication thread, and the operation of publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0250] Example 120 is an apparatus for providing a sidebar thread for communication, the apparatus comprising: unit for receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a specified message of a first communication thread, the first communication thread being among a first plurality of first communication thread participants including the sender, the sidebar thread being among a second plurality of sidebar thread participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and an address of the sidebar receiver; in response to receiving the command: unit for causing a notification of the sidebar thread to be sent on the communication network to the address of the sidebar receiver, the notification including the first message and a portion of the first communication thread or a link to a portion of the first communication thread; unit for receiving an indication of a reply location in the first communication thread for posting a reply; and unit for using the specified message of the first communication thread in a data structure. The unit is configured to determine the identifier of the first communication thread using a thread identifier field; to search a communication server data repository to find a message data structure having a thread identifier field that matches the identifier of the first communication thread and has a message index that matches the reply position; to receive approval or modification of the first message from the sidebar recipient in the sidebar thread on the communication network; and to automatically perform the following operations in response to receiving the approval or modification of the first message: to create a communication message addressed from the sender's address to the address of the final recipient by including the approved first message or the modification of the first message; and to publish the communication message from the sender's address in the first communication thread to the final recipient as a reply to the message corresponding to the found message data structure, the message being addressed to the final recipient and including at least a portion of the message body field of the message data structure.
[0251] In Example 121, the subject of Example 120 includes a unit for receiving the indication of the reply location for publishing the reply in the first communication thread, which includes a unit for identifying configuration options and determining the reply location based on the configuration options and the message of the first communication thread.
[0252] In Example 122, the subject of Example 121 includes the following: the configuration option is set to indicate that the reply position is the value of the last message in the thread, and the reply position is determined based on the last message in the first communication thread.
[0253] In Example 123, the subject matter of Examples 120-122 includes, wherein, for receiving an indication of a reply position for posting a reply in the first communication thread, therein is a unit for receiving a selection of a reply position in the first communication thread from a sidebar thread participant.
[0254] In Example 124, the subject of Example 123 includes, wherein the instruction is part of the command.
[0255] In Example 125, the subject of Examples 123-124 includes, wherein the sidebar thread participant is the sender.
[0256] In Example 126, the subject of Examples 120-125 includes, wherein the sidebar thread includes multiple communications prior to the approval or modification of the first message.
[0257] In Example 127, the subject matter of Examples 120-126 includes, wherein the device further includes: a unit for providing a display of a plurality of messages in the first communication thread to a graphical user interface (GUI); and wherein the unit for receiving an indication of a reply position for posting a reply in the first communication thread includes: a unit for receiving a selection of one of the plurality of messages in the first communication thread from the GUI.
[0258] In Example 128, the subject matter of Examples 120-127 includes, wherein the final recipient is a participant in the first communication thread, and wherein the unit for publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group of a unified communications service.
[0259] Example 129 is a method for providing a sidebar thread for communication, the method comprising: using one or more processors of a communication server: receiving, via a communication network, a command from a sender for creating a sidebar thread that forks from a first communication thread, the first communication thread being among a first plurality of participants including the sender, the sidebar thread being among a second plurality of participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and an address of the sidebar receiver; in response to receiving the command: selecting a second communication thread based on the sender being a common participant of the sidebar thread and the second communication thread, the second communication thread being among a first plurality of participants including the sender and a sidebar receiver; the second communication thread being among a second plurality of participants including the sender and a sidebar receiver; the second communication thread being among a third plurality of participants including the sender and a sidebar receiver; the command for creating the sidebar thread including a first message, an address of a final receiver, and an address of the sidebar receiver; and, in response to receiving the command: selecting a second communication thread based on the sender being a common participant of the sidebar thread and the second communication thread. Prior to receiving the command, a third or more participants exist in advance and are included; a message is published to the second communication thread, the message including the first message of the sidebar thread and including the second or more participants who are members of the second communication thread; approval or modification of the first message in the second communication thread is received from the third or more participants through the communication network; in response to receiving the approval or modification of the first message, automatically: a communication message is created from the sender's address to the final recipient, the communication message including the first message or the modification of the first message; and the communication message is published from the sender's address to the final recipient in the first communication thread.
[0260] In Example 130, the subject of Example 129 includes the following: the first communication thread is provided on a first communication mode, and the second communication thread is provided on a second communication mode.
[0261] In Example 131, the subject of Example 130 includes the following: the first communication mode is one of email or instant messaging, and the second communication mode is another of the email or instant messaging.
[0262] In Example 132, the subject of Examples 129-131 includes the fact that both the first communication thread and the second communication thread are provided on the same communication mode.
[0263] In Example 133, the subject of Examples 129-132 includes, wherein, selecting the second communication thread also includes selecting the second communication thread based on the similarity between the subject of the first communication thread and either the second communication thread or the sidebar communication thread.
[0264] In Example 134, the subject of Examples 129-133 includes, wherein, participants of the sidebar thread are added to the second communication thread.
[0265] In Example 135, the subject of Examples 129-134 includes, wherein selecting the second communication thread based on the fact that the sender is a common participant of the sidebar thread and the second communication thread also includes: selecting the second communication thread based on a text similarity metric of the messages of the second communication thread and the sidebar thread.
[0266] In Example 136, the topic of Example 135 includes: using natural language processing algorithms to determine similarity metrics.
[0267] In Example 137, the subject of Example 136 includes: using text string matching to determine the similarity metric.
[0268] In Example 138, the subject of Examples 129-137 includes the following: the message that publishes the first message, which includes the sidebar thread, to the second communication thread and includes the second plurality of participants as members of the second communication thread includes one of the following: sending an email with the message, publishing the message in a chat room, publishing the message in a forum, or publishing the message as part of a group discussion in a unified communications service.
[0269] In Example 139, the subject matter of Examples 129-138 includes: providing the sender with a graphical user interface (GUI) displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an instruction for selecting the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing the sender with a second GUI, the second GUI providing GUI controls for accepting the designation of the sidebar recipient, the designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein receiving the instruction is in response to the selection of the creation control in the second GUI.
[0270] In Example 140, the subject matter of Examples 129-139 includes: providing the sender with a GUI, wherein the GUI elements provide the sender with the option to publish the sidebar thread in the second communication thread or to start a new thread; and wherein publishing the message to the second communication thread is in response to receiving the option to publish the sidebar thread in the second communication thread in the GUI.
[0271] In Example 141, the subject of Examples 129-140 includes the following: the final recipient is a participant in the first communication thread, and the posting of the communication message from the address of the sender in the first communication thread to the final recipient includes: posting the communication message to the final recipient and all other participants in the first communication thread, the posting including one of the following: emailing the communication message, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group in a unified communications service.
[0272] Example 142 is a computing device for providing a sidebar thread for communication, the computing device comprising: a processor; and a memory storing instructions that, when executed by the processor, cause the computing device to perform operations including: receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a first communication thread among a first plurality of participants including the sender, the sidebar thread being a thread among a second plurality of participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and the address of the sidebar receiver; and responding to receiving the command based on the sender being a common participant of both the sidebar thread and the second communication thread. Select a second communication thread, which exists in advance before receiving the command and includes a third plurality of participants; publish a message to the second communication thread, the message including the first message of the sidebar thread and including the second plurality of participants who are members of the second communication thread; receive approval or modification of the first message in the second communication thread from the third plurality of participants through the communication network; in response to receiving the approval or modification of the first message, automatically: create a communication message from the sender's address to the final recipient, the communication message including the first message or the modification of the first message; and publish the communication message from the sender's address to the final recipient in the first communication thread.
[0273] In Example 143, the subject of Example 142 includes the following: the first communication thread is provided on a first communication mode, and the second communication thread is provided on a second communication mode.
[0274] In Example 144, the subject of Example 143 includes the following: the first communication mode is one of email or instant messaging, and the second communication mode is another of the email or instant messaging.
[0275] In Example 145, the subject of Examples 142-144 includes the provision that both the first communication thread and the second communication thread are provided on the same communication mode.
[0276] In Example 146, the subject matter of Examples 142-145 includes, wherein the operation of selecting the second communication thread includes: also selecting the second communication thread based on the similarity in the subject matter of the first communication thread and the second communication thread or the sidebar thread.
[0277] In Example 147, the subject of Examples 142-146 includes, wherein, participants of the sidebar thread are added to the second communication thread.
[0278] In Example 148, the subject of Examples 142-147 includes the operation of selecting the second communication thread based on the fact that the sender is a common participant of the sidebar thread and the second communication thread, which also includes selecting the second communication thread based on a text similarity metric of the messages of the second communication thread and the sidebar thread.
[0279] In Example 149, the subject of Example 148 includes, wherein the operation further includes using a natural language processing algorithm to determine a similarity metric.
[0280] In Example 150, the subject of Example 149 includes, wherein the operation further includes using text string matching to determine a similarity metric.
[0281] In Example 151, the subject of Examples 142-150 includes the following: the operation of publishing the first message, which includes the sidebar thread, to the second communication thread and including the second plurality of participants who are members of the second communication thread includes one of the following: sending an email with the message, publishing the message in a chat room, publishing the message in a forum, or publishing the message as part of a group discussion in a unified communications service.
[0282] In Example 152, the subject matter of Examples 142-151 includes, wherein the operation further includes: providing the sender with a graphical user interface (GUI) displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an instruction for selecting the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing the sender with a second GUI, the second GUI providing GUI controls for accepting the designation of the sidebar recipient, the designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein receiving the instruction is in response to the selection of the creation control in the second GUI.
[0283] In Example 153, the subject of Examples 142-152 includes, wherein the operation further includes: providing a GUI to the sender, wherein the GUI element provides the sender with the option to publish the sidebar thread in the second communication thread or to start a new thread; and wherein the message is published to the second communication thread in response to receiving the option to publish the sidebar thread in the second communication thread in the GUI.
[0284] In Example 154, the subject of Examples 142-153 includes the following: the final recipient is a participant in the first communication thread, and the operation of publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0285] Example 155 is a machine-readable medium storing instructions for providing a sidebar thread for communication, the instructions causing the machine to perform operations when executed by the machine, the operations including: receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a first communication thread among a first plurality of participants including the sender, the sidebar thread being a thread among a second plurality of participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and the address of the sidebar receiver; and, in response to receiving the command, selecting a second communication line based on the sender being a common participant of the sidebar thread and the second communication thread. The process involves the second communication thread existing prior to receiving the command and including a third plurality of participants; publishing the first message, including the sidebar thread, and messages from the second plurality of participants who are members of the second communication thread to the second communication thread; receiving approval or modification of the first message in the second communication thread from the third plurality of participants via the communication network; and automatically, in response to receiving the approval or modification of the first message, creating a communication message from the sender's address to the final recipient, the communication message including the first message or the modification of the first message; and publishing the communication message from the sender's address to the final recipient in the first communication thread.
[0286] In Example 156, the subject of Example 155 includes the following: the first communication thread is provided on a first communication mode, and the second communication thread is provided on a second communication mode.
[0287] In Example 157, the subject of Example 156 includes the following: the first communication mode is one of email or instant messaging, and the second communication mode is another of the email or instant messaging.
[0288] In Example 158, the subject of Examples 155-157 includes the following: both the first communication thread and the second communication thread are provided on the same communication mode.
[0289] In Example 159, the subject of Examples 155-158 includes, wherein the operation of selecting a second communication thread includes selecting the second communication thread based on the similarity in the subject of the first communication thread and the second communication thread or the sidebar thread.
[0290] In Example 160, the subject of Examples 155-159 includes the fact that participants of the sidebar thread are added to the second communication thread.
[0291] In Example 161, the subject of Examples 155-160 includes the operation of selecting the second communication thread based on the fact that the sender is a common participant of the sidebar thread and the second communication thread, which also includes selecting the second communication thread based on a text similarity metric of the messages of the second communication thread and the sidebar thread.
[0292] In Example 162, the subject of Example 161 includes, wherein the operation further includes using a natural language processing algorithm to determine a similarity measure.
[0293] In Example 163, the subject of Example 162 includes, wherein the operation further includes using text string matching to determine the similarity measure.
[0294] In Example 164, the subject of Examples 155-163 includes the following, wherein the operation of publishing the first message, which includes the sidebar thread, and the message of the second plurality of participants who are members of the second communication thread to the second communication thread includes one of the following: sending an email with the message, publishing the message in a chat room, publishing the message in a forum, or publishing the message as part of a group discussion in a unified communications service.
[0295] In Example 165, the subject matter of Examples 155-164 includes, wherein the operation further includes: providing the sender with a graphical user interface (GUI) displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an instruction for selecting the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing the sender with a second GUI, the second GUI providing GUI controls for accepting the designation of the sidebar recipient, the designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein receiving the instruction is in response to the selection of the creation control in the second GUI.
[0296] In Example 166, the subject of Examples 155-165 includes, wherein the operation further includes: providing a GUI to the sender, wherein the GUI elements provide the sender with the option to publish the sidebar thread in the second communication thread or to start a new thread; and wherein the message is published to the second communication thread in response to receiving the option to publish the sidebar thread in the second communication thread in the GUI.
[0297] In Example 167, the subject of Examples 155-166 includes the following: the final recipient is a participant in the first communication thread, and the operation of publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0298] Example 168 is an apparatus for providing a sidebar thread for communication, the apparatus comprising: unit for receiving, via a communication network, a command from a sender for creating a sidebar thread branching from a first communication thread, the first communication thread being among a first plurality of participants including the sender, the sidebar thread being among a second plurality of participants including the sender and a sidebar receiver, the command for creating the sidebar thread including a first message, an address of a final receiver, and an address of the sidebar receiver; and, in response to receiving the command: unit for selecting a second communication thread based on the sender being a common participant of the sidebar thread and the second communication thread, the second communication thread existing prior to receiving the command. It also includes a third plurality of participants; a unit for publishing a message to the second communication thread, the message including the first message of the sidebar thread and including the second plurality of participants as members of the second communication thread; a unit for receiving approval or modification of the first message in the second communication thread from the third plurality of participants via the communication network; and a unit for automatically performing the following operations in response to receiving the approval or modification of the first message: creating a communication message from the sender's address to the final recipient, the communication message including the first message or the modification of the first message; and publishing the communication message from the sender's address to the final recipient in the first communication thread.
[0299] In Example 169, the subject of Example 168 includes the following: the first communication thread is provided on a first communication mode, and the second communication thread is provided on a second communication mode.
[0300] In Example 170, the subject of Example 169 includes the following: the first communication mode is one of email or instant messaging, and the second communication mode is another of the email or instant messaging.
[0301] In Example 171, the subject of Examples 168-170 includes the provision that both the first communication thread and the second communication thread are provided on the same communication mode.
[0302] In Example 172, the subject matter of Examples 168-171 includes, wherein the unit for selecting the second communication thread includes a unit for selecting the second communication thread also based on the similarity in the subject matter of the first communication thread and the second communication thread or the sidebar thread.
[0303] In Example 173, the subject of Examples 168-172 includes, wherein, a participant of the sidebar thread is added to the second communication thread.
[0304] In Example 174, the subject of Examples 168-173 includes, wherein the unit for selecting the second communication thread based on the fact that the sender is a common participant of the sidebar thread and the second communication thread further includes a unit for selecting the second communication thread based on a text similarity metric of messages between the second communication thread and the sidebar thread.
[0305] In Example 175, the subject of Example 174 includes: using natural language processing algorithms to determine the similarity metric.
[0306] In Example 176, the subject of Example 175 includes: using text string matching to determine the similarity metric.
[0307] In Example 177, the subject of Examples 168-176 includes the following: the unit for publishing the first message, which includes the sidebar thread, to the second communication thread and including a second plurality of participants as members of the second communication thread includes one of the following: sending an email with the message, publishing the message in a chat room, publishing the message in a forum, or publishing the message as part of a group discussion in a unified communications service.
[0308] In Example 178, the subject matter of Examples 168-177 includes: units for providing a graphical user interface (GUI) to the sender, the GUI displaying a message from the first communication thread and selectable options for creating the sidebar thread from the first communication thread; units for receiving an instruction to select the selectable options to create the sidebar thread; units for providing a second GUI to the sender in response to the selection of the selectable options, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the final recipient, the first message, and a creation control for creating the sidebar thread; and wherein receiving the instruction is in response to a selection of the creation control in the second GUI.
[0309] In Example 179, the subject of Examples 168-178 includes: a unit for providing a GUI to the sender, wherein the GUI element provides the sender with the option to publish the sidebar thread in the second communication thread or start a new thread; and wherein publishing the message to the second communication thread is in response to receiving the option to publish the sidebar thread in the second communication thread in the GUI.
[0310] In Example 180, the subject of Examples 168-179 includes the following: the final recipient is a participant in the first communication thread; and the unit for publishing the communication message from the address of the sender in the first communication thread to the final recipient includes the unit for publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: emailing the communication message, publishing the communication to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
[0311] Example 181 is at least one machine-readable medium including instructions that, when executed by processing circuitry, cause the processing circuitry to perform the operations of any of Examples 1-180.
[0312] Example 182 is an apparatus that includes a unit for implementing any one of Examples 1-180.
[0313] Example 183 is a system that implements any one of Examples 1-180.
[0314] Example 184 is a method to implement any one of Examples 1-180.
Claims
1. A method for providing a sidebar thread for communication, the method comprising: Use one or more processors of the communication server: The command to create a sidebar thread branching from a specified message of a first communication thread is received from a sender via a communication network. The first communication thread is among a first plurality of first communication thread participants including the sender. The sidebar thread is among a second plurality of sidebar thread participants including the sender and a sidebar receiver. The command to create the sidebar thread includes a first message, the address of the final receiver, and the address of the sidebar receiver. In response to receiving the command: This causes a notification from the sidebar thread to be sent to the address of the sidebar recipient via the communication network, the notification including the first message and a portion of the first communication thread or a link to a portion of the first communication thread; Receive an indication of the reply position in the first communication thread for posting a reply; The identifier of the first communication thread is determined using the thread identifier field in the data structure of the specified message of the first communication thread; The communication server data storage is searched to find a message data structure with a thread identifier field that matches the identifier of the first communication thread and has a message index that matches the reply position. The approval or modification of the first message is received from the sidebar receiver in the sidebar thread via the communication network. In response to receiving the approval or modification of the first message, automatically: A communication message is created by including an approved first message or a modification thereof, addressing from the sender's address to the final receiver's address. as well as The communication message is published from the address of the sender in the first communication thread to the final receiver as a reply to the specified message of the first communication thread corresponding to the found message data structure. The communication message is addressed to the final receiver and includes at least a portion of the message body field of the message data structure.
2. The method according to claim 1, wherein, Receiving the indication of the reply location for publishing the reply in the first communication thread includes: identifying configuration options, and determining the reply location based on the configuration options and the message from the first communication thread.
3. The method according to claim 2, wherein, The configuration option is set to indicate that the reply position is the value of the last message in the thread, and wherein the reply position is determined based on the last message in the first communication thread.
4. The method according to claim 1, wherein, Receiving an indication of the reply position in the first communication thread for posting a reply includes receiving a selection of the reply position in the first communication thread from a sidebar thread participant.
5. The method according to claim 4, wherein, The instruction is part of the command.
6. The method according to claim 4, wherein, The sidebar thread participant is the sender.
7. The method according to claim 1, wherein, The sidebar thread includes multiple communications prior to the approval or modification of the first message.
8. The method according to claim 1, wherein, The method further includes: A graphical user interface (GUI) displaying multiple messages is provided in the first communication thread; and The step of receiving an indication of the reply location for posting a reply in the first communication thread includes receiving a selection of one of the plurality of messages in the first communication thread from the GUI.
9. The method according to claim 1, wherein, The final recipient is a participant in the first communication thread, and the publication of the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publication including one of the following: sending the communication message by email, publishing the communication message to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
10. A computing device for providing a sidebar thread for communication, the computing device comprising: processor; A memory storing instructions that, when executed by the processor, cause the computing device to perform operations, including: The command to create a sidebar thread branching from a specified message of a first communication thread is received from a sender via a communication network. The first communication thread is among a first plurality of first communication thread participants including the sender. The sidebar thread is among a second plurality of sidebar thread participants including the sender and a sidebar receiver. The command to create the sidebar thread includes a first message, the address of the final receiver, and the address of the sidebar receiver. In response to receiving the command: This causes a notification from the sidebar thread to be sent to the address of the sidebar recipient via the communication network, the notification including the first message and a portion of the first communication thread or a link to a portion of the first communication thread; Receive an indication of the reply position in the first communication thread for posting a reply; The identifier of the first communication thread is determined using the thread identifier field in the data structure of the specified message of the first communication thread; The communication server data storage is searched to find a message data structure with a thread identifier field that matches the identifier of the first communication thread and has a message index that matches the reply position. The approval or modification of the first message is received from the sidebar receiver in the sidebar thread via the communication network. In response to receiving the approval or modification of the first message, automatically: A communication message is created, addressing from the sender's address to the final receiver's address, by including an approved first message or a modification of the first message; and The communication message is published from the address of the sender in the first communication thread to the final receiver as a reply to the specified message of the first communication thread corresponding to the found message data structure. The communication message is addressed to the final receiver and includes at least a portion of the message body field of the message data structure.
11. The computing device according to claim 10, wherein, The operation of receiving the indication of the reply location for publishing the reply in the first communication thread includes: identifying configuration options, and determining the reply location based on the configuration options and the message from the first communication thread.
12. The computing device according to claim 11, wherein, The configuration option is set to indicate that the reply position is the value of the last message in the thread, and the operation includes determining the reply position based on the last message in the first communication thread.
13. The computing device according to claim 10, wherein, The operation of receiving the indication of the reply position for posting a reply in the first communication thread includes: receiving a selection of the reply position in the first communication thread from a sidebar thread participant.
14. The computing device according to claim 10, wherein, The operation also includes: A graphical user interface (GUI) displaying multiple messages is provided in the first communication thread; and The step of receiving an indication of the reply location for posting a reply in the first communication thread includes receiving a selection of one of the plurality of messages in the first communication thread from the GUI.
15. The computing device according to claim 10, wherein, The final recipient is a participant in the first communication thread, and the operation of publishing the communication message from the address of the sender in the first communication thread to the final recipient includes: publishing the communication message to the final recipient and all other participants in the first communication thread, the publishing including one of: sending the communication message by email, publishing the communication message to a chat session, publishing the communication message to a message board, or publishing the communication message to a group in a unified communications service.
Citation Information
Patent Citations
Attachment reply handling in networked messaging systems
CN108293016A
Managing forwarded electronic messages
US20130172025A1