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.

PolicyWhat it showsReading
And sequence all factors in order 01odrl:andSequence: a permission gated on two access-factor claims that both hold, read like odrl:and since a request has no order of eventscomplete
And sequence one factor false 01odrl:andSequence: one of two access-factor claims is false, so the sequence fails, the permission does not grant, and the closed profile deniescomplete
Asset collection target covers member 01odrl:AssetCollection: a permission whose target is a collection covers a request for one of its member assets, under a closed profilecomplete
Closed behaviour prohibition with remedy 01Closed behaviour: a single prohibition that genuinely applies triggers its own odrl:remedy duty, which is reported as an outstanding, violated sibling rulecomplete
Conflict perm supersedes prohibition remedy 01A 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 eithercomplete
Custom policy kind 01dsc:policyKind: a policy.kind naming none of ODRL's 7 native subclasses evaluates like odrl:Set, and does not trigger Agreement-only party scoping1 warning
Diamond inherits from grandparent once 01Genuine diamond dsc:inheritsFrom (grandparent -> {parent-1, parent-2} -> child): the grandparent's permission and obligation reach the child exactly once, not once per pathcomplete
Duty advise does not gate permission 01dutyMode=Advise: an outstanding POLICY-LEVEL odrl:obligation is reported violated but does not gate a sibling, duty-free permission for a different actioncomplete
Duty advise gates on any sibling duty 01dutyMode=Advise: a permission with TWO sibling odrl:duty entries is gated Inactive when ANY of them is violated, not only the firstcomplete
Duty mode deny consequence resolves permission 01dutyMode=Deny: a permission's unconstrained odrl:duty is gated Active once its own odrl:consequence resolves the chain, matching decide()'s coarse Allowcomplete
Inherited agreement duty chain 01Inherited 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 01Genuine 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 normallycomplete
Open behaviour default allow 01Open behaviour: a policy with a genuinely EMPTY permissions list still allows any action by default1 warning
Party collection member is assignee 01odrl:PartyCollection: a member of the collection an Agreement is assigned to is its assignee, under a closed profilecomplete
Recipient refined prohibition raw derived split 01A 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 dutycomplete
Vc backed claim gates permission 01A VC-backed claim that genuinely gates a permission's own constraint, not merely decorativecomplete
Xone exactly one factor 01odrl:xone: a permission gated on exactly one of three access-factor claims being true, not merely at least onecomplete