The SEDRIS Data Representation Model
APPENDIX B - Constraints
Non Cyclic Aggregations

Definition

Aggregations are not allowed to form cycles, although associations are.

Rationale

When an object is instanced, the object shall be constructed in such a way that a consumer can finish traversing it.

Aggregations represent "has-a" relationships, where a component is part of the aggregation, e.g., an instance of a wall's <Geometry Model> instance is part of a building's <Geometry Model> instance. It does not make sense to say that component A is a proper subset of aggregation B, then allow B to be a component of A.

Associations, however, often mean that the associated objects are alternate representations of each other, as in, A is an alternate representation of B, so B is an alternate representation of A.

Example

  1. It is not useful to say that a <Geometry Model Instance> instance representing a bridge is part of itself.

  2. It is useful to say that a <Point Feature> instance represents a <Model> instance representing a building, and that a <Geometry Model Instance> instance is really a building at a particular location.

FAQs

Can an object A associate to B, which in turn associates to A?

Yes, if the requisite relationships are syntactically legal.

Can an object have itself as a component?

No.

Can an object associate to itself if the DRM allows instances of its class to associate to one another?

Yes, although that does not provide any useful information.


Prev: Nested Primitive Geometry. Next: Non Empty Environment Root Instance. Up:Index.