Add adalbert-contracts: ODRL 2.2 profile for data governance#160
Open
matthiasautrata wants to merge 1 commit into
Open
Add adalbert-contracts: ODRL 2.2 profile for data governance#160matthiasautrata wants to merge 1 commit into
matthiasautrata wants to merge 1 commit into
Conversation
Contributes Adalbert as a complementary approach to dprod-contracts, using standard ODRL Permission/Duty/Prohibition types with extensions for lifecycle management, bilateral duties, recurrence, and formal evaluation semantics. Includes data-use policies (odrl:Set) for organizational access control alongside bilateral data contracts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This was referenced May 28, 2026
jgeluk
added a commit
that referenced
this pull request
May 28, 2026
## Summary - Add \`@matthiasautrata\` as a code owner (active contributor to data-contracts work via PR #160 and review feedback on PR #156) - Remove \`@nvar\` and \`@andrea-gioia\` - \`@joshcornejo\` was already an owner, no change there ## Effect Affects future PRs targeting \`develop\`: \`@matthiasautrata\` will be auto-requested as a reviewer; \`@nvar\` and \`@andrea-gioia\` will no longer be. The \`main\` copy of CODEOWNERS is unchanged for now — it'll get synced at ballot time when the next merge from \`develop\` lands on \`main\`. ## Test plan - [ ] Confirm the new owner set is what you want before merging - [ ] After merge, open a throwaway PR against develop to verify the auto-requested reviewer set updates as expected (optional) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
matthiasautrata
pushed a commit
that referenced
this pull request
May 28, 2026
## Summary Introduces `dprod-contracts/` — a self-contained ODRL 2.2 profile that extends DPROD with deterministic data-governance semantics. Destined for DPROD 1.1 once the design stabilises on `develop`; this PR is the working space for that. The work has been actively iterated with review rounds from Matthias Autrata and Stephen — full status of every reviewer item is tracked in [`dprod-contracts/docs/changes-plan.md`](dprod-contracts/docs/changes-plan.md). ## Scope DPROD 1.1's contracts story is being decomposed across multiple feature branches. This PR is **one** contribution; Matthias's [#160 `add-adalbert-contracts`](#160) is a parallel/complementary approach landing in its own folder. Neither branch needs to be the final word on contracts — both target `develop`, and final integration (including wiring into `spec-generator/main.py`) will happen once the design crystallises. ## What's in the branch ### Ontology + shapes - `dprod-contracts.ttl` — OWL profile: `DataOffer`, `DataContract`, `RuntimeReference`, lifecycle `State` enum, duty role properties, deadline/recurrence, logical negation, asset/party hierarchy - `dprod-contracts-shapes.ttl` — SHACL validation: policy/rule/contract/operand shapes and explicit rejection shapes for unsupported ODRL constructs - `dprod-contracts-prof.ttl` — DXPROF profile descriptor with `prof:isProfileOf odrl:core` ### Examples - `examples/data-contract.ttl` — bilateral DataOffer + DataContract - `examples/data-use-policy.ttl` — role-based access with purpose constraints - `examples/baseline.ttl` — broader test policy set - `examples/odcs.ttl` + `odcs.md` — ODCS interop walk-through ### Documentation - `docs/specification.md` — normative vocabulary reference - `docs/formal-semantics.md` — evaluation semantics, amenable to Dafny/Why3/Coq - `docs/contracts-guide.md`, `docs/policy-writers-guide.md`, `docs/overview.md` — guides - `docs/term-mapping.md` — DPROD ↔ ODRL/DCAT/ODCS term map - `docs/changes-plan.md` — live triage of reviewer feedback (Matthias, Stephen) - `docs/recurrence-redesign.md` — drafted Bucket 4 redesign (RFC 5545 RRULE-based recurrence), pending execution ### Core repo - `ontology/dprod/dprod-ontology.ttl` — new contributor entries - `respec/template.html` — editor / author list updates ## Build impact `dprod-contracts/` is **not yet wired into the spec generator** — this is deliberate while the design is still in flight. `build.sh` continues to produce the current DPROD 1.0 (Beta) spec unchanged. ## Outstanding (tracked in `changes-plan.md`) - Bucket 4 — recurrence redesign (one large change, drafted in `docs/recurrence-redesign.md`) - Bucket 5 — open design decisions surfaced to the group: 5.4 (`dprod:path` typing), 5.5 (`dprod:select` keep/remove), 5.7 (`DataDuty` subtype), 5.8 / 5.9 (DataOffer / acceptsOffer cardinality — Stephen's basket-model proposal) - Bucket 6 — deferred items pending external input 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Jacobus Geluk <jacobus.geluk@ekgf.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dprod-contracts, using standard ODRL 2.2Permission,Duty, andProhibitiontypes (no custom Rule subclasses)odrl:Set) for organizational access control — role-based permissions, purpose restrictions, classification constraints — alongside bilateral data contractsdprod-contractsexamples into Adalbert syntax (examples/dprod-translated.ttl), demonstrating compatibilitydocs/DPROD-Adalbert-Comparison.md) with class/property/action mapping tablesWhat's included
adalbert-core.ttladalbert-shacl.ttladalbert-prof.ttladalbert-due.ttlexamples/data-contract.ttlexamples/data-use-policy.ttlexamples/baseline.ttlexamples/dprod-translated.ttldocs/SPECIFICATION.mddocs/SEMANTICS.mddocs/DATA-CONTRACTS.mddocs/DATA-USE-POLICIES.mddocs/DPROD-Adalbert-Comparison.mdKey architectural difference
dprod-contracts introduces
dprod:Promiseas a newodrl:Rulesubclass. Adalbert uses standardodrl:Dutyfor all obligations, distinguishing provider from consumer duties viaadalbert:subject. Every Adalbert policy is a valid ODRL 2.2 policy that any ODRL processor can partially understand.Scope note
Adalbert intentionally does not address pricing (dprod-contracts has
dprod:hasPricing). Adalbert focuses on rights, obligations, and constraints.🤖 Generated with Claude Code