The Abodit Natural Language Engine works with any text-based communication transport including SMS, Chat, Email, Slack, or web-based chat. You can also connect it to a simple INPUT field on an HTML page.
Synchronous or Asynchronous Communication Style
Depending on the transport you may wish to vary how responses are delivered. Email for example would require all responses to a given command to be collected as sent as a single message. Chat however might benefit from a more asynchronous approach whereby each response is sent as it is received. An asynchronous chat system can also initiate conversations instead of just responding to user input.
Abodit NLP has been designed to be completely independent from the transport chosen: an interface
IListener is provided that you can use to create a connector and inject it into your rules
but you can also design your own from scratch.
A synchronous connector, like you might use for email, collects the whole response and then emails it back.
An SMS collector might also function in a synchronous manner collecting muliple lines and then packaging
them up into 160 character chunks to minimize sending costs. In both of these cases the
you inject exists for just the lifetime of the execution of the sentence.
An asynchronous connector on the other hand, like a chat collector, can respond over a much longer period
of time. The incoming requests typically fire off a
Task which collects and reports back to the user over
potentially several minutes or hours. For a very long running task you may wish to remember the task in a
a history object so that the user can cancel it later using a 'stop' command.
An asynchronous connector can also initiate conversations with a user without requiring them to start each conversation with an input.
The Abodit Natural Language Engine works great with Twilio SMS. The provided SMS collector can collect multiple line responses, batch them up and send them 160 characters at a time. Now your Twilio applications can exhibit some real intelligence, understanding SMS messages and responding to them.