# Patent

## Title
System and method of supporting constructive discourse on computers and mobile devices

## Abstract

A system and method to allow a user to engage in a collaborative discourse embedded in messaging platforms such as email or instant messaging, and to visualize the structure of that discourse. The system provides the ability to create and modify tree-like structures, which can represent outlines or tables of contents employed in documents. These structures take the place of traditional documents in representing the work product of a knowledge worker. These structures are related to the discourse in that messages may refer to nodes of these structures, and hence be understood to be related. It is the interplay between the creation of a structured message-based discourse and the persistent outline-form knowledge structures that allows message-based correspondence, including the reading and writing of documents, to be performed with increased efficiency and at a higher level of integration.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. patent application Ser. No. 13/887,785, filed May 6, 2013, now U.S. Pat. No. 8,909,722; U.S. patent application Ser. No. 13/887,785 is a continuation of U.S. patent application Ser. No. 12/069,431, filed Feb. 8, 2008, now U.S. Pat. No. 8,438,229, which claims the benefit of and priority to U.S. Prov. Pat. Appl. 60/905,400, filed Mar. 7, 2007 entitled SYSTEM AND METHOD OF SUPPORTING CONSTRUCTIVE DISCOURSE ON COMPUTERS AND MOBILE DEVICES; all these applications are incorporated herein by reference in their entirety.


BACKGROUND OF THE INVENTION
The present invention relates generally to the use of personal computers (PCs) for message-based correspondence such as email and for reading and writing documents, and more specifically to a system and method of performing such message-based correspondence and reading and writing of documents with increased efficiency and at a higher level of integration.
The PC is typically used by most knowledge workers in the following ways: to read information in documents or on the web, to communicate by engaging in discourse using email or instant-messaging, and to author or edit knowledge in the form of documents or presentations. Most email programs allow users to sort messages contained in in-boxes by subject, causing messages about a given topic to appear together. An email system may also allow users to sort messages by addressee, allowing the history of interactions with a given addressee over time to be examined, and so forth. However, beyond these simple features, the user of an email system must generally read and comprehend many messages in order to form a picture of an unfolding discourse among a group of individuals on any given topic. Messages with apparently different subject headings may be related or unrelated in content, but this is not self-evident. Thus, while email in-boxes tend to be the default record of knowledge workers' interactions, decisions, and collaborations, the tools currently provided for managing them generally do a poor job of maintaining that record and making it easily understood and applied.
For this reason, an email conversation is often accompanied by the need to create a lasting representation of what was discussed in the form of a document, presentation, or other kind of persistent information. There is an interplay between email as the carrier of a conversation, and the evolution of documents related to that conversation. But, as with email, there is not much about a document that gives clues as to its meaning, beyond the content of the document itself. If a user wishes to understand what a document is about and how it relates to the email conversation surrounding it, the document, and perhaps the threads of email associated with it, usually must be read and comprehended.
Despite the speed, efficiency, searchability, and other benefits that the PC brings to the business of creating and managing files, folders, memoranda, and correspondence, little real support has heretofore been given to the management of the content and meaning of email and related documents. As a result, the office of today's knowledge worker is still much like the paper office of the 1930's.
SUMMARY OF THE INVENTION
In accordance with the present invention, a system and method is disclosed for conducting discourse over email and other messaging systems that maintains additional data and meta-data in order to provide the ability to create and modify tree or graph-like structures relating to the discourse. These structures can be used to represent taxonomies of a subject, and to categorize a given message or a string of messages. For example, messages may be broken down into the categories “Personal” and “Business”, the “Personal” category may be broken down into the sub-categories “Family” and “Friends”, and so on. Tree or graph-like structures can also be used to represent the structure of the subject matter of a conversation. For example, in a conversation about an upcoming meeting, the meeting itself may be broken down into the categories “Content”, “Attendees”, “Venue”, and “Activities”, and, in turn, these categories may be broken down into sub-categories to provide a finer level of detail.
By providing a rich structure representing a message-based discourse including persistent outline-form knowledge structures, the presently disclosed system and method can surpass the capabilities of traditional messaging systems such as email, and traditional knowledge-creation technology such as word-processing, to support knowledge workers with increased efficiency and at a higher level of integration.
Other features, functions, and aspects of the invention will be evident from the Detailed Description of the Invention that follows.



BRIEF DESCRIPTION OF THE DRAWINGS
The invention will be more fully understood with reference to the following Detailed Description of the Invention in conjunction with the drawings of which:
FIG. 1 is a schematic view of a system for conducting discourse over a messaging system such as email, in which messages are interpreted in the context of semantic information kept in local caches and keyed by ID tokens embedded in the messages, and in which, for collaborative scenarios, data is passed between local caches by embedding portions of such data in the host email, according to the present invention;
FIG. 2 is a representation of the steps involved in associating a message-based conversation with a topic tree within the system of FIG. 1;
FIG. 3 is an example of a topic tree data structure, as represented in a visual data editor included in the system of FIG. 1, showing the types of information expressible therein;
FIG. 4 is a flow diagram and illustration of a use of the system of FIG. 1 to transmit a message regarding a part of a shared topic tree, such that the shared topic tree becomes embedded in the host message as a data packet to be decoded by the recipient or recipients of the message; and
FIG. 5 is an illustration of commands and dialogs associated with the visual data editor of FIG. 1.



DESCRIPTION OF THE DISCLOSED SYSTEM
The disclosure of U.S. Provisional Patent Application No. 60/905,400 filed Mar. 7, 2007 entitled SYSTEM AND METHOD OF SUPPORTING CONSTRUCTIVE DISCOURSE ON COMPUTERS AND MOBILE DEVICES is incorporated herein by reference in its entirety.
FIG. 1 depicts an illustrative embodiment of a system for conducting discourse over messaging systems, showing the client software and its constituent elements, and its relationship to an existing messaging system, in accordance with the present invention. FIG. 1 depicts two users of an existing host messaging system 20, however, it is understood that the disclosed system supports an arbitrary number of users. The host messaging system 20 is an e-mail system in the presently disclosed embodiment, but it could also be an instant messaging system or any other suitable type of messaging system. In an alternative embodiment, a special-purpose messaging system could be constructed to act as the host messaging system 20. Also shown FIG. 1 is a host message 22, representing, for example, an e-mail message passing from user 1 to user 2. Users employ a messaging client 32 associated with the host messaging system 20 to create, send, receive, and examine messages. The disclosed system adds to, or associates with, the messaging client 32 a visual data editor 30 for the purpose of creating, editing, and visualizing contextual information for the organization of messages, and for representing structured information to be included in the content of messages. The disclosed system can embed two types of information in a host message 22. The first type is an ID token 24, which identifies the message as being associated with a particular context or aspect of the data in the user's local data cache 10. The second type is a data packet 26, containing a subset of the data in the local data cache 10. This subset of the data cache is transmitted in cases when the user wishes to share a part of his or her data with recipients of the message.
One usage of the presently disclosed system is to allow a user to organize his or her email conversations by topic, as illustrated in FIG. 2. Following the flow diagram of FIG. 2, the first step involves the user employing the visual data editor 30 to create data in the form of a hierarchical taxonomy of topics, referred to herein as a topic tree 28. This data is stored in a local data cache 10 (see FIG. 1) associated with each user. When a user wishes to send a message, he or she first selects a topic node 36 (see FIG. 2) within this data (see step (a) of the flow diagram of FIG. 2). When the message is sent, it is marked with an ID token 24 representative of that context or topic within the topic tree 28. In an illustrative embodiment, this token is a General Universal Identifier or GUID, and is appended to the body of the email message. The local data cache 10 (see FIG. 1) indexes each topic in the topic tree 28 (see FIG. 2) by the ID token 24, such that an ID token can be used to retrieve the associated context or topic in the local data cache 10. When the message is sent, it is added to the topic tree 28 as a comment node 34 (see step (b) of the flow diagram of FIG. 2) underneath the topic that the message was marked with. When a recipient of the message, who is not a user of the presently disclosed system, sends a reply, including the text of the original message, the ID token 24 is also included. Upon arrival, the disclosed system acts to retrieve the ID token 24 from the message to allow it to add a comment node 34 to the topic tree 28 in the appropriate context (see step (c) of the flow diagram of FIG. 2). Thus, this illustrative mode of operation allows the user to maintain a taxonomy of discussion topics for the host messaging system 20, and to have messages related to given topics be presented accordingly in the topic tree 28, as displayed in the visual data editor 30. In an illustrative embodiment, it is possible to view the text of a message associated with a comment node 34 by clicking or hovering a mouse or other pointing device over or near the comment node 34, as shown with reference to letter (d) in FIG. 2.
FIG. 3 depicts an illustrative embodiment of the topic tree 28 and its components. The graphical representation of FIG. 3 shows the hierarchical decomposition of a topic node 36 (“Projects”) into its children (“New Kitchen”), each being itself a topic node 36. A property node 40 (“Budget”, “Appliances”) serves to represent attributes of a topic independent of its decomposition. A property node 40 has one or more values, each represented by a value node 42 (for example, “Bosch K4 Dishwasher”). A shared subtree 38 is indicated by a special icon 39 at its apex, and is a subtree which the presently disclosed system treats differently from the rest of the topic tree 28. The shared subtree 38 is delineated by a dashed box in FIG. 3 for purposes of illustration.
Another usage of the presently disclosed system is depicted in FIG. 4. With reference to step (a) of the flow diagram of FIG. 4, user 1 creates a shared subtree 38 in the topic tree 28 stored in his or her local data cache 10 (see FIG. 1). Further, user 1 selects a node in that subtree 38 (for example, “Sub-Zero A-47 Fridge”; see FIG. 4), and sends a message to user 2. Because the selected node is in a shared subtree 38, the presently disclosed system embeds a data packet 26 representing the shared subtree 38 into the host message 22. Upon receipt by user 2, who is also a user of the disclosed system, the data packet 26 is decoded and inserted into an appropriate location in user 2's topic tree 28. User 2 can now edit and/or augment his or her copy of the shared subtree 38, and subsequently send it back to user 1, and so forth. In this way, FIG. 4 illustrates a process in which users may share and collaborate in the construction of the shared subtree 38.
FIG. 5 depicts illustrative commands and dialogs associated with the visual data editor 30 (see FIG. 1). Specifically, FIG. 5 depicts the context menu (see reference letter (a) in FIG. 5) of the visual data editor 30. In an illustrative embodiment, the context menu is opened by a right-mouse-click on a node selected in the topic tree 28. The effect of each item in the menu is as follows.
The copy context command 44 loads the clipboard with an automatically constructed sentence or sentences describing the context of the selected node. For example, for the selected node (“Shared Trees”), the presently disclosed system generates the sentence “Text describing the node in question!”
The copy note command 46 (see FIG. 5) copies the text annotation of the selected node to the clipboard (see also the discussion below relating to the edit note command 58). The copy image of tree command 48 (see FIG. 5) copies a bitmap rendering of the current topic tree 28 to the clipboard.
The add subtopic command 50, add property command 52, and add value command 54 (see FIG. 5) each create a new child node underneath the selected node. These commands are enabled and disabled according to the type of node selected. For example, a value node 42 (e.g., “Bosch K4 Dishwasher”; see FIG. 3) can only be the child of a property node 40 (e.g., “Appliances”; see FIG. 3).
The add to list command 56 (see FIG. 5) similarly adds a sibling node to the child node selected. The type of node added is of the same kind as the selected node. For example, a list of subtopics can be created by first issuing the add subtopic command 50, followed by repeated application of the add to list command 56.
The edit note command 58 is illustrated in detail in FIG. 5 (see reference letters (a)-(c) in FIG. 5). With reference to letter (b) in FIG. 5, the dialog is shown appearing for the purpose of entering or editing text associated with the selected node (“Shared Trees”). With reference to letter (c) in FIG. 5, the mouse pointer is shown hovering over or near the selected node, thereby displaying the associated note text (“Text describing the node in question!”).
The strike subtree command 60 and remove subtree 62 command (see FIG. 5) each act to delete the subtree, beginning with the selected node. The remove subtree 62 command does so immediately, whereas the strike subtree command 60 marks the nodes of the selected subtree as potentially deleted. At a later time, for example, after the recipients of the shared subtree 38 containing the stricken nodes have reviewed them, the nodes are actually deleted.
Like the strike subtree command 60, the share subtree command 64 and lock and unlock subtree command 66 (see FIG. 5) change the state of the selected subtree. The share subtree command 64 serves to mark the subtree as shared, changing the behavior of the system to act according to the usage described with reference to FIG. 4. The lock and unlock subtree command 66 renders the selected subtree non-editable until the same identified user who locked the subtree issues the corresponding command to unlock the subtree.
Having described the above illustrative embodiments, other alternative embodiments or variations may be made. For example, it was described that the disclosed system adds to, or associates with, the messaging client 32 a visual data editor 30 (see FIG. 1) for the purpose of creating, editing, and visualizing contextual information for the organization of messages, and for representing structured information to be included in the content of messages. It should be understood, however, that the disclosed system is operative to create, edit, and visualize contextual information for the organization of appointments, tasks, or any other suitable items in place of, or in addition to, messages. It should also be understood that users may employ a desktop device such as a personal computer (PC), a mobile device such as a mobile telephone, a Blackberry®. mobile device, a TreoTM mobile device, an iPhoneTM mobile device, or a personal digital assistant (PDA), or any other suitable desktop or mobile device associated with the host system 20 (see FIG. 1) to create, send, receive, and/or examine messages, appointments, tasks, etc. In addition, the entire user interface, or at least a portion of the user interface, of such desktop or mobile devices may comprise a hierarchical taxonomy of topics, as embodied in the disclosed topic tree 28 (see FIG. 3).
It will be appreciated by those of ordinary skill in the art that further modifications to and variations of the above-described system and method of supporting constructive discourse on computers and mobile devices may be made without departing from the inventive concepts disclosed herein. Accordingly, the invention should not be viewed as limited except as by the scope and spirit of the appended claims.

## Claims

1. A method of performing message-based discourse on computer and mobile devices, comprising the steps of:
receiving, at a first user device, from a first user, data defining a hierarchy of information comprising a plurality of nodes;
generating, at a first user device, a hierarchy of information using the data defining a hierarchy of information, said hierarchy of information being represented by a tree having the plurality of nodes;
receiving a selection, at said first user device, from the first user, of a respective one of the plurality of nodes of the tree, each node corresponding to a respective topic within said hierarchy of information, each respective topic being indexed by a specified identifier;
generating, at said first user device, a first message, including embedding, within said first message, at least one first data packet containing data representing said hierarchy of information, and appending, to said first message, said specified identifier indexing the respective topic; and
sending said first message from said first user device to said second user device for decoding at said second user device, said first data packet within said first message for generating a representation of said hierarchy of information at said second user device, the representation of said hierarchy of information including an indication of the respective topic indexed by said specified identifier.

2. The method of claim 1 further including receiving at said first user device a comment from said second user device, said comment relating to the respective topic indexed by said specified identifier, said comment being represented, within said hierarchy of information, by a sub-node of the node corresponding to the respective topic.

3. The method of claim 2 including:
receiving at said first user device a second message from said second user device, said second message, including at least one second data packet embedded within said second message containing data representing said hierarchy of information including the sub-node representing said comment appended to said second message, said specified identifier indexing the respective topic;
decoding, at said first user device, said second data packet within said second message; and
appending the sub-node representing said comment to the tree representing said hierarchy of information generated at said first user device, the sub-node being appended to the node corresponding to the respective topic indexed by said specified identifier.

4. A method comprising:
generating, at a first user device, a first hierarchical taxonomy comprising a first plurality of topics, the hierarchy being represented by a first tree having a first plurality of nodes, each node corresponding to a respective one of the first plurality of topics and indexed by a respective identifier;
receiving a selection, at said first user device, from a first user, of a respective one of the first plurality of nodes of the first tree;
generating, at the first user device, a first message, the first message comprising a subtree, the subtree comprising the selected one of the first plurality of nodes and all nodes within the first plurality of nodes located hierarchically below the selected one of the first plurality of nodes in the first tree, wherein the nodes in the subtree are hierarchically arranged as in the first tree; and
sending, over a network, the first message to a second user for inserting, at the second user device, the subtree into a second tree, wherein the second tree represents a second hierarchical taxonomy comprising a second plurality of topics, the second tree comprising a second plurality of nodes, each node corresponding to a respective one of the second plurality of topics and indexed by a respective identifier.

5. The method of claim 4 further comprising:
updating a node in the first tree at the first user device, corresponding to the selected node in the updated tree at the second user device, wherein the node in the first tree at the first user device is updated to reflect the modifications to the selected node within the updated subtree.