Method and system for generating specific engineering program compatible with computing platform

The system uses transformer autoencoder models to efficiently generate engineering programs compatible with specific computing platforms by capturing code element interdependencies, thereby reducing manual effort and ensuring compatibility.

WO2025104153A1PCT designated stage expired Publication Date: 2025-05-22SIEMENS AG
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2024/082306
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-11-14
Filing Date
2024-11-14
Publication Date
2025-05-22

AI Technical Summary

Technical Problem

Existing methods for generating engineering programs compatible with specific computing platforms are labor-intensive and inefficient, requiring manual recoding and failing to capture interdependencies between code elements.

Method used

A system utilizing transformer autoencoder models to generate specific engineering programs compatible with computing platforms by capturing similarities and interrelationships between code elements in a holistic manner.

Benefits of technology

Automatically generates engineering programs that are compatible with target computing platforms, reducing manual labor and time, while accurately representing interdependencies between code elements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024082306_22052025_PF_FP_ABST
    Figure EP2024082306_22052025_PF_FP_ABST
Patent Text Reader

Abstract

The present invention provides a method and system for generating a specific engineering program compatible with computing platform. The method comprises receiving, by a processing unit (202), a user request to generate a specific engineering program (712) from information associated with at least one engineering program (702). The method further comprises generating, by the processing unit (202), a knowledge graph (708) based on the information associated with the at least one engineering program. The method further comprises applying, by the processing unit, a transformer autoencoder model 124A, on the generated knowledge graph (708), wherein the transformer autoencoder model (124A) is configured to generate the specific engineering program (712) based on the knowledge graph (708). The method further comprises generating, by the processing unit, the specific engineering program (712) based on the application of the transformer autoencoder model (124A) on the knowledge graph (708).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] METHOD AND SYSTEM FOR GENERATING SPECIFIC ENGINEERING PROGRAM COMPATIBLE WITH COMPUTING PLATFORM

[0002] Description

[0003] The present invention relates to a f ield of computer assisted programming , and more particularly relates to a method and system for generation of a specif ic engineering program which is compatible with a specif ic computing platform .

[0004] Typically, an engineering program is coded manually by a coder , so that the engineering program is executable in a computing platform . The computing platform refers to any computing infrastructure which is capable of executing one or more computer programs . Examples of the computing platform includes , but is not limited to a operating system based platform, a cloud computing platform, a hardware based platform, and a programmable logic controller based platform . In one example , the computing platform may execute the engineering program only if the engineering program is coded in compliance with a specif ication associated with the computing platform . The specif ication comprises information associated with a plural ity of syntactic and semantic rules , which def ine a manner in which the engineering program should be coded in the engi - neeering program, so that the engineering program is compati ble with the computing platform . Examples of the plurality of constituent elements include but is not limited to a function, a variable , a conditional statement , a word, a class , a graphical obj ect , and a loop statement in the engineering program . Thus , the engineering program has to be coded manually by the coder in line with the plurality of syntactic and semantic rules .

[0005] The plurality of syntactic and semantic rules vary depending upon a plurality of factors such as the computing platform, a version of an operating system running in the computing plat form, and a coding language used to code the engineering program . Furthermore , a company which owns the computing plat form may have a list of company specif ic policies which dictate a manner in which the engineering program should be coded .

[0006] In one example , a f irst specif ication is associated with a f irst computing platform and a second specif ication is associated with a second computing platform . In one scenario , the engineering program, which is coded in accordance with the f irst specif ication, is to be executed in the second computing platform . In such a scenario , the coder has to manually recode the engineering program based on the second specif ication . Furthermore , in a case where a version of the operating system is upgraded, the coder has to manually modify the engineering program to conform to a plurality of rules and pol icies associated with an upgraded version of the operating system .

[0007] Furthermore , in a case where an engineering program has to be recoded in a dif ferent programming language , the coder has to manually re- code the engineering program based on a set of syntactic and semantic rules of the programming language .

[0008] It is dif f icult to modify the engineering program manually because of the large number of design features and lines of program code of the engineering program . Furthermore , it is impossible to use a traditional language translator algorithm to translate the engineering program to a dif ferent programming language because the traditional translator algorithms fail to capture a plurality of interdependencies between the plurality of constituent elements of the engineering program . In other words , it is laboursome for the coder to manually modify a huge number of data items and a huge number of metadata items in the engineering program so that a modif ied engineering program conforms with rules and policies associ ated with an upgraded computing platform or an upgraded operating system .

[0009] Prior to the present invention, several prior art documents have addressed the challenges associated with manual translation of programming code from one specif ication to other . In a f irst prior art reference , a LSTM encoder-decoder is used to translate a pseudocode to C++ language . The LSTM encoderdecoder model is conf igured to translate each line of the pseudocode sequentially to generate a C++ code snippet . In a second prior art reference , a pretrained language model is conf igured to translate textual data from a f irst natural language to a second natural language . To perform the trans lation, the pretrained language model f irst converts the textual data into a knowledge graph and further inj ects data captured from internet into the knowledge graph . The pretrained language model further applies a graph neural network on the knowledge graph to identify subgraphs which have been inj ected into the knowledge graph . Furthermore , the pretrained language model ranks the identif ied subgraphs based on a degree of relevancy . The pretrained language model uses the knowledge graph and the ranked list of the identif ied subgraphs to translate the textual data from the f irst natual language to the second natural language . In a third prior art reference , a cross - lingual language model is pretrained using mono lingual source code data sets . Further , a denoising autoencoding algorithm is used to generate translations of a plurality of input sequences to the cross - lingual language model . However , none of the aforementioned prior arts teach or suggest a system which recodes an engineering program after capturing a plurality of similarities and a plurality of interrelationships between a plurality of constituent data items of the engineering program in a holistic manner . Furthermore , none of the aforementioned prior arts teaches a system which performs translation of the input engineering program by pri oritizing the captured plurality of similarities and the captured plurality of interrelationships between the plurality of constituent data items .

[0010] In light of above , there exists a need for an ef f icient method and system for generating a specif ic engineering program from information associated with at least one engineering program .

[0011] Therefore , it is an obj ect of the present invention to provide a method and system for generating a specif ic engineering program which is compatible with a specif ic computing platform . The present invention is implemented by an automation module which is implemented in one or more processing units in an industrial plant .

[0012] The obj ect of the invention is achieved by a computer implemented method of generating a specif ic engineering program which is compatible with a specif ic computing platform . In one example , the specif ic engineering program comprises a plurality of code segments which are implementations of one or more functions . The one or more functions include at least one of a computer function, a mathematical function, a control function, an image processsing function . A controller device such as a programmable logical controller i s conf igured to execute the specif ic engineering program or the at least one engineering program to implement the one or more functions in an industrial plant . Examples of the industrial plants include but is not limited to a manufacturing plant , an energy production plant , a waste management plant and a water treatment plant .

[0013] The computing platform refers to any computing infrastructure which is capable of executing one or more engineering programs . Examples of the computing platform includes , but is not limited to a operating system based platform, a cloud computing platform, a hardware based platform, and a programmable logic controller based platform . In one example , the computing platform may execute the specif ic engineering program only if the engineering program is coded in compliance with a specif ication associated with the computing platform . The specif ication comprises information associated with a plurality of syntactic and semantic rules , which def ine a manner in which the engineering program should be coded, so that the engineering program is compatible with the computing platform . Thus , the engineering program has to be coded manually by the coder in line with the plurality of syntactic and semantic rules .

[0014] An engineering program is hereafter referred to as being compatible with a specif ic computing platform i f the specif ic engineering program fulf ills a plurality of compatibility requirements of the specif ic computing platform . The plurality of compatibility requirements includes but is not limited to a programming language compatible with the specif ic computing platform, a syntax compatible with the specif ic computing platform, and a program length compatible with the specif ic computing platform . The plurality of compatibility requirements comprises a set of syntactic and semantic rules . The set of syntactic and semantic rules comprises a rule for naming progrm variable , a rule for naming program data struc- tures , a rule for generating conditional and loop statement , s and a rule for arranging one or more code elements in the engineering program . In other words , the engineering program is compatible with the specif ic computing platform if the engi neering program is coded in a specif ic specif ication which encompases the set of syntactic and semantic rules .

[0015] The automation module is conf igured to generate the specif ic engineering program from information associated with at least one engineering program . The information associated with the at least one engineering program may be received from a user . The at least one engineering program is coded in accordance with a f irst specif ication . The generated specif ic engineering program is coded in accordance with a second specif ication . The second specif ication comprises a set of syntactic and semantic rules which are aligned with the plurality of compatibility requirements of the specif ic computing plat form . Thus , the generated specif ic engineering program is compatible with the computing platform .

[0016] In one example , the at least one engineering program compris es a programming language based implementation of one or more functions . Furthermore , the specif ic engineering program comprises a natural language based description of the one or more functions . In the at least one engineering program, the one or more functions are described in at least one of a high level language such as IECPL , in a machine language or in an Assembly language . In the specif ic engineering program, the one or more functions are described in a natural language like English . In such a case , the automation module is configured to generate the specif ic engineering program which comprises the natural language based description of the one or more functions , from the at least one engineering program .

[0017] In another example , the at least one engineering program is a graphical program which is indicative of a plurality of func- tions, depicted as graphical programming blocks. The specific engineering program is a machine language based implementation of the plurality of functions. In such a case, the automation module is configured to generate the specific engineering program which comprises the machine language based implementation of the plurality of functions, from the graphical program which is indicative of the plurality of functions .

[0018] In a preferred embodiment, the method comprises training, by the processing unit, a plurality of transformer autoencoder models to generate a first engineering program from a second engineering program. Each transformer autoencoder model of the plurality of transformer autoencoder models is an artifi- cal intelligence model such as a convolutional neural network or a deep neural network. The first engineering program is of a first specification and the second engineering program is of a second specification. The first specification and the second specification are indicative of a plurality of syntactic and semantic rules associated with the first engineering program and the second engineering program respectively. The first engineering program comprises information arranged in accordance with the first specification and the second engineering program comprises information arranged in accordance with the second specification.

[0019] Each transformer autoencoder model of the plurality of transformer autoencoder model has a specific transformation objective. The specific transformation objective of a transformer autoencoder model is indicative of an input specification and an output specification of the transformer autoencoder model. For example, each transformer autoencoder model of the plurality of transformer autoencoder models is configured to convert information associated with an engineering program with an input specif ication into a autoencoder specif ic engi neering program of a specif ic specif ication . The input speci f ication is indicative of a format of the engineering program which is converted by the transformer autoencoder model .

[0020] The information associated with the engineering program comprises a plurality of node embeddings of a knowledge graph associated with the engineering program . The plurality of node embeddings is a vector space representation of a plural ity of nodes of a name graph of the engineering program . The name graph comprises information associated with one or more constituent data items of the engineering program, such as words , code segments , graphical obj ects , functions , variables , comments , classes , data structures , and code snippets and a plurality of interdependencies between the one or more constituent data items . In the vector space representation of the plurality of nodes , the plurality of nodes are arranged in such a manner that a distance between two or more nodes in the vector space representation is inversely proportional to a degree of similarity between the two or more nodes of the plurality of nodes . Thus , each node in the plurality of node embeddings carry information about the node themselves and further carry information about neighbouring nodes .

[0021] In a preferred embodiment , each transformer autoencoder model of the plurality of transformer autoencoder models comprises an encoder model and a decoder model . The encoder model of each transformer autoencoder model comprises a f irst set of neurons and a f irst set of neural weights . The encoder model is at least one of a Graph Convolutional Networks , GraphSAGE (Graph Sample and Aggregated Embedding) , or a Graph Isomorphism Network (GIN) . The decoder model of each transformer autoencoder model comprises a second set of neurons and a second set of neural weights . Examples of the decoder model includes but is not limited to a Feedforward Decoder model, a Convolutional Decoder model, a Graph Decoder model, or a Recurrent Generative Model based decoders.

[0022] The processing unit is configured to train the encoder model for each transformer autoencoder model of the plurality of transformer autoencoder models by iterative execution of a first set of steps. In one example, each execution of the first set of steps trains an encoder model of a specific transformer autoencoder model of the plurality of transformer autoencoder models.

[0023] To train an encoder model of the specific transformer autoencoder model of the plurality of transformer autoencoder models, the processing unit executes the first step of the first set of steps. In the first step of the first set of steps, the processing unit is configured to receive a plurality of input data items. The plurality of input data items comprises a plurality of portions of a knowledge graph associated with the engineering program.

[0024] In a second step of the first set of steps, the processing unit is configured to apply the encoder model on the plurality of input data items. The encoder model is configured to encode the plurality of input data items to generate a plurality of encoded data items. The plurality of encoded data items is at least one of a graph embedding, a word embedding, state embeddings, or sequence-to-sequence embedding.

[0025] In a third step of the first set of steps, the processing unit is configured to apply the decoder model on the plurality of encoded data items to generate a plurality of reconstructed data items. The decoder model is configured to reconstruct the plurality of input data items from the plurali- ty of encoded data items . However , the decoder model is unable to generate a faithful reconstruction of the plurality of input data items as there is a possibility of reconstruction loss . Thus , the generated plurality of reconstructed data items is dif ferent from the plurality of input data items .

[0026] In a fourth step of the f irst set of steps , the processing unit is conf igured to compare the plurality of input data items with the plurality of reconstructed data items . In one example , the plurality of input data items is compared with the plurality of reconstructed data items by application of a of a comparison algorithm such as cosine similarity algorithms , Levenshtein distance , Jaccard similarity, or Sounde algorithms on the plurality of reconstructed data items and the plurality of input data items . The processing unit is further conf igured to determine a reconstruction loss parameter based on the comparison . In one example , the reconstruction loss parameter is indicative of a plurality of dif ferences between the plurality of input data items and the plurality of reconstructed data items . In other words , the reconstruction loss parameter is indicative of a reconstruction loss associated with the transformer autoencoder model .

[0027] In a f ifth step of the f irst set of steps , the processing unit is conf igured to apply an optimizing algorithm on the encoder model to optimize the f irst set of neural weights of the f irst set of neurons of the encoder model . In one example , the optimization algorithm is a Stochastic Gradient Descent optimizer algorithm which is conf igured to optimize the first set of weights with an optimization goal of minimizing the reconstruction loss parameter of the transformer autoencoder model . In other words , the processing unit is conf igured to optimize the f irst set of neural weights of the encoder model by application of the optimization algorithm on the f irst set of neural weights based on the determined reconstruction loss parameter . Thus the processing unit is conf igured to iterate the f irst set of steps until the f irst set of weights are optimized such that the reconstruction loss parameter is minimized . Thus , the processing unit is conf igured to train the encoder model of each transformer autoencoder model by iterative execution of the f irst set of steps .

[0028] Similarly, a decoder model of each transformer autoencoder model is trained by the processing unit by iteratively executing the second set of steps . To train a decoder model of a specif ic transformer autoencoder model of the plurality of transformer autoencoder models , the processing unit executes the f irst step of the second set of steps . In the f irst step of the second set of steps , the processing unit is conf igured to receive an input data item . The input data item is a portion of a knowledge graph associated with the engineering program . In one example , the input data item comprises at least one node embedding of the knowledge graph . In another example , the input data item is at least one constituent data item of the plurality of constituent data items of the engi neering program .

[0029] In the f irst step , the processing unit is further conf igured to receive an expected data item from a user or from a database . It is noted that the transformer autoencoder model is trained to generate the autoencoder specif ic engineering program . The expected data item is a portion of the autoencoder specif ic engineering program which corresponds to the trans former autoencoder model . In other words , the transformer autoencoder model is ideally expected to convert the input data item to the expected data item . In one example , the user generates the expected data item manually and the processing unit receives the expected data item from the user . In other words , in a case where the input data item corresponds to a specif ic portion of the engineering program, the expected data item is a portion, of the autoencoder specif ic engineering program, which corresponds to the specif ic portion of the engineering program .

[0030] In one example , the transformer autoencoder model is conf igured to generate an autoencoder specif ic engineering program which is a natural language based representation of a plural ity of functions . Further , in the example , the engineering program, which is to be processed by the transformer autoencoder model , comprises sourcecode which implements the plurality of functions in a programming language . In such a case , the transformer autoencoder model is trained to convert the natural language based representation into the sourcecode . In such a case , the input data item comprises a portion of a knowledge graph representation of the natural language based representation of a plurality of functions . Furthermore , the expected data item comprises a portion of the sourcecode of the autoencoder specif ic engineering program . A transformation obj ective of the transformer autoencoder model is to transform the input data item into the portion of the sourcecode of the autoencoder specif ic engineering program .

[0031] In another example , the engineering program, which is processed by the transformer autoencoder model , is a sourcecode which implements a plural ity of functions in a programming language . The transformer autoencoder model is conf igured to generate an autoencoder specif ic engineering program which comprises a natural language description of the plurality of functions . In such a case , the transformer autoencoder model is trained to convert the sourcecode into the natural language description . In such a case , the input data item comprises a portion of a knowledge graph representation of the engineering program and the expected data item comprises a portion of the natural language description of the autoencoder specif ic engineering program . A transformation obj ective of the transformer autoencoder model is to transform the input data item into the portion of the natural language description of the autoencoder specif ic engineering program .

[0032] In yet another example , the transformer autoencoder model is conf igured to generate the autoencoder specif ic engineering program which comprises a f irst set of code segments which are coded according to a f irst set of syntactic rules . The engineering program which is processed by the transformer autoencoder model comprises a second set of code segments which are coded according to a second set of syntactic rules . In such a case , the transformer autoencoder model is trained to convert the second set of code segments into the f irst set of code segments . In such a case , the input data item comprises a portion of a knowledge graph representation of the engi neering program and the expected data item comprises a portion of the f irst set of code segments which are coded according to the f irst set of syntactic rules . A transformation obj ective of the transformer autoencoder model is to trans form the input data item into the portion of the f irst set of code segments which are coded according to the f irst set of syntactic rules .

[0033] In a second step of the second set of steps , the processing unit is conf igured to apply the encoder model on the received input data item . The encoder model is conf igured to encode the input data item to generate an encoded data item . The encoded data item is at least one of a graph embedding , a word embedding , a state embedding , or a sequence- to- sequence embedding . In a third step of the f irst set of steps , the processing unit is conf igured to apply the decoder model on the encoded data item to generate an output data item . Initially, the second set of weights of the decoder model are untrained and thus the output data item generated by the decoder model is dif ferent from the expected data item .

[0034] In a fourth step of the f irst set of steps , the processing unit is conf igured to compare the output data item with the expected data item to determine a dif ference between the out put data item and the expected data item . The determined dif ference is indicative of a degree to which the decoder model is trained .

[0035] In a f ifth step of the f irst set of steps , the processing unit is conf igured to apply an optimizing algorithm on the decoder model to optimize the second set of neural weights of the second set of neurons of the decoder model . In one example , the optimization algorithm is a Stochastic Gradient Descent optimizer algorithm which is conf igured to optimize the second set of weights with an optimization goal of minimizing the dif ference between the output data item and the expected data item . Thus the processing unit is conf igured to iterate the second set of steps until the second set of weights are optimized so that the dif ference is minimized . Thus , the processing unit is conf igured to train the decoder model of each transformer autoencoder model by iterative execution of the second set of steps , until the decoder model achieves convergence .

[0036] In one example , the processing unit is conf igured to receive from the user , a plurality of set of training data , in which each set of training data is associated with a specif ic transformation obj ective of a plurality of transformation ob- jectives. Examples of the plurality of transformation objectives comprises a first objective to convert a high level language to a machine language, a second objective to translate a sourcecode from a first programming language to a second programming language, a third objective to convert a source code written in a programming language to a description of the source code written in a natural language. The plurality of transformation objectives further comprises a fourth objective of converting a description of a plurality of computer functions into machine language based implementations of the plurality of computer functions.

[0037] Thus, a first set of training data, with the first objective, has an input data item associated with a high level language and an expected data item associated with a machine language. Thus, a transformer autoencoder model, trained with the first set of training data, is configured to convert a first engineering program written in the high level language to a second engineering program written in the machine language. Similarly, a second set of training data set, with the second objective, has an input data item associated with a sourcecode in a first programming language and an expected data item associated with a sourcecode in a second programming language. Thus, a transformer autoencoder model trained with the second set of training dataset is configured to convert a sourcecode from a first programming language to a second programming language.

[0038] The processing unit is further to iteratively execute the first set of steps and the second set of steps on each transformer autoencoder model of the plurality of transformer autoencoder models based on the received plurality of sets of training data. Since each transfomer autoencoder model is trained with a different set of the plurality of sets of training data , each transformer autoencoder model has a dif ferent transformation obj ective . In one example , each trans former autoencoder model of the plurality of transformer autoencoder models has a data label which is indicative of a specif ic transformation obj ective of the transformer autoencoder model . In one example , the specif ic transformation obj ective of a transformer autoencoder model comprises information associated with an input specif ication and an output specif ication of the transformer autoencoder model . In such a case , the transformer autoencoder model is conf igured to process an engineering program with the input specif ication to generate an engineering program with the output specif ication .

[0039] Advantageously, each transformer autoencoder model of the plurality of transformer autoencoder model is conf igured to perform a specif ic type of transformation of an engineering program . Furthermore , a user is enabled to train new trans former autoencoder models with new specif ic transformation obj ectives by providing an appropriate set of training data to the processing unit . The user is further enabled to select an appropriate transformer autoencoder models from the plurality of transformer autoencoder models to perform a trans formation of an engineering program from one form to another .

[0040] In the preferred embodiment , the method further comprises training a relational graph neural network to generate a plurality of node embeddings for one or more name graphs . The plurality of node embeddings is indicative of a vector space in which two or more nodes of the one or more name graphs are arranged such that a distance between the two or more nodes , of the one or more name graphs , is inversely proportional to a degree of similarity between the two or more nodes . The relational graphical neural network is at least one of a Graph Convolutional Network (GCNs ) , a GraphSAGE network a Graph Attention Network (GAT) or a GraphSAGE++ network . The processing unit is conf igured to train the relational graphical neural network based on a training dataset comprising a training name graph . The processing unit is conf igured to train the relational graph neural network by iteratively training the relational graph neural network based on a plurality of nodes of the training name graph . The relational graph neural network is trained to generate each node embedding of the plurality of node embeddings . In one example , the training name graph is received from the user via an input device . Furthermore , a plurality of ground truth labels associated with the training name graph is also received from the user .

[0041] In one example , the training name graph has a graph data structure or data loader . The processing unit is conf igured to load the training name graph into the relational graph neural network . Each node of the plurality of nodes of the training name graph has a feature vector and one or more edge connections . The processing unit is further conf igured to def ine the relational graph neural network based on a deep learning framework . Examples of the deep learning framework includes but is not limited to PyTorch or TensorFlow . The processing unit is conf igured to def ine the relational graph neural network based on one or more user inputs received via an input device . In one example , the processing unit is conf igured to def ine a plurality of structural aspects associat ed with the relational graph neural network based on the one or more user inputs . The plurality of structural aspects include but is not limited to one or more convolutional layers , a plurality of activation functions , and initial values of a plurality of parameters associated with the relational graph neural network . Furthermore , the processing unit is further conf igured to select a loss function for the relational graph neural network based on the one or more user inputs . Examples of the loss function include a mean squared error function and a categorical cross -entropy function .

[0042] It is noted that the processing unit is conf igured to receive the plurality of ground truth labels which corresponds to the training name graph . The plurality of ground truth labels are indicative of one or more node embeddings in which the plurality of nodes of the training name graph are arranged such that similar nodes are arranged closer to each other . In other words , in the one or more node embeddings , a distance between two or more nodes are inversely proportional to a degree of similarity between the two or more nodes . Each node of the plurality of nodes of the training name graph corresponds to at least one label of the plurality of ground truth labels . The processing unit is further conf igured to iterate over the plurality of nodes of the training name graph and the plurality of ground truth labels . In one example , the it eration is performed over the training name graph in a plurality of batches . Each batch of the plurality of batches corresponds to a specif ic set of ground truth labels of the plurality of ground truth labels . The processing unit is further conf igured to pass each batch of the plurality of batches through the relational graph neural network to generate a plurality of predicted data items . The processing unit is further conf igured to determine an optimization loss associ ated with each batch of the plurality of batches by computing dif ference between the plurality predicted data items and the specif ic set of ground truth labels which correspond to the batch . The processing unit is further conf igured to iteratively optimize the relational graph neural network by appli cation of a parameters optimization algorithm on the rela- tional graph neural network and the determined optimization loss . The processing unit is thus conf igured to train the relational graph neural network by use of a supervised learning method . The relational graph neural network is thus trained to generate a set of node embeddings for the training name graph such that a distance between a set of nodes , in the set of node embeddings , is inversely proportional to a degree of similarity between the set of nodes .

[0043] In the preferred embodiment , the method further comprises receiving from a user , by a processing unit , a user request to generate the specif ic engineering program from information associated with at least one engineering program . The user request is received from user via an input device . In one example , the processing unit is conf igured to receive the at least one engineering program from the user .

[0044] In one example , the user request is a request to generate the specif ic engineering program in accordance with a f irst set of syntactic and semantic rules associated with a f irst specif ication . Furthermore , the user request comprises information associated with a second specif ication of the at least one engineering program . The second specif ication is indicative of a second set of syntactic and semantic rules based on which the at least one engineering program has been coded by a human coder .

[0045] In another example , the method further comprises receiving , by the processing unit , the plurality of compatibility parameters associated with the computing platform . In other words , the specif ic engineering program is compatible with the computing environement if the f irst specif ication, of the specif ic engineering program, matches with the plurality of compatibility parameters . The method further comprises analyz - ing, by the processing unit, the second specification associated with the at least one engineering program, and the plurality of compatibility parameters associated with the computing platform. In one example, to analyse the second specification, the processing unit is configured to compare the second set of syntactic and semantic rules with the received plurality of compatibility parameters. In a case where the second set of syntactic and semantic rules fails to match with the received plurality of compatibility parameters, the processing unit (202) determines that the at least one engineering program is incompatible with the computing platform.

[0046] In a case where where the second set of syntactic and semantic rules matches with the received plurality of compatibility parameters, the processing unit (202) determines that the at least one engineering program is compatible with the computing platform. In a case where the at least one engineering program is determined to be incompatible with the computing platform, the processing unit is configured to generate a user notification that the at least one engineering program is incompatible. The processing unit is further configured to receive a second specification from the user such that the second specification matches with the plurality of compatibility requirements of the computing platform.

[0047] The first specification is different from the second specification. In one example, the user request comprises information associated with a specific transformation objective to convert the at least one engineering program into the specific engineering program.

[0048] In one example, the at least one engineering program compris- es a code based implementation of a plurality of computer functions . Example of the plurality of computer functions include but is not limited to a mathematical function, an engi neering function, and an industrial control function . In such a case , the second specif ication comprises a set of syntactic and semantic rules of the code based implementation . Further , the user specif ied engineering program is a natural language based description of the plurality of computer functions . In such a case , the f irst specif ication comprises a plurality of grammatical rules associated with the natural language based description of the plurality of computer functions . In one example , the at least one engineering program is selected by a user from a plurality of engineering programs . The user is enabled to select the at least one engineering program from the plurality of engineering programs via a user input device .

[0049] In the preferred embodiment , the method further comprises analyzing , by the processing unit , the at least one engineering program based on an application of a machine learning algorithm on the at least one engineering program . In one example , the machine learning algorithm is a natural language processing algorithm . In a case where the at least one engi neering program comprises words , code snippets and machine language , the natural language processing algorithm is conf igured to detect the words , code snippets and machine language in the at least one engineering program . In one example , the natural language processing algorithm is at least one of a named entity recognition algorithm, a text summari zation algorithm, and a tokenization algorithm . In another example , the machine learning algorithm is a graphical pat tern recognition algorithm . In a case where the at least one engineering program is a graphical program such as ladder based engineering progam, then the graphical pattern recogni - tion algorithm is configured to determine one or more graphical objects in the at least one engineering program.

[0050] The method further comprises determining, by the processing unit, program data from the at least one engineering program based on the analysis. The program data comprises information associated with the at least one engineering program such as words, code snippets, variables, functions, conditional statements, programming blocks, classes, nodes, and graphical objects. The method further comprises generating a plurality of tokens from the at least one engineering program by application of a tokenization algorithm. Each token of the plurality of tokens comprises at least one constituent data item of the at least one engineering program. Thus each token of the plurality of tokens is at least one of word, a code snippet, a variable, a function, a conditional statement, a programming block, a class, a node, and a graphical object.

[0051] In the preferred embodiment, the method further comprises applying, by the processing unit, a dependency parsing algorithm on the plurality of tokens to analyze a syntactic structure of interdependencies between one or more tokens of the plurality of tokens. Furthermore, the dependency parsing algorithm is applied on the at least one engineering program. The dependency parsing algorithm is configured to identify a plurality of interdependencies between two or more tokens of the plurality of tokens based on the application of the dependency parsing algorithm on the at least one engineering program. The plurality of interdependencies comprise a plurality of grammatical, syntactic, and semantic relationships between two or more tokens of the plurality of tokens. It is noted that each token of the plurality of tokens is indicative of a constituent data item of the at least one engineering program. In one example, the processing unit is config- ured to f ilter the plurality of tokens with one or more named entity recognition (NER) algorithms to identify mentions of each of a plurality of constituent data items in the at least one engineering program .

[0052] The method further comprises analyzing , by the processing unit , the identif ied mentions of the plurality of tokens . The processing unit is further conf igured to assign a plurality of semantic roles to the identif ied mentions of the plurality of tokens . The plurality of semantic roles are assigned by application of a semantic role labelling algorithm on the identif ied mentions of the plurality of tokens . The semantic roles of each token of the plurality of tokens is indicative of a relationship of each token with other tokens of the plurality of tokens . Examples of the semantic role labelling al gorithms include , but is not limited to AllenNLP Algorithm or PropBank proj ect algorithm .

[0053] The processing unit is conf igured to generate a plurality of dependency trees based on the determined plurality of interdependencies between two or more tokens of the plurality of tokens . Each dependency tree of the plurality of dependency trees is indicative of a plurality of interdependencies between a specif ic token of the plurality of tokens and other tokens extracted from the at least one engineering program .

[0054] In the preferred embodiment , the method further comprises generating , by the processing unit , a name graph based on the plurality of dependency trees . In one example , the processing unit is conf igured to concatenate the plurality of dependency trees to generate the name graph based on a set of rules . The set of rules is received by the processing unit , from the us er via an input device . In another example , the processing unit is conf igured to combine the plurality of dependency trees by application of a mathematical operation such as a union operation or an intersection operation on the plurality of dependency trees . The processing unit is conf igured to merge the plurality of dependency trees based on an analysis of the assigned plurality of semantic roles .

[0055] The name graph comprises a plurality of nodes . Each node of the plurality of nodes comprises information associated with a specif ic token of the plurality of tokens of the at least one engineering program . Thus , the name graph comprises information associated with the plurality of interdependencies between the plurality of tokens extracted from the at least one engineering program . Thus , the generated name graph comprises information associated with a structure of the at least one engineering program .

[0056] Furthermore , it is noted that the plurality of tokens indi cate a plurality of constituent data items of the at least one engineering program, such as words , code snippets , variables , functions , conditional statements , programming blocks , classes , nodes , and graphical obj ects within the at least one engineering program . A plurality of interdependencies between the plurality of constituent data items of the at least one engineering program may indicate a plurality of data f low and a plurality of control f low within the at least one engineering program . Thus , the plurality of interdependencies between the plurality of tokens indicate the plurality of data f low and the plurality of control f low within the at least one engineering program . In other words , the name graph comprises information associated with the plurality of data f low and the plurality of control f low within the at least one engi neering program . In the preferred embodiment , the method further comprises applying the trained relational graph neural network on the name graph to generate a set of node embeddings . The set of node embeddings is indicative of a vector space in which the two or more nodes of the plurality of nodes of the name graph are arranged in a specif ic arrangement . In the specif ic arrangement , a distance between two or more nodes of the plurality of nodes is inversely proportional to a degree of similarity between the two or more nodes . In other words , in the set of node embeddings , each node embedding comprises information associated with a specif ic node of the plurality of nodes , as well as information associated with neighbouring nodes of the specif ic node .

[0057] It is noted that each node comprises information associated with at least one token of the plurality of tokens of the at least one engineering program . Advantageously, the processing unit is conf igured to capture not only information associated with each node of the plurality of nodes of the name graph, but also information associated with relationship of each node with with other nodes of the plurality of nodes . It is further noted that the plurality of nodes comprises information associated with interdependencies between words , code segments , code snippets , variables , functions , and other constituent elements of the at least one engineering program . Thus the set of node embeddings capture interelationships between each constituent data item of the plurality of constit uent data items of the at least one engineering program, to other constituent data items of the at least one engineering program .

[0058] In the preferred embodiment , the method further comprises generating , by the processing unit , a knowledge graph based on the generated set of node embeddings . In other words , the knowledge graph is generated based on the information associ ated with the at least one engineering program .

[0059] In the preferred embodiment , the method further comprises applying , by the processing unit , a f lattening algorithm on the generated knowledge graph . Examples of the f lattening algorithms include but is not limited to a tree traversal algorithm, a graph partitioning algorithm, a semantic f lattening algorithm, a dimensionality reduction algorithm, and a graph compression algorithm . The f lattening algorithm is conf igured to generate a f lattened knowledge graph based on the application of the f lattening algorithm on the knowledge graph . The f lattened knowledge graph is a simplif ied and condensed representation of the knowledge graph . The f lattened knowledge graph has information associated with the plurality of node embeddings of the plurality of nodes of the name graph . Thus , the f lattened knowledge graph not only comprises information associated with each node of the plurlaity of nodes , but also information associated with interelationships between each node to every other node in the plurality of nodes of the name graph . Thus in other words , the f lattened knowledge graph comprises contextual information associated with a plurality of constituent data items of the at least one engi neering program .

[0060] In the preferred embodiment , the method further comprises comparing , by the processing unit , a specif ic transformation obj ective associated with the user request to a plurality of data labels in the plurality of transformer autoencoder models . It is noted that a data label of each transformer autoencoder model of the plurality of transformer autoencoder model comprises information associated with a specif ic trans formation obj ective of the transformer autoencoder model . In the preferred embodiment , the method further comprises selecting , by the processing unit , a transformer autoencoder model from the plurality of transformer autoencoder models based on the comparison . In one example , the selected trans former autoencoder model has a specif ic transformation obj ective which matches with the specif ic transformation obj ective associated with the user request . In other words , the select ed transformer autoencoder model is conf igured to convert the knowledge graph into the specif ic engineering program .

[0061] In the preferred embodiment , the method further comprises applying , by the processing unit , the selected transformer autoencoder model on the f lattened knowledge graph to generate the user specif ied engineering program . In other words , the processing unit is conf igured to apply the selected trans former autoencoder model on the knowledge graph .

[0062] In the preferred embodiment , the method further comprises generating , by the processing unit , the specif ic engineering program from the at least one engineering program based on the application of the selected transformer autoencoder model on the knowledge graph of the at least one engineering program . Thus , the specif ic engineering program is generated in accordance with the second specif ication and is thus compati ble with the computing platform .

[0063] Advantageously, the transformer autoencoder model is applied on the knowledge graph that comprises information associated with the plurality of interdependencies between the plurality of constituent data items of the at least one engineering program . Thus , the specif ic engineering program is generated based on knowledge on the at least one engineering program as well as information on the plurality of interdependencies between the plurality of constituent data items of the at least one engineering program . Furthermore , the specif ic engineering program is generated based on the set of node embeddings in which each node of the plurality of nodes comprises information associated with neighbouring nodes of the node . Thus , interelationships between the plurality of constituent elements of the at least one engineering program are faithfully capured and represented in the generated specif ic engineering program . Thus , a huge amount of labour and time which otherwise would have been spent in understanding the plurality of interdependencies between the plurality of constituent data items is thus eliminated . Furthermore , a huge amount of labour and time is saved as the specif ic engineeering program is generated automatically without manual intervention .

[0064] Advantageously, the knowledge graph which is further indicative of a plurality of similarities between the plurality of constituent data items of the at least one engineering program . Thus , similar nodes in a plurality of nodes of the knowledge graph are grouped together . Thus , the similar nodes of the plurality of nodes of the knowledge graph are trans lated together . Thus , the plurality of similarities between the plurality of constituent data items are captured faithfully in the specif ic engineering program . Furthermore , the automation module is enabled to optimize code snippets associated with the plurality of constituent data items based on the plurality of similarities between the plurality of constituent data items of the at least one engineering program .

[0065] The method further comprises executing the generated specif ic engineering program on the computing platform . Advantageous ly, the specif ic engineering program is compatible with the computing platform . Further advantageously, a human coder is spared from a labour of manually recoding the at least one engineering program to generate the specif ic engineering pro- gram . Thus , a plurality of tasks such as upgradation and mi gration of the computing platform is simplif ied .

[0066] In one example , the at least one engineering program is coded in accordance with a f irst coding policy . The user request comprises a specif ic transformation obj ective to generate the specif ic engineering program based on a second coding policy . The f irst coding policy and the second coding policy compris es one or more syntactic rules for coding the user specif ied engineering program and the at least one engineering program . The processing unit is conf igured to select the transformer autoencoder model which is conf igured to convert a f irst engineering program coded with the f irst coding policy to a second engineering program coded with the second coding poli cy . The processing unit is further conf igured to apply the at least one transformer autoencoder model on a knowledge graph associated with the at least one engineering program to generated the specif ic engineering program .

[0067] In another example , the at least one engineering program comprises a natural language based description of a plurality of functions . The user request comprises a specif ic transformation obj ective to generate the specif ic engineering program which comprises a machine language based implementation of the plurality of functions . The processing unit is conf igured to receive a training data set conf igured to train at least one transformer autoencoder model to convert a f irst engi neering program which comprises a natural language description of at least one function to a second engineering program comprising a machine learning based representation of the at least one function . The processing unit is further conf igured to apply the at least one transformer autoencoder model on a knowledge graph associated with the at least one engineering program to generate the specif ic engineering program which comprises the machine language based implementation of the plurality of functions .

[0068] In yet another example , the at least one engineering program comprises a machine language based implementation of a plurality of functions . The user request comprises a specif ic transformation obj ective to generate the specif ic engineering program which comprises a natural language based description of the plurality of functions . The processing unit is conf igured to receive a training data set conf igured to train at least one transformer autoencoder model to generate a f irst engineering program which comprises a natural language description of at least one function from a second engineering program comprising a machine learning based representation of the at least one function . The processing unit is further conf igured to apply the at least one transformer autoencoder model on a knowledge graph associated with the at least one engineering program to generate the specif ic engineering program which comprises the natural language based description of the at least one function .

[0069] In yet another example , the at least one engineering program is a graphical program comprising a plurality of programming blocks . The user request comprises a specif ic transformation obj ective to generate the specif ic engineering program which comprises a machine language based representation of the graphical program . The processing unit is conf igured to receive a training data set conf igured to train at least one transformer autoencoder model to generate a f irst engineering program which comprises a machine language representation of at least one programming block . The at least one transformer autoencoder model is trained to generate the f irst engineering program from a second engineering program which is a graphical program comprising the at least one programming block . The processing unit is further conf igured to apply the at least one transformer autoencoder model on a knowledge graph associated with the at least one engineering program to generated the specif ic engineering program which comprises a machine language based representation of the graphical program .

[0070] In yet another example , the at least one engineering program is a machine learning based representation of a plurality of computer functions . The user request comprises a specif ic transformation obj ective to generate the user specif ied engi neering program which comprises an algorithmic f lowchart indicative of the plurality of computer functions . The processing unit is conf igured to receive a training data set conf igured to train at least one transformer autoencoder model to generate a f irst engineering program which comprises a machine language representation of at least one programming block . The at least one transformer autoencoder model is trained to generate the f irst engineering program from a second engineering program which is a machine learning based representation of at least one computer function . The processing unit is further conf igured to apply the at least one transformer autoencoder model on a knowledge graph associated with the at least one engineering program to generate the us er specif ied engineering program which comprises the algorithmic f lowchart indicative of the plurality of computer functions .

[0071] The obj ect of the present invention is also achieved by an engineering system for generating a specif ic engineering program which is compatible with a computing platform . The engi neering system comprises one or more processor ( s ) and a memory coupled to the processor . The memory comprises an automation module stored in the form of machine- readable in- structions executable by the processor . The automation module is conf igured for performing the method as described above .

[0072] The obj ect of the present invention is also achieved by an industrial environment . The industrial environment comprising an engineering system, a technical installation comprising one or more physical components and one or more client devices communicatively coupled to the engineering system and the technical installation . The engineering system is conf igured to perform the above described method steps .

[0073] The obj ect of the present invention is also achieved by a computer-program product having machine- readable instructions stored therein, that when executed by one or more proces sor ( s ) , cause the one or more processor ( s ) to perform method steps as described above .

[0074] The obj ect of the present invention is also achieved by a signal with embedded machine- readable instructions , the signal being received from a computer system, characterized in that when executed by a processing unit , the machine- readable instructions causes a processing unit perform method steps as described above .

[0075] The above-mentioned and other features of the invention will now be addressed with reference to the accompanying drawings of the present invention . The illustrated embodiments are intended to illustrate , but not limit the invention .

[0076] The present invention is further described hereinafter with reference to illustrated embodiments shown in the accompanying drawings , in which : FIG 1 is a block diagram of an industrial environment capable of generating an engineering program from information associated with at least one engineering program, according to an embodiment of the present invention ;

[0077] FIG 2 is a block diagram of an engineering system, such as those shown in FIG . 1 , in which an embodiment of the present invention can be implemented ;

[0078] FIG 3 is a block diagram of an automation module , such as those shown in FIG 2 , in which an embodiment of the present invention can be implemented ;

[0079] FIG 4A-C is a process f lowchart illustrating an exemplary method of generating an engineering program which is compatible with a computing platform, according to an embodiment of the present invention ;

[0080] FIG 5 a process f lowchart illustrating an exemplary method of training an encoder of a transformer autoencoder model , according to an embodiment of the present invention ;

[0081] FIG 6 a process f lowchart illustrating an exemplary method of training a decoder of a transformer autoencoder model , according to an embodiment of the present invention ;

[0082] FIG 7A-C is an exemplary illustration of generating an engi neering program from information associated with at least one engineering program, according to an embodiment of the present invention ; FIG 8A-C is an exemplary illustration of a plurality of use cases of an automation module according to an embodiment of the present invention ; and

[0083] FIG 9 is an exemplary illustration of a user interface for displaying an input and an output of an automation module according to an embodiment of the present invention .

[0084] Various embodiments are described with reference to the drawings , wherein like reference numerals are used to refer the drawings , wherein like reference numerals are used to refer to like elements throughout . In the following description, for the purpose of explanation, numerous specif ic details are set forth in order to provide thorough understanding of one or more embodiments . It may be evident that such embodiments may be practiced without these specif ic details .

[0085] FIG 1 is a block diagram of an industrial environment 100 capable of generating a specif ic engineering program which is compatible with a specif ic computing platform 110 , according to an embodiment of the present invention . In FIG 1 , the industrial environment 100 includes an engineering system 102 which is conf igured to control an industrial plant 106 and one or more client devices 120A-N . As used herein, "industri al environment" refers to a processing environment comprising conf igurable computing physical and logical resources , for example , networks , servers , storage , applications , services , etc . , and data distributed over a platform, such as cloud computing platform . The industrial environment 100 provides on-demand network access to a shared pool of the conf igurable computing physical and logical resources . The engineering system 102 is communicatively connected to the industrial plant 106 via the network 104 ( such as Local Area Network (LAN) , Wide Area Network (WAN) , Wi - Fi , Internet , any short range or wide range communication) . The engineering system 102 is also connected to the one or more client devices 120A- N via the network 104 . The industrial plant 106 comprises a plurality of industrial devices 108A-N which are controlled by the engineering system 102 by execution of one or more engineering programs in a controller device such as a programmable logic controller . Examples of the plurality of indus trial devices 108A-N includes but is not limited to a control valve , a motor , a server , a robot , a switch, human machine interfaces (HMIs) , motors , valves , pumps , actuators , sensors and other industrial devices in the industrial plant 106 .

[0086] The computing platform 110 refers to any computing infrastructure which is capable of executing one or more engineering programs . Examples of the computing platform 110 includes , but is not limited to a operating system based plat form, a cloud computing platform, a hardware based platform, and a programmable logic controller based platform . In one example , the computing platform 110 may execute the specif ic engineering program only if the engineering program is coded in compliance with a specif ication associated with the computing platform 110 . The specif ication comprises information associated with a plurality of syntactic and semantic rules , which def ine a manner in which the one or more engineering programs should be coded, so that the one or more engineering programs are compatible with the computing platform 110 . Thus , the engineering program has to be coded manually by the coder in line with the plurality of syntactic and semantic rules .

[0087] An engineering program is hereafter referred to as being compatible with the computing platform 110 if the specif ic engi neering program fulf ills a plurality of compatibility re- quirements of the computing platform 110 . The plurality of compatibility requirements includes but is not limited to a programming language compatible with the computing platform 110 , a syntax compatible with the specif ic computing platform 110 , and a program length compatible with the specif ic computing platform 110 . The plurality of compatibility requirements comprises a set of syntactic and semantic rules . The set of syntactic and semantic rules comprises a rule for naming progrm variable , a rule for naming program data structures , a rule for generating conditional and loop statements and a rule for arranging one or more code elements in the engineering program . In other words , the engineering program is compatible with the speci f ic computing platform 110 if the engineering program is coded in a specif ic specif ication which encompases the set of syntactic and semantic rules .

[0088] The computing platform 110 enables functionalities such as data reception, data processing , data rendering , data communication, etc . using the hardware resources and an operating system (OS ) and delivers the aforementioned services using the application programming interfaces deployed therein . The computing platform 110 may comprise a combination of dedicat ed hardware and software built on top of the hardware and the

[0089] OS .

[0090] The one or more client devices 120A-N may be a desktop computer , laptop computer , tablet , smart phone and the like . Each of the client devices 120A-N is provided with an engi neering tool 122A-N for generating and / or editing a plurality of engineering programs in the engineering system 102 . In one example , the plurality of engineering program comprises computer executable programming code used to control the plural ity of industrial devices 108A-N in the industrial plant 106 . Examples of the industrial plant 106 includes but is not lim- ited to manufacturing plants , power plants , and recycling plants .

[0091] The client devices 120A-N can access the engineering system 102 for automatically generating one or more engineering programs . The client devices 120A-N can access cloud applications ( such as providing performance visualization of execution of the plurality of engineering programs via a web browser) . Throughout the specif ication, the terms "client device" and "user device" are used interchangeably .

[0092] The engineering system 102 may be a standalone server deployed at a control station or may be a remote server on a cloud computing platform . In one example , the engineering system 102 may be a cloud-based engineering system . The engi neering system 102 is capable of delivering applications ( such as cloud applications ) for managing the industrial plant 106 comprising the plurality of industrial devices 108A-N . The engineering system 102 may comprise an automation module 112 , a server 114 including hardware resources and an operating system (OS ) , a network interface 116 and a database 118 . The network interface 116 enables communication between the engineering system 102 and the client device ( s ) 120A-N . The interface ( such as cloud interface) (not shown in FIG 1 ) may allow the engineers at the one or more client device ( s ) 120A-N to access the plurality of engineering programs stored at the engineering system 102 and perform one or more actions on the plurality of engineering programs . The server 114 may include one or more servers on which the OS is installed . The server 114 may comprise one or more processors , one or more storage devices , such as , memory units , for storing data and machine- readable instructions for example , applications and application programming interfaces (APIs ) , and other peripherals required for providing computing ( such as cloud compu- ting) functionality. The automation module 112 is configured for generating engineering programs. Details of the automation module 112 is explained in FIG. 3.

[0093] The database 118 stores the information relating to the industrial plant 106 and the client device (s) 120A-N. The database 118 is, for example, a structured query language (SQL) data store or a not only SQL (NoSQL) data store. In an exemplary embodiment, the database 118 may be configured as cloud-based database implemented in the industrial environment 100, where computing resources are delivered as a service over the platform 110. The database 118, according to another embodiment of the present invention, is a location on a file system directly accessible by the automation module 112. The database 118 is configured to store industrial automation project files, engineering programs, object behavior model, parameter values associated with the plurality of industrial devices 108A-N, test results, simulation results, status messages, one or more simulation instances, graphical programs, program logics, program logic patterns, and industrial device properties, program update messages and the like .

[0094] FIG 2 is a block diagram of an engineering system 102, such as those shown in FIG 1, in which an embodiment of the present invention can be implemented. In FIG 2, the engineering system 102 includes a processing unit 202, an accessible memory 204, a storage unit 206, a communication interface 208, an input-output unit 210, a network interface 212 and a bus 21 .

[0095] The processing unit 202, as used herein, means any type of computational circuit, such as, but not limited to, a microprocessor unit, microcontroller, complex instruction set com- puting microprocessor unit, reduced instruction set computing microprocessor unit, very long instruction word microprocessor unit, explicitly parallel instruction computing microprocessor unit, graphics processing unit, digital signal processing unit, or any other type of processing circuit. The processing unit 202 may also include embedded controllers, such as generic or programmable logic devices or arrays, application specific integrated circuits, single-chip computers, and the like.

[0096] The memory 204 may be non- transitory volatile memory and nonvolatile memory. The memory 204 may be coupled for communication with the processing unit 202, such as being a computer- readable storage medium. The processing unit 202 may execute machine-readable instructions and / or source code stored in the memory 204. A variety of machine-readable instructions may be stored in and accessed from the memory 204. The memory 204 may include any suitable elements for storing data and machine-readable instructions, such as read only memory, random access memory, erasable programmable read only memory, electrically erasable programmable read only memory, a hard drive, a removable media drive for handling compact disks, digital video disks, diskettes, magnetic tape cartridges, memory cards, and the like. In the present embodiment, the memory 204 includes an integrated development environment (IDE) 216. The IDE 216 includes the automation module 112 stored in the form of machine-readable instructions on any of the above-mentioned storage media and may be in communication with and executed by the processing unit 202.

[0097] The automation module 112 is configured to generate a specific engineering program from information associated with at least one engineering program. The information associated with the at least one engineering program may be received from a user . The at least one engineering program is coded in accordance with a f irst specif ication . The generated specif ic engineering program is coded in accordance with a second specif ication . The second specif ication comprises a set of syntactic and semantic rules which are aligned with a plural ity of compatibility requirements of the specif ic computing platform 110 . Thus , the generated specif ic engineering program is compatible with the computing platform 110 .

[0098] In one example , the at least one engineering program compris es a programming language based implementation of one or more functions . The one or more functions are described in at least one of a high level language such as IECPL , a machine language such as Assembly language . Furthermore , in the said example , the specif ic engineering program comprises a natural language based description of the one or more functions . In such a case , the automation module 112 is conf igured to generate the specif ic engineering program which comprises the natural language based description of the one or more functions , from the at least one engineering program .

[0099] In another example , the at least one engineering program is a graphical program which is indicative of a plurality of functions , depicted as graphical programming blocks . The specif ic engineering program is a machine language based implementation of the plurality of functions . In such a case , the automation module 112 is conf igured to generate the specif ic engineering program which comprises the machine language based implementation of the plurality of functions , from the graphical program which is indicative of the plurality of functions .

[0100] When executed by the processing unit 202 , the automation module 112 causes the processing unit 202 to train a plurality of transformer autoencoder models 124A-N . Each transformer autoencoder model of the plurality of transformer autoencoder models 124A-N is an artifical intelligence model which is configured to generate an autoencoder specific engineering program from information associated with an engineering program stored in the engineering system 102. The autoencoder specific engineering program is of a first specification and the engineering program is of a second specification. The first specification and the second specification are indicative of a plurality of syntactic and semantic rules associated with the autoencoder specific engineering program and the engineering program respectively. The autoencoder specific engineering program comprises information arranged in accordance with the first specification and the engineering program comprises information arranged in accordance with the second specification .

[0101] Each transformer autoencoder model of the plurality of transformer autoencoder model has a specific transformation objective. The specific transformation objective of a transformer autoencoder model is indicative of an input specification and an output specification of the transformer autoencoder model. For example, each transformer autoencoder model of the plurality of transformer autoencoder models 124A-N is configured to convert information associated with an engineering program with an input specification into a autoencoder specific engineering program of a specific specification. The specific specification indicates a set of semantic and syntactic rules based on which one or more code elements of the autoencoder specific engineering program are arranged in the autoencoder specific engineering program. The one or more code elements include variables, code snippets, functions, classes, loop statements, words and graphical objects. Each transformer autoencoder model of the plurality of trans former autoencoder models 124A-N has a specif ic transformation obj ective . The specif ic transformation obj ective of each transformer autoencoder model is indicative of an input specif ication and an output specif ication of the transformer autoencoder model . The input specif ication is indicative of a format of the engineering program, the information associated with which, is converted by the transformer autoencoder model . The output specif ication is indicative of a format of the autoencoder specif ic engineering program which is generated by the transformer autoencoder model by conversion of the engineering program .

[0102] The information associated with the engineering program comprises a plurality of node embeddings of a knowledge graph associated with the engineering program . The plurality of node embeddings is a vector space representation of a plural ity of nodes of a name graph of the engineering program . The name graph comprises information associated with one or more constituent data items of the engineering program, such as words , code segments , graphical obj ects , functions , variables , comments , classes , data structures , and code snippets and a plurality of interdependencies between the one or more constituent data items . In the vector space representation of the plurality of nodes , the plurality of nodes are arranged in such a manner that a distance between two or more nodes in the vector space representation is inversely proportional to a degree of similarity between the two or more nodes of the plurality of nodes . Thus , each node in the plurality of node embeddings carry information about the node themselves and further carry information about neighbouring nodes . Furthermore , in the vector representation, similar nodes are spatially grouped together . Each transformer autoencoder model of the plurality of trans former autoencoder models 124A-N comprises an encoder model and a decoder model . The encoder model of each transformer autoencoder model comprises a f irst set of neurons and a f irst set of neural weights . The encoder model is at least one of a Graph Convolutional Networks , GraphSAGE (Graph Sample and Aggregated Embedding , or a Graph Isomorphism Network (GIN) . The decoder model of each transformer autoencoder model comprises a second set of neurons and a second set of neural weights . Examples of the decoder model includes but is not limited to a Feedforward Decoder model , a Convolutional Decoder model , a Graph Decoder model , or a Recurrent Generative Model based decoders .

[0103] The automation module 112 causes the processing unit 202 is conf igured to train the encoder model for each transformer autoencoder model of the plurality of transformer autoencoder models 124A-N by iterative execution of a f irst set of steps . Each iterative execution of the f irst set of steps trains an encoder model of a specif ic transformer autoencoder model of the plurality of transformer autoencoder models 124A-N . The f irst set of steps is explained with reference to FIG . 5 .

[0104] With reference to FIG . 5 , a f lowchart 500 depicting the f irst set of steps to train an encoder model 504A of a transformer autoencoder model is illustrated .

[0105] To train an encoder model of a specif ic transformer autoencoder model of the plurality of transformer autoencoder models , the processing unit 202 executes a f irst step 502 of a f irst set of steps . In the f irst step 502 of the f irst set of steps , a plurality of input data items 502A are received by the processing unit 202 from a user or from the database 118 . The plurality of input data items 502A comprises a plurality of portions of a knowledge graph associated with information associated with an engineering program . In one example the information associated with the engineering program comprises at least one of a programming code , a natural language based description of a plurality of computer functions , and a graphical program comprising a plurality of graphical programming blocks .

[0106] In a second step 504 of the f irst set of steps , the encoder model 504A is applied by the processing unit 202 , on the plurality of input data items 502A . The encoder model 504A is conf igured to encode the plurality of input data items 502A to generate a plurality of encoded data items . The plurality of encoded data items is at least one of a graph embedding , a word embedding , state embeddings , or sequence- to- sequence embedding .

[0107] In a third step 506 of the f irst set of steps , a decoder model 506A is applied by the processing unit 202 , on the plural ity of encoded data items to generate a plurality of reconstructed data items . The decoder model 506A is conf igured to reconstruct the plurality of input data items 502A from the plurality of encoded data items . However , the decoder model 506A is unable to generate a faithful reconstruction of the plurality of input data items as there is a possibility of reconstruction loss for the transformer autoencoder model . Thus , the generated plurality of reconstructed data items is dif ferent from the plurality of input data items .

[0108] In a fourth step 508 of the f irst set of steps , the plurality of input data items 502A are compared by the processing unit 202 with the plurality of reconstructed data items . In one example , the plurality of input data items 502A is compared with the plurality of reconstructed data items by application of a comparison algorithm 508A such as cosine similarity al gorithms , Levenshtein distance , Jaccard similarity, or Sounde algorithms on the plurality of reconstructed data items and the plurality of input data items 502A . The processing unit 202 is further conf igured to determine a reconstruction loss parameter based on the comparison . In one example , the reconstruction loss parameter is indicative of a plurality of dif ferences between the plurality of input data items 502A and the plurality of reconstructed data items . The reconstruction loss parameter is indicative of a reconstruction loss associ ated with the transformer autoencoder model . Thus the reconstruction loss parameter is indicative of data loss which has occured during application of the transformer autoencoder model on the plurality of input data items 502A .

[0109] In a f ifth step 510 of the f irst set of steps , an optimizing algorithm 510A is applied by the processing unit 202 on the encoder model 504A to optimize a f irst set of neural weights of a f irst set of neurons of the encoder model 504A . In one example , the optimization algorithm 510A is a Stochastic Gradient Descent optimizer algorithm which is conf igured to optimize the f irst set of weights with an optimization goal of minimizing the reconstruction loss of the transformer autoencoder model . In other words , the processing unit 202 is conf igured to optimize the f irst set of neural weights of the encoder model 504A by application of the optimization algorithm 510A on the f irst set of neural weights based on the determined reconstruction loss parameter . The processing unit 202 is conf igured to generate a newly trained encoder model 504B by application of the optimization algorithm 510A .

[0110] At a sixth step 512 of the f irst set of steps , the processing unit 202 is conf igured to apply the newly trained encoder model 504B and the decoder model 506A on the plurality of in- put data items 502A to generate a plurality of new reconstructed data items . The processing unit 202 is further conf igured to generate a new reconstruction loss parameter based on the plurality of input data items 502A and the plurality of new reconstructed data items . The processing unit 202 further compares the new reconstruction loss parameter with a threshold reconstruction loss parameter . In one example , the threshold reconstruction loss parameter is received from a user via an input device . In a case where the new reconstruction loss parameter is greater than the threshold reconstruction loss parameter , then a control f low passes to the f irst step 502 . Furthermore , the processing unit 202 is conf igured to run the f irst set of steps for one more iteration . In a case where the new reconstruction loss parameter is lesser than the threshold reconstruction loss parameter , then the control f low passes to a seventh step 514 of the f irst set of steps . At the seventh step 514 , a training process of the encoder model 504B is completed .

[0111] Thus the processing unit 202 is conf igured to iterate the f irst set of steps until the f irst set of weights are opti mized such that the reconstruction loss is one of minimized or is lower than the threshold reconstruction loss . Thus , the processing unit 202 is conf igured to train the encoder model 504A of each transformer autoencoder model by iterative execution of the f irst set of steps . After a completion of training of the encoder model 504A, the transformer autoencoder model is conf igured to encode and faithfully decode the plurality of input data items 502A .

[0112] Referring back to FIG . 2 , the automation module 112 is conf igured to train the decoder model of the transformer autoencoder model after the encoder model has been trained . Referring to FIG . 6 , FIG . 6 illustrates a f lowchart 600 indicative of the second set of steps executed by the processing unit 202 to train a decoder model 608A of each trans former autoencoder model of the plurality of transformer autoencoder models .

[0113] The decoder model 608A is trained by the processing unit 202 by iteratively executing a second set of steps . To initiate a training process of the decoder model 608A, the processing unit executes a f irst step 602 of the second set of steps . In the f irst step 602 of the second set of steps , an input data item 602A is received by the processing unit 202 . The input data item 602A is a portion of a knowledge graph associated with an engineering program . The knowledge graph comprises information associated with a plurality of constituent data items of the engineering program and a set of interrelationships between the plurality of constituent data items of the engineering program . The knowledge graph comprises a plurali ty of node embeddings in which distance between two or more nodes is inversely proportional to a degree of similarity between the two or more nodes . In one example , the input data item 602A comprises at least one node embedding of the plurality of node embeddings of the knowledge graph . In another example , the input data item 602A is at least one constituent data item of the plurality of constituent data items of the engineering program . The plurality of constituent data items comprises variables , functions , classes , loop statements and conditional statements of the engineering program .

[0114] In the f irst step 602 , an expected data item 602B is received by the processing unit 202 from a user or from the database 118 . A training obj ective of the processing unit 202 is to train the transformer autoencoder model to convert the engi neering program to an autoencoder specif ic engineering pro- gram . The expected data item 602B is a portion of the autoencoder specif ic engineering program which corresponds to the input data item 602A .

[0115] It is noted with reference to FIG . 5 that after training of the encoder model 504A of a transformer autoencoder model , the transformer autoencoder model is conf igured to encode an input and then to faithfully decode the encoded input to generate a reconstructed input . Thus , referring back to FIG . 6 , the transformer autoencoder model is conf igured to encode the input data item 602A and then to faithfully decode an encoded input data item to generate a reconstructed input data item . An obj ective of the training process of the decoder model 606A is to train the the decoder model 606A such that the transformer autoencoder model is conf igured to generate the expected data item 604B rather than the reconstructed input data item . In other words , the obj ective of the training process is to train the transformer autoencoder model to convert the input data item 602A to the expected data item 602B . In one example , the user generates the expected data item 602B manually and the processing unit 202 receives the expected data item 602B from the user . In other words , in a case where the input data item 602A corresponds to a specif ic portion of the engineering program, the expected data item 602B corresponds to a specif ic portion of the autoencoder specif ic engineering program . Thus , the expected data item is indicative of an expected and desired output of the transformer autoencoder model , when the transformer autoencoder model is applied on the input data item 602A .

[0116] In one example , the transformer autoencoder model is conf igured to generate an autoencoder specif ic engineering program which is a natural language based representation of a plural ity of functions . Further , in the example , the engineering program which is to be processed by the transformer autoencoder model comprises sourcecode which implements the plural ity of functions in a programming language . In such a case , the transformer autoencoder model is trained to convert the natural language based representation into the sourcecode . In such a case , the input data item 602A comprises a portion of a knowledge graph representation of the engineering program and the expected data item 602B comprises a portion of the sourcecode of the autoencoder specif ic engineering program . A transformation obj ective of the transformer autoencoder model is to transform the input data item 602A into the portion of the sourcecode of the autoencoder specif ic engineering program .

[0117] In another example , an engineering program which is processed by the transformer autoencoder model is a sourcecode which implements a plurality of functions in a programming language . The transformer autoencoder model is conf igured to generate an autoencoder specif ic engineering program which comprises a natural language description of the plurality of functions . In such a case , the transformer autoencoder model is trained to convert the sourcecode into the natural language description . In such a case , the input data item 602A comprises a portion of a knowledge graph representation of the engineering program and the expected data item 602B comprises a portion of the natural language description of the autoencoder specif ic engineering program . A transformation obj ective of the transformer autoencoder model is to trans form the input data item 602A into the portion of the natural language description of the f irst engineering program .

[0118] In yet another example , the transformer autoencoder model is conf igured to generate the autoencoder specif ic engineering program which comprises a f irst set of code segments which are coded according to a f irst set of syntactic rules . The engineering program which is processed by the transformer autoencoder model comprises a second set of code segments which are coded according to a second set of syntactic rules . In such a case , the transformer autoencoder model is trained to convert the second set of code segments into the f irst set of code segments . In such a case , the input data item 602A comprises a portion of a knowledge graph representation of the engineering program and the expected data item 602B comprises a portion of the f irst set of code segments which are coded according to the f irst set of syntactic rules . A transformation obj ective of the transformer autoencoder model is to transform the input data item 602A into the portion of the f irst set of code segments which are coded according to the f irst set of syntactic rules .

[0119] In a second step 604 of the second set of steps , an encoder model 604A is applied by the processing unit 202 on the received input data item 602A . The encoder model 604A is conf igured to encode the input data item 602A to generate an encoded data item . The encoded data item is at least one of a graph embedding , a word embedding , a state embedding , or a sequence- to- sequence embedding .

[0120] In a third step 606 of the second set of steps , the processing unit 202 is conf igured to apply the decoder model 606A on the encoded data item to generate an output data item . In an initial state of training , a second set of weights of the decoder model 606A are untrained and thus the output data item generated by the decoder model 606A may be dif ferent from the expected data item .

[0121] In a fourth step 608 of the second set of steps , the processing unit 202 is conf igured to compare the output data item with the expected data item 602B to determine an optimi zation dif ference between the output data item and the expected data item 602B . The determined optimization dif ference is indicative of a degree to which the decoder model 606A is trained . The output data item is compared with the expected data item 602B by application of a comparison algorithm 608A on the output data item and the expected data item 602B .

[0122] In a f ifth step 610 of the second set of steps , the processing unit 202 is conf igured to apply an optimizing algorithm on the decoder model 606A to optimize the second set of neural weights of the second set of neurons of the decoder model 606A . In one example , the optimization algorithm is a Stochastic Gradient Descent optimizer algorithm which is conf igured to optimize the second set of weights with an optimi zation goal of minimizing the optimization dif ference between the output data item and the expected data item 604B . Thus the processing unit 202 is conf igured to iterate the second set of steps until the second set of weights are optimized so that the optimization dif ference is minimized . Thus , the processing unit 202 is conf igured to train the decoder model 606A of each transformer autoencoder model by iterative execution of the second set of steps , until the decoder model 606A achieves convergence .

[0123] At a sixth step 612 of the second set of steps , the newly trained decoder model 606B is applied by the processing unit 202 on the input data item 602A to generate a new output data item . The processing unit 202 is further conf igured to determine a new optimization dif ference between the expected data item 602B and the new output data item . In a case where the new optimization dif ference is greater than a threshold dif ference , then a control f low passes to the f irst step 602 . Furthermore , the processing unit 202 is conf igured to run the second set of steps for one more iteration. In a case where the new new optimization difference is lesser than the threshold reconstruction loss parameter, then the control flow passes to a seventh step 614 of the second set of steps. At the seventh step 614, a training process of the encoder model (504A, 504B) is completed by the processing unit 202.

[0124] Referring back to FIG. 3, the processing unit 202 is configured to receive from the user, a plurality of sets of training data, in which each set of training data is associated with a specific transformation objective of a plurality of tranf ormation objectives. Examples of the plurality of transformation objectives comprises a first objective to convert a high level language to a machine language, a second objective to translate a sourcecode from a first programming language to a second programming language, a third objective to convert a source code written in a programming language to a description of the source code written in a natural language. The plurality of transformation objectives further comprises a fourth objective of converting a description of a plurality of computer functions into machine language based implementations of the plurality of computer functions.

[0125] Thus, a first set of training data, with the first objective, has an input data item associated with a high level language and an expected data item associated with a machine language. Thus, a first transformer autoencoder model 124A, trained with the first set of training data, is configured to convert a first engineering program written in the high level language to a second engineering program written in the machine language. Similarly, a second set of training data set, with the second objective, has an input data item associated with a sourcecode in a first programming language and an expected data item associated with a sourcecode in a second program- ming language . Thus , a second transformer autoencoder model 124B , trained with the second set of training dataset , is conf igured to convert a sourcecode from a f irst programming language to a second programming language . The processing unit 202 is further to iteratively execute the f irst set of steps and the second set of steps on each transformer autoencoder models of the plurality of transformer autoencoder models 124A-N based on the received plurality of sets of training data . Since each transfomer autoencoder model of the plurality of transformer autoencoder models 124A-N is trained with a dif ferent set of the plurality of sets of training data , each transformer autoencoder model has a dif ferent trans formation obj ective . In one example , each transformer autoencoder model of the plurality of transformer autoencoder models 124A-N has a data label which is indicative of a specif ic transformation obj ective of the transformer autoencoder model . In one example , the specif ic transformation obj ective of a transformer autoencoder model comprises information associ ated with an input specif ication and an output specif ication of the transformer autoencoder model . In such a case , the transformer autoencoder model is conf igured to process an engineering program with the input specif ication to generate an engineering program with the output specif ication .

[0126] Advantageously, each transformer autoencoder model of the plurality of transformer autoencoder model 124A-N is conf igured to perform a specif ic type of transformation of an engi neering program . Furthermore , a user is enabled to train new transformer autoencoder models with new specif ic transformation obj ectives by providing an appropriate set of training data to the processing unit 202 . The user is further enabled to select an appropriate transformer autoencoder models from the plurality of transformer autoencoder models to perform a transformation of an engineering program from one form to another .

[0127] The automation module 112 further causes the processing unit 202 to generate a relational graph neural network to generate a plurality of node embeddings for one or more name graphs . The plurality of node embeddings is indicative of a vector space in which two or more nodes of the one or more name graphs are arranged in a specif ic arrangement . In the specif ic arrangement , the two or more nodes are arranged such that a distance between the two or more nodes is inversely proportional to a degree of similarity between the two or more nodes .

[0128] The relational graphical neural network is at least one of a Graph Convolutional Network (GCNs ) , a GraphSAGE network a Graph Attention Network (GAT) or a GraphSAGE++ network . The processing unit 202 is conf igured to train the relational graphical neural network based on a training dataset compris ing a training name graph . The processing unit 202 is conf igured to train the relational graph neural network by iteratively training the relational graph neural network based on a plurality of nodes of the training name graph . The relational graph neural network is trained to generate each node embedding of the plurality of node embeddings . In one example , the training name graph is received from the user via an input device . Furthermore , a plurality of ground truth labels associated with the training name graph is also received from the user .

[0129] In one example , the training name graph has a graph data structure or data loader . The processing unit 202 is conf igured to load the training name graph into the relational graph neural network . Each node of the plurality of nodes of the training name graph has a feature vector and one or more edge connections . The processing unit 202 is further conf igured to def ine the relational graph neural network based on a deep learning framework . Examples of the deep learning framework includes but is not limited to PyTorch or TensorFlow . The processing unit 202 further is conf igured to def ine the relational graph neural network based on one or more user inputs received via an input device such as the one or more client devices 120A-N . In one example , the processing unit 202 is conf igured to def ine a plurality of structural aspects associated with the relational graph neural network based on the one or more user inputs . The plurality of structural as pects include but is not limited to a plurality of convolutional layers , a plurality of activation functions , and ini tial values of a plurality of parameters associated with the relational graph neural network . Furthermore , the processing unit 202 is further conf igured to select a loss function for the relational graph neural network based on the one or more user inputs . Examples of the loss function include a mean squared error function and a categorical cross -entropy function .

[0130] It is noted that the processing unit 202 is conf igured to receive the plurality of ground truth labels which corresponds to the training name graph . The plurality of ground truth labels are indicative of one or more node embeddings in which the plurality of nodes of the training name graph are arranged such that a distance between two or more nodes of the one or more node embeddings is inversely proportional to a degree of similarity between the two or more nodes . Each node of the plurality of nodes of the training name graph corresponds to at least one label of the plurality of ground truth labels . The processing unit 202 is further conf igured to it erate over the plurality of nodes of the training name graph and the plurality of ground truth labels . In one example , the iteration is performed over the training name graph in a plurality of batches . Each batch of the plurality of batches corresponds to a specif ic set of ground truth labels of the plurality of ground truth labels . The processing unit 202 is further conf igured to pass each batch of the plurality of batches through the relational graph neural network to generate a plurality of predicted data items . The processing unit 202 is further conf igured to determine an optimization loss associated with each batch of the plurality of batches by computing dif ference between the plurality predicted data items and the specif ic set of ground truth labels which correspond to the batch . The processing unit 202 is further configured to iteratively optimize the relational graph neural network by application of a parameters optimization algorithm on the relational graph neural network and the determined optimization loss . The processing unit 202 is thus conf igured to train the relational graph neural network to generate a set of node embeddings for the training name graph such that a distance between a set of nodes in the set of node embeddings is inversely proportional to a degree of similarity between the set of nodes .

[0131] The automation module is further conf igured to cause the processing unit 202 to receive a user request to generate the specif ic engineering program from information associated with at least one engineering program . The user request is received from user via an input device . In one example , the processing unit 202 is conf igured to receive the at least one engineering program from the user .

[0132] In one example , the user request is a request to generate the specif ic engineering program in accordance with a f irst set of syntactic and semantic rules associated with a f irst specif ication . Furthermore , the user request comprises information associated with a second specif ication of the at least one engineering program . The second specif ication is indicative of a second set of syntactic and semantic rules based on which the at least one engineering program has been coded by a human coder .

[0133] In another example , the automation module 112 causes the processing unit 202 to receive the plurality of compatibility parameters associated with the computing platform 110 . In other words , the specif ic engineering program is compatible with the computing platform 110 if the f irst specif ication, of the specif ic engineering program, matches with the plural ity of compatibility parameters , the automation module 112 causes the processing unit 202 to analyze the second specif i cation associated with the at least one engineering program, and the plurality of compatibility parameters associated with the computing platform . In one example , to analyse the second specif ication, the processing unit 202 is conf igured to compare the second set of syntactic and semantic rules with the received plurality of compatibility parameters . In a case where the second set of syntactic and semantic rules fails to match with the received plurality of compatibility parameters , the processing unit ( 202 ) determines that the at least one engineering program is incompatible with the computing platform 110 .

[0134] In a case where where the second set of syntactic and semantic rules matches with the received plurality of compatibil ity parameters , the processing unit 202 determines that the at least one engineering program is compatible with the computing platform 110 . In a case where the at least one engi neering program is determined to be incompatible with the computing platform, the processing unit 202 is configured to generate a user notification that the at least one engineering program is incompatible. The processing unit 202 is further configured to receive a second specification from the user such that the second specification matches with the plurality of compatibility requirements of the computing platform 110.

[0135] The first specification is different from the second specification. The first specification is indicated in the user request. In one example, the user request comprises information associated with a specific transformation objective to convert the at least one engineering program into the specific engineering program.

[0136] In one example, the at least one engineering program comprises a code based implementation of a plurality of computer functions. Example of the plurality of computer functions include but is not limited to a mathematical function, an engineering function, and an industrial control function. In such a case, the second specification comprises a set of syntactic and semantic rules for coding the code based implementation. Further, the specific engineering program is a natural language based description of the plurality of computer functions. In such a case, the first specification comprises a plurality of grammatical rules associated with the natural language based description of the plurality of computer functions. In one example, the at least one engineering program is selected by a user from a plurality of engineering programs. The user is enabled to select the at least one engineering program from the plurality of engineering programs via a user input device such as the one or more client devices 120A-N .

[0137] The automation module 112 further causes the processing unit 202 to analyze the at least one engineering program based on an application of a machine learning algorithm on the at least one engineering program . In one example , the machine learning algorithm is a natural language processing algorithm . In a case where the at least one engineering program comprises words , code snippets and machine language , the nat ural language processing algorithm is conf igured to detect the words , code snippets and machine language in the at least one engineering program . In one example , the natural language processing algorithm is at least one of a named entity recognition algorithm, a text summarization algorithm, and a to- kenization algorithm . In another example , the machine learning algorithm is a graphical pattern recognition algorithm . In a case where the at least one engineering program is a graphical program such as ladder based engineering program, then the graphical pattern recognition algorithm is conf igured to determine one or more graphical obj ects in the at least one engineering program .

[0138] The automation module 112 further causes the processing unit 202 to determine program data from the at least one engineering program based on the analysis . The program comprises information associated with the at least one engineering program such as words , code snippets , variables , functions , conditional statements , programming blocks , classes , nodes , and graphical obj ects .

[0139] The automation module 112 further causes the processing unit 202 to generate a plurality of tokens from the the determined program data . In other words , the automation module 112 is conf igured to generate the plurality of tokens from at least one engineering program by application of a tokenization al gorithm on the at least one engineering program . Each token of the plurality of tokens comprises at least one constituent data item of the at least one engineering program . Thus each token of the plurality of tokens is at least one of a word, a code snippet , a variable , a function, a conditional statement , a programming block , a class , a node , and a graphical obj ect .

[0140] The automation module 112 further causes the processing unit 202 to apply a dependency parsing algorithm on the plurality of tokens to analyze a syntactic structure of interdependencies between one or more tokens of the plurality of tokens . Furthermore , the dependency parsing algorithm is applied on the at least one engineering program . The dependency parsing algorithm is conf igured to identify a plurality of interdependencies between two or more tokens of the plurality of tokens based on the application of the dependency parsing algorithm on the at least one engineering program . Examples of the dependency parsing algorithm includes but is not limited to a transition based parsing algorithm, a graph based pars ing algorithm, and a neural dependency based parsing algorithm . The plurality of interdependencies comprise a plurali ty of grammatical , syntactic , and semantic relationships between two or more tokens of the plurality of tokens . It is noted that each token of the plurality of tokens is indicative of a constituent data item of the at least one engineering program . In one example , the processing unit is conf igured to f ilter the plurality of tokens with one or more named entity recognition (NER) algorithms to identify mentions of each of a plurality of code snippets in the at least one engineering program . Examples of the named entity recognition algorithm includes a dictionary based NER algorithm, a condi - tional random f ield based NER algorithm, and hidden markov model NER .

[0141] The automation module 112 further causes the processing unit 202 to analyze the identif ied mentions of the plurality of tokens . The processing unit 202 is further conf igured to as sign a plurality of semantic roles to the identif ied mentions of the plurality of tokens . The plurality of semantic roles are assigned by application of a semantic role labelling al gorithm on the identif ied mentioned of the plurality of tokens . The semantic roles of each component of the plurality of tokens is indicative of a relationship of each token with other tokens of the plurality of tokens . Examples of the semantic role labelling algorithms include , but is not limited to AllenNLP Algorithm or PropBank proj ect algorithm .

[0142] The processing unit 202 is conf igured to generate a plurality of dependency trees based on the determined plurality of interdependencies between two or more tokens of the plurality of tokens . Each dependency tree of the plurality of dependency trees is indicative of a plurality of interdependencies between a specif ic token of the plurality of tokens and the at least one engineering program .

[0143] The automation module 112 further causes the processing unit 202 to generate a name graph based on the plurality of dependency trees . In one example , the processing unit 202 is conf igured to concatenate the plurality of dependency trees to generate the name graph based on a set of rules . The set of rules is received by the processing unit 202 , from the us er via an input device . In another example , the processing unit 202 is conf igured to combine the plurality of dependency trees by application of a mathematical operation such as a union operation or an intersection operation on the plurality of dependency trees . The processing unit 202 is conf igured to merge the plurality of dependency trees based on an analysis of the assigned plurality of semantic roles .

[0144] The name graph comprises a plurality of nodes . Each node of the plurality of nodes comprises information associated with a specif ic token of the plurality of tokens of the at least one engineering program . Thus , the name graph comprises information associated with the plurality of interdependencies between the plurality of tokens extracted from the at least one engineering program . Thus , the generated name graph comprises information associated with a structure of the at least one engineering program .

[0145] Furthermore , it is noted that the plurality of tokens indi cate a plurality of constituent data items of the at least one engineering program, such as words , code snippets , variables , functions , conditional statements , programming blocks , classes , nodes , and graphical obj ects within the at least one engineering program . A plurality of interdependencies between the plurality of constituent data items of the at least one engineering program is indicative of a plurality of data f low and a plurality of control f low within the at least one engi neering program . Thus , the plurality of interdependencies between the plurality of tokens indicate a plurality of data f low and a plurality of control f low within the at least one engineering program . In other words , the name graph comprises information associated with the plurality of data f low and the plurality of control f low within the at least one engi neering program .

[0146] The automation module 112 further causes the processing unit 202 to apply the trained relational graph neural network on the name graph to generate a set of node embeddings . The set of node embeddings is indicative of a vector space in which the two or more nodes of the plurality of nodes of the name graph are arranged in a specif ic arrangement . In the specif ic arrangement , a distance between two or more nodes of the plurality of nodes is inversely proportional to a degree of similarity between the two or more nodes . In other words , in the set of node embeddings , each node embedding comprises information associated with a specif ic node of the plurality of nodes , as well as information associated with neighbouring nodes of the specif ic node .

[0147] It is noted that each node comprises information associated with at least one token of the plurality of tokens of the at least one engineering program . Advantageously, the processing unit 202 is conf igured to capture not only information associated with each node of the plurality of nodes of the name graph, but also information associated with relationship of each node with with other nodes of the plurality of nodes . It is further noted that the plurality of nodes comprises information associated with interdependencies between words , code segments , code snippets , variables , functions , and other constituent elements of the at least one engineering program . Thus the plurality of node embeddings capture interelationships between each constituent data item of the plurality of constituent data items of the at least one engineering program, to other constituent data items of the at least one engineering program .

[0148] The automation module 112 further causes the processing unit 202 to generate a knowledge graph based on the generated set of node embeddings . In other words , the knowledge graph is generated based on the information associated with the at least one engineering program . The automation module 112 further causes the processing unit 202 to apply a f lattening algorithm on the generated knowledge graph . Examples of the f lattening algorithms include but is not limited to a tree traversal algorithm, a graph partitioning algorithm, a semantic f lattening algorithm, a dimensionality reduction algorithm, and a graph compression algorithm . The f lattening algorithm is conf igured to generate a f lattened knowledgre graph based on the application of the f lattening algorithm on the knowledge graph . The f lattened knowledge graph is a simplif ied and condensed representation of the knowledge graph . The f lattened knowledge graph has information associated with the plurality of node embeddings of the plurality of nodes of the name graph . Thus , the f lattened knowledge graph not only comprises information associated with each node of the plurality of nodes , but also information associated with interelationships between each node to every other node in the plurality of nodes of the name graph . Thus in other words , the f lattened knowledge graph comprises contextual information associated with a plurality of constituent data items of the at least one engi neering program .

[0149] The automation module 112 further causes the processing unit 202 to compare a specif ic transformation obj ective associated with the user request to a data label of each transformer autoencoder model in the plurality of transformer autoencoder models 124A-N . It is noted that a data label of each trans former autoencoder model of the plurality of transformer autoencoder models 124A-N comprises information associated with a specif ic transformation obj ective of the transformer autoencoder model .

[0150] The automation module 112 further causes the processing unit

[0151] 202 to select a transformer autoencoder model 124A from the plurality of transformer autoencoder models 124A-N based on the comparison . In one example , the selected transformer autoencoder model has a specif ic transformation obj ective which matches with the specif ic transformation obj ective associated with the user request . In other words , the selected trans former autoencoder model 124A is trained such that the selected transformer autoencoder model 124A to convert the knowledge graph into the specif ic engineering program .

[0152] The automation module 112 further causes the processing unit 202 to apply the selected transformer autoencoder model 124A on the f lattened knowledge graph to generate the specif ic engineering program . In other words , the processing unit 202 is conf igured to apply the selected transformer autoencoder model 124A on the knowledge graph .

[0153] The automation module 112 further causes the processing unit 202 to generate the specif ic engineering program from the at least one engineering program based on the application of the selected transformer autoencoder model 124A on the knowledge graph of the at least one engineering program . Advantageous ly, the transformer autoencoder model 124A is applied on the knowledge graph that comprises information associated with the plurality of interdependencies between the plurality of constituent data items of the at least one engineering program . Thus , the specif ic engineering program is generated based on knowledge on the at least one engineering program as well as information on the plurality of interdependencies between the plurality of constituent data items of the at least one engineering program . Furthermore , the specif ic engineering program is generated based on the set of node embeddings in which each node of the plurality of nodes comprises information associated with neighbouring nodes of the node . Thus , interelationships between the plurality of constituent data items of the at least one engineering program are faithfully captured and transformed in the generated specif ic engineering program . Advantageously, a huge amount of labour and time which otherwise would have been spent in understanding the plurality of interdependencies , between the plurality of constituent data items of the at least engineering program, is thus eliminated .

[0154] The automation module 112 further causes the computing plat form 110 to execute the generated specif ic engineering program on the computing platform 110 . Advantageously, the specif ic engineering program is compatible with the computing platform 110 . Further advantageously, a human coder is spared from a labour of manually recoding the at least one engineering program to generate the specif ic engineering program . Thus , a plurality of tasks such as upgradation and migration of the computing platform is simplif ied .

[0155] In one example , the at least one engineering program is coded in accordance with a f irst coding policy . The user request comprises a specif ic transformation obj ective to generate the specif ic engineering program based on a second coding policy . The f irst coding policy and the second coding policy compris es one or more syntactic rules for coding the specif ic engi neering program and the at least one engineering program . The processing unit 202 is conf igured to select the transformer autoencoder model which is conf igured to convert a f irst engineering program coded with the f irst coding policy to a second engineering program coded with the second coding poli cy . The processing unit 202 is further conf igured to apply the at least one transformer autoencoder model on a knowledge graph associated with the at least one engineering program to generated the specif ic engineering program . In another example , the at least one engineering program comprises a natural language based description of a plurality of functions . The user request comprises a specif ic transformation obj ective to generate the specif ic engineering program which comprises a machine language based implementation of the plurality of functions . The processing unit 202 is conf igured to receive a training data set conf igured to train at least one transformer autoencoder model to convert a f irst engineering program which comprises a natural language description of at least one function to a second engineering program comprising a machine learning based representation of the at least one function . The processing unit 202 is further conf igured to apply the at least one transformer autoencoder model on a knowledge graph associated with the at least one engineering program to generate the specif ic engineering program which comprises the machine language based implementation of the plurality of functions .

[0156] In yet another example , the at least one engineering program comprises a machine language based implementation of a plurality of functions . The user request comprises a specif ic transformation obj ective to generate the specif ic engineering program which comprises a natural language based description of the plurality of functions . The processing unit 202 is conf igured to receive a training data set conf igured to train at least one transformer autoencoder model to generate a f irst engineering program which comprises a natural language description of at least one function from a second engineering program comprising a machine learning based representation of the at least one function . The processing unit 202 is further conf igured to apply the at least one transformer autoencoder model on a knowledge graph associated with the at least one engineering program to generate the specif ic engi - neering program which comprises the natural language based description of the at least one function .

[0157] In yet another example , the at least one engineering program is a graphical program comprising a plurality of programming blocks . The user request comprises a specif ic transformation obj ective to generate the specif ic engineering program which comprises a machine language based representation of the graphical program . The processing unit 202 is conf igured to receive a training data set conf igured to train at least one transformer autoencoder model to generate a f irst engineering program which comprises a machine language representation of at least one programming block . The at least one transformer autoencoder model is trained to generate the f irst engineering program from a second engineering program which is a graphical program comprising the at least one programming block . The processing unit 202 is further conf igured to apply the at least one transformer autoencoder model on a knowledge graph associated with the at least one engineering program to generate the specif ic engineering program which comprises a machine language based representation of the graphical program .

[0158] In yet another example , the at least one engineering program is a machine learning based representation of a plurality of computer functions . The user request comprises a specif ic transformation obj ective to generate the user specif ied engi neering program which comprises an algorithmic f lowchart indicative of the plurality of computer functions . The processing unit 202 is conf igured to receive a training data set conf igured to train at least one transformer autoencoder model to generate a f irst engineering program which comprises a machine language representation of at least one programming block . The at least one transformer autoencoder model is trained to generate the f irst engineering program from a second engineering program which is a machine learning based representation of at least one computer function . The processing unit 202 is further conf igured to apply the at least one transformer autoencoder model on a knowledge graph associated with the at least one engineering program to generate the user specif ied engineering program which comprises the algorithmic f lowchart indicative of the plurality of computer functions .

[0159] The storage unit 206 may be a non- transitory storage medium conf igured for storing a database ( such as database 118 ) which comprises server version of the one or more automation domain obj ect 108A-N associated with the industrial automation proj ect 106 .

[0160] The communication interface 208 is conf igured for establishing communication sessions between the one or more client devices 120A-N and the engineering system 102 . The communication interface 208 allows the one or more engineering applications running on the client devices 120A-N to import / export industrial automation proj ect f iles into the engineering system 102 . In an embodiment , the communication interface 208 interacts with the interface at the one or more client devices 120A-N for allowing the engineers to access the engineering programs associated with an industrial automation proj ect f ile and perform one or more actions on the engineering programs stored in the engineering system

[0161] 102 .

[0162] The input -output unit 210 may include input devices a keypad, touch- sensitive display, camera ( such as a camera receiving gesture-based inputs ) , etc . capable of receiving one or more input signals , such as user commands to process industrial automation project file. Also, the input-output unit 210 may be a display unit for displaying a graphical user interface which visualizes the behavior model associated with the modified engineering programs and also displays the status information associated with each set of actions performed on the graphical user interface. The set of actions may include execution of predefined tests, download, compile and deploy of graphical programs. The bus 214 acts as interconnect between the processing unit 202, the memory 204, and the input-output unit 210.

[0163] The network interface 212 may be configured to handle network connectivity, bandwidth and network traffic between the engineering system 102, client devices 120A-N and the industrial automation project 106.

[0164] Those of ordinary skilled in the art will appreciate that the hardware depicted in FIG 2 may vary for particular implementations. For example, other peripheral devices such as an optical disk drive and the like, Local Area Network (LAN) , Wide Area Network (WAN) , Wireless (e.g. , Wi-Fi) adapter, graphics adapter, disk controller, input / output (I / O) adapter also may be used in addition or in place of the hardware depicted. The depicted example is provided for the purpose of explanation only and is not meant to imply architectural limitations with respect to the present disclosure.

[0165] Those skilled in the art will recognize that, for simplicity and clarity, the full structure and operation of all data processing systems suitable for use with the present disclosure is not being depicted or described herein. Instead, only so much of an engineering system 102 as is unique to the present disclosure or necessary for an understanding of the present disclosure is depicted and described. The remainder of the construction and operation of the engineering system 102 may conform to any of the various current implementation and practices known in the art .

[0166] FIG 3 is a block diagram of an automation module 112 , such as those shown in FIG 2 , in which an embodiment of the present invention can be implemented . In FIG 3 , the automation module 112 comprises a request handler module 302 , a knowledge graph generation module 304 , an analysis module 306 , a modif ier module 308 , a transformer autoencoder model database 310 , a validation module 312 and a deployment module 314 . FIG . 3 is explained in conj unction with FIG . 1 and FIG . 2 .

[0167] The request handler module 302 is conf igured for receiving the user request to generate the specif ic engineering program from the at least one engineering program . For example , the user request is received from one of the one or more users external to the industrial environment 100 via a network . In alternative embodiment , the user request is received from the one or the one or more client devices 120A-N via the network .

[0168] The knowledge graph generation module 304 is conf igured for analyzing one or more engineering programs to generate one or more name graphs for the one or more engineering programs . The one or more name graphs comprises a plurality of nodes which is indicative of a plurality of interdependencies between a plurality of constituent data items of the one or more engineering programs .

[0169] The analysis module 306 is conf igured for analyzing the one or more name graphs associated with the one or more engineering programs . Specif ically, the analysis module 306 is configured for determining a plurality of control f low and data f low within the one or more engineering programs . Further , the analysis module 306 is conf igured for generating a plurality of node embeddings associated with the one or more name graphs by application of a relational graph neural net work on the one or more nodes . The analysis module 306 is further conf igured to generate a knowledge graph based on the plurality of node embeddings .

[0170] The modif ier module 308 is conf igured for applying at least one transformer autoencoder model on the knowledge graph of the one or more engineering program . The modif ier module is further conf igured to generate an autoencoder specif ic engi neering program based on the application of the at least transformer autoencoder model on the one or more engineering programs .

[0171] The transformer autoencoder model database 310 is conf igured for storing the plurality of transformer autoencoder models 124A-N . The transformer autoencoder model database 310 is further conf igured to store information about a specif ic transformation obj ective of each transformer autoencoder model of the plurality of transformer autoencoder models 124A-N . The transformer autoencoder model database 310 is further conf igured to store a plurality of sets of training data used to train the plurality of transformer autoencoder models 124A-N .

[0172] The validation module 312 is conf igured to generate a simulation instance for the industrial environment 100 . In one example , the simulation instance is a digital twin of a controller device such as a programmable logic controller in the industrial plant 106 . The validation module 312 is further conf igured to simulate an execution of the specif ic engineering program in the simulation instance . The validation module 312 is further conf igured to generate a plurality of key per- formance indicators associated with a simulated execution of the generated specif ic engineering program . The plurality of key performance indicators include but is not limited to a processing speed, a memory resource requirement and code length of the generated specif ic engineering program . The validation module 312 is further conf igured to val idate the generated specif ic engineering program based on the determined plurality of key performance indicators .

[0173] The deployment module 314 is conf igured for deploying the generated specif ic engineering program in real - time onto the industrial environment 100 based on the validation . Advantageously, the generated specif ic engineering program is only deployed after the determination that the generated specif ic engineering program is valid .

[0174] FIG 4A-C is a process f lowchart illustrating an exemplary method 400 of generating an engineering program which is compatible with a computing platform 110 , according to an embodiment of the present invention . FIG . 4A-C is explained in conj unction with FIG . 1 , 2 , and 3 .

[0175] At step 402 , the automation module 112 causes the processing unit 202 to train the plurality of transformer autoencoder models 124A-N . The processing unit 202 is conf igured to receive from the user , a plurality of set of training data , in which each set of training data is associated with a specif ic transformation obj ective of a plurality of tranf ormation obj ectives . The plurality of transformer autoencoder models 124A-N are trained based on the plurality of set of training data .

[0176] At step 404 , the automation module 112 causes the processing unit 202 to generate the relational graph neural network to generate a plurality of node embeddings for one or more name graphs . The plurality of node embeddings is indicative of a vector space in which two or more nodes of the one or more name graphs are arranged in a specif ic arrangement . In the specif ic arrangement , the two or more nodes are arranged such that a distance between the two or more nodes is inversely proportional to a degree of similarity between the two or more nodes .

[0177] At step 406 , the automation module 112 is further conf igured to cause the processing unit 202 to receive a user request to generate the specif ic engineering program from information associated with at least one engineering program . The user request is received from user via an input device . The specif ic engineering program has a f irst specif ication and the at least one engineering program has a second specif ication .

[0178] At step 408 , the automation module 112 further causes the processing unit 202 to analyze the at least one engineering program based on an application of a machine learning algorithm on the at least one engineering program . In one example , the machine learning algorithm is a natural language processing algorithm .

[0179] At step 410 , the automation module 112 further causes the processing unit 202 to determine program data from the at least one engineering program based on the analysis . The program comprises information associated with the at least one engineering program such as words , code snippets , variables , functions , conditional statements , programming blocks , clas ses , nodes , and graphical obj ects .

[0180] At step 412 , the automation module 112 further causes the processing unit 202 to generate a plurality of tokens from the at least one engineering program by application of a to- kenization algorithm . Each token of the plurality of tokens comprises at least one constituent data item of the at least one engineering program . Thus each token of the plurality of tokens is at least one of word, a code snippet , a variable , a function, a conditional statement , a programming block , a class , a node , and a graphical obj ect .

[0181] At step 414 , the automation module 112 further causes the processing unit 202 to apply a dependency parsing algorithm on the plurality of tokens to analyze a syntactic structure of interdependencies between one or more tokens of the plurality of tokens .

[0182] At step 416 , the automation module 112 further causes the processing unit 202 to analyze the identif ied mentions of the plurality of tokens . The processing unit 202 is further conf igured to assign a plurality of semantic roles to the identif ied mentions of the plurality of tokens . The processing unit 202 is further conf igured to generate a pluraloity of dependency trees based on the identif ied mentions of the plurality of tokens and the analyzed syntactic structure of interdependencies between the one or more tokens of the plural ity of tokens .

[0183] At step 418 , the automation module 112 further causes the processing unit 202 to generate a name graph based on the plurality of dependency trees . In one example , the processing unit 202 is conf igured to concatenate the plurality of dependency trees to generate the name graph based on a set of rules .

[0184] At step 420 , the automation module 112 further causes the processing unit 202 to apply the trained relational graph neural network on the name graph to generate a set of node embeddings . The set of node embeddings is indicative of a vector space in which the two or more nodes of the plurality of nodes of the name graph are arranged in a specif ic arrangement .

[0185] At step 422 , the automation module 112 further causes the processing unit 202 to generate a knowledge graph based on the generated set of node embeddings . In other words , the knowledge graph is generated based on the information associ ated with the at least one engineering program .

[0186] At step 424 , the automation module 112 further causes the processing unit 202 to apply a f lattening algorithm on the generated knowledge graph . Examples of the f lattening algorithms include but is not limited to a tree traversal algorithm, a graph partitioning algorithm, a semantic f lattening algorithm, a dimensionality reduction algorithm, and a graph compression algorithm .

[0187] Referring to FIG . 7A, FIG . 7A is an exemplary illustration of generation of a name graph 704 from a f irst engineering program 702 . The f irst engineering program 702 is drafted in accordance with a f irst set of syntax rules . In the exemplary illustration of FIG . 7A-C , the f irst set of syntax rules dictates that each code statement of the f irst engineering program 702 is in coded in a dif ferent line . Furthemore , in the exemplary illustration of FIG . 7A-C , the automation module 112 is conf igured to generate a second engineering program 712 based on information of the f irst engineering program 702 . The second engineering program 712 is generated by the automation module 112 such that the second engineering program 712 has a second specif ication comprising a second set of syntax rules . In accordance with the second set of syntax rules, a plurality of code statements of the first engineering program 702 is coded in a single line in the second engineering program 712.

[0188] The processing unit 202 is configured to apply a tokenization algorithm, a dependency parsing algorithm, and a semantic role detection algorithm on the first engineering program 702 to generate the name graph 704. The name graph 704 comprises a plurality of nodes 706A-I. In the exemplary illustration of FIG. 7A, a first set of nodes 706A, 706C, and 706F are similar to each other. Furthermore, a second set of nodes 706B, 706G, and 706H are similar to each other. Furthermore, a third set of nodes 706D, 706E, and 7061 are similar to each other. However, in the name graph 704, each node of the first set of nodes 706A, 706C, and 706F are spatially distant from each other.

[0189] The processing unit 202 is further configured to apply the trained relational graph neural network (R-GNN) on the name graph 704 to generate a plurality of node embeddings. In one example, a numerical value of each node embedding of the plurality of node embeddings is generated in an iterative manner by the trained relational graph neural network in accordance with Formula (1) . wherein :

[0190] L is the number of iterations in the R-GNN;

[0191] / i+1is the updated numerical value of ithnode after the Lthiteration of the R-GNN; f is an activation function; is the assigned numerical value of the ithnode of the name graph 704 before the Lthiteration of the R- GNN; wLis a weighted constant; rkis the kthrelation between the ithnode and the jthnode ;

[0192] R is R-GNN constant;

[0193] Nkis Neural network constant;

[0194] Ciris a number of the nodes to which the ithnode is related; wkis the predefined weight of the determined type of relation between the ithnode and the jthnode before the Lthiteration of the R-GNN; and hj is the assigned numerical value of the jthnode before the Lthiteration of the R-GNN.

[0195] Referring to FIG. 7B, FIG. 7B illustrates a knowledge graph 708 generated by the relational graph neural network from the name graph 704. In the knowledge graph 708, each node of the first set of nodes 706A, 706C, and 706F are closer to each other in comparison to a spatial location of the first set of nodes 706A, 706C, and 706F in name graph 704. Similarly, each node of the second set of nodes 706B, 706G, and 706H are closer to each other in comparison to positions of the second set of nodes 706B, 706G, and 706H in the name graph 704. Thus, a position of each node in the knowledge graph 708 is indicative of information associated with neighbouring nodes within a threshold distance of the node. It is noted that nodes in the first set of nodes 706A, 706C, and 706F are similar to each other. Since the first set of nodes 706A, 706C, and 706F are similar to each other, the the first set of nodes 706A, 706C , and 706F are close together in the knowledge graph 708 . In other words , in the knowledge graph 708 , a distance between two or more nodes of a plurality of nodes of the knowledge graph 708 , is inversely proportional to a similarity between the two or more nodes .

[0196] The processing unit 202 is further conf igured to apply a f lattening algorithm on the knowledge graph 708 to generate a f lattened knowledge graph .

[0197] Referring back to FIG . 4 , at step 426 , the automation module 112 further causes the processing unit 202 to compare a specif ic transformation obj ective associated with the user request to a plurality of data labels in the plurality of transformer autoencoder models .

[0198] At step 428 , the automation module 112 further causes the processing unit 202 to select a transformer autoencoder model 124A from the plurality of transformer autoencoder models 124A-N based on the comparison . In one example , the selected transformer autoencoder model has a specif ic transformation obj ective which matches with the specif ic transformation obj ective associated with the user request .

[0199] At step 430 , the automation module 112 further causes the processing unit 202 to apply the selected transformer autoencoder model 124A on the f lattened knowledge graph to generate the specif ic engineering program . In other words , the processing unit 202 is conf igured to apply the selected trans former autoencoder model 124A on the knowledge graph .

[0200] At step 432 , the automation module 112 further causes the processing unit 202 to generate the specif ic engineering program from the at least one engineering program based on the application of the selected transformer autoencoder model 124A on the knowledge graph of the at least one engineering program .

[0201] With reference of FIG. 7C, FIG 7C. Illustrates a flattened knowledge graph 710. In the flattened knowledge graph 710, one or more interrelationships and one or more similarities between the plurality of nodes of the name graph 704 are represented in a condensed format. The processing unit 202 is further configured to apply the transformer autoencoder model 124A on the flattened knowledge graph 710 to generate the second engineering program 712.

[0202] FIG 8A-C is an exemplary illustration of a plurality of use cases of an automation module 112 according to an embodiment of the present invention. FIG 8A-C is explained in conjunction with FIG. 1-7.

[0203] With reference to FIG. 8A, FIG. 8A illustrates conversion of at least one engineering program 802 to a specific engineering program 804 by use of a transformer autoencoder model 124A. The at least one engineering program 802 is coded in accordance with a first coding policy. The user request comprises a specific transformation objective to generate the specific engineering program based on a second coding policy. The first coding policy and the second coding policy comprises one or more syntactic rules for coding the specific engineering program and the at least one engineering program. For example, in accordance with the first coding policy, in the at least one engineering program 802, a first parameter is named as „numberof items " . In accordance with the second coding policy, in the specific engineering program 804, the first parameter is named as „ Input_number_of_i terns " . The processing unit is configured to select the transformer autoen- coder model 124A which is conf igured to convert a f irst engi neering program coded with the f irst coding policy to a second engineering program coded with the second coding policy . The processing unit 202 is further conf igured to apply the at least one transformer autoencoder model 124A on a knowledge graph associated with the at least one engineering program 802 to generate the specif ic engineering program 804 .

[0204] With reference to FIG . 8B , FIG . 8B illustrates conversion of at least one engineering program 806 which comprises a natural language based description of at least one function . In the at least one engineering program 806 , the at least one function is to start a motor when water level is low and stop when the water level is high . A user request , received by the processing unit 202 , comprises a specif ic transformation obj ective to generate a specif ic engineering program 808 which comprises a programming language based implementation of the at least one function . The processing unit 202 is conf igured to receive a training data set conf igured to train at least one transformer autoencoder model 124A to convert a f irst engineering program which comprises a natural language description of at least one function to a second engineering program comprising a machine learning based representation of the at least one function . The processing unit 202 is further conf igured to apply the at least one transformer autoencoder model 124A on a knowledge graph associated with the at least one engineering program 806 to generate the specif ic engi neering program 808 which compri ses the programming language based implementation of the at least one function .

[0205] With reference to FIG . 8C , FIG . 8C illustrates conversion of at least one engineering program 810 which is a graphical program comprising a plurality of programming blocks 810A-C . The user request comprises a specif ic transformation obj ec- f ive to generate a specif ic engineering program 812 which comprises a programming language based representation of the graphical program . The processing unit 202 is conf igured to receive a training data set conf igured to train at least one transformer autoencoder model 124A to generate a f irst engi neering program which comprises a machine language representation of at least one programming block . The at least one transformer autoencoder model is trained to generate the first engineering program from a second engineering program which is a graphical program comprising the at least one programming block . The processing unit 202 is further conf igured to apply the at least one transformer autoencoder model 124A on a knowledge graph associated with the at least one engi neering program 810 to generate the specif ic engineering program 812 which comprises a machine language based representation of the graphical program .

[0206] FIG . 9 is an exemplary illustration of a user interface 900 for displaying an input and an output of an automation module according to an embodiment of the present invention . The user interface displays at least one engineering program 902 and a specif ic engineering program 904 generated by the automation module 112 .

[0207] The present invention can take a form of a computer program product comprising program modules accessible from computer- usable or computer- readable medium storing program code for use by or in connection with one or more computers , proces sors , or instruction execution system . For the purpose of this description, a computer-usable or computer- readable medium can be any apparatus that can contain, store , communi cate , propagate , or transport the program for use by or in connection with the instruction execution system, apparatus , or device . The medium can be electronic , magnetic , optical , electromagnetic , infrared, or semiconductor system (or apparatus or device) or a propagation mediums in and of themselves as signal carriers are not included in the def inition of physical computer- readable medium include a semiconductor or solid state memory, magnetic tape , a removable computer diskette , random access memory (RAM) , a read only memory (ROM) , a rigid magnetic disk and optical disk such as compact disk read-only memory (CD-ROM) , compact disk read / write , and DVD . Both processors and program code for implementing each aspect of the technology can be centralized or distributed (or a combination thereof ) as known to those skilled in the art .

[0208] While the present invention has been described in detail with reference to certain embodiments , it should be appreciated that the present invention is not limited to those embodi ments . In view of the present disclosure , many modif ications and variations would be present themselves , to those skilled in the art without departing from the scope of the various embodiments of the present invention, as described herein . The scope of the present invention is , therefore , indicated by the following claims rather than by the foregoing description . All changes , modif ications , and variations coming within the meaning and range of equivalency of the claims are to be considered within their scope . All advantageous embodi ments claimed in method claims may also be apply to sys - tem / apparatus claims .

Claims

Patent Claims1. A computer implemented method of generating a specific engineering program which is compatible with a computing platform (110) , the method comprising: receiving a user request from a user, wherein the user request is indicative of a request to generate the specific engineering program from the information associated with the at least one engineering program, wherein the user request comprises information associated with a first specification of the at least one engineering program, wherein the specific engineering program has a second specification, and wherein each of the first specification and the second specification comprises a specific set of syntactic and semantic rules1; generating, by the processing unit (202) , a knowledge graph (708) based on information associated with at least one engineering program, wherein the generated knowledge graph (708) is a vector space representation of a plurality of nodes (706A-I) , and wherein, in the generated knowledge graph (708) , a distance between two or more nodes of the plurality of nodes is inversely proportional to a degree of similarity between the two or more nodes of the plurality of nodes (706A-I) ; applying, by the processing unit, a transformer autoencoder model (124A) , on the generated knowledge graph (708) , wherein the transformer autoencoder model (124A)1Claim 2is configured to generate the specific engineering program (712) which is compatible with a computing platform (110) ; and generating, by the processing unit, the specific engineering program (712) based on the application of the transformer autoencoder model (124A) on the knowledge graph (708) .

2. The method according to claim 1, wherein applying, by the processing unit, the transformer autoencoder model (124A) on the generated knowledge graph comprises: analyzing, by the processing unit (202) , the first specification associated with the at least one engineering program, and a plurality of compatibility parameters associated with the computing platform 110; determining, by the processing unit (202) , that the at least one engineering program is incompatible with the computing platform 110 based on the analysis; selecting, by the processing unit (202) , the transformer autoencoder model (124A) from the plurality of transformer autoencoder models (124A-N) based on the determination that the at least one engineering program is incompatible with the computing platform 110; and applying, by the processing unit, the selected transformer autoencoder model (124A) on the generated knowledge graph.

3. The method according to claims 1 and 2, wherein the at least one engineering program with the first specification is incompatible with the computing platform 110 and the specific engineering program with the second specification is compatible with the computing platform 110.

4. The method according to claim 1, wherein the generation of the knowledge graph (708) comprises: generating, by the processing unit (202) , a plurality of tokens by application of a tokenization algorithm on the information associated with the at least one engineering program (702) ; analyzing, by the processing unit, the plurality of tokens and the information associated with the at least one engineering program (702) ; determining, by the processing unit (202) , a plurality of interdependencies between the plurality of tokens based on the analysis; generating, by the processing unit (202) , a name graph (704) based on the plurality of tokens and the plurality of interdependencies; and applying, by the processing unit (202) , a relational graphical neural network on the generated name graph (704) to generate the knowledge graph (708) .

5. The method according to any of claims 2, 3, or 4 , wherein applying the transformer autoencoder model (124A) on the generated knowledge graph (704) further comprises: generating, by the processing unit (202) , a flattened knowledge graph (710) by application of a flattening algorithm on the generated knowledge graph (708) ; selecting, by the processing unit (202) , the transformer autoencoder model (124A) from the plurality of transformer autoencoder models (124A-N) based on the user request; and applying, by the processing unit (202) , the select- ed transformer autoencoder model (124A) on the flattened knowledge graph (710) to generate the specific engineering program (702) .

6. The method according to any of claims 4 or 5 , wherein each transformer autoencoder model of the plurality of transformer autoencoder models (124A-N) comprises an encoder model (504A, 604A) and a decoder model (506A, 606A) , the encoder model (504A, 604A) is a neural network with a first set of neurons and a first set of neural weights, and the decoder model (506A, 606A) is a neural network with a second set of neurons and a second set of neural weights .

7. The method according to claim 6, wherein the encoder model (504A, 604A) of each transformer autoencoder model of the plurality of plurality of transformer autoencoder models (124A-N) is trained by: receiving, by the processing unit (202) , a plurality of input data items; applying, by the processing unit (202) , the encoder model (504A, 604A) on the plurality of input data items to generate a plurality of encoded data items; applying, by the processing unit (202) , the decoder model (506A, 606A) on the plurality of encoded data items to generate a plurality of reconstructed data items ; comparing, by the processing unit (202) , the plurality of reconstructed data items with the plurality of input data items to determine a reconstruction loss; optimizing, by the processing unit (202) , the first set of neural weights of the encoder model (504A, 604A) by application of an optimization algorithm on the first set of neural weights based on the determined reconstruction loss.

8. The method according to claim 7, wherein the decoder model (506A, 606A) of each transformer autoencoder model of the plurality of transformer autoencoder models (124A-N) is trained by: receiving, by the processing unit (202) , an input data item and an expected output data item; applying, by the processing unit (202) , the encoder model (504A, 604A) on the input data item to an encoded data item; applying, by the processing unit (202) , the decoder model (506A, 606A, ) on the encoded data item to generate a transformed data item; comparing, by the processing unit (202) , the transformed data item with the expected output data item to determine an optimization difference; optimizing, by the processing unit (202) , the second set of neural weights of the decoder model (506A, 606A) by application of an optimization algorithm on the second set of neural weights based on the optimization difference .

9. The method according to any of claims 1 to 8, wherein the information associated with the at least one engineering program (702) comprises a natural language based description of a plurality of functions, and wherein the generated specific engineering program (712) comprises a machine language based implementation of the plurality of functions .

10. An engineering system for generation of a specific engineering program which is compatible with a computing platform 110, wherein the engineering system comprises:one or more processing unit (202) ; and a memory (204) coupled to the one or more processor (s) , wherein the memory comprises an automation module stored in the form of machine-readable instructions executable by the one or more processor (s) , wherein the automation module (112) is capable of performing a method according to any of the claims 1-9.

11. An industrial environment (100) comprising: an engineering system (102) as claimed in claim 10; a technical installation (106) comprising one or more physical components; and one or more client devices (120A-N) communicatively coupled to the engineering system (102) via a network (104) , wherein the engineering system (102) is configured to perform a method according to any of the claims 1 to 9.

12. A computer-program product, having machine-readable instructions stored therein, that when executed by a processing unit (202) , cause the processing unit (202) to perform a method according to any of the claims 1-9.

13. A signal with embedded machine-readable instructions, the signal being received from a computer system, characterized in that when executed by a processing unit (202) , the machine-readable instructions causes a processing unit (202) to perform a method according to any of the claims 1-9.

Citation Information

Patent Citations

  • Authoring System For Assembling Clinical Knowledge

    US20160350441A1

  • PLC code generation with a knowledge graph

    WO2021040727A1