@prefix : <https://ontology.inferal.com/modules/data-usage-processing-lineage/queries/> .
@prefix duplo: <https://ontology.inferal.com/modules/data-usage-processing-lineage/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

:
    a owl:Ontology ;
    owl:imports <https://ontology.inferal.com/modules/data-usage-processing-lineage/> ;
    dcterms:title "Data Usage and Processing Lineage operational rule registry" ;
    dcterms:description "Machine-readable contracts for the supplied SPARQL operationalizations. Registered queries cover declared core behavior only and do not claim completeness for arbitrary extension impact kinds, mitigation scopes, or context policies." ;
    dcterms:issued "2026-07-10"^^xsd:date ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    vann:preferredNamespacePrefix "duplo-query" ;
    vann:preferredNamespaceUri "https://ontology.inferal.com/modules/data-usage-processing-lineage/queries/" ;
    rdfs:label "Data Usage and Processing Lineage operational rule registry" ;
    rdfs:comment "This registry distinguishes safety gates, reference inferences, and diagnostics and records monotonicity and failure behavior for each implementation." ;
    owl:versionInfo "0.1.0" .

:applicable-processing-specifications
    a duplo:OperationalRule ;
    rdfs:label "applicable processing specifications rule" ;
    rdfs:comment "Finds specifications whose semantic and structural input constraints are supported for a confirmed classification." ;
    duplo:hasRuleKind duplo:NormativeSafetyRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/applicable-processing-specifications.rq> ;
    duplo:ruleIsMonotonic false ;
    duplo:ruleFailureBehavior "Missing, conflicting, structurally mismatched, or context-incompatible evidence withholds the specification." .

:materialize-propagated-candidates
    a duplo:OperationalRule ;
    rdfs:label "materialize propagated candidates rule" ;
    rdfs:comment "Constructs review-required candidate classifications for the built-in preservation, replacement, and introduction impact kinds." ;
    duplo:hasRuleKind duplo:ReferenceInferenceRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/materialize-propagated-candidates.rq> ;
    duplo:ruleIsMonotonic false ;
    duplo:ruleFailureBehavior "Any unsatisfied source-port, context, structural, or coverage precondition prevents materialization; extension impact kinds require another registered rule." .

:materialize-qualified-mitigation-requirements
    a duplo:OperationalRule ;
    rdfs:label "materialize qualified mitigation requirements rule" ;
    rdfs:comment "Expands compact classification measure requirements into deterministic qualified requirements." ;
    duplo:hasRuleKind duplo:ReferenceInferenceRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/materialize-qualified-mitigation-requirements.rq> ;
    duplo:ruleIsMonotonic false ;
    duplo:ruleFailureBehavior "Existing equivalent requirements suppress duplicates; unregistered scope-selection policies are not inferred." .

:processing-conformance-gaps
    a duplo:OperationalRule ;
    rdfs:label "processing conformance gaps rule" ;
    rdfs:comment "Reports represented binding, category, context, classification, and structural reasons that block a conformant assessment." ;
    duplo:hasRuleKind duplo:NormativeSafetyRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/processing-conformance-gaps.rq> ;
    duplo:ruleIsMonotonic false ;
    duplo:ruleFailureBehavior "A reported or unevaluated required dimension prevents this rule from supporting a conformant conclusion." .

:context-compatibility-gaps
    a duplo:OperationalRule ;
    rdfs:label "context compatibility gaps rule" ;
    rdfs:comment "Reports unequal execution and specification contexts lacking an unconflicted compatibility assessment." ;
    duplo:hasRuleKind duplo:DiagnosticRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/context-compatibility-gaps.rq> ;
    duplo:ruleIsMonotonic false ;
    duplo:ruleFailureBehavior "Missing or conflicting compatibility evidence remains a gap; absence never means compatibility." .

:structural-validation-gaps
    a duplo:OperationalRule ;
    rdfs:label "structural validation gaps rule" ;
    rdfs:comment "Reports structurally constrained bindings lacking a matching conforming SHACL assessment." ;
    duplo:hasRuleKind duplo:DiagnosticRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/structural-validation-gaps.rq> ;
    duplo:ruleIsMonotonic false ;
    duplo:ruleFailureBehavior "Missing resource, shape, shapes-graph, report, provenance, or compatible-context evidence leaves the binding unresolved." .

:lineage-coverage-gaps
    a duplo:OperationalRule ;
    rdfs:label "lineage coverage gaps rule" ;
    rdfs:comment "Reports partial, unknown, unscoped, or assessment-free lineage coverage." ;
    duplo:hasRuleKind duplo:DiagnosticRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/lineage-coverage-gaps.rq> ;
    duplo:ruleIsMonotonic false ;
    duplo:ruleFailureBehavior "Legacy coverage summaries without a matching provenance-bearing assessment remain gaps." .

:trace-upstream-classifications
    a duplo:OperationalRule ;
    rdfs:label "trace upstream classifications rule" ;
    rdfs:comment "Traces direct and indirect classified element ancestry and conservatively summarizes assessed coverage." ;
    duplo:hasRuleKind duplo:DiagnosticRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/trace-upstream-classifications.rq> ;
    duplo:ruleIsMonotonic false ;
    duplo:ruleFailureBehavior "Any reachable generated element without matching assessed coverage degrades the reported coverage to partial or unknown." .

:mitigation-requirement-gaps
    a duplo:OperationalRule ;
    rdfs:label "mitigation requirement gaps rule" ;
    rdfs:comment "Reports applicable qualified requirements without a provenance-bearing satisfied assessment for the same activity and measure." ;
    duplo:hasRuleKind duplo:DiagnosticRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/mitigation-requirement-gaps.rq> ;
    duplo:ruleIsMonotonic false ;
    duplo:ruleFailureBehavior "Missing or context-incompatible assessment evidence leaves the mitigation requirement open." .

:prohibited-processing-activities
    a duplo:OperationalRule ;
    rdfs:label "prohibited processing activities rule" ;
    rdfs:comment "Reports performed processing that matches a prohibition for compatible classified data." ;
    duplo:hasRuleKind duplo:NormativeSafetyRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/prohibited-processing-activities.rq> ;
    duplo:ruleIsMonotonic false ;
    duplo:ruleFailureBehavior "Context incompatibility or indeterminacy prevents a policy match rather than silently broadening the prohibition." .

:indirect-classified-influences
    a duplo:OperationalRule ;
    rdfs:label "indirect classified influences rule" ;
    rdfs:comment "Finds classified elements that indirectly influence downstream elements." ;
    duplo:hasRuleKind duplo:DiagnosticRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/indirect-classified-influences.rq> ;
    duplo:ruleIsMonotonic true ;
    duplo:ruleFailureBehavior "Only explicitly represented direct or qualified indirect influences are reported." .

:unresolved-classification-impacts
    a duplo:OperationalRule ;
    rdfs:label "unresolved classification impacts rule" ;
    rdfs:comment "Finds review-required, unknown, or result-unlinked classification impacts." ;
    duplo:hasRuleKind duplo:DiagnosticRule ;
    duplo:ruleImplementation <https://ontology.inferal.com/modules/data-usage-processing-lineage/current/queries/unresolved-classification-impacts.rq> ;
    duplo:ruleIsMonotonic false ;
    duplo:ruleFailureBehavior "Extension impact kinds are unresolved unless another registered rule explicitly handles them." .
