Rule Engine Dependency Graph Conflict Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing rule engines face inefficiencies in processing business logic due to logical loops and conflicts, requiring dynamic conflict resolution at runtime, which is computationally intensive and suboptimal for business automation.

Innovation Solution

A method that generates a dependency graph and sequence of processing logic for optimal rule set execution, resolving logical conflicts and loops during business logic generation, allowing for single or multi-pass execution and providing an endless loop terminating condition, optimized for various programming languages like Java, C++, and JavaScript.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dynamic conflict resolution is performed at runtime in existing rule engines, then the system can handle logical conflicts and loops, but the computational complexity increases and processing efficiency decreases

Engineering Contradiction:
Improveconflict resolution capabilityVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing conflict resolution and loop detection during the static analysis phase before runtime execution. The system generates a dependency graph from the rule set, identifies conflicts and loops in advance, and resolves them through override instructions and processing sequences. This eliminates the need for dynamic conflict resolution at runtime, thereby maintaining reliability while significantly improving processing efficiency.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If rule sets are processed without pre-generated dependency graphs, then the rule engine maintains flexibility, but the processing overhead increases and execution speed decreases

Engineering Contradiction:
Improverule processing flexibilityVSAvoidprocessing overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis by generating dependency graphs during the rule set compilation phase. This static analysis identifies processing sequences, resolves conflicts, and detects loops before execution. The pre-computed dependency information is then used during runtime to guide efficient rule processing, reducing processing overhead while maintaining flexibility through the declarative rule language.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If multiple processing passes are used to handle logical loops, then complete rule evaluation is achieved, but the execution time increases

Engineering Contradiction:
Improverule evaluation completenessVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The system performs preliminary detection of logical loops during static analysis and generates appropriate processing sequences. For loops involving override instructions, the system pre-determines the number of passes required and structures the processing logic accordingly. This allows complete rule evaluation while minimizing execution time by avoiding unnecessary passes.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If rule conflicts are resolved dynamically at runtime, then the system adapts to conflicting rules, but the computational complexity and processing overhead increase

Engineering Contradiction:
Improveconflict adaptation capabilityVSAvoidcomputational complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent resolves rule conflicts in advance during static analysis by generating override instructions and determining processing sequences. The dependency graph analysis identifies conflicting rules and establishes resolution priorities before execution. This eliminates dynamic conflict resolution complexity at runtime while maintaining adaptability through the pre-computed processing logic that handles all conflict scenarios.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7565642B2Rule engine
Publication Date: 2009.07.21 PROGRESS SOFTWARE CORP
  • US7565642B2 patent drawing
  • US7565642B2 patent drawing
  • US7565642B2 patent drawing

AI summary

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.