next up previous
Next: Specialisation Up: Lazy Previous: Search


When the Search algorithm finally returns the result of the evaluation of a fact f the system updates the state of the module with respect to that fact by means of the deduction of facts, the specialisation of rules, and so on.

Given a state of a module, and a set of facts and their values, Update is a procedure that returns a new state and a set of facts and values, obtained, for instance, as the result of solving a needs_true relation or firing a rule. This function is applied recursively on its results until there is no state change.


The tasks undertaken by this procedure are:

  1. Solve need relations: As it has been seen in Section 3.1.4 a fact with this kind of relations with another fact can be given a value depending on the value of the related fact.
  2. Solve functions: When all the facts involved in a function attribute have value, the fact containing that function can get a value by the application of that function.
  3. Specialise rules: New facts evaluated that belongs to the premises of rules allows the Specialisation of them (see next subsection), obtaining a new rule set and eventually new fact values.
  4. Reification-reflection: Each time a new fact receives a value a reification-reflection step is undertaken. As a result of it new facts may receive values by the reflection of meta-predicate K instances.

Josep Puyol-Gruart
Thu Oct 23 15:34:13 MET DST 1997