Derived attributes have values that are derived from the values of other attributes using derivation expressions , such as arithmetic expressions, aggregate functions ( min, max, sum, avg, count), and attribute composition. Arithmetic expression and aggregate function derivations are straightforward and are not further discussed here.
An attribute A of a class
,
can be defined as a composition of other attributes
by associating it with
(a composition derivation consisting of)
one path or a union of paths of the following form:
[
]
[
]
[
],
where
each
(1
k
n) denotes a class, and
each
(1
k
n) denotes
an attribute associated with
(
)
and takes values from value class that either includes or
is a superclass of
.
For example, the following derived attribute can be associated with class Connection shown in figure 1: right_fragment [Fragment] owner.
We consider only two types of derived (virtual) classes: derived subclasses of one or several object classes and derived superclasses of several classes (e.g., see [1]).
A derived subclass,
, of one or (intersection of)
several object classes,
,
,
(m
1),
and/or associated with a condition,
consists of the subset of objects that belong to
the intersection of classes
,
,
and satisfy the associated condition.
For example, a class of fragments longer than 100 base pairs,
Long_Fragment, can be specified as a derived subclass
of class Fragment shown in figure 1,
associated with condition: length > 100.
A derived superclass,
,
of object classes
,
,
(m
2),
consists of the union of objects belonging to these classes.
For example, a class Contig_or_Fragment can be defined as
a derived superclass of classes Contig_Map
and Fragment shown in figure 1.