next up previous
Next: Modular Language Up: Control knowledge Previous: Meta-rules: Deductive Control

Meta-rules: Structural Control


The meta-rules of the structural control (see the Figure 14) are designed to modify the hierarchy of a module by inhibiting modules or by declaring new ones (dynamic modules); they can also stop completely the execution of the program.

Figure 14: Syntax of structural control definition.

A meta-rule can inhibit (filter) submodules of a module. That means that all the facts exported by the filtered submodule will be from then on considered to have the value unknown.

When we use eager evaluation in a module, the order of evaluating the submodules is by following their writing order. This predicate permits to change this order when a set of conditions hold. The truth degree is used in the combination of different instances of the meta-predicate. The real order will be a combination of partial orders weighted by the truth degree.

Open, Module and Inherit
These declarations are equivalent to the corresponding normal submodule declarations, but they are performed dynamically. The following example (from Spong-IA) shows the dynamic creation of a submodule by means of the dynamic instantiation of a generic module. Given a value tex2html_wrap_inline6699 for the set fact DM/taxon with certainty value interval tex2html_wrap_inline6703 , and with tex2html_wrap_inline6705 greater than the threshold value of the module DM,that is, greater than tex2html_wrap_inline6709 , and if tex2html_wrap_inline6699 is a submodule of DM, then a new submodule is created, with local name tex2html_wrap_inline6699 and with body the instantiation of the generic module tex2html_wrap_inline6717 with the modules tex2html_wrap_inline6719 and T as arguments.

M0001 if K(=(DM/taxon ,$z), int($min,$max)) and
         threshold(DM, $cut) and gt($min,$cut) and
         submodule(DM, $z) then
                  Module(=($z,Refinement_method(DM/$z, T)))

Definitive Solution and Stop:
These are exceptional actions. In some cases the programmer wants to stop the execution by assigning a value to a fact (definitive solution) or aborting (stop) when an unrecoverable situation is reached, e.g. the problem being solved is out of the scope of the system.

next up previous
Next: Modular Language Up: Control knowledge Previous: Meta-rules: Deductive Control

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