1. Field of the Disclosure
The present disclosure relates generally to node-link structures and in particular, to the visualization of node-link structures.
2. Description of the Related Art
A node-link structure, as the name implies, includes nodes and links. Each link relates to two or more nodes. There are various types of graphs which are node-link structures in which each link relates two nodes. In a directed graph, each link indicates a direction between a source node and a destination node. An acyclic directed graph is a graph in which when the links are followed in their indicated directions, they do not provide a path from any node back to itself. A tree is an acyclic directed graph with one root node and one or more non-root nodes. When the links in the tree are followed, only one path is provided that begins at the root node and leads to the non-root node.
The children of a node are the nodes that can be reached by following a link in its indicated direction. The parent of a node is a node that can be reached by following the link in the opposite direction. The descendants of a node include all of its children, the children of the children (grandchildren), etc. The ancestors of a node include all of its parents, the parents of its parents (grandparents), etc. The siblings of a node include all other children of its parent.
A tree can also be viewed as a structure in which each node in the tree is “attached” to one or more elements beneath it by the links. The various nodes and links forming the descendants of a node can be referred to as a branch. Because a tree is often displayed inverted with the root at the top, it can be referred to as an inverted tree. Inverted trees are often used to represent hierarchical structures and can be referred to as hierarchical trees. Inverted trees can be used to represent various types of information. For ease in description, the present disclosure generally refers to examples utilizing file systems, such as hierarchical file systems. Of course, the present disclosure is not limited to this type of information.
An example of a hierarchical file system is shown in FIG. 1. FIG. 1 depicts, for example, a Windows hierarchical file system for a “C” drive of a computer system. As shown, the Windows display includes folder “BDE” 2, folder “XYZ” 4 and folder “Documents and Settings” 6. Documents and Settings folder 6 may include an “Administrator” folder 8, an “All Users” folder 10 and a folder “XXXX” 12. Folder “XXXX” 12 may include a folder “Cookies” 14, a folder “Desktop” 16 and folder “My Documents” 18. The “My Documents” folder 18 might include File 1, File 2, File 3, File 4 and File 5. File 4 might include documents Doc1 and Doc2 . The boxes adjacent each folder can be left clicked on to expand or contract a file, show more or less of the folders/documents in the file. Since not all of the files may be capable of being viewed at one time, vertical scrollbar 20 is provided for scrolling up or down the file system, allowing the user to view different portions of the file system as they desire. Another way of visualizing a hierarchical file system is shown in FIG. 2.
FIG. 2 depicts the hierarchical file system of FIG. 1 presented in a hierarchical tree format. Each file or document can be represented as a node. As shown, in this example, the root node of the tree (Local Disk C) is at the top and the files (non-root nodes) are branched therefrom by links. Of course, there can be various ways of displaying the tree, depending on the information desired to be viewed. For example, any node in the tree can be selected as the root node which can be displayed at the top of the tree, with any nodes below it being considered the non-root nodes.
Although such a tree format provides a view of the files in a relatively easy to understand form, due to the expanding nature of the files at the bottom of the tree, it would be difficult to display many nested files at the same in a relatively small area.