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> is part of a building's <Geometry Model>. It doesn't make sense to say that component A is a proper subset of aggregation B, and 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> of a bridge is part of itself.
  2. It is useful to say that a <Point Feature> represents an instance of a building <Model>, and that a <Geometry Model 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 doesn't provide any useful information.


Prev: Non Crossing Associations. Next: Non Empty Environment Root. Up:Index.

Last updated: July 16, 2004 Copyright © 2004 SEDRIS