Skip to main content
Preview This page lists the fields of each Ontology definition kind as they appear in Studio’s JSON view, import documents, and release schemas. Every kind rejects unknown fields. For what each kind means, see Ontology concepts.

Common rules

Every definition belongs to one ontology through ontology_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, and struct 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

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, owl and skos also need profile and a base_iri: an absolute http or https IRI 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 of approximations, omissions, unsupported parts and generated_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 retail customer object type, as it appears in an import document or Studio’s JSON view:

Validation diagnostics

Validation returns diagnostics with code, 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: