{"id":7701,"date":"2021-03-16T03:15:17","date_gmt":"2021-03-16T03:15:17","guid":{"rendered":"https:\/\/modeling-languages.com\/?p=7701"},"modified":"2021-08-06T14:45:14","modified_gmt":"2021-08-06T14:45:14","slug":"nlp-architecture-model-autocompletion-domain","status":"publish","type":"post","link":"https:\/\/modeling-languages.com\/nlp-architecture-model-autocompletion-domain\/","title":{"rendered":"An NLP-based architecture for the autocompletion of partial domain models"},"content":{"rendered":"

Domain models capture the key concepts and relationships of a business domain<\/strong>, leaving out superfluous details. During the domain modeling activity carried out as part of a software development project, informal descriptions of a domain are translated into a structured and unambiguous representation using a concrete (formal) notation.<\/p>\n

Despite the broad variety of languages (UML<\/a>, DSLs<\/a>, ER<\/a>, etc<\/a>.), tools and methods for domain modeling, these models are typically created by hand,<\/strong> making their definition a crucial (but also time-consuming) task in the development life-cycle. Given that the knowledge to be used as input to define such domain models is already (partially) captured in textual format (manuals, requirement documents, technical reports, transcripts of interviews, etc.) and provided by the different stakeholders in the project, we propose to move towards a more assisted domain modeling building process<\/strong>.<\/p>\nYou don't need to model alone. Our modeling assistant uses NLP-based techniques to read any existing document (including Wikipedia!) and helps you with good autocompletion suggestions to create better models faster! <\/a><\/span>Click To Tweet<\/a><\/span>\n

To facilitate the definition of domain models and improve their quality, we present an approach where a natural language processing-based (NLP-based) assistant will provide autocomplete suggestions for the partial model<\/strong> under construction based on the automatic analysis of the textual information available for the project (contextual knowledge<\/strong>) and\/or its related business domain (general knowledge<\/strong>). The process will also take into account the feedback collected from the designer’s interaction with the assistant. This is a joint work by L. Burgue\u00f1o<\/a>, R. Claris\u00f3<\/a>, S. G\u00e9rard<\/a>, S. Li<\/a> and J. Cabot<\/a> that will be part of the 33rd International Conference on Advanced Information Systems Engineering<\/a> (CAiSE’21). Summary slides are also available at the end of the post.<\/p>\n\n

Autocompletion of partial domain models<\/h2>\n

Our proposal aims to assist designers while they build their domain models. Given a partial domain model, our system is able to propose new model elements that seem relevant to the model-under-construction but are still missing<\/strong>. This is, it assists the software designer by generating potential new model elements to add to the partial model she is already authoring. We believe this is more realistic than trying to generate full models<\/strong> out of the requirements documents in a fully automated way.<\/p>\n

We propose a configurable framework that follows an iterative approach to help in the modeling process. It uses Natural Language Processing (NLP) techniques for the creation of word embeddings from text documents together with additional NLP tools for the morphological analysis and lemmatization of words<\/strong>. With this NLP support, we have designed a model recommendation engine that queries the NLP models and historical data about previous suggestions accepted or rejected by the designer and builds and suggests potential new domain model elements to add to the ongoing working domain model. Our first experiments show the potential of this line of work.<\/p>\n

Framework and Process<\/h2>\n

To provide meaningful suggestions, our framework relies on knowledge extracted out of textual documents. Two kinds of knowledge\/sources are considered:<\/p>\n