Fact Type Abstraction Layer for Rule Engine Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional rule engines, such as those using the Rete algorithm, are limited by their requirement for facts to be defined in a pre-defined structure, restricting their ability to process multiple types of facts efficiently, and become cumbersome as the number of different fact types increases.

Innovation Solution

A fact type abstraction layer is introduced, allowing the rule engine core to interact with and reason over multiple types of facts without converting them into a native type, using an object type API and extractor API to support different fact types and access their attributes transparently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional rule engines use pre-defined fact structures, then the rule engine can process facts efficiently, but the ability to support multiple different types of facts is limited

Engineering Contradiction:
Improvefact processing efficiencyVSAvoidsupport for multiple fact types
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces an abstraction layer as an intermediary between the rule engine core and the facts. This abstraction layer translates diverse fact types into a unified internal representation that the rule engine can process efficiently, while allowing the system to support multiple fact types without compromising processing performance. The abstraction layer acts as a mediator that converts various fact formats into a standard internal structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements a universal fact representation mechanism that allows the rule engine to handle multiple different types of facts through a single unified interface. The abstraction layer provides universal support for various fact types (database records, XML documents, JSON data, etc.) while maintaining consistent processing efficiency across all fact types through the same rule engine core.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If the rule engine converts all facts to a native type, then the rule engine can reason over the facts, but the complexity of application code increases significantly

Engineering Contradiction:
Improvereasoning capabilityVSAvoidapplication code complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The abstraction layer serves as a mediator that handles the complexity of fact type conversion automatically. Instead of requiring application code to manually convert facts to a native type, the abstraction layer intercepts diverse fact types and translates them into the rule engine's internal representation, thereby maintaining reliable reasoning while reducing application code complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The abstraction layer provides self-service by automatically handling the conversion and translation of different fact types into the rule engine's internal format. This eliminates the need for application code to manually manage type conversions, reducing code complexity while ensuring reliable reasoning through the abstraction layer's automated processing.

Inventive Principle:
Principle #25Self-service

3Device complexity

If the rule engine supports only a single type or few types of facts, then the rule engine structure remains simple, but the flexibility to handle diverse data is reduced

Engineering Contradiction:
Improverule engine structureVSAvoidflexibility to handle diverse data
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent segments the system into two distinct parts: a simple, unified rule engine core that maintains straightforward structure, and a flexible abstraction layer that handles the diversity of fact types. This segmentation allows the rule engine core to remain simple while the abstraction layer provides flexibility to handle diverse data formats without complicating the core engine structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The abstraction layer implements universality by providing a single interface that can handle multiple different fact types. This universal layer sits above the simple rule engine core, allowing the system to maintain simple engine structure while achieving flexibility to handle diverse data through the abstraction layer's multi-functional capabilities.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7991727B2Mechanism to abstract fact types from a rule engine
Publication Date: 2011.08.02 RED HAT INC
  • US7991727B2 patent drawing
  • US7991727B2 patent drawing
  • US7991727B2 patent drawing

AI summary

Some embodiments of a fact type abstraction mechanism of a rule engine have been presented. In one embodiment, a fact type abstraction layer is provided to a rule engine core to allow the rule engine core to access facts of multiple different types. Further, the rule engine core is used to process the facts of multiple different types against a predetermined set of rules without converting the facts of multiple different types into a native type.