Subclassing Association

The Types and Scope slots of a class derived from ASSOCIATION class may be provided with template values as the Types slot on the TOPIC class can. However, TMTab additionally allows the creation of additional slots which provide a more convenient way for ontology creators to enter the role players in an association and which enable ontology designers to constrain the types of topics which may play certain roles in the association.

To create a slot to represent a role in an association, you simply need to add a new slot which accepts one or more instances of TOPIC or a subclass of TOPIC. This slot can be used to add the players of a role in the association. By constraining the allowed subclass of TOPIC, you can mandate that a topic playing a particular role is of a specific type. For each slot which specifies role players, a slot with the same name and the suffix "_type" can be added to the class to provide the TOPIC instance which defines the association role.

Example 5.5. Creating the born-in association

  1. Create a new instance of TOPIC with the Model Name set to "born in"
  2. On the Classes tab, select ASSOCIATION and create a new subclass. Give the subclass the name "Born In".
  3. With the "Born In" class selected, double-click on the Types slot and choose to modify the slot at the class level. Add the "born in" topic as a template value.
  4. Create four new slots for the "Born In" class as follows:

    Table 5.1. New slots for the "Born In" class

    Slot Name Allowed Type Allowed Classes Template Value
    role_Person Instance Person  
    role_Person_type Instance TOPIC "Person" TOPIC
    role_Place Instance Place  
    role_Place_type Instance TOPIC "Place" TOPIC