A system and method for efficiently walking a directed non-cyclic graph of
hierarchical data using multiple analysis tools. The graph walking system
comprises: a system for binding a plurality of graph observers to a
graph, wherein each graph observer is further bound to a set of node
patterns and a set of node observers; graph walking logic for
systematically walking through nodes within the graph, wherein the graph
walking logic can be instructed by a first pruning system not to walk a
set of sub-nodes of an encountered node; and a second pruning system that
can be instructed by a node observer bound with an associated graph
observer to deactivate the associated graph observer until the set of
sub-nodes for the encountered node has been walked. The first pruning
system will cause the set of sub-nodes not to be walked only if all of
the plurality of graph observers have been deactivated.