Home | About | Goals | Concepts | Tools | Resources

The Dialog Engine
Overview:

For the most part, synthetic character systems are either programmed directly in code, or they are entirely scripted in advance, and systems that claim to be dynamic often are no more than keyword matching programs. The Dialog Engine project is developing a system that allows the authoring of synthetic characters without the need for the author to learn an obscure coding system and without all of the resultant interaction ending up pre-scripted. We are investigating computational linguistics, natural language understanding and textual analysis methods to produce a system that can be authored in plain English, and then used to provide dynamic interaction in conversations with guests.

Proposed Feature Set:

  • Authoring Tool:
    • Text entry in plain English
      • Dialog editing
      • Questionnaire-style character creation
      • Conversation topic editing
  • Topic Matching:
    • Semantic matching
      • Finding words with similar meanings
      • Determining topic of conversation
      • Choosing appropriate response based on meaning of input
    • Conversation Memory
      • Memory of previous responses contributes to choice of next response
      • Predictive abilities will use memory to try and guess where the conversation is headed
  • Interaction Engine:
    • Characters interact through text (with the possibility of future text-to-speech capability or kinetic text)
    • System will ask for clarification when the guest uses vocabulary outside its domain of knowledge. The guest and characters will be able to develop a personal vocabulary that is remembered across conversations
    • A world-memory will exist that stores the outcomes of previous conversations. Other characters will then have the ability to receive rumors through a virtual "grape-vine"

Technical Description:

The system will be based on two core technologies: an open-source natural language parsing system (we are currently using the Link-Grammar Parser), and the WordNet lexical database. We wish to avoid writing our own natural language parsing system because of time constraints and the existence of a huge body of work already in existence on this subject.

Implementation Thoughts:

We have been doing a large amount of research into currently existing character systems and "bots", along with research into the existing NLP systems, text-analysis and learning systems to get a sense of what tools we can pull from previous research, and what parts of the dialogue engine we will have to build ourselves.

NLP is a known hard problem, but systems exist which, for the level of interaction we expect between guests and characters, are good enough to use for our purposes. The features we have been looking for in an NLP system include: grouping of related terms in sentences, the ability to determine if a given sentence is well-formed, determination of the subject and action words of sentences, and the ability to provide multiple possible mappings of ambiguous inputs.

Our approach is going to concentrate on the ability to match guest inputs to topics of conversation stored within the character's database of responses. Using WordNet to find semantic associations between the guest's input and the topics we will attempt to find the best possible response from the set of available responses. On top of this, we will add memory and predictive algorithms to help guide and control the conversation.

Home | About | Goals | Concepts | Tools | Resources