Read First: Object, Object Type, Relation
Read Next: Object Part Specification, Relation Part Specification,
hasCompositionRelation/isRelationForPartSpec
An object type does not have any actual parts because it is not
instantiated, so the meta-model must have an entity to pull together all
the requirements on the actual part to prepare for the instantiation.
Here are some things that need to be recorded at the type level:
1) Each part is of a certain type.
For example, the parts of an Engine could be objects types
such as Engine Block, Piston, and Crankshaft. This is
modelled using hasPartType/isPartTypeFor.
2) Parts may be connected in certain ways.
For example, an engine in a car powers the wheels. See
Relation Part Specification.
3) Each kind of part may have more than one instance in the
instantiated composite.
For example, a car may have four wheels. See
hasNumberOfParts/isPartCardinalityFor.
This information is recorded by the various meta-entities and relations
as referenced above.
Subtypes: Object Part Specification, Relation Part Specification