next up previous
Next: Reflection Up: Reification Previous: Static


Every time a reification is performed the current values of facts are asserted as instances of the meta-predicate K as follows:

Many-valued, Fuzzy and Boolean:
The value of a fact, fact, of any of these types is an interval of truth-values, the instance of K being reified is the following (the second interval is the negation of the first one):

K(fact, int(lingterm1, lingterm2))
K(not(fact), int(lingterm3, lingterm4))

Set and Linguistic:
Given a fact, fact, we reify two instances (again an affirmative and a negative one) for every element or linguistic value.

K(=(fact, value_i), int(lingterm_1, lingterm_2))
K(not(=(fact, value_i)), int(lingterm_1', lingterm_2')) ...

For numeric facts we reify the next instance of K meta-predicate:

K(=(fact, number), int(true, true))

In some cases the control can inhibit (filter) submodules or declare new submodules of a module (see Section 6.5), hence the next two meta-predicates:

With the same syntax of static reification, it informs the meta-level of the new submodules of the current module.

It informs the meta-level of the the submodules that are filtered by meta-rules.


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