Parser Generation via Declarative Configuration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing parsing tools face challenges in handling complex and frequently changing data conversion environments, leading to increased complexity and resource requirements, and struggle with efficient and reliable data translation across different formats.
Innovation Solution
The system allows for the definition, generation, and utilization of a parser that can handle complex text transformations by receiving a parsing definition, generating a parser, and performing text transformations, enabling greater flexibility and efficiency in data conversion across various formats.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If traditional regular expression transformations are used for data conversion, then simple data conversions can be achieved efficiently, but complex transformations become very difficult to write, test, modify, and interpret
Solution Approach 1:
The patent introduces an intermediary component (a configuration file or metadata schema) that mediates between the data source and the parser. This intermediary defines the transformation rules in a declarative format, separating the complexity of transformation logic from the parser implementation. The parser becomes a generic engine that reads transformations from the intermediary rather than having complex transformation logic embedded directly in the parser code.
Solution Approach 2:
The patent extracts the transformation logic from the parser itself and places it in a separate configuration file or metadata schema. This extraction allows the parser to remain simple and generic, while the complex transformation rules are defined externally in a more manageable format that is easier to write, test, and modify.
2Adaptability or versatility
If the number of different formats a parser must support increases, then the parser's adaptability improves, but the software development resources required to update and test the parser increase dramatically
Solution Approach 1:
The patent creates a universal parser framework that can handle multiple data formats through a common interface and configuration mechanism. Instead of building separate parsers for each format, the system uses a single parser engine that adapts to different formats through configuration files or metadata schemas, making the parser multi-functional without proportionally increasing development complexity.
Solution Approach 2:
The patent enables format adaptability through parameter changes in configuration files or metadata schemas rather than code changes. When a new format needs to be supported, the system adapts by changing the transformation parameters and rules defined in the configuration, not by rewriting the parser logic, thus reducing development and testing time.
3Adaptability or versatility
If complex transformations are performed using multiple regular expression transformations, then transformation capability increases, but the conceptual complexity and practical expense of developing and maintaining the parser significantly increase
Solution Approach 1:
The patent segments the transformation process into multiple independent, composable transformation rules defined in a configuration file. Each transformation rule is a discrete unit that can be independently defined, tested, and maintained. The configuration file organizes these segmented transformations in a structured format that reduces the conceptual complexity of managing multiple transformation steps.
Solution Approach 2:
The configuration file or metadata schema acts as an intermediary that manages the complexity of multiple transformations. Instead of chaining regular expressions directly in code, the intermediary layer provides a structured way to define, organize, and maintain multiple transformation rules, reducing the practical expense of development and maintenance.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A parser for parsing complex data is disclosed for avoiding the shortcomings of traditional text parsers by defining, constructing, and utilizing a parser in ways that allow for greater parsing complexity and flexibility, allowing performance of text transformations of greater complexity than would have been practical with traditional parsers. In some embodiments, a method is provided for receiving a parser definition as an input to a parser generator and generating a parser at least in part from the parser definition. In some embodiments, the generated parser comprises two or more handlers forming a processing pipeline. In some embodiments, the parser receives as input a first string into the processing pipeline. In some embodiments, the parser generates a second string by a first handler and inputs the second string regeneratively into the parsing pipeline, if the first string matches an expression specified for the first handler in the parser definition.