The Data Usage and Processing Lineage Ontology connects what processing was intended, what processing occurred, and which conclusions about the resulting data are supported by evidence. It enables downstream data classifications to be traced through concrete processing lineage to the classifications and evidence on which they depend.
This ontology reuses DPV for processing and measure categories, PROV-O for execution history, and the Inferal Data Classification Ontology for classification records. It adds the terms needed to relate abstract contracts, actual data use and transformation, classification effects, lineage coverage, and evidence-backed assessments without treating any one of those as proof of another.
This is an unofficial 0.1 Editor's Draft maintained in the Inferal ontology repository. Public terms are drafts until release, but their IRIs are designed for stable publication under the Inferal ontology namespace.
Feedback should be sent to contact@inferal.com.
A classification system can state that a column contains email addresses and can record how that classification was detected or reviewed. Once the column is copied, hashed, aggregated, joined, encrypted, transmitted, or used as a filter, classification provenance alone cannot explain the downstream result. The source classification remains known, but there is no formal path through the processing event to a classification of the output.
Consider a customer email column classified as personal data. A scheduled process applies a keyed hash and writes tokens to an analytics table. The output is no longer a literal email address, but it can still single out the same customers and may remain linkable by a party holding the key. A useful governance record must answer more than “what produced this table?” It must distinguish what the process was designed to do, what it actually did, which source classifications contributed, whether lineage is complete, what classification effect was observed, and whether the claimed measure was assessed as sufficient in the relevant context.
This ontology connects three related layers without collapsing them:
| Layer | What it describes | Typical questions |
|---|---|---|
| Intent | Processing specifications, policies, ports, constraints, and expected classification impacts. | What data categories may enter? What processing and result were expected? |
| Execution | Actual processing activities, fixed-aspect input and output entities, port bindings, and direct or indirect lineage. | What occurred? Which concrete data was used, generated, or influential? |
| Evaluation | Observed impacts, propagated classifications, coverage, compatibility, conformance, and mitigation assessments. | What may be concluded, in which context, with what evidence and remaining uncertainty? |
The same model can therefore be used prospectively over categories and retrospectively over concrete data. A category-level specification is not itself an execution. Instead, a runtime activity can realize the specification and bind concrete entity versions to its ports. Later assessments can compare the execution with the contract and evaluate the resulting classification and mitigation claims.
| Foundation | Role in the model |
|---|---|
| PROV-O [[PROVO]] | Activities, entities, agents, plans, usage, generation, derivation, and assertion provenance. |
| DPV [[DPV]] | Categories of data, processing, purpose, and technical or organisational measures. |
| Inferal Data Classification Ontology | Classification assertions, status, sensitivity, context, evidence, and review workflow. |
| This ontology | Ports and category contracts, concrete bindings, element-level influence, expected and observed impacts, lineage coverage, and evidence-bearing processing assessments. |
These boundaries make conservative inference possible. Missing facts do not prove absence, an activity label does not prove anonymisation, and structural validation does not prove that a represented claim is true.
Abstract contracts and policies describe intended processing over categories. Runtime provenance describes concrete executions and data lineage. Classification impacts and mitigation sections describe how effects and obligations are represented. Assessment, coverage, and validation sections define the evidence boundaries for operational conclusions. The term reference collects the public vocabulary after those concepts have been introduced.
This specification uses the key words MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, and MAY as described by BCP 14 when, and only when, they appear in all capitals.
A data graph conforms to the base vocabulary when it uses these terms according to their RDFS semantics and the normative requirements in this document. A graph conforms to the operational profile when it also validates against the applicable SHACL shapes with RDFS inference and the imported ontology context. SHACL conformance does not prove that a processing claim is true; it proves only that the represented claim is structurally consistent with the profile.
https://ontology.inferal.com/modules/data-usage-processing-lineage/duplo
The module uses a descriptive namespace rather than a prefix-derived
namespace. The compact duplo: prefix is only an authoring
convenience; published term IRIs continue to explain their subject even
when viewed without prefix declarations.
This ontology is in scope for:
This ontology is not intended to:
The vocabulary and its reference operational behavior are designed to answer:
This ontology models three related but non-identical graphs. A processing activity generates data. A specification describes intended behavior. A classification or assessment activity generates an assertion. A consumer MUST NOT collapse these resources merely because they concern the same pipeline step.
| Term family | Meaning | Does it assert occurrence? |
|---|---|---|
declaresProcessing | A specification describes a processing category. | No |
permitsProcessing | A policy allows a processing category. | No |
prohibitsProcessing | A policy forbids a processing category. | No |
requiresProcessing | A policy demands a processing category. | No |
performedProcessing | An activity actually performed a processing category. | Yes |
hasAssessmentOutcome | An evidence-bearing assessment reached a conclusion. | Yes, about the assessment |
A data category such as pd:EmailAddress is referenced by a
classification constraint. It MUST NOT be used as though it were the
concrete email column consumed by an activity. Similarly, category
transitions MUST NOT be represented with prov:wasDerivedFrom
between ontology classes. Provenance derivation connects entities;
classification impacts connect category descriptions.
RDF and OWL are open-world and monotonic. Removing or omitting an email-category triple cannot prove that a transformed output is not an email address. This ontology represents replacement or suppression as an explicit impact and generates a separate output classification. The SHACL profile requires suppression and unknown impacts to enter review.
PROV entities have fixed aspects [[PROVO]]. Mutable logical names such as “customers” or “current export” therefore do not provide sufficient identity for runtime provenance. The vocabulary introduces snapshots and element versions; logical in-place modification generates a new version and can invalidate the old one. PROV event ordering remains applicable [[PROVCONSTRAINTS]].
A field can remain xsd:string while changing from an email
address to a pseudonymous token. Encryption can change representation
and exposure without changing the underlying personal-data category.
Ports therefore reference structural shapes separately from DPV data
categories and mitigation requirements.
ImpactKind, AssessmentOutcome,
ConformanceOutcome, MitigationOutcome,
MitigationScope, LineageCoverage, and
DataOriginKind are
value-space classes whose instances are used as object-property
values. This deliberately permits compatible extensions without
changing a property's range. They are not modeled as literals because
each value needs a stable IRI, label, definition, and possible future
mapping. This ontology does not close these classes with an OWL enumeration.
The operational SHACL profile requires named IRI members of the
appropriate value-space class; a local profile may use
sh:in when a deployment needs a closed list.
Reuse metadata records the source, license, retrieval date, and reason for each imported ontology.
Authorization is modeled here as a policy concern rather than a service capability. When a classification triggers a processing policy, that policy can carry reified DPV permissions binding a data target, a processing operation, an active role or entity, and a purpose or context. This keeps authorization distinct from Data Access, which describes provider capability, and from Authentication, which describes credential presentation. A permission supplements a data element's contextual sensitivity; it does not replace it.
The operational profile validates every reified permission linked by
dpv:hasPermission. It MUST be an IRI typed
dpv:Permission, identify data, processing, and an active
entity or role, and identify at least one IRI purpose or context. The
profile permits multiple values for each facet so that a permission can
express a complete scope without reducing it to a single statement.
A duplo:ProcessingSpecification
is an abstract prov:Plan. It MUST declare at least one DPV
processing category and at least one input or output port under the
operational profile. A specification MAY be source-free and have only
outputs, or use-only and have only inputs.
A specification, activity, policy, or mitigation requirement uses at most one bundled classification context in the operational profile. Reference compatibility evaluation uses exact context IRI identity by default. Unequal contexts require a positive, non-conflicted compatibility assessment covering every facet declared by the target resource. Alternatives and conjunctions for local contract resources are represented by distinct bundled context resources, not by several context property values.
A duplo:ProcessingPlan
is a versioned deployable specification. It MUST identify at least one
implemented abstract specification. A concrete plan SHOULD declare its
own plan-scoped ports rather than reusing ports from the generic
specification. Each concrete port MUST use
duplo:refinesPort
to identify the abstract input or output port it implements so
conformance checks can assess the plan/specification boundary. An
execution SHOULD identify the adopted plan through a qualified PROV
association and prov:hadPlan.
A duplo:DataPort
is a plan-scoped prov:Role. An
duplo:InputPort
describes a used entity, and an
duplo:OutputPort
describes a generated entity. Input and output ports are disjoint in
the OWL addendum. An in-place logical update MUST bind old and new
entity versions to separate input and output ports.
A duplo:DataInputPort
marks a data-bearing source, including a source that influences joins,
filters, groups, sorts, windows, or conditions. An
duplo:AuxiliaryInputPort
marks a non-data dependency such as a configuration, model, executable
plan, key reference, or public parameter. These subclasses are
disjoint. Every port MUST belong to exactly one specification under
the operational profile.
Runtime binding uses the standard PROV qualification pattern. A usage cites the input entity and has the input port as its role. A generation cites the activity and has the output port as its role. This preserves compatibility with generic PROV consumers.
A runtime input or output role used to evaluate a realized contract MUST be owned by that realized specification. Likewise, every port on an expected impact MUST be owned by the one specification that declares the impact. This prevents unrelated contracts from being cross-wired.
A duplo:ClassificationConstraint
declares expected category, workflow status, sensitivity, or named
structural-shape conditions for a port. It MUST constrain at least one
dimension. Multiple requiresDataCategory values are
conjunctive; alternative semantics require a separate profile or
explicit alternative grouping.
duplo:requiresDataCategory
points to a DPV-compatible data category.
duplo:requiresClassificationStatus
identifies acceptable workflow status.
duplo:requiresSensitivityLevel
is an exact expected sensitivity unless a profile supplies an ordering.
duplo:requiresStructuralShape
references a named SHACL shape or other structural contract.
A duplo:ProcessingPolicy
is both a local data policy and a plan-like normative entity. It MUST
identify an applicable data category and MUST permit, prohibit, or
require at least one DPV processing category. Policy statements do not
assert occurrence.
Policy comparison is context-sensitive and hierarchy-aware. An actual processing category matches a prohibition when it is the prohibited category or an explicit RDFS subclass. Data categories are matched by the same rule. Sibling categories and different contexts do not match.
A duplo:ProcessingActivity
is an actual prov:Activity. It MUST identify a performed
DPV processing category, MUST use or generate at least one PROV entity,
and MUST state exactly one lineage-coverage value and one explicit
lineage scope in the operational profile.
A duplo:TransformationActivity
is a processing activity that MUST both use and generate entities. It
covers copy, conversion, normalization, aggregation, combination,
pseudonymisation, redaction with an output, and similar derivations.
The used and generated entity IRIs MUST be distinct because PROV
entities have fixed aspects. A use-only inspection or source-free
generator remains a general processing activity.
A duplo:DataSnapshot
is an immutable PROV entity representing a dataset, file, batch,
partition, message, table state, or stream window. A
duplo:DataElementVersion
is both a classified data element and a PROV entity. It MUST identify
exactly one source asset or snapshot in the operational profile.
duplo:wasDirectlyDerivedFromElement
is a subproperty of prov:wasDerivedFrom. It means input
values contribute to output values. The qualified form uses
duplo:ElementDerivation
through
duplo:qualifiedElementDerivation.
duplo:wasIndirectlyInfluencedByElement
is a subproperty of prov:wasInfluencedBy. It covers join,
group, filter, sort, window, and conditional influence when values need
not appear in the output. The qualified form uses
duplo:ElementInfluence
and
duplo:qualifiedElementInfluence.
Reference tracing behavior traverses compact and qualified forms equivalently.
When both forms are present, the operational profile requires the
qualified influence's prov:entity to occur among the
corresponding compact lineage targets.
A logical in-place update MUST be represented as a new entity version when provenance assertions depend on a changed state. The activity MAY invalidate the prior version. Stateful stream processing SHOULD name offset ranges, event-time windows, or other fixed window entities so reprocessing can be compared meaningfully.
A duplo:ClassificationImpact
is an n-ary provenance entity connecting source or result ports,
categories, and classification records. It MUST have exactly one impact
kind and MUST state whether review is required.
An duplo:ExpectedClassificationImpact
belongs to a specification and is prospective. An
duplo:ObservedClassificationImpact
belongs to concrete evidence, MUST reference a source or result
classification, and MUST identify the activity that generated the
impact assertion. The OWL addendum declares expected and observed
impacts disjoint.
Category impacts use sourceCategory and
resultCategory. Sensitivity impacts use
duplo:sourceSensitivity
and duplo:resultSensitivity;
a sensitivity escalation MUST identify its result sensitivity. A
requirement-introduction impact MUST identify an
duplo:introducedRequirement.
duplo:CategoryPreservationduplo:CategoryReplacementduplo:CategoryIntroductionduplo:CategorySuppressionduplo:SensitivityEscalationduplo:RequirementIntroductionduplo:UnknownImpact| Processing pattern | Default interpretation |
|---|---|
| Identity copy, rename, format, serialization, transfer | Preserve all applicable classifications and requirements. |
| Encryption | Preserve classification; record protection measure and output-state evidence separately. |
| Pseudonymisation or tokenisation | Retain personal-data status; classify the output representation separately. |
| Aggregation | Produce a candidate result requiring assessment; do not infer anonymisation. |
| Join or inference | Consider category introduction, linkage, sensitivity escalation, and new requirements. |
| Filter, group, sort, window, condition | Record indirect influence where it affects governance. |
| Element elision | Require a complete mapping to support positive absence; retain source provenance. |
| Anonymisation | Require contextual evidence and review before confirming non-personal data. |
A duplo:ClassificationPropagationActivity
is a Data Classification detection activity. It MUST use
dcls:LineageInheritedDetection, MUST use at least two
evidence resources, and MUST generate at least one downstream
classification. It SHOULD use the source classification, the processing
activity, and the expected or observed impact.
A materializer MAY construct a candidate classification from a matching specification and complete set of role bindings. Every source port of an n-ary impact MUST have a compatible confirmed classification in the same context. The candidate retains that context and provenance to all source classifications. It MUST NOT construct a confirmed category solely from an expected impact.
Element elision can have no result element corresponding to the source element. The omission SHOULD be declared in a complete specification or mapping, and the enclosing output entity SHOULD retain provenance to its source. Missing lineage assertions alone MUST NOT be interpreted as proof of elision.
This ontology separates normative requirements from historical application and evidential satisfaction. This prevents a required measure from being mistaken for a performed measure and prevents a performed measure from being mistaken for a successful control.
dcls:requiresMeasure is a compact class-valued policy hook.duplo:MitigationRequirement qualifies measure, origin, scope, and context.duplo:appliedMeasure records what an actual activity claims it applied.duplo:MitigationAssessment evaluates a particular requirement against evidence.A requirement MUST identify at least one DPV technical or organisational measure category and exactly one scope. It MUST originate from a classification or be declared by a specification. An assessment MUST identify exactly one requirement, processing activity, and assessed measure, plus an outcome, a rationale, and its generating activity. The assessed measure MUST be required by that requirement and recorded as applied by that activity. Every stated requirement context MUST match the activity's processing context.
duplo:DuringProcessingduplo:OutputStateduplo:TransferScopeduplo:StorageScopeduplo:DownstreamUse
A duplo:ProcessingAssessment
is a provenance entity generated by a validation, review, or other
assessment activity. It MUST assess a named resource, have exactly one
outcome, give a rationale, and identify exactly one generating activity.
It MAY reference a structured confidence assessment.
duplo:ConformanceOutcome
and duplo:MitigationOutcome
are extensible specializations of
duplo:AssessmentOutcome.
Conformance assessments MUST use the former; mitigation assessments
MUST use the latter. duplo:Indeterminate belongs to both
families because insufficient evidence can prevent either conclusion.
A duplo:ProcessingConformanceAssessment
assesses exactly one processing activity against exactly one
specification. A conformant conclusion MUST cite evidence using
prov:used. Claiming
duplo:realizesSpecification
does not itself entail conformance.
Core controlled outcomes are:
duplo:Conformant and duplo:NonConformant are conformance outcomes.duplo:Satisfied and duplo:Unsatisfied are mitigation outcomes.duplo:Indeterminate is valid for both outcome families.
duplo:hasLineageCoverage
intentionally has no RDFS domain so it can describe activities, entities,
element versions, bundles, or locally scoped lineage resources without
retyping them. The operational profile requires one value on each
processing activity.
Every activity MUST also identify exactly one
duplo:lineageCoverageScope
value from duplo:LineageScope.
duplo:ElementDependencyLineageScope
covers every represented direct value dependency and indirect join,
filter, grouping, ordering, windowing, or conditional dependency within
the evaluated execution boundary. Local scope resources MAY name narrower
asset, graph, time-window, system, or organisational boundaries.
duplo:CompleteLineageduplo:PartialLineageduplo:UnknownLineagePartial, unknown, or unstated coverage anywhere on a recorded lineage chain prevents a consumer from presenting the oldest known node as a certain original source. Reference tracing behavior therefore aggregates coverage across every recorded generating activity reachable from the output and exposes the underlying activity-level assertions beside the conservative aggregate.
A non-root intermediate element without a recorded generating activity is an unknown coverage boundary, not evidence of completeness. Complete trace results additionally require the built-in direct-and-indirect element scope on every evaluated generating activity.
duplo:DataOriginKind
records whether an activity depends on source data. The
duplo:hasDataOriginKind
property is independent of lineage coverage, so an implementation does
not have to misuse a completeness value to make a source-origin claim.
duplo:SourceDependentOriginduplo:DataInputPort.duplo:SourceFreeOrigin
Source-free origin MUST NOT be inferred from absent
prov:used statements. Under the operational profile, every
used entity on a source-free activity MUST be qualified through an
duplo:AuxiliaryInputPort, and a data-input binding is a
violation.
Exact context IRI identity is the default safety rule. Unequal contexts
can be related only through a directional
duplo:ContextCompatibilityAssessment.
The assessment identifies one
duplo:sourceContext,
one duplo:targetContext,
and every evaluated
duplo:assessesContextFacet.
A target specification, policy, requirement, activity, or profile uses
duplo:requiresContextFacet
to name the dimensions which MUST be covered. If no required facets are
declared, an unequal-context assessment does not relax exact identity in
the reference operational behavior.
duplo:ContextFacet
values include duplo:JurisdictionContextFacet,
duplo:PurposeContextFacet,
duplo:ControllerContextFacet,
duplo:LegalBasisContextFacet, and
duplo:SystemContextFacet. The
duplo:ContextCompatibilityOutcome
family contains duplo:Compatible,
duplo:Incompatible, and duplo:Indeterminate.
Compatibility is directional, scoped to the named facets, and MUST NOT
be represented with owl:sameAs.
A lineage summary is backed by a
duplo:LineageCoverageAssessment
connected through
duplo:hasLineageCoverageAssessment.
The assessment records
duplo:assessedLineageCoverage,
one or more
duplo:assessedLineageScope
values, and at least one concrete
duplo:coverageBoundary.
Time-bounded assessments MAY use
duplo:coverageStartTime
and duplo:coverageEndTime.
The built-in scope dimensions are
duplo:AssetLineageScope,
duplo:ElementLineageScope,
duplo:DirectDependencyScope,
duplo:IndirectDependencyScope,
duplo:ExecutionBoundaryScope, and
duplo:CrossSystemBoundaryScope.
duplo:ElementDependencyLineageScope provides a combined
compatibility summary. A direct duplo:hasLineageCoverage
value and duplo:lineageCoverageScope MUST match the linked
assessment under the operational profile.
Structural validation is represented by a
duplo:StructuralConformanceAssessment.
It names the
duplo:validatedResource,
duplo:validationShape,
versioned
duplo:validationShapesGraph,
optional
duplo:validationContext,
and authoritative
duplo:validationReport.
The report uses standard sh:ValidationReport and
sh:conforms; this ontology does not copy SHACL result
semantics. A structural assessment can close a contract gap only when
the resource, shape, shapes graph, report outcome, provenance, and
required context facets match.
Operational behavior can be registered as
duplo:OperationalRule
resources with a
duplo:RuleKind,
duplo:hasRuleKind,
duplo:ruleImplementation,
duplo:ruleFailureBehavior,
and duplo:ruleIsMonotonic.
The kinds are duplo:NormativeSafetyRule,
duplo:ReferenceInferenceRule, and
duplo:DiagnosticRule. Registration makes scope and failure
behavior explicit; it does not claim complete semantics for every future
impact kind, mitigation scope, or context policy.
Reference operationalizations support upstream classification tracing, category-contract selection, execution-conformance review, lineage and impact gap detection, mitigation review, indirect-influence discovery, and processing-policy comparison. Materialization behavior is limited to conservative candidate classifications and qualified mitigation requirements; it does not silently confirm a classification or a mitigation outcome.
Candidate propagation checks performed-versus-declared processing, explicitly scoped complete lineage, every source binding of an n-ary impact, source category, classification status, sensitivity, contract ownership, and exact source/specification/activity context. It retains context on the candidate and deliberately excludes sensitivity, requirement, suppression, and unknown impacts from category materialization. Structural SHACL contracts are not evaluated inside SPARQL and remain a separate conformance concern. Reference materialization uses SHA-256 over complete identity tuples so repeated execution is idempotent and equal local names from different namespaces cannot collide. Candidate identity uses output element, processing activity, impact, and context; all source classifications remain explicit provenance without making identity depend on SPARQL row order. Requirement identity uses classification, measure, scope, and context.
The operational SHACL profile enforces at least the following:
SHACL evaluates represented graph completeness under a chosen data graph; it does not override RDF's open-world semantics outside validation. Implementations SHOULD preserve the validation report as provenance when its conclusion drives policy or classification decisions [[SHACL]].
A lineage graph can be sensitive even when it contains no payload values. It can reveal the existence of personal-data fields, join paths, processing destinations, data-controller relationships, security mechanisms, and the possibility of identity linkage. Implementations SHOULD classify, authorize, minimize, and retain provenance data under controls appropriate to its contents.
measureImplementation identifies a versioned algorithm,
configuration, service, or control entity. It MUST NOT embed secret keys,
salts, credentials, tokens, or reversible parameters. A reference MAY
point to a protected configuration record whose existence is visible but
whose secret content is access-controlled elsewhere.
Classification propagation can amplify errors. A confirmed source classification does not guarantee a confirmed output when lineage is partial, context changes, the plan is unverified, or the processing is non-deterministic. Consumers SHOULD retain source status, context, evidence, and coverage in explanations.
Public IRIs in this ontology MUST NOT be repurposed after adoption. Semantic changes to impact kinds, coverage claims, policy modality, or class boundaries require versioning and migration notes. Local processing categories SHOULD extend or map to DPV categories rather than redefine imported terms.
Domain-specific extensions MAY specialize ports, specifications, activities, impacts, requirements, and assessments. An extension SHOULD use mappings weaker than OWL equivalence unless meanings are genuinely complete in both directions. Profiles MAY add closed enumerations, cardinalities, sensitivity orderings, or alternative category groups appropriate to a deployment.
Automated classifiers and pipeline extractors SHOULD record the agent, activity, plan version, timestamp, confidence, and known coverage that support their output. Disagreement among assessments SHOULD remain explicit rather than being silently overwritten.
| Class | Parent | Purpose |
|---|---|---|
ProcessingSpecification | prov:Plan | Abstract processing contract. |
ProcessingPlan | ProcessingSpecification | Versioned deployable specification. |
ProcessingPolicy | dcls:DataPolicy, prov:Plan | Category-level permission, prohibition, or requirement. |
ProcessingActivity | prov:Activity | Actual use or processing occurrence. |
TransformationActivity | ProcessingActivity | Actual use and generation of derived data. |
ClassificationPropagationActivity | dcls:DetectionActivity | Generates a downstream classification from lineage evidence. |
DataPort | prov:Role | Plan-scoped role for a data entity. |
InputPort | DataPort | Expected usage role. |
DataInputPort | InputPort | Data-bearing direct or indirect source role. |
AuxiliaryInputPort | InputPort | Non-data configuration, model, plan, key-reference, or parameter role. |
OutputPort | DataPort | Expected generation role. |
ClassificationConstraint | — | Category, status, sensitivity, or structural port condition. |
DataSnapshot | prov:Entity | Immutable asset, batch, message, partition, or window. |
DataElementVersion | dcls:DataElement, prov:Entity | Fixed element within an asset version. |
ElementDerivation | prov:Derivation | Qualified direct value dependency. |
ElementInfluence | prov:EntityInfluence | Qualified indirect dependency. |
ClassificationImpact | prov:Entity | N-ary classification effect record. |
ExpectedClassificationImpact | ClassificationImpact | Prospective impact on a specification. |
ObservedClassificationImpact | ClassificationImpact | Evidence-backed impact for an execution. |
ImpactKind | — | Controlled impact category. |
ProcessingAssessment | prov:Entity | Evidence-bearing assessment conclusion. |
ProcessingConformanceAssessment | ProcessingAssessment | Run-to-specification conformance conclusion. |
MitigationRequirement | prov:Entity | Qualified measure requirement. |
MitigationAssessment | ProcessingAssessment | Requirement satisfaction conclusion. |
AssessmentOutcome | — | Controlled conclusion value. |
ConformanceOutcome | AssessmentOutcome | Outcome family for specification conformance. |
MitigationOutcome | AssessmentOutcome | Outcome family for requirement satisfaction. |
MitigationScope | — | Operational scope of a measure requirement. |
LineageCoverage | — | Known completeness of lineage. |
LineageScope | — | Explicit boundary for a lineage coverage assertion. |
DataOriginKind | — | Source-dependent or positively source-free data origin. |
| Property | Domain → range | Meaning |
|---|---|---|
declaresProcessing | Specification → DPV Processing | Abstract processing declaration. |
performedProcessing | Activity → DPV Processing | Historical processing claim. |
permitsProcessing | Policy → DPV Processing | Normative permission. |
prohibitsProcessing | Policy → DPV Processing | Normative prohibition. |
requiresProcessing | Policy → DPV Processing | Normative processing requirement. |
appliesToDataCategory | Policy → DPV Data | Category governed by the policy. |
policyContext | Policy → ClassificationContext | Context of normative applicability. |
hasPort | Specification → DataPort | General port relation. |
hasInputPort | Specification → InputPort | Planned usage role. |
hasOutputPort | Specification → OutputPort | Planned generation role. |
implementsSpecification | Plan → Specification | Concrete-to-abstract implementation, weaker than equivalence. |
refinesPort | Concrete DataPort → abstract DataPort | Port-level correspondence used to assess plan refinement. |
realizesSpecification | Activity → Specification | Claimed runtime realization, not conformance. |
specificationContext | Specification → ClassificationContext | Expected processing context. |
processingContext | Activity → ClassificationContext | Actual processing context. |
hasClassificationConstraint | Port → Constraint | Expected semantic or structural binding condition. |
requiresDataCategory | Constraint → DPV Data | Required category. |
requiresClassificationStatus | Constraint → ClassificationStatus | Required workflow status. |
requiresSensitivityLevel | Constraint → SensitivityLevel | Required sensitivity. |
requiresStructuralShape | Constraint → resource | Named structural contract. |
hasExpectedClassificationImpact | Specification → ExpectedImpact | Prospective effect declaration. |
hasObservedClassificationImpact | Activity → ObservedImpact | Concrete effect evidence. |
sourcePort | Impact → InputPort | Input role contributing to an impact. |
resultPort | Impact → OutputPort | Output role affected by an impact. |
sourceCategory | Impact → DPV Data | Abstract source category. |
resultCategory | Impact → DPV Data | Projected or observed result category. |
sourceSensitivity | Impact → SensitivityLevel | Source-side sensitivity operand. |
resultSensitivity | Impact → SensitivityLevel | Projected or observed result sensitivity. |
introducedRequirement | Impact → resource | Requirement introduced by processing. |
sourceClassification | Impact → DataClassification | Concrete upstream assertion. |
resultClassification | Impact → DataClassification | Concrete downstream assertion. |
hasImpactKind | Impact → ImpactKind | Controlled effect kind. |
requiresImpactReview | Impact → boolean | Explicit review marker. |
impactRationale | Impact → string | Human explanation. |
wasDirectlyDerivedFromElement | ElementVersion → ElementVersion | Direct value dependency. |
wasIndirectlyInfluencedByElement | ElementVersion → ElementVersion | Indirect control dependency. |
qualifiedElementDerivation | ElementVersion → ElementDerivation | Qualified direct dependency. |
qualifiedElementInfluence | ElementVersion → ElementInfluence | Qualified indirect dependency. |
hasLineageCoverage | unspecified → LineageCoverage | Known completeness without subject retyping. |
lineageCoverageScope | unspecified → LineageScope | Explicit boundary for the coverage value. |
hasDataOriginKind | ProcessingActivity → DataOriginKind | Source dependency independently of completeness. |
assessesResource | Assessment → resource | General assessment target. |
assessesActivity | Assessment → ProcessingActivity | Concrete activity target. |
againstSpecification | ConformanceAssessment → Specification | Evaluated contract. |
hasAssessmentOutcome | Assessment → AssessmentOutcome | Controlled conclusion. |
assessmentRationale | Assessment → string | Human explanation and limitation. |
confidenceAssessment | Assessment → ConfidenceAssessment | Scale-aware uncertainty. |
hasMitigationRequirement | DataClassification → Requirement | Qualified requirement on a classification. |
declaresMitigationRequirement | Specification → Requirement | Expected requirement on a contract. |
originatingClassification | Requirement → DataClassification | Assertion from which the requirement originates. |
requiredMeasure | Requirement → class | DPV measure category. |
hasRequirementScope | Requirement → MitigationScope | Operational phase or state. |
requirementContext | Requirement → ClassificationContext | Context of applicability. |
appliedMeasure | Activity → class | Historically applied DPV measure category. |
measureImplementation | Activity → PROV Entity | Versioned control implementation, without secrets. |
assessesRequirement | MitigationAssessment → Requirement | Evaluated requirement. |
assessedMeasure | MitigationAssessment → class | Evaluated measure category. |
The examples throughout this specification illustrate both successful and non-conforming assessments without treating a negative assessment as a structurally invalid graph. Together they cover: