Participation Constraints and Forks
In all the examples and discussions so far we have tacitly assumed that each thing, be it object or process, participates in the relation singly, i.e., in a quantity of exactly 1. Indeed, the convention in OPDs is that when no quantity is explicitly recorded by the side of a structural link, it is taken to be 1, which is the default value. In general, however, we may wish to specify a certain number or a range of numbers of instances of the same class of things that participate in the relation. Similarly, our models so far have tacitly assumed that a process involves one object instance of each object class to which it is linked. Indeed, this is the default. However, it is sometimes required to model the fact that more than one object takes part in a process. Process participation constraints and link cardinalities are designed to take care of this. We then turn to another useful notation—the fork—which is based on the observation that structural relations are distributive in a sense analogous to the distributive law in algebra. This is graphically represented via forks, as defined, discussed and demonstrated in this chapter.