DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • Designing a Blog Application Using Document Databases
  • Relational DB Migration to S3 Data Lake Via AWS DMS, Part I
  • NoSQL for Relational Minds
  • Business Logic Database Agent

Trending

  • How Trustworthy Is Big Data?
  • Doris: Unifying SQL Dialects for a Seamless Data Query Ecosystem
  • Issue and Present Verifiable Credentials With Spring Boot and Android
  • *You* Can Shape Trend Reports: Join DZone's Software Supply Chain Security Research
  1. DZone
  2. Data Engineering
  3. Databases
  4. Building a Chatbot With an Expert System

Building a Chatbot With an Expert System

See a bot that addresses the problem of customer self-service internet connection troubleshooting.

By 
Klaus Engelbrecht user avatar
Klaus Engelbrecht
·
Apr. 02, 19 · Tutorial
Likes (4)
Comment
Save
Tweet
Share
11.7K Views

Join the DZone community and get the full member experience.

Join For Free
This post has been written by Klaus Peter Engelbrecht (AI Enterprise Deutsche Telekom AG) and Enzo Martoglio (AI Enterprise Deutsche Telekom UK).

Customer support is increasingly handled by chatbots to improve availability, minimize waiting times for the customer, and reduce customer support costs. While most chatbots today perform simple dialogs during which a customer asks one or more questions that are mostly unrelated, there are some domains that require more coherent dialog behavior. Here, we present a chatbot in such a domain that we recently built with Grakn. The bot addresses the problem of customer self-service internet connection troubleshooting.

Image title

When customers experience problems with their Internet connection, this can be caused by various factors ranging from network failures to wrong connection settings on the client machine. While oftentimes the cause of the problem can be identified by inspecting the status of the router as indicated by several LEDs, customers may consult customer support, e.g. because they have little confidence in their ability to debug a computer network or because they prefer this to looking up the meaning of LEDs and their statuses in the router manual.

The functionalities expected from a troubleshooting type of expert system can be summarized as follows: Guide the user through the debugging process by asking a series of questions to systematically identify the problem and provide an appropriate solution. This implies the following system requirements:

  1. Awareness of the meaning of LEDs and their statuses, depending on the router model
  2. Awareness of solutions addressing each of the possible problems
  3. Tracking information collected from the user during the dialog, be it explicit (e.g. status of LEDs) or implicit (solutions already tried)
  4. Inference of the status of the router that is implied by the collected information
  5. A strategy determining in which order to ask the necessary questions depending on the current information state

A troubleshooting system with such capabilities is ultimately a type of expert system. A limitation of traditional expert systems lies in the complexities of adding and modifying knowledge and ultimately in providing effective ways to map knowledge graphically. As a way to overcome these limitations, we thought to use the Grakn Knowledge Graph architecture as the core of our troubleshooting expert system.

Grakn is an intelligent database in the form of a knowledge graph to organize complex networks of data. The concepts of the systems are entities and relationships, while rules can be added to perform automated reasoning in a distributed environment. Grakn's schema is a type system that implements the principles of knowledge representation and reasoning, which produce a more expressive and useful system than traditional relational and NoSQL databases when managing large-scale linked data. The benefits of building the expert system with Grakn can be summarized as follows:

  • Ease of adding data and representing/modifying rules (with the added benefit of using a database rather embedding all of the above in code)
  • Graphical representation of the expert system
  • Deductive logical reasoning built-in
  • Strongly typed data structures
  • Ternary (and N-ary) relationships to interconnect data

With these features, Grakn naturally supports requirements 1, 2, and 4 in the above list. Requirements 3 and 5 would usually be implemented in a dedicated dialog management component. A standard implementation of the dialog manager would be based on a finite state machine, where a state corresponds to a system action, and the next state is reached depending on the user’s response to that system action. Here, in contrast, we propose to model the dialog manager in terms of:

  • A dialog state, which is a feature representation of the dialog history,
  • dialog state update rules, which define how the dialog state changes depending on the user input, and
  • logical inference of actions to be performed by the system given a dialog state.

It turns out that all three mechanisms can be implemented directly in Grakn due to its rule inference capability.

At the heart of our chatbot implementation, a relationship called "diagnosis" is defined, which holds all the information related to the dialog state. In particular, it connects a router-subject, holding information about the LED statuses collected from the user so far, with the user/session identifier and information about the previous system actions (preceding-action). It also connects an action that holds the next action to be performed by the bot.

Logical inference of actions given a dialog state is implemented using inference rules like the one depicted below. Here, in the “when” part, we match a pattern where information about the router model and two of the LEDs (D-indicator” and P-indicator being green) has been collected, and the O-indicator status has not been acquired yet. When the rule is matched, the “then” part sets the actionso that the bot asks for the O-indicator.

Finally, additional rules allow us to infer new information about the status of LEDs that have not been asked yet but are implied by the explicitly specified ones. For example, the below rule states that for the router with name “Speedport W 721V,” the observation that O-indicator has status “GR” implies that D-indicator must also have status “GR.”

The described implementation allows the user to start with an arbitrary troubleshooting request, e.g. “My Router does not work and the Power LED is flashing,” or “The Online LED on my Speedport W 721V is off, what can I do?” The chatbot will then infer the statuses of other LEDs, see if they are implied by the available information, and deduct its next action. The action can either be a question about another LED, or it is an attempt to solve the problem by asking the user to perform a sequence of repair actions.

To interact with the bot, we connected it to the Slack bot framework. This required a slim python wrapper to the Grakn database. The interaction currently only uses buttons and selectors. For natural language input, an NLU component would have to be designed. In order to demonstrate the bot’s ability to deal with arbitrary initial requests, buttons triggering the semantic representations of example scenarios were added to the UI.

To conclude, we have presented an implementation of an expert system built on a knowledge graph and a dialog state update-type dialog manager purely based on Grakn. Inference rules were used to model dialog state updates and system action inference. During a dialog, the dialog state lives as a set of facts in the database. This, in theory, allows a deeper integration of dialog management logic and the domain model compared to other approaches. Also, the full power of the Grakn inference engine can be applied to the combined set of facts from the dialog state and domain model. We believe that chatbots with an expert system in the backend are a promising direction.

Expert system Chatbot Dialog (software) LEd Relational database Database Dialog manager

Published at DZone with permission of Klaus Engelbrecht. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Designing a Blog Application Using Document Databases
  • Relational DB Migration to S3 Data Lake Via AWS DMS, Part I
  • NoSQL for Relational Minds
  • Business Logic Database Agent

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: