next up previous
Next: Dynamic Up: Reification Previous: Reification



The components of the module state that are persistent during the execution are: the programmer defined relations between facts, the threshold and the rules. All these components are initially reified. Although the submodules of a module are not persistent, the initial submodules are also reified.

The name of the relation used in the definition of facts, user-defined or system-defined, becomes a binary meta-predicate identifier. The two arguments correspond to the name, with the appropriate path prefix, of the facts being related. For instance the relation relationid between fact1 and fact2 becomes the next meta-predicate instance:

relationid(fact1, fact2)

It asserts a meta-predicate instance to represent the threshold of the current module and those of its submodules.


There is a kind of evaluation strategy named reified (see Section 6.1) that needs to know the rules of the deductive component at the meta-level. In modules with that strategy the rules are then also reified. For instance consider the following rules concluding a many-valued fact c and a set fact d:

If a and b then conclude c is s
If a and b then conclude d=x is qp

These rules are reified in the following form:

K(implies(prem(A,B), C), int(S,S))
K(implies(prem(A,B), =(D,X)), int(QP,S))

Notice that the last list represents and upper interval of truth-values (considering the truth-value true is the linguistic term S).

Informs the meta-level of all the submodules of the current module by means of instances of a meta-predicate called submodule (meta-predicate with only one argument), and the submodules of every submodule of the current module (the same meta-predicate name but with two arguments).


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