Compliance corpus
ds-odrl-compliance-rdf is a corpus of ODRL test cases for policy engines, written in Turtle. Each case pairs a request with the compliance report an engine must produce. The pages show the policies of each case, translated to ODRL JSON-LD. The claims, the profile and the expected report are left out: they are inputs of an engine, not of a reader.
Some terms of the corpus are not ODRL. A claim key (dsc:ClaimKey) is a blank node in Turtle. The translation gives it an IRI of the case, so it reads as "the claim" followed by its key. Inheritance (dsc:inheritsFrom) becomes ODRL's inheritFrom.
The Reading column says whether every condition of a policy reads, and how many warnings the renderer raised. License of the source: Apache-2.0.
| Policy | What it shows | Reading |
|---|---|---|
| And sequence all factors in order 01 | odrl:andSequence: a permission gated on two access-factor claims that both hold, read like odrl:and since a request has no order of events | complete |
| And sequence one factor false 01 | odrl:andSequence: one of two access-factor claims is false, so the sequence fails, the permission does not grant, and the closed profile denies | complete |
| Asset collection target covers member 01 | odrl:AssetCollection: a permission whose target is a collection covers a request for one of its member assets, under a closed profile | complete |
| Closed behaviour prohibition with remedy 01 | Closed behaviour: a single prohibition that genuinely applies triggers its own odrl:remedy duty, which is reported as an outstanding, violated sibling rule | complete |
| Conflict perm supersedes prohibition remedy 01 | A single, isolated odrl:conflict odrl:perm collision: the winning permission is Active/Fulfilled, and the superseded prohibition's own odrl:remedy is Inactive/NonSet -- and must not be outstanding in the coarse Response.duties list either | complete |
| Custom policy kind 01 | dsc:policyKind: a policy.kind naming none of ODRL's 7 native subclasses evaluates like odrl:Set, and does not trigger Agreement-only party scoping | 1 warning |
| Diamond inherits from grandparent once 01 | Genuine diamond dsc:inheritsFrom (grandparent -> {parent-1, parent-2} -> child): the grandparent's permission and obligation reach the child exactly once, not once per path | complete |
| Duty advise does not gate permission 01 | dutyMode=Advise: an outstanding POLICY-LEVEL odrl:obligation is reported violated but does not gate a sibling, duty-free permission for a different action | complete |
| Duty advise gates on any sibling duty 01 | dutyMode=Advise: a permission with TWO sibling odrl:duty entries is gated Inactive when ANY of them is violated, not only the first | complete |
| Duty mode deny consequence resolves permission 01 | dutyMode=Deny: a permission's unconstrained odrl:duty is gated Active once its own odrl:consequence resolves the chain, matching decide()'s coarse Allow | complete |
| Inherited agreement duty chain 01 | Inherited Agreement: a duty-free permission genuinely conflicts with, and (conflict=perm) beats, a colliding prohibition, whose remedy therefore never fires; a SEPARATE, duty-gated permission for the identical action/target is independently denied by dutyMode=deny via an outstanding duty->consequence chain; a refined print permission gated by purpose AND (riskScore OR recipient OR roles); three-plus claim shapes including an array-valued one. | complete |
| Multi parent inherit conflict 01 | Genuine multi-parent odrl:inheritFrom: two parents leave odrl:conflict unset, only the child declares it -- not a divergence, so the child's own odrl:perm resolves the merged collision normally | complete |
| Open behaviour default allow 01 | Open behaviour: a policy with a genuinely EMPTY permissions list still allows any action by default | 1 warning |
| Party collection member is assignee 01 | odrl:PartyCollection: a member of the collection an Agreement is assigned to is its assignee, under a closed profile | complete |
| Recipient refined prohibition raw derived split 01 | A real-world-derived policy: raw data may be read/derived but never displayed; only the derived asset may be distributed; distributing the RAW asset is prohibited except to the one authorized recipient (an action refinement), each prohibition carries its own remedy, and an unconstrained attribution duty contrasts with a time-bound deletion duty | complete |
| Vc backed claim gates permission 01 | A VC-backed claim that genuinely gates a permission's own constraint, not merely decorative | complete |
| Xone exactly one factor 01 | odrl:xone: a permission gated on exactly one of three access-factor claims being true, not merely at least one | complete |