Visual hierarchy explorer
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-modifiedThe 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.