FIELD OF THE INVENTION
- BACKGROUND OF THE INVENTION
The present invention relates generally to the field of information display and, in particular, toa system and method for the display of hierarchical information structures.
There are many circumstances where trees must be represented as nested lists rather than in graphic form. One method of displaying a nested list is by indenting child nodes under the parent nodes. An example of an application that requires the display of a nested list is a display of thread structures within electronic mail discussion lists. In archives of intensive or broad-membership e-mail lists, many threads contain many messages. Fully nested outline representations of such threads, with each message indented under its predecessor, can be extremely wide. Also, it is desirable to be able to embed textual material, including author, date, time and even message-initial fragments in such displays. When this is done, the fully nested displays may be untenable.
Some conventional e-mail display methods fold back the child nodes to a left margin after a predetermined number of indentations is reached. However, such a display scheme masks the structure of the thread.
Other conventional e-mail archive applications limit the width of the display. For example, Hypermail® provides a “subject” listing in which messages with the same subject line are listed in chronological order. Egroups® provides a subject-based listing in which two levels are used, with messages indented under the corresponding parent if that results in only two levels and if the child node is received very close in time to the parent node.
- SUMMARY OF THE INVENTION
U.S. Pat. No. 5,065,347 describes a method and apparatus for displaying hierarchic folders to a user-specified width and for “folding back” the display, using icons when the user specified width is reached.All documents cited herein, including the foregoing, are incorporated herein by reference in their entireties.
A first embodiment of the method and apparatus of the present invention provides a tree structure which does not indent single children within the tree. More particularly, this first embodiment forms a semi-linear tree representation by applying a recursive procedure to the nodes of the tree starting at the root. If a node has multiple successors, then and only then are successors indented, with each successor separated by a divider.
BRIEF DESCRIPTION OF THE DRAWINGS
A second embodiment of the method and apparatus of the present invention is an extension of the first embodiment and uses an application-based criteria that determines which subtrees of nodes with multiple children are listed first. This second embodiment lists smaller subtrees first.
Embodiments of this invention will be described in detail, with reference to the following figures, wherein:
FIG. 1 is a block diagram of a computer controlled display system in an embodiment of the present invention;
FIG. 2 is a flowchart outlining one exemplary embodiment of a control routine in accordance with the present invention;
FIG. 3 illustrates a conventional two dimensional tree structure;
FIG. 4 is a fully indented form of the tree of FIG. 3;
FIG. 5 is a display of the tree of FIG. 3 in accordance with one embodiment of the present invention; and
DETAILED DESCRIPTION OF THE INVENTION
FIG. 6 is a display of a portion of a message thread from an exemplary group mail archive in accordance with the present invention.
The computer based system on which an embodiment of the present invention may be implemented is described with reference to FIG. 1. Referring to FIG. 1, the computer based system includes a plurality of components coupled via a bus 101. The bus 101 may include a plurality of parallel buses (e.g. address, data and status buses) as well as a hierarchy of buses (e.g. a processor bus, a local bus and an I/O bus). The computer system further includes a processor 102 for executing instructions provided via bus 101 from internal memory 103 (note that the internal memory 103 may be a random access memory (RAM), a read only memory (ROM), or a combination of RAM and ROM memories). The processor 102 will be used to perform various operations in support of creating the tree visualizations. Instructions for performing such operations are retrieved from internal memory 103. Such operations that would be performed by the processor 102 are described with reference to FIG. 6. The processor 102 and internal memory 103 may be discrete components or a single integrated device such as an application specification integrated circuit (ASIC) chip.
Also coupled to the bus 101 are a keyboard 104 for entering alphanumeric input, external storage 105 for storing data, a cursor control device 106 for manipulating a cursor, and a display 107 for displaying visual output. The keyboard 104 would typically be a standard QWERTY keyboard but may also be telephone like keypad. The external storage 105 may be fixed or removable magnetic or optical disk drive. The cursor control device 106, e.g. a mouse or trackball, will typically have a button or switch associated with it to which the performance of certain functions can be programmed.
One embodiment of the present invention is a presentation of a tree structure that does not indent single-successor sequences. In this embodiment, the method and apparatus of the present invention forms a semi-linear tree representation by applying the following recursive procedure to the nodes, n, of a tree starting at the root which is presented at an indentation level 0:
(1) if n, displayed at indentation level i, has a single successor, then display that successor at level i immediately under n;
(2) If n has multiple successors, then present the successors under n at indentation level i+1, separated by a divider; and
(3) apply the rule to each of the successors of n.
Referring now to FIG. 2, which shows a flowchart that outlines one exemplary embodiment of a control routine in accordance with the present invention. The control routine starts at S200 and continues to S202. At S202, the control routine sets the current level i to 0 and the current node level n to 0 and continues to S204. In S204, the control routine displays the input node at level i and continues to S206. In S206, the control routine determines whether there is a successor to the current node n. If, in S206, the control routine determines that there are no successor nodes, then the control routine continues to S208. In S208, the control routine returns control of the display system to the control routine that called the control routine outlined in FIG. 2, or the issuer of a recursive call from S212 or S218.
If, however, in S206, the control routine determines that there is a successor to the current node n, then the control routine continues to S210. In S210, the control routine determines whether the current node has multiple successor nodes. If, in S210, the control routine determines that the current node does not have multiple successor nodes, then the control routine continues to S212. In S212, the control routine recursively calls the display for the successor by returning to S204. If, however, in S210, the control routine determines that the current node has multiple successors, then the control routine continues to S214. S214 that performs two subs S216 and S218 for each successor. In S216, the control routine adds an indented divider at level i+1 and continues to S218. In S218, the control routine recursively calls the display for the successor by entering at S204
An example of the application of this exemplary embodiment of the present invention is given by transforming the presentation of the tree of FIG. 3 which is also represented by a conventional presentation as shown in FIG. 4, as transformed into a presentation as shown in FIG. 5. FIG. 3 shows nodes 482-495 in a conventional format and FIG. 4 presents the fully indented form of the tree of FIG. 3 with an indent level of 6. FIG. 5 shows the presentation of the same tree in accordance with one exemplary embodiment of the present invention. FIG. 5 has three indent levels which corresponds to the maximum number of multi-child nodes on a path.
The present invention may also be applied in conjunction with application-based criteria that determine which subtrees of a node having multiple children are listed first in a presentation. As an example, smaller subtrees may be listed first in the presentation. An application of this example to e-mail threads, might include a listing of successor subtrees in the order of increasing final dates. This generally has the effect of listing smaller subtrees first, rather than burying them in between larger ones and also of listing the most current subtrees last.
FIG. 6 shows a second exemplary embodiment of the present invention as applied to a first part of a message thread from a W3C XML plenary group mail archive. The message thread has a maximum indentation of three. By contrast, a conventional indented form would have a maximum indentation of 7, for the path 0-1-3-4-6-7-10-16.
As illustrated in FIG. 1, the computer controlled display system is implemented either on a single program general purpose computer, or separate program general purpose computer. However, the computer controlled display system can also be implemented on a special purpose computer, a programmed microprocessor or microcontroller and peripheral integrated circuit element, an ASIC or other integrated circuit, a digital signal processor, a hard wired electronic or logic circuit such as a discrete element circuit, a programmable logic device such as a PLD, PLA, FPGA, PAL, or the like. In general, any device capable of implementing a finite state machine that is in turn capable of implementing the flowchart illustrated in FIG. 2 can be used to implement the computer controlled display system according to this invention.
Furthermore, the disclosed method may be readily implemented in software using object or object-oriented software development environments that provide portable source code that can be used on a variety of computer or workstation hardware platforms. Alternatively, the disclosed computer controlled display system may be implemented partially or fully in hardware using standard logic circuits or VLSI design. Whether software or hardware is used to implement the systems in accordance with this invention is dependent on the speed and/or efficiency requirements of the system, the particular function, and the particular software or hardware systems or microprocessor or microcomputer systems being utilized. The computer controlled display systems and methods described above, however, can be readily implemented in hardware and/or software using any known or later-developed systems or structures, devices and/or software by those skilled in the applicable art without undue experimentation from the functional description provided herein together with a general knowledge of the computer arts.
Moreover, the disclosed methods may be readily implemented as software executed on a programmed general purpose computer, a special purpose computer, a microprocessor, or the like. In this instance, the methods and systems of this invention can be implemented as a routine embedded on a personal computer such as a Java® or CGI script, as a resource residing on a server or graphics workstation, as a routine embedded in a dedicated computer controlled display system, a web browser, an computer controlled display for a cellular phone, a PDA, a dedicated computer controlled display system, or the like. The computer controlled display system can also be implemented by physically incorporating the system and method into a software and/or hardware system, such as the hardware and software systems of a dedicated computer controlled display system.
It is, therefore, apparent that there has been provided, in accordance with the present invention, systems and methods for computer controlled display. While this invention has been described in conjunction with embodiments thereof, it is evident that many alternatives, modifications and variations be apparent to those skilled in the applicable arts. Accordingly, Applicants intend to embrace all such alternatives, modifications and variations that follow within the spirit and scope of this invention.