IP Library Granted Patent US 7,565,642
Granted Patent B2
US 7,565,642 · App. 10/639,674 · Granted Jul 21, 2009

Rule engine

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 7,565,642
App. No.
10/639,674
Granted
Jul 21, 2009
Kind
B2
Abstract

Methods and apparatus, including computer program products, for inference processing in a fact-based business automation system, including receiving a rule set as a single package, generating a dependency graph for the rule set, and generating a sequence of processing logic for optimal processing of inputted facts.

Claims (28)

1. A method comprising:

in a processing system, receiving a rule set as a single package;

generating a dependency graph for the rule set, the dependency graph including a plurality of ranked nodes, the nodes including entity nodes, attribute nodes, condition nodes, and rule nodes, where a first attribute node points to a first condition node when a first attribute associated with the first attribute node is used in a conditional expression associated with the first condition node, a first condition node points to a first rule node when a first condition associated with the first condition node is used in a first rule associated with the first rule node, and where the first rule node points to a second rule node when the first rule overrides a second rule associated with the second rule node; and

generating a sequence of processing logic for optimal processing of inputted facts according to a rank order of the nodes in the dependency graph.

2. The method of claim 1 in which processing comprises single pass execution when there are no logical loops.

3. The method of claim 1 in which processing comprises multi-pass execution when there are logical loops.

4. The method of claim 3 in which processing further comprises providing an endless loop terminating condition.

5. The method of claim 1 in which the rule set is free of logical conflicts.

6. The method of claim 1 in which generating the dependency graph comprises determining logical dependencies across rules contained in the rule set.

7. The method of claim 6 in which generating the dependency graph further comprises resolving logical conflicts using override instructions.

8. The method of claim 7 in which generating the dependency graph further comprises analyzing the rule set with a business logic generation utility optimized for one of a plurality of target programming languages and generating optimized logic for a selected target programming language.

9. The method of claim 8 in which the target programming language is Java.

10. The method of claim 8 in which the target programming language is C++.

11. The method of claim 8 in which the target programming language is Jython.

12. The method of claim 8 in which the target programming language is JavaScript.

13. The method of claim 8 in which the target programming language is Visual Basic.

14. The method of claim 8 in which the target programming language is C#.

15. The method of claim 8 in which the business logic generation utility's generated processing logic comprises a series of calls to a working memory database to retrieve, manipulate and update data.

16. A computer program product, disposed on a computer readable medium, for business processing automation, the program including instructions for causing a processor to:

receive a rule set as a single package;

generate a dependency graph for the rule set, the dependency graph including a plurality of ranked nodes, the nodes including entity nodes, attribute nodes, condition nodes, and rule nodes, where a first attribute node points to a first condition node when a first attribute associated with the first attribute node is used in a conditional expression associated with the first condition node, a first condition node points to a first rule node when a first condition associated with the first condition node is used in a first rule associated with the first rule node, and where the first rule node points to a second rule node when the first rule overrides a second rule associated with the second rule node; and

generate a sequence of processing logic for optimal processing of inputted facts according to a rank order of the nodes in the dependency graph.

17. The product of claim 16 in which the rule set is free of logical conflicts.

18. The product of claim 16 in which to generate the dependency graph comprises determining logical dependencies across rules contained in the rule set.

19. The product of claim 18 in which to generate the dependency graph further comprises instructions for causing the processor to:

determine logical conflicts between rules in the rule set; and

resolve the logical conflicts with override instructions.

20. The method of claim 1 , where the rank order of the nodes is used to determine an order of processing of the nodes, the nodes being ranked such that a child node has a greater value than each of its parent nodes, and where independent nodes are ranked such that a more computationally intensive node is ranked higher.

Assignments (7)
SECURITY INTEREST Recorded Jul 21, 2025
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 072094/0790 →
SECURITY INTEREST Recorded Jan 25, 2022
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058840/0099 →
SECURITY INTEREST Recorded Apr 30, 2019
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., ADMINISTRATIVE AGENT
Reel/Frame 049031/0684 →
SECURITY INTEREST Recorded Dec 18, 2017
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044889/0325 →
SECURITY INTEREST Recorded Dec 2, 2014
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 034504/0178 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2013
From: CORTICON TECHNOLOGIES, INC.
To: PROGRESS SOFTWARE CORPORATION
Reel/Frame 030350/0624 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2009
From: MOORE, ERIC ANDREW; ABRARI, PEDRAM
To: CORTICON TECHNOLOGIES, INC.
Reel/Frame 022833/0581 →