[Next] [Previous] [Top] [Contents]

Efficient Forward Chaining for Declarative Rules in a Multi-Agent Modelling Language

5 Assumption handling


The primitive notKnown was introduced in
Section 3.3. A clause with this keyword is true if its subclause is not known to be true. Deductions made on the basis that this clause is true may become invalid after further rules have fired. SDML uses assumptions to implement this primitive.

Another primitive that is implemented using assumptions is total, which finds the total value of a variable for all bindings such that its subclause is known to be true. If further clauses are asserted to a database, the subclause may succeed with more bindings yielding a different total. Assumptions are also used to implement primitives which find the maximum, minimum or average value of a variable, or generate a sorted list of all bindings of a variable.

The assumptions mechanism is designed to ensure that all valid deductions are made and any invalid deductions that have been made are retracted. The efficiency of the basic mechanism is improved by reducing the likelihood that invalid deductions are made in the first place.

5.1 - Creating assumptions
5.2 - Assumption tags
5.3 - Resolving assumptions
5.4 - Optimisations
5.5 - Random and arbitrary decisions

Efficient Forward Chaining for Declarative Rules in a Multi-Agent Modelling Language - 16 FEB 95
[Next] [Previous] [Top] [Contents]

Generated with CERN WebMaker