Oracle has arrived with their strategic capability in the Chatbot arena. This has just arrived with an upgrade of the Oracle Mobile Cloud. In this blog we will look at the product features, its strengths, how far on the chatbot maturity model the product can take us, and what can we expect. The Oracle Intelligent Bot, as it is named, is a feature of the Oracle PaaS family and embedded in the Oracle Mobile Cloud Service, Enterprise. Oracle announced chatbots last October at Oracle Open World and as a result of questions provided a NodeJS based Chatbot (created by the A-Team) that shows the potential of Chatbots, but this initial solution does not contains intelligence such as Natural Language Processing. The Intelligent Bot that now is generally available is based upon a framework that supports intelligence and conversation capabilities that leverage Oracle’s investment in AI that promises a continuous growth in the future. This blog maps the chatbot capabilities as described in previous blogs towards the Oracle Intelligence Bot and provides an outlook in what is yet to come.
– How can Chatbots meet expectations? Introducing the Bot Maturity Model
– Chatting with the chatbots? – How intelligence makes the conversation
– Integrating the Chatbot 

Architecture
Looking at the architecture, the Oracle Intelligent Bot supports a clear separation between Interacting with the channels (Facebook, etc.), the actual Intelligence, dealing with providing an answers, and the Integration with backend systems.

Figure 1 : Chatbot architecture layering

The Intelligent Bot delivers the capabilities to do chatbot conversation but does not provide its own dedicated chatbot channel to do so. It just allows already existing (and in the future new to arrive) chatbot channels, such as Facebook messenger, Slack,Amazon Echo and your own custom channel via an API to tap into the bot engine and perform a conversation.
The three high level areas previously mentioned can be described as:

(1) Interaction and connectivity with external channels. This part enables first of all the connectivity with the different channels, for instance allowing the bot to communicate with Facebook messenger. Secondly it is also responsible for ensuring delivery to and from the bot engine, and contains (Kafka) queues to ensure fast store and retrieval. This allows many concurrent conversations to be securely pipelined into the intelligence layer.

(2) Intelligence
Here (part of) the Intelligence capabilities as described in Chatting with the chatbots? – How intelligence makes the conversation is implemented, Natural Language Processing with a Training Model to enable the bot to ‘learn’ to understand a sentence, Context to be able to perform a conversation and History to learn from previous conversations. In NLP terminology we talk about Entities, Intent and Utterances.
Figure 2: Chatbot intelligence components

(3) The last part of the Intelligent Bot engine contains the ability to communicate with backend systems, and is supported by the excellent integration capabilities of the Mobile Cloud Service in which the Intelligent Bot is contained.

Open Source support
One important thing to note in the Intelligent Bot is that the product is a not created from scratch but merely folded together with Open Source products, such as support in NLP by means of NLP Open Source products and Kafka for handling large amounts of requests from the chatbot channels.

Features
Developing a Bot in the Intelligent Bot contains the following main parts (see below picture on the left hand side), Intent and Entity determination, setting up a conversation, adding (custom) components and setting such as channel setup.

Figure 3: Intelligent Bot Entity overview

Intent & Entity determination
For the chatbot to be able to answer a question or remark, it needs to understand the meaning of a sentence. The bot needs to be made aware of different conversation topics, also named Intent. In the above banking example (also part of the training for the Intelligent Bot) three Intents are defined, Balances, Send Money, Track Spending. As can be seen above for the Balances Intent there are many ways to ask for the balance of your bank account. For the (NLP) engine to understand the meaning of a sentence the notion of Entities can help to understand the specifics of a sentence. The Intelligent Product provides out-of-the-box Entities such as Address, Currency and Duration, but also custom entities can be created such as an Account Type, enabling the recognition of a word in a sentence.
In the Intelligent Bot the Entity AccountType is connected to the Balance Intent as shown in the above screenshot.

Figure 4: Intelligent Bot Entities

Determining the conversation flow
A conversation usually consists of more than one line. The Intelligent Bot also provides a means to predefine a conversation by means of a visual conversation flow modeller part of the Intelligent Bot. The current dialogue needs to be defined in YAML (Flows part in theIntelligent Bot Entity overviewpicture).
The Oracle A-team visual flow modeller, as is presented in the below picture 5, is shipped as a sample.
The intent determines which flow path should be followed, the Balance, Track Spending or Send Money. In the flow path the additional questions up until the end result are modelled.
In a future version of the intelligent bots a native flow modeller will be included that is inspired by the A-Team version.

Figure 5: Chatbot Dialogue modelling

Training and testing
After determining the Intents and the connected Entities the ‘learning’ part of the bot comes into play. In the lower part of the Intelligent Bot Entity overview picture the option exists to enter Example sentences, also known as utterances, these provide the bot with information based upon which it can execute the statistics to determine which Intent is meant. In my humble opinion the term Examples is a confusing term and should be renamed to something like Training Data. This training data can be entered via the Web Page or as a file. After entering all the training data for all Intents the Training button (right upper part in the Intelligent Bot Entity overview picture) can be clicked to train the bot. Two Training methods are available, which we will cover in later blogs. By clicking the chevron on the right upper corner a Test panel is opened as shown below. Entering just any sentence provides an answer or conversation.

Figure 6: Testing the bot

A nice feature is the ability to have a look at the statistics underpinning the decision what Intent should be chosen and, as a result, what answer to provide. In the below example the statistics are clear, but in ‘real-live’ cases this can be used to improve the behavior of the bot engine.

Figure 7: Confidence level of determining an Intent

Integration
As mentioned in one of the earlier blogs making conversations actionable will typically need back end integration. As the bot capability is built on MCS you get Node.js with its adapters and scaffolding provided.. This provides an excellent platform to build high volume Integrations.
Node.js as a platform lends itself well to performing the task of stitching various APIs together. Whilst it is entirely possible to build full Integrations we wouldn’t necessarily recommend it. To provide more sophisticated Integrations you get adaptors for ICS, or you could use REST tooling to call your cloud native solutions.

Maturity model
Looking at the above features now already available, how far in the Chatbot Maturity model is the Intelligent Bot and what can we expect in the (near) future. In a previous Blog How can Chatbots meet expectations? Introducing the Bot Maturity Model the Chatbot Maturity model is introduced. This model looks at three areas, Interaction, Intelligence and Integration. The levels show a growth model for Chatbots, starting with a bare minimum and growing towards a self-learning bot engine.  In the below picture insight is given in the capabilities of the first version of the Intelligent bot. Areas denoted with a C support the functionality by means of Coding inside Custom Components.

Figure 8: Chatbot Maturity Model mapped towards the Oracle Intelligent Bot
As can be seen the Intelligent Bot is beyond Level 1 and can be in some respects already be profiled as a Level 2. The State machine, Training and Line based Intelligence are standard part of the Intelligent Bot, and will of course be improved and enhanced. Specifically in the area of Historical Analysis improvements in the near future needs to be made, as is required to be able to Learn & Improve a chatbot conversation with customers. In the area of Integration the Intelligent Bot is strong as a result of the close relations with the Oracle Mobile Cloud. And lastly in the area of interaction improvements need to be made, support for multiple channels and languages to name a few.

Roadmap
All Oracle presentations start with the Safe Harbor statement, so it is clear that Oracle does not give officially insight into new developments and timelines. But we anticipate and hope for improvements in the areas of multi-lingual support, support for more channels, improvement of the dialogue editor and analysis and initiating activities in the of self learning.

Conclusion
Oracle entered the Chatbot arena with a product that already reached the first level in Chatbot maturity, and also entered in some capabilities a level 2 in the maturity model. The product enables easy setup for NLP functionality by means of entering intents,  utterances and related entities, and provides a nicely embedded testing tool. Improvement areas for the near future are the dialogue structure, historical analysis helping to improve the conversations with the customers.