A typical example of a feature of interest is the requirement that a certain variable in the model is endogenous or exogenous. To be more specific, the property definitions below describe when a variable ?v is endogenous and exogenous respectively.
(defproperty endogenous :source-participants ((?v :type variable)) :structural-condition ((or (== ?v *) (d/dt ?v *))) :property (endogenous ?v))
(defproperty exogenous :source-participants ((?v :type variable)) :structural-condition ((not (endogenous ?v))) :property (exogenous ?v))
The first definition states that whenever either or is true (where * matches any constant or formula), ?v is deemed to be endogenous. The second property definition indicates that a variable is said to be exogenous if such an object exists and it is not endogenous.
By describing such features formally in the knowledge base, property definitions enable them to be imposed as criteria on the selection of scenario models. In this way, the variable describing the size of a particular population in an eco-system, for instance, can be forced to be endogenous.
Note that required properties can be specified in two different ways: either globally as goals for the scenario model construction or locally as a required purpose of a certain model fragment. The latter use of model properties will be illustrated later.