System and Method for Efficiently Evaluating Complex Boolean Expressions
First Claim
1. A computer system for evaluating Boolean expressions, comprising:
- an index search engine that accesses an index by each of a plurality of attribute-value pairs to retrieve a plurality of positional identifiers for the plurality of attribute-value pairs to find a plurality of objects each represented by a Boolean expression of at least one of the plurality of attribute-value pairs, each of the plurality of positional identifiers indicating a position of a node in a plurality of virtual Boolean expression trees that each encode the plurality of objects each represented by the Boolean expression of the at least one of the plurality of attribute-value pairs;
an expression evaluator operably coupled to the index search engine that determines whether the plurality of positional identifiers found in the index for the plurality of attribute-value pairs satisfy a virtual Boolean expression tree of at least one of the plurality of objects; and
a storage operably coupled to the index search engine that stores the index with each of the plurality of positional identifiers for each of the plurality of attribute-value pairs in sorted order by at least one object identifier of the plurality of objects.
4 Assignments
0 Petitions
Accused Products
Abstract
An improved system and method for efficiently evaluating complex Boolean expressions is provided. Leaf nodes of Boolean expression trees for objects represented by Boolean expressions of attribute-value pairs may be assigned a positional identifier that indicates the position of a node in the Boolean expression tree. The positional identifiers of each object may be indexed by attribute-value pairs of the leaf nodes of the Boolean expression trees in an inverted index. Given an input set of attribute-value pairs, a list of positional identifiers for leaf nodes of virtual Boolean expression trees may be found in the index matching the attribute-value pairs of the input set. The list of positional identifiers of leaf nodes may be sorted in order by positional identifier for each contract. An expression evaluator may then verify whether a virtual Boolean expression tree for each contract is satisfied by the list of positional identifiers.
-
Citations
20 Claims
-
1. A computer system for evaluating Boolean expressions, comprising:
-
an index search engine that accesses an index by each of a plurality of attribute-value pairs to retrieve a plurality of positional identifiers for the plurality of attribute-value pairs to find a plurality of objects each represented by a Boolean expression of at least one of the plurality of attribute-value pairs, each of the plurality of positional identifiers indicating a position of a node in a plurality of virtual Boolean expression trees that each encode the plurality of objects each represented by the Boolean expression of the at least one of the plurality of attribute-value pairs; an expression evaluator operably coupled to the index search engine that determines whether the plurality of positional identifiers found in the index for the plurality of attribute-value pairs satisfy a virtual Boolean expression tree of at least one of the plurality of objects; and a storage operably coupled to the index search engine that stores the index with each of the plurality of positional identifiers for each of the plurality of attribute-value pairs in sorted order by at least one object identifier of the plurality of objects. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-implemented method for evaluating Boolean expressions, comprising:
-
receiving a plurality of attribute-value pairs; retrieving a plurality of positional identifiers for the plurality of attribute-value pairs from an index accessed by each of the plurality of attribute-value pairs, each of the plurality of positional identifiers indicating a position of a node in a plurality of virtual Boolean expression trees that each encode a plurality of objects each represented by a Boolean expression of at least one of the plurality of attribute-value pairs; verifying that at least one of the plurality of positional identifiers satisfy a virtual Boolean expression tree of at least one of the plurality of objects from the plurality of the virtual Boolean expression trees that encode each of the plurality of objects; and outputting the identification of the at least one of the plurality of objects. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer system for evaluating Boolean expressions, comprising:
-
means for indexing a plurality of positional identifiers assigned to a plurality of nodes in a plurality of virtual Boolean expression trees that each encode a plurality of objects each represented by a Boolean expression of a plurality of attribute-value pairs; means for receiving at least one of the plurality of attribute-value pairs; means for retrieving at least one of the plurality of positional identifiers for the at least one of the plurality of attribute-value pairs from an index; means for verifying that the at least one of the plurality of positional identifiers satisfy at least one virtual Boolean expression tree of the plurality of virtual Boolean expression trees that each encode the plurality of objects each represented by the Boolean expression of the plurality of attribute-value pairs; and means for outputting the identification of at least one of the plurality of objects for which the at least one of the plurality of positional identifiers that satisfy the at least one virtual Boolean expression tree. - View Dependent Claims (20)
-
Specification