Previous Next

Transitive relations and cardinality

Strictly speaking, it makes no sense to talk about a transitive relation with a cardinality of manyOne or oneOne i.e. for the attribute to be both transitive and single valued. Obviously, if the relation is transitive, then there can be many values. However, GRAIL interprets single valued for transitive relations to mean that there can be only one value for each step which is equivalent to saying that the relation must form a strict tree. An analogous meaning is used for a single-valued relation which is specialisedBy another. Strict trees are very common and very useful, so having a value type for them is helpful.

Finally, GRAIL assumes that transitive relations do not form cycles, i.e. that there are never loops in the transitive relation, for example, it can never be the case that something is a part of itself if the hasPart attribute is declared as transitive. There is no check for this in the system, but cycles in transitive relations may cause the system to loop endlessly.

Previous Next
Making the impossible very difficult, ©OpenGALEN.org, All rights reserved