EM @ SAP – App Development – Building a Conversational UI Platform
This post is also a follow on to the post about SAP Relay, our internal realtime chat application, if you are interested reading that post might provide some context.
No UI to develop (Truly responsive?)
Nothing to install for end users (Pending they have your chat app)
Managed runtime platform
Available from multiple platforms/clients via an existing client (in our case, Relay)
Fast development and delivery iterations due to decoupled components
Reduced development costs due to above points
A complete corpus of training/learning text for enterprise is scenarios is quite difficult to find.
Conversational UI is still relatively young, making it hard to decisively pick components.
Catering for multiple languages is not easy in a multi-national company.
Conversational UI Component: Chat Interface
Our custom UI controls which we implemented to support JSON based response message types allowed developers to send messages which were formatted client side and drastically improved the UI experience of our bot responses.
Conversational UI Component: NLP
We tested multiple NLP services and initially implemented API.ai, but after doing some POC work, we did not want confidential information leaving our our control and company network. This lead us to RASA, a on-premise and self hosted AI and NLP solution which we found to be perfect for our scenario. Keep in mind, this was prior to SAP acquiring Recast.AI. If you do use RASA, check out a small Admin tool I wrote for it in my spare time called RASA UI on Github.
Some of the core components of NLP are listed below. [Source: https://www.hackerearth.com/blog/developers/natural-language-processing-components-and-implementations/] and might be a helpful primer if you are considering implementing Bots in your enterprise.
Entity extraction involves segmenting a sentence to identify and extract entities, such as a person (real or fictional), organization, geographies, events, etc. NLP APIs use online data from sources like Wikipedia or other repositories to match these entities.
Syntax refers to the proper ordering of words. Do the words you’ve put together form a “correct” sentence? It deals with the structural roles of words in the sentence. And then you use a parsing algorithm to produce a “tree,” which gives you the syntactic relationships between the constituents according to context-free grammar.
After a sentence is parsed to extract entities and understand the syntax, semantic analysis concludes the meaning of the sentence in a context-free form as an independent sentence.
Once the syntactic and semantic analysis has been completed, we try to understand the sentiment behind every sentence. Sentiment will include emotions, opinions, and attitudes. We are talking subjective impressions and not facts.
If you go to your editor and ask her to suggest a better sentence structure for a line, her immediate question to you will be, “What’s the context?” Most of the time, due to flexibility of the natural language, complexities arise in interpreting the meaning of an isolated statement. Pragmatic analysis uses the context of utterance—when, why, by who, where, to whom something was said.
Structured responses are easier to comprehend
Simple messages which are Short and Sweet
Variety is the spice of life
Conversation Trees are helpful when building a chat user
We recognized that our mobile app portfolio already had a lot of the information being requested through the bots, and using the app was sometimes easier or faster. While natural language processing has come along way, the discovery, education and constant flux of changes being innovated on, it can be difficult to educate the user base on yet another information access tool. Our Bot platform did not make it much further than some basic POC’s and while it was fun to demo, we had other tools in SAP pop up which became more popular – one was Tobi. After SAP’s acquisition of Recast.AI we quickly decided to sunset our platform in favor of using it.