OpenEPCIS PPWR SHACL Shapes
type: ShapesGraph
description: SHACL validation shapes for the PPWR vocabulary (EU Regulation 2025/40).
created: 2026-05-01
modified: 2026-06-18

PPWR Packaging Shape
type: NodeShape
target class: Packaging
property:
  path: hasPackagingTier
  node kind: IRI
  in: Sales
  in: Grouped
  in: Transport
  min count: 1
  max count: 1
  message: euppwr:Packaging must declare exactly one packagingTier (Sales / Grouped / Transport; Article 3)
property:
  path: hasRecyclabilityGrade
  node kind: IRI
  in: GradeA
  in: GradeB
  in: GradeC
  max count: 1
  message: euppwr:hasRecyclabilityGrade must be A, B, or C (PPWR Article 6, Annex II)
property:
  path: harmonisedSymbol
  datatype: anyURI
  message: euppwr:harmonisedSymbol must be a URI referencing a harmonised label per PPWR Article 12

Packaging material details shape
type: NodeShape
target objects of: packagingMaterial
property:
  path: packagingMaterialType
  node kind: IRI
  min count: 1
  message: Each gs1:PackagingMaterialDetails entry must reference a gs1:PackagingMaterialTypeCode member via gs1:packagingMaterialType

Returnable package deposit shape
type: NodeShape
target objects of: hasReturnablePackageDeposit
property:
  path: returnablePackageDepositAmount
  min count: 1
  message: A returnable-package deposit card must state the deposit via gs1:returnablePackageDepositAmount (gs1:PriceSpecification with gs1:price + gs1:priceCurrency)

Deposit-return refund issued sensor report
type: NodeShape
target subjects of: depositRefundIssued
property:
  path: depositRefundIssued
  datatype: decimal
  min inclusive: 0.00
  message: euppwr:depositRefundIssued must be a non-negative decimal monetary amount (PPWR Art. 50)

Recyclability-grade declaration shape
type: NodeShape
target subjects of: hasRecyclabilityGrade
property:
  path: recyclabilityScore
  datatype: decimal
  min inclusive: 0
  max inclusive: 100
  message: oec:recyclabilityScore is a percentage in [0, 100] aligned with the grade boundaries in Annex II (A ≥ 95, B ≥ 80, C ≥ 70)
property:
  path: designForRecyclingMethodology
  datatype: string
  max count: 1
  message: Cite exactly one D4R methodology (RecyClass, CEFLEX, APR, …)