Natural Queries for Chatbots

October 8, 2019
By Botpress Team

The goal of a chatbot is to make machines understand humans.  Up to now, software has not been good at understanding humans.  Humans rather have had to understand software.  Humans have had to be precise in their interactions with software by either typing in exact commands or clicking exactly the right graphical widgets on the interface to get the task done.

Requiring precision from humans creates three problems, the first is that there is a learning curve involved in using software, the second is that mental effort is involved when using software to ensure a mistake is not made, and thirdly mistakes can be easily made.

Would it be better if software understood humans, even if they were not precise?  Yes, because it would solve the three problems.  The goal of chatbots is to make machines understand imprecise humans, to allow humans to communicate with machines naturally.

Before we discuss the implications of this it is important to note that natural communication may not be the fastest way of communicating with a machine.  Clicking a button that says “Order” is faster than saying “I want to order a cheeseburger”, and much, much faster than typing the order especially with thumbs.  

It is also obvious that graphical interfaces are better for complicated tasks.  It would be much slower to have to build a spreadsheet using voice commands than to build it using the GUI.

There are many cases however where the natural language interface is superior, and the number of use cases where it is superior is growing on a daily basis.


One way to think about the distinction between cases where the voice interface is better versus a more precise GUI or programmatic interface, is distinguishing between the concept of Service and a Tool, as we define them.

A Tool is an interface that takes many low level parameters to perform a given task.  An example might be an application programming interface (API) that a programmer uses to instruct the machine to do a specific task.

A Service is an interface that only takes a few high level parameters to perform a given task.  A Service deals with tasks at a higher level of abstraction, so it may use many Tools itself to get the job done.


Services are the prime candidates for a natural interfaces.  It is easier to communicate an instruction if there are a limited number of parameters that need to be communicated along with the instruction.  For example, a voice interface that a user uses to book an appointment is a good Service use case.

Natural Queries allow a user to query computer systems using natural language instead of some precise syntax as would be demanded by SQL or a programming or scripting language.  Each part of the instruction is a Service.  It is another use case within the domain of chatbots for operations.  A Natural Query is essentially a collection of related chatbot Services.


A good example of this is Wolfram Alpha.



Wolfram Alpha (WA) allows people to state their query in natural language.  WA works out what the user wants to do and then accomplishes the task for them.  This skips the steps of searching in the help documentation for how to do something and then trying a few iterations before getting it right.

While the end goal is total flexibility in how the software is used, some may argue that current chatbots are not flexible enough right now.



Of course, there is already much more flexibility in using a chatbot than a SQL statement, but there is still a requirement to sometimes try to speak in a way that it is likely that the chatbot will understand, even if there is flexibility in doing that.  It is easy to imagine that chatbots will get much better at understanding natural language and as they do, they will become more useful.

The value of the chatbot for Natural Queries comes from reducing the number of commands or precision syntax that the user has to remember.  By reducing the memory and mental burden, the chatbot can not only allow the technician to do their job more efficiently, it can help the beginner become productive much more quickly.

Instead of saying:

Select PopSinger

From PopSingerList

WHERE Age >40;


You could say:

Show me all the pop singers who are older than 40” or any version of that.


At the very least this statement could be converted into a formal SQL statement to query so that the technician can use the formal syntax if they want to.


Natural Queries are interesting use cases for chatbots.  Normally chatbot use cases focus on Services that either offer more convenience or Services that are used infrequently and therefore are hard to remember.  Natural Queries is a useful use case because it reduces the complexity of a command line script by reducing the number of commands the users have to remember.


Disclaimer: We encourage our blog authors to give their personal opinions.  The opinions expressed in this blog are therefore those of the authors. They do not necessarily reflect the opinions or views of Botpress as a company.