next up previous contents
Next: Object-Protocol Model Schema Up: THE OBJECT-PROTOCOL MODEL Previous: Contents

Introduction

We describe in this document version 4.1 of the Object-Protocol Model (OPM). OPM is an object data model that has constructs that are common to several prominent object-oriented and semantic data models, such as, object class, object attribute, class hierarchy and inheritance, and derived attribute [Hull & King 87,ODMG-93].

In OPM, an object class is identified by a class name, has an optional class description and an optional class example specification, and is associated with attributes that qualify the objects in the class. An object class can have optional identity ( ID) attributes, and optional display ( REP) attributes. Attributes take values from value classes that are either other classes or system provided primitive value classes such as INTEGER or TEXT. For example, an object class CHROMOSOME can have attributes name, map, and owner with value classes CHAR(80), MAP and PERSON, respectively. Abstract attributes can take values from (local) classes specified in the current OPM schema or specified in other (foreign) schemas; this facility allows referencing data across multiple databases. Furthermore, attributes can be associated not only with single value classes, but also with union of value classes.

Attributes in OPM can be simple or a tuple of several component simple attributes. For example, attribute address of class PERSON can be specified as tuple ( number, street, city, state, zip_code). Attributes can be single-valued, set-valued or list-valued with associated cardinality constraints.

OPM supports the specification of subclass-superclasses relationships in an object class hierarchy. A subclass is a specialization of its superclasses, and inherits all the attributes associated with its superclasses. Multiple inheritance is supported in OPM. There are two types of specialization: isa and isa*. A class isa means that instances of are also instances of ; isa* means that instances of are also instances of but cannot be instances of any other subclass of .

OPM supports the specification of derived attributes using derivation rules involving attribute composition, arithmetic expressions, aggregate functions, and user specified retrieval methods (using queries) defining how the derived attributes are computed. OPM also supports derived subclasses and derived superclasses.

Protocol classes in OPM are used to model processes such as laboratory protocols. Each instance of a protocol class is an individual experiment. Given an input, a protocol instance (experiment) results in an output, where both input and output consist of objects. OPM supports the recursive specification (expansion) of protocols. 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. An input (or output) attribute is a regular attribute with additional input (or output) statements indicating its relationship with other input or output attributes. For example, if the result (output) of a CUT protocol is cut_gel, and CUT is followed by a PURIFY protocol that takes cut_gel (input) for purifying DNA, then CUT and PURIFY are related via their input and output attributes, that is cut_gel.

Versioning is supported using versioned attributes. Thus, the attributes of a class can be partitioned into generic and versioned attributes. Generic attributes can be used for describing the stable (non evolving) part of an object or protocol (such as the social security number of a person), while versioned attributes can be used for describing the changing (evolving) part of an object (such as the address of a person). A version of an object or protocol x consists of the values of the generic attributes for x (common to all versions of x) and the values of versioned attributes for a specific version of x.

OPM 4.1 supports modeling permissions in terms of object ownership and status (released or not released). OWNER and STATUS attributes can be associated with all the classes in an OPM schema: owners of objects can retrieve and update objects, while non owners can only retrieve released objects.

OPM has constructs similar to other semantic [Hull & King 87] and object-oriented data models [Deux & al. 91,ODMG-93]. OPM is most closely related to the Semantic Data Model (SDM) [Hammer & McLeod 81]. Like in SDM, in OPM

  1. objects (instances) are classified into object classes and are qualified by attributes that take values from value classes;

  2. object classes are interrelated via attributes and specialization (isa) relationships;

  3. attributes can be defined using various derivation mechanisms, such as aggregate functions and arithmetic expressions.

However, for the sake of simplicity, OPM does not support the following features:

  1. grouping abstraction mechanism;

  2. class attributes; and

  3. more complex attribute derivation mechanisms, e.g., using set operations.

OPM has constructs that do not appear in other semantic or object-oriented data models:

  1. the association of attributes with union of value classes;

  2. protocol classes and input-output attributes;

  3. foreign class definitions;

  4. class and attribute versioning; and

  5. supports of modeling ownership and release status for permission modeling.

Moreover, attribute composition in OPM is more general that analogous attribute derivations in other data models.

Examples of using OPM for defining scientific databases are available on the Web at http://gizmo.lbl.gov/opm.html.

We have implemented OPM on top of relational database management systems, such as Sybase 10, Sybase 11 and Oracle 7 [Chen & Markowitz 96a]. We plan to implement OPM on top of object-oriented or object-relational databases, such as Informix/Illustra.

The rest of this report is organized as follows. Section 2 describes OPM schemas and the OPM permission model. Object classes and attributes are defined in Section 3. Derived attributes and derived classes are defined in Section 4. Protocol classes, input-output attributes, and protocol connection attributes are specified in Section 5. OPM updates rules are described in Section 6. Versioning constructs are presented in Section 7. Section 8 describes physical database design features. Section 9 contains concluding remarks. The BNF for OPM and a list of constraints for OPM schemas are presented in Appendix A.



next up previous contents
Next: Object-Protocol Model Schema Up: THE OBJECT-PROTOCOL MODEL Previous: Contents