Every object type, property, link type, action, or interface in the Ontology has a status that indicates developmental state. An ontological resource's status can be either active, experimental, deprecated, or example. Status metadata helps Ontology-editing users to know what resources are being actively relied on by user applications. These statuses are viewable in Object Explorer, Object Views, and Workshop to provide more information about which object types are intended for use in user applications.
The status can take on one of four values:
Given that applications rely on ontological resources, there are several potentially destructive operations that are not allowed when a resource has the status active
:
experimental
or deprecated
before it can be deleted.active
object type cannot be changed. Changing a primary key is only possible for object types marked as experimental
.experimental
.A resource with status deprecated
cannot be made experimental
, active
, or example
again by using the status picker. Instead, you will need to restore the Ontology resource to a version with the desired status using the Edits History dialog.
By default, any new ontological resource will be given the experimental
status. To change the status:
When changing a resource to the deprecated
status, you will be prompted to:
These statuses are viewable in Object Explorer, Object Views, and Workshop to provide more information about which object types are intended for use in user applications.
The Ontology Manager ensures status consistency between an object type and its related properties or link types. For example, if an object type is changed from active
to experimental
, all of its properties will be marked experimental
as well.
The table below indicates available statuses for a link type between object types of different statuses. In general:
experimental
, the link type will automatically be changed to experimental
.example
, the link type will automatically be changed to example
.deprecated
, the link type will automatically be changed to deprecated
.If object type A is… | and object type B is… |
---|---|
EXPERIMENTAL | |
EXPERIMENTAL | experimental only |
ACTIVE | experimental only |
DEPRECATED | deprecated only |
The same requirements are true of foreign keys of a link type. The application will change the status of a link type when changing a property:
experimental
, its link type will be changed to experimental
.example
, its link type will be changed to example
.deprecated
, its link type will be changed to deprecated
.The application changes statuses in order to prevent invalid states. If a foreign key property is experimental
and still being developed, its link type shouldn't be marked active
and be relied on in production. In contrast, when marking a property active
, the application won't change a link type referencing the property as its foreign key to active
, as it is valid for a foreign key property to be in production, while the link type and its backing datasource are still in development.
When changing an object type from experimental
to active
, there is the option to also apply the active
status to all properties on the object type:
When you change an object type to example
, all of its properties will automatically become example
also.
Statuses across properties of an object type can also be edited in bulk from the Properties page of the object type. Read more about bulk editing properties.
Statuses across object types can also be edited in bulk from the home page object view page by selecting the checkboxes of the object types to edit and selecting the Edit status button at the top right of the table.
If you receive the error OntologyMetadata:ConflictBetweenLinkTypeStatusAndPropertyTypeStatus
, there is a conflict between the status on a link type and the status on a property. For example, if a foreign key is deprecated
, link types that reference that foreign key should also be deprecated
.
If you receive the error OntologyMetadata:ConflictBetweenLinkTypeStatusAndObjectTypeStatus
, there is a conflict between the status on a link type and the status of one of its associated object types. This can happen when there is an invalid object type-link type case according to the table above. For example, an experimental
object type cannot have an active
link type.