Repository navigation
ODRL Model Restrictions
Elena Molino edited this page Apr 14, 2026
·
1 revision
- Solid arrows represent mandatory elements in the model.
- Dotted arrows represent optional elements in the model.
- Subroutine-shaped nodes indicate reusable or separately validated components.
A Policy must either use ODRL terms OR declare a profile. In the last case, the profile property MUST be used to indicate the IRIs of the ODRL Profile(s).
%%{ init: { "theme": "neutral" } }%%
flowchart TD
A[odrl:Policy]
A --> B[uid: IRI]
A --> C[odrl:Rule]
C -. permission .-> D[[odrl:Permission]]
C -. obligation .-> E[[odrl:Duty]]
C -. prohibition .-> F[[odrl:Prohibition]]
A -.-> G[profile: IRI]
A -.-> H[inheritFrom: IRI]
A -.-> I[conflict: ConflictTerm]
- Permission
%%{ init: { "theme": "neutral" } }%%
flowchart TD
A[odrl:Permission]
A -.->|assigner 0..1| B[[Party]]
A -.->|assignee 0..1| B[[Party]]
A -- action 1 --> C[[Action]]
A -- target 1 --> D[[Asset]]
A -.->|failure 0..*| E[[Rule]]
A -.->|constraint 0..*| F[[Constraint]]
A -.->|uid 0..1| G[uid: IRI]
A -.->|duty 0..*| E[[Duty]]
MUST have one assigner property value
- Permission
%%{ init: { "theme": "neutral" } }%%
flowchart TD
A[odrl:Permission]
A -->|assigner 1| B[[Party]]
A -.->|assignee 0..1| B[[Party]]
A -- action 1 --> C[[Action]]
A -- target 1 --> D[[Asset]]
A -.->|failure 0..*| E[[Rule]]
A -.->|constraint 0..*| F[[Constraint]]
A -.->|uid 0..1| G[uid: IRI]
A -.->|duty 0..*| E[[Duty]]
MUST have one assigner property value
MUST have one assignee property value
- Permission
%%{ init: { "theme": "neutral" } }%%
flowchart TD
A[odrl:Permission]
A -->|assigner 1| B[[Party]]
A -->|assignee 1| B[[Party]]
A -- action 1 --> C[[Action]]
A -- target 1 --> D[[Asset]]
A -.->|failure 0..*| E[[Rule]]
A -.->|constraint 0..*| F[[Constraint]]
A -.->|uid 0..1| G[uid: IRI]
A -.->|duty 0..*| E[[Duty]]
An Action (except for use and transfer) MUST have one includedIn property value
%%{ init: { "theme": "neutral" } }%%
flowchart TD
A[Action]
A -.->|refinement 0..*| B[[Constraint]]
A -.->|implies 0..*| C[[Action]]
A -->|includedIn 1| C[[Action]]
%%{ init: { "theme": "neutral" } }%%
flowchart TD
A[odrl:Constraint]
A --> B[uid: IRI]
A -- leftOperand --> C[Left Operand]
A -- operator --> D[Operator]
A -- rightOperand --> E[XOR]
E --> F[rightOperand]
E --> G[rightOperandReference]
A -. unit .-> H[unit: IRI]
A -.-> I[dataType]
A -.-> J[status]