Roles are entities that represent the properties of CLASSIC individuals. They map CLASSIC individuals to other (CLASSIC or HOST) individuals. The roles of a CLASSIC individual can either be ``filled'' by individuals (called the role fillers) or have their potential fillers restricted by certain concepts (i.e., as type descriptions), or both, where the fillers and descriptions can be in either the CLASSIC realm or the HOST realm. Attributes are special types of roles that have an implicit maximum number of fillers of 1.
The syntax for defining a role is:
A role r can be thought of as a two-place predicate: r(individual1, individual2), where the role-predicate is TRUE if r on individual1 is known to have the value (filler) individual2. For example, brother(Mary, John) would be TRUE if the brother role on the individual Mary is known to have the value John. A role on an individual may have any number of values, possibly none.