In order to better understand the different categories of object types and subtypes in natural language statements about the real world and in information models, we can distinguish between sortal and non-sortal, and between rigid and non-rigid object types, as proposed by Giancarlo Guizzardi in his theory of object type categories presented in Chapter 4 of Ontological foundations for structural conceptual models.
An object type is sortal if it has a uniform identity condition for its instances. Such a condition defines the property (or set of properties) that no two instances can have in common, without being the same object. An example of a sortal object type is
Person since all its instances (people) are identifiable by a set of properties related to their birth (born when, where and to whom).
Book is an example of a non-sortal object type because it contains instances (e.g., textbooks and self-published novels) that are identified in different ways.
An object type is rigid if its instances cannot cease to be of that type without ceasing to exist (or altering their identity).
Person is an example of a rigid object type, while
Employee is not rigid. A segmentation is called rigid if all segment subclasses are rigid.
A kind is a rigid sortal object type. Examples of kinds are
Person. A role is a sortal object type R classifying all instances of a kind K that participate in a relationship (of a certain type A) with an instance of an object type O. Notice that R is a non-rigid subtype of K since its instances do not cease to exist when they happen to cease instantiating R because they no longer participate in a relationship of type A with an instance of type O.
Employee is an example of a role since it is a sortal object type classifying all instances of
Person that participate in an employment relationship with an instance of type