Skip to content

DPROD Contracts: define bearer binding for subjectless duties #240

Description

@jgeluk

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

  1. Add regression examples/tests first showing that a subjectless duty is currently dropped from both returned duty partitions.
  2. Specify when dprod:subjectOfDuty is required, optional, or bound during Offer-to-Agreement formation.
  3. Ensure no duty can silently disappear from the evaluation result.
  4. An unresolved bearer in a context that requires one must fail validation or evaluation with a hard error.
  5. Clarify that dprod:objectOfDuty is an affected party, not the bearer, and document when it is useful but optional.
  6. Align SHACL, formal semantics, contracts guide, and examples.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Data ContractsWork related to DPROD data contracts, agreements, data rights, and the ODRL profile.modelingModeling decisions & ontology design

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions