HELP!

Decision Table Inference

Behind the scenes the table rows are sorted from specific to general (so that exceptions defined with “Any” are considered later. Inference executes from left to right on each row, and from top to bottom of this “sorted” table. Each cell in the table, holds the accepted list value(s) or numeric range for a Variable Object and the comparison is made for that cell value against what the runtime value for that object is. If the object doesn’t have a value and the cell isn’t “Any”, object inference is performed. If the cell matches the runtime value then the value in the next column is checked, each time running the inference for that object until either the row completely matches the runtime values and the Decision Table outcome value is set, or there is a failure to match against an object and the next row is checked.

Decision Table Editor

There are two ways a Decision Table can be used, Truth Table and By Examples.

Where a truth table is enforced there is no editing of the table and the truth table is self-maintaining i.e. if objects are added/ removed the truth table will reflect this. A truth table is a tabular reflection of all possible combinations of the Variable Objects and their values.

Where a truth table is not enforced the rows are added and deleted by the developer. Individual rows can be added to build a custom table. Often an exception row is used where the value for each column is set to “Any” to avoid the case where no row is satisfied at runtime and results in an outcome value for the Decision Table object of “Empty”. This mode may be useful if only the combination of values that are possible are captured in the table, but to ensure that all possible combinations are captured, a truth table is the recommend mode.

Decision Table Columns

A Decision Table Object in Viabl.ai consists of a number of Variable Objects (the columns) which can be added, removed, and edited via the Decision Table Editor. Depending on type of the Variable Object of the column, will determine which editor is opened and the object edited directly within.

The objects that can be used are as follows:

  • Questions
  • Calculated Attributes
  • Decision Trees
  • Decision Tables
  • Decision Rules
  • Dynamic Sequences

The types of these objects that can be used are:

  • List
  • Numeric
  • Boolean

Columns can be moved right or left within the table to affect the order that the Variable Objects are evaluated. It is also possible to sort the table based on the values of that column by clicking the column header.

Decision Table Rows

In a truth table the rows are automatically maintained, and no rows can be added or deleted. If not a truth table, then rows can be added and deleted individually; it is then up to the developer to populate each of the rows and define the outcome row.

Decision Table Outcomes

The Decision Table outcomes are defined when creating the Decision Table object. The outcome is always the furthest right column and the developer will use this to dictate the outcome for a specific row.

When creating the Decision Table, the outcome type can be defined as list, or numeric.

Induced Tree

By clicking the induce tree icon. A Decision Tree is induced from the Decision Table (or truth table). An induced tree cannot be created if Variable Objects of type numeric or multi-select list are used in the table.

If an induced tree is generated then the inference used is Decision Tree inference.

On This Page