Conversational interfaces (also called chatbots) are being increasingly adopted in various domains such as e-commerce or customer service, as a direct
communication channel between companies and end-users. Their advantage is that they can be embedded within social networks, and provide a natural language (NL) interface that enables their use by non-technical users. Nevertheless, while there are many emerging platforms for building chatbots, their construction remains a highly technical, challenging task. This was one of the main reasons behind the creation of our Xatkit platform, which employs low-code techniques and DSLs to facilitate the definition of all types of bots.
We believe the same benefits chatbots brings to the above domains, chatbots can also bring them to the modeling world. Therefore, we propose the use of chatbots to facilitate querying domain-specific models. This way, instead of relying on technical query languages (e.g., OCL), models are queried using NL, as this can be more suitable for non-technical users. And even more amenable even for technical ones when dealing with complex models. We can use this approach at any meta level. Meaning that we could use to chat with a model to explore the data it contains or chat with a DSL to ask questions about the models conforming to that DSL.
To avoid manual programming, our solution is based on the automatic synthesis of the model query chatbots from a domain meta-model. These chatbots communicate with an EMF-based modelling backend added to the open source Xatkit framework. The following figure shows the schema of this process. The featured image of the post shows an example of the generated chatbot.
All details of this new natural language approach to explore models can be read in this paper:
Everything is valid as long as you keep modeling!. Let’s bring new user interfaces to the modeling world.
ICREA Research Professor at Internet Interdisciplinary Institute (UOC). Leader of the SOM Research Lab focusing on the broad area of systems and software engineering