Status: Accepted
Date: 2026-09-25 (proposed), 2026-09-25 (accepted, item 3 rewritten on acceptance)
Related: ADR-A12 (identity and derivation-authority model), ADR-A13
(dataset, graph-role and provenance model), ADR-A22 (MORK governance and
Foundation alignment), ADR-A26 (provenance chain completeness), ADR-A65
(provenance model, Proposed), ADR-A91
Unit: applied-ontology-readiness
Foundation imports PROV-O and aligns its own evidence terms with it
(fnd:Evidence ⊑ prov:Entity, an attribution property under
prov:wasAttributedTo). The derived records that LATTICE’s compilers write
are not aligned:
srf:DerivedArtefact, srf:GeneratedSurface,
srf:ReadSetEntry and srf:LawDischarge, with no PROV-O superclass.exe:ExecutablePlan, exe:GeneratedArtefact,
exe:derivedFromEligibilityNode, exe:derivedFromQuantificationNode and
exe:compiledFromMapping, and imports MORK only.An applied ontology that records its own provenance in PROV-O cannot ask one question, such as “what was this decision derived from”, across its own records and the artefacts LATTICE generated for it.
fnd:DerivedArtefact ⊑ prov:Entity and
fnd:DerivationRun ⊑ prov:Activity. ADR-A12’s derivation-product kinds
(inferred, validated, materialised, projected, indexed, generated,
compiled, decision or execution record) become a mechanism enumeration in
vocab/foundation-vocab.ttl. Links use PROV-O properties directly
(prov:wasGeneratedBy, prov:used, prov:wasDerivedFrom). Foundation
declares no parallel properties.srf:DerivedArtefact ⊑
fnd:DerivedArtefact. Where srf:ReadSetEntry fits PROV-O’s qualified
usage pattern it is aligned, and the implementing slice records any part
that does not fit.exe:ExecutablePlan ⊑ prov:Entity,
exe:GeneratedArtefact ⊑ prov:Entity, and exe:derivedFromEligibilityNode,
exe:derivedFromQuantificationNode, exe:derivedFromVocabularyNode and
exe:compiledFromMapping ⊑ prov:wasDerivedFrom. Direct alignment was
accepted on the condition that it imposes no functional restriction on
implementors. PROV-O declares no functional or inverse-functional property,
so it imposes none.prov:Entity. PROV-O declares prov:Entity
disjoint with prov:Activity, so an implementor must not also type such a
node as an activity. This is the one restriction the alignment adds.applied-ontology-readiness AOR-12, AOR-13)srf:ReadSetEntry is not aligned. PROV-O’s prov:Usage qualifies an
activity’s use of an entity, while a read-set entry hangs off the derived
artefact itself, so the two patterns do not match.fnd:derivationKind is not functional. ADR-A12 describes one kind per
product, but nothing here needs a reasoner to enforce it.fnd:Inferred, fnd:Validated, fnd:Materialised,
fnd:Projected, fnd:Indexed, fnd:Generated, fnd:Compiled and
fnd:DecisionRecord.