Operations are used to represent different actions taken during a transportation process. Generally speaking, an operation is a specification of the set of constraints that define a particular activity (e.g. resource requirements, duration constraints, temporal relations relative to other activities, etc.). Since operations relate to each other through temporal relations which specify the temporal and causal ordering of operations, they allow the formation of operation graphs (networks or sequences of operations). These are instantiations of processes representing the activities actually taking place (or planned to take place). Operations can also be organized hierarchically to describe processes at different levels of detail. Furthermore, an operation always specifies a set of resources. To schedule an operation, capacity has to be allocated on each of the resources in the operation's resource set.
An operation maintains information about its time bounds, i.e. about a time window during which the operation will be executed. For unscheduled operations, this time window consists of the earliest start time, latest start time, earliest finish time, and latest finish time. These values are updated by the Time Bound Propagator which uses the temporal relations of operations to traverse operation graphs. When an operation is scheduled, these bounds are ``collapsed'' and will subsequently indicate the exact execution window of the operation.
Operations also have information about their capacity requirements. This information is computed when operation instances are created (during the so-called instantiation). Given the assumption that resource alternatives are handled by creating alternative operations which have ``static'' resource assignments, this can be done.
The base class for operations is operation. It is an abstract class (i.e., not instantiable) and implements the bulk of the functionality of operations. It does not, however, implement duration calculations. When specializing an operation class, the duration calculation methods have to be defined too.
Two additional operation classes are defined particularly for modeling transportation domains: transport-operation which introduces the notion of movement and locations, and transport-load which can be used to represent loading and unloading of cargo. Typically, the load and unload operations specify the port (airport, seaport) as their resources, facilitating the reservation of port capacity for transport operations.