The CRM foresees unconstraint multiple instantiation of any combination of entities. This makes not always sense, E.g. Stuff and Temporal Entity should never share instances. The same constraints hold for multiple inheritance.
Define exclusivity of entities at the appropriate level, e.g. in the scope note or as a formal construct.
I propose to introduce a formal construct: "disjoint with: CRM Entity". This should be listed before the scope note, and after the "superclass of" statement. E.g.:
E2 Temporal Entity
(former E2 Period, former E2 Things Having Time -Span)
Belongs to: Period Type
Subclass of: CRM Entity
Superclass of:Condition Srare Period
Disjoint with:
- Existence
- Place
- Dimension
- Type
- Primitive Value
It means, that instances of the first argument cannot be instances of the second and vice a versa. "disjoint with" is symmetric and inherited. I.e. disjointness holds for any combination of a subclass of the first argument with a subclass of the second. It disallows multiple inheritance (multiple isA) between any subclasses of the two arguments.
Proposal accepted. The notion of "disjoint" to be explained in the introduction.
Monterey 22/2/2002.