A Pattern Library for Conversation
by Joseph Tyler, Maaike Coppens and Ronald Ashri
Patterns help us make sense of the world. They identify and describe where there is regularity in a design. They make the design process and the outcomes more predictable. Patterns help us scale our thinking about a complex system through categorisation and encapsulation of complex behaviour under a simplified label. Patterns provide shared understanding between a team from design to development and deployment.
This library was created to make your life, as a conversation designer, easier and your conversational applications better. It collects insights about the nature of conversation, distills them into their most useful essence, and describes them through conversational patterns to make conversation design simpler and more robust.

Why a Pattern Library for Conversation Design?

Conversation is systematic

Conversations between humans show immense variation, but within all that variation there are consistent patterns.
People have studied these patterns: scholars of sociology, linguistics, anthropology and many other disciplines have studied the patterns of everyday talk under the banner of conversation analysis, discourse analysis, interactional sociolinguistics, and other terms.
These patterns have been recorded, analysed and documented, showing the systematicity of everyday conversational interaction. Being able to carry on a conversation involves the competent use of these conversational patterns.
The process of building a conversational application to carry on a conversation can be facilitated by understanding and using those patterns.
Most people don’t think about the details of everyday conversation while talking. We don’t deliberate on every word choice, the details of timing, how to transition between topics, or how to wrap up a conversation. We communicate everyday and generally the mechanics of conversation feel second-nature. But bots don’t know any of these things without being explicitly trained, and conversation designers need to know what to tell the bot to do. We can make the conversation design process easier AND more robust by collecting the many conversational patterns in everyday talk into a library.

Patterns capture conversation’s systematicity

For our purposes, a conversational pattern is a sequence of conversational actions that can generalise beyond a single instance. As an example, a single conversation may start with each person saying “Hello”. That is, one conversational pattern is the conversation opening, which features each participant giving a greeting. Using the label “greeting” is a way of abstracting away from specific word choice to the social action (a greeting). Having a greeting-greeting conversation opening pattern means that a single pattern can be realised in thousands of ways, for example:
A: Hello
B: Hello
Less formally:
A: Howdy
B: Yo
More formally:
A: Greetings
B: Good day
In other languages:
A: Bonjour
B: Bonjour
The pattern exists independent of specific words. For conversation design, this means you can build a conversation structure one time but realise that structure in infinitely different ways. Patterns offer the structural strength for generalisability.

Patterns can help conversation designers

Now that we have established the patterned nature of human conversation, we can leverage this knowledge to make it easier to do conversation design. You are not starting from scratch! With a library of standard patterns, pre-built components, fleshed out to meet the common ways those patterns are used in everyday conversation, your design process can be more efficient, since you do not have to rebuild these patterns each time. Your designs also end up more robust, since you are less likely to leave out key components. The library of patterns is here to make it fast and easy to include a breadth of conversational competence. You’re not starting from zero. You’re starting with the basics already there.

OpenDialog wins with patterns

This library is useful for any conversation design working on any platform. It is especially useful if you are on the OpenDialog platform! OpenDialog is a pattern-centric framework, able to leverage patterns for robust conversation design. With its context-forward design philosophy, the patterns can be leveraged smoothly for nearly any design.

Resources and Links