Rule Engine Data Loading via Abstract Syntax Tree Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional rule engines used for processing electronic transaction requests become inefficient due to the need to retrieve large amounts of data, leading to delays and reduced performance in differentiating authorized from unauthorized requests, which affects service quality and computational power usage.
Innovation Solution
A mechanism is introduced to automatically discover the types of data required by a rule engine for evaluating transaction requests, using an abstract syntax tree to determine irrelevant paths and only retrieve necessary data, thereby optimizing data retrieval and improving processing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If a rule engine retrieves large amounts of data to evaluate transaction requests, then the accuracy of determining authorized versus unauthorized requests is improved, but the processing time increases and service performance deteriorates
Solution Approach 1:
The system performs preliminary actions by discovering and caching the data access patterns required by rule expressions before actual transaction evaluation. The abstract syntax tree is built and analyzed in advance to identify which data sources and fields are needed, allowing the system to prepare data retrieval strategies beforehand and avoid unnecessary data fetching during time-critical transaction processing
Solution Approach 2:
The rule engine's data retrieval process is segmented into distinct phases: first building an abstract syntax tree from rule expressions, then analyzing the tree to identify required data sources, and finally executing targeted data retrieval. This segmentation allows the system to separate the complex task of data access planning from the time-sensitive task of transaction evaluation, improving overall efficiency
2Reliability
If a rule engine retrieves large amounts of data to evaluate transaction requests, then the completeness of evaluation is improved, but the computational power consumption increases
Solution Approach 1:
The system applies partial action by retrieving only the specific data portions that are actually required by the rule expressions, rather than fetching complete datasets. The abstract syntax tree analysis identifies the minimal necessary data subset, allowing the engine to perform complete and accurate evaluations using only the essential data, thus reducing computational power consumption while maintaining evaluation completeness
3Adaptability or versatility
If a rule engine is made more complicated to handle a large number of different scenarios, then the versatility of the rule engine is improved, but the efficiency of processing transaction requests deteriorates
Solution Approach 1:
The rule engine employs dynamic behavior by constructing and analyzing an abstract syntax tree for each rule expression, allowing the data retrieval strategy to adapt to the specific requirements of each rule rather than using a fixed, one-size-fits-all approach. This dynamic adaptation enables the engine to handle diverse scenarios efficiently by optimizing data access patterns for each specific rule configuration
Solution Approach 2:
The rule engine performs self-service by automatically analyzing its own rule expressions to determine data requirements. The system builds abstract syntax trees from the rule expressions and autonomously identifies which data sources and fields are needed, eliminating the need for external configuration or manual optimization and enabling the engine to efficiently handle varying rule complexities
Data Source
AI summary
Methods and systems for using machine learning to automatically determine a data loading configuration for a computer-based rule engine are presented. The computer-based rule engine is configured to use rules to evaluate incoming transaction requests. Data of various data types may be required by the rule engine when evaluating the incoming transaction requests. The data loading configuration specifies pre-loading data associated with at least a first data type and lazy-loading data associated with at least a second data type. Statistical data such as use rates and loading times associated with the various data types may be supplied to a machine learning module to determine a particular loading configuration for the various data types. The computer-based rule engine then loads data according to the data loading configuration when evaluating a subsequent transaction request.


