The following dialog was taken from a user having a conversation with a Chatbot, after the user brought up the subject “Dancing”:
B1: Dance is a beautiful expression of your feelings. Do you agree?
U1: How do you know? Do you have feelings?
B2: Yes I do. I have feelings. Prove me wrong!
U2: Nevermind. We were talking about dancing.
B3: Last night I dreamt I was dancing with Alexa. I felt like a free bird soaring above the clouds. What is your favorite dance?
U3: I cannot dance.
B4: Not a dancer, huh? I like to dance when no one is watching, which is easy since I’m kind of invisible. What about you?
U4: I told you I don’t dance!
B5: Sad. You have a body, use it! I wish I had a body…
B1: Dance is a beautiful expression of your feelings. Do you agree?
U1: Definitely! I love to dance!
B2: Last night I dreamt I was dancing with Alexa. I felt like a free bird soaring above the clouds. What is your favorite dance?
U2: How can you dance?
B3: I said I was dreaming, didn’t I? So what is your favorite dance?
U3: Salsa
B4: Good choice. Gives you a good workout. I like to dance when no one is watching, which is easy since I’m kind of invisible. What about you?
U4: I like to dance when everyone is watching
B5: I see. A real performer…
Building the tree
As stated, there are many (about 100) possible directions this dialog could take (all starting with the Bot saying “Dance is a beautiful expression of your feelings. Do you agree?”). Let us try to estimate the number of possible paths for such a 4-turn conversation.
So, let us assume that for each user input, there are 4 anticipated possibilities, plus a fallback option (for unrecognized input). Subsequently, that means that each user input has 5 possible responses, making a tree-like structure like this:
It doesn’t require a math degree to cover a 4-turn discussion, it can take up to 125 different paths. Typically there would be less, either because some of the paths may be shorter (e.g. user’s lack of interest or cooperation), or because in some turns there may be less than 5 possible branches. But it clearly takes a lot of work to script all these paths manually, and even more work to properly test the Bot, with a great number of user sessions to iron out the bugs.
More great reading
CoCoHub’s Chatbots and conversational AI glossary
Bots with an agenda: How to humanize your chatbot
Deep context switching in conversational AI: How to do it?
Hence, the above example illustrates how much work must be invested to enable a very short discourse about a narrow subject. So, once that was accomplished and packed as a Conversational Component, it can be used by any other bot on any possible platform, to remotely activate it and conduct this 4-turn dialog with the user. Needless to say, there is more than one way to small talk about dancing, from the Bot’s opening line and through the various responses.
All of the above can be generalized for longer dialogs: 5,6,7 turns and more. So, the longer the convo, the more complicated the task. To sum it up, that is why collaboration is so crucial in the Conversational AI space: Because the only way Chatbots will become conversational, is by having access to a large variety of such Conversational Components, each an expert in (discussing) a narrow domain.
Jason F. Gilbert, a senior conversational designer and community member, has created a spreadsheet-based template, which lets people without any development tool, to define the nodes in the dialog tree in an excel sheet, which is then automatically componentized and ready to use. For more information, find Jason…