This defines subfields common to several PM performatives.
Time
<time> := "(" <number> "h" <number> "/" <number> "/" <number> ")"
Time strings represent a date in american format, i.e. 3 / 27 / 1998
is the 27th of March in 1998. In
addition the daytime is given as an hour in the 24h/day system. E.g.
( 16 h 3 / 27 1998 ) would be
the 27th of September in 1998, 3pm.
Duration
<duration> := "(" <number> d <number> h ")"
Durations represent time-intervals of a special length, given in days and hours in a very straightforward way. ( 38 d 4 h ) represents a time-interval of 38 days and 4 hours.
Resource
<resource> := "(" <string> <number> ")"
Resources represent a certain amount of a resource or a certain number
of objects, e.g. ( power 10000 )
or ( funds 10000 ). Note, that resource do to contain unit information,
e.g. it is not possible
to specify ( founds 10000$ ) or ( power 10kW ). The PM needs to do
calculations and comparisons
on resources for a number of algebraic constraints. These are considerably
more complicated if you
allow units like kW or MW, or - even worse - currencies like $ or DM.
Product Reference
<product-ref> := "("
<string> <type> ")"
<type>
:= "use" | "consume" | "produce"
Product references are not only used to reference a product of a given
name, but also specify
what the owner of the reference intends to do with the product. E.g.
one task might hold a product-reference ( frame produce ) to produce an
engine-frame, another task might want to
use this frame and keep a reference ( frame use ).