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:
- 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.
- 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.
- 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.
- 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.
Thu Oct 23 15:34:13 MET DST 1997