Context
In Solid, SHACL shapes function as interoperability contracts between:
- Applications
- User data storage Pods
- Semantic vocabularies
Validation schemas are widely consumed and may be cached by clients.
Decision
Shapes in the catalogue should be treated as immutable artefacts once published.
Changes to validation logic should always be introduced via:
- New shapes
- New namespaces
Rationale
Prevents Breaking Decentralised Clients
Solid applications may:
- Ship validation logic locally
- Cache shapes
- Operate offline
Modifying shapes after release could cause inconsistent behaviour.
Supports Long-Term Data Interoperability
Solid's decentralised ecosystem requires stable contracts to allow independent development.
Enables Predictable Governance
Immutability simplifies:
- Review processes
- Security auditing
- Compliance validation
Alternatives Considered
Mutable Shape Definitions
Rejected because:
- Creates silent interoperability failures
- Makes Pod data validation unpredictable
File-Level Versioning Only
Partial solution but insufficient because clients may reference specific shape IRIs.
Implementation Recommendations
Adopt:
Namespaces
When a breaking change to a shape is required, the existing shape must remain unchanged and a new shape with a new namespace IRI should be created in the same domain file.
Example:
Shape Publishing Rules
Once merged:
- Shapes are considered frozen
- New behaviour must be introduced via new IRIs
Optional Metadata Extensions
Allowed:
- sh:description
- sh:comment
- sh:example
Not allowed post-release:
Governance Status
- Shape rule changes — Require creation of a new shape
- Optional property additions — Allowed
- Cardinality or class changes — Not allowed after release
Context
In Solid, SHACL shapes function as interoperability contracts between:
Validation schemas are widely consumed and may be cached by clients.
Decision
Shapes in the catalogue should be treated as immutable artefacts once published.
Changes to validation logic should always be introduced via:
Rationale
Prevents Breaking Decentralised Clients
Solid applications may:
Modifying shapes after release could cause inconsistent behaviour.
Supports Long-Term Data Interoperability
Solid's decentralised ecosystem requires stable contracts to allow independent development.
Enables Predictable Governance
Immutability simplifies:
Alternatives Considered
Mutable Shape Definitions
Rejected because:
File-Level Versioning Only
Partial solution but insufficient because clients may reference specific shape IRIs.
Implementation Recommendations
Adopt:
Namespaces
When a breaking change to a shape is required, the existing shape must remain unchanged and a new shape with a new namespace IRI should be created in the same domain file.
Example:
Shape Publishing Rules
Once merged:
Optional Metadata Extensions
Allowed:
Not allowed post-release:
Governance Status