Task test for solution existence
This task is based on the presence of domain knowledge. Since the
task is not mandatory, it is possible to skip it. In order to
preserve the task control scheme in the case of skipping over,
the
task always contains the rule:
-
(defrule test-exist-y
-
(declare (salience -10))
(job test-exist)
(not (solution ?))
=>
-
(assert (solution yes))
)
which ensures a proper transfer of the activity to the next task
initialize. In the case of the presence of domain knowledge for
this task, it is represented in the form of rules
-
(defrule test-exist-n-<order number>
-
(job test-exist)
...
=>
-
(assert (solution no))
)
which are able to detect the case when the solution cannot be found (in
other words, necessary condition for the solution existence does
not hold). If this is not the case (and the solution for a
particular
problem does exist), no rule from these domain rules can be
fired.
In this case the database does not include the fact related to
the
non-existence of the solution and the rule test-exist-y
can be
fired.