Context
Follow-up from #198 (fixme.md items 2, 13, 14, 32 and especially 40).
The formal Eval algorithm partitions duties only when d.subject exactly matches the policy grantor or grantee. A duty without dprod:subjectOfDuty belongs to neither returned set, although it still participates in state updates and violation detection. Consumer obligations in an open Offer may legitimately have no known consumer yet, but the formal semantics never defines what happens when that Offer becomes an Agreement.
The root problem is an undefined duty-bearer binding rule, not merely missing dprod:objectOfDuty values in examples.
Decision required
Define bearer requirements and defaulting separately for Set, Offer, Agreement/DataContract, and standalone named Duty contexts.
Acceptance criteria
- Add regression examples/tests first showing that a subjectless duty is currently dropped from both returned duty partitions.
- Specify when
dprod:subjectOfDuty is required, optional, or bound during Offer-to-Agreement formation.
- Ensure no duty can silently disappear from the evaluation result.
- An unresolved bearer in a context that requires one must fail validation or evaluation with a hard error.
- Clarify that
dprod:objectOfDuty is an affected party, not the bearer, and document when it is useful but optional.
- Align SHACL, formal semantics, contracts guide, and examples.
Context
Follow-up from #198 (
fixme.mditems 2, 13, 14, 32 and especially 40).The formal
Evalalgorithm partitions duties only whend.subjectexactly matches the policy grantor or grantee. A duty withoutdprod:subjectOfDutybelongs to neither returned set, although it still participates in state updates and violation detection. Consumer obligations in an open Offer may legitimately have no known consumer yet, but the formal semantics never defines what happens when that Offer becomes an Agreement.The root problem is an undefined duty-bearer binding rule, not merely missing
dprod:objectOfDutyvalues in examples.Decision required
Define bearer requirements and defaulting separately for Set, Offer, Agreement/DataContract, and standalone named Duty contexts.
Acceptance criteria
dprod:subjectOfDutyis required, optional, or bound during Offer-to-Agreement formation.dprod:objectOfDutyis an affected party, not the bearer, and document when it is useful but optional.