Rete Rule Engine Property Reactive Modifications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional Rete rule engines face processor-intensive and time-consuming operations due to repeated matching of modified objects against all rules in the rule set, potentially leading to infinite loops.

Innovation Solution

The implementation of a Rete rule engine that associates a modified properties data structure with objects, comparing it to relevant properties data structures of nodes in the Rete network to determine if further matching is necessary, thereby reducing unnecessary pattern matches and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If an object is modified by the Rete rule engine, then the object is compared against all rules in the rule set to ensure correctness, but this results in processor-intensive operations and potential infinite loops

Engineering Contradiction:
Improvecorrectness of rule applicationVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the rule matching process by dividing the rule set into subsets based on the modified properties of the object. Instead of matching against all rules, the system only matches against rules relevant to the specific properties that changed, thereby maintaining correctness while improving efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic property masks that are created and updated based on the specific modifications to objects. These masks dynamically determine which rules should be evaluated, allowing the system to adapt the matching process to the actual changes rather than following a static all-rules approach.

Inventive Principle:
Principle #15Dynamics

2Reliability

If an object is modified and matched against all rules in the rule set, then all possible rule applications are considered, but this causes time-consuming operations and potential infinite loops

Engineering Contradiction:
Improvecompleteness of rule evaluationVSAvoidmatching time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by creating property masks that identify which properties of modified objects are relevant to rule matching. This preliminary filtering step occurs before the actual rule matching, allowing the system to quickly determine which rules need to be evaluated and avoid unnecessary matching operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies partial action by evaluating only the subset of rules that are relevant to the modified properties of the object, rather than evaluating all rules. This partial evaluation maintains completeness for the relevant cases while significantly reducing the time required.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If repeated matching against all rules is performed on modified objects, then all rule constraints are verified, but this increases processor utilization and reduces performance

Engineering Contradiction:
Improveconstraint verificationVSAvoidprocessor utilization
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the essential information from modified objects by creating property masks that capture only the relevant modified properties. This extraction process separates the critical information needed for rule matching from the complete object state, allowing the system to verify constraints using only the necessary data and reduce processor utilization.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9286570B2Property reactive modifications in a rete network
Publication Date: 2016.03.15 RED HAT INC
  • US9286570B2 patent drawing
  • US9286570B2 patent drawing
  • US9286570B2 patent drawing

AI summary

A processing device executing a Rete rule engine modifies a particular property of an object that has traversed a Rete network. The processing device associates a first data structure with the object, the first data structure indicating that the particular property of the object has been modified. The processing device then determines whether the particular property is a constraint relevant to a node of the Rete network based on comparing the first data structure to a second data structure associated with the node, wherein the second data structure identifies one or more modifiable properties that are constraints relevant to the node. If the particular property is a constraint relevant to the node, the processing device evaluates the object with the node. If the particular property is not a constraint relevant to the node, the processing device determines not to evaluate the object with the node.