Skip to main content

The Operational Ontology

SynapseCommand Operational Ontology v0.1.0 — Draft. Published from this repository as a draft; not submitted to, reviewed by, or approved by any external standards body.

The ontology answers what does this term mean. It is a terminological vocabulary — classes, relationships, hierarchy, labels, definitions and stable identifiers — and nothing else. No operational instances, no inference rules, no reasoning.

That restriction is the point rather than an omission. A term is not an event type and an event type is not a record shape:

AnswersGoverned by
CDMwhat shape is this recordthe canonical objects and their schemas
Operational Ontologywhat does this term meanthe governed term space, here
SC-OESwhat kind of assertion is thisthe specification and the event registry

One authority, two derived files​

ontology/*.ttl AUTHORITY — eight Turtle modules
ontology/context.jsonld derived — the developer projection
…/synapse_cdm/registry/sc_oes/ontology_terms.json derived — what the runtime reads

Neither derived file is hand-maintained. Both are written by a generator, and a test in the suite fails the build if either has drifted from the Turtle. The runtime never parses Turtle and never loads the JSON-LD context: it reads the packaged JSON, which requires no network and no RDF library. rdflib exists in the test extra and nowhere else.

The eight modules are core, pnt, air, logistics, isr, c2, mission and decision. No module imports another; a parent in another module is referred to by identifier, which keeps each file readable on its own and keeps an import closure out of the derived artefacts.

Identifiers​

tag:synapsecommand.com,2026-09-06:ontology:<module>:<Term>

A tag: URI, because a term identifier is not a location and should not imply that resolving it over HTTP is meaningful. module matches [a-z][a-z0-9_]*, Term matches [A-Z][A-Za-z0-9]*, and the authority date is fixed for the lifetime of the v0.1 namespace — it is not derived from a clock and does not move for a later version.

from synapse_cdm import oes_registry

oes_registry.get_ontology_term(
"tag:synapsecommand.com,2026-09-06:ontology:pnt:GNSSReceiver")
oes_registry.list_ontology_terms()

Third-party terms are allowed, and are not silently adopted​

A producer may attach an identifier from somebody else's vocabulary. SC-OES neither maps it onto a governed term nor infers anything from it: dimension E reports what it found, and mapping a third party's vocabulary onto this one is a decision a person makes in a governance process, not something a validator does on the wire.

Maturity​

Every term in v0.1.0 is EXPERIMENTAL — the entry maturity the governance process sets for a new definition. No term claims STABLE. This axis is the ontology's own and is independent of the event registry's: an event type may be DRAFT while the ontology class its registry entry points at is EXPERIMENTAL, because the two govern different things.

Adding a term is a governance act: add it to its module, regenerate both derived files, and commit all three together. The registry may never be hand-edited to carry a term the ontology does not define — and cannot be, because the drift gate would fail the build.