Track: DPROD 1.1 data-contracts post-merge follow-up.
Plan item 2.4 of dprod-contracts/docs/changes-plan.md (source: Matthias email 19d08a1d item #13). The DPROD spec fixes the conflict policy to "Prohibition > Permission". A per-policy odrl:conflict declaration would silently change that semantics, so it should be rejected by SHACL.
Steps:
- Add
dprod-shapes:RejectPolicyConflictShape (after the existing Reject* block in dprod-contracts-shapes.ttl) with sh:targetSubjectOf odrl:conflict and:
sh:property [ sh:path odrl:conflict ; sh:maxCount 0 ; sh:severity sh:Violation ; sh:message "DPROD contracts fix conflict resolution to Prohibition > Permission; per-policy odrl:conflict is not allowed." ]
Verify: a test policy with odrl:conflict odrl:prohibit triggers a violation; existing examples without it still pass.
Note: follows the same declarative sh:targetSubjectOf pattern adopted for the other Reject* shapes in item 2.2.
Track: DPROD 1.1 data-contracts post-merge follow-up.
Plan item 2.4 of
dprod-contracts/docs/changes-plan.md(source: Matthias email 19d08a1d item #13). The DPROD spec fixes the conflict policy to "Prohibition > Permission". A per-policyodrl:conflictdeclaration would silently change that semantics, so it should be rejected by SHACL.Steps:
dprod-shapes:RejectPolicyConflictShape(after the existing Reject* block indprod-contracts-shapes.ttl) withsh:targetSubjectOf odrl:conflictand:sh:property [ sh:path odrl:conflict ; sh:maxCount 0 ; sh:severity sh:Violation ; sh:message "DPROD contracts fix conflict resolution to Prohibition > Permission; per-policy odrl:conflict is not allowed." ]Verify: a test policy with
odrl:conflict odrl:prohibittriggers a violation; existing examples without it still pass.Note: follows the same declarative
sh:targetSubjectOfpattern adopted for the other Reject* shapes in item 2.2.