ADL extends the action definitions of STRIPS actions by allowing quantified and conditional effects. As in preconditions, the former are dealt with by enumeration; the latter are dealt with depending on their conditions.
If a conditional effect is dependent only on static predicates it is possible to determine when grounding an action whether or not it applies for that instance: the static information does not change from state to state. If the effect depends on dynamic predicates, it is necessary to consider, in each state, whether the effect applies. To achieve this, the effect and its conditions are used to form a sub-action. The sub-action has the conditional effect's condition as its preconditions, and the conditional effect itself as its effects. As conditional effects can be nested in the original operator schemata, the sub-actions themselves may also have conditional effects; in which case the sub-action-creation step is applied recursively, creating nested sub-actions as necessary.
The applicability of ground sub-actions in a given state is performed in the same manner as normal actions. When an action is applied, any sub-actions that are also applicable are applied alongside it, thereby preserving the conditional effects of the original operator.
Andrew Coles and Amanda Smith 2007-01-09