Action definitions and goal descriptions have the same syntax as in PDDL2.1.
action-def | ::= | ( :action action symbol | ||
[:parameters ( typed list (variable) )] | ||||
action-def body ) | ||||
action symbol | ::= | name | ||
action-def body | ::= | [:precondition GD] | ||
[:effect effect] | ||||
GD | ::= | atomic formula (term) | ( and GD* ) | ||
| | :equality ( = term term ) | |||
| | :equality ( not ( = term term ) ) | |||
| | :negative-preconditions ( not atomic formula (term) ) | |||
| | :disjunctive-preconditions ( not GD ) | |||
| | :disjunctive-preconditions ( or GD* ) | |||
| | :disjunctive-preconditions ( imply GD GD ) | |||
| | :existential-preconditions ( exists ( typed list (variable) ) | |||
GD ) | ||||
| | :universal-preconditions ( forall ( typed list (variable) ) | |||
GD ) | ||||
| | :fluents f-comp | |||
atomic formula (x) | ::= | ( predicate x* ) | predicate | ||
term | ::= | name | variable | ||
f-comp | ::= | ( binary-comp f-exp f-exp ) | ||
binary-comp | ::= | < | <= | = | >= | > | ||
f-exp | ::= | number | f-head (term) | ||
| | ( binary-op f-exp f-exp ) | ( - f-exp ) | |||
f-head (x) | ::= | ( function symbol x* ) | function symbol | ||
binary-op | ::= | + | - | * | / |
A number is a sequence of numeric characters, possibly with a single decimal point (“.”) at any position in the sequence. Negative numbers are written as (- number ).
The syntax for effects has been extended to allow for probabilistic effects, which can be arbitrarily interleaved with conditional effects and universal quantification.
effect | ::= | p-effect | ( and effect* ) | ||
| | :conditional-effects ( forall ( typed list (variable) ) effect ) | |||
| | :conditional-effects ( when GD effect ) | |||
| | :probabilistic-effects ( probabilistic prob-effect + ) | |||
p-effect | ::= | atomic formula (term) | ( not atomic formula (term) ) | ||
| | :fluents ( assign-op f-head (term) f-exp ) | |||
| | :rewards ( additive-op reward fluent f-exp ) | |||
prob-effect | ::= | probability effect | ||
assign-op | ::= | assign | scale-up | scale-down | additive-op | ||
additive-op | ::= | increase | decrease | ||
reward fluent | ::= | ( reward ) | reward |
A probability is a number with a value in the interval [0, 1].
Håkan L. S. Younes