Context
Follow-up from #198 (fixme.md items 23 and 31).
The supported ODRL operator surface is inconsistent:
docs/policy-writers-guide.md advertises odrl:isAllOf.
docs/formal-semantics.md omits isAllOf from both ComparisonOperator and apply.
dprod-contracts-shapes.ttl accepts any value typed as an ODRL operator instead of enforcing the evaluator's supported set.
- Other standard ODRL operators (
hasPart, isA, isPartOf) and andSequence are neither implemented nor explicitly rejected.
An accepted policy must never reach an evaluator operation whose semantics are undefined.
Decision required
Define the exact ODRL comparison and logical-constraint surface supported by DPROD Contracts. Every supported construct must have formal evaluation semantics; every unsupported construct must fail SHACL validation.
Acceptance criteria
- Add regression tests first showing that
isAllOf is currently documented but not represented by the formal evaluator, and that an unsupported operator currently passes validation.
- Publish one normative supported-operator matrix.
- Add formal semantics for every supported operator, including
isAllOf if retained.
- Add SHACL allow-list validation and hard-error on unsupported operators and logical operands.
- Align the ontology, specification, writer guide, examples, and formal semantics with that matrix.
- Existing examples continue to validate.
Unknown operators must not be treated as false, ignored, or delegated to an unspecified fallback.
Context
Follow-up from #198 (
fixme.mditems 23 and 31).The supported ODRL operator surface is inconsistent:
docs/policy-writers-guide.mdadvertisesodrl:isAllOf.docs/formal-semantics.mdomitsisAllOffrom bothComparisonOperatorandapply.dprod-contracts-shapes.ttlaccepts any value typed as an ODRL operator instead of enforcing the evaluator's supported set.hasPart,isA,isPartOf) andandSequenceare neither implemented nor explicitly rejected.An accepted policy must never reach an evaluator operation whose semantics are undefined.
Decision required
Define the exact ODRL comparison and logical-constraint surface supported by DPROD Contracts. Every supported construct must have formal evaluation semantics; every unsupported construct must fail SHACL validation.
Acceptance criteria
isAllOfis currently documented but not represented by the formal evaluator, and that an unsupported operator currently passes validation.isAllOfif retained.Unknown operators must not be treated as false, ignored, or delegated to an unspecified fallback.