Policy Inference
Contents
Semantics of Action Relations
odrl:narrowerThan
If an Action α is narrower than another Action β (α odrl:includedIn β .
), all Rules defined for β must also hold for α, but not necessarily vice versa.
Example:
![]() |
odrl:play odrl:includedIn odrl:present .
odrl:display odrl:includedIn odrl:present .
odrl:print odrl:includedIn odrl:present . |
Because odrl:play, odrl:display, odrl:print
are all narrower actions of odrl:present
, policy <http://example.com/policy:01b>
containing additional permissions for odrl:play, odrl:display, odrl:print
can be inferred from policy <http://example.com/policy:01a>
and be further expanded into <http://example.com/policy:01c>
:
Raw | Inferred | Expanded |
---|---|---|
<http://example.com/policy:01a>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:present ;
odrl:assignee ex:Bob
] ;
odrl:prohibition [
a odrl:Prohibition ;
odrl:target ex:PartB ;
odrl:action odrl:print ;
odrl:assignee ex:Bob
] . |
<http://example.com/policy:01b>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:present ;
odrl:action odrl:play ;
odrl:action odrl:display;
odrl:action odrl:print ;
odrl:assignee ex:Bob
] ;
odrl:prohibition [
a odrl:Prohibition ;
odrl:target ex:PartB ;
odrl:action odrl:print ;
odrl:assignee ex:Bob
] . |
<http://example.com/policy:01c>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:present ;
odrl:assignee ex:Bob
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:play;
odrl:assignee ex:Bob
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:display;
odrl:assignee ex:Bob
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:print;
odrl:assignee ex:Bob
] ;
odrl:prohibition [
a odrl:Prohibition ;
odrl:target ex:PartB ;
odrl:action odrl:print ;
odrl:assignee ex:Bob
] . |
Semantics of Party Relations
odrl:partOf
If a Party ρ is part of another Party θ (ρ odrl:partOf θ .
), all Rules defined for θ must also hold for ρ, but not necessarily vice versa.
Example:
![]() |
ex:Bob odrl:partOf ex:W3C .
ex:Alice odrl:partOf ex:W3C . |
Because ex:Bob, ex:Alice
are both member of ex:W3C
, policy <http://example.com/policy:02b>
containing additional permissions with ex:Bob, ex:Alice
as assignees can be inferred from policy <http://example.com/policy:02a>
and be further expanded into <http://example.com/policy:02c>
:
Raw | Inferred | Expanded |
---|---|---|
<http://example.com/policy:02a>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:play;
odrl:assignee ex:W3C
] . |
<http://example.com/policy:02b>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:play;
odrl:assignee ex:W3C ;
odrl:assignee ex:Alice ;
odrl:assignee ex:Bob
] . |
<http://example.com/policy:02c>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:play;
odrl:assignee ex:W3C
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:play;
odrl:assignee ex:Alice
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:play;
odrl:assignee ex:Bob
] . |
Semantics of Asset Relations
odrl:partOf
If an Asset σ is part of another Asset μ (σ odrl:partOf μ .
), all Rules defined for μ must also hold for σ, but not necessarily vice versa.
Example:
![]() |
ex:PartA odrl:partOf ex:Dataset1 .
ex:PartB odrl:partOf ex:Dataset1 . |
Because ex:PartA, ex:PartB
are both part of ex:Dataset1
, policy <http://example.com/policy:03b>
containing additional permissions for targets ex:PartA, ex:PartB
can be inferred from policy <http://example.com/policy:03a>
and be further expanded into <http://example.com/policy:03c>
:
Raw | Inferred | Expanded |
---|---|---|
<http://example.com/policy:03a>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:Dataset1 ;
odrl:action odrl:play ;
odrl:assignee ex:Alice
] . |
<http://example.com/policy:03b>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:Dataset1 ;
odrl:target ex:PartA ;
odrl:target ex:PartB ;
odrl:action odrl:play ;
odrl:assignee ex:Alice
] . |
<http://example.com/policy:03c>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:Dataset1 ;
odrl:action odrl:play ;
odrl:assignee ex:Alice
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:play ;
odrl:assignee ex:Alice
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartB ;
odrl:action odrl:play ;
odrl:assignee ex:Alice
] . |
Putting it all together
Raw | Inferred | Expanded |
---|---|---|
<http://example.com/policy:04a>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:Dataset1 ;
odrl:action odrl:present ;
odrl:assignee ex:W3C
] . |
<http://example.com/policy:04b>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:Dataset1 ;
odrl:target ex:PartA ;
odrl:target ex:PartB ;
odrl:action odrl:present ;
odrl:action odrl:play ;
odrl:action odrl:display ;
odrl:action odrl:print ;
odrl:assignee ex:W3C ;
odrl:assignee ex:Alice ;
odrl:assignee ex:Bob ;
] . |
<http://example.com/policy:04c>
a odrl:Policy;
odrl:permission [
a odrl:Permission ;
odrl:target ex:Dataset1 ;
odrl:action odrl:present ;
odrl:assignee ex:W3C
] ,
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:play ;
odrl:assignee ex:Alice
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartB ;
odrl:action odrl:play ;
odrl:assignee ex:Alice
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:display ;
odrl:assignee ex:Alice
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartB ;
odrl:action odrl:display ;
odrl:assignee ex:Alice
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:print ;
odrl:assignee ex:Alice
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartB ;
odrl:action odrl:print ;
odrl:assignee ex:Alice
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:play ;
odrl:assignee ex:Bob
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartB ;
odrl:action odrl:play ;
odrl:assignee ex:Bob
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:display ;
odrl:assignee ex:Bob
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartB ;
odrl:action odrl:display ;
odrl:assignee ex:Bob
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartA ;
odrl:action odrl:print ;
odrl:assignee ex:Bob
] ;
odrl:permission [
a odrl:Permission ;
odrl:target ex:PartB ;
odrl:action odrl:print ;
odrl:assignee ex:Bob
] . |