Decoupled Rule Parser for Cross-Engine Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveparser integration reliabilityVSAvoidparser reusability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

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

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

Engineering Contradiction:
Improveengine-specific optimizationVSAvoiddeveloper flexibility
Core Design Contradiction:
Ease of manufactureVSEase of operation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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

Engineering Contradiction:
Improveparser-engine couplingVSAvoidcross-platform runtime generation
Core Design Contradiction:
Device complexityVSAdaptability or versatility

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10162613B1Re-usable rule parser for different runtime engines
Publication Date: 2018.12.25 SAP PORTALS ISRAEL
  • US10162613B1 patent drawing
  • US10162613B1 patent drawing
  • US10162613B1 patent drawing

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.