Our experimental initiative to prototype a bot-ready information solution using Google’s Dialogflow
This post is part of a series. For more information and links to other posts in the series, see the “Building bot-ready knowledge bases” home page.
Overview
Some years ago when we were writing DITA/XML technical documentation for the DITA Open Toolkit, we invented for prototyping purposes a set of short, non-technical, structured articles that we called “Grocery Shopping.” The seven articles in our KB prototype are written in the traditional DITA style and linked through a map. There are two each of concept, task, and reference topics, and one connecting them conceptually. Our information domain is limited to produce and canned goods.
The articles can be processed as a set or individually into various output formats, including HTML and PDF. Our tool of choice for creating, editing, and processing is oXygen, but there are a number of other products on the market that we could have used.
Grocery shopping output files
The following image shows the Grocery Shopping table of contents, as processed by oXygen in PDF format.

Below is the output text for one of the KB articles, also processed by oXygen to PDF.

Grocery shopping source files
DITA/XML is a tag-based language similar to JSON (JavaScript Object Notation). In most DITA authoring tools you can view files in either tag or “author” format.
The following image shows the “tag” input file for the same “Produce: Overview” topic shown above.

Value of DITA metadata
One of the key benefits of DITA/XML is the ability to attach metadata to the files.
For example, you can create a short description explaining the audience and purpose of a file. Information in short descriptions (also known as abstracts) can be valuable to users, as well as an effective tool for bot training.

Keywords and index terms are also part of the metadata of typical DITA projects. Index terms are used by readers to understand and locate information. The same terms can also be used in bot creation and configuration.
A grocery shopping bot will need to recognize entity names like “oranges” and “pears,” and it will also need to know that both oranges and pears are members of the “fruit” category.

Building and training a KB chatbot can involve both providing raw text that allows the bot to discover information on its own (for example, the Produce: Overview PDF output file), and handing processed information to the bot directly (for example, giving it a set of entity names like oranges and pears, along with attributes like variety, color, and price).
Why “grocery shopping”?
If your knowledge base consists of topics like “How to set up your new Dell laptop,” “Understanding your 401K account,” or “Predicting the weather,” it might be difficult for you to relate to our simplistic grocery shopping example.
We can only say that during our years of experience doing content strategy and implementation we’ve found that the best way to lay the foundation for complex, enterprise-level documentation sets for any domain is often to start with a simple, everyday example. This is how “grocery shopping” came to be, and we believe that it can still serve the same purpose in the AI world.
What’s next?
When we embarked on this initiative, we looked for a likely chatbot-building environment that we could pair with our grocery shopping sample. Our first test case was created on Dialogflow, which is a Google company and product.
In our “Building bot-ready knowledge bases #3” blog, we’ll talk about the objectives we established for our grocery shopping chatbot.