Physical — ontology

    Severity tiers

    Severity tiers

    Per ODR-0013 §Q1, every emitted SHACL shape carries an explicit sh:severity. The framework has four tiers; sh:Violation is further partitioned into 5 named subcategories.

    Severity-tier landscape

    --- config: layout: elk elk: mergeEdges: false nodePlacementStrategy: BRANDES_KOEPF --- %%{init: {"theme": "base", "themeVariables": {"primaryColor": "#FFCDD2", "primaryTextColor": "#B71C1C", "primaryBorderColor": "#C62828", "lineColor": "#37474F"}}}%% flowchart LR accTitle: Severity tier framework — 4 tiers, 5 Violation subcategories, and every emitted shape grouped as a leaf accDescr: Shows the four sh:severity tiers (Violation, Warning, Info, Pass) with the five Violation subcategories per ODR-0013 Q1, and each emitted SHACL shape attached to its category. %% @prefix opda: %% @prefix sh: classDef violation fill:#FFCDD2,stroke:#C62828,stroke-width:2px,color:#B71C1C classDef warning fill:#FFF9C4,stroke:#F9A825,stroke-width:2px,color:#F57F17 classDef info fill:#BBDEFB,stroke:#1565C0,stroke-width:2px,color:#0D47A1 classDef pass fill:#C8E6C9,stroke:#2E7D32,stroke-width:2px,color:#1B5E20 classDef shape fill:#E1BEE7,stroke:#6A1B9A,stroke-width:2px,color:#4A148C Root[sh:severity tiers] V[sh:Violation
    blocking]:::violation W[sh:Warning
    non-blocking elevated]:::warning I[sh:Info
    informative only]:::info P["(Pass)
    no triple emitted"]:::pass Root --> V Root --> W Root --> I Root --> P C1[Cat 1 — Identity-key]:::violation C2[Cat 2 — IC breach]:::violation C3[Cat 3 — No-identity-override]:::violation C4[Cat 4 — Special-category PII]:::violation C5[Cat 5 — Meta-shape drift]:::violation V --> C1 V --> C2 V --> C3 V --> C4 V --> C5 C1 --> SC1["15 identity-key shapes
    Property / Address / LegalEstate
    Person / Organisation
    Milestone / Transaction
    Claim / Evidence
    Comparable / EPC / Search
    Survey / Valuation
    DPVMappingRecord"]:::shape C2 --> SC2["opda:PropertyICBreachShape
    opda:UnprovenancedClaimShape"]:::shape C3 --> SC3["opda:NoIdentityOverride_MetaShape"]:::shape C4 --> SC4["opda:SpecialCategoryPIIWithoutLawfulBasisShape"]:::shape C5 --> SC5["opda:MetaShapeOverShapeGraphMetaShape
    opda:ShInSemantics_MetaShape
    opda:ShViolationFloor_MetaShape"]:::shape W --> WC1["opda:PIIWithoutDPVCoAnnotationRule
    (ADR-0012 explicit override)"]:::shape I --> IC1["9 SHACL-AF rules
    UPRN / INSPIRE / Deprecation
    Identifier / Capacity
    LeaseTerm / Milestone
    PROVO-Claims / Verification"]:::shape P --> PC1["Conforming case
    (every other instance)"]:::shape

    4-tier framework

    Tiersh:severity IRISemanticsTypical use
    Violationsh:ViolationBlocking; instance is non-conformantIdentity-key violations, IC breaches, anti-pattern detection, special-category PII without lawful basis
    Warningsh:WarningNon-blocking but elevatedPII-without-DPV-co-annotation, deprecation-without-successor
    Infosh:InfoInformative materialisation onlySHACL-AF succession rules (UPRN / INSPIRE / lease-term / verification chains)
    (Pass)—Shape did not fireThe conforming case; no triple emitted in the report

    5 sh:Violation subcategories

    Per ODR-0013 §Q1, every sh:Violation shape sits in exactly one of five named categories:

    CategoryPatternExamples
    Cat 1 — Identity-key missing / wrong-typesh:datatype + sh:maxCount 1 on the identity-key pathPropertyIdentityKeyShape, AddressIdentityKeyShape, PersonIdentityKeyShape
    Cat 2 — IC breach (anti-pattern detection)sh:nodeKind on co-reference predicates; sh:minCount on prov:wasDerivedFromPropertyICBreachShape (no owl:sameAs), UnprovenancedClaimShape
    Cat 3 — No-identity-override meta-shapeSPARQL select detecting overlay-shape attempts to suppress identity propertyNoIdentityOverride_MetaShape
    Cat 4 — Special-category PII without lawful basisSPARQL select for hasSpecialCategoryData true lacking dpv:hasLegalBasisSpecialCategoryPIIWithoutLawfulBasisShape
    Cat 5 — Meta-shape-over-shape-graph driftSPARQL select for meta-shape on sh:NodeShape lacking opda:metaShapeJustificationMetaShapeOverShapeGraphMetaShape, ShInSemantics_MetaShape, ShViolationFloor_MetaShape

    Shapes grouped by severity

    Cat 1 — Identity-key shapes (Violation)

    ShapeModuleTarget
    opda:AddressIdentityKeyShapepropertyopda:Address
    opda:LegalEstateIdentityKeyShapepropertyopda:LegalEstate
    opda:PropertyIdentityKeyShapepropertyopda:Property
    opda:PersonIdentityKeyShapeagentopda:Person
    opda:OrganisationIdentityKeyShapeagentopda:Organisation
    opda:MilestoneIdentityKeyShapetransactionopda:Milestone
    opda:TransactionIdentityKeyShapetransactionopda:Transaction
    opda:ClaimIdentityKeyShapeclaimopda:Claim
    opda:EvidenceIdentityKeyShapeclaimopda:Evidence
    opda:ComparableIdentityKeyShapedescriptiveopda:Comparable
    opda:EPCCertificateIdentityKeyShapedescriptiveopda:EPCCertificate
    opda:SearchIdentityKeyShapedescriptiveopda:Search
    opda:SurveyIdentityKeyShapedescriptiveopda:Survey
    opda:ValuationIdentityKeyShapedescriptiveopda:Valuation
    opda:DPVMappingRecordIdentityKeyShapegovernanceopda:DPVMappingRecord

    Cat 2 — IC-breach shapes (Violation)

    ShapeModuleTarget
    opda:PropertyICBreachShapepropertyopda:Property
    opda:UnprovenancedClaimShapeclaimopda:Claim

    Cat 3 — No-identity-override meta-shape (Violation)

    ShapeTarget
    opda:NoIdentityOverride_MetaShapesh:NodeShape (SPARQL constraint)

    Cat 4 — Special-category PII shape (Violation)

    ShapeModuleTarget
    opda:SpecialCategoryPIIWithoutLawfulBasisShapeagentopda:Person (SPARQL constraint on opda:hasSpecialCategoryData true)

    Cat 5 — Meta-shape-over-shape-graph (Violation)

    ShapeJustification
    opda:MetaShapeOverShapeGraphMetaShape”ODR-0013 §Q1 Category 5 + ODR-0017 §2a: meta-shapes targeting sh:NodeShape using sh:Violation severity must justify their elevation above the ODR-0017 sh:Info default.”
    opda:ShInSemantics_MetaShape”ODR-0010 three-rule interface contract Rule 1: overlay sh:in MUST be a subset of base sh:in (which itself unions into the SKOS scheme members per ODR-0011).”
    opda:ShViolationFloor_MetaShape”ODR-0010 three-rule interface contract Rule 2: no overlay shape may set sh:severity to sh:Warning or sh:Info on a property where the base shape declared sh:Violation.”

    Warning-tier shapes

    ShapeModuleWhy Warning vs Violation
    opda:PIIWithoutDPVCoAnnotationRulefoundation (cross-cutting)Silent PII leakage is high-impact even though the rule is SHACL-AF-pattern-shaped (ADR-0012 explicit override)

    Info-tier shapes (all SHACL-AF rules)

    ShapeModuleMaterialises
    opda:DeprecationChainRulefoundationopda:hasDeprecationStatus, opda:hasSuccessor
    opda:UPRNSuccessionRulepropertyopda:hasUPRNSuccessionStatus
    opda:INSPIRESuccessionRulepropertyopda:hasINSPIRESuccessionStatus
    opda:IdentifierSuccessionRuleagentopda:hasIdentifierSuccessionEvent
    opda:CapacityAuthorityMatchRuleagentopda:hasCapacityAuthorityMatchStatus
    opda:LeaseTermSuccessionRuletransactionopda:hasLeaseTermSuccessionStatus
    opda:MilestoneVarianceRuletransactionopda:hasVarianceStatus, opda:hasVarianceDays
    opda:PROVOClaimsRuleclaimopda:hasProvenanceChainStatus
    opda:VerificationActivitySuccessionRuleclaimopda:hasVerificationSuccessionStatus

    BASPI5 overlay shapes (Violation)

    The BASPI5 profile shapes inherit the Violation floor per the three-rule interface contract (overlay cannot weaken base severity). Every Baspi5_*Shape carries sh:severity sh:Violation. See profiles/baspi5.md.

    Source ADR + ODR

    Comments

    Loading comments…