Final message combination for sidebar communication threads
By introducing a sidebar communication thread into the main thread, the message feedback process is managed automatically, solving the problems of time-consuming and resource-wasting sidebar thread management in existing technologies, and achieving more efficient message transmission and an optimized user interface.
Patent Information
- Application Number
- CN202380043165.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-09
- Filing Date
- 2023-04-19
- Publication Date
- 2025-01-10
AI Technical Summary
In existing technologies, the management and publishing process of sidebar threads is time-consuming and causes chaos in the messaging system, especially when multiple participants need to provide feedback before approving the message. Manual operation increases the waste of network and computing resources and is visually cluttered.
By introducing a sidebar communication thread into the main thread, the message feedback process is managed automatically, allowing participants to discuss and approve messages in the sidebar thread until the termination condition is met, at which point the approved message is automatically published to the main thread, reducing manual operations and resource waste.
It improves the efficiency of the messaging system, reduces visual clutter, optimizes the user interface, and saves network and computing resources.
Smart Images

Figure CN119301912A_ABST
Abstract
Description
Technical Field
[0001] Embodiments relate to a sidebar communication thread. Some embodiments relate to the automatic sending of a final message as a result of a sidebar communication thread. Background Art
[0002] Electronic communications including electronic mail (e-mail), chat, instant messaging, and message boards allow users to communicate using electronically sent and received messages. These communications can be organized into groups of one or more messages called message threads. A thread can include one or more related messages involving the same topic; have a shared set of participants; or be initiated by replying or replying to the same ancestor message. For example, an email thread can be created by replying to a message or replying to all. For some communication modalities, each successive message of a thread can include the content or history of past messages in the thread. In a chat room, each "thread" can be organized by the location where the 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 refined categories of messages can be provided. For example, a message board can have a section dedicated to a specific category. Within each category, each thread involves a problem, topic, or other related content within the specific category. Then, a thread can be started by a user within a specific category by posting a new thread within the category. Then, these threads can be replied to by the user who started the thread or by other users. BRIEF DESCRIPTION OF THE DRAWINGS
[0003] In the drawings, which are not necessarily drawn to scale, like reference numerals may describe similar components in different views. Like numbers with different letter suffixes may represent different instances of similar components. The drawings generally illustrate various embodiments discussed in this document by way of example and not limitation.
[0004] Figure 1 An example logic diagram of a sidebar thread according to some examples of the present disclosure is illustrated.
[0005] Figure 2 An example logic diagram of a sidebar thread according to some examples of the present disclosure is illustrated.
[0006] Figure 3 An example logic diagram of a sidebar thread according to some examples of the present disclosure is illustrated.
[0007] Figure 4 A diagram of a graphical user interface (GUI) showing a message display interface with user controls for creating a sidebar thread is illustrated according to some examples of the present disclosure.
[0008] Figure 5A diagram of a graphical user interface (GUI) showing a message display interface with a user control for creating a sidebar thread with a deployed drop-down menu is illustrated according to some examples of the present disclosure.
[0009] Figure 6 Illustrated is a diagram of a GUI showing a sidebar threaded message creation UI according to some examples of the present disclosure.
[0010] Figure 7 A sidebar threaded message creation user interface with a sidebar threaded message creation dialog is illustrated according to some examples of the present disclosure.
[0011] Figure 8 Illustrated is another example of a sidebar threaded message creation user interface with a sidebar threaded message creation dialog according to some examples of the present disclosure.
[0012] Fig. 9 A GUI for a selection interface according to some examples of the present disclosure is illustrated.
[0013] Fig.10 Illustrated is a GUI of a message screen shown to sidebar thread participants when a sidebar message for the sidebar thread is received according to some examples of the present disclosure.
[0014] Fig.11 Illustrated is a logic diagram of a sidebar thread that occurs on a different communication modality than a main thread according to some examples of the present disclosure.
[0015] Fig.12 A logical diagram of a sidebar thread forked from a main thread into an existing second communication thread according to some examples of the present disclosure is illustrated.
[0016] Fig.13 An example of a data structure corresponding to a sidebar thread according to some examples of the present disclosure is illustrated.
[0017] Fig.14 A logical diagram of a main thread participant group and a sidebar communication thread participant group according to some examples of the present disclosure is illustrated.
[0018] Fig.15 A logical diagram of a main thread participant group and a sidebar communication thread participant group according to some examples of the present disclosure is illustrated.
[0019] Fig.16 A logical diagram of communication services and communication applications according to some examples of the present disclosure is illustrated.
[0020] Fig.17 A flowchart of a method for providing a sidebar thread according to some examples of the present disclosure is illustrated.
[0021] Fig.18 A flow chart of a method in which a reply location in a main thread for an accepted main thread message is specified according to some examples of the present disclosure is illustrated.
[0022] Fig.19 A flow chart of a method of providing a sidebar thread as part of a related pre-existing thread according to some examples of the present disclosure is illustrated.
[0023] Fig. 20 A GUI of a unified communication platform according to some examples of the present disclosure is illustrated and illustrates the creation of a sidebar message that creates a sidebar thread.
[0024] Fig.21 A portion of a GUI of a unified communication application according to some examples of the present disclosure is illustrated and a sidebar thread is illustrated.
[0025] Fig. 22 A portion of a GUI of a unified communication application according to some examples of the present disclosure is illustrated.
[0026] Fig.23 A portion of a GUI of a unified communication application according to some examples of the present disclosure is illustrated.
[0027] Fig.24 is a block diagram illustrating an example of a machine upon which one or more embodiments may be implemented. DETAILED DESCRIPTION
[0028] Participants in a particular message thread (hereinafter referred to as the main thread) may wish to obtain feedback on messages that the participant is considering posting to the main thread from other users who may or may not be participants in the main message thread, without making the feedback visible to all participants of the main thread. For example, an employee and a customer may be discussing a product issue in the main thread, and the employee may wish to get their boss' approval to post to the main thread before posting it. Typically, employees forward an email to their boss and include their proposed message. The boss will then approve the post, edit the proposed post, or otherwise reply in a separate message thread. Once the employee has approval to post in the main thread, the employee will manually copy the post (e.g., an approved post or a modified post) back to the location in the main thread. This is time consuming and results in a cluttered inbox and other messaging interfaces. This may also have the side effect of confusing the messaging system to group both the main thread and the side thread into the same conversation. This may confuse one or more of the employees or the boss.
[0029] In some examples, methods, systems, devices, and machine-readable media are disclosed for providing a sidebar communication thread forked from or associated with a main thread. The main thread involves a first set of participants (including a participant who initiates the sidebar thread, referred to as a sidebar initiator), and the sidebar communication thread is between a second set of participants including the sidebar initiator. The sidebar thread is a regular message thread forked from the main thread, which may include different participants from the main thread, and its purpose is to discuss potential postings to the main thread. Messages in the sidebar communication thread may include a history of the main thread, including one or more messages from the main thread, and may include proposed main thread messages that are topics discussed by the sidebar thread. The sidebar thread may also include sidebar thread messages that carry conversations of the sidebar thread participants. Once a termination condition is reached for the sidebar thread, the sidebar thread terminates, and the proposed main thread message (potentially modified by the participants of the sidebar thread) becomes an accepted main thread message, and it is posted to the main thread as if it were sent by the sidebar initiator or no message was posted (e.g., the proposed main thread message was rejected). A communication thread can be an email, chat, IM, a posting on a message board, etc.
[0030] The main thread may be an existing thread, and the accepted main thread message may be posted from the sidebar thread as a reply, reply all, etc. In other examples, the accepted main thread message may be the first message in a brand new thread (e.g., the sidebar initiator may want to get feedback before sending a message that starts the main thread).
[0031] The participants in the sidebar thread and the main thread may be the same, or may be different, but there is a common sidebar thread initiator. Termination conditions may 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 inbox or other communication storage of the sidebar participant. In other examples, the sidebar thread may be stored in a specific inbox or communication storage. In other examples, the sidebar thread history may be available to the sidebar thread participant by selecting an option or link in the GUI that displays the main thread.
[0032] Thus, the present disclosure solves the technical problem of organizing sidebar message threads in the GUI of a messaging application using a technical solution of a separately tracked thread that automatically posts approved messages to the main thread. This reduces wasted network and computing resources by reducing the messaging and time required to manually maintain the sidebar thread and then post the results to the main thread. This also leads to improvements to the GUI interface by reducing the visual clutter created by user-managed sidebar threads.
[0033] Figure 1 An example logic diagram of a sidebar thread according to some examples of the present disclosure is illustrated. 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 selection of the sidebar thread option, a sidebar message 160 is created. Sidebar message 160, when sent, can create a sidebar thread 150 and can be the root of sidebar thread 150. Sidebar thread 150 can be on the same communication modality as main thread 100 or a different communication modality. In some examples, sidebar thread 150 can be a new thread (such as in Figure 1 ), but in other examples, the sidebar thread can be added to a related (and already existing) communication thread different from the main thread (see Fig.12 ).
[0034] When initiating a sidebar thread, the sidebar initiator specifies a set of sidebar thread participants. This can be done by specifying a set of participants to the sidebar message 160. Figure 1 In the example of , 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 (other than the user who created the sidebar thread), or can include both 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 the 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. The message is delivered to the sidebar thread participants in group B.
[0036] A sidebar thread participant may have a number of available actions that they can take in response to receiving the first sidebar message 160. The options may depend on settings selected by the sidebar thread initiator when the sidebar thread is created. Example actions may include one or more of: approving the proposed main thread message 156, rejecting the proposed main thread message 156, replying to the first sidebar message 160 with an additional sidebar message (e.g., "looks good Bob, but I wouldn't mention our Texas operations just yet."), directly editing the proposed main thread message 156 (which may include change tracking and comments), forwarding the sidebar message 160, and the like. In some examples, the list of actions available to a sidebar thread participant may be different for each user, and may depend on the participant's role in the organization relative to the role of the sidebar thread initiator (e.g., the initiator's boss may have more available actions than the initiator's colleagues, both of whom may have more available actions than the initiator's subordinates). Figure 1 In the example of , a user in participant group B has replied and created a first sidebar reply message 165. The message may include a copy of the original message 175, a copy of the first reply message 173, an edited proposed main thread message 171, a copy of the sidebar message 169, and a sidebar reply message 167. Further messaging may occur between the sidebar thread participants until a sidebar thread termination condition is encountered.
[0037] In some examples, the sidebar thread can terminate when one or more configured termination events occur. The event that terminates the sidebar thread can be configured by the sidebar thread initiator, by an administrator of the communication system, etc. Example termination conditions can include approval or rejection of a proposed main thread message by a specific sidebar thread participant; 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 amount of sidebar thread messages posted to the sidebar thread; and the like. In yet other examples, an event from the main thread can cause a termination event for the sidebar thread. For example, a reply after the first reply message 110 can terminate the sidebar thread.
[0038] Based on the termination event, the sidebar thread may or may not post messages to the main thread. For example, some termination events cause the sidebar thread to terminate without posting any messages from the sidebar thread (e.g., any proposed main thread messages) to the main thread. For example, if a proposed main thread message is rejected by a participant in the sidebar thread. Some termination events can cause the proposed main thread message to become an accepted main thread message and be posted to the main thread. In some examples, termination events that result in no messages being posted to the main thread and termination events that result in posting 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 the proposed main thread message of the sidebar thread recipient. In some examples, when the termination event of the sidebar thread is reached, these changes may be automatically accepted and incorporated into the accepted main thread message posted to the main thread. In other examples, the edit may need to be approved by one or more sidebar thread participants (e.g., such as the initiator of the sidebar thread) to be incorporated into the accepted main thread message posted to the main thread. In some examples, whether the edit is automatically accepted or requires additional approval may depend on the relative role of the editing participant in the organization compared to the initiator. For example, if the original sidebar message 160 is sent by an employee, and the edit in the first sidebar reply message 165 is 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 that require approval may be sent to participants in the sidebar thread and may include symbols (e.g., red lines) showing the original edits. These symbols may be stripped from the proposed reply message before being posted to the main thread.
[0040] exist Figure 1 In the example of , once a proposed main thread message is approved, the proposed main thread message becomes an approved main thread message, which can be posted directly to the main thread 100 as if it came from the initiating user who created the sidebar thread. Figure 1 In the example of , the edited proposed main thread message 171 is posted to the main thread as a new message 120 in the main thread. The posting may include a copy of the original message 124 and a copy of the first reply message 122.
[0041] Figure 2 An example logic diagram of a sidebar thread 250 is illustrated according to some examples of the present disclosure. Figure 2 Similar to Figure 1 , except that the second reply message 215 is received in the main thread 200 while the sidebar thread 250 is ongoing. Figure 2The main thread 200 of is started by the original message 205. The first reply message 210 includes a copy of the original message. A participant in participant group A chooses to initiate a sidebar thread from the first reply message 210 by sending a 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 of 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 posted to the main thread, the participant in the main thread posts the second reply message 215. In some examples, the participants in the sidebar thread are all notified of the new reply at 230. For example, the second reply message can be copied into the displayed version of the sidebar message (e.g., as if the sidebar thread was forked from the second reply message). In other examples, other notifications can be used, such as email, attachments, or other methods of transmitting the second reply message 215 to the participant group B. Once the termination event of the sidebar thread 250 is identified, the accepted main thread message can be posted as a third reply message 225, because the reply to the second reply message 215OR can be posted as a third reply message 220 to the first reply message 210. The choice of where to post the accepted main thread message can be specified when the sidebar thread is initiated (e.g., the initiator can specify that the response is posted directly to the location where the sidebar is forked, or the latest message in the main thread); or when the sidebar thread 250 terminates can be specified.
[0043] In some examples, the location in the main thread from which the sidebar thread is forked can be the currently selected message. For example, in an email client, a button similar to a reply button can allow the creation of a sidebar thread that forks from the currently displayed message. In other examples, the system can allow participants to initiate a sidebar thread creation option and then select which message in the main thread to fork from. Similarly, the initiator can choose where to post an accepted main thread message. Figure 3An example logic diagram of a sidebar thread according to some examples of the present disclosure is illustrated, wherein the point in the main thread at which the sidebar thread is forked and the point in the main thread at which the accepted main thread message is published can be selected or otherwise configured (e.g., set). When an original message 310 is sent to a participant group, a main thread 300 is created. Participants can reply with 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 messages of the main thread (e.g., 310, 315, or 320-note that when the sidebar thread is initiated, message 330 has not yet been published) to serve 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 may be included in the first sidebar message 355. For example, if the initiator of the sidebar thread selects the original message 310 as a fork point, the main thread message history 357, 367 included in the sidebar thread may include only a copy of the original message 310. On the contrary, if the initiator selects the second reply message 320 as a fork point, the main thread message history 357, 367 may include a copy of the original message 310, the first reply message 315, and the second reply message 320.
[0044] As previously mentioned, the first sidebar message 355 may include a main thread message history 357 having a copy of the main thread message, a proposed main thread message 361, and a sidebar message 363. A reply to the first sidebar message 355, the sidebar first reply message 365 may include a sidebar reply message 375 and a copy of the first sidebar message 373. Figure 3 In the example of , the sidebar first reply message 365 does not propose any edits to the proposed main thread message 361 .
[0045] A termination event for the sidebar thread 350 may occur and be detected by the communication service, and the proposed main thread message 361, 371 may become an accepted main thread message, which is then posted to the main thread 300. While the sidebar thread 350 is ongoing, a participant in the main thread may have left a third reply message 330 as a reply to the second reply message. The third reply message 330 may include a copy 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 message 361, 371 may be posted as a reply 340 to any message that is later than and includes the fork point. Selection thereof may be based on user settings, user selection when forking the sidebar thread, user selection when posting the proposed main thread message, and the like. In some examples, the proposed main thread message 361, 371 may be posted as the accepted main thread message as a reply to any message in the thread. As in Figure 3 As shown in , if the user forks the sidebar thread from message 324, the accepted main thread message can be posted 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 of a graphical user interface (GUI) 400 according to some examples of the present disclosure is illustrated, which shows a message display interface with user controls for creating a sidebar thread. The GUI 400 shows a received message in a message window 410. The address information pane 415 shows who the message is from ("Scott James"), who the message is sent to ("Newsleter List", "James Jones" and "Chester McCarthy"), and who the message is CC'd to ("Daphne Jones"). The user can use the UI controls in the toolbar 405 to take various actions on the message. For example, the user can delete the message, archive the message, reply to the sender, reply to all recipients and senders, forward the message to other recipients, publish the message to a unified communication platform (as shown in ), file the message in one of six different folders (e.g., "Quick Steps"), move the message, apply a rule or other action, or export the message to a note-taking application (as shown in the ). Toolbar 405 may also include a sidebar fork button 420. Sidebar fork button 420 may cause a sidebar thread to fork from the email shown in message window 410. The button may include a drop-down menu that allows one or more parameters of the sidebar thread to be specified, such as termination conditions and allowed recipient actions (e.g., edit the proposed main thread message, approve, reject, etc.).
[0047] Figure 5 A diagram of a graphical user interface (GUI) 500 according to some examples of the present disclosure is illustrated, which shows a message display interface with a user control for creating a sidebar thread with a deployed drop-down menu 510. GUI 500 is GUI 400 with a deployed drop-down menu 510. Drop-down menu 510 may include one or more options, such as a 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 for approval in box 514 (shown as 15 minutes) - so if no approval or disapproval is received within 15 minutes, the 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 options item 518.
[0048] Once the sidebar thread option is selected, the sidebar thread message creation UI is displayed. Figure 6A diagram of a GUI 600 showing a sidebar thread message creation UI according to some examples of the present disclosure is illustrated. In some examples, the termination condition selected using the drop-down menu 510 can be configured in the GUI 600. The user can enter the recipient of the accepted main thread message in the main thread recipient input box 610 (if the sidebar thread leads to the accepted main thread message). The main thread recipient is a participant of the main thread, and if the termination condition leads to the acceptance of the proposed main thread message, the accepted main thread message is received after the end of the sidebar thread. Although in some examples, these participants will be all participants of the main thread, in other examples, these participants can be a subset of the participants of the main thread. In yet other examples, these participants can add additional participants. In the case where the user selects the sidebar thread creation option for a specific message of an existing main message transmission thread, the main thread recipient input box 610 can be pre-filled with the same participant as the reply, or reply to all commands from a specific message. The main thread recipient input box 610 may have input elements for direct recipients 612 (TO), indirect recipients 614 (CC-carbon copy), and a topic box 616. In yet other examples, the main thread recipient(s) may not yet be a member of the main thread. In these examples, after the accepted main thread message is posted to the main thread, the main thread recipients that are not yet members of the main thread may be added to the main thread as participants. In yet other examples, the designated recipient 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 a sidebar thread and / or main thread, etc. may be an email address, username, IP address, phone number, etc.
[0049] The proposed main thread message may be entered into input box 618. Proposed main thread message input box 618 may have a proposed main thread message 620 and, if the main thread is an existing messaging thread, one or more messages of the existing messaging thread. For example, a specific message and a parent message may be displayed.
[0050] In addition, GUI 600 may include a sidebar recipient input box 625, including input areas for direct recipients 627, indirect recipients 629, and a subject box 631 for the sidebar thread. In addition, sidebar message text 630. The sidebar message text 630 may not be posted to the main messaging thread when the sidebar thread is terminated. A send button 650 may send the sidebar thread message and start the sidebar thread.
[0051] Although GUI 500 and GUI 600 are described as being displayed in response to a received message, and thus a sidebar thread is forked from an existing main communication thread, in other examples, a sidebar thread may be created as a way to seek input on the creation of a new main thread. For example, GUI 600 may be activated in response to selecting a "new sidebar thread" option. In these examples, once a proposed main thread message is approved as the accepted main thread message, the message is sent as the first message in the new thread to the recipients listed in the main thread recipient input box 610.
[0052] In addition to GUI 600, other sidebar threads may be used to create GUIs. For example, Figure 7 The sidebar thread message creation user interface 700 is illustrated, which shows the sidebar thread message creation dialogue. The message creation user interface 700 may include a sidebar thread address and a subject input box 705 specifying the sidebar thread participant. The sidebar message may include an automatically generated message 710, which notifies the sidebar recipient that this is a sidebar message thread. The sidebar message thread message area 712 may be marked out from the control text depicted by other text using an asterisk. Similarly, the proposed main thread message may also be depicted using control text such as an asterisk at area 714. The previous main thread history may be at area 718. These depictions may be automatically created by the system when the initiator initiates the sidebar thread, may be manually placed by the initiator, or may 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. That is, when the sidebar start 720 button is pressed, the system can paste the text "***Start sidebar message area***" in the message. Figure 7 In the example of, the main thread recipient can be a reply or reply to all messages in the main thread from which the initiator forked the sidebar thread. In other examples, the main thread recipient can be specified using control text, or can be specified later using a UI element.
[0053] Figure 8 Another example of a sidebar threaded message creation user interface 700 with a sidebar threaded message creation dialog is illustrated according to some examples of the present disclosure. Figure 7 The control text, in Figure 8 8, GUI 800 allows the user to highlight text 805 and then press a keyboard shortcut or UI button (not shown) to set the sidebar message area.
[0054] Fig. 9GUI 900 is illustrated as a selection interface that allows a sidebar thread initiator to select one or more messages of a main thread to fork into a sidebar thread, and in some examples, also allows the sidebar thread initiator to select the location where the accepted main thread message is posted. GUI 900 shows a 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 may be displayed. Marker 915 may point to the portion of the main thread where the sidebar thread is forked. Marker 915 may be moved by the initiator to a different message, such as message 920, 925, or 930. For example, in Fig. 9 , marker 915 points to message 925. This means that the sidebar thread can be forked from message 925, and the sidebar thread can include a message history of messages before and including message 925. Marker 910 can mark the location (if any) where the accepted main thread message in the main thread will be published. In some examples, the user can specify the location where the accepted main thread message from the sidebar thread will be published when the sidebar thread is forked. In other examples, the user can specify that the accepted main thread message from the sidebar thread will be published when a termination event occurs in the sidebar thread.
[0055] although Fig. 9 The sidebar thread initiator is illustrated selecting a return point when creating the sidebar thread, but in other examples, a fork and / or return point may be selected at a different time using a GUI such as GUI 900. For example, just before posting an approved main thread message from the sidebar thread. Although the initiator may be the one selecting the fork and / or return point, in other examples, other participants of the sidebar thread may be the participants selecting the fork and / or return point. For example, as part of an approval process.
[0056] Fig.10 GUI 1000 of a message screen shown to a sidebar thread participant when a sidebar message for a sidebar thread is received is illustrated according to some examples of the present disclosure. GUI 1000 may include a toolbar 1005, a sidebar thread message display area 1015, and a main thread proposed message display area 1020. Sidebar thread message display area 1015 shows the sidebar thread message, and main thread proposed message display area 1020 may show the proposed main thread message, and in some examples, any edits made to the proposal (e.g., using track changes). Main thread proposed message display area 1020 may also show one or more previous messages of the main thread, such as a message history of messages before the point at which the sidebar thread forked from the main thread.
[0057] Action control 1010 can provide the sidebar message recipient with one or more options for taking action on the received sidebar message. The 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. The valid actions can depend on the settings of the sidebar thread initiator, which can specify valid actions for all users, valid actions for specific users (e.g., based on the settings specified by the initiator, one user may be able to edit a proposed main thread message while another user may not), etc. As shown in Fig.10 As shown in , actions include a reply action and a reply all action. The reply action replies to the sender of the sidebar thread message. In the case of the first message in the sidebar thread, the reply button will reply to the sidebar initiator. The reply all action can reply to all participants in the sidebar thread. The reply message can show 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 a sidebar message history), add or remove sidebar recipients and / or main thread participants (when the accepted main thread message is posted to the main thread - if it occurs), etc. In some examples, and as already pointed out, a particular sidebar participant may not have authorization to edit the proposed main thread message or main thread participant. In some examples, a particular sidebar participant may not have authorization to reply or reply all. In some examples, actions can include approving or disapproving the currently displayed main thread proposal.
[0058] An approval or disapproval action for a participant may be available for each new message in the sidebar thread. That is, one may approve, disapprove, reply, reply all, edit 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 may allow a participant to propose edits to the main thread proposal. In some examples, an edit to a proposed main thread message may invalidate all previous approvals or disapprovals.
[0059] As previously described, one possible sidebar thread termination event may include approval or disapproval of a proposed main thread message. In some examples, a certain 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 posted to the main thread. If the required number or percentage is not reached, the sidebar thread may continue—for example, the proposed main thread message may be edited by one or more participants, or a conversation with the sidebar thread message may occur until the required number or percentage for approval is reached, the required number or percentage for disapproval is reached, a time limit is reached, 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 achieves sufficient approval, it may be posted to the main thread as an accepted main thread message. In addition, in some examples, and as already noted, only certain sidebar thread participants may have approval or disapproval authority.
[0060] Fig.11 The diagram illustrates a logic diagram of a sidebar thread that occurs on a communication modality different from the main thread according to some examples of the present disclosure. An original message 1110 is used as the root message of 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 starts 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 posted to the main thread 1105 with 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 can be an email thread, and the sidebar thread can be a message board.
[0061] In some examples, the system may suggest sidebar threads for different communication modalities. For example, based on the number of common participants between the sidebar thread (as entered by the initiator when forking the thread) and the second communication modality, the similarity of topics between the sidebar thread and one or more threads of the second communication modality (e.g., as determined by a natural language processing algorithm, latent Dirichlet analysis, etc.). Suggestions may be presented to the user before or after the user activates a control to send a sidebar message to create a sidebar thread. The system may post an entire sidebar thread to the second communication modality, and then post messages from the second communication modality back to the main thread on the first communication modality (e.g., in Fig.11 In other examples, the system can post a sidebar thread to a first communication modality and post a link to the sidebar thread to a second communication modality.
[0062] Fig.12 A logic diagram of a sidebar thread forked from a main thread to an existing second communication thread according to some examples of the present disclosure is illustrated. The main thread 1200 is initiated by an original message 1205 between participants in group A. A member of group A replies to create a first reply message 1210. The member of group A then initiates 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 the initiator wants to post a sidebar thread within one of the existing communication threads.
[0063] Similar threads can be determined based on the number of public participants between the second communication thread and those input for the sidebar thread. That is, similar threads can be threads in which the percentage or number of public participants exceeds a threshold. In yet other examples, the subject of the thread can be compared with the subject of the sidebar communication and / or the main thread. Similarity can be judged based on a similarity score using an NLP algorithm. Similarity scores above a threshold can be used to indicate similar threads. In yet other examples, an NLP algorithm can be used to evaluate the similarity of the contents of the main thread, the sidebar thread, and the second communication thread to generate a similarity score. Similarity scores above a threshold can be used to indicate similar threads. In yet other examples, two or more of the similarity scores of the public participant measurements, the similarity scores of the topics, and the contents of the threads 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 may be started by the original message 1252 and may have a first reply 1254. Then, the sidebar thread 1256 may be merged into the second communication thread 1250. For example, by posting the first sidebar message 1258 as a reply or replying to all messages posted 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 of the sidebar thread may 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 (original or edited based on the configuration and the received approval) is posted to the main thread as the accepted main thread message 1215, or nothing is posted. exist Fig.12In the example of , the message is posted as a reply to the first reply message from the initiator in participant group A. As previously described, the message can be automatically posted to the main thread as from the first user (the initiator) based on the second user's approval of the proposed 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 from the first sidebar reply message 1266 and the history of the sidebar thread can be retained. In other examples, it can be a reply from the first reply 1254, and the history of the sidebar thread 1256 can be removed from the second communication thread.
[0065] In some examples, the records of messages of the sidebar communication thread can be removed from the participants of the sidebar thread. For example, messages and other records from the sidebar thread can be deleted from the inbox, outbox, or other folders of the participants. In other examples, the messages and records of the sidebar communication thread can be saved or retained in a specific folder (e.g., an archive folder). In yet other examples, whether the sidebar thread messages and records are removed, saved, or moved to a different location can be specified by the settings of the initiator, administrator, etc.
[0066] Fig.13 An example of a data structure corresponding to a sidebar thread according to some examples of the present disclosure is illustrated. A sidebar thread communication message 1310 can store information related to a single sidebar thread communication message. A sidebar header 1312 can identify a message as part of a sidebar conversation and can indicate the address of the recipient of the sidebar thread message. The sidebar header 1312 can also include a subject of the sidebar thread communication message. A sidebar message body 1314 can store sidebar message body content, including new sidebar thread communication messages, and in some examples (e.g., emails) including past sidebar thread communications.
[0067] The main thread header 1316 may include the recipients of the accepted main thread message (if the termination event results in the posting of a proposed main thread message as an accepted main thread message), which may be all participants of the main thread or may be a subset of the participants of the main thread. The recipients of the main thread may include additional, newly added participants that are not yet participants of the main thread. The main thread message body 1318 may include the main thread history shown to the sidebar participants. The history may be all messages of the main thread, a summary of the main thread's messages (entered manually by the initiator, or by a summary algorithm), a link to the thread history, etc. If the termination event of the sidebar thread indicates acceptance, the proposed main thread message 1320 is the current proposed main thread message to be posted as the accepted main thread message.
[0068] The 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 the sidebar thread participants. In other examples, the sidebar thread communication message 1310 can be converted to / 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 may be stored on the server and / or client and may be a record of the sidebar thread. The proposed main thread message 1324 may store the current (e.g., edited) proposed main thread message 1324. In some examples, the proposed main thread message 1324 may store an edit history of the proposed main thread message 1324, which may provide a view of each edit and which participant of the sidebar thread made the edit.
[0070] The sidebar thread message list 1326 can be a header of a linked list of sidebar thread communication messages 1310. The main thread pointer 1328 can point to: a message in the main thread or a main thread structure pointing to a message in the main thread. The setup structure 1330 includes or points to a setup structure, such as setup structure 1340. In some examples (and not shown), each sidebar thread communication message can 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 an allowed actions field 1342. The allowed actions field 1342 may specify allowed actions for participants of the sidebar thread. The allowed actions may be for all participants or may be broken down by user so that some users have different actions they can take. Termination events 1344 specify events that terminate the sidebar thread and which of those events and under what conditions a proposed main thread message is accepted as the accepted main thread message and posted to the main thread and which of those events and under what conditions a proposed main thread message is not accepted as the accepted main thread message and therefore not posted to the main thread.
[0072] In some examples, the sidebar thread can be fully served by the same communication service. For example, all participants of the sidebar thread can obtain communication services from the same communication service. In these examples, the computing device of the communication service can provide the sidebar thread, monitor the termination event, and publish the result to the main thread. Fig.14A logical diagram 1400 of a group 1405 of main thread participants and a group 1410 of sidebar communication thread participants according to some examples of the present disclosure is illustrated. Participants are represented by user accounts of a communication service. For example, main thread participants include user account A 1415, user account B 1420, and user account C 1425. The user accounts can log in and view communications using a communication application executed on one or more devices corresponding to or owned by the user having the user account. User account C 1425 is the initiator user and account. Sidebar communication thread participants 1410 include an initiator user account, user account C 1425, user account D 1435, and user account E 1430. In Fig.14 In the examples of , all thread participants are served by the same communication service 1440. In these examples, the communication service 1440 can provide both the sidebar thread and the main thread.
[0073] The communication service 1440 can handle the detection of the termination event 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 user accounts D and / or E approving the proposed main thread message, the communication service 1440 can treat the proposed main thread message as the accepted main thread message and publish it to the main thread on behalf of user account C1425 (but not directly sent by it). The publication is as if it was made directly by user account C1425, but in fact it can be in response to the action of another user account of the sidebar communication thread participant 1410.
[0074] Fig.15 A logical diagram 1500 of a group 1505 of main thread participants and a group 1510 of sidebar communication thread participants according to some examples of the present disclosure is illustrated. One or more of the user accounts of one or both of the main thread participants 1505 or the sidebar communication thread participants 1510 may be hosted by a first communication service 1540 and / or a second communication service 1570. In examples where multiple communication service accounts are involved in a sidebar thread, both the communication service and / or the application may be configured to provide a sidebar thread and identify that a message addressed to a communication recipient hosted by the communication service is a sidebar thread. This allows the communication service and / or application to notify participants that this is a sidebar thread and provide, for example, Fig.10 The GUI shown in .
[0075] In addition, a communication service having support for sidebar threads allows the communication service and / or application to provide appropriate actions to participants, detect various sidebar thread termination events, and send the accepted main thread message to the main thread when the termination event causes the proposed main thread message to become the accepted main thread message. 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 of the account of the hosting initiator user. In some examples, when a termination event of a sidebar thread that causes the proposed main thread message to become the accepted main thread message is detected, and if the communication service of the hosting initiator account is not the communication service that detected the termination event, the communication service that detected the termination event can contact the communication service of the hosting initiator account to notify the communication service that the proposed main thread message should be sent 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 for Comments (RFCs) that can describe or standardize message exchanges and formats for implementing communications such as email. These RFCs can be updated to provide sidebar threads.
[0077] Fig.16 1605 and communication applications 1655 according to some examples of the present disclosure. One or more computing devices may be configured to implement the communication service 1605 and communication application 1655, for example, through software. Fig.16 Specific components are shown in FIG. 1 , but one of ordinary skill in the art will appreciate that additional components not shown may be part of the communication service 1605 and the communication application 1655. Fig.16 The logical diagrams in are exemplary, and fewer or more components may be used, and the functions described for one or more components may be performed by one or more other components. The communication service 1605 includes components that can provide, in conjunction with the communication application 1655, communications between one or more user accounts of one or more users of the communication service and one or more other communication services through one or more communication modalities (for clarity, the components in Fig.16 1605 ). The communication modalities may include email, text, chat, instant messaging, message boards, Voice over Internet Protocol (VoIP), video calls, online conferences, etc. The communication application 1655 may interface with the communication service 1605 to provide communication services to the client computing user devices of the user account.
[0078] The communication service 1605 may include a message publishing component 1610 that can publish one or more messages, including messages for the main thread, the sidebar thread, or other threads. Messages can be published in various ways, including adding the message to the user's mailbox or the group's message storage in the message data storage 1615, sending the message to the communication application 1655, sending the message 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] The communication service 1605 may include a sidebar thread management component 1620 that can manage the sidebar thread, such as creation of the sidebar thread, termination of the sidebar thread, communication with other communication services regarding the sidebar thread, publishing accepted main thread messages in the main thread, etc. For example, when the communication service 1605 receives a command to create a sidebar communication thread forked 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 a command) Fig.13 The sidebar thread communication message 1310 of the sidebar thread management component 1620 can be received, and in response, a sidebar thread data structure 1322 can be created. The sidebar thread creation component 1625 can initialize the setting structure 1330 to the settings as received in the creation command or subsequently entered by the user or sent in a different command. The creation command can be a specific creation command (which can include a sidebar thread message), or a sidebar thread message sent to the sidebar thread participant (which can be identified using one or more header fields or flags). In addition, 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 posted by a sidebar thread participant, the sidebar thread management component 1620 can add it to the sidebar thread message list 1326. In addition, the sidebar thread management component 1620 can fill in and track Fig.13 Other elements of the data structure.
[0080] In some examples, if the proposed main thread message is accepted and posted to the main thread as the 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 can be called a session identifier) and a message identifier. When a command to create a sidebar thread is received, the command can include the thread identifier of the main thread and the message identifier of the message forked from it. In some examples, this corresponds to the main message of the user selecting the sidebar thread fork option. In other examples, this can 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 forked the sidebar thread using one or both of the thread identifier and the message identifier by searching the message data store 1615 for messages that match the thread identifier and / or the message identifier. The main message selection component 1630 can then determine the communication of the main thread by extracting the message body from the message body field in the message data structure. The communication can then become part of the sidebar thread. The main message selection component 1630 can then use one or more recipient fields in the message data structure to determine the main thread recipient for the sidebar communication.
[0082] In some examples, the same process can be applied to a merge point where the accepted main thread message can be posted to the main thread. That is, the main message selection component 1630 can determine the message of the main thread that the sidebar thread is merged back to by searching the message data store 1615 for messages that match the thread identifier and / or the message identifier, using one or both of the thread identifier and the message identifier. The main message selection component 1630 can then determine the communication of the main thread by extracting the message body from the message body field in the message data structure. The communication can then become part of the message that is posted back to the main thread and the accepted main thread message.
[0083] The sidebar thread tracking component 1635 can track sidebar thread messages by updating the sidebar thread message list 1326 and maintaining the sidebar thread data structure 1322, 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 the previously referenced Fig.15The sidebar thread described. The sidebar thread communication component 1640 can use one or more APIs, standard formats (such as RFCs), protocols, etc. The communication can include messages of the sidebar thread, the main thread, setting 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 main thread, whether in the same communication modality or a different modality. 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 the similar thread. Threads with a number of common participants above a threshold can be suggested to the initiator.
[0086] In other examples, a similarity score can be calculated based on multiple factors, which can quantify the calculated similarity in the thread. In some examples, the factors can be weighted. In some examples, the similarity score can be calculated as a weighted sum of the factors. Factors include the number of common participants between the main thread or sidebar thread and similar threads; the calculated text similarity between the topics of the threads (e.g., in the subject line of an email, the topic description of a chat room or message board, etc.); the calculated text similarity in the content of the thread; the number of identical attachments in the thread (e.g., as determined by file fingerprints, the name of the file, the size, etc.); and so on. The similarity score of the text can be measured by one or more NLP algorithms as described in this article.
[0087] As mentioned, termination events 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. Cleaning can include deleting or archiving Fig.13 The sidebar thread tracking component 1635 may be used to hide the sidebar thread from the participant's communication application, remove the sidebar thread from the participant's communication application, etc. If the event causes the main thread message to become an accepted main thread message, the sidebar thread tracking component 1635 notifies the main thread synthesis 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, so that the proposed main thread message becomes an accepted main thread message. An example termination event includes acceptance of the proposed main thread message. Such a publication can be completed in response to approval or modification of the proposed main thread message, and in some examples, can be completed automatically in response to approval or modification of the proposed main thread message. The main thread composition component 1650 can create a main thread communication from the address of the initiator of the sidebar thread addressed to the address of one or more main thread recipients (such as the recipient identified by the main thread selection component or the recipient identified in the command to create the sidebar thread). The main thread composition component 1650 includes the approved main thread message (e.g., the initial 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 recipient 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 that 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. In the case where 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 in Figure 4 The new sidebar thread creation display component 1690 can provide one or more sidebar creation thread GUIs in response to the selection of the 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 a user (e.g., a participant of a sidebar thread, such as an initiator) to specify one or more settings for the sidebar thread. For example, Figure 5 A drop-down menu 510 is provided.
[0090] Main message selection component 1670 can display one or more user interfaces that allow sidebar participants, such as initiators, to select fork points and / or return points where accepted main thread messages from the sidebar thread are posted to the main thread. Fig. 9 The GUI shown in .
[0091] The received sidebar message display component 1680 displays the received message for the sidebar thread, whether the sidebar thread is initiated by the user of the communication application 1655 instance or another user. For example, by displaying Fig.10 . The action component 1685 can determine one or more available actions for the user and display UI controls to allow the user to take actions on the GUI. The actions can be described as metadata in the received sidebar message. For example, the metadata of the sidebar message can describe the actions available to each user. The action component 1685 can not only determine the actions available to the user, but also display user interface elements to allow the user to take these actions; respond to the user activating the user interface element; and send an activation indication of the action to the sidebar message command component 1695. The sidebar message command component 1695 can create and send a command to the communication service 1605 for creating a sidebar thread, send one or more action notifications (e.g., accept, approve, reply, edit the proposed main thread message) or other sidebar thread messages or commands to the communication service 1605.
[0092] Fig.17 A flowchart of a method 1700 for providing a sidebar thread according to some examples of the present disclosure is illustrated. At operation 1710, a communication service may receive a command from an initiator user account via an initiator's computing device to create a sidebar communication thread (main communication thread) forked from a first communication thread. The main communication thread may be between 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 an ultimate recipient user account. If the sidebar thread terminates in a manner that causes the proposed main thread message to become the accepted main thread message, the ultimate recipient user account is designated to receive the accepted main thread message. The ultimate recipient may be all participants of 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 a post from the sidebar thread.
[0093] In some examples, the sidebar communication thread can be a thread between a second plurality of thread participants including a sender and a sidebar recipient. In some examples, the command to create the sidebar communication thread includes a proposed main thread message, an address of an ultimate recipient, and an address of a sidebar thread recipient. The command can be in the form of a sidebar thread message, a specific command, etc., and can be received from a computing device of the initiator over a network. In some examples, the command can include one or more sidebar thread messages, which can be delivered to the sidebar participant together with the proposed main thread message. The proposed main thread message and sidebar thread messages (e.g., an initial sidebar thread message and a subsequent sidebar thread message) can be displayed in one or more GUIs in a manner that visually distinguishes them from each other.
[0094] In response, the communication system initializes one or more data structures (such as Fig.13 ) to create a sidebar thread (e.g., as described in Fig.16 At operation 1712, the communication system may cause a notification to be sent to the sidebar thread recipient. For example, by sending a sidebar thread message or other command to the sidebar thread recipient via the communication network. At operation 1714, the system may provide the sidebar 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. This may also include modifications to the proposed main thread message. This may include tracking those modifications. This may 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 that is an approval or modification of the proposed main thread message, causing the proposed main thread message to be posted to the main thread as the accepted main thread message. If the termination event does not correspond to an event that is an approval or modification of the proposed main thread message, causing the proposed main thread message to be posted 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 ended without messages to the main thread. Additional cleanup operations may be taken to remove the sidebar thread message history from the inbox or other communication storage and delete it or move it to a different location that does not clutter the inboxes or communication storage of the sidebar thread participants.
[0096] On the other hand, if the termination event does 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, operations 1720 and 1722 can be performed. At operation 1720, the system can create a main thread communication addressed from the initiator's address to the address of the final recipient (e.g., one or more participants of 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 the message specified by the settings of the sidebar thread. Depending on the sidebar settings and the approval actions and roles of the sidebar thread participants, modifications can be made by the sidebar thread participants, the initiator, etc., and the modifications 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, the approval at operation 1718 can be received from a sidebar thread participant that is not the initiator. In some examples, operations 1720 and 1722 can be automatically performed in response to the approval at operation 1718. In some examples, the message posted to the main thread can be sent or posted to the main thread on behalf of the initiator of the sidebar thread. In some examples, the main thread communication can be created without including any sidebar thread messages and only includes the accepted main thread messages (which are the proposed main thread messages and accepted edits according to the settings of the sidebar thread).
[0098] Fig.18 A flowchart of a method 1800 is illustrated according to some examples of the present disclosure, wherein a reply location in a main thread for an accepted main thread message is specified. At operation 1810, the system may receive an indication of a reply location in the main thread. The indication may be included in a method for Figure 1 In the command to create the sidebar thread at operation 1710 of . In other examples, the indication may be a setting of a user, system, or administrator. The setting may be that the reply location is the location where the sidebar thread is forked, the current main thread message (which may be a later message from the location where the sidebar thread is forked), etc. In other examples, the indication may be received after the command to create the sidebar thread, for example, a sidebar thread participant (sponsor or other participant) may specify a location in the main thread while the sidebar thread is ongoing. The reply location may be a message identifier relative to a thread identifier.
[0099] At operation 1812, the system can determine the thread identifier of the main thread - for example, create a command from the sidebar thread, etc. For example, based on the main thread pointer 1328 of the sidebar thread data structure 1322. At operation 1814, the data storage of the communication service can be searched for a message data structure having a thread identifier that matches the determined thread identifier from step 1812 and having a message index that matches the reply location. At operation 1816, the system can use the data structure to determine the communication of the main thread. For example, the message body and message history of the message. At operation 1818, the system can use the message data structure from operation 1814 to determine the recipient main thread participant. The main thread communication determined at operation 1816 and the recipient determined at operation 1818 can be used to create the main thread communication at operation 1720 and as the recipient of the communication posted at operation 1722.
[0100] Fig.19 A flowchart of a method 1900 for providing a sidebar thread as part of a related pre-existing thread according to some examples of the present disclosure is illustrated. At operation 1910, a communication service may receive a command from an initiator user account to create a sidebar communication thread forked from a main communication thread. The main communication thread may be between a first plurality of main communication thread participants including an initiator, and also include a final recipient user account. In some examples, the sidebar communication thread may be a thread between a second plurality of sidebar communication thread participants including a sender and at least one sidebar recipient. In some examples, the command to create an intermediate communication thread includes a proposed main thread message, an address of a final recipient, and an address of an intermediate recipient. The command may be a sidebar thread message, a specific command, etc., and may be received from an initiator user device over a network. In some examples, the command may include one or more sidebar thread messages, which may be delivered to a sidebar participant together with the proposed main thread message. The proposed main thread message and the sidebar thread message (e.g., an initial sidebar thread message and a subsequent sidebar thread message) 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 based on similarity to the main thread; the sidebar thread; or both the main thread and the sidebar thread; the second 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 in which the initiator user is a participant. In other examples, the initiator may not be a thread in which the initiator user is a participant.
[0102] In response, the communication system creates a sidebar thread by initializing one or more data structures (e.g., Fig.16 As described). At operation 1913, the communication system may create a sidebar thread by posting a message of the sidebar thread to a second communication thread. For example, by sending a sidebar thread message or other command to a sidebar thread recipient via a communication network posted to the second communication thread. In some examples, the sidebar thread is part of the second communication thread or a sub-part thereof. In some examples, once the sidebar thread terminates, the message of the sidebar thread is removed from the second communication thread. In other examples, the message remains, but the second communication thread resumes the conversation and / or discussion of the thread. In some examples, the sidebar communication thread may be a fork of the second communication thread. Therefore, the original conversation of the second communication thread may continue, and the sidebar thread may be a fork of the second communication thread. The system may provide a UI dialog to the user to ask the user whether he or she wishes to utilize the second thread for the sidebar thread. If the user accepts, the method continues. If the user does not accept, the method proceeds as described. Fig.17 Continue with the sidebar thread.
[0103] At operation 1914, if the user accepts, the system can provide the sidebar thread as part of the second communication 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.
[0104] At operation 1916, a termination event may occur, which may be received from the second communication thread or otherwise identified. At operation 1918, the system may determine whether the termination event corresponds to an event that is an approval or modification of the proposed main thread message, causing the proposed main thread message to be posted to the main thread as the accepted main thread message. If the termination event does not correspond to an event that is an approval or modification of the proposed main thread message, causing the proposed main thread message to be posted 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 may be ended without a message to the main thread.
[0105] On the other hand, if the termination event does correspond to an event of approval or modification of the proposed main thread message, which causes the proposed main thread message to be posted to the main thread as the accepted main thread message, operations 1920 and 1922 may be performed. At operation 1920, the system may create a main thread communication addressed from the initiator's address to the address of the final recipient (e.g., one or more participants of the main communication thread). The final recipient may be a reply, a reply all, a subset of the main communication thread participants, etc. The main thread communication includes an accepted main thread message. The accepted main thread message may be the proposed main thread message or any modification of the message specified by the settings of the sidebar thread. Depending on the sidebar settings and the approval actions and roles of the sidebar thread participants, modifications may be made by the sidebar thread participants, the initiator, etc., and the modifications may be approved by one or more other participants. At operation 1922, the message created at operation 1920 may be posted to the main thread.
[0106] In some examples, the approval at operation 1918 can be received by a sidebar thread participant that is not the initiator. In some examples, operations 1920 and 1922 can be automatically performed in response to the approval at operation 1918. In some examples, the message posted to the main thread can be sent or posted to the main thread on behalf of the initiator of the sidebar thread. In some examples, the main thread communication can be created without including any sidebar thread messages and only includes the accepted main thread messages (which are the proposed main thread messages and accepted edits according to the settings of the sidebar thread).
[0107] exist Fig.19 In the example of , if there are differences in the participants of the sidebar thread and the second communication thread, there are several options. In some examples, the initiator specifies the participants in the sidebar thread, and those participants who are selected to be in the sidebar thread but not in the second communication thread may not be included in the sidebar thread. That is, the user's selection of the second thread to host the sidebar thread can be a confirmation to remove the users indicated for the sidebar thread that are not in the second communication thread. This can also be a confirmation that users not indicated for the sidebar thread that is present in the second communication thread will be included as sidebar thread participants.
[0108] In other examples, users in the sidebar thread that were not part of the second communication thread may be invited to participate in the second communication thread. In some examples, the invitation terminates when a termination event of the sidebar occurs. Once this occurs, the additional participants may not participate in the second communication thread. In some examples, additional participants in the sidebar thread that were not previously part of the second communication thread may see the previous history of the second thread. In other examples, additional participants in the sidebar thread that were not previously part of the second communication thread may not see the previous history of the second thread before the sidebar thread.
[0109] In some examples, participants of the second communication thread that are not invited by the initiator as part of the sidebar thread may not see the sidebar thread communication as part of the second communication thread. In other examples, these users can see the sidebar thread communication, but cannot reply or participate. In yet other examples, they can be invited as participants of the sidebar thread.
[0110] The participants of a communication thread, including a sidebar communication thread, may change over time. That is, a first message of a communication thread may have a set of participants, and a second message may have a different set of participants. Thus, the set of participants of a thread may depend on the message of the thread being considered.
[0111] In some examples, threads, messages, etc. can be compared to determine whether they are similar. In some examples, these similarity metrics can use text or topic similarity. These similarity metrics can use various algorithms, such as NLP algorithms for similarity between two texts. One algorithm can be the cosine similarity of text vectors, where each dimension is a different item or word (e.g., one hot encoding) of the words in the two texts being compared. Then, the vectors of the first text and the second text are scored based on the cosine angle between the vectors. Other algorithms can include Euclidean distance algorithm, Word2Vec algorithm, neural network, latent Dirichlet algorithm, etc.
[0112] Fig. 20A GUI 2002 of a unified communication platform according to some examples of the present disclosure is illustrated, and the creation of a sidebar message that creates a sidebar thread is illustrated. The GUI 2002 includes a title bar 2006 with a search and command bar 2004, where a user can search for matching communications, files, folders, and other content. A status icon 2005 shows the status and availability of the user. Clicking or otherwise selecting the status icon allows the user to set their status and availability and other account and application options. A function bar 2010 allows the user to select various functions of the unified communication application; such as observing recent activity on a unified communication service associated with the user; participating in one or more chat sessions; viewing one or more communication topic groups (referred to as teams), participating in or scheduling online meetings, participating in one or more voice calls, viewing files shared within the unified communication service, accessing add-on storage that adds functionality to the unified communication service, providing feedback, and the like.
[0113] As in Fig. 20 As shown in , the team function is selected, and in the team selection bar 2008, the communication groups subscribed by the user are shown. Fig. 20 In the example of , a user subscribes to two teams: Team 1 and Team 2. A communication topic group may have subgroups called channels for discussing one or more subtopics to the communication topic group. Fig. 20 In the example of , there are two teams, each with four channels. The team selection bar 2008 allows the user to select between the teams and channels to which the user has subscribed. Fig. 20 In the example, select the first channel of the second team.
[0114] Each channel can then have multiple tabs that are selected via the tab selection bar 2012. Tabs can separate different types of content and communications, as well as provide another way to organize channels. Fig. 20 In the example shown in , 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. Fig. 20 , this is a bulletin board for a channel. The bulletin board includes postings organized by threads. Two threads are shown, a first thread 2026 includes two posted 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 as having one post 2024, but additional posts may be part of the thread and may be accessed using the vertical scroll bar.
[0115] A post may include one or more file attachments. At the bottom of the thread, a user may reply to a post using the action bar 2020. The reply function and the sidebar thread function are shown. Fig. 20 In the example of , the user has activated the sidebar threading feature, and a sidebar thread message creation input area 2022 may be shown. The sidebar thread message creation input area 2022 may allow the user to specify the sidebar thread participants ("Sidebar To:"), the sidebar thread message ("Sidebar Thread Text"), the proposed main thread text, etc. The sidebar thread message creation input area 2022 may also allow the user to specify a subset of main thread users who will see the proposed reply.
[0116] Fig.21 A portion of a GUI 2112 of a unified communication application according to some examples of the present disclosure is illustrated and a sidebar thread is illustrated. Fig.21 Only tab area 2113 is shown. Tab area 2113 may be used to Fig. 20 The sidebar thread message in the tab area 2013 creates the result of the sidebar message posted in the input area 2022. For clarity, Fig.21 2128 is omitted. Sidebar thread 2130 can be visually set from the main thread from which it is forked, that is, 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 of the main thread. Sidebar message 2122 and proposed main thread message 2124 can be displayed together with any sidebar thread reply message (such as reply 2126). In some examples, edits to the proposed main thread message 2124 can be posted as additional messages, or the proposed main thread message 2124 can be edited inline. Sidebar thread participants can have one or more action icons (such as the action icons shown for replies and sidebar threads). After approval, icons such as icon 2128 can be displayed in the approved user's post.
[0117] Fig. 22 2212 shows a portion of a unified communication application GUI according to some examples of the present disclosure. Fig.21 resemblance, Fig. 22 Only the tab area 2213 is illustrated. The GUI 2212 shows that after the proposed main thread message 2124 becomes an accepted main thread message and the originator of the sidebar thread (in Figure 20-22, "Brad Smith") is posted to thread 2026 after thread 2026. When the system detects a termination event that terminates the sidebar thread and approves the proposed main thread message, message 2260 is posted to thread 2026 as if it came from the initiator of the sidebar thread. In some examples, sidebar thread 2130 may remain visible to participants of sidebar thread 2130 after the sidebar thread termination event occurs. In other examples, sidebar thread 2130 may remain visible to participants of the sidebar thread after the termination event occurs and then disappear. In still other examples, once the termination event occurs, the sidebar thread may disappear for participants of the sidebar thread. Sidebar thread 2130 is no longer displayed on the screen. Fig. 22 Participants in thread 2026 who are not also participants of sidebar thread 2130 will not see sidebar thread 2130. For these participants, they will see messages 2214 and 2218 of thread 2026, and then, when the sidebar thread terminates (with a post to the main thread), they will see message 2260.
[0118] Fig.23 FIG. 1 shows a portion of a GUI of a unified communication application according to some examples of the present disclosure. Fig.21 and Fig. 22 resemblance, Fig.23 Only the tab area 2313 of the unified communication application is illustrated. Fig.23 Picture shows Fig.12 , wherein the sidebar thread of the first thread is posted within the 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. The sidebar thread 2338 may be posted as part of thread 2330. In some examples, and as shown, the sidebar thread 2338 may be visually distinguished from other posts of thread 2330. Once a sidebar thread termination event occurs, thread 2330 may continue. In some examples, once a termination event occurs, the sidebar thread 2338 posts are removed from thread 2330. In other examples, the sidebar thread posts remain within thread 2330. The sidebar thread 2338 may be considered a child thread or child thread of thread 2330.
[0119] From Figure 4-Figure 10 and Figure 20-23The GUIs of the present invention may be provided by a client communication application such as communication application 1655. In other examples, a communication service such as communication service 1605 may provide these GUIs. For example, by providing data to communication application 1655 to create these GUIs. In other examples, communication service 1605 may provide these GUIs in the form of one or more GUI descriptors. The GUI descriptors may be presented or otherwise displayed by an application such as a browser on a client device. Example GUI descriptors may include hypertext markup language (HTML), cascading style sheets (CSS), scripts, java, or other files.
[0120] As used herein, a message is "published" to another message thread by transmitting or delivering the message to the thread according to the communication modality of the thread so that the message is added to the thread. For example, the message may be published by sending an email, posting it to a bulletin board, posting it to a message thread of a unified communication application, posting it to a chat room by sending a chat message, etc.
[0121] Fig.24 A block diagram of an example machine 2400 is illustrated on which any one or more of the techniques (e.g., methods) discussed herein may be performed. In alternative embodiments, the machine 2400 may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine 2400 may operate in the capacity of a server machine, a client machine, or both in a server-client network environment. In an example, the machine 2400 may act as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. The machine 2400 may be in the form of a server computer, a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a smart phone, a web device, a network router, a switch or a bridge, or any machine capable of executing instructions (sequentially or otherwise) specifying actions to be taken by the machine. The machine 2400 may be configured to provide ... Figure 1-Figure 3 , Fig.11 and Fig.12 The communication thread shown in ; provides Figure 4-Figure 10 GUI; create, store and manage Fig.13 A data structure; it can be a communication server that provides communication services. Fig.14 and 15 ; implement the user device of the user account shown in Fig.16 One or more components shown in ; and implementation Figure 17-19Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies 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) that can perform a specified operation and can be configured or arranged in some way. In an example, a circuit can be arranged as a component in a specified manner (e.g., internally or relative to an external entity, such as other circuits). In an example, all or part of one or more computer systems (e.g., independent, client, or server computer systems) or one or more hardware processors can be configured by firmware or software (e.g., instructions, application parts, or applications) to operate to perform a specified operation. In an example, the software may reside on a machine-readable medium. In an example, the software causes the hardware to perform the specified operation of the component when executed by the underlying hardware of the component.
[0123] Thus, the term "component" is understood to encompass a tangible entity that is physically constructed, specifically configured (e.g., hardwired), or temporarily (e.g., temporarily) configured (e.g., programmed) to operate in a specified manner or to perform part or all of any of the operations described herein. Considering an example in which a component is temporarily configured, each component need not be instantiated at any one time. For example, where a component includes a general-purpose hardware processor configured using software, the general-purpose hardware processor can be configured as corresponding different components at different times. The software can configure the hardware processor accordingly, for example, to constitute a particular module at one time and to constitute different components at different times.
[0124] The 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. The machine 2400 may include a main memory 2404 and a static memory 2406, some or all of which may communicate with each other via an interconnect (e.g., a bus) 2408. An example of the main memory 2404 may include a synchronous dynamic random access memory (SDRAM), such as a double data rate memory, such as DDR4 or DDR5. The interconnect 2408 may be one or more different types of interconnects, such that one or more components may be connected using a first type of interconnect, and one or more components may be connected using a second type of interconnect. Example interconnects may include a memory bus, a peripheral component interconnect (PCI), a peripheral component interconnect express (PCIe) bus, a universal serial bus (USB), and the like.
[0125] The 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 an example, the display unit 2410, the input device 2412, and the UI navigation device 2414 may be a touch screen display. The machine 2400 may additionally include a storage device (e.g., a drive unit) 2416, a signal generating 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. The 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., printers, card readers, etc.).
[0126] The storage device 2416 may include a machine-readable medium 2422 on which is stored 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 functionality described herein. The instructions 2424 may also reside, completely or at least partially, within the main memory 2404, within the static memory 2406, or within the hardware processor 2402 during execution by the machine 2400. In an example, one or any combination of the hardware processor 2402, the main memory 2404, the static memory 2406, or the storage device 2416 may constitute a machine-readable medium.
[0127] Although the machine-readable medium 2422 is illustrated as a single medium, the term “machine-readable medium” may include a single medium or multiple media (eg, 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" may include any medium capable of storing, encoding, or carrying instructions for execution by the machine 2400 and causing the machine 2400 to perform any one or more of the techniques of the present disclosure, or any medium capable of storing, encoding, or carrying data structures used by or associated with such instructions. Non-limiting machine-readable medium examples may include solid-state memory and optical and magnetic media. Specific examples of machine-readable media may 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; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; random access memory (RAM); solid-state drives (SSD); and CD-ROM and DVD-ROM disks. In some examples, the machine-readable medium may include non-transitory machine-readable media. In some examples, the machine-readable medium may include machine-readable media that is not a temporary propagation signal.
[0129] Instructions 2424 may also be sent or received over a communication network 2426 via the network interface device 2420 using a transmission medium. The machine 2400 may communicate with a wired or wireless network using any of a variety of transmission protocols (e.g., frame relay, Internet Protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc.). Example communication networks may include a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), a mobile phone network (e.g., a cellular network), a plain old telephone (POTS) network, and a wireless data network, such as the Institute of Electrical and Electronics Engineers (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, a peer-to-peer (P2P) network, etc. In an 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 to connect to the communication network 2426. In an example, the network interface device 2420 may include multiple antennas to use at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) technology for wireless communication. In some examples, the network interface device 2420 may use multi-user MIMO technology for wireless communication.
[0130] Additional 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 a command from a sender through a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of a final recipient, and an address of the sidebar recipient; in response to receiving the command, causing the sidebar thread to be forked from the first communication thread through the communication network; A notification of a communication 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; approval or modification of the first message is received from the sidebar recipient in the sidebar thread through the communication network; in response to receiving the approval or modification of the first message, automatically: 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 to the first message; and publishing the communication message from the sender's address to the final recipient in the first communication thread.
[0132] In Example 2, the subject matter of Example 1 includes, wherein the sidebar thread includes multiple sidebar communications between sidebar thread participants in the sidebar thread before receiving the approval or the modification of the first message, and the multiple sidebar communications include multiple sidebar thread message contents that are not the first message or modifications to the first message.
[0133] In Example 3, the subject matter of Example 2 includes, wherein creating the communication message includes excluding the plurality of sidebar thread message content.
[0134] In Example 4, the subject matter of Examples 1-3 includes, wherein the notification of the sidebar thread includes a message history of a 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 in addition to publishing the communication message from the sender's address in the first communication thread to the final recipient, also publishing the communication message to the second communication thread.
[0135] In Example 5, the subject matter of Examples 1-4 includes, wherein publishing the communication message from the sender's address in the first communication thread to the ultimate recipient comprises replying to a message in the first communication thread.
[0136] In Example 6, the subject matter of Example 5 includes, wherein the message in the first communication thread is a message that the sidebar thread is forked.
[0137] In Example 7, the subject matter of Examples 5-6 includes, wherein the message in the first communication thread is a message in the first communication thread that is posted to the first communication thread after the sidebar thread is forked from the first communication thread.
[0138] In Example 8, the subject matter of Examples 1-7 includes, wherein 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 matter of Examples 1-8 includes, wherein both the first communication thread and the sidebar thread are one of: an electronic mail (email) communication thread, a chat thread, a message board thread, a text message thread, or a thread from a unified communication application.
[0140] In Example 10, the subject matter of Examples 1-9 includes, wherein receiving the command comprises receiving an email, and wherein publishing the communication message comprises sending an email.
[0141] In Example 11, the subject matter of Examples 1-10 includes, wherein the ultimate recipient is a participant of the first communication thread, and wherein publishing the communication message from the address of the sender in the first communication thread to the ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0142] In Example 12, the subject matter of Examples 1-11 includes: providing a graphical user interface (GUI) to the sender, the GUI displaying messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an indication of a selection of the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing a second GUI to the sender, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the ultimate recipient, the first message, and a create control for creating the sidebar thread; and wherein receiving the command is in response to selection of the create 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; a memory, the memory storing instructions, the instructions when executed by the processor causing the computing device to perform operations, the operations comprising: receiving a command from a sender via a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of a final recipient, and an address of the sidebar recipient; in response to receiving the command, The command causes a notification of the sidebar thread to be sent to the address of the sidebar recipient through 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; receiving approval or modification of the first message from the sidebar recipient in the sidebar thread through the communication network; in response to receiving the approval or modification of the first message, automatically: 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 to the first message; and publishing the communication message from the sender's address to the final recipient in the first communication thread.
[0144] In Example 14, the subject matter of Example 13 includes, wherein the sidebar thread includes multiple sidebar communications between sidebar thread participants in the sidebar thread before receiving the approval or the modification of the first message, the multiple sidebar communications including multiple sidebar thread message contents that are not the first message or modifications to the first message.
[0145] In Example 15, the subject matter of Example 14 includes, wherein the operation of creating the communication message includes excluding the plurality of sidebar thread message contents.
[0146] In Example 16, the subject matter of Examples 13-15 includes, wherein the notification of the sidebar thread includes a message history of a second communication thread, and wherein the operation further includes: identifying the second communication thread, which is different from the first communication thread and the sidebar thread; and in addition to publishing the communication message from the sender's address in the first communication thread to the final recipient, also publishing the communication message to the second communication thread.
[0147] In Example 17, the subject matter of Examples 13-16 includes, wherein publishing the communication message from the sender's address in the first communication thread to the ultimate recipient comprises replying to a message in the first communication thread.
[0148] In Example 18, the subject matter of Example 17 includes, wherein the message in the first communication thread is a message from which the sidebar thread was forked.
[0149] In Example 19, the subject matter of Examples 17-18 includes, wherein the message in the first communication thread is a message in the first communication thread that was posted to the first communication thread after the sidebar thread was forked from the first communication thread.
[0150] In Example 20, the subject matter of Examples 13-19 includes, wherein 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 matter of Examples 13-20 includes, wherein both the first communication thread and the sidebar thread are one of: an electronic mail (email) communication thread, a chat thread, a message board thread, a text message thread, or a thread from a unified communication application.
[0152] In Example 22, the subject matter 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 matter of Examples 13-22 includes, wherein the ultimate recipient is a participant of 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 ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0154] In Example 24, the subject matter of Examples 13-23 includes: providing a graphical user interface (GUI) to the sender, the GUI displaying messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an indication of a selection of the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing a second GUI to the sender, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the ultimate recipient, the first message, and a create control for creating the sidebar thread; and wherein the operation of receiving the command is in response to a selection of the create 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, the operations comprising: receiving a command from a sender via a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of a final recipient, and an address of the sidebar recipient; in response to receiving the command, causing the communication thread to be forked from the first communication thread. The network sends a notification of 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 through the communication network; in response to receiving the approval or modification of the first message, automatically: creates 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 to 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 matter of Example 25 includes, wherein the sidebar thread includes multiple sidebar communications between sidebar thread participants in the sidebar thread before receiving the approval or the modification of the first message, the multiple sidebar communications including multiple sidebar thread message contents that are not the first message or modifications to the first message.
[0157] In Example 27, the subject matter of Example 26 includes, wherein the operation of creating the communication message includes excluding the plurality of sidebar thread message contents.
[0158] In Example 28, the subject matter of Examples 25-27 includes, wherein the notification of the sidebar thread includes a message history of a second communication thread, and wherein 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.
[0159] In Example 29, the subject matter of Examples 25-28 includes, wherein publishing the communication message from the sender's address in the first communication thread to the ultimate recipient comprises replying to a message in the first communication thread.
[0160] In Example 30, the subject matter of Example 29 includes, wherein the message in the first communication thread is a message from which the sidebar thread was forked.
[0161] In Example 31, the subject matter of Examples 29-30 includes, wherein the message in the first communication thread is a message in the first communication thread posted to the first communication thread after the sidebar thread is forked from the first communication thread.
[0162] In Example 32, the subject matter of Examples 25-31 includes, wherein 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 matter of Examples 25-32 includes, wherein both the first communication thread and the sidebar thread are one of: an electronic mail (email) communication thread, a chat thread, a message board thread, a text message thread, or a thread from a unified communication 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 ultimate recipient is a participant of 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 ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0166] In Example 36, the subject matter of Examples 25-35 includes: providing a graphical user interface (GUI) to the sender, the GUI displaying messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an indication of a selection of the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing a second GUI to the sender, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the ultimate recipient, the first message, and a create control for creating the sidebar thread; and wherein the operation of receiving the command is in response to a selection of the create 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 a command from a sender via a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of a final recipient, and an address of the sidebar recipient; and a unit for sending a notification of the sidebar thread to the sidebar recipient via the communication network in response to receiving the command. a unit for receiving, via the communication network, an approval or modification of the first message from the sidebar recipient in the sidebar thread; a unit for automatically performing the following operations in response to receiving the approval or the 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 to 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 matter of Example 37 includes, wherein the sidebar thread includes a plurality of sidebar communications between sidebar thread participants in the sidebar thread before receiving the approval or the modification of the first message, the plurality of sidebar communications including a plurality of sidebar thread message contents that are not the first message or modifications to the first message.
[0169] In Example 39, the subject matter of Example 38 includes, wherein the means for automatically creating the communication message includes means for excluding the plurality of sidebar thread message contents.
[0170] In Example 40, the subject matter of Examples 37-39 includes, wherein the notification of the sidebar thread includes a message history of a second communication thread, and wherein the device further includes: a unit for identifying the second communication thread, which is 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 matter of Examples 37-40 includes, wherein publishing the communication message from the sender's address in the first communication thread to the ultimate recipient includes means for replying to a message in the first communication thread.
[0172] In Example 42, the subject matter of Example 41 includes, wherein the message in the first communication thread is a message from which the sidebar thread was forked.
[0173] In Example 43, the subject matter of Examples 41-42 includes, wherein the message in the first communication thread is a message in the first communication thread posted to the first communication thread after the sidebar thread is forked from the first communication thread.
[0174] In Example 44, the subject matter of Examples 37-43 includes, wherein 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 matter of Examples 37-44 includes, wherein both the first communication thread and the sidebar thread are one of: an electronic mail (email) communication thread, a chat thread, a message board thread, a text message thread, or a thread from a unified communication application.
[0176] In Example 46, the subject matter of Examples 37-45 includes, wherein the means for receiving the command comprises means for receiving an email, and wherein publishing the communication message comprises sending an email.
[0177] In Example 47, the subject matter of Examples 37-46 includes, wherein the ultimate recipient is a participant of the first communication thread, and wherein publishing the communication message from the address of the sender in the first communication thread to the ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication 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 messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; a unit for receiving an indication of a selection of the selectable option to create the sidebar thread; a unit for providing a second GUI to the sender in response to the selection of the selectable option, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the ultimate recipient, the first message, and a create control for creating the sidebar thread; and wherein receiving the command is in response to a selection of the create 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 a command from a sender via a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of an ultimate recipient, a sidebar thread message, and an address of the sidebar recipient; in response to receiving the command, causing a notification of the sidebar thread to be sent via the communication network to the recipient. 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; receiving approval or modification of the first message from the sidebar recipient in the sidebar thread through the communication network; in response to receiving the approval or modification of the first message, automatically: 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 to 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 matter of Example 49 includes identifying the first message or the modification to the first message using a natural language processing algorithm of communications from the sidebar thread.
[0181] In Example 51, the subject matter of Examples 49-50 includes, after causing the notification of the sidebar thread to be sent to the address of the sidebar recipient via the communication network and before receiving the approval, receiving a command to post the message to the sidebar thread; and in response to receiving the command to post the message to the sidebar thread, notifying participants of the sidebar thread of the message.
[0182] In Example 52, the subject matter of Examples 49-51 includes identifying the first message or the modification to the first message using a data structure storing messages of the sidebar thread.
[0183] In Example 53, the subject matter of Examples 49-52 includes, wherein 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 matter of Examples 49-53 includes, wherein the first communication thread is an electronic mail (email) communication thread.
[0185] In Example 55, the subject matter of Examples 49-54 includes, wherein receiving the command comprises receiving an email, and wherein publishing the communication message comprises sending an email.
[0186] In Example 56, the subject matter of Examples 49-55 includes, wherein the sidebar thread is posted as a child thread of the second thread.
[0187] In Example 57, the subject matter of Examples 49-56 includes, wherein creating the communication message comprises excluding all messages other than the first message from the sidebar thread.
[0188] In Example 58, the subject matter of Examples 49-57 includes: providing a graphical user interface (GUI) to the sender, the GUI displaying messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an indication of a selection of the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing a second GUI to the sender, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the ultimate recipient, the first message, and a create control for creating the sidebar thread; and wherein receiving the command is in response to selection of the create control in the second GUI.
[0189] In Example 59, the subject matter of Examples 49-58 includes, wherein the ultimate recipient is a participant of the first communication thread, and wherein: publishing the communication message from the address of the sender in the first communication thread to the ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: transmitting the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0190] Example 60 is a computing device that provides a sidebar thread for communication, the computing device comprising: a processor; a memory, the memory storing instructions, the instructions when executed by the processor causing the computing device to perform operations, the operations comprising: receiving a command from a sender via a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of a final recipient, a sidebar thread message, and an address of the sidebar recipient; in response to receiving the command, causing Sending a notification of the sidebar thread 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 and 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 addressed from the sender's address to the address of the final recipient by including the approved first message or the modification to 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.
[0191] In Example 61, the subject matter of Example 60 includes, wherein the operation further includes: using a natural language processing algorithm to identify the first message or a modification to the first message from communications in the sidebar thread.
[0192] In Example 62, the subject matter of Examples 60-61 includes, wherein the operation further includes: after causing the notification of the sidebar thread to be sent to the address of the sidebar recipient via the communication network and before receiving the approval, receiving a command to post a message to the sidebar thread; and in response to receiving the command to post the message to the sidebar thread, notifying participants of the sidebar thread of the message.
[0193] In Example 63, the subject matter of Examples 60-62 includes, wherein the operations further include: using a data structure storing messages of the sidebar thread to identify the first message or a modification to the first message.
[0194] In Example 64, the subject matter of Examples 60-63 includes, wherein 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 matter of Examples 60-64 includes, wherein the first communication thread is an electronic mail (email) communication thread.
[0196] In Example 66, the subject matter of Examples 60-65 includes, wherein receiving the command comprises receiving an email, and wherein publishing the communication message comprises sending an email.
[0197] In Example 67, the subject matter of Examples 60-66 includes, wherein the sidebar thread is posted as a child thread of the second thread.
[0198] In Example 68, the subject matter of Examples 60-67 includes, wherein the operation of creating the communication message comprises 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 a graphical user interface (GUI) to the sender, the GUI displaying messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an indication of a selection of the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing a second GUI to the sender, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the ultimate recipient, the first message, and a create control for creating the sidebar thread; and wherein receiving the command is in response to selection of the create control in the second GUI.
[0200] In Example 70, the subject matter of Examples 60-69 includes, wherein the ultimate recipient is a participant of 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 ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0201] Example 71 is a machine-readable medium storing instructions, the instructions providing a sidebar thread for communication, the instructions when executed by a machine causing the machine to perform operations, the operations comprising: receiving a command from a sender via a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of an ultimate recipient, a sidebar thread message, and an address of the sidebar recipient; in response to receiving the command, causing the sidebar thread to be forked from the first communication thread via the communication network; A notification of 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 through the communication network; in response to receiving the approval or modification of the first message, automatically: 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 to 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.
[0202] In Example 72, the subject matter of Example 71 includes, wherein the operation further includes: using a natural language processing algorithm to identify the first message or the modification to 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: after causing the notification of the sidebar thread to be sent to the address of the sidebar recipient via the communication network and before receiving the approval, receiving a command to post a message to the sidebar thread; and in response to receiving the command to post the message to the sidebar thread, notifying the participants of the sidebar thread of the message.
[0204] In Example 74, the subject matter of Examples 71-73 includes, wherein the operation further comprises: using a data structure storing messages of the sidebar thread to represent the first message or a modification to the first message.
[0205] In Example 75, the subject matter of Examples 71-74 includes, wherein 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 matter of Examples 71-75 includes, wherein the first communication thread is an electronic mail (email) communication thread.
[0207] In Example 77, the subject matter of Examples 71-76 includes, wherein receiving the command comprises receiving an email, and wherein publishing the communication message comprises sending an email.
[0208] In Example 78, the subject matter of Examples 71-77 includes, wherein the sidebar thread is posted as a child thread of the second thread.
[0209] In Example 79, the subject matter of Examples 71-78 includes, wherein 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 a graphical user interface (GUI) to the sender, the GUI displaying messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an indication of a selection of the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing a second GUI to the sender, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the ultimate recipient, the first message, and a create control for creating the sidebar thread; and wherein receiving the command is in response to selection of the create control in the second GUI.
[0211] In Example 81, the subject matter of Examples 71-80 includes, wherein the ultimate recipient is a participant of 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 ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0212] Example 82 is a device for providing a sidebar thread for communication, the device comprising: a unit for receiving a command from a sender over a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of an ultimate recipient, a sidebar thread message, and an address of the sidebar recipient; a unit for, in response to receiving the command, causing a notification of the sidebar thread to be sent over the communication network to the address of the sidebar recipient, 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 and the sidebar thread message; a unit for receiving approval or modification of the first message from the sidebar recipient in the sidebar thread through the communication network; a unit for automatically performing the following operations 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 to 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 matter of Example 82 includes means for identifying the first message or the modification to the first message using a natural language processing algorithm of communications from the sidebar thread.
[0214] In Example 84, the subject matter of Examples 82-83 includes: a unit for receiving a command to post a message to the sidebar thread after causing the notification of the sidebar thread to be sent to the address of the sidebar recipient via the communication network and before receiving the approval; and a unit for notifying the participants of the sidebar thread of the message in response to receiving the command to post the message to the sidebar thread.
[0215] In Example 85, the subject matter of Examples 82-84 includes means for identifying the first message or the modification to the first message using a data structure storing messages of the sidebar thread.
[0216] In Example 86, the subject matter of Examples 82-85 includes, wherein 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 matter of Examples 82-86 includes, wherein the first communication thread is an electronic mail (email) communication thread.
[0218] In Example 88, the subject matter of Examples 82-87 includes, wherein the means for receiving the command comprises means for receiving an email, and wherein publishing the communication message comprises sending an email.
[0219] In Example 89, the subject matter of Examples 82-88 includes, wherein the sidebar thread is posted as a child thread of the second thread.
[0220] In Example 90, the subject matter of Examples 82-89 includes, wherein the means for creating the communication message comprises: 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 messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; a unit for receiving an indication of a selection of the selectable option to create the sidebar thread; a unit for providing a second GUI to the sender in response to the selection of the selectable option, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the ultimate recipient, the first message, and a create control for creating the sidebar thread; and wherein receiving the command is in response to a selection of the create control in the second GUI.
[0222] In Example 92, the subject matter of Examples 82-91 includes, wherein the ultimate recipient is a participant of 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 ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication 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 a command from a sender through a communication network for creating a sidebar thread forked from a specified message of a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of an ultimate recipient, and an address of the sidebar recipient; in response to receiving the command: causing a notification of the sidebar thread to be sent through the communication network to the address of the sidebar recipient, the notification comprising 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; using the determining an identifier of the first communication thread by using a thread identifier field in a data structure of a specified message; searching a 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 having a message index that matches the reply location; receiving approval or modification of the first message from the sidebar recipient in the sidebar thread through the communication network; in response to receiving the approval or modification of the first message, automatically: creating a communication message addressed from the sender's address to the address of the ultimate recipient by including the approved first message or the modification to the first message; and publishing the communication message from the sender's address in the first communication thread to the ultimate recipient as a reply to the message corresponding to the found message data structure, the message being addressed to the ultimate recipient and including at least a portion of the message body field of the message data structure.
[0224] In Example 94, the subject matter of Example 93 includes, wherein receiving the indication of the reply location in the first communication thread for posting the reply includes: identifying a configuration option; and determining the reply location based on the configuration option and a message of the first communication thread.
[0225] In Example 95, the subject matter of Example 94 includes, wherein the configuration option is set to a value indicating that the reply location is a last message in a thread, and wherein the reply location 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 a reply location in the first communication thread for posting a reply comprises receiving a selection of a reply location in the first communication thread from a sidebar thread participant.
[0227] In Example 97, the subject matter of Example 96 includes, wherein the indication is part of the command.
[0228] In Example 98, the subject matter of Examples 96-97 includes, wherein the sidebar thread participant is the sender.
[0229] In Example 99, the subject matter of Examples 93-98 includes, wherein the sidebar thread includes a plurality of communications prior to the approval or the 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 multiple 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 multiple messages in the first communication thread from the GUI.
[0231] In Example 101, the subject matter of Examples 93-100 includes, wherein the ultimate recipient is a participant of the first communication thread, and wherein publishing the communication message from the address of the sender in the first communication thread to the ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0232] Example 102 is a computing device for providing a sidebar thread for communication, the computing device comprising: a processor; a memory, the memory storing instructions, the instructions when executed by the processor causing the computing device to perform operations, the operations comprising: receiving a command from a sender via a communication network for creating a sidebar thread forked from a specified message of a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of an ultimate recipient, and an address of the sidebar recipient; 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 recipient, the notification comprising the first message and a portion of the first communication thread or a link to a portion of the first communication thread; receiving a response to a message in the first communication thread for posting a reply an indication of a reply location; determining an identifier of the first communication thread using a thread identifier field in a data structure of the specified message of the first communication thread; searching a 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 having a message index that matches the reply location; receiving approval or modification of the first message from the sidebar recipient in the sidebar thread through the communication network; in response to receiving the approval or modification of the first message, automatically: creating a communication message addressed from the sender's address to the address of the ultimate recipient by including the approved first message or the modification to the first message; and publishing the communication message from the sender's address in the first communication thread to the ultimate recipient as a reply to the message corresponding to the found message data structure, the message being addressed to the ultimate recipient and including at least a portion of the message body field of the message data structure.
[0233] In Example 103, the subject matter of Example 102 includes, wherein the operation of receiving the indication of the reply location in the first communication thread for posting the reply includes: identifying a configuration option; and determining the reply location based on the configuration option and a message of the first communication thread.
[0234] In Example 104, the subject matter of Example 103 includes, wherein the configuration option is set to a value indicating that the reply location is a last message in a thread, and wherein the operation includes determining the reply location based on the last message in the first communication thread.
[0235] In Example 105, the subject matter of Examples 102-104 includes, wherein the operation of receiving the indication of the reply location in the first communication thread for posting a reply includes: receiving a selection of the reply location in the first communication thread from a sidebar thread participant.
[0236] In Example 106, the subject matter of Example 105 includes, wherein the indication is part of the command.
[0237] In Example 107, the subject matter of Examples 105-106 includes, wherein the sidebar thread participant is the sender.
[0238] In Example 108, the subject matter of Examples 102-107 includes, wherein the sidebar thread includes a plurality of communications prior to the approval or the 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 multiple 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 multiple messages in the first communication thread from the GUI.
[0240] In Example 110, the subject matter of Examples 102-109 includes, wherein the ultimate recipient is a participant of 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 ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0241] Example 111 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, the operations comprising: receiving a command from a sender via a communication network for creating a sidebar thread forked from a specified message of a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of an ultimate recipient, and an address of the sidebar recipient; 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 recipient, the notification comprising 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; using the first communication thread to post a reply; determining an identifier of the first communication thread by using a thread identifier field in a data structure of the specified message of the thread; searching a communication server data storage to find a message data structure having a thread identifier field, the thread identifier field matching the identifier of the first communication thread and having a message index matching the reply location; receiving approval or modification of the first message from the sidebar recipient in the sidebar thread through the communication network; in response to receiving the approval or modification of the first message, automatically: creating a communication message addressed from the sender's address to the address of the ultimate recipient by including the approved first message or the modification to the first message; and publishing the communication message from the sender's address in the first communication thread to the ultimate recipient as a reply to the message corresponding to the found message data structure, the message being addressed to the ultimate recipient and including at least a portion of the message body field of the message data structure.
[0242] In Example 112, the subject matter of Example 111 includes, wherein the operation of receiving the indication of the reply location in the first communication thread for posting the reply includes: identifying a configuration option; and determining the reply location based on the configuration option and the message of the first communication thread.
[0243] In Example 113, the subject matter of Example 112 includes, wherein the configuration option is set to a value indicating that the reply location is a last message in a thread, and wherein the operation includes determining the reply location based on the last message in the first communication thread.
[0244] In Example 114, the subject matter of Examples 111-113 includes, wherein the operation of receiving the indication of the reply location in the first communication thread for posting a reply includes: receiving a selection of the reply location in the first communication thread from a sidebar thread participant.
[0245] In Example 115, the subject matter of Example 114 includes, wherein the indication is part of the command.
[0246] In Example 116, the subject matter of Examples 114-115 includes, wherein the sidebar thread participant is the sender.
[0247] In Example 117, the subject matter of Examples 111-116 includes, wherein the sidebar thread includes a plurality of communications prior to the approval or the 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 multiple 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 multiple messages in the first communication thread from the GUI.
[0249] In Example 119, the subject matter of Examples 111-118 includes, wherein the ultimate recipient is a participant of 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 ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0250] Example 120 is a device for providing a sidebar thread for communication, the device comprising: a unit for receiving a command from a sender via a communication network for creating a sidebar thread forked from a specified message of a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of an ultimate recipient, and an address of the sidebar recipient; in response to receiving the command: a unit for causing a notification of the sidebar thread to be sent on the communication network to the address of the sidebar recipient, the notification comprising the first message and a portion of the first communication thread or a link to a portion of the first communication thread; a unit for receiving an indication of a reply location in the first communication thread for posting a reply; a unit for using a data structure of the specified message of the first communication thread a thread identifier field of the first communication thread; a unit for searching 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 having a message index that matches the reply location; a unit for receiving an approval or modification of the first message from the sidebar recipient in the sidebar thread on the communication network; a unit for automatically performing the following operations 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 ultimate recipient by including the approved first message or the modification to the first message; and publishing the communication message from the sender's address in the first communication thread to the ultimate recipient as a reply to the message corresponding to the found message data structure, the message being addressed to the ultimate recipient and including at least a portion of the message body field of the message data structure.
[0251] In Example 121, the subject matter of Example 120 includes, wherein the unit for receiving the indication of the reply location in the first communication thread for posting the reply includes: a unit for identifying a configuration option and determining the reply location based on the configuration option and a message of the first communication thread.
[0252] In Example 122, the subject matter of Example 121 includes, wherein the configuration option is set to a value indicating that the reply location is a last message in a thread, and wherein the reply location 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 receiving an indication of a reply location in the first communication thread for posting a reply comprises: means for receiving a selection of a reply location in the first communication thread from a sidebar thread participant.
[0254] In Example 124, the subject matter of Example 123 includes, wherein the indication is part of the command.
[0255] In Example 125, the subject matter of Examples 123-124 includes, wherein the sidebar thread participant is the sender.
[0256] In Example 126, the subject matter of Examples 120-125 includes, wherein the sidebar thread includes a plurality of communications prior to the approval or the 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 multiple messages in the first communication thread to a graphical user interface (GUI); and wherein the unit for receiving an indication of a reply location in the first communication thread for posting a reply includes: a unit for receiving a selection of one of the multiple messages in the first communication thread from the GUI.
[0258] In Example 128, the subject matter of Examples 120-127 includes, wherein the ultimate recipient is a participant of 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 ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication 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 a command from a sender through a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of participants including the sender, the sidebar thread being a thread between a second plurality of participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of a final recipient, and an address of the sidebar recipient; 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 a third plurality of participants that pre-existed before receiving the command; publishes 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; receives 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: creates a communication message from the sender's address to the final recipient, the communication message including the first message or the modification to the first message; and publishes the communication message from the sender's address to the final recipient in the first communication thread.
[0260] In Example 130, the subject matter of Example 129 includes, wherein the first communication thread is provided on a first communication modality and the second communication thread is provided on a second communication modality.
[0261] In Example 131, the subject matter of Example 130 includes, wherein the first communication modality is one of email or instant messaging, and the second communication modality is the other of the email or the instant messaging.
[0262] In Example 132, the subject matter of Examples 129-131 includes, wherein both the first communication thread and the second communication thread are provided on the same communication modality.
[0263] In Example 133, the subject matter of Examples 129-132 includes, wherein selecting the second communication thread includes selecting the second communication thread also based on similarity of a subject matter of the first communication thread to either the second communication thread or the sidebar communication thread.
[0264] In Example 134, the subject matter of Examples 129-133 includes, wherein a participant of the sidebar thread is added to the second communication thread.
[0265] In Example 135, the subject matter of Examples 129-134 includes, wherein selecting the second communication thread based on the sender being a common participant of the sidebar thread and the second communication thread also includes: selecting the second communication thread based on a text similarity measure of messages in the second communication thread and the sidebar thread.
[0266] In Example 136, the subject matter of Example 135 includes: using a natural language processing algorithm to determine the similarity measure.
[0267] In Example 137, the subject matter of Example 136 includes: using text string matching to determine the similarity measure.
[0268] In Example 138, the subject matter of Examples 129-137 includes, wherein posting a message including the first message of the sidebar thread to the second communication thread and including the second plurality of participants as members of the second communication thread includes one of: sending an email with the message, posting the message in a chat room, posting the message in a forum, or posting 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 a graphical user interface (GUI) to the sender, the GUI displaying messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an indication of a selection of the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing a second GUI to the sender, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the ultimate recipient, the first message, and a create control for creating the sidebar thread; and wherein receiving the command is in response to selection of the create control in the second GUI.
[0270] In Example 140, the subject matter of Examples 129-139 includes: providing a GUI to the sender, wherein a GUI element provides the sender with a choice of posting the sidebar thread in the second communication thread or starting a new thread; and wherein posting the message to the second communication thread is in response to receiving a choice in the GUI to post the sidebar thread in the second communication thread.
[0271] In Example 141, the subject matter of Examples 129-140 includes, wherein the ultimate recipient is a participant of the first communication thread, and wherein publishing the communication message from the address of the sender in the first communication thread to the ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0272] Example 142 is a computing device for providing a sidebar thread for communication, the computing device comprising: a processor; a memory, the memory storing instructions, the instructions when executed by the processor causing the computing device to perform operations, the operations comprising: receiving a command from a sender via a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of participants including the sender, the sidebar thread being a thread between a second plurality of participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of a final recipient, and an address of the sidebar recipient; in response to receiving the command: based on the sender being a common participant of the sidebar thread and the second communication thread to select a second communication thread, which pre-exists before receiving the command and includes a third plurality of participants; to publish a message to the second communication thread, which includes the first message of the sidebar thread and includes the second plurality of participants who are members of the second communication thread; to 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: to create a communication message from the sender's address to the final recipient, the communication message including the first message or the modification to the first message; and to publish the communication message from the sender's address to the final recipient in the first communication thread.
[0273] In Example 143, the subject matter of Example 142 includes, wherein the first communication thread is provided on a first communication modality and the second communication thread is provided on a second communication modality.
[0274] In Example 144, the subject matter of Example 143 includes, wherein the first communication modality is one of email or instant messaging, and the second communication modality is the other of the email or the instant messaging.
[0275] In Example 145, the subject matter of Examples 142-144 includes, wherein both the first communication thread and the second communication thread are provided on the same communication modality.
[0276] In Example 146, the subject matter of Examples 142-145 includes, wherein the operation of selecting the second communication thread includes: selecting the second communication thread also based on similarities in subject matter of the first communication thread and the second communication thread or the sidebar thread.
[0277] In Example 147, the subject matter of Examples 142-146 includes, wherein a participant of the sidebar thread is added to the second communication thread.
[0278] In Example 148, the subject matter of Examples 142-147 includes, wherein the operation of selecting the second communication thread based on the sender being the common participant of the sidebar thread and the second communication thread also includes: selecting the second communication thread based on a text similarity measure of messages of the second communication thread and the sidebar thread.
[0279] In Example 149, the subject matter of Example 148 includes, wherein the operations further include determining the similarity measure using a natural language processing algorithm.
[0280] In Example 150, the subject matter of Example 149 includes, wherein the operations further include determining the similarity measure using text string matching.
[0281] In Example 151, the subject matter of Examples 142-150 includes, wherein the operation of posting the first message including the sidebar thread to the second communication thread and including the second plurality of participants as members of the second communication thread includes one of: sending an email with the message, posting the message in a chat room, posting the message in a forum, or posting the message as part of a group discussion in a unified communication service.
[0282] In Example 152, the subject matter of Examples 142-151 includes, wherein the operation further includes: providing a graphical user interface (GUI) to the sender, the GUI displaying the message of the first communication thread and a selectable option for creating the sidebar thread from the first communication thread; receiving an indication of a selection of the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing a second GUI to the sender, 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 create control for creating the sidebar thread; and wherein receiving the command is in response to a selection of the create control in the second GUI.
[0283] In Example 153, the subject matter of Examples 142-152 includes, wherein the operation further includes: providing a GUI to the sender, wherein a GUI element provides the sender with a choice to post the sidebar thread in the second communication thread or to start a new thread; and wherein posting the message to the second communication thread is in response to receiving a choice in the GUI to post the sidebar thread in the second communication thread.
[0284] In Example 154, the subject matter of Examples 142-153 includes, wherein the ultimate recipient is a participant of 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 ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0285] Example 155 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, the operations comprising: receiving a command from a sender over a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of participants including the sender, the sidebar thread being a thread between a second plurality of participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of an ultimate recipient, and an address of the sidebar recipient; 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 process comprises: a first communication thread which pre-exists before receiving the command and includes a third plurality of participants; a message which includes the first message of the sidebar thread and includes the second plurality of participants who are members of the second communication thread is published to the second communication thread; approval or modification of the first message in the second communication thread is received from the third plurality of participants through the communication network; in response to receiving the approval or modification of the first message, automatically: creating a communication message from the sender's address to the final recipient, the communication message including the first message or the modification to 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 matter of Example 155 includes, wherein the first communication thread is provided on a first communication modality and the second communication thread is provided on a second communication modality.
[0287] In Example 157, the subject matter of Example 156 includes, wherein the first communication modality is one of email or instant messaging, and the second communication modality is the other of the email or the instant messaging.
[0288] In Example 158, the subject matter of Examples 155-157 includes, wherein both the first communication thread and the second communication thread are provided on the same communication modality.
[0289] In Example 159, the subject matter of Examples 155-158 includes, wherein the operation of selecting the second communication thread includes selecting the second communication thread further based on similarities in subject matter of the first communication thread and the second communication thread or the sidebar thread.
[0290] In Example 160, the subject matter of Examples 155-159 includes, wherein a participant of the sidebar thread is added to the second communication thread.
[0291] In Example 161, the subject matter of Examples 155-160 includes, wherein the operation of selecting the second communication thread based on the sender being a common participant of the sidebar thread and the second communication thread also includes: selecting the second communication thread based on a text similarity measure of messages of the second communication thread and the sidebar thread.
[0292] In Example 162, the subject matter of Example 161 includes, wherein the operations further include determining the similarity measure using a natural language processing algorithm.
[0293] In Example 163, the subject matter of Example 162 includes, wherein the operations further include determining the similarity measure using text string matching.
[0294] In Example 164, the subject matter of Examples 155-163 includes, wherein the operation of posting a message including the first message of the sidebar thread and including the second plurality of participants who are members of the second communication thread to the second communication thread includes one of: sending an email with the message, posting the message in a chat room, posting the message in a forum, or posting 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 a graphical user interface (GUI) to the sender, the GUI displaying the message of the first communication thread and a selectable option for creating the sidebar thread from the first communication thread; receiving an indication of a selection of the selectable option for creating the sidebar thread; in response to the selection of the selectable option, providing a second GUI to the sender, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the ultimate recipient, the first message, and a create control for creating the sidebar thread; and wherein receiving the command is in response to selection of the create control in the second GUI.
[0296] In Example 166, the subject matter of Examples 155-165 includes, wherein the operation further includes: providing a GUI to the sender, wherein a GUI element provides the sender with a choice to post the sidebar thread in the second communication thread or to start a new thread; and wherein posting the message to the second communication thread is in response to receiving a choice in the GUI to post the sidebar thread in the second communication thread.
[0297] In Example 167, the subject matter of Examples 155-166 includes, wherein the ultimate recipient is a participant of 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 ultimate recipient includes: publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0298] Example 168 is a device for providing a sidebar thread for communication, the device comprising: a unit for receiving a command from a sender over a communication network for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of participants including the sender, the sidebar thread being a thread between a second plurality of participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of a final recipient, and an address of the sidebar recipient; in response to receiving the command: a 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 pre-existing before receiving the command And 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 who are 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 through the communication network; 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 to 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 matter of Example 168 includes, wherein the first communication thread is provided on a first communication modality and the second communication thread is provided on a second communication modality.
[0300] In Example 170, the subject matter of Example 169 includes, wherein the first communication modality is one of email or instant messaging, and the second communication modality is the other of the email or the instant messaging.
[0301] In Example 171, the subject matter of Examples 168-170 includes, wherein both the first communication thread and the second communication thread are provided on the same communication modality.
[0302] In Example 172, the subject matter of Examples 168-171 includes, wherein the means for selecting the second communication thread includes means for selecting the second communication thread also based on similarities in subject matter of the first communication thread and the second communication thread or the sidebar thread.
[0303] In Example 173, the subject matter 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 matter of Examples 168-173 includes, wherein the unit for selecting the second communication thread based on the sender being the common participant of the sidebar thread and the second communication thread also includes a unit for selecting the second communication thread based on a text similarity measure of messages of the second communication thread and the sidebar thread.
[0305] In Example 175, the subject matter of Example 174 includes: using a natural language processing algorithm to determine the similarity measure.
[0306] In Example 176, the subject matter of Example 175 includes: determining the similarity measure using text string matching.
[0307] In Example 177, the subject matter of Examples 168-176 includes, wherein the unit for posting the first message including 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: sending an email with the message, posting the message in a chat room, posting the message in a forum, or posting the message as part of a group discussion in a unified communication service.
[0308] In Example 178, the subject matter of Examples 168-177 includes: a unit for providing a graphical user interface (GUI) to the sender, the GUI displaying messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; a unit for receiving an indication of a selection of the selectable option to create the sidebar thread; a unit for providing a second GUI to the sender in response to the selection of the selectable option, the second GUI providing GUI controls for accepting a designation of the sidebar recipient, a designation of the ultimate recipient, the first message, and a create control for creating the sidebar thread; and wherein receiving the command is in response to selection of the create control in the second GUI.
[0309] In Example 179, the subject matter of Examples 168-178 includes: a unit for providing a GUI to the sender, wherein the GUI element provides the sender with a choice of posting the sidebar thread or starting a new thread in the second communication thread; and wherein posting the message to the second communication thread is in response to receiving a choice in the GUI to post the sidebar thread in the second communication thread.
[0310] In Example 180, the subject matter of Examples 168-179 includes, wherein the ultimate recipient is a participant of 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 ultimate recipient includes a unit for publishing the communication message to the ultimate recipient and all other participants of the first communication thread, the publishing including one of: sending the communication message by email, posting the communication to a chat session, posting the communication message to a message board, or posting the communication message to a group of a unified communication service.
[0311] Example 181 is at least one machine-readable medium comprising instructions that, when executed by a processing circuit, cause the processing circuit to perform operations of an implementation of any one of Examples 1-180.
[0312] Example 182 is an apparatus comprising means for implementing any of Examples 1-180.
[0313] Example 183 is a system implementing any of Examples 1-180.
[0314] Example 184 is a method of implementing any of Examples 1-180.
Claims
1. A method for providing a sidebar thread for communication, the method comprising: Using one or more processors of the communication server: receiving, from a sender via a communication network, a command for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of an ultimate recipient, a sidebar thread message, and an address of the sidebar recipient; In response to receiving the command, causing a notification of 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 and the sidebar thread message; receiving, over the communications network, an approval or modification of the first message from the sidebar recipient in the sidebar thread; In response to receiving the approval or the modification of the first message, automatically: creating a communication message addressed from the sender's address to the ultimate recipient's address by including the approved first message or the modification to the first message and excluding the sidebar thread message; as well as The communication message is published from the sender's address in the first communication thread to the ultimate recipient.
2. The method according to claim 1, further comprising: The first message or the modification to the first message is identified from communications in the sidebar thread using a natural language processing algorithm.
3. The method according to claim 1, further comprising: receiving a command to post a message to the sidebar thread after causing the notification of the sidebar thread to be sent over the communications network to the address of the sidebar recipient and before receiving the approval; as well as In response to receiving the command to post the message to the sidebar thread, participants of the sidebar thread are notified of the message.
4. The method according to claim 1, further comprising: The first message or the modification to the first message is identified using a data structure storing messages of the sidebar thread.
5. The method according to claim 1, wherein: The first communication thread is hosted by a first communication modality and the sidebar thread is hosted by a second communication modality.
6. The method according to claim 1, wherein: The first communication thread is an electronic mail (email) communication thread.
7. The method according to claim 1, wherein: Receiving the command includes receiving an email, and wherein publishing the communication message includes sending an email.
8. The method according to claim 1, wherein: The sidebar thread is published as a child thread of the second thread.
9. The method according to claim 1, wherein: Creating the communication message includes excluding all messages except the first message from the sidebar thread.
10. The method according to claim 1, further comprising: providing the sender with a graphical user interface (GUI) that displays messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an indication of a selection of the selectable option for creating the sidebar thread; In response to said selection of said selectable option, providing to said sender a second GUI, said second GUI providing GUI controls for accepting a designation of said sidebar recipients, a designation of said ultimate recipient, said first message, and a creation control for creating said sidebar thread; and Wherein receiving the command is in response to selection of the create control in the second GUI.
11. The method according to claim 1, wherein: The final recipient is a participant of 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 of the first communication thread, and the publishing includes one of the following: sending the communication message by email, 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 communication service.
12. A computing device 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 comprising: receiving, from a sender via a communication network, a command for creating a sidebar thread forked from a first communication thread, the first communication thread being between a first plurality of first communication thread participants including the sender, the sidebar thread being a thread between a second plurality of sidebar thread participants including the sender and a sidebar recipient, the command for creating the sidebar thread comprising a first message, an address of an ultimate recipient, a sidebar thread message, and an address of the sidebar recipient; In response to receiving the command, causing a notification of 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 and the sidebar thread message; receiving, over the communications network, an approval or modification of the first message from the sidebar recipient in the sidebar thread; In response to receiving the approval or the modification of the first message, automatically: creating a communication message addressed from the sender's address to the ultimate recipient's address by including the approved first message or the modification to the first message and excluding the sidebar thread message; and The communication message is published from the sender's address in the first communication thread to the ultimate recipient.
13. The computing device of claim 12, wherein: The operations also include: The first message or the modification to the first message is identified from communications in the sidebar thread using a natural language processing algorithm.
14. The computing device of claim 12, wherein: The operations also include: receiving a command to post a message to the sidebar thread after causing the notification of the sidebar thread to be sent over the communications network to the address of the sidebar recipient and before receiving the approval; and In response to receiving the command to post the message to the sidebar thread, the participants of the sidebar thread are notified of the message.
15. The computing device of claim 12, wherein: The operations also include: providing the sender with a graphical user interface (GUI) that displays messages of the first communication thread and selectable options for creating the sidebar thread from the first communication thread; receiving an indication of a selection of the selectable option for creating the sidebar thread; In response to said selection of said selectable option, providing to said sender a second GUI, said second GUI providing GUI controls for accepting a designation of said sidebar recipients, a designation of said ultimate recipient, said first message, and a creation control for creating said sidebar thread; and Wherein receiving the command is in response to selection of the create control in the second GUI.