Here is a table of all requirements in PDDL2.1. Some requirements imply others; some are abbreviations for common sets of requirements. If a domain stipulates no requirements, it is assumed to declare a requirement for :strips.
Requirement | Description |
---|---|
:strips | Basic STRIPS-style adds and deletes |
:typing | Allow type names in declarations of variables |
:negative-preconditions | Allow not in goal descriptions |
:disjunctive-preconditions | Allow or in goal descriptions |
:equality | Support = as built-in predicate |
:existential-preconditions | Allow exists in goal descriptions |
:universal-preconditions | Allow forall in goal descriptions |
:quantified-preconditions | = :existential-preconditions |
+ :universal-preconditions | |
:conditional-effects | Allow when in action effects |
:fluents | Allow function definitions and use of effects using |
assignment operators and arithmetic preconditions. | |
:adl | = :strips + :typing |
+ :negative-preconditions | |
+ :disjunctive-preconditions | |
+ :equality | |
+ :quantified-preconditions | |
+ :conditional-effects | |
:durative-actions | Allows durative actions. |
Note that this does not imply :fluents. | |
:duration-inequalities | Allows duration constraints in durative |
actions using inequalities. | |
:continuous-effects | Allows durative actions to affect fluents |
continuously over the duration of the actions. |