OPM supports the specification of object classes and protocol classes . OPM classes can be organized in a class hierarchy representing subclass-superclass relationships. Attributes take values from other classes or are associated with system provided data types. OPM supports the specification of derived attributes using derivation rules involving arithmetic expressions, aggregate functions, and attribute composition.
Attributes can be generic or versioned .
Protocol classes in OPM are used to model laboratory experiments. Protocol expansion in OPM allows specifying a protocol in terms of alternative subprotocols, sequences of subprotocols, and optional protocols. A protocol class can be associated with regular as well as input and output attributes. Input and output attributes are used for specifying input and output connections between protocols. A derived subclass is defined as a subclass of another derived or non-derived object class with an optional derivation condition.