Decoupled Rule Parser for Cross-Engine Compatibility
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional rule engines are limited by their proprietary parsers and compilers, making it impossible to share or reuse rule parsing logic across different engines, forcing application developers to choose a specific engine and parser, which restricts runtime flexibility and application compatibility.
Innovation Solution
A decoupled UI expression editor control with an embedded parser module generates an Abstract Syntax Tree (AST) from user-input expressions, allowing the same AST to be used by multiple runtime engines, such as SQL and ABAP, enabling cross-engine compatibility and flexibility.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a single stack framework with a dedicated parser is used for each rule engine, then the parser can be tightly integrated with the specific engine's grammar and execution logic, but the parser cannot be shared or reused across different rule engines, reducing system flexibility and increasing maintenance complexity
Solution Approach 1:
The system is divided into separate components: a standalone parser that processes rule expressions independently, and multiple rule engines that consume parsed results. The parser is segmented from the engines, allowing it to serve multiple engines without being tied to any single one's implementation details.
Solution Approach 2:
The parser is designed with universal functionality to serve multiple rule engines (ABAP, HANA, Java, .NET) simultaneously. It implements a standardized grammar that can be interpreted by different engines, making the parser reusable across the entire rule engine family rather than requiring dedicated parsers for each engine type.
2Ease of manufacture
If different rule engines use their own dedicated parsers with engine-specific grammar, then each parser can be optimized for its specific engine's execution model, but application developers are forced to choose a specific engine and parser combination, restricting runtime flexibility
Solution Approach 1:
The standalone parser acts as an intermediary component between the rule expression input and multiple rule engines. It translates diverse engine-specific grammars into a unified intermediate representation that all engines can consume, allowing developers to switch engines without changing the parser or rewriting rules.
Solution Approach 2:
The system introduces a new dimensional layer in the architecture: instead of a direct one-to-one mapping between parsers and engines, a middle layer (the standalone parser) is inserted that operates in a different dimensional space, converting between multiple engine-specific grammars and a universal intermediate form.
3Device complexity
If each rule engine has its own parser compiled to the respective runtime, then the parser logic is tightly coupled with the engine's compilation process, but the same parser cannot be used to generate runtime artifacts for different platforms
Solution Approach 1:
The parsing functionality is extracted from the engine-specific compilation processes and placed into a separate, standalone parser component. This extraction allows the parser to be reused across different engines and platforms without being contaminated by engine-specific compilation logic, enabling cross-platform runtime artifact generation from the same parser.
Data Source
AI summary
A method and system are provided including a parser module; a display; a memory storing processor-executable process steps; and a parser processor coupled to the memory, and in communication with the parser module and operative to execute the processor-executable steps to cause the system to: provide a user interface to a user via the display, the user interface including one or more data-entry fields; receive an expression in the one or more data-entry fields; transform the expression into a tree structure, wherein the tree structure is usable by two or more different runtime engines; and output the tree structure. Numerous other aspects are provided.


