ChatScript combines two powerful functionalities: Natural Language Understanding, and Dialog Management. They are commonly regarded as separate components in the dialogue literature: the former translates the user input to some semantic representation, and the latter handles the topic/status information and decides what to say next.
It could be very useful to have direct access to the NLU component alone, as this could give the option to use this component inside other dialog systems.
This could be done by creating a separate TCP/IP server for NLU, activated like this:
ChatScriptNLU port=1024
The server will understand two types of commands:
[ul]
[li]
SetListOfInputTemplates <text>
: each line in “text” is a possible input-template (such as “~yes I do”). This will tell the server what the possible inputs are.[/li]
[li]
GetInputTemplate <input>
: “input” is a sentence uttered by the user. The server will return the index of the first line in “text” that matches “input”.[/li]
[/ul]
Theoretically, this could be achieved with the current system, by telling the bot to “reply” with the line index. However, this requires handling subtleties such as input removing, topic handling etc. It could be much more convenient to have a stand-alone component that would do just the NLU, with no dialog management.
What do you think?