Where used: Object Type And Relation Model

isRoleTypeFor / hasRoleType

Object Type isRoleTypeFor Place

Place hasRoleType Object Type

Those objects that are participating in a particular relation can be
grouped under a role type.  For example, we can group those objects that
are participating in the Marriage relation at this particular moment to
form the Wife and Husband object types. 

There are at least three ways to model the participating types and role
types of a relation:

    1) Both the participating types and the role type

            In the example above, both the possible husbands and actual
            husbands have their own object types, namely Man and
            Husband.  This model corresponds to the way people normally
            refer to relations, as in "Marriages have men as husbands",
            or "A husband is a married man.", so requirements gathering
            is easier.  It has more overhead than the other two
            techniques, because there are two object types instead of

    2) Just the participating type

            If no new features apply to the role type, then it is not
            necessary to model it.  For example, if the model says
            nothing new about husbands, it can be omitted.  If the
            husband concept is needed on occasion, then the user can
            test whether a particular man is married to see if he is a
            husband.  If the husband concept is needed a lot, then this
            is not the best technique.

    3) Just the role type

            For example, the Marriage relation may be modelled only
            between Husband and Wife.  This technique is best when the
            application does not need to know who the potential husbands
            and wives are, only the actual husbands and wives.  The
            participating types are still modelled, in a sense, since
            they are needed to determine the legal elements; however,
            they can't be used for modelling of potentially married
            people, because they restricted to be identical to the role
Anti-role types

The difference between participating type and the role type are those
things that are not participating in the relation, but could.  For
example, bachelors is one of the anti-role types of Marriage.

Role types and images

Role types are identical to the images and co-images of place mappings
(see hasImage/isImageOf and hasCoimage/isCoimageOf).  We have already
seen how relations are defined independently of their implementation as
mappings (see Mapping).  Likewise, Role types do not depend on the
images and co-images of a mapping implementation.