Compressed prefix matching database searching
First Claim
1. A method of conducting a search of reduced length through a stored database containing nodes and pointers leading from one of said nodes to another of said nodes in response to a search argument, said search argument defining a search path following pointers through said nodes, by eliminating an eliminated node that would otherwise occur between an immediately previous and an immediately following node in said search path, comprising the machine-implemented steps of:
- storing information describing conditions under which, had said eliminated node been present, the search would have proceeded to said following node,following said search path through said nodes,when said search reaches said previous node,determining whether said search argument meets the conditions of said stored information, andcausing said search to effectively progress from said previous node directly to said following node if the comparison indicates that, had said eliminated node been present, said search would have proceeded to said following node.
13 Assignments
0 Petitions
Accused Products
Abstract
Aspects of the invention include a method of conducting a reduced length search along a search path. A node which would otherwise occur between a previous and a following node in the search path is eliminated, and information is stored as to whether, had said eliminated node been present, the search would have proceeded to the following node. During the search, a search argument is compared with the stored information, and the search effectively progresses from the previous node directly to the following node if the comparison is positive. In preferred embodiments, some nodes provide result values for the search, and a node is eliminated only if its presence would not affect the result value for the search. In another aspect, the invention features a method of conducting a two mode search of reduced length. For a first mode of the search, nodes along a search path are provided, at least some of the nodes including one or more pointers pointing to other nodes. A search argument comprising a series of search segments is provided, some values of segments of the argument corresponding to nodes along the search path, some other values of the segments relating to a second mode of the search. Indicators associated with nodes are provided, each indicator indicating the segments corresponding to the second mode. The search path is searched by processing successive search segments by inspecting the indicator associated with each node, and proceeding to the second search mode if the indicator indicates that the segment relates to the second mode.
-
Citations
18 Claims
-
1. A method of conducting a search of reduced length through a stored database containing nodes and pointers leading from one of said nodes to another of said nodes in response to a search argument, said search argument defining a search path following pointers through said nodes, by eliminating an eliminated node that would otherwise occur between an immediately previous and an immediately following node in said search path, comprising the machine-implemented steps of:
-
storing information describing conditions under which, had said eliminated node been present, the search would have proceeded to said following node, following said search path through said nodes, when said search reaches said previous node, determining whether said search argument meets the conditions of said stored information, and causing said search to effectively progress from said previous node directly to said following node if the comparison indicates that, had said eliminated node been present, said search would have proceeded to said following node. - View Dependent Claims (2, 3, 4, 5)
-
-
6. The method of claim further comprising
associating one or more sets of indicators respectively with one or more nodes, each indicator in a given set associated with a given node indicating a value of a segment of said search argument corresponding to said given node that is related to said terminating mode, and wherein following said search path comprises processing successive search segments of said search argument, processing of a given search segment having a given value including retrieving the set of indicators associated with a node along said search path that is associated with said given search segment, and determining whether an indicator in said set indicates that said given value is related to said terminating mode, and proceeding to said terminating mode if an indicator indicates that said given value relates to said terminating mode, otherwise retrieving a pointer leading from said given node that is related to said given value, and following said pointer to a subsequent node along said search path.
-
9. A method of conducting a search in response to a search argument, comprising the machine-implemented steps of:
-
storing, for a first mode of said search, a database of nodes forming search paths, at least some of said nodes including one or more pointers pointing to other said nodes to form said paths, parsing said search argument into a series of search segments having values, each respective segment associated with a respective node along a said search path, each value of a segment identifying either;
a pointer in a node associated with said segment that points to a subsequent node along said search path;
or a terminating mode of said search,associating groups of indicators with one or more nodes, each indicator in a group associated with a given node indicating whether a value of a segment of said search argument associated with said given node identifies said terminating mode, and following said search path by processing successive search segments of said search argument, processing of a given search segment having a given value including retrieving the set of indicators associated with a given node along said search path associated with said given search segment, and determining whether an indicator of said set indicates that said given value is associated with said terminating mode, and proceeding to said terminating mode if an indicator indicates that said given value is associated with said terminating mode, otherwise retrieving from said given node a pointer identified by said given value and proceeding to a subsequent node along said search path pointed to by said pointer. - View Dependent Claims (10, 11, 12, 13)
-
-
14. Apparatus for conducting a search of reduced length through a stored database containing nodes and pointers leading from one of said nodes to another of said nodes in response to a search argument, said search argument defining a search path following pointers through said nodes, by eliminating an eliminated node that would otherwise occur between an immediately previous and an immediately following node in said search path, comprising
a memory storing information describing conditions under which, had said eliminated node been present, the search would have proceeded to said following node, a controller for following said search path through said directed graph of nodes, a comparator for determining whether said search argument meets the conditions of said stored information when said controller reaches said previous node, wherein said controller causes said search to effectively progress from said previous node directly to said following node if said comparator indicates that, had said eliminated node been present, said search would have proceeded to said following node.
-
16. Apparatus for conducting a search in response to a search argument, comprising
a memory storing, for a first mode of said search, nodes forming search paths, at least some of said nodes including one or more pointers pointing to other said nodes to form said paths, a fetch unit for parsing said search argument into a series of search segments having values, each respective segment associated with a respective node along a said search path, each value of a segment identifying either: - a pointer in a node associated with said segment that points to a subsequent node along said search path;
or a terminating mode of said search,a memory storing groups of indicators associated with one or more nodes, each indicator in a group associated with a given node indicating whether a value of a segment of said search argument associated with said given node identifies said terminating mode, and a controller for following said search path by processing successive search segments of said search argument, processing of a given search segment having a given value including retrieving the set of indicators associated with a given node along said search path associated with said given search segment, and determining whether an indicator of said set indicates that said given value is associated with said terminating mode, and proceeding to said terminating mode if an indicator indicates that said given value associated with said terminating mode is set, otherwise retrieving from said given node a pointer identified by said given value and proceeding to a subsequent node along said search path pointed to by said pointer. - View Dependent Claims (17, 18)
- a pointer in a node associated with said segment that points to a subsequent node along said search path;
Specification