A digital method for processing analysis and sorting queries in specific languages.

FR3152609A3Active Publication Date: 2025-03-07IMPLEX CORP
View PDF 0 Cites 0 Cited by

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-03-07
Estimated Expiration
2033-09-05

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The invention relates to a digital method for processing analysis and filtering queries in a standardized proprietary programming language, by a task orchestrator (2), comprising the steps of: - retrieval by the orchestrator (2) of a code to be processed in a standardized proprietary language; - transformation of the code to be processed into an initial abstract syntax tree convertible into a standardized programming language; - 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 C# and including annotations interpretable by a Linq conversion processor; - submission of the enriched abstract syntax tree to a translation module (5); - conversion of the enriched abstract syntax tree into a Linq expression tree; - conversion (6) of the Linq expression tree into a series of Sql queries for querying a database (8).Figure to be published with the abbreviation: Fig. 1.
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: Digital method for processing analysis and sorting queries in specific languages

[0001] The invention relates to querying and manipulating heterogeneous data, and in particular to filtering and analyzing heterogeneous data through Sql queries from a code in a specific analysis language and which may include a specific filtering language.

[0002] Filtering and analyzing massive amounts of heterogeneous data, particularly in specific fields such as metrology, requires special processing to optimally exploit the information. One of the most effective solutions for obtaining optimized filtering and analysis tools may be to rely on the use of a standardized proprietary programming language.

[0003] One drawback 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, ensuring compatibility with the object-relational mapping manager.

[0004] The invention aims to resolve one or more of these drawbacks. The invention thus relates to a digital method for processing analysis and filtering queries in a standardized proprietary programming language, via a task orchestrator, the method comprising the steps of: -retrieval 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 syntax analyzer, the syntax 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 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 series of Sql queries to query a database; -submitting the SQL query sequence to the database; -retrieval of data corresponding to the sequence 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 combined independently with the above features, without thereby constituting an intermediate generalization.

[0006] According to one variant, the retrieved data is submitted to a projection module, the projection module reformatting the content of the retrieved data according to conversion parameters of the representation of this data.

[0007] According to yet another variant, the data representation conversion parameters 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 yet another variant, the method includes a step of displaying an analysis or filtering query written in the standardized proprietary programming language in a display window of a user dashboard, editing the query in said display window by a user and providing the query to the orchestrator as code to be processed.

[0010] According to yet another variant, the process includes the dynamic real-time display of said retrieved data corresponding to the query.

[0011] The invention also relates to a digital system configured to implement the process as defined above.

[0012] Other features and advantages of the invention will become clear from the following description, which is by way of example and not limitation, with reference to the accompanying drawings, in which:

[0013] [Fig.1] is a schematic representation of an example of a query processing system for analysis and filtering 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 query;

[0015] [Fig.3] illustrates an example of a parser structure of a programming language grammar of a code in a standardized proprietary programming language;

[0016] [Fig.4] illustrates an example of an 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 that can be interpreted by the Microsoft execution machine.

[0020] Figure 1 is a schematic representation of an example of a code analysis and filtering query processing system 1 in a standardized proprietary programming language. The system 1 includes a task orchestrator 2 in a manner known per se. The system 1 also includes a parser 3, a resolver 4, a translator 5, a relational module 6, and a formatting module 7. The parser 3, the resolver 4, the translator 5, the relational module 6, and the formatting module 7 are driven by the orchestrator 2. The system 1 also has access to a relational database 8. The system 1 is typically implemented as software on a digital processing system.

[0021] Orchestrator 2 manages the sequencing of different calls to the various functional modules. 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. Orchestrator 2 explores the types and properties of a C# model recursively, according to specific parameters. This explorer 2 facilitates use when the application is used by a developer, particularly for end users.

[0022] During operation, the system 1 receives processing code from a user or application. This processing code has a syntax in a standardized proprietary programming language. An example of such processing code is shown in [Fig. 2]. This processing code is submitted to the orchestrator 2. The filtering function execution module 21 processes the code related to the filtering functions, and the analysis execution module 22 processes the code related to the analysis functions. The interaction between modules 21 and 22 and the various other modules will not be detailed further; only the processing performed by these other modules will be described. The standardized proprietary programming language provides developers with optimized filtering and analysis tools, optimized for processing large volumes of specific data with particular constraints.In particular, the proprietary programming language will allow developers to have optimal tools for specific practical applications such as metrology. Developers will have... This allows for tools tailored to the specific practical application in question. For example, the standardized programming language can be a pseudo-language. A specific and concise pseudo-language can be used for filtering functions, while an analysis language similar to JSON (associative array) can be employed.

[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 for use by the object-relational mapping manager 6. The resolver 4 has a filtering processing module 41 and an analysis processing module 42. Module 41 submits the code to be processed relating to filtering to a specific filtering module 31 of the parser 3. Module 42 submits the code to be processed relating to filtering to a specific filtering module 32 of the parser 3. The analysis code to be processed may contain nested filtering requests. Module 42 can then submit corresponding filtering requests to 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 subjected to a specific filtering module 31, and the code to be processed relating to the parsing functions is subjected to a specific parsing 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 from the specific expression language into an abstract syntax tree convertible into C++ code. An example of the structure of a parser of a programming language from code to a standardized proprietary programming language is illustrated in [Fig. 3].Antler is used, for example, 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, the combination of ANTLR and C++ achieves four times the performance of the ANTLR / Java combination.

[0025] Pre-built and optimized native C++ libraries can be provided in the parser 3 for obtaining an initial abstract syntax tree from the code to be processed. Using parser libraries (here in C++), the parser converts the initial abstract syntax trees related to filtering and the initial abstract syntax trees related to parsing 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 trace 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 includes a retouching processor 51 for parsing, a LINQ conversion processor 52 for parsing, and a listing compilation processor 53 for parsing. The translator 5 also includes a LINQ conversion processor 54 for filtering. Based on this, the processors 52 and 54 convert the enriched abstract syntax trees into their respective LINQ expression trees. The LINQ expression trees are interpretable by a Microsoft execution machine. An example of a corresponding LINQ expression tree is shown in [Fig. 7]. The processor 51 advantageously transforms an enriched abstract syntax tree to make it more usable with an associative array structure. The processor 53 advantageously performs list-type parsing for specific listing-type queries.

[0028] The Linq expression trees are submitted to the relational manager 6. The relational manager 6 converts the Linq expression trees into a series of SQL queries to query the database 8 in a processor 61. A processor 62 allows the result of a specific Entity Framework query to be formatted over a given period when the data must be returned with the time taken on the x-axis.

[0029] SQL query requests are applied to database 8 to retrieve raw data. An example of a generated 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 personalized to optimize analysis and filtering functions. Based on a declarative paradigm, this language specification provides the necessary tools for obtaining optimized analysis and filtering data, while remaining compatible with a standardized object-relational mapping manager of the Entity Framework type. System 1 can operate with a data model whose purpose is to provide cross-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 as appropriate. This raw data is subjected to different types of projections depending on the developer's choice. For example, a Cartesian projection of the data, a factored projection, or a coalescent projection can be considered. Processor 71 injects the retrieved raw data into a final dictionary corresponding to the initial structure of the analysis query. Processor 72 typically projects list-type data as an associative ASCII array. An example of list-type data as an associative ASCII array is shown 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 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 through a graphical interface or through code. This interface 9 can be independent of system 1.

[0035] The user interface may, for example, provide a selection and parameterization area 92 for initiating queries and choosing parameters, a display area 91 for queries in the specific language, potentially with 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 well-suited to a microservices environment. The standard implementation, written in C#, makes extensive use of asynchronous execution mechanisms, among other optimizations. System 1 is particularly well-suited for serverless or cloud-hosted environments.

[0037] System 1 proves particularly useful for data analysis professionals, since a query can be created once and executed on multiple relational data sources. Customized results can be injected into analytical tools. Data can be exported simply and quickly.

[0038] System 1 proves particularly useful for developers because their data model can become their analysis repository. The graphical interface 9 can be freely defined, allowing the results of queries to be displayed as 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.