Warning:
This wiki has been archived and is now read-only.

Policy Inference

From Permissions and Obligations Expression Working Group
Jump to: navigation, search

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:

Action narrower.png
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:

Party member.png
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:

Asset part.png
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
    ] .