Reference Knowledge Base: Object Model

All reference knowledge is stored in two places: JSON files in cloud storage (e.g. Azure Storage containers and blobs), and in the reference database.  The JSON representations of this reference information are human-creatable and human-readable, and are used in order to generate SQL scripts that are then used to populate the reference database.

As a business customer (e.g. restaurant chain, Point-of-Sale system vendor), your deployment process will start with creating your own chatbot instance, using the predefined chatbot type named “core”, and the predefined mandate type named “commerce_ordering”.

High Level Object Types

 

These are a set of high level object types that are used by the framework.

Chatbot Type

The chatbot type is the fundamental building block that supports basic chatbot functionality; only one chatbot type is usually needed; in typical usage the customer can use the pre-defined chatbot type called “core”, and does not need to create other chatbot types.

Mandate Type

A mandate type is a specialized mandate, or task, that the chatbot can perform. The mandate type is an organizing construct for the intent types, response types, and chatbot functional behavior for the mandate. Example mandate types include “commerce_ordering”, “nutrition_advisor”, “financial_planning_advisor”. The present system implements a single mandate type: “commerce_ordering”.

Chatbot Instance

A chatbot instance is an organizing construct for a collection of service providers. A typical business customer will have one chatbot instance, additional instances may be created in order to perform comparisons, e.g. an instance that uses a different NLU algorithm.

Intent Type

An intent type, or “intent class” is used by the chatbot to identify a user input utterance during a turn (sentence, phrase, or single word) in order to properly handle the user input.

Response Type

A response type is a language-specific language generation template that is used by the chatbot during its part of a turn to construct specific prompts or responses that are spoken (or displayed) to the user.

Service Provider Object Types

 

These are object types that are closely-related to the Service Provider object type.

Service Provider Group

A service provider group is an organizing concept that allows for the grouping of a subset of service providers within a chatbot instance. For instance, a service provider group object may be created to represent a restaurant chain. (Use of this object type is optional).

Service Provider

The Service Provider object is the organizing construct for a business that uses the chatbot services to provide a service to its customers. This object may represent a single independent restaurant, or it may represent one unit (single location) of a restaurant chain. The Service Provider object ties together all profile information for the service provider, along with that service provider’s menu and all associated menu information. This object also associates the service provider with one or more physical sub-locations (e.g., a restaurant may choose to represent a wing of that restaurant as a separate location). This object also associates the service provider with one or more services, such as “commerce_ordering”, and with one or multiple customizable chatbot personas.

Service

A chatbot service that the service provider offers. The service corresponds to a mandate type. For example, Sunset Tacos and Burgers, Seattle, offers the “commerce_ordering” service.

Persona

A persona object allows the service provider to present the chatbot services to the user in a somewhat human-like way, i.e. with some “personality”. A persona can have a name, and it can be assigned characteristics that allow users to interact with it as though it were a person.

Location-Environment

A location-environment object represents a physical location and its environment that is used by a service provider for a service such as dining or food takeout. This object has multiple attributes that can be used in question answering for customers.

Menu Manifest Objects

There are multiple menu manifest objects: each represents a type of menu manifest such as the prices manifest. The main menu manifest types include: the main items manifest (for coordination of other manifests, it also contains menu item availability information), the synonyms manifest (used by the chatbot for NLU and for globalization), the suggested items manifest, the prices manifest, containing prices and discounts, the POS system codes manifest (for associating menu items and modifiers with POS vendor-specific codes), and (for future usage) the qualities manifest.

Object Model for Operational Objects

These objects are created and used operationally by the chatbot services.

Dialogue Session Object Types

 

The object types used during chatbot sessions with users.

Dialogue Session

A dialogue session object gets created by the chatbot upon request by a user who desires to have a conversation with the chatbot services. A dialogue session consists of turns. A dialogue session can be active, while a conversation is taking place, or closed, upon completion of the conversation. A dialogue session history record is created for each dialogue session turn, and cumulative history is retained for all dialogue sessions. Dialogue session history is used during an active dialogue session as context that helps the chatbot’s dialogue manager determine the actions to take on that turn. A chatbot services client initiates a dialogue session on behalf of a user by calling the CreateDialogueSession API method. Dialogue sessions are closed autonomously by the chatbot services when appropriate, e.g. after the user’s mandate has been fulfilled. (For instance, a dialogue session is closed once the customer at a drive-through has finished ordering food and has been instructed how to pay).

Turn

A turn object represents two processes: the user input or input action to the chatbot, and the chatbot’s set of actions that are taken in response to the user input.  The turn object is created by a chatbot services client on behalf of a user, using the HandleTurn API method. 

API Documentation

The API conforms to the OpenAPI Specification. Full documentation is provided upon request: Contact Us