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

Definition

Let X be a DRM object. X shall not appear in the component tree of X, other than as the root of the component tree.

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.