opda:ufoCategory and the upper-ontology layer: representation, markup, and quarantine
Context and Problem Statement
ADR-0044 Phase 5c (2026-06-15) promoted the UFO meta-category from documentary skos:scopeNote free-text to a structured opda:ufoCategory facet — declared an owl:DatatypeProperty (rdfs:range xsd:string), dereferencing at /pdtf/ufoCategory, asserted on 39/40 classes and 47 schemes. The operator asked four questions: should the value be a string literal or a resource (IRI); how should it be marked up (predicate typing + graph placement); how should the web pages / documentation present ufoCategory and the broader upper-ontology layer; and what other upper-ontology / modelling-framework metadata should be marked up?
The pre-flight scope check (session-041) surfaced a tension the questions did not name. Phase 5c shipped one day after ODR-0030 / session-040, whose Rule 1 ruled that opda:ufoCategory tags “remain annotation-graph-only … the ODR-0029 quarantine is load-bearing — retention lapses if it is breached,” whose Rule 7(b) required a three-part DOLCE-lineage disclosure on the predicate, and whose Devil’s Advocate (Cagle) holds a live re-open trigger (i): “the ufoCategory layer is ever made reasoned-over.” Three corpus facts were verified at file:line by the Queen and three panellists:
- The quarantine is breached in the shipped bytes. All ~87
opda:ufoCategorytriples — and the predicate declaration (opda-classes.ttl:90) — sit in the non-annotation (reasoned-union) graphs (opda-classes/agent/claim/property/descriptive/governance/transaction.ttl+opda-vocabularies.ttl);opda-annotations.ttlcarries zero. - The three-graph CI gate is blind to this class of breach.
three_graph_test.py’s five checks forbidsh:in annotations,owl:imports/advisory predicates in shapes, and verifysh:targetClassresolution — none forbids an inert predicate in the classes graph. The breach ships green; Knublauch’s session-040 standing condition is, for this predicate, unenforced. - The Rule 7(b) DOLCE disclosure never shipped on the predicate (
opda:ufoCategory’sscopeNote,opda-classes.ttl:96, carries only “promotes … to a structured, queryable facet”). Per-class fragments exist; the consolidated predicate-level disclosure does not.
A secondary defect: the predicate does double duty over two incompatible value-spaces — the 9-term UFO endurant/perdurant axis on classes (Substance Kind, Relator, Role, …) and a different scheme axis (35× "Quale-in-Region", "Substance Kind label", "Phase label", …) already ruled register-deference by ODR-0030 Rule 2, where ungoverned strings have already drifted from ODR-0011 §8a’s own spec ("Substance Kind label" vs SubstanceKindLabel).
Decision Drivers
- The ODR-0030 quarantine is load-bearing and currently breached. Restoring it is the precondition for any other change; failing to restore it lapses ODR-0030’s retention by its own terms and fires Cagle’s Option-D revert.
- Inertness should be intrinsic, not contingent. ODR-0029’s shallow RDFS-Plus regime happens to entail nothing from a domain-less string property today, but Rule 1 / trigger (i) speak to placement in a graph that drives inference or SHACL, not to whether inference fires today.
- A category is an entity with identity, not a label (the formal-ontology reading) — and only a node OPDA controls can carry OPDA’s own definition, the DOLCE disclosure, and the OntoClean profile.
- Reuse before mint (the pragmatic reading) — gUFO already publishes the category IRIs; OPDA must not duplicate them, only align to them.
- Dereferenceability / ontology-as-web-pages (ADR-0044) and the honesty doctrine (“UFO-informed”, not “UFO-grounded with guarantees” — ODR-0030 Rule 7).
- Scope discipline — the artefact ships the decisions its modelling methodology produced, not the methodology itself.
Considered Options
- Option A (chosen) — Enrich by reference and disclosure under a restored quarantine. Make the value a locally-minted SKOS concept (
opda:UFOCategoryScheme)skos:closeMatch-aligned to the gUFO IRI; split the predicate off the register-deference scheme axis; retypeowl:AnnotationProperty, relocate every tag + the declaration toopda-annotations.ttl, and add a sixth three-graph CI gate; present read-side web pages; ship the Rule 7(b) disclosure; triage further markup narrowly. - Option B — Keep the bare
xsd:string(governed string + SHACLsh:in). Cagle’s floor. Rejected as the standing decision: a definition-less, typo-prone literal discards the category’s identity, its OntoClean signature, and the disclosure surface, and the typo-drift has already occurred — but recorded as held-as-live dissent (Cagle), withdrawal-conditioned on a second consumer needing inter-categoryskos:broader/mapping edges. - Option C — Direct
gufo:IRI reference (no local mint). Allemang’s reuse position. Rejected as the standing decision: a foreigngufo:IRI cannot bear OPDA’s ownskos:definition/ DOLCE disclosure / OntoClean profile, and a direct binding risks re-importing gUFO’s OWL axioms (which the gUFO authors show are not faithfully OWL-2-DL-expressible — ODR-0030 Rule 3) — but recorded as held-as-live dissent (Allemang). Theskos:closeMatchedge preserves the reuse he seeks while keeping OPDA’s node as the annotation carrier. - Option D — Full enrichment as framed (mint + gUFO alignment + mark up all upper-ontology metadata, in place). Rejected: it leaves the quarantine breached and materialises the methodology (OntoClean meta-properties, the Relator-founds edge, UFO-L correlativity) the artefact should only use — the entrenchment session-040 warned against.
Decision Outcome
Chosen option: “Option A — enrich by reference and disclosure under a restored quarantine”, because it is the only option that satisfies the binding ODR-0030 quarantine (Rule 1) and gives the categories the identity, definitions, alignment, and dereferenceable web presence the operator asked for — without minting duplicates of published gUFO terms or moving any UFO-shaped triple into a graph that drives inference or SHACL.
The session-041 council (Queen Allemang, DA Cagle + Guizzardi, Guarino, Baker, Gandon; agent-fan-out with live SendMessage cross-talk) reached this on a constructive split. The verdict’s spine is that the quarantine restoration (Rule 2 below) is the precondition for every other disposition — the council adopts enrichment only bundled with, and downstream of, the fix Cagle demanded, which is what keeps his session-040 Option-D revert dormant. In continued cross-talk the apparent Q1 split (mint-as-value / direct-gUFO-reference / string) resolved into one artefact graph: all six accept that a quarantined category resource bears the gUFO alignment (a real category-level fact that no string-plus-facet reconstructs), leaving only the predicate range — a governed xsd:string + sh:in label (the DA + OntoClean-authority convergence) or value-promotion to the concept IRI — as a quarantine-equivalent residual for the operator. The alignment edge never reaching the reasoner is the absolute, co-signed red line.
Consequences
- Good, because it converts ODR-0030’s promise of quarantine into an enforced quarantine:
owl:AnnotationPropertymakes inertness intrinsic (OWL 2 §10.1 — no model-theoretic consequence) and the sixth CI gate closes the silent blind spot, so Knublauch’s standing condition holds for real rather than on paper. - Good, because the categories gain a governance surface (definitions carrying the OntoClean signature + the DOLCE lineage), dereferenceable
/pdtfpages (ADR-0044), andcloseMatchalignment to gUFO — without OPDA minting duplicates of published terms or claiming an identity it cannot warrant. - Good, because splitting the predicate retires the double-duty defect: the register-deference scheme axis (ODR-0030 Rule 2) stops masquerading as UFO categorial work, and the typo-drift that ungoverned strings already produced is closed.
- Bad (accepted), because it is net-new minting (a scheme + nine
closeMatchedges) on a layer session-040 called “optional, droppable” — Cagle’s held-as-live dissent (Option B) is preserved with its re-open trigger, and the work is justified only while the quarantine + CI gate hold. - Neutral, because the highest-value enrichment Guarino identified — structured OntoClean meta-property markup — was a clean 3–3 split routed onward; session-042 has since resolved it as conditional adoption (mark up iff the canonical-check CI gate ships atomically; scoped ±R/±I; engineering → ADR-0046).
Confirmation
- Quarantine restored + CI-enforced: after re-emission,
ASK { GRAPH opda:classes { ?s opda:ufoCategory ?o } }(and the per-module class graphs) returnsfalse; the declaration and allopda:ufoCategorytags resolve only inopda-annotations.ttl. A sixth check is added tothree_graph_test.pyto enforce it; the existing byte-identity and three-graph gates stay green. - Predicate typing:
opda:ufoCategory a owl:AnnotationProperty(nordfs:range xsd:stringonce the value is an IRI); noopda:ufoCategorytriple appears in the SHACL instance-validation union. - Disclosure shipped: the Rule 7(b) three-part DOLCE disclosure is present on the predicate
scopeNote; upper-ontology surfaces read “UFO-informed, not UFO-grounded”; badges read “classified-under”, never “is-a”. The/pdtf/ufoCategoryterm page itself was an execution gap (the site-model generator extracted every resource kind exceptowl:AnnotationProperty, so the minted URI 404’d against this criterion) — realised per Council session-043 (2026-06-15; Q4 6–0–0, Q5 5–0–1): the generator surfacesowl:AnnotationPropertyunder a distinctentryKind: 'annotation'(never folded into the reasoned'property'arm), and the page leads with an inert badge (“documentary; no logical consequence; never reasoned over”, OWL 2 §10.1) + the disclosure as its spine, thecloseMatch→gUFO shown as a mapping that never reaches the reasoner. Dereference + disclose is the honest discharge of R7b (Gandon); inertness and dereferenceability are orthogonal. - The decision is
proposed; the operator ratifies adoption (and the two open calls in §Rules R7). The council shapes the proposal, not its adoption.
Rules
Dispositions routed from session-041 (all status: proposed). R2 is the precondition for R1, R4, R5.
- A quarantined category resource for the gUFO alignment; the predicate range is a residual; split the register axis (Q1 — converged in continued cross-talk, session-041 §Post-positions convergence). A governed
opda:UFOCategorySchemeofskos:Concepts is the home for the gUFO alignment: each category concept bearsskos:exactMatch/closeMatchto its gUFO IRI (gufo:Kind,gufo:Relator,gufo:Role,gufo:RoleMixin,gufo:Event, …), askos:definition(its OntoClean signature), and the DOLCE lineage (R4). All six voices accept this resource exists — the gUFO mapping is a real category-level fact “that no string-plus-facet reconstructs” (Guarino); it is the IAO/BFO Rule 4/5 referenced-not-imported mechanism applied one layer down. The one residual (operator-decidable, R7b) is the range ofopda:ufoCategoryitself: either a governedxsd:string+sh:inlabel, the concept reached as a mapping anchor (the DA + OntoClean-authority convergence — predicate consumers stay simple), or the concept IRI as the value (value-promotion). Both are quarantine-equivalent and queryable. Never a directgufo:reference as the value, and never an object-levelrdf:type. The register-deference scheme axis (35×"Quale-in-Region"etc., ODR-0030 Rule 2) is split off to a documentary string or a distinct predicate and stops presenting as “UFO doing categorial work.” - Restore the quarantine, atomically — the precondition (Q2, 5–1–0 → 6–0 on the landing; “relocate AND gate, atomically”, co-signed by the DA + Guarino). (a) Retype
opda:ufoCategoryasowl:AnnotationProperty(inert by OWL 2 §10.1/§5.5 — notowl:DatatypeProperty, notowl:ObjectProperty; an annotation property takes a string or an IRI value and carries no model-theoretic consequence either way). (b) Relocate the declaration and all ~87 per-term tags from the reasoned-union files intoopda-annotations.ttl. (c) Add a sixth check tothree_graph_test.py:ASK { GRAPH opda:classes { ?s opda:ufoCategory ?o } } → FALSE(generalised to the advisory-predicate family). (a)–(c) ship together — relocating without the gate just moves the breach; gating without relocating fails today. Absolute red line: the category resource’sexactMatch→gUFO edges (R1) live behind this gate, referenced-not-imported on theprov:Entityprecedent, never reasoned over — anexactMatch-to-gUFO edge in a graph the ODR-0029 regime closes over (rdfs:subClassOf) is the Q2 No. - Govern the value-space without re-breaching (Q2c). A SHACL
sh:in/scheme-membership constraint is permitted only as a tag-level editorial guard on the predicate’s own value and must not enter the main instance-validation SHACL union, nor key any constraint on tagged instances’ object-level structure (else it re-fires trigger (i) into SHACL). Once the value is a scheme concept, scheme membership is the governance. - Web pages as read-side projections + ship the disclosure (Q3, 5–0–1 FOR). Keep
/pdtf/ufoCategory, the per-category pages, and per-term badges as read-side SPARQL projections over the annotation graph that render whether the value is a string or a concept (so they cannot entrench). Ship the ODR-0030 Rule 7(b) three-part DOLCE disclosure (the categories are UFO’s; UFO’s quality categories descend from DOLCE’s Quality/Quale/Region — Masolo et al., WonderWeb D18, 2003; the majority of tagged properties fall under that DOLCE-derived apparatus) on the predicatescopeNoteand the term page. Lead every upper-ontology surface with “UFO-informed, not UFO-grounded”; badges read “classified-under”, never “is-a”;/ontology/foundational-ontologystays the long-form hub. - Markup triage for the rest (Q4, 4–2–0 per-candidate). Mark up: the IAO crosswalk (ODR-0030 Rule 4, already adopt-now; referenced-not-imported, annotation-graph) and the bounded nine-to-nine gUFO
closeMatchedges (from R1; never a per-class explosion). Keep as-is: the gUFOrdf:typemarkers (ADR-0034; audit confirmed clean — the loneopda-descriptive.ttlgufo:is ascopeNotestring literal, not a triple). Decline as inert markup: the Relator-founds-RoleMixin edge (already realised as class topology —opda:numberOfSellerson theProprietorshipRelator) and UFO-L Hohfeldian correlativity (prose now; object-level SHACL reserved for when conveyancing use-cases demand — its own ODR; do not dress a biconditional axiom as an inert annotation). - This record enforces — does not amend — ODR-0030 Rule 1 and Rule 7(b). Both were found breached in the committed corpus; R2 and R4 realise them. ODR-0030’s text stands.
- Two open operator calls + one (now-resolved) split. (a) OntoClean meta-property markup (Q4) — RESOLVED by session-042: conditional adoption. The held 3–3 converged onto one condition. Mark up the OntoClean meta-properties (±R/±I floor, + ±D where a Relator decision turned on it, never ±U — unity has adjudicated nothing in this corpus) as a SKOS-backed
owl:AnnotationPropertyvocabulary, on the subsumption lattice the check ranges over + its contrast set (not blanket-every-class, not only the contested leaves) — if and only if the canonical OntoClean check (find every −R type that is nonethelessrdfs:subClassOfsomething; IC-incompatible subsumption) ships atomically as a TBox-only CI meta-shape (the R3 tag-guard pattern, never instance-keyed). Engineering routed to ADR-0046: the tags and the consuming gate ship in the same commit or neither. If the operator declines the gate → REJECT-for-now (the per-categoryskos:definitionsignatures already shipped by ADR-0045 + the ODRs are the record). Envelope unchanged (owl:AnnotationProperty, annotation-graph-only,sh:in-governed, never reasoned / instance-SHACL-keyed). (b)exactMatchvscloseMatchper category may be tightened toskos:exactMatchwhere the identity genuinely holds; default iscloseMatch. - Anti-patterns (do NOT). Leave any
opda:ufoCategorytriple in a reasoned/SHACL graph; type itowl:DatatypeProperty/owl:ObjectProperty; reference agufo:IRI directly as the value or as anrdf:type; mint SKOS concepts for the register-deference scheme axis; put aufoCategorysh:inshape in the instance-validation union; ship category web pages that require minted IRIs to render or that read as a grounded/axiomatised UFO commitment; or materialise OntoClean/Relator-founds/UFO-L methodology as standing graph content absent a named queryable consumer + the Rule-4 quarantine.
Vote and Dissent
Council session-041 (Full Council; agent-fan-out with live SendMessage cross-talk). Per-question tally:
| Q | Verdict | Tally |
|---|---|---|
| Q1 string vs resource | REVISE — converged: a quarantined category resource bears the gUFO alignment; predicate range (string+sh:in vs concept-IRI) is the residual; split the register axis | 4–2–0 FOR resource (→ converged; see session-041 §Post-positions convergence) |
| Q2 markup & graph placement | REVISE — owl:AnnotationProperty; relocate all tags+declaration to opda-annotations.ttl; 6th CI gate; sh:in tag-guard only | 5–1–0 (→ 6–0 on the landing) |
| Q3 web pages / IA | AFFIRM/REVISE — read-side projections; ship the Rule-7(b) DOLCE disclosure; “UFO-informed” verb | 5–0–1 |
| Q4 what else to mark up | REVISE — per-candidate triage (IAO + bounded gUFO yes; gUFO types as-is; Relator-founds/UFO-L declined) | 4–2–0 |
Held-as-live dissent (Cagle, DA — carried + sharpened from session-040). OntoClean is separable from UFO; the foundation vocabulary is droppable; the layer is optional, not harmful — and trigger (i) has fired in the committed corpus. Re-open trigger: if enrichment ships (mint, gUFO edges, pages) without first re-imposing the annotation-graph quarantine + the CI gate (Rule 2), the retention has lapsed by ODR-0030’s own terms and Cagle reverts to the Option D push (retire the UFO vocabulary; keep OntoClean-as-judgement + SHACL + SKOS). The verdict is constructed to keep this trigger dormant. Q1 (Cagle) — WITHDREW to the shared position (§Post-positions convergence): conceded the gUFO alignment must live as a quarantined resource; holds only that opda:ufoCategory’s range stays a governed xsd:string + sh:in. Non-negotiable: no exactMatch→gUFO edge reaches the reasoner.
Q1 (Allemang, Queen) — substantially accommodated. Preferred direct gufo: IRI reference over local minting (reuse-before-mint); the convergence accommodates it — the category resource’s skos:exactMatch/closeMatch edge preserves the gUFO link, and the residual option of keeping opda:ufoCategory’s range a string avoids minting a concept as the value.
Q4 — OntoClean meta-property markup (was a held 3–3) — RESOLVED by session-042. The Reduced Council (Queen Kendall; DA Baker — WITHDRAWN on the gate condition; Guarino FOR; Allemang FOR-iff-gated) converged on conditional adoption: mark up iff the canonical-check CI gate ships atomically with the (scoped ±R/±I, never ±U) tags. Decisive finding: the per-category OntoClean signature already ships in ADR-0045’s UFOCategoryScheme skos:definitions, so the question reduced to “also per-type, for a machine” — answered “yes, iff a machine reads it.” Engineering → ADR-0046; if the gate is declined, REJECT-for-now with the re-open trigger: a named consumer needs the per-type vector as queryable data.
Amendments
- 2026-06-15 — RATIFIED
proposed→accepted(operator). The operator ratifies adoption of R1–R6. Basis: the engineering realisation is shipped and green —opda:ufoCategoryisowl:AnnotationProperty, the tags are relocated toopda-annotations.ttl, theopda:UFOCategoryScheme+ DOLCE disclosure are emitted, and the sixth three-graph CI gate (now seven checks) guards the quarantine (ADR-0045); session-044 separately re-confirmed the binding prior ODR-0030 sound/unchanged. R7 open calls (thegufo:direct-reference vs local-mint residual, and the predicate-range string-vs-concept choice) are recorded as still-open operator residuals, not blockers. Q4 / ADR-0046 (OntoClean per-type markup) is NOT carried by this ratification — it remains a separate conditional operator decision (ship the atomic CI gate, against DA Baker’s live REJECT-if-ungated dissent) and staysproposed.
- Engineering realisation: ADR-0045 — the emitter relocation + retype, the sixth three-graph CI gate, the
opda:UFOCategorySchemeemission, the DOLCE disclosure, and the byte-identity re-pin that realise this ODR (and correct ADR-0044 Phase 5c). - Council transcript: session-041 — Representing
opda:ufoCategoryand the upper-ontology layer (full per-question dialectic, the verified breach finding, the post-positions convergence, tally + DA scorecard). - Binding prior: ODR-0030 (UFO-as-lens scoped to the Relator spine; Rule 1 quarantine; Rule 2 register-deference relabel; Rule 7 honesty + DOLCE disclosure) — this record enforces its Rule 1 + Rule 7(b).
- Depends on / scoped by: ODR-0029 (entailment/validation boundary; the shallow regime), ODR-0027 (classification-over-inheritance —
ufoCategoryis an annotation facet, not a subclass tree), ODR-0011 §8a (the scheme-level UFO axis), ODR-0004 §3a (three-graph separation + CI gates); ADR-0044 (ontology as web pages; this ODR + ADR-0045 correct its Phase 5c), ADR-0034 (the gated gUFO typing pass). - External citations: OWL 2 Web Ontology Language Structural Specification (W3C Rec, 2012) §5.5/§10 (annotation properties carry no logical consequence); SHACL Core (W3C Rec, 2017) §4.6.1 (
sh:in); SKOS Reference (W3C Rec, 2009) §10 (mapping properties) + SKOS Primer (W3C Note, 2009) §1.3; Guarino & Welty, “An Overview of OntoClean,” Handbook on Ontologies 2nd ed. (2009); Masolo, Borgo, Gangemi, Guarino & Oltramari, WonderWeb Deliverable D18 — DOLCE (2003); Almeida, Guizzardi, Sales & Fonseca, gUFO: A Gentle Foundational Ontology for OWL; Baker et al., “Key Choices in the Design of SKOS,” J. Web Semantics 20 (2013); Allemang, Hendler & Gandon, Semantic Web for the Working Ontologist 3rd ed. (2020).
Comments
Loading comments…
Sign in to post a comment