US8677279B2ActiveUtilityA1

Visual hierarchy explorer

Assignee: Gan jeffPriority: May 6, 2009Filed: May 6, 2009Granted: Mar 18, 2014
Est. expiryMay 6, 2029(~2.8 yrs left)· nominal 20-yr term from priority
G06F 16/904G06F 16/26
74
PatentIndex Score
13
Cited by
41
References
23
Claims

Abstract

A method and a system are described that involve generating a graphical tree hierarchy of a data structure and its accompanying metadata. In one embodiment, the method includes building a graphical tree hierarchy with a plurality of levels, wherein the graphical tree hierarchy includes at least a root node, a plurality of non-leaf nodes, and a plurality of leaf nodes. Further, the method includes aggregating at least a portion of the plurality of non-leaf nodes at a level of the graphical tree hierarchy, if a subset of the plurality of non-leaf nodes residing at the level exceeds a maximum number of nodes per the level. The method also includes scaling down the plurality of leaf nodes, if the plurality of levels of the graphical tree hierarchy exceeds a maximum number of levels.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. A computer-readable non-transitory storage medium having instructions therein that when executed by the machine, cause the machine to:
 receive a data structure including a plurality of levels, a root node, a plurality of non-leaf nodes, and a plurality of leaf nodes; 
 build a graphical tree hierarchy associated with the data structure; 
 horizontally aggregate at least a portion of the plurality of non-leaf nodes at an entire level of the graphical tree hierarchy to form a plurality of aggregation nodes, upon determining that a subset of the plurality of non-leaf nodes residing at the level exceeds a maximum number of nodes per the level; 
 define a histogram plotted along a base of the graphical tree hierarchy comprising a set of bins correspondingly associated with the plurality of aggregation nodes, the plurality of leaf nodes defining a count for each bin of the histogram; 
 upon determining that the plurality of levels of the graphical tree hierarchy exceeds a maximum number of levels, vertically scale down proportionally the plurality of leaf nodes in each bin of the histogram to a plurality of leaf node icons such that the plurality of leaf node icons fit in a predefined GUI region, wherein a leaf node icon of the plurality of leaf node icons represents a number of leaf nodes computed based on a maximum allowed number of leaf nodes in an aggregated node of the plurality of aggregation nodes and a number of leaf nodes in a largest aggregation node of the plurality of aggregation nodes; and 
 display the graphical tree hierarchy in the predefined GUI region, the displayed graphical tree being associated with the data structure and accompanying metadata. 
 
     
     
       2. The computer-readable non-transitory storage medium of  claim 1  having instructions that when executed further cause the machine to:
 compute the maximum number of levels of the graphical tree hierarchy that fit in the predefined GUI region based on a height parameter of the predefined GUI region; and 
 compute the maximum number of nodes per the plurality of levels of the tree hierarchy that fit in the predefined GUI region based on a width parameter of the predefined GUI region. 
 
     
     
       3. The computer-readable non-transitory storage medium of  claim 1 , wherein instructions causing the machine to build the graphical tree hierarchy comprise instructions causing the machine to:
 add the root node to the graphical tree hierarchy at a first level of the plurality of levels; and 
 walk through the data structure to build the plurality of non-leaf nodes of the graphical tree hierarchy. 
 
     
     
       4. The computer-readable non-transitory storage medium of  claim 3  having instructions that when executed further cause the machine to:
 add a plurality of parent non-leaf nodes at different levels of the graphical tree hierarchy in accordance with the plurality of non-leaf nodes built by walking through the data structure; 
 add a plurality of child non-leaf nodes to the graphical tree hierarchy in accordance with the plurality of non-leaf nodes built by walking through the data structure; and 
 attach the plurality of child non-leaf nodes to the plurality of parent non-leaf nodes at lower levels of the graphical tree hierarchy in accordance with the walked-through data structure. 
 
     
     
       5. The computer-readable non-transitory storage medium of  claim 1 , wherein instructions causing the machine to aggregate at least a portion of the plurality of non-leaf nodes comprise instructions causing the machine to aggregate every two non-leaf nodes from the subset of the plurality of non-leaf nodes residing at the level that exceeds the maximum number of nodes per the level, the two non-leaf nodes sharing a same parent non-leaf node. 
     
     
       6. The computer-readable non-transitory storage medium of  claim 5 , wherein instructions causing the machine to scale down the plurality of leaf nodes comprise instructions causing the machine to:
 compute a maximum number of leaf nodes per an aggregation node based on a remaining portion of space of the predefined GUI region; 
 retrieve a largest aggregation node at the level, the largest aggregation node including a maximum count of leaf nodes from the plurality of leaf nodes; and 
 divide the retrieved maximum count of leaf nodes of the largest aggregation node by the computed maximum number of leaf nodes per the aggregation node. 
 
     
     
       7. The computer-readable non-transitory storage medium of  claim 6  having instructions that when executed further cause the machine to:
 round up a result of the division of the maximum count of leaf nodes by the computed maximum number of leaf nodes per the aggregation node to a nearest whole number, if the result is not a whole number; and 
 scale down the plurality of leaf nodes by the whole number. 
 
     
     
       8. The computer-readable non-transitory storage medium of  claim 1  having instructions that when executed further cause the machine to:
 navigate in the displayed graphical tree hierarchy via a set of GUI elements; 
 display metadata associated with an aggregation node in the graphical tree hierarchy upon user interaction with the aggregation node, wherein the metadata includes at least a portion of: 
 a name of the aggregation node, a starting name and an ending name for the nodes aggregated in the aggregation node, a number of child nodes to the aggregation node, and a number of leaf nodes under the aggregation node; and 
 switch orientation of the graphical tree hierarchy. 
 
     
     
       9. The computer-readable non-transitory storage medium of  claim 1  having instructions that when executed further cause the machine to:
 receive a selection of a node in the predefined GUI region, the node representing a portion of the graphical tree hierarchy; and 
 update the predefined GUI region to include a sub-tree defined by the node, thereby drilling into a subset of the graphical tree hierarchy. 
 
     
     
       10. The computer-readable non-transitory storage medium of  claim 1  having instructions that when executed further cause the machine to:
 receive a user interaction to drill out of the graphical tree hierarchy; and 
 in response to the user interaction, update the predefined GUI region to include a subset of the graphical tree hierarchy corresponding to the drill out. 
 
     
     
       11. The computer-readable non-transitory storage medium of  claim 1 , wherein the count for each bin of the histogram is represented by a visual element selected from:
 a set of icons, wherein a first number of leaf nodes is equated to a representative icon in the set of icons; and 
 a bar, wherein the length of a representative bar is proportional to the count for a representative bin. 
 
     
     
       12. A computer implemented method for displaying a tree structure hierarchy on a computer generated user interface, the method comprising:
 receiving a data structure including a plurality of levels, wherein the graphical tree hierarchy includes at least a root node, a plurality of non-leaf nodes, and a plurality of leaf nodes, and wherein the data structure is stored in a database storage unit; 
 horizontally aggregating at least a portion of the plurality of non-leaf nodes at an entire level of the graphical tree hierarchy to form a plurality of aggregation nodes upon determining that a subset of the plurality of non-leaf nodes residing at the level exceeds a maximum number of nodes per the level; 
 defining a histogram plotted along a base of the graphical tree hierarchy comprising a set of bins correspondingly associated with the plurality of aggregation nodes, and the plurality of leaf nodes defining a count for each bin of the histogram; 
 upon determining that the plurality of levels of the graphical tree hierarchy exceeds a maximum number of levels, vertically scaling down proportionally the plurality of leaf nodes in each bin of the histogram to a plurality of leaf node icons such that the plurality of leaf node icons fit in a predefined GUI region, wherein a leaf node icon of the plurality of leaf node icons represents a number of leaf nodes computed based on a maximum allowed number of leaf nodes in an aggregated node of the plurality of aggregation nodes and a number of leaf nodes in a largest aggregation node of the plurality of aggregation nodes; and 
 displaying the graphical tree hierarchy as a visualization in the predefined GUI region, the displayed graphical tree associated with the data structure and accompanying metadata. 
 
     
     
       13. The method of  claim 12  further comprising:
 computing the maximum number of levels of the graphical tree hierarchy that fit in the predefined GUI region based on a height parameter of the predefined GUI region; and 
 computing the maximum number of nodes per the plurality of levels of the tree hierarchy that fit in the predefined GUI region based on a width parameter of the predefined GUI region. 
 
     
     
       14. The method of  claim 12 , wherein receiving the graphical tree hierarchy comprises:
 adding the root node to the graphical tree hierarchy at a first level of the plurality of levels; 
 adding a plurality of parent non-leaf nodes at different levels of the graphical tree hierarchy; 
 adding a plurality of child non-leaf nodes to the graphical tree hierarchy by attaching the nodes of the plurality of child non-leaf nodes to their parents in the plurality of parent non-leaf nodes; and 
 updating the visualization of the graphical tree. 
 
     
     
       15. The method of  claim 12 , further comprising:
 updating the visualization with metadata associated with an aggregation node in the graphical tree hierarchy upon user interaction with the aggregation node, wherein the metadata includes at least a portion of: 
 a name of the aggregation node, a starting name and an ending name for the nodes aggregated in the aggregation node, a number of child nodes to the aggregation node, and a number of leaf nodes under the aggregation node. 
 
     
     
       16. The method of  claim 12 , wherein aggregating at least a portion of the plurality of non-leaf nodes comprises aggregating every two non-leaf nodes from the subset of the plurality of non-leaf nodes residing at the level that exceeds the maximum number of nodes per the level, where the two non-leaf nodes share a same parent non-leaf node. 
     
     
       17. The method of  claim 12  further comprising:
 navigating in the displayed graphical tree hierarchy via a set of GUI elements; 
 providing information for the graphical tree hierarchy and for each node of the graphical tree hierarchy; and 
 switching orientation of the graphical tree hierarchy. 
 
     
     
       18. The method of  claim 12 , wherein the count for each bin of the histogram is represented by a visual element selected from:
 a set of icons, wherein a first number of leaf nodes is equated to a representative icon in the set of icons; and 
 a bar, wherein the length of a representative bar is proportional to the count for a representative bin. 
 
     
     
       19. The method of  claim 12  wherein the aggregating at least a portion of the plurality of non-leaf nodes at a level of the graphical tree hierarchy occurs, if a subset of the plurality of non-leaf nodes residing at the level exceeds a maximum number of nodes per the level. 
     
     
       20. The method of  claim 19  further comprising:
 computing the maximum number of nodes per the plurality of levels of the tree hierarchy that fit in the predefined GUI region based on a width parameter of the predefined GUI region. 
 
     
     
       21. A computing system comprising:
 a processor; 
 a memory device including instructions stored thereon that are operable on the processor to cause the system to provide: 
 a GUI region with predefined parameters; 
 a hierarchal data structure stored in a database storage unit; 
 a graphical tree structure with a plurality of hierarchal levels including at least a root node, a plurality of non-leaf nodes, and a plurality of leaf nodes,
 wherein at least a portion of the plurality of non-leaf nodes is aggregated horizontally, to form a plurality of aggregation nodes, when a subset of the plurality of non-leaf nodes residing at a level of the tree exceeds a maximum number of non-leaf nodes per that level, 
 wherein a histogram is plotted along a base of the graphical tree hierarchy comprising a set of bins correspondingly associated with the plurality of aggregation nodes, the plurality of leaf nodes defining a count for each bin of the histogram, and 
 wherein the plurality of leaf nodes is vertically scaled down proportionally in each bin of the histogram to a plurality of leaf node icons such that the plurality of leaf node icons fit in a predefined GUI region, wherein a leaf node icon of the plurality of leaf node icons represents a number of leaf nodes computed based on a maximum allowed number of leaf nodes in an aggregated node of the plurality of aggregation nodes and number of leaf nodes in a largest aggregation node of the plurality of aggregation nodes, when the levels of the tree exceed a maximum number of levels, and wherein the graphical tree is a visual representation of the hierarchal data structure displayed in the predefined GUI region; and 
 
 a set of GUI elements to navigate in the graphical tree structure and to retrieve information about the root node, the plurality of non-leaf nodes, and the plurality of leaf nodes. 
 
     
     
       22. The computing system of  claim 21 , wherein the set of GUI elements to navigate in the graphical tree structure comprises:
 a zoom button to zoom an aggregation node of the graphical tree structure, wherein after zooming in, a parent node of the aggregation node becomes the root node and a sub-tree of the graphical tree residing under the parent node is rendered; 
 an orientation change button that changes orientation of display of the graphical tree structure; and 
 a select button to select a node or multiple nodes of the graphical tree structure. 
 
     
     
       23. The computing system of  claim 21 , wherein the set of GUI elements to retrieve information in the graphical tree structure comprises:
 a scale GUI component that displays a number of actual leaf nodes that are represented by a leaf node of the plurality of leaf nodes; 
 a total items GUI component that displays a total number of nodes in the graphical tree structure; and 
 a tooltip GUI component that displays information about each node in the graphical tree structure.

Join the waitlist — get patent alerts

Track US8677279B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.