Where used: Composition Model


Relation Part Specification


Read First: Part Specification
Read Next: forPartSpec/refersToRelation, 
           connectedByRelationPart/connectsObjectPart

This is for specifying the connections between parts.  It is specialized
from Part Specification, because relations are treated as parts just
like objects (relations are a kind of object type in OOIE).  For
example, when a composite object type is instantiated, like a type of
car, the objects are all created, like the engine and wheels, and the
connections are established also, like between engine and wheel.  In
OOIE, establishing a relation is done by instantiating a relation type.
So all the parts of a type, both objects and relations, are likewise
treated as types, then instantiated.

This information is need to specify a relation part:

    1) The type of relation used for the connection.  This is modelled
       by forPartSpec/refersToRelation.

    2) The object parts that will fill the places of the relation.  This
       is modelled by connectedByRelationPart/connectsObjectPart.

For example, suppose we want to model the departments of a company and
the information flow between them.  The object parts are the departments
and the relation parts are the information flows.  We create a relation
type InformationFlow, then make an instance of Relation Part
Specification for each flow connection between departments.  We use
forPartSpec/refersToRelation to refer the relation parts to
InformationFlow, and connectedByRelationPart/connectsObjectPart to
specify which departments fill which places in each information flow
relation.  To simplify the meta-model, it is assumed that the places are
ordered in the relation, and that connectedByRelationPart/connectsObjectPart 
will adopt the same ordering when specifying objects to fill the places.



Composite relations

Although this meta-entity is for specifying relations to be parts of
composite objects, it is also used in an important way for relations
that are wholes, ie, relations that have parts.  For example, suppose
two companies are involved in a partnership to develop a product, and
you want to model this relationship.  The relation will have parts, in
particular, it will have relation parts that connect people in the two
companies.  For example, the lawyers will be talking to each other, the
developers to each other, managers, etc.  This particular composite
relation will only have other relations as parts, no object parts (a
"cable").  

A composite relation will always have some relation parts that connect
to objects outside the composite.  If there were no relation parts
referring outside the composite, then the composite would be a
self-contained object, not a relation.

Composite relations can have object parts also.  For example, the
relation between two people calling each other on the phone was object
parts like the receivers and switches.  It will also have relation parts
that connect those object parts, like wires and microwave connections.
Some of the relation parts must connect out of the composite, and in
this case, it would be the relation between the receivers and the people
using the phones.


Hierarchy:

Attributes: None

Operations: None