-
Notifications
You must be signed in to change notification settings - Fork 0
PROV EARL GSN P PLAN
Purpose. Document the four W3C / published vocabularies that
flexo-rtmbuilds on — PROV-O, EARL 1.0, OntoGSN, and P-PLAN — the specific classes and properties we adopt from each, how they compose in the integration ontology, and the parsimony policy that keeps the assembledrtm.ttlunder the X5 acceptance ceiling of ≤ 2000 triples (Design Spec §9.A.5).
flexo-rtm introduces no novel epistemic vocabulary. Where the project needs a class or property for provenance, assertion outcome, assurance argument, or process model, it adopts the standard term and (where convenient) declares a thin rdfs:subClassOf / rdfs:subPropertyOf handle in the rtm: namespace. The contribution is the assembly, not the terms. See Alignment Strategy for the broader mapping policy and Layered Ontology for the directory layout that this page populates.
Specification. http://www.w3.org/ns/prov# — W3C PROV-O.
Role in flexo-rtm. PROV-O is the provenance spine of the cert artifact. Every oracle run, attestation event, simulation, symbolic analysis, Doors / Jama import, and audit emission is a prov:Activity. Every approver, automated agent, and computation engine is a prov:Agent. Every requirement, evidence artifact, attestation record, and assembled report is a prov:Entity. The PROV graph is what makes the cert artifact replayable (Verifiable Self-Certification) and what carries the external URI references — git commits, content hashes, OCI digests — that make verification local and federated (Design Spec §4.5, §4.6, D26).
Classes used (parsimony target: ~8).
-
prov:Activity— every executable step (oracle run, attestation event, simulation, symbolic analysis, import, audit, plan-execution stage) -
prov:Agent— every actor (engineer, computation engine, organization) -
prov:Entity— every thing that has provenance (requirement, evidence artifact, attestation, transcript, audit summary) -
prov:SoftwareAgent— superclass forrtm:ComputationEngine(the symbolic analyzer, the simulator, the oracle binary itself) -
prov:Organization— superclass for institutional approvers (per Design Spec §4.4 identity projection) -
prov:Person— superclass for individual approvers -
prov:Plan— the procedure / SOP / checklist a human attester followed (range ofrtm:followedProcedure, which is ardfs:subPropertyOf prov:hadPlan) -
prov:Bundle— for the cert artifact as a whole; lets us talk about provenance of the cert itself
Properties used (parsimony target: ~10).
-
prov:wasGeneratedBy(Entity → Activity) — every artifact points to the activity that produced it -
prov:wasAssociatedWith(Activity → Agent) — every activity points to the responsible agent -
prov:wasDerivedFrom(Entity → Entity) — derivation chains (e.g., a builtrtm.ttlfrom edit-source TTL plus imports; a subsystem requirement from a parent) -
prov:wasInformedBy(Activity → Activity) — one activity informed by another (an audit informed by the closure-rule validation it follows) -
prov:used(Activity → Entity) — every activity declares the entities it consumed -
prov:startedAtTime,prov:endedAtTime(Activity → xsd:dateTime) — timing for staleness checks (thestale-attestationSHACL shape) -
prov:atLocation(Activity → Location) — git commit, container digest, host -
prov:hadPlan(Association → Plan) — links activities to the SOP they followed -
prov:generatedAtTime(Entity → xsd:dateTime) — attestation timestamps
Why these and not more. Full PROV-O has ~30 classes and ~70 properties — most in the "expanded" category (qualified influence patterns). For v0.1 we keep only the "starting-point" terms; qualified-influence patterns are not required for v0.1 audit gates. See Parsimony Policy.
Specification. http://www.w3.org/ns/earl# — W3C Evaluation and Report Language.
Role in flexo-rtm. EARL is the assertion + outcome lattice. Every rtm:Attestation is an earl:Assertion. Every audit emission (a T1.orphan-requirement finding, a T4.unattested-adequacy finding, a structural-completeness PASS) is an earl:TestResult. The five-valued outcome vocabulary gives the oracle a principled vocabulary for partial-coverage states without inventing terms. This lets a v0.1 traditional-traceability report and a v0.1 attestation report use the same outcome shape even though one is structural and the other attestation-bearing.
Classes used (parsimony target: ~5).
-
earl:Assertion— superclass forrtm:Attestation(and its three subclassesSatisfactionAttestation,AdequacyAttestation,SufficiencyAttestationper Design Spec §4.3) -
earl:TestResult— the outcome record carried inside an assertion -
earl:Assertor— superclass forrtm:Engineer(the human or automated party making the assertion) -
earl:TestSubject— the thing being asserted about (a requirement, an artifact, artm:satisfiestriple) -
earl:TestCase— the criterion being evaluated (a coverage threshold, a SHACL shape, a guidance criterion)
Properties used (parsimony target: ~6).
-
earl:result(Assertion → TestResult) — the outcome record -
earl:subject(Assertion → TestSubject) — what the assertion is about -
earl:test(Assertion → TestCase) — what criterion the assertion answers -
earl:assertedBy(Assertion → Assertor) — who/what made the assertion (mandatory per Design Spec §4.3 named-approver rule) -
earl:outcome(TestResult → OutcomeValue) — the five-valued outcome -
earl:mode(Assertion → Mode) —earl:manual,earl:semiAuto,earl:automatic(superproperty ofrtm:attestationMode)
Outcome vocab adopted. earl:passed, earl:failed, earl:cantTell, earl:inapplicable, earl:untested. The audit module emits exactly these; no rtm:warning or rtm:partial.
Specification. https://w3id.org/OntoGSN/ontology# — an OWL rendering of the Goal Structuring Notation, the assurance-case dialect standardized by SCSC and used widely in safety-critical assurance (DO-178C, ISO 26262, IEC 61508 contexts). The published paper documents the class structure and the linking properties.
Role in flexo-rtm. OntoGSN gives us the assurance-argument shape for adequacy and sufficiency claims. Following the Hawkins–Habli Assurance Claim Point categorization the ADCS prototype already encodes (ADCS Prototype Lessons): adequacy is a gsn:Assumption, sufficiency is a gsn:Justification, satisfaction is a gsn:Solution. This is why rtm:AdequacyAttestation is declared rdfs:subClassOf gsn:Solution per Design Spec §4.3 and the GSN Integration plan. The rtm: namespace introduces no new epistemic concepts — it provides convenience handles for GSN patterns the prototype already validated.
Classes used (parsimony target: ~8).
-
gsn:Goal— a claim to be supported (a requirement, in our usage) -
gsn:Strategy— how a goal is decomposed (forward-trace strategy, backward-trace strategy, attestation-bearing strategy) -
gsn:Solution— the evidence offered for a goal (anrtm:Artifact; superclass forrtm:AdequacyAttestation) -
gsn:Justification— the rationale that supports a step (the "sufficiency" claim) -
gsn:Assumption— what the argument depends on (the "adequacy" claim) -
gsn:Context— stable context the argument is set within (project, mission, aspect) -
gsn:AwayGoal— for cross-graph references when an argument cites a goal proved elsewhere -
gsn:Module— for partitioning the argument (one module per certification scope)
Properties used (parsimony target: ~6).
-
gsn:supports(Solution → Goal) — the basic argument edge -
gsn:inContextOf(any → Context) — context binding -
gsn:byJustification(any → Justification) — sufficiency hook -
gsn:byAssumption(any → Assumption) — adequacy hook -
gsn:isDecomposedBy(Goal → Strategy) — argument decomposition -
gsn:hasModule(Argument → Module) — modular structure
Why GSN and not a homegrown adequacy / sufficiency type? The ADCS prototype already validated the pattern; GSN is the lingua franca of safety-critical assurance; importing the shape (with parsimony extraction) costs ~50 triples. See D15 in Design Spec §10.
Specification. http://purl.org/net/p-plan# — the PROV-Centric ontology for representing scientific workflows and plans. P-PLAN extends PROV-O so a p-plan:Activity is a prov:Activity and a p-plan:Plan is a prov:Plan. It adds the layer PROV-O lacks: a process model that says "these are the steps, in this order, with these input variables" — separate from any single execution of that plan.
Role in flexo-rtm. P-PLAN gives us the prospective process model of the oracle's pipeline: one p-plan:Step per pipeline stage (assembly, structural materialization, evidence binding, attestation collection, closure-rule validation, audit, certification emission). Each oracle run produces one p-plan:Activity per stage, linked to its p-plan:Step via p-plan:correspondsToStep. The plan TTL is content-addressed; the activities are timestamped executions. This makes the construction process itself queryable — a reviewer can ask "did this cert artifact follow plan v3 or v4?" and get a deterministic answer.
Classes used (parsimony target: ~5).
-
p-plan:Plan— the named process model (e.g.,rtm:OraclePlanV1) -
p-plan:Step— a step in the plan (one per pipeline stage) -
p-plan:Activity— an execution of a step (subclass ofprov:Activity) -
p-plan:Variable— typed input / output slot in the plan -
p-plan:Bundle— for grouping activities of one plan execution
Properties used (parsimony target: ~5).
-
p-plan:isStepOfPlan(Step → Plan) — step membership -
p-plan:hasInputVar,p-plan:hasOutputVar(Step → Variable) — step interface -
p-plan:correspondsToStep(Activity → Step) — execution back-reference -
p-plan:isPrecededBy(Step → Step) — step ordering -
p-plan:hasInputVarBinding(Activity → Variable) — execution-time variable resolution
Why P-PLAN and not just PROV. PROV-O has prov:Plan but no notion of a step in a plan that an activity corresponds to. The ADCS prototype's plan.ttl already uses P-PLAN; v0.1 adopts it so the same tooling reads both. P-PLAN is the smallest standardized addition that closes the prospective-vs-retrospective gap.
The four vocabularies are designed to overlay cleanly. A single fact in the cert artifact typically touches three of the four:
-
Every oracle run is a
prov:Activitytyped asp-plan:Activitylinked to itsp-plan:Stepin the plan. Theprov:wasAssociatedWithedge points at the engine (rtm:ComputationEngine, anrdfs:subClassOf prov:SoftwareAgent). Theprov:usededges point at the input entities. Theprov:wasGeneratedByedges from output entities point back. This is the PROV / P-PLAN layer. -
Every attestation is a
rtm:Attestationtyped asearl:Assertionwith mandatoryearl:assertedBy(artm:Engineer,rdfs:subClassOf earl:Assertor + prov:Agent),earl:subject(thertm:satisfiestriple under attestation, or a guidance criterion),earl:test(the criterion being evaluated), andearl:resultcarrying anearl:outcomefrom the five-valued lattice. The attestation is also aprov:Entityandprov:wasGeneratedByan attestationprov:Activity(the moment the human clicked "approve"), giving it full provenance. -
Adequacy and sufficiency claims use the GSN Solution + Justification pattern.
rtm:AdequacyAttestationisrdfs:subClassOf gsn:Solutionand carries agsn:byJustificationlink to the engineer's stated rationale.rtm:SufficiencyAttestationcarries agsn:byAssumptionlink to the engineer's stated modeling assumptions. Per Design Spec §4.3 and GSN Integration, the prototype's encoding becomes the v0.1 normative pattern. -
All of it wrapped in PROV provenance. Each activity has a
prov:startedAtTime,prov:atLocation(git commit + OCI digest),prov:hadPlan(the SOP the engineer followed), andprov:wasAssociatedWith(the named approver IRI, evaluated against the identity projection of Design Spec §4.4).
Net effect. A single rtm:AdequacyAttestation carries up to four standard-vocabulary type tags: earl:Assertion, gsn:Solution, prov:Entity, plus the rtm: subclass. Any EARL, GSN, or PROV consumer can read the cert artifact correctly without knowing anything about rtm:.
The vocabularies above are not loaded wholesale at runtime. The pipeline is:
-
Vendored full TBox files in
ontology/imports/(read-only). One file per vocab:prov-o.ttl,earl.ttl,ontogsn.ttl,p-plan.ttl. Pinned by content hash; never modified in place. Used for build-time validation and offline reproducibility. -
Build-time extraction. Either SPARQL
CONSTRUCT(Python path,rdflib, default) or ROBOTextract --method MIREOT(Java path, opt-in viamake ontology-robot) produces a minimal subset per vocab:ontology/parsimony/extracts/<vocab>-subset.ttl. The extraction is deterministic given the same TBox + same kept-term list. -
manifest.yamldocuments exactly which classes / properties are kept and why. This is the audit trail: every external term in the assembled ontology has a justification row inmanifest.yaml. Reviewers reproduce the build, diffmanifest.yaml, and see what the parsimony review approved. -
Combined extract subsets contribute ≤ ~1000 triples to the assembled
rtm.ttl. Targets per vocab: PROV ~400, EARL ~150, OntoGSN ~300, P-PLAN ~150. The remaining headroom (assembledrtm.ttl≤ 2000 triples per X5 in Design Spec §9.A.5) is for thertm:core, alignment, and OSLC bindings.
X5 enforcement. tests/conformance/test_ontology_parsimony.py counts triples in the built rtm.ttl and fails the build if the total exceeds 2000. Anything that pushes us close triggers a parsimony review of manifest.yaml. The discipline is structural, not aspirational. See Parsimony Policy for the review process and Attestation Infrastructure in v0.1 for what the kept terms actually enable.
- Parsimony Policy — the parsimony review process and the X5 ceiling
-
Alignment Strategy — how external vocabularies map to
rtm:and to each other - GSN Integration — the Solution / Justification pattern for adequacy / sufficiency
-
Layered Ontology — directory layout (
imports/,parsimony/,core/,alignment/,profiles/,shapes/) - Attestation Infrastructure in v0.1 — what the EARL + GSN + PROV composition delivers in v0.1
- Design Spec — §4.3 (attestation model), §4.4 (identity), §6 (ontology architecture), §9.A.5 (X5)
- Flexo Git Coexistence
- ADCS Prototype Lessons
- MVC Pattern from RIME TRL ANT
- Human-AI Accountability
- Multi-Agent Discourse Graph Precedent
- OSLC RM and QM Review
- INCOSE V2 Review
- OMG SysMLv2
- PROV EARL GSN P-PLAN
- Dragon Architecture and Mission Enterprise
- Traditional Forward and Backward Analysis
- Attestation Infrastructure in v0.1
- Identity Boundaries and Policy Projections
- External URI References
- Signed Envelopes and Established Standards
- Aspect Coverage with Adequacy and Sufficiency
- Federated Audit and Composition
- Certification Predicate
- Gap Taxonomy
- Quantitative Outcomes
- Engineering Lifecycle Stages (v0.2)
- Topological Framework Future Work (research phase)
- Vertices Edges Faces (research phase)
- Three-Layer Architecture
- Operational Layer UX Discipline
- Storage Layer Flexo Conventions
- Analysis Layer Scope Algebra
- OSLC Roundtrip Acceptance
- Identity Adapter Contract
- Flexo REST Binding
- SysMLv2 Ingestion Contract
- External URI Rules
- Signed Envelope Shapes
- Parsimony Manifest
- Lossless Roundtrip Definition
- Vendor Extension Carry-Through
- OSLC RM Adapter Contract
- OSLC QM Adapter Contract
- ADR Template
- ADR-001 Foundations First Approach
- ADR-002 SysMLv2 Anchoring
- ADR-003 Topological Framework Documented as Future Work
- ADR-003a v0.1 Ships Traditional Analysis Only
- ADR-004 Quantitative Certification Outcome
- ADR-005 Adequacy and Sufficiency as Guidance Subtypes
- ADR-006 Three-Layer Architecture
- ADR-007 Scope as First-Class RDF Resource
- ADR-008 Repo Name and Org Transfer Plan
- ADR-009 Two-Repo Strategy
- ADR-010 OSLC-RM and OSLC-QM in v0.1
- ADR-011 Lossless Criterion A plus C
- ADR-012 Direct RDF Properties over Reified Edges
- ADR-013 Simplicial Complex as Derived View When Built
- ADR-014 Parsimony Layer Build-Time Extraction
- ADR-015 GSN Adoption for Adequacy and Sufficiency
- ADR-016 Composable SHACL Profiles
- ADR-017 knowledgecomplex as Optional Extras
- ADR-018 V minus F Invariant Deferred with Topological Framework
- ADR-019 Derived Binary View from Quantitative Metrics
- ADR-020 Vocabulary Alignment with Zargham 2026
- ADR-021 Three Attestation Subclasses Ship in v0.1
- ADR-022 External URI References as Open-Source Foundation
- ADR-023 Cryptography by Composition of Battle-Tested Standards
- ADR-024 Identity by Thin Projection of External Sources
- ADR-025 Reproducibility is Structural and Local
- ADR-026 Cryptographic Agility via Algorithm Profiles
- ADR-027 Bit-Exactness vs Numerical Tolerances Are Both First-Class
- ADR-028 Scope-Level Adequacy and Sufficiency for Federated Audit
- ADR-029 Engineering Lifecycle Stages as Scope Metadata
- ADR-030 Polycentric ASOT Authority Model
- ADR-031 Attestation Status Pass Fail Deferred Deprecated
- ADR-032 Methodology Agnosticism as Foundational Axiom
- ADR-033 Generalized ASOT Principle for All Identified Things