next up previous contents
Next: Specialization Derived Classes Up: Derived Attributes and Previous: User Specified Derivation

Derived Classes

There are two types of derived class: specialization derived classes (or derived subclasses) and generalization derived classes (or derived superclasses). These constructs have similarities to analogous constructs defined in [Abiteboul & Bonner 91,Rundensteiner 92,Scholl, Laasch & Tresch 91].

<OPM derived class> ::= <specialization derived class>
                      | <generalization derived class>
                      ;

A derived class can have user specified attributes and derived attributes with extended attribute composition: [] [] [], where is an underlying non-derived class for .

An underlying non-derived class for is recursively defined as follows:

(1)
A non-derived class specified in the class derivation of is an underlying non-derived class for ;

(2)
A non-derived superclass of any classes specified in the class derivation of is an underlying non-derived class for .

<derived view attribute> ::= ATTRIBUTE <simple attribute name>
                             DERIVATION ':' <view simple attribute derivation>
                             <attribute description>
                             <domain-specific properties>
                           ;
<view simple attribute derivation> ::= <extended attribute composition>
                                     | userspecified
                                     ;
<extended attribute composition> ::= <extended composition path>
                                   | <extended attribute composition> or
                                     <extended composition path>
                                   ;
<extended composition path> ::= '[' <class name> ']' <composition element>
                              | <extended composition path>
                                '[' <class name> ']' <composition element>
                              ;
<composition element> ::= <attribute name>
                        | '!' <attribute name>
                        ;