Patent ID: 7107550
Filing Date: 2006-09-12
Classification: G06F

Abstract:
1. A method for segmenting hierarchical information, where the information can be represented as a set of nodes wherein each node is associated with a portion of the information and the nodes are connected by directed edges wherein, a parent node is the source of an incoming edge, a child node is the target of an outgoing edge, a root node is a node with no incoming edge, a leaf node is a node with no outgoing edges, and a cluster is a portion of the nodes such that there is only one node in the portion of nodes that has a parent outside the portion of nodes, comprising: a) selecting any node that is not contained in a segment, any children of which node are contained in a segment, b) combining any segments marked as open containing children of the selected node belonging to any different cluster than the selected node, to form at least one combined segment and marking the combined segments as closed, wherein each combined segment is combined from at least one segment having nodes belonging to the same cluster, and wherein each combined segment that is formed from more than one segment has a width of at most a maximum given width c) combining segments marked as open containing children of the selected node belonging to the same cluster as the selected node, to form at least one segment, and marking a portion of the combined segments as closed leaving at least one segment marked as open, wherein each combined segment that is formed from more than one segment has a width of at most a maximum given width d) creating a selected node segment containing the selected node, marking it as open, and giving it a width of 1 and a height of 1, e) moving any nodes belonging to segments marked as open containing children of the selected node to the selected node segment, resetting the width of the selected node segment to the combined widths of the segments marked as open containing children of the selected node, plus a proportion of the number of segments marked as closed containing children of the selected node, and setting the height of the new segment to the maximum height of the segments marked as open containing children of the selected node plus one, f) determining whether the new segment has a height greater than a maximum segment height and whether the number of nodes between the selected node and a node in the same cluster closest to the root node is greater than a maximum node number, g) responsive to step g, marking the new segment as closed, and h) repeating steps b through i until all nodes have been placed in a segment.