ADR-004 — Ontology Modularization¶
Status: Accepted
Date: 2026-07-04
Proposed by: Architecture Board
Supersedes: ADR-004 (Proposed — Ontology Module, rejected)
Context¶
UC-BoK now has a normative ontology layer defined in specifications/007-ontology.md.
This single file covers Business Object ontology, Aggregate Root semantics, Entity semantics, Value Object semantics, Lifecycle, Identity, Invariants, Referenceability, Relationships, Graph eligibility, and Catalog authoring rules.
As the ontology expands to cover Events, Processes, Capabilities and APIs, this file will grow into an unmaintainable monolith.
A previous proposal (rejected) suggested creating a new top-level ontology/ directory.
That proposal was rejected because:
ontology/has the same architectural responsibility asspecifications/.- Introducing it would create two top-level directories with identical roles, breaking ADR-002 Source of Truth Strategy.
- A top-level directory must represent an architectural responsibility, not a knowledge domain.
The correct solution is to modularize the ontology inside specifications/, following the same pattern as catalogs/business-objects/.
Decision¶
Replace specifications/007-ontology.md with specifications/007-ontology/, a directory of focused single-responsibility documents.
The specifications/ directory continues to be the single normative location. The ontology becomes a module within it, not a peer of it.
Structure¶
specifications/007-ontology/
README.md — module index, scope, foundational principles
business-object.md — Business Object ontology and catalog authoring rules
aggregate-root.md — Aggregate Root semantics
entity.md — Entity semantics
value-object.md — Value Object semantics
identity.md — Identity and Canonical Identity
lifecycle.md — Lifecycle semantics
invariants.md — Invariant semantics
referenceability.md — Referenceability rules and graph eligibility
Future additions (not in scope of this ADR):
Governing Principle¶
This decision is governed by the Top-Level Directory Rule defined in ADR-001:
A top-level directory represents an architectural responsibility. It must never represent a domain of knowledge. Knowledge domains are organized inside their architectural layer.
Consequences¶
Positive¶
specifications/remains the single normative location — ADR-002 intact.- Each ontology concept is independently referenceable and evolvable.
- Scales without top-level proliferation.
- Consistent with the
catalogs/business-objects/precedent.
Negative¶
- Requires migrating
specifications/007-ontology.md. - Requires updating references in
schemas/README.mdand.context/.
Neutral¶
specifications/retains all other specification documents unchanged.- No
maketargets or scripts are affected.
Implementation¶
- Create
specifications/007-ontology/directory. - Split
specifications/007-ontology.mdinto per-concept documents. - Add
specifications/007-ontology/README.mdas module index. - Update
schemas/README.mdreference. - Update
.context/current/references. - Remove
specifications/007-ontology.md. - Run
make checkto confirm nothing is broken. - Atomic commit.
ONT-004 (Semantic Constraints) and ONT-005 (Relationship Semantics) target specifications/007-ontology/ as their home.