Type designators#
You can assign a slot in your schema “type designator” status
by setting designates_type to true
.
This means that the slot can be used to designate the type of an instance.
For example, in the following schema, the type
slot is a type designator for the Organization
class:
classes:
Organization:
attributes:
name:
type:
designates_type: true
range: string
Business:
is_a: Organization
EducationalOrganization:
is_a: Organization
...
This means that if the type
slot is present in data for an instance of a class
Organization, then the value of the type
slot MUST be either “Organization” or any
of the transitive subclasses (by following is_a
or mixins
).
Additionally, if the instance instantiates a more specific class of Organization,
this must be consistent with the value of the type
slot. The value of the type slot
must be in the set of reflexive descendants or ancestors of the instantiated class.
The type designator can also be used to infer the instantiated class.
For example, an instance i
that instantiated Organization
in the above schema
with a type value of Business
would be inferred to be an instance of Business
.
Type designators can also be assigned to multivalued slots. In this case the same rules apply for each value of the slot. When performing inference, the most specific class is chosen.
In the above example, the range of the type designator is string
.
It could also be uri
, curie
, or uriorcurie
, in which case
it should match value of the class_uri field normalized to the appropriate form.