Operations can be specified to define the behavior of assets. Operations are always abstract - the actual behavior depends on the implementation. Therefore, the definition of operations is quite simple: we only have to specify an operation name. The operation names used in a model are taken from one or several vocabularies.
Operations can be executed under certain circumstances which are classified by modes. For example, typical modes for a database model are insert, update, delete. We declare a mode by writing the mode name in front of the operation name, separated by a blank. Multiple modes can be specified with an operation, separated by blanks:
mode1 mode2 opname
Operation names and mode names should be declared in an operation vocabulary. A model may specify a default operation vocabulary and additional operation vocabulary prefixes. This allows the use of different operation vocabularies within the same model. Operations that are formulated in an operation vocabulary other than the default operation vocabulary are specified with a operation vocabulary prefix which is separated from the operation name by a colon:
The mode name must be specified in the same vocabulary as the operation name.
Operations can be specified with a context expression which may identify one or several assets.
Optionally it is possible to decorate an operation with a label. An operation label does not have any specific purpose within AOM but helps to identify operations.
Note, that there is no closing bracket.
Operations can be guarded with pre- and postconditions. Pre- and postconditions are written in separate lines below an operation specification, for example:
Preconditions are prefixed with
postconditions are prefixed with
o?- (for alpha and
Conditions follow the same syntax as constraints,
except that labels are not allowed here. This includes the use of
languages declared in the model and the use of abstract constraints.
expressions defined in pre- or postconditions are given relative to the
of the operation.
Any number of pre- and postconditions can be specified
Contact: support 'at' aoModeling.org