IP Library › Granted Patent US 12,045,839
Granted Patent B1
US 12,045,839 · App. 17/408,363 · Granted Jul 23, 2024

System and method for evaluating rules

Inventors: Anshuman Mishra (Highlands Ranch, CO); Charles E. Gotlieb (San Juan, PR)
Assignee: Charles Schwab & Co., Inc.
G06Q30/0185G06F9/547G06Q30/0201G06Q30/0254
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,045,839
App. No.
17/408,363
Granted
Jul 23, 2024
Kind
B1
Abstract

A system and method reduces or minimizes the number of characteristic values required to evaluate a rule by selecting elements of the rule in an order most likely to allow evaluation of the rule without requiring evaluation of other elements of the rule. The selection may be a function of one or both of the structure of the rule and the probability that an element will resolve to a particular value of true or false.

Claims (60)

1. A computer-implemented method of evaluating a plurality of rules to perform a plurality of actions, comprising:

receiving the plurality of rules, each comprising a plurality of elements and a definition of at least one logical relationship comprising “and” and/or “or” between each of the elements;

at least one selected from a first group comprising A and B:

A. identifying a weight for each of the plurality of elements in each of the plurality of rules responsive to a minimum number of the other elements in said rule required to evaluate said rule after said element is evaluated; and

B. identifying the weight for at least two of the plurality of elements in each of the plurality of rules responsive to an identification or estimation of a percentage of times said at least two of the plurality of elements will evaluate to true or false;

at a first computer system, for each rule in the plurality of rules and for each of a plurality of accounts:

C. selecting an element of said rule responsive to the weight of the element relative to the weights of other elements in said rule;

D. calling a computer microservice over a network to evaluate the selected element for said account, at a different computer system and return the result to the first computer system over the network;

E. determining whether said rule is able to be evaluated using the result of the microservice call for at least one element selected from the rule;

F. responsive to the rule being able to be evaluated using the result of the microservice call for at least one element selected from the rule, evaluating the rule; and

G. responsive to the rule not being able to be evaluated using the result of the microservice call for the at least one element selected from the rule, selecting an other unselected element of said rule responsive to the weight of the other element relative to the weights of any of at least one other unselected elements in said rule and repeating steps D and E and F or G; and

performing an action responsive to the evaluation of each of the rules in the plurality.

2. The method of claim 1 , wherein the group comprises A.

3. The method of claim 1 , wherein the group comprises B.

4. The method of claim 1 , wherein the at least two of the plurality of elements in each of the plurality of rules comprises all of the plurality of elements in each of the plurality of rules.

5. The method of claim 1 , wherein:

the group comprises A and B; and

the identifying in B follows the identifying in A for each of the plurality of rules.

6. The method of claim 5 , wherein the at least two of the plurality of elements comprise at least one element in a rule identified as having a weight equal to at least one other element in that rule.

7. A system for evaluating a plurality of rules to perform a plurality of actions, comprising:

at least one processor configured to execute computer readable instructions to cause the system to,

receive the plurality of rules, each comprising a plurality of elements and a definition of at least one logical relationship comprising “and” and/or “or” between each of the elements;

at least one selected from a first group comprising A and B:

A. identify a weight for each of the plurality of elements in each of the plurality of rules responsive to a minimum number of the other elements in said rule required to evaluate said rule after said element is evaluated; and

B. identify the weight for at least two of the plurality of elements in each of the plurality of rules responsive to an identification or estimation of a percentage of times said at least two of the plurality of elements will evaluate to true or false;

for each rule in the plurality, and for each of a plurality of accounts:

C. select an element of said rule responsive to the weight of the element relative to the weights of other elements in said rule;

D. call one of a plurality of computer microservices over a network to evaluate the selected element at a different computer system;

E. receive a result from any call of any of the plurality of computer microservices, determine whether said rule is able to be evaluated using any result of any microservice call for at least one element selected from the rule for the account, and provide at an output an indication having a first state and a second state responsive to the determining;

F. responsive to the indication indicating the rule is able to be evaluated using the result of the microservice call for at least one element selected from the rule, evaluate the rule using the result of the microservice call, and perform an action responsive to the evaluation of said rule; and

wherein:

G. responsive to the indication indicating the rule is not being able to be evaluated using the microservice call for the at least one element selected from the rule, selecting an other unselected element of said rule responsive to the weight of the other element relative to the weights of any of at least one other unselected elements in said rule and calling a different one of the plurality of computer microservices over the network to evaluate the selected element at the different computer system to trigger operations D, E, F, or G.

8. The system of claim 7 , wherein the group comprises A.

9. The system of claim 7 , wherein the group comprises B.

10. The system of claim 7 , wherein the at least two of the plurality of elements in each of the plurality of rules comprises all of the plurality of elements in each of the plurality of rules.

11. The system of claim 7 , wherein:

the group comprises A and B; and

the at least one processor is further configured to execute computer readable instructions to cause the system to:

identify the weight for the at least two of the plurality of elements in each of the plurality of rules, additionally responsive to the weights for the respective element.

12. The system of claim 11 , wherein the at least two of the plurality of elements comprise at least one element in a rule identified as having a weight equal to at least one other element in that rule.

13. A non-transitory computer useable medium having computer readable program code embodied therein, which when executed by at least one processor of a first computer system, causes the first computer system to:

receive the plurality of rules, each comprising a plurality of elements and a definition of at least one logical relationship comprising “and” and/or “or” between each of the elements;

at least one selected from a first group comprising A and B:

A. identify a weight for each of the plurality of elements in each of the plurality of rules responsive to a minimum number of the other elements in said rule required to evaluate said rule after said element is evaluated; and

B. identify the weight for at least two of the plurality of elements in each of the plurality of rules responsive to an identification or estimation of a percentage of times said at least two of the plurality of elements will evaluate to true or false; at a computer system, for each rule in the plurality of rules and for each of a plurality of accounts:

C. select an element of said rule responsive to the weight of the element relative to the weights of other elements in said rule;

D. call a computer microservice over a network to evaluate the selected element for said account, at a different computer system and return the result to the first computer system over the network;

E. determine whether said rule is able to be evaluated using the result of the microservice call for at least one element selected from the rule;

F. responsive to the rule being able to be evaluated using the result of the microservice call for at least one element selected from the rule, evaluate the rule; and

G. responsive to the rule not being able to be evaluated using the result of the microservice call for the at least one element selected from the rule, select an other unselected element of said rule responsive to the weight of the other element relative to the weights of any of at least one other unselected elements in said rule and repeating operation of D and E and F or G; and

performing an action responsive to the evaluation of each of the rules in the plurality.

14. The non-transitory computer useable medium of claim 13 , wherein the group comprises A.

15. The non-transitory computer useable medium of claim 13 , wherein the group comprises B.

16. The non-transitory computer useable medium of claim 13 , wherein the at least two of the plurality of elements in each of the plurality of rules comprises all of the plurality of elements in each of the plurality of rules.

17. The non-transitory computer useable medium of claim 13 , wherein:

the group comprises A and B; and

the computer readable program code, when executed by the at least one processor, further causes the computer system to perform the identifying in B following the identifying in A for each of the plurality of rules.

18. The non-transitory computer useable medium of claim 17 , wherein the at least two of the plurality of elements comprise at least one element in a rule identified as having a weight equal to at least one other element in that rule.

19. The method of claim 1 , wherein the identification or the estimation of the percentage of times said at least two of the plurality of elements will evaluate to true or false is performed on a desired number of accounts of the plurality of accounts, the desired number of accounts being a subset of a total number of the plurality of accounts.

20. The method of claim 19 , wherein the identifying the weight for the at least two of the plurality of elements further includes adjusting a first weight corresponding to a first element of the at least two elements to a more dispositive value in response to results of the identification or the estimation indicating that the first element is more dispositive than remaining elements of the at least two elements.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2024
From: MISHRA, ANSHUMAN
To: CHARLES SCHWAB & CO., INC.
Reel/Frame 067800/0443 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: GOTLIEB, CHARLES E
To: CHARLES SCHWAB & CO., INC.
Reel/Frame 060807/0446 →
Continuity (1)
Provisional Application 63069837 · Aug 25, 2020
Cited By (2)
US 12,261,828 US 12,651,107