Fact Type Abstraction Layer for Rule Engine Processing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


