Dynamic Parser Generation for Hierarchical Data Formats
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional data parsers are inflexible and require significant redevelopment to accommodate different data formats, leading to increased development time and reduced performance due to static design and local routing limitations.
Innovation Solution
The development of a parser generation technique that uses global routing to generate parsers capable of handling hierarchical data formats, allowing for efficient conversion between various data formats and reducing the need for extensive redevelopment by utilizing global routing and data format mapping, transition analysis, and program generation modules.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional data parsers are designed with a static set of data formats, then development time for initial parser creation is reduced, but adaptability to handle additional data formats deteriorates
Solution Approach 1:
The patent implements dynamic parser generation where the parser structure is not fixed but can be automatically adapted to different data formats. The system uses a grammar definition language and parser generator that dynamically creates parser code based on the specific data format requirements, allowing the same parser framework to handle multiple formats without manual redevelopment.
Solution Approach 2:
The patent changes the parameters of parser generation by using configurable grammar definitions and production rules. Instead of hardcoding parsers for specific formats, the system allows parameterization through grammar files that can be modified to accommodate different data formats, enabling the parser to adapt its behavior based on format specifications.
2Productivity
If parsers use local routing for data parsing, then parsing operations at individual levels are simplified, but overall parsing efficiency and context awareness deteriorate
Solution Approach 1:
The patent merges local routing decisions with global routing strategies by implementing a unified parsing approach that considers both immediate parsing needs and overall data structure context. The parser generator creates parsing operations that integrate local level parsing with global structure awareness, allowing efficient parsing while maintaining context awareness across the entire data hierarchy.
Solution Approach 2:
The patent adds a global routing dimension to the parsing process by considering transitions between elements at all levels of the hierarchical data format, not just at the current level. This dimensional expansion allows the parser to make more informed decisions about data transitions, reducing unnecessary context checks and improving overall parsing efficiency.
3Reliability
If parsers perform extensive context checks and length verification, then data validation reliability is improved, but parsing speed deteriorates
Solution Approach 1:
The patent performs preliminary actions by pre-defining the grammar rules and production rules for data formats before actual parsing occurs. The parser generator pre-computes the necessary parsing logic and transition rules, so that during actual data parsing, the system can proceed more quickly without needing to perform extensive real-time context checks and length verifications.
Solution Approach 2:
The parser system serves itself by automatically generating its own parsing logic based on the grammar definitions. The parser generator creates optimized parsing code that includes built-in validation capabilities, reducing the need for separate context checking operations and improving both speed and reliability.
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
Generating a data parser (418) for parsing an input stream (504) of data objects includes: receiving information (502) representative of a hierarchical data format (105, 205) defining a plurality of objects organized in a hierarchy, the objects including one or more schema objects representing data objects, and one or more container objects each associated with one or more schema objects; and processing the received information to form the data parser. The processing includes: determining permissible transitions between successive data objects in the input stream; associating one or more data operations with each of the determined permissible transitions; and storing a specification for configuring a processor to execute the data parser.