The schema makes ample use of Kinds. For example, there are different Kinds of Parties, different Kinds of Roles, different Kinds of Party-to-Party Relationships, different Kinds of Identity Keys and different Kinds of Locations. Many other artifacts of the schema have Kinds as well, some of which are depicted in the following illustration.
Rather than arbitrarily define Kinds in some namespace external to the schema, the Kinds are themselves represented directly as a native extent. The Kinds have a name (the name of the Kind), a description, and keywords associated with them. They also have an ID that is a constant function of the name (any name produces and the same unique ID in any directory instance). This allows entries that employ Kinds to be transported between directories without needing to reconcile the Kind identifiers.
Kinds themselves are related to other Kinds. For example, it is sometimes useful to have a hierarchy of Kinds. This can be modeled through Kind relationships of Kind “Parent”, which each connect a Kind to its Parent.
Hierarchy is just one approach. Other Kinds of relationships between Kinds are possible. Suppose we have a Kind of Organization called a Corporation. Suppose also there are Corporations defined at the state and federal levels. Then Corporation could have an “IncorporationScope” relationship to Kinds that define both Federal Corporations and State Corporations. Along another dimension, the Corporation Kind entry could be related to a dimension of different Kinds like “For Profit”, “Non-Profit”, Religious, Charitable, Governmental, and so on.
Imagine taxonomy for family relationships that would include “Husband”, “Wife”, “Child”, “Parent”, “Uncle”, “Aunt”, “Brother”, “Sister”, “Nephew” and “Niece”. All might have a “Membership Relationship” to an “Extended Family” Kind, while only “Husband”, “Wife” and “Child” might have a “Membership Relationship” to “Immediate Family”. Similarly, “Brother” and “Sister” might have a “Specialization Relationship” to “Sibling”.
Directory users can add their own Kinds, which means they can define their own new Kinds of Party-to-Party Relationships and Identity Keys, as well as establish new Kinds of Organizations, Personas, Groups, Process Roles, Customers and almost anything else within the schema. This makes it a valuable Extension mechanism.