Digital process for processing analysis and sorting queries in specific languages
The digital method addresses integration challenges by converting proprietary language code into C#-compatible syntax trees for SQL queries, enabling efficient and customizable data filtering and analysis across platforms.
Patent Information
- Application Number
- FR2023009320
- Authority / Receiving Office
- FR · FR
- Patent Type
- Utility models
- Current Assignee / Owner
- Filing Date
- 2023-09-05
- Publication Date
- 2025-09-26
- Estimated Expiration
- 2033-09-05
AI Technical Summary
Existing technologies face challenges in integrating standardized proprietary programming languages with object-relational mapping managers like Entity Framework, particularly due to compatibility issues between C# and other languages, hindering optimal filtering and analysis of heterogeneous data.
A digital method involving a task orchestrator that processes code in a standardized proprietary language, converting it into an initial abstract syntax tree, then into an enriched abstract syntax tree compatible with C#, and finally into Linq expression trees for generating SQL queries, ensuring compatibility and optimization.
Enables efficient and compatible filtering and analysis of heterogeneous data, supporting multi-platform analysis on relational data while maintaining compatibility with Entity Framework, and providing customizable and extensible language specifications.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention: Digital method for processing analysis and sorting requests in specific languages
[0001] The invention relates to the querying and manipulation of heterogeneous data, and in particular the filtering and analysis of heterogeneous data by means of Sql queries from code in a specific analysis language and which may include a specific filtering language.
[0002] Filtering and analyzing heterogeneous mass data, particularly in specific fields such as metrology, requires specific processing to be able to exploit the information optimally. To have optimized filtering and analysis tools, one of the most effective solutions may be to rely on the use of a standardized proprietary programming language.
[0003] A disadvantage of such a solution may be its integration with other tools capable of generating Sql queries using multiple functionalities, from object-relational mapping managers such as Entity Framework, distributed by Microsoft with its .NET technology. Such object-relational mapping managers are notably based on the use of the C# programming language. There is therefore a difficulty in using on the one hand an optimal standardized proprietary programming language and on the other hand compatibility with the object-relational mapping manager.
[0004] The invention aims to solve one or more of these drawbacks. The invention thus relates to a digital method for processing analysis and filtering requests in a standardized proprietary programming language, by means of a task orchestrator, the method comprising the steps of: -recovery by the orchestrator of a code to be processed containing analysis and filtering functions, the code to be processed having the syntax of the standardized proprietary language; -submission of the code to be processed to a syntactic analyzer, the syntactic analyzer transforms the code to be processed into an initial abstract syntax tree convertible into a standardized programming language according to a conversion parameter file; -submission of the initial abstract syntax tree to a resolver; - conversion by the resolver of the initial abstract syntax tree into an enriched abstract syntax tree convertible into the C# programming language and including annotations interpretable by a Linq conversion processor; -submission of the enriched abstract syntax tree to a translation module; -conversion by the translation module of the enriched abstract syntax tree into a Linq expression tree; -conversion of the Linq expression tree into a sequence of Sql queries to query a database; -submission of the Sql query sequence to the database; -recovery of data corresponding to the series of Sql queries.
[0005] The invention also relates to the following variants. Those skilled in the art will understand that each of the features of the following variants can be independently combined with the above features, without constituting an intermediate generalization.
[0006] According to a variant, the recovered data is submitted to a projection module, the projection module reformatting the content of the recovered data according to conversion parameters of the representation of this data.
[0007] According to another variant, the conversion parameters of the data representation are chosen from a Cartesian representation or a factored or coalescent representation.
[0008] According to another variant, the standardized programming language is C++.
[0009] According to another variant, the method comprises a step of displaying an analysis or filtering query written according to the standardized proprietary programming language in a display window of a user dashboard, editing by a user of the query in said display window and providing the query to the orchestrator as code to be processed.
[0010] According to yet another variant, the method comprises the dynamic display in real time of said retrieved data corresponding to the query.
[0011] The invention also relates to a digital system configured to implement the method as defined above.
[0012] Other characteristics and advantages of the invention will emerge clearly from the description given below, for information purposes only and in no way limiting, with reference to the appended drawings, in which:
[0013] [Fig.l] is a schematic representation of an example of a system for processing analysis and filtering queries from a standardized proprietary programming language;
[0014] [Fig.2] illustrates an example of code to be processed expressed in a proprietary language normalized corresponding to an analysis and filtering request;
[0015] [Fig.3] illustrates an example of a parser structure of a pro language programming of a code in a standardized proprietary programming language;
[0016] [Fig.4] illustrates an example of a query Sql query;
[0017] [Fig.5] illustrates an enriched abstract syntax tree corresponding to this code to be processed;
[0018] [Fig.6] illustrates an example of list type data in the form of an ASCII table associative;
[0019] [Fig.7] illustrates an example of a representation of an example of a textual representation of a specific Entity Framework query interpretable by the Microsoft runtime machine.
[0020] [Fig.l] is a schematic representation of an example of a system 1 for processing code analysis and filtering requests in a standardized proprietary programming language. The system 1 comprises a task orchestrator 2 in a manner known per se. The system 1 further comprises a syntactic analyzer 3, a resolver 4, a translator 5, a relational module 6 and a formatting module 7. The syntactic analyzer 3, the resolver 4, the translator 5, the relational module 6 and the formatting module 7 are controlled by the orchestrator 2. The system 1 also has access to a relational database 8. The system 1 is typically implemented in software form on a digital processing system.
[0021] The orchestrator 2 controls the sequences of the different calls of the different functional modules. The orchestrator 2 includes a filtering function execution module 21 and an analysis function execution module 22. The filtering execution module 21 executes a filtering query on data from a relational database. The filtering execution module 21 returns the properties of the final objects corresponding to the filtering. The analysis execution module 22 executes an analysis query on the data from the relational database. The analysis execution module 22 returns a structure corresponding to the query with the results injected into this structure. The orchestrator 2 explores the types and properties of a C# model, recursively, according to precise parameters. This explorer 2 makes it easier to use when the application is used by a developer, particularly for end users.
[0022] During its operation, the system 1 receives a code to be processed from a user or an application. This code to be processed has a syntax in a standardized proprietary programming language. An example of such a code to be processed is illustrated in [Fig.2]. This code to be processed is submitted to the orchestrator 2. The filtering function execution module 21 will process the code relating to the filtering functions, the analysis execution module 22 will process the code relating to the analysis functions. The interaction between the modules 21 and 22 and the various other modules will not be detailed further below, only the processing carried out by these other modules being detailed. The standardized proprietary programming language allows developers to have optimized filtering and analysis tools, optimized to process specific data en masse with particular constraints.In particular, the proprietary programming language will provide developers with optimal tools for specific practical applications such as metrology. Developers will have . thus tools adapted to the specific practical application targeted. For example, the standardized programming language can be of the pseudo-language type. For example, we can provide a specific and concise pseudo-language for filtering functions and have an analysis language close to Json (associative array).
[0023] The orchestrator 2 submits the code to be processed to the resolver 4. The resolver 4 is intended, for example, to ensure interoperability between a standardized programming language such as C++ and a programming language such as C# intended to be used by the object-relational mapping manager 6. The resolver 4 has a filtering processing module 41 and an analysis processing module 42. The module 41 submits the code to be processed relating to the filtering to a specific filtering module 31 of the syntactic analyzer 3. The module 42 submits the code to be processed relating to the filtering to a specific filtering module 32 of the syntactic analyzer 3. The code to be processed relating to the analysis may contain nested filtering requests. The module 42 can then submit corresponding filtering requests to the module 41.
[0024] The parser 3 transforms the code to be processed into an initial abstract syntax tree. This initial abstract syntax tree is convertible into a standardized programming language, typically C++. The code to be processed relating to the filtering functions is submitted to a specific filtering module 31 and the code to be processed relating to the analysis functions is submitted to a specific analysis module 32. The parser 3 transforms the code to be processed into an initial abstract syntax tree, based on the interpretation and conversion rules of a conversion parameter file, to convert the specific expression language into an abstract syntax tree convertible into C++ code. An example of a parser structure of a programming language of a standardized proprietary programming language code is illustrated in [Fig.3].For example, Antler is used to implement this generation of the initial abstract syntax tree, which performs this conversion based on a grammar or set of conversion rules. According to simulations carried out, the combination of ANTLR and C++ achieves a performance four times higher than the ANTLR / Java combination.
[0025] Ready-made and optimized native C++ libraries can be provided in the parser 3 to obtain an initial abstract syntax tree from code to be processed. Using parser libraries (here in C++), the parser converts the initial abstract syntax trees relating to filtering and the initial abstract syntax trees relating to analysis into respective enriched abstract syntax trees, convertible into the C# programming language and including annotations interpretable by a Linq conversion processor. The enriched abstract syntax trees are therefore interoperable with C# and facilitate translation into a Linq execution tree. An example of an enriched abstract syntax tree is illustrated in [Fig.5].
[0026] The enriched abstract syntax trees are submitted to resolver 4. The enriched abstract syntax trees relating to filtering are submitted to module 41 and the enriched abstract syntax trees relating to analysis are submitted to module 42. Modules 41 and 42 of resolver 4 replicate the data structure to make the variables and data in memory usable by the C# programming language.
[0027] The enriched abstract syntax trees are submitted to the translator 5. The translator 5 comprises a retouch processor 51 for parsing, a Linq conversion processor for parsing 52 and a listing compilation processor for parsing 53. The translator 5 also comprises a Linq conversion processor for filtering 54. On this basis, the processors 52 and 54 convert the enriched abstract syntax trees into respective Linq expression trees. The Linq expression trees are interpretable by a Microsoft runtime machine. An example of a corresponding Linq expression tree is illustrated in [Fig.7]. The processor 51 advantageously makes it possible to transform an enriched abstract syntax tree in order to make it more usable with an associative array type structure. The processor 53 advantageously makes it possible to carry out list type analyses for specific queries of the listing type.
[0028] The Linq expression trees are submitted to the relational manager 6. The relational manager 6 converts in a manner known per se the Linq expression trees into a series of Sql queries for querying the database 8 in a processor 61. A processor 62 makes it possible to format the result of a specific Entity Framework query over a given period when the data must be returned with the time taken on the abscissa.
[0029] Query Sql queries are applied to the database 8 to retrieve raw data. An example of a generated query Sql query is shown in [Fig.4].
[0030] Undefined objects may be reserved for later execution.
[0031] The program of the invention can thus provide a powerful and extensible standard language specification. This language specification can be fully customized and customizable to optimize the analysis and filtering functions. Based on a declarative paradigm, this language specification provides the tools necessary to obtain optimized analysis and filtering data, while remaining compatible with a standardized object-relational mapping manager 6 and Entity Framework type. The system 1 can operate with a data model whose purpose is to provide multi-platform analysis on relational data.
[0032] The raw analysis data is applied to the formatter 7, to a generic projection processor 71 or to a listing projection processor 72 if applicable. These raw data are subjected to different types of projections depending on the developer's choice. For example, we can consider a Cartesian projection of the data, a factored projection, for example of the coalescent type. The processor 71 injects the recovered raw data into a final dictionary corresponding to the initial structure of the analysis query. The processor 72 typically allows the list-type data to be projected in the form of an associative ASCII table. An example of list-type data in the form of an associative ASCII table is illustrated in [Fig.6].
[0033] The use of these different projections will facilitate the exploitation of information during the generation of Sql queries, in order to be able to benefit from a dynamic reactive execution from queries in potentially complex languages.
[0034] A user interface 9 (typically a user dashboard) optionally allows the user to define filters and analysis criteria to be executed by the explorer, either by a graphical interface or by code. This interface 9 can be independent of the system 1.
[0035] The user interface may, for example, provide a selection and configuration area 92 for initiating queries and choosing the settings, a display area 91 for the queries in the specific language, with potentially the possibility of modifying the corresponding code directly in this area 91, and a display area 93 for results, for example in graphical form.
[0036] System 1 is particularly suited to a microservices context. The standard implementation, carried out in C#, makes extensive use of asynchronous execution mechanisms among other optimizations. System 1 is particularly suited to serverless executions or cloud hosting.
[0037] System 1 is particularly useful for data analysis professionals, since a query can be created in one go and executed on multiple relational data sources. Customized results can be injected into analysis tools. Data can be exported simply and quickly.
[0038] System 1 is particularly useful for developers because their data model can become their analysis reference. The graphical interface 9 can be freely defined, to be able to exploit the results of the queries in the form of graphs or data grids for example.
Claims
Claims
1. A digital method for processing analysis and filtering requests in a standardized proprietary programming language, via a task orchestrator (2), the method comprising the steps of: -recovery by the orchestrator (2) of a code to be processed containing analysis and filtering functions, the code to be processed having the syntax of the standardized proprietary language; -submission of the code to be processed to a syntactic analyzer (3), the syntactic analyzer (3) transforms the code to be processed into an initial abstract syntax tree convertible into a standardized programming language according to a conversion parameter file; -submission of the initial abstract syntax tree to a resolver (4); -conversion by the resolver (4) of the initial abstract syntax tree into an enriched abstract syntax tree convertible into the C# programming language and including annotations interpretable by a Linq conversion processor;-submission of the enriched abstract syntax tree to a translation module (5); -conversion by the translation module (5) of the enriched abstract syntax tree into a Linq expression tree; -conversion (6) of the Linq expression tree into a sequence of SQL queries for querying a database (8); -submission of the sequence of SQL queries to the database; -retrieval of the data corresponding to the sequence of SQL queries.
2. Digital method for processing analysis and filtering requests according to claim 1, in which the retrieved data is submitted to a projection module (7), the projection module reformatting the content of the retrieved data according to conversion parameters of the representation of this data.
3. Digital method for processing analysis and filtering requests according to claim 2, in which the conversion parameters of the data representation are chosen from a Cartesian representation or a factorized or coalescent representation.
4. A digital method for processing analysis and filtering queries according to any one of the preceding claims, wherein the standardized programming language is C++.
5. A digital method for processing analysis and filtering queries according to any one of the preceding claims, comprising a step of displaying an analysis or filtering query written according to the standardized proprietary programming language in a display window of a user dashboard (9), editing by a user of the query in said display window and providing the query to the orchestrator (2) as code to be processed.
6. A digital method for processing analysis and filtering queries according to claim 5, comprising dynamically displaying in real time said retrieved data corresponding to the query.
7. Digital system (1) characterized in that it is configured to implement the method according to any one of the preceding claims.
