Inference executes from left to right on each row, and from top to bottom. Each comparison cell in the table, holds the accepted list value(s) or numeric range for a Variable Object and the comparison is made for that value against what is held for the object. If the object doesn’t have a value and the cell isn’t “Any”, object inference is performed.
If the value is valid, the value in the next column is checked, each time running the inference for that object until either the row contains all values and the outcomes of the assignment variable objects are set, or there is a failure to match against an object and the next row is checked
A Lookup Table is composed of comparison columns and assignment columns. When a Lookup Table is created, rows containing all possible combinations of the comparison columns will be generated. This is like that of a truth table when using the Decision Table Object.
Unlike a true truth table, when additional comparison columns are added the truth table will not be enforced and rows can be added and deleted.
The main difference between a Decision Table and a Lookup Table is that a Decision Table has an outcome value itself, whereas a Lookup Table object doesn’t have a value, the rows define which other variable objects values are set in the assignment columns. If no row matches the runtime values, then those Variable Object values will not be set by this object.
A Lookup Table Object in Viabl.ai consists of a number of Variable Objects (the columns) which can be added, removed, and edited via the Lookup 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:
The types of these objects that can be used are:
When adding an existing or new Variable Object it can be added as a “comparison”, or as an “assignment”. 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.
When a Lookup Table is first created, all combinations will be created from the comparison columns; from that starting point rows can be added and deleted individually. As subsequent variable objects are added, the columns are added but no additional rows are automatically inserted. The developer can set the values for each of the assignment Variable Objects on each row.
Strictly speaking there is no Lookup Table outcome. The result from executing a Lookup Table is potentially the setting of Variable Objects with values in the assignment columns. There can be one or many assignments set.
If the value in the assignment column is “Empty”, the Variable Object’s value is cleared.