IP Library Granted Patent US 8,677,279
Granted Patent B2
US 8,677,279 · App. 12/436,151 · Granted Mar 18, 2014

Visual hierarchy explorer

Inventors: Jeff Gan (Vancouver, CA); Finlay Cannon (Vancouver, CA); Ronald Wade Richards (Vancouver, CA)
Assignee: Business Objects Software Limited
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,677,279
App. No.
12/436,151
Granted
Mar 18, 2014
Kind
B2
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 (85)

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.

Assignments (2)
CHANGE OF NAME Recorded Jan 26, 2026
From: BUSINESS OBJECTS SOFTWARE LIMITED
To: SAP IRELAND LIMITED
Reel/Frame 074510/0354 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2009
From: GAN, JEFF; CANNON, FINLAY; RICHARDS, RONALD WADE
To: BUSINESS OBJECTS SOFTWARE LTD.
Reel/Frame 022770/0773 →
Continuity (1)
Related Publication 20100287512A1 · Nov 11, 2010