Skip to content

Add adalbert-contracts: ODRL 2.2 profile for data governance#160

Open
matthiasautrata wants to merge 1 commit into
EKGF:developfrom
matthiasautrata:add-adalbert-contracts
Open

Add adalbert-contracts: ODRL 2.2 profile for data governance#160
matthiasautrata wants to merge 1 commit into
EKGF:developfrom
matthiasautrata:add-adalbert-contracts

Conversation

@matthiasautrata
Copy link
Copy Markdown

Summary

  • Contributes Adalbert as a complementary approach to dprod-contracts, using standard ODRL 2.2 Permission, Duty, and Prohibition types (no custom Rule subclasses)
  • Adds data-use policies (odrl:Set) for organizational access control — role-based permissions, purpose restrictions, classification constraints — alongside bilateral data contracts
  • Includes formal evaluation semantics (normative specification amenable to Dafny/Why3/Coq verification)
  • Translates all 8 dprod-contracts examples into Adalbert syntax (examples/dprod-translated.ttl), demonstrating compatibility
  • Provides a detailed comparison document (docs/DPROD-Adalbert-Comparison.md) with class/property/action mapping tables

What's included

File Description
adalbert-core.ttl OWL ontology (ODRL profile extension)
adalbert-shacl.ttl SHACL validation shapes
adalbert-prof.ttl W3C DXPROF profile metadata
adalbert-due.ttl Data use vocabulary (33 operands, domain-specific actions)
examples/data-contract.ttl Bilateral contract with provider SLA + consumer duties
examples/data-use-policy.ttl Role-based access control with purpose constraints
examples/baseline.ttl Comprehensive test suite (8 contracts, 2 subscriptions)
examples/dprod-translated.ttl All 8 dprod-contracts examples in Adalbert
docs/SPECIFICATION.md Technical vocabulary reference
docs/SEMANTICS.md Formal evaluation semantics (normative)
docs/DATA-CONTRACTS.md Contract authoring guide
docs/DATA-USE-POLICIES.md Policy authoring guide
docs/DPROD-Adalbert-Comparison.md Side-by-side comparison with dprod-contracts

Key architectural difference

dprod-contracts introduces dprod:Promise as a new odrl:Rule subclass. Adalbert uses standard odrl:Duty for all obligations, distinguishing provider from consumer duties via adalbert: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

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>
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Feb 16, 2026

CLA assistant check
All committers have signed the CLA.

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants