Patent ID: 7814087

Claim:
A method implemented by a computer programmed as a database search apparatus that performs hierarchical searching for data satisfying at least one set of predetermined criteria C, in a directed acyclic graph including nodes and links between said nodes and which is stored in tables of a relational database management system able to be interrogated by a query language, the criteria being determined on the nodes and/or the links, wherein each criterion is determined as a blocking criterion in which as soon as the blocking criterion is not satisfied on a link or a node, the node or the terminal node of the link and its descendant nodes are excluded, or a non-blocking criterion in which as soon as the non-blocking criterion is not satisfied on a link or a node, only the node or the terminal node of the link is excluded, without consequence to its descendant nodes, the method comprising: separating, by the database search apparatus, the set of predetermined criteria C into a set of blocking criteria C b and a set of non-blocking criteria C nb ; transforming the directed acyclic graph into a tree A supplemented with indexation, and storing the tree in the database management system; searching, with the query language, for the nodes of the graph satisfying the set of blocking criteria C b , these nodes being grouped together in a set G; and searching, with the query language, for the nodes of G satisfying the set of non-blocking criteria C nb , wherein the first searching step comprises performing a query with the query language, on the nodes of the tree A not satisfying the set of predetermined blocking criteria C b , these nodes being grouped together in a set E, the second searching step comprises performing a query with the query language by using the said indexation on the nodes of A satisfying the set of predetermined non-blocking criteria C nb such that each node is not the descendant of any node of E.