SHACL shapes
The closed-world contract over the open-world OWL class graph. OWL says what
can be inferred; SHACL says what a conforming document must
carry. This page indexes the 408 node shapes natively, explains the
regulatory-weight severity scheme, the 365 domain/range-as-constraint shapes, and
the asserted-vs-entailed / SHACL-AF boundary. Every count is read at build time from the
committed shapes TTLs (source/03-standards/ontology/opda-*-shapes.ttl), so it
cannot drift from the model. The term-by-term reference — the only one that resolves the
blank nodes — is the embedded SHACL Play! rendering.
1 · Node-shape inventory
The shapes graph is one cross-cutting file (opda-shapes.ttl) plus a small
resource-shape set per module. opda-shapes.ttl carries the per-leaf
Category-1/2 constraint shapes and the cross-cutting SHACL-AF rules; the module shape files
carry the per-Kind resource shapes that compose with the overlay profiles. Shapes
target classes via sh:targetClass / sh:targetNode
/ sh:targetSubjectsOf — they never owl:imports the class graph
(ODR-0004 §3a three-graph separation; ODR-0010 §Q3).
| Shapes file | Module / scope | Node shapes |
|---|---|---|
opda-shapes.ttl | cross-cutting (per-leaf + SHACL-AF rules) | 347 |
opda-property-shapes.ttl | Property / Address / Title | 7 |
opda-agent-shapes.ttl | Agent / Person / Organisation / Roles | 17 |
opda-transaction-shapes.ttl | Transaction / Milestone / LeaseTerm | 6 |
opda-claim-shapes.ttl | Claim / Evidence / Verification | 7 |
opda-governance-shapes.ttl | DPV governance / PII floor | 1 |
opda-descriptive-shapes.ttl | Descriptive (EPC, risk, comparables) | 23 |
| Total node shapes | 408 | |
Live count from sh:NodeShape declarations across the seven committed shapes
files. SHACL property shapes (sh:property blocks) are blank nodes nested inside
these node shapes and are resolved in the SHACL Play! rendering below — and natively on each
shape's own page (the shape index that follows).
Shape index · 402 shapes, linked
Every node shape now has its own dereferenceable page at /pdtf/shape/{Name} — with its
target and its constraints resolved with no blank nodes (path, datatype/class, cardinality,
severity, message), the path linked to the property it constrains. Grouped by bounded-context module:
property · 7
agent · 17
AppliesToRangeShapeBuyerShapeCapacityAuthorityMatchRuleFoundsRangeShapeIdentifierSuccessionRuleOrganisationIdentityKeyShapeOrganisationNotPersonDisjointShapeOwnerTypeValueShapePersonIdentityKeyShapePersonNotOrganisationDisjointShapePlaysRangeShapeProprietorshipMediationShapeRelatorSpineSubjectShapeRolePlayShapeRolePlaySubjectShapeSellerShapeSpecialCategoryPIIWithoutLawfulBasisShape
transaction · 6
claim · 7
governance · 1
descriptive · 23
BroadbandConnectionValueShapeComparableIdentityKeyShapeComparableInternalStructureShapeConstructionTypeValueShapeEPCCertificateIdentityKeyShapeEPCCertificateInternalStructureShapeFixturesListShapeMarketingTenureValueShapeMediaUrlShapeMonetaryAmountShapeOfstedRatingValueShapePriceQualifierValueShapeRiskAssessmentAcyclicityConstraintRiskAssessmentShapeRoomDimensionShapeSearchIdentityKeyShapeSearchInternalStructureShapeSurveyIdentityKeyShapeSurveyInternalStructureShapeTransportTypeValueShapeUrlShapeValuationIdentityKeyShapeValuationInternalStructureShape
cross-cutting · 341
abilityToResideAtPropertyDomainShapeaccessibilityAndAdaptationsDomainShapeaccountNameDomainShapeaccountNumberDomainShapeactionAlertRatingDomainShapeaddressVariantDomainShapeadHocExpensesDomainShapeaged17OrOverNamesDomainShapeageRangeDomainShapeamountDomainShapeannualCostOfPermitDomainShapeannualCostOfPermitRangeShapeannualGroundRentDomainShapeannualGroundRentRangeShapeannualServiceChargeDomainShapeannualServiceChargeRangeShapeapplicationDateDomainShapeapplicationTypeDomainShapeareaDomainShapeareBoundariesUniformDomainShapeareBoundariesUniformRangeShapeattestedByDomainShapeattestedByRangeShapeauthorisationToShareDomainShapeauthorisedToActOnBehalfOfAllSellersDomainShapebaselineCategoryDomainShapebathroomsDomainShapebedroomsDomainShapebuildingControlStartDateDomainShapebuildingsReinstatementCostAssessmentDomainShapebuiltFormDomainShapebuiltFormRangeShapecentralHeatingFuelTypeDomainShapecentralHeatingFuelTypeRangeShapecentralHeatingInstalledDomainShapecertificateOfComplianceFeeDomainShapecertificateOfComplianceFeeRangeShapeconcernsDomainShapeconcernsPropertyDomainShapeconcernsPropertyRangeShapeconfirmationDomainShapeconfirmInformationIsAccurateDomainShapeconfirmWillProvideAdditionalDocumentationDomainShapeconsentsObtainedDomainShapeconsequentialChargingBasisDomainShapeconstructionTypeDomainShapeconstructionTypeRangeShapeconsumerProtectionRegulationsResponseDomainShapecontributionIncludedInServiceChargeDomainShapecostsApplicableToTheDeedDomainShapecostsApplicableToTheDeedRangeShapecouncilSearchTurnaroundTimeInWorkingDaysDomainShapecouncilTaxAnnualChargeDomainShapecouncilTaxAnnualChargeRangeShapecouncilTaxBandDomainShapecountryDomainShapecountyCouncilDomainShapecredibilitySourcesDomainShapecurrencyDomainShapecurrencyRangeShapecurrentChargingBasisDomainShapecurrentEnergyRatingDomainShapecurrentEnergyRatingRangeShapecurrentNameDomainShapedangerousCladdingOrDefectsDomainShapedateInstalledDomainShapedateLastEmptiedDomainShapedateLastServicedDomainShapedateOfBirthDomainShapedateRemedialActionRequiredDomainShapedateReplacedDomainShapedateToBeConnectedDomainShapedealsWithDayToDayMaintenanceOfManagedAreaDomainShapedecisionDateDomainShapedecisionDomainShapedependsOnTransactionDomainShapedependsOnTransactionRangeShapeDeprecationChainRuledesignationTypeDomainShapediningAreasDomainShapedischargeCompliesWithGBRDomainShapedistanceInMilesDomainShapedistanceToNearestSewerageTreatmentDomainShapedistrictCouncilDomainShapedocumentDateDomainShapedocumentTypeCodeDomainShapeentranceFloorDomainShapeestimatedAmountDomainShapeestimatedAmountRangeShapeestimatedPriceDomainShapeestimatedPriceRangeShapeevidenceTypeDomainShapeevidenceTypeRangeShapeexpectedDeliveryDateDomainShapefeeIncludingVATDomainShapefeeIncludingVATRangeShapefiledUnderDomainShapeformerNameDomainShapeforTheManagedAreasDomainShapefoundsDomainShapefreeholdOwnerDomainShapefromDomainShapefromTheOwnersDomainShapegroundRentFrequencyDomainShapehandoverOnCompletionDomainShapehasAddressRangeShapehasAssertedCapacityDomainShapehasAssertedCapacityRangeShapehasBeenFloodedDomainShapehasBeenFloodedRangeShapehasChainPositionDomainShapehasChainPositionRangeShapehasEPCCertificateDomainShapehasEPCCertificateRangeShapehasEvidencedAuthorityDomainShapehasEvidencedAuthorityRangeShapehasFixedRentchargeDomainShapehasFloodDefencesDomainShapehasFloorplanDomainShapehasHelpToBuyEquityLoanDomainShapehasLiftDomainShapehasOthersAged17OrOverDomainShapehasParticipantDomainShapehasRegisteredTitleDomainShapehasRegisteredTitleRangeShapehasRoomDimensionDomainShapehasRoomDimensionRangeShapehasSmartHomeSystemsDomainShapehasSmartHomeSystemsRangeShapehasSprayFoamInstalledDomainShapehasSprayFoamInstalledRangeShapehasSubAssessmentDomainShapehasSubAssessmentRangeShapehasSurveyDomainShapehasSurveyRangeShapehasTenantCompanyDissolvedDomainShapehasUPRNDomainShapehasValidGuaranteesOrWarrantiesDomainShapehasValidGuaranteesOrWarrantiesRangeShapeheadingDomainShapeheadLeaseholderControlledDomainShapeheatingLastServicedDateDomainShapeheatingTypeDomainShapeheatingTypeRangeShapeholdingDepositDomainShapeholdingDepositRangeShapeidentifiesSamePropertyRangeShapeinclusionStatusRangeShapeisConnectedToNationalGridDomainShapeisFirstRegistrationDomainShapeisGroundRentPayableDomainShapeisGroundRentPayableRangeShapeisHMODomainShapeisInsuredDomainShapeisInsuredRangeShapeisLeaseQualifyingDomainShapeisLimitedCompanySaleDomainShapeisLocatedOverCommercialPremisesDomainShapeisLocatedOverCommercialPremisesRangeShapeisManagingAgentEmployedDomainShapeisSharedOwnershipDomainShapeisSharedOwnershipRangeShapeisStudentAccommodationDomainShapeisSupplyMeteredDomainShapeisSupplyMeteredRangeShapekitchensDomainShapelandlordInsuresIfFlatDomainShapelandlordNotifiedOfSaleDomainShapelastMaintainedDomainShapeleaseExtensionDetailsDomainShapeleaseTermDomainShapeleaseTermRangeShapeleaveKeysDomainShapelengthDomainShapelengthOfLeaseInYearsDomainShapeline1DomainShapeline2DomainShapelistedDateDomainShapelistPriceDomainShapelistPriceRangeShapelocalAuthorityNameDomainShapelocalAuthorityReferenceDomainShapelocationDomainShapeloftBoardedDomainShapeloftInsulatedDomainShapelogbookProviderDomainShapemanagementPlanInPlaceDomainShapemarketingTenureDomainShapemarketingTenureRangeShapemediatesDomainShapemediatesRangeShapeMetaShapeOverShapeGraphMetaShapemiddleNamesDomainShapempanDomainShapemprnDomainShapenewNameDomainShapeNoIdentityOverride_MetaShapenumberOfFloorsDomainShapenumberOfNonUkResidentSellersDomainShapenumberOfPropertiesSharingDomainShapenumberOfSellersDomainShapeoffMainsDrainageSystemTypeDomainShapeoffMainsDrainageSystemTypeRangeShapeofstedRatingDomainShapeofstedRatingRangeShapeOntoCleanAntiRigidSubclassing_MetaShapeOntoCleanIncompatibleIdentitySubclassing_MetaShapeorderDateDomainShapeorganisationNameDomainShapeorganisationReferenceDomainShapeorganisesBuildingInsuranceDomainShapeotherCentralHeatingFuelTypeDomainShapeotherHeatingFeaturesDomainShapeotherOwnershipDetailsDomainShapeotherPropertiesInManagedAreaDomainShapeotherRatingDomainShapeotherTypeDomainShapeoutsideAreasDomainShapeoutstandingEnforcementActionDomainShapeownershipTypeDomainShapeownershipTypeRangeShapeownerTypeDomainShapeownerTypeRangeShapeparkingArrangementsDomainShapepartOfTransactionDomainShapepartOfTransactionRangeShapeperilDomainShapeperilRangeShapepersonWhoDealsWithTheDeedOfCovenantDomainShapePIIWithoutDPVCoAnnotationRulepitchDomainShapeplannedAtTimeDomainShapeplanningStartDateDomainShapepostcodeDomainShapepostTownDomainShapepotentialCostDomainShapepreviousNameDomainShapepriceQualifierDomainShapepriceQualifierRangeShapepricingMethodologyDomainShapeprocedureForObtainingCertificateDomainShapeproductCodeDomainShapepropertiesContributingToMaintenanceOfManagedAreaDomainShapepropertyTypeDomainShapepropertyTypeRangeShapeproviderNameDomainShapeproviderReferenceDomainShapepublicSewerMapAttachedDomainShapepupilsDomainShapereceptionsDomainShaperecordsEstateDomainShaperecordsEstateRangeShapereferenceDomainShaperefNumberDomainShaperegulatedSearchTurnaroundTimeInWorkingDaysDomainShapereligiousCharacterDomainShaperemoveRubbishDomainShaperentDomainShaperentIncreaseCalculatedDomainShaperentRangeShaperentReviewFrequencyDomainShapereplaceLightFittingsDomainShapereportDateDomainShaperequirementsDomainShaperesponseDomainShaperetrievedOnDomainShaperiskIndicatorDomainShaperiskIndicatorRangeShaperoleNotationDomainShaperoleNotationRangeShaperoomNameDomainShapesaleAtUndervalueDomainShapeschoolTypeDomainShapesecurityDepositDomainShapesecurityDepositRangeShapesellerCompletedDeedOfCertificateDomainShapesellerContributesToServiceChargeDomainShapesellerContributesToServiceChargeRangeShapesellerOwnedPropertyDomainShapesellersCapacityDetailsDomainShapesellingAgentDomainShapesewerageBillsDomainShapesewerageProviderDomainShapesharedOwnershipPercentageDomainShapesharedOwnershipRentDomainShapesharedOwnershipRentRangeShapeShInSemantics_MetaShapeShViolationFloor_MetaShapesignedOnDomainShapesoldDateDomainShapesoldPriceDomainShapesoldPriceRangeShapesoldWithVacantPossessionDomainShapesoldWithVacantPossessionRangeShapesortCodeDomainShapespecialtiesDomainShapestartYearOfLeaseDomainShapestatusDateDomainShapestatusDomainShapesubCategoryDomainShapesupplierDomainShapesupplyClassificationDomainShapesupportedByDomainShapesupportedByRangeShapetakeReasonableCareDomainShapetargetsKindDomainShapetargetsKindRangeShapetenureKindDomainShapetenureKindRangeShapetitleExtentsDomainShapetitleNumberDomainShapetitlePropertyDescriptionDomainShapetoDomainShapetransactionIdDomainShapetransportTypeDomainShapetransportTypeRangeShapetypeOfConnectionDomainShapetypeOfConnectionRangeShapetypeOfFloodingDomainShapetypeOfHealthCareDomainShapeUFOCategoryValue_MetaShapeunitaryAuthorityDomainShapeurgentWorksCarriedOutDomainShapeurgentWorksRecommendedDomainShapevariantPredicateDomainShapevariantPredicateRangeShapevariantValueDomainShapewaterBillsDomainShapewaterProviderDomainShapewaterworksMapAttachedDomainShapewidthDomainShapewillHandoverLogbookDomainShapewillingToInsureDomainShapeyearCompletedDomainShapeyearDomainShapeyearInstalledDomainShapeyearOfBuildDomainShapeyearTestedDomainShapeyearWorkCarriedOutDomainShapeyieldDomainShapezoomDomainShape
2 · The severity scheme — regulatory weight (ODR-0013)
Flat pass/fail buries the loudest error under noise. ODR-0013 (Guizzardi) ties the three
SHACL severities to regulatory weight, not schema nesting: the rarest, most
damaging error (identity loss) must be the loudest; the routine omission must be the
quietest. Enforcement is a review rule — every sh:Violation shape must guard a
Kind's identity contract or an unprovenanced claim; no optional-attribute gap may carry
sh:Violation.
| Severity | What it marks | Examples | Live count |
|---|---|---|---|
sh:Violation | Breach of a Kind's identity contract, or an unprovenanced Claim | A Property with no resolvable UPRN-or-equivalent key; a
RegisteredTitle with no title number; a Role with no founding Relator
(a Seller with no Transaction); an opda:Claim
with no prov:wasDerivedFrom and no explicit "unverified" marker
(Moreau, ODR-0009). | 400 |
sh:Warning | Missing profile / disclosure constraint, or a sensitivity-marker gap | An overlay-profile gap; a special-category or personal-data marker absent on a
PII-bearing class (Pandit, ODR-0012 sensitivity gate — e.g. the
PIIWithoutDPVCoAnnotationRule). | 1 |
sh:Info | Absent optional attribute | A non-blocking quality rule's status materialisation (e.g. the UPRN- / lease-term- /
milestone-variance succession rules, held at sh:Info per ODR-0017 §1a). | 27 |
Counts are sh:severity assignments across the committed shapes graph. The
dominance of sh:Violation reflects the 365 identity-and-typing shapes in
§3; sh:Info/sh:Warning are the quality and sensitivity layers.
3 · Domain/range as constraint — 365 shapes (ODR-0029 R3)
ODR-0029 R3 drew the inference/validation boundary sharply: rdfs:domain /
rdfs:range on the OWL properties are documentary, never
materialised by OPDA's Safe-Group closure (which deliberately excludes the domain/range
rules — ODR-0025 §R7, so a naive consumer's EPCCertificate ⊑ Property mis-inference
is a consumer-side trap, not a fact in OPDA's graph). The enforceable typing is
carried instead as SHACL: sh:targetSubjectsOf a property →
sh:class on the subject (domain-as-constraint), and
sh:targetObjectsOf → sh:class on the object (range-as-constraint).
| Constraint role | Mechanism | Live count |
|---|---|---|
| Domain as constraint | sh:targetSubjectsOf → sh:class | 292 |
| Range as constraint | sh:targetObjectsOf → sh:class | 73 |
| Total domain/range shapes | — | 365 |
This is the same value-keyed enforcement doctrine the classification layer uses (ODR-0027): constraints are keyed to the property in use, not to a class membership a reasoner must first entail. It keeps the closure at zero added triples over the flat schema while the SHACL graph carries every real obligation. ODR-0029 R3 records 273 such shapes; the live count above re-reads them from the committed corpus on every build.
4 · Asserted vs entailed & SHACL-AF
A soundness condition binds this layer (Knublauch): asserted is never rendered as entailed, and every shape states the graph it targets plus its validator-capability caveat. Two distinct things must not be confused:
- Validation (SHACL, closed-world). What the author wants checked —
cardinality, datatype, identity-key presence, value-set membership, the
domain/range shapes of §3.
sh:minCount 1is notowl:minCardinality 1: the first is a closed-world obligation, the second an open-world entailment licence. - Inference (the frozen rule fragment, open-world). What the author wants
in the closure — subclass / subproperty / inverse / symmetric / transitive (the 7
sound-but-RL-incomplete rules of
config/opda-rdfs-plus.rules; not an OWL 2 RL reasoner, ODR-0029 R5). It materialises into a separate derived graph and adds 0 triples over the flat schema today.
SHACL-AF (advanced=True) — required for the full contract
9 sh:rule and 8 sh:sparql
constructs in the shapes graph are SHACL Advanced Features: the
non-blocking quality-rule status materialisations (UPRN / lease-term / milestone-variance /
capacity-authority / identifier succession, ODR-0017), the PII-without-DPV-co-annotation
meta-rule, and — critically — the sellersCapacity sh:xone
discrimination (ODR-0010 Rule 3). A SHACL-Core-only processor passes the
sh:xone-of-property-shapes vacuously (it reads
conforms true); the BASPI5 non-conformant exemplar only trips its
B1.3.2 violation under a SHACL-AF-capable validator — pyshacl with
advanced=True (known-issue ii on the
section reference; a conformant-Legal-Owner exemplar
guards the vacuous-pass direction).
5 · SHACL Play! — the SHACL reference rendering
Of the bake-off tools (ADR-0041), the OWL generators (pyLODE, WIDOCO, Ontospy) all score
None on SHACL — they document the class graph and skip the shapes. Sparna's
SHACL Play! is the only one that documents SHACL: it resolves all the blank
nodes (the nested sh:property shapes that the inventory above counts but cannot
name) into a readable per-shape reference. It is the authoritative term-by-term surface for
this layer.
Open the SHACL Play! rendering ↗
Related
The shapes that overlays add are catalogued on Overlay profiles
& gaps; the worked instance graphs each shape is exercised against are on
Exemplars. The merged shapes graph download and the 24
per-module TTLs are linked from the
artefacts index
on the section overview. Governing records: ODR-0013 (severity),
ODR-0029 (domain/range-as-constraint + inference boundary), ODR-0017 (SHACL-AF quality rules),
ODR-0010 (overlay sh:xone).
Comments
Loading comments…
Sign in to post a comment