# Dialogue system

A dialogue system, or conversational agent (CA), is a computer system intended to converse with a human. Dialogue systems employed one or more of text, speech, graphics, haptics, gestures, and other modes for communication on both the input and output channel.
The elements of a dialogue system are not defined because this idea is under research, however, they are different from chatbot. The typical GUI wizard engages in a sort of dialogue, but it includes very few of the common dialogue system components, and the dialogue state is trivial.

## Background

After dialogue systems based only on written text processing starting from the early Sixties, the first speaking dialogue system was issued by the DARPA Project in the US in 1977. After the end of this 5-year project, some European projects issued the first dialogue system able to speak many languages (also French, German and Italian). Those first systems were used in the telecom industry to provide phone various services in specific domains, e.g. automated agenda and train tables service.

## Components

What sets of components are included in a dialogue system, and how those components divide up responsibilities differs from system to system. Principal to any dialogue system is the dialogue manager, which is a component that manages the state of the dialogue, and dialogue strategy. A typical activity cycle in a dialogue system contains the following phases:
* The user speaks, and the input is converted to plain text by the system's input recogniser/decoder, which may include:
** automatic speech recogniser (ASR)
** gesture recogniser
** handwriting recogniser
* The text is analysed by a natural language understanding (NLU) unit, which may include:
** Proper Name identification
** part-of-speech tagging
** Syntactic/semantic parser
* The semantic information is analysed by the dialogue manager, which keeps the history and state of the dialogue and manages the general flow of the conversation.
* Usually, the dialogue manager contacts one or more task managers, that have knowledge of the specific task domain.
* The dialogue manager produces output using an output generator, which may include:
** natural language generator
** gesture generator
** layout manager
* Finally, the output is rendered using an output renderer, which may include:
** text-to-speech engine (TTS)
** talking head
** robot or avatar
Dialogue systems that are based on a text-only interface (e.g. text-based chat) contain only stages 2–5.

## Types of systems

Dialogue systems fall into the following categories, which are listed here along a few dimensions. Many of the categories overlap and the distinctions may not be well established.
* by modality
** text-based
** spoken dialogue system
** graphical user interface
** multi-modal
* by device
** telephone-based systems
** PDA systems
** in-car systems
** robot systems
** desktop/laptop systems
*** native
*** in-browser systems
*** in-virtual machine
** in-virtual environment
** robots
* by style
** command-based
** menu-driven
** natural language
** speech graffiti
* by initiative
** system initiative
** user initiative
** mixed initiative

## Natural dialogue systems

"A Natural Dialogue System is a form of dialogue system that tries to improve usability and user satisfaction by imitating human behaviour" (Berg, 2014). It addresses the features of a human-to-human dialogue (e.g. sub dialogues and topic changes) and aims to integrate them into dialogue systems for human-machine interaction. Often, (spoken) dialogue systems require the user to adapt to the system because the system is only able to understand a very limited vocabulary, is not able to react to topic changes, and does not allow the user to influence the dialogue flow. Mixed-initiative is a way to enable the user to have an active part in the dialogue instead of only answering questions. However, the mere existence of mixed-initiative is not sufficient to be classified as a natural dialogue system. Other important aspects include:
* Adaptivity of the system
* Support of implicit confirmation
* Usage of verification questions
* Possibilities to correct information that has already been given
* Over-informativeness (give more information than has been asked for)
* Support negations
* Understand references by analysing discourse and anaphora
* Natural language generation to prevent monotonous and recurring prompts
* Adaptive and situation-aware formulation
* Social behaviour (greetings, the same level of formality as the user, politeness)
* Quality of speech recognition and synthesis
Although most of these aspects are issues of many different research projects, there is a lack of tools that support the development of dialogue systems addressing these topics. Apart from VoiceXML that focuses on interactive voice response systems and is the basis for many spoken dialogue systems in industry (customer support applications) and AIML that is famous for the A.L.I.C.E. chatbot, none of these integrate linguistic features like dialogue acts or language generation. Therefore, NADIA (a research prototype) gives an idea of how to fill that gap and combines some of the aforementioned aspects like natural language generation, adaptive formulation, and sub dialogues.

## Performance

Some authors measure the dialogue system's performance in terms of the percentage of sentences completely right, by comparing the model of sentences (this measure is called Concept Sentence Accuracy or Sentence Understanding).

## Applications

Dialogue systems can support a broad range of applications in business enterprises, education, government, healthcare, and entertainment. For example:
* Responding to customers' questions about products and services via a company's website or intranet portal
* Customer service agent knowledge base: Allows agents to type in a customer's question and guide them with a response
* Guided selling: Facilitating transactions by providing answers and guidance in the sales process, particularly for complex products being sold to novice customers
* Help desk: Responding to internal employee questions, e.g., responding to HR questions
* Website navigation: Guiding customers to relevant portions of complex websites—a Website concierge
* Technical support: Responding to technical problems, such as diagnosing a problem with a product or device
* Personalized service: Conversational agents can leverage internal and external databases to personalise interactions, such as answering questions about account balances, providing portfolio information, delivering frequent flier or membership information, for example
* Training or education: They can provide problem-solving advice while the user learns
* Simple dialogue systems are widely used to decrease the human workload in call centers. In this and other industrial telephony applications, the functionality provided by dialogue systems is known as interactive voice response or IVR.
* Support scientist in data manipulation and analysis tasks, for example in genomics.
In some cases, conversational agents can interact with users using artificial characters. These agents are then referred to as embodied agents.

## Toolkits and architectures

A survey of current frameworks, languages and technologies for defining dialogue systems.
| Name & links | System type | Description | Affiliation[s] | Environment[s] | Comments |
| AIML | Chatterbot language | XML dialect for creating natural language software agents | Richard Wallace, Pandorabots, Inc. | | |
| ChatScript | Chatterbot language | Language/Engine for creating natural language software agents | Bruce Wilcox | | |
| CSLU Toolkit | | A state-based speech interface prototyping environment | OGI School of Science and Engineering M. McTear Ron Cole | | publications are from 1999. |
| NLUI Server | Domain-independent toolkit | Complete multilingual framework for building natural language user interface systems | LinguaSys | | out-of-box support of mixed-initiative dialogues |
| Olympus | | Complete framework for implementing spoken dialogue systems | Carnegie Mellon University | | |
| Nextnova | Multimodal Platform | Platform for developing multimodal software applications. Based on State Chart XML (SCXML) | Ponvia Technology, Inc. | | |
| VXML Voice XML | Spoken dialogue | Multimodal dialogue markup language | Developed initially by AT&T, then administered by an industry consortium and finally a W3C specification | Example | primarily for telephony. |
| SALT | markup language | Multimodal dialogue markup language | Microsoft | | "has not reached the level of maturity of VoiceXML in the standards process". |
| Quack.com - QXML | Development Environment | | Company bought by AOL | | |
| OpenDial | Domain-independent toolkit | Hybrid symbolic/statistical framework for spoken dialogue systems, implemented in Java | University of Oslo | | |
| NADIA | dialogue engine and dialogue modelling | Creating natural dialogues/dialogue systems. Supports dialogue acts, mixed initiative, NLG. Implemented in Java. | Markus M. Berg | | create XML-based dialogue files, no need to specify grammars, publications are from 2014 |