Common rules
Every definition belongs to one ontology throughontology_id and has an api_name. Its name and description are separate, editable display fields, not part of the definition JSON.
ontology
ontology_object_type
Property
Used in object types, interfaces, links, action parameters, andstruct fields.
Value schema
A constraint that belongs to another kind is rejected with
invalid_value_constraint, as is min greater than max. Value schemas nest up to 32 levels.
Constraint
A named rule on an object type’s values. Ontology versions it and returns it to agents; it does not evaluate it against data.ontology_interface_type
ontology_link_type
Cardinality values read as exactly one (
one), at most one (optional) and many (many). Studio’s Relationship picker sets both ends: One to many is source_cardinality: one, target_cardinality: many.
ontology_shared_property_type
ontology_action_type
ontology_concept_scheme
A label is
{ "value": "Product category", "language": "en" }. language is optional and must be a BCP 47-style tag such as en or fr-CA.
ontology_concept
A concept or scheme holds up to 128 labels in total, and a concept up to 256 semantic relationships. A mapping whose target IRI matches another concept in the same release is followed by context retrieval; an external target is kept but not followed. Scheme membership never expands context.
Derivations
A derivation is a typed expression that says how a property’s value is computed, or when a link exists. Ontology checks it against the whole release graph but never evaluates it. In a binding, a registered transformation is what implements a derived property.
Expression kinds:
A
path starts at self_object, source or target and follows link steps outgoing or incoming. A custom function names an exact versioned implementation, never code or a URL.
Links also accept the earlier shape
{ "binding_state": "unbound", "match_mode": "all" | "any", "conditions": [...] }, where each condition compares a source property with a target property using equals or not_equals. Studio’s Derived relationship form writes this shape.
ontology_record
A Manage knowledge records.
A record set has
ontology_id, api_name and the ontology_release it is locked to. Each release of it records the record count, shard checksums and a manifest digest; it holds up to 50,000 records in shards of 500.
Bindings
The Ontology Binding app adds four kinds. All physical names are qualified-name strings of up to 512 bytes.
A query-backed relation declares
dialect (ansi, big_query, databricks, postgres, snowflake), sql (up to 64 KiB), optional default_catalog and default_schema, outputs (up to 256, each name, physical_type, nullable) and dependencies (up to 128). One binding release holds up to 5,000 mappings.
Interchange formats
Import and export go through versioned adapters.GET /ontology/v1/adapters lists them.
rdf,owlandskosalso needprofileand abase_iri: an absolutehttporhttpsIRI that ends in/or#, up to 2,048 characters.- An import document can be at most 8 MiB, and an RDF document at most 100,000 triples. Adapters never fetch remote imports or JSON-LD contexts.
- Every export and import preview returns a report with
lossless, and counts ofapproximations,omissions,unsupportedparts andgenerated_identities. Derivations survive RDF and OWL only through the native annotation, and the report says so. - Applying an import creates at most 100 definitions in one all-or-nothing step.
Release limits
Complete example
The retailcustomer object type, as it appears in an import document or Studio’s JSON view:
Validation diagnostics
Validation returns diagnostics withcode, severity (error or warning), resource, path, message and remediation, sorted so the same input always gives the same list. Errors block publishing; warnings don’t. Common codes:
Related
- Ontology concepts: what each kind is for.
- Publish an ontology through the API: import, validate and publish these definitions.
- Public API: request and response schemas for every operation.