Recommending Metamodel Concepts during Modeling Activities with Pre-Trained Language Models
arXiv:2104.01642 · doi:10.1007/s10270-022-00975-5
Abstract
The design of conceptually sound metamodels that embody proper semantics in relation to the application domain is particularly tedious in Model-Driven Engineering. As metamodels define complex relationships between domain concepts, it is crucial for a modeler to define these concepts thoroughly while being consistent with respect to the application domain. We propose an approach to assist a modeler in the design of a metamodel by recommending relevant domain concepts in several modeling scenarios. Our approach does not require to extract knowledge from the domain or to hand-design completion rules. Instead, we design a fully data-driven approach using a deep learning model that is able to abstract domain concepts by learning from both structural and lexical metamodel properties in a corpus of thousands of independent metamodels. We evaluate our approach on a test set containing 166 metamodels, unseen during the model training, with more than 5000 test samples. Our preliminary results show that the trained model is able to provide accurate top- lists of relevant recommendations for concept renaming scenarios. Although promising, the results are less compelling for the scenario of the iterative construction of the metamodel, in part because of the conservative strategy we use to evaluate the recommendations.
18+2 pages
References in corpus (8)
- Semi-Supervised Classification with Graph Convolutional Networks
- Language Models are Few-Shot Learners
- Cross-lingual Language Model Pretraining
- CodeBERT: A Pre-Trained Model for Programming and Natural Languages
- Learning and Evaluating Contextual Embedding of Source Code
- Big Code != Big Vocabulary: Open-Vocabulary Models for Source Code
- SCELMo: Source Code Embeddings from Language Models
- Combining Code Embedding with Static Analysis for Function-Call Completion