Patent ID: 7720826

Claim:
A computer-implemented method for performing a query for rules in a database, the method being performed by a processor executing instructions from a computer readable storage medium, the method comprising: generating, in a computer system, a value vector that corresponds to a factual situation, the value vector having vector positions each corresponding to a respective category of multiple categories, wherein each of the vector positions includes one of: (i) a vector value for the corresponding category; and (ii) a no value specified indicator; performing a first query based on the value vector in a database whose entries contain rules configured for computer-based evaluation, each of the rules having rule positions each corresponding to a respective category of the multiple categories, wherein each of the rule positions includes one of: (i) a rule value for the corresponding category; and (ii) the no value specified indicator; wherein the first query is performed so that a rule is responsive to the first query only if (i) the rule has a matching value in each category for which the value vector has a vector value and (ii) the rule has the no value specified indicator in each category for which the value vector has the no value specified indicator; identifying, upon no rule responsive to the first query being found, at least one of the categories for which to replace the associated vector value from the first query with the no value specified indicator; and performing at least one subsequent query in the database so that a rule is responsive to the second query only if (i) the rule has a matching value in each category for which the first query has a vector value, except for the identified at least one category, and (ii) the rule has the no value specified indicator in each category for which the first query has the no value specified indicator and also in the identified at least one category; wherein as long as no responsive rule is found, another subsequent query is performed where the no value specified indicator replaces another vector value, at most until a rule containing only the no value specified indicators is found using a query containing only the no value specified indicators.