The claimed subject matter relates generally to electronic communications and, more specifically, to techniques for the organization and display of emails so that the emails are easier to understand and follow.
Electronic mail, or “email,” is a vital part of current communications, both for personal and business interaction. It is advantageous to visualize current email application threads, i.e., series of related communications or email “chains,” to allow easier navigation and exploration. However, typical sequential email threads may become disconnected and difficult to visualize. For example, 1) Alex (A) emails Bill (B), Charlie (C), Diana (D) and so on; 2) C replies to A such that B and D also receive the email; 3) B replies to C's comments but in a response to A; 4) C replies to B's comments but in a response to A Obviously, the thread can become disconnected and, therefore difficult to visualize. In other words, email conversations, which are presented in a sequential format may not actually be sequential. In this manner, a conversation represented by an email chain can become con fusing and difficult to follow. In addition, details concerning particular emails and email threads may be hard to determine due to a lack of means for visualizing emails and threads.
Provided are techniques for the organization and display of email threads. Emails are represented by icons is a visual display. A condensed representation of a tree-structure visualization for email threads is provided. In other words, a tree structure representation of an email thread is provided in which each node represents a single party or subject in the thread and various elements associated with each node such as, but not limited to, colors, bars, arrows and icons represent information on emails between the parties in the thread. In this manner, a graph representing a thread does not continue to grow as more emails are sent back and forth among parties. Further, represented parties may be individuals or organized groups of individuals.
In addition, a user, by selecting a particular icon, can choose which message to which to respond. Users may “hover” on a particular icon to display additional details on the corresponding response. Also included are options that enable a user to consolidate emails and append one or more emails to another. There is also an option to generate a word cloud with respect to a particular thread. A word cloud is a visual representation of text such that the frequency and/or importance of specific words may be quickly ascertained.
Provided are techniques for presenting a visual representation of an email thread, comprising organizing a plurality of emails in an email system with respect to a plurality of parties; organizing the plurality of emails with respect to an email thread to produce thread information; correlating, the plurality of parties with thread information to produce a condensed tree structure to represent plurality of parties and the plurality of emails, wherein each node of a plurality of nodes of the condensed tree structure represents one corresponding party of the plurality of parties; and rendering the condensed tree structure on a computer display.
This summary is not intended as a comprehensive description of the claimed subject matter but, rather, is intended to provide a brief overview of some of the functionality associated therewith. Other systems, methods, functionality, features and advantages of the claimed subject matter will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description.
A better understanding of the claimed subject matter can be obtained when the following detailed description of the disclosed embodiments is considered in conjunction with the following figures, in which:
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational actions to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
As the Inventors herein have realized, typical tree-structure representations of email threads can become so large that the usefulness in representing the threads may be lost. In other words, currently available visualizations of email threads may grow larger and larger as more and more emails are sent back and forth among parties.
Turning now to the figures.
A computing system, or “CS_1,” 102 includes a central processing unit (CPU) 103, coupled to a monitor 104, a keyboard 105 and a pointing device, or “mouse,” 106, which together facilitate human interaction with CS_1102 and other elements of architecture 100. CPU 103 would comprise, among other things, one or more processors (not shown). Also included in CS_1102 and attached to CPU 103 is a computer-readable storage medium (CRSM) 107, which may either be incorporated into CS_1102 i.e. an internal device, or attached externally to CPU 1034 by means of various, commonly available connection devices such as but not limited to, a universal serial bus (USB) port (not shown). CRSM 107 is illustrated, storing an operating system (OS) 108 and a Mail Program (MP_1) 109, which is described in more detail below in conjunction with
CS_1102 is communicatively coupled to the Internet 110. Also coupled to Internet 110, and thereby able to communicate with CS_1102 and each other via network 110, are several other computing systems, i.e., a CS_2112, a CS_3122, a CS_4132, a CS_5142 and a CS_6152. In this example, CS_2112 is also illustrated with a CPU 113, a monitor 114, a keyboard 115, a mouse 116 and a CRSM 117. Like elements 104-106, monitor 114, keyboard 115 and mouse 116 enable human interaction with CS_2112. CRSM 117 is illustrated storing an OS 118 and mail program, or MP_2, 119, which is described in more detail below in conjunction with
Although not shown for the sake of simplicity, CS_3122, CS_4132, CS_5142 and CS_6152 would also typically include a CPU, monitor, keyboard, mouse and CRSM. CS_3122, CS_4132, CS_5142 and CS_6152 are illustrated storing logic associated with mail programs, i.e., a MP_3129, a MP_4139, a MP_5139 and a MP_6159, respectively, which are explained in more detail below in conjunction with
I/O module 172 handles any communication MP_1109 has with other components of system 100 and other MPs such as MPs 119, 129, 139, 149 and 159. It should be understood that typically mail is not transmitted directly between computing systems but is handled by mail servers (not shown) that route messages among multiple machines across the world. For the sake of simplicity, in the following figures and description, mail is illustrated and described as merely being transmitted from user to user and computing system to computing system.
Data module 174 is a data repository for stored emails and other data employed to implement the claimed subject matter. Although illustrated as stored on CRSM 107, much of the data stored in data module 174 could also be stored in conjunction with a mail server (not shown) on a remote device (not shown). Examples of the types of information stored in data module 174 include email storage 184, user data 186, thread data 188 and operating parameters 190. In this example, email storage 184 stores actual email messages that have been sent to or from a user associated with CS_1102. User data 186 stores information corresponding to other users that may have potentially had email either sent to or from MP_1119. Thread data 188 stores information on the connection and correlation among the email messages stored in email storage 184. Operating parameters 190 includes information on various user and administrative preferences that have been set. For example, a user or administrator may specify that a displayed email tree (see
Correlation module 176 parses incoming and outgoing emails to determine potential recipients and subjects to which a particular email may apply. Data analysis module 178 parses the messages stored in email storage 184 in accordance with user request for particular types of displays (see 200,
GUI 182 provides an interface for users to send, receive and display information on emails. GUI 182 also enables users of MP_1109 to interact with and to define the desired functionality of MP_1109 typically by the setting of variables in operating parameters 188. GUI component 182 is described in more detail below in conjunction with
Display 200 provides a graphical representation of a particular email thread that includes several emails that have been opened by the corresponding recipient as indicated by an opened envelope icon. Email 202 from Alan (on CS_1102) represents the beginning email in the thread. In this example, email 202 has been transmitted to and opened as email 204 by Bill (on CS_2112), email 206 by Chad (on CS_3122) and email 208 by Diana (on CS_4132). In addition, email 202 has been transmitted as email 210 to Eli (on CS_5142) but has not been opened and read as indicated by an unopened envelope icon. Email 204 has also been forwarded by Bill to Joe (on CS_6152) as email 212. In this manner, MP_1109 is able to provide a type of information that is not available to a user in current email programs.
Another feature illustrated by display 200 is the ability to position, or “hover,” a cursor 218 over a particular icon, in this case email 210, and display an Icon/Action Table 220 corresponding to the particular icon to provide addition information and actions that are not available in currently available email products. In this example, the additional information includes a “Date of Delivery,” which in this example is Aug. 22, 2014, 221 and action options including a “New Attachment” option 222 for attaching a new file, a “New member” option 223 for adding a new user to the thread, a “Consolidate emails” option 224 for grouping multiple email messages into a single message and a “Display Word Cloud” option 225 for the generation and display of a word cloud corresponding to selected emails (see 294,
A User Table 252 includes a legend to correlate displayed graphic elements to particular users within display 250. It should be understood that the patterns are only examples and that other representational schemes may be employed. For example, graphical elements may be color coded. A pattern_1253 identifies data associated with Alan, a pattern_2254 is associated with Bill, a pattern_3255 with Chad, a pattern_4256 with Diana and a pattern_5258 with user Eli.
A arrow 261 associated with email 204 indicates that Bill responded to Alan as represented by pattern_1253 within arrow 261. A bar 262 associated with email 206 indicates that Chad send a message relating to email 206 to Bill as represented by Pattern_2254 within bar 262. In a similar fashion, an arrow and two (2) bars 263 indicates that Diana replied to Alan and sent messages relating to email 208 to Chad and Eli. An arrow and a bar 264 indicate that Joe relied to Alan and sent related messages to Diana. A bar 265 indicates that Eli 210 sent a message to Alan 202. Bars 266 indicate that Alan 202 received emails from Bill 204 and Diana 208. The fact that there are no bars or arrows shown in conjunction with Diana 214 indicates that, in addition to being unread, Diana has not replied or otherwise responded to this particular email 214.
In this example, the length of bars and arrows 261-266 represent a number of emails, for example bars 266 may indicate that Alan 202 received two (2) emails from Bill 261 and three (3) emails from Diana 208. It should be noted that graphic indicators 263 and 265 are arranged in an alternative format, i.e., displayed around corresponding user 208 rather than under as in the other icons. Typically one format would be used in any particular display but that two (2) are shown in
Display 280 has three (3) optional tabs, i.e., a “What's New” tab 282, a “Inbox” tab 284 and an “Options” tab 286. In this example, Inbox tab 284 is displayed in display 280 as indicated by the fact that tab 284 is larger and on top of tab 282 and 286. Tab 284 provides a number of possible actions 288, including a “Delete,” or “Del,” a “Reply,” a “Forward,” a “Spam,” a “Move,” a “Print,” and a “More,” which would display additional actions. Actions 288 enable a user to manipulate email threads, introduced below, and should be familiar to those with skill in the relevant arts. A “View From” menu bar 290 enable users to select a particular organization, or “view,” of potential emails, including “All,” “Contacts” and “Connections.” The emails displayed below are organized by Contacts as indicated by a darkening of the selected view, “Contacts.” A title bar 292 names the corresponding columns of information within the displayed emails, including “From” and “Subject.” A Search box 293 enables to user to display only those emails that meet a user defined criteria, typically based upon keywords.
A From column 294 lists the corresponding users names, i.e., Alan, Bill, and so on. A checkbox immediately before each name enables a user to select a particular email thread for further processing. In this example, the first “Alan” thread, the “Bill” thread and the first “Diana” thread are selected. A number in parenthesis immediately following each name indicates the number of emails corresponding to each user. A Subject column 296 displays the subject header of the corresponding emails. For example, Alan has one (1) email with the subject header “Hi, All . . . ” and six (6) emails with the header “Before any changes . . . ”
A word cloud 298 corresponds to the email threads selected by means of the checkboxes immediately before each name in From column 294. A word, or “tag,” cloud is a visual representation of text data with attributes such as, but not limited to, position, size, font and color of any particular word within the cloud representing attributes such as, but not limited to, importance, relevance and frequency.
Display 300 displays bar graphs, each bar graph representing a particular analysis of selected emails (see 294,
Process 400 starts in a “Begin Configure Email Program (EP)” block 402 and proceeds immediately to a “Execute EP” block 404. During processing associated with block 404, logic associated with MP_1109 is initiated, or “launched,” typically deliberately by a user of CS_1102. Of course, MP_1109 may also be started as the result of a preconfigured startup procedure on CS_1102. During processing associated with an “Access Parameters” block 406, MP_1109 accesses data in operating parameters 190 (
Process 450 starts in a “Begin Operate Email Program (EP)” block 452 and proceeds immediately to an “Initiate EP” block 454 (see 400,
If, during processing associated with block 458, a determination is made that the event received during processing associated with block 456 was not a new email, control proceeds to a “Display Request?” block 462. During processing associated with block 462, a determination is made as to whether or not the event received during processing associated with block 456 is a request for a particular display. If so, the appropriate analysis is performed (see 178,
Once the display has been updated, or, during processing associated with block 462, a determination is made that the event received during processing associated with block 456 is not a display request, control returns to Wait for Event block 456 during which MP_1109 waits for the next event and processing continues as described above.
Finally, process 450 is halted by means of an asynchronous interrupt 468, which passes control to an “End Operate EP” block 469 in which process 450 is complete. Interrupt 468 is typically generated when the computing system, OS, browser, application, etc. of which process 450 is a part is itself halted. During normal operation, process 450 continuously loops through the blocks 454, 456, 458, 460, 462, 464 and 466, processing emails events as they occur.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Number | Name | Date | Kind |
---|---|---|---|
7356772 | Brownholtz et al. | Apr 2008 | B2 |
7506263 | Johnston et al. | Mar 2009 | B1 |
8200762 | Staats | Jun 2012 | B2 |
8510664 | Rueben et al. | Aug 2013 | B2 |
8700756 | Chidlovskii | Apr 2014 | B2 |
9245259 | Bovet | Jan 2016 | B2 |
20050004990 | Durazo | Jan 2005 | A1 |
20050138070 | Huberman | Jun 2005 | A1 |
20060080422 | Huberman | Apr 2006 | A1 |
20070282956 | Staats | Dec 2007 | A1 |
20080086551 | Moy | Apr 2008 | A1 |
20090282086 | Heimes | Nov 2009 | A1 |
20110087968 | Lakshmanan | Apr 2011 | A1 |
20120011448 | Tse | Jan 2012 | A1 |
20120290672 | Robinson | Nov 2012 | A1 |
20130135314 | Haggerty | May 2013 | A1 |
20130262590 | Patil et al. | Oct 2013 | A1 |
Number | Date | Country |
---|---|---|
2770761 | Aug 2014 | EP |
Entry |
---|
Immersion: A Platform for Visualization and Temporal Analysis of Email Data MIT 2014. |
Visualizing Email Content: Portraying Relationships from Conversational Histories, Viegas et al CHI 2006. |
Thread ARCS: An Email Thread Visualization Bernard Kerr Collaborative User Experience Group IBM Research 2003. |
Rohall et al., “Email Visualization to Aid Communications,” IBM Research, downloaded from <http://www.watson.ibm.com/cambridge/Technical_Reports/2001/remail-steve%20rohall.pdf> on Mar. 24, 2015. |
Number | Date | Country | |
---|---|---|---|
20160283069 A1 | Sep 2016 | US |