Marc Hellrich, Pavel Slivnitsin, Philipp Nostiz, Thomas P., Tim S. - Data Science Kooperationsprojekt

Allnexa Tank Container Management System

Allnex, a chemistry company located in Bitterfeld, uses tank containers to store and distribute their produce. The Allnex logistics department surveils approximately 200 containers. Retrieving information from a self-built Tank Container Management System is very routine and time consuming. These information includes properties like fill level, temperature, geolocation and weight. To simplify this, Allnexa comes into play. Allnexa is an application-specific chatbot to improve TC-Management. The major  equirements were:

  1. capable of understanding German, English & Russian
  2. working with provided data stored in relational database
  3. providing voice & text input

The project sponsor provided a snippet of the database used in Allnex’ Tank Container Management System as well as 18 common questions with its corresponding SQL queries. But with as few as 18 questions given, a machine learning model was not an option. So a rule-based approach was chosen.

The final Chatbots frontend had two input channels: text & voice and one written output channel. The input question is then passed to the backend. The backend supports English, German & Russian by design. It consists of 4 Qanary components:

  1. language detection
  2. question type detection
  3. triple detection
  4. answer generation

This framework executes a list of components in order, where typically the last component creates the answer text to the question and it uses the work of previous components to achieve this. The language detection is a pre-existing one. These components use the tokenizer, question analyzer, semantic triple collection, SQL query generator and natural language generator (answer generation templates) built by the project team. To find out about important information in the question the team created Question Analyzers for the three languages. The tokenizer searches for specific words in the question. The Question Analyzer can detect question type, entities, numbers and other information that we want to get from the question text. To store the detected information in a format we can work with, we created Semantic Triples that represent facts that the question analyzers have detected. For questions the bot is expected to answer templates were created and used by the 4. components.

To ensure the performance of Allnexa, 2 quality measurement mechanisms were used. Beside the Qanary built-in tool, Pytest was used to keep track of Allnexa’s results before deploying code changes into production. Overall, Allnexa is capable of answering 95% of our 626 manually generated test questions correctly.