EMA-XPS Online
DEFINE-CONSTRAINT
DEFINE-CONSTRAINT
=================
syntax: (define-constraint <constraint-name> OF
<constraint-pattern-name>
[:DOCUMENTATION <constr.doc.>]
[:EXPLANATION <expl-expr.>]
[FOR-EACH
(<bab-var> <bab-lisp-expression>)]
WITH <simple-predication>+)
Warning: The explanation facility is not sup-
ported, hence :documentation and
:explanation are ignored.
With a constraint you define expressions for
the parameters of the constraint-pattern. In the
constraint-pattern is defined, how to link
certain values. The constraint defines
the concrete values for the link. You can link
attribut-values of one or more instances.
FOR-EACH expects a list with a variable which is
followed by a lisp-expression. The lisp-expression
has to evaluate to a list with valid conditions.
For example: With the FOR-EACH declaration it is
possible to make a constraint for every instance
of a certain frame.
WITH expects a simple predication. The predications
in the WITH-clauses must not be based upon each other.
There must exist exactly one WITH-clause for every
parameter of the pattern.
example: >(define-constraint-pattern
calculate-real-costs)
(_real-costs _country-wishes)
:documentation "calculates the
costs for a visit of the countries
_country-wishes."
RULES
(KNOWN (_country-wishes)
THEN (is _real-costs (calculate-client-
costs _country-wishes))))
>(define-constraint calculate-costs-for-
client
OF calculate-real-costs
FOR-EACH (a-client (instances-of
'client)))
WITH
[complete-costs a-client _real-costs]
[destinations a-client _country-wishes])
EMA-XPS Online