diff --git a/model/index.html b/model/index.html index 6d2d33a..01e744f 100644 --- a/model/index.html +++ b/model/index.html @@ -152,46 +152,42 @@

Policy

Example Use Case: The below Set Policy type grants the Permission to read and the Prohibition to reproduce the target Asset http//example.com/asset:9898. No Parties or other elements are involved.

-
{
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Set",
-    "@id": "http://example.com/policy:1010",
-    "permission": [{
-        "target": "http://example.com/asset:9898",
-        "action": "odrl:read"
+
+{
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Set",
+    "uid": "http://example.com/policy:1010",
+    "permission": [{
+        "target": "http://example.com/asset:9898",
+        "action": "read"
     }],
-    "prohibition": [{
-        "target": "http://example.com/asset:9898",
-        "action": "odrl:reproduce"
+    "prohibition": [{
+        "target": "http://example.com/asset:9898",
+        "action": "reproduce"
     }]
 }
 
-
-

For the examples in this document, the ODRL Information Model uid and type attributes are mapped to the JSON-LD @id and @type tokens.

-
+

Example Use Case: The below Set Policy type states that the Asset http//example.com/asset:9898 is the target of the Permission to perform the action reproduce, the Duty to perform the action attribute to http://example.com/owner:9898, and the Prohibition to perform the action translate. Two Parties are involved, namely the Assigner of the Permission and the Party to be attributed.

-
{
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Set",
-    "@id": "http://example.com/policy:1010",
-    "permission": [{
-        "target": "http://example.com/asset:9898",
-        "action": "odrl:reproduce",
-        "assigner": "http://example.com/assigner:88",
-        "duty": [{
-                "action": "odrl:attribute",
-                "attributedParty": "http://example.com/owner:9898"
+
+{
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Set",
+    "uid": "http://example.com/policy:1010",
+    "permission": [{
+        "target": "http://example.com/asset:9898",
+        "action": "reproduce",
+        "assigner": "http://example.com/assigner:88",
+        "duty": [{
+                "action": "attribute",
+                "attributedParty": "http://example.com/owner:9898"
         }]
     }],
-    "prohibition": [{
-        "target": "http://example.com/asset:9898",
-        "action": "odrl:translate"
+    "prohibition": [{
+        "target": "http://example.com/asset:9898",
+        "action": "translate"
     }]
 }
 
@@ -205,16 +201,14 @@

Policy Composition

 {
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Agreement",
-    "@id": "http://example.com/policy:8888",
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Agreement",
+    "uid": "http://example.com/policy:8888",
     "permission": [{
         "target": "http://example.com/music/1999.mp3",
         "assigner": "http://example.com/org/sony-music",
         "assignee": "http://example.com/people/billie",
-        "action": "odrl:play",
+        "action": "play",
         "constraint": "...",
         "duty": "..."
     }]
@@ -224,37 +218,39 @@ 

Policy Composition

As multiple Assets, Parties, and Actions can be expressed for each Rule, then the following (snippet) example shows two Assets defined for the policy:

-{    "permission": [{
+{
+    "permission": [{
         "target": [ "http://example.com/music/1999.mp3",
                     "http://example.com/music/PurpleRain.mp3"],
         "assigner": "http://example.com/org/sony-music",
         "assignee": "http://example.com/people/billie",
-        "action": "odrl:play",
+        "action": "play",
         "constraint": "...",
         "duty": "..."
-        }]
+    }]
 }
 

The above example could then be reduced to two atomic Rules, with the two target assets appearing individually in each:

-{    "permission": [{
+{
+    "permission": [{
         "target": "http://example.com/music/1999.mp3",
         "assigner": "http://example.com/org/sony-music",
         "assignee": "http://example.com/people/billie",
-        "action": "odrl:play",
+        "action": "play",
         "constraint": "...",
         "duty": "..."
-        },
-        {
+    },
+    {
         "target": "http://example.com/music/PurpleRain.mp3",
         "assigner": "http://example.com/org/sony-music",
         "assignee": "http://example.com/people/billie",
-        "action": "odrl:play",
+        "action": "play",
         "constraint": "...",
         "duty": "..."
-        }]
+    }]
 }
 
@@ -269,14 +265,12 @@

Policy Composition

 {
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Agreement",
-    "@id": "http://example.com/policy:8888",
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Agreement",
+    "uid": "http://example.com/policy:8888",
     "target": "http://example.com/music/1999.mp3",
     "assigner": "http://example.com/org/sony-music",
-    "action": "odrl:play",
+    "action": "play",
     "permission": [{
         "assignee": "http://example.com/people/billie"
         },
@@ -290,22 +284,20 @@ 

Policy Composition

 {
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Agreement",
-    "@id": "http://example.com/policy:8888",
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Agreement",
+    "uid": "http://example.com/policy:8888",
     "permission": [{
         "assignee": "http://example.com/people/billie",
         "target": "http://example.com/music/1999.mp3",
         "assigner": "http://example.com/org/sony-music",
-        "action": "odrl:play"
+        "action": "play"
         },
         {
-        "assignee": "http://example.com/people/murphy"
+        "assignee": "http://example.com/people/murphy",
         "target": "http://example.com/music/1999.mp3",
         "assigner": "http://example.com/org/sony-music",
-        "action": "odrl:play",
+        "action": "play",
         }]
 }  
 
@@ -329,12 +321,12 @@

Policy Provenance

The following Dublin Core Metadata Terms [[!dcterms]] SHOULD be used:

    -
  • dc:creator - the individual, agent, or organisation that authored the Policy.
  • dc:description - a human-readable representation or summary of the Policy.
  • -
  • dc:issued - the date (and time) the Policy was first issued.
  • -
  • dc:modified - the date (and time) the Policy was updated.
  • -
  • dc:coverage - the jurisdiction under which the Policy is relevant.
  • -
  • dc:replaces - the identifier (uid) of a Policy that this Policy supersedes.
  • -
  • dc:isReplacedBy - the identifier (uid) of a Policy that supersedes this Policy.
  • +
  • dc:creator - the individual, agent, or organisation that authored the Policy.
  • dc:description - a human-readable representation or summary of the Policy.
  • +
  • dc:issued - the date (and time) the Policy was first issued.
  • +
  • dc:modified - the date (and time) the Policy was updated.
  • +
  • dc:coverage - the jurisdiction under which the Policy is relevant.
  • +
  • dc:replaces - the identifier (uid) of a Policy that this Policy supersedes.
  • +
  • dc:isReplacedBy - the identifier (uid) of a Policy that supersedes this Policy.

The processing model for Policies with the above provenance properties include:

@@ -347,12 +339,12 @@

Policy Provenance

 {
-    "@context": { 
-        "odrl": "http://www.w3.org/ns/odrl/2/",
-        "dc": "http://purl.org/dc/terms/"
-    },
-    "@type": "odrl:Agreement",
-    "@id": "http://example.com/policy:8888",
+    "@context": [
+        "http://www.w3.org/ns/odrl.jsonld",
+        { "dc": "http://purl.org/dc/terms/" }
+    ],
+    "type": "Agreement",
+    "uid": "http://example.com/policy:8888",
     "dc:creator": "billie@example.com",
     "dc:issued": "2017-01-01:12:00",
     "dc:coverage": "https://www.iso.org/obp/ui/#iso:code:3166:AU-QLD",
@@ -392,38 +384,38 @@ 

Policy Conflict Strategy

Example Use Case: Two Policies are associated to the same target Asset http://example.com/asset:1212. The first Policy http://example.com/policy:0001 allows to use the Asset. The second Policy http://example.com/policy:0002 allows for the display of the Asset, but it prohibits print. Both policies explicitly state how to deal with conflicts through the conflict attribute being set to perm. Hence the Permissions will always override any Prohibitions. In this use case, since the print Action is a subset of the use Action, there could be a conflict. However, the perm conflict strategy means that the use Permission will override the print Prohibition.

-
{
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Set",
-    "@id": "http://example.com/policy:0001",
-    "conflict": "perm",
-    "permission": [{
-        "target": "http://example.com/asset:1212",
-        "action": "odrl:use",
-        "assigner": "http://example.com/owner:181"
+        
+
+{
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Set",
+    "uid": "http://example.com/policy:0001",
+    "conflict": "perm",
+    "permission": [{
+        "target": "http://example.com/asset:1212",
+        "action": "use",
+        "assigner": "http://example.com/owner:181"
     }]
 }
 
-
{
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Set",
-    "@id": "http://example.com/policy:0002",
-    "conflict": "perm",
-    "permission": [{
-        "target": "http://example.com/asset:1212",
-        "action": "odrl:display",
-        "assigner": "http://example.com/owner:182"
+
+{
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Set",
+    "uid": "http://example.com/policy:0002",
+    "conflict": "perm",
+    "permission": [{
+        "target": "http://example.com/asset:1212",
+        "action": "display",
+        "assigner": "http://example.com/owner:182"
     }],
-    "prohibition": [{
-        "target": "http://example.com/asset:1212",
-        "action": "odrl:print"
+    "prohibition": [{
+        "target": "http://example.com/asset:1212",
+        "action": "print"
     }]
-}
+} +

In the above use case, if the second Policy had the conflict value of prohibit, then the outcome would be a direct contradiction, and the result will be an invalid Policy.

@@ -464,12 +456,10 @@

Undefined Actions

 {
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Set",
-    "@id": "http://example.com/policy:8888",
-    "undefined": "odrl:invalid",
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Set",
+    "uid": "http://example.com/policy:8888",
+    "undefined": "invalid",
     "permission": [{
         "target": "http://example.com/music/1999.mp3",
         "action": "http://example.com/ns/recorded"
@@ -513,15 +503,13 @@ 

Policy Inheritance

 {
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Set",
-    "@id": "http://example.com/policy:3333",
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Set",
+    "uid": "http://example.com/policy:3333",
     "target": "http://example.com/asset:3333",
     "assigner": "http://example.com/boss:0001",
     "permission": [{
-        "action": "odrl:use"
+        "action": "use"
     }]
 }  
 
@@ -530,20 +518,18 @@

Policy Inheritance

 {
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Agreement",
-    "@id": "http://example.com/policy:4444",
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Agreement",
+    "uid": "http://example.com/policy:4444",
     "inheritFrom": "http://example.com/policy:3333",
     "target": "http://example.com/asset:5555",
     "permission": [{
         "assignee": "http://example.com/guest:0001",
-        "action": "odrl:display"
+        "action": "display"
     },
     {
         "assignee": "http://example.com/guest:0002",
-        "action": "odrl:print"
+        "action": "print"
     }]
 }  
 
@@ -553,25 +539,23 @@

Policy Inheritance

 {
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Agreement",
-    "@id": "http://example.com/policy:4444",
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Agreement",
+    "uid": "http://example.com/policy:4444",
     "target": [
        "http://example.com/asset:5555",
        "http://example.com/asset:3333" ]
     "assigner": "http://example.com/boss:0001",
     "permission": [{
         "assignee": "http://example.com/guest:0001",
-        "action": "odrl:display"
+        "action": "display"
     },
     {
         "assignee": "http://example.com/guest:0002",
-        "action": "odrl:print"
+        "action": "print"
     },
     {
-        "action": "odrl:use"
+        "action": "use"
     }]
 }  
 
@@ -624,18 +608,18 @@

Relation

Example Use Case: The Party http//example.com/guest:0001 wants to display the target Asset http://example.com/asset:3333, but she needs to be granted with the Permission to do so first. This request can be implemented through a Policy of the type Request asking for the Permission to display Asset http://example.com/asset:3333.

-
{
-    "@context": {
-         "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Request",
-    "@id": "http://example.com/policy:3333",
-    "permission": [{
-        "target": "http://example.com/asset:3333",
-        "action": "odrl:display",
-        "assignee": "http://example.com/guest:0001"
+ 
+ {
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Request",
+    "uid": "http://example.com/policy:3333",
+    "permission": [{
+        "target": "http://example.com/asset:3333",
+        "action": "display",
+        "assignee": "http://example.com/guest:0001"
     }]
-}
+} +

In the above example, the JSON-LD representation for Relation directly uses target as the token, as this has been mapped as a sub-property of the relation property.

@@ -645,18 +629,18 @@

Relation

Example Use Case: The below Policy shows the index action Permission on the target Asset http://example.com/archive1011. Another Asset relation x:collection is also expressed to indicate the Asset http://example.com/x/database the indexing outcome should be stored in. (These semantics would be defined by the community who created the x:collection relation.)

-
{
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Set",
-    "@id": "http://example.com/policy:1011",
-    "permission": [{
-        "target": "http://example.com/archive1011",
-        "x:collection": "http://example.com/x/database",
-        "action": "odrl:index"
+ 
+ {
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Set",
+    "uid": "http://example.com/policy:1011",
+    "permission": [{
+        "target": "http://example.com/archive1011",
+        "x:collection": "http://example.com/x/database",
+        "action": "index"
     }]
-}
+} +
@@ -672,23 +656,21 @@

Scope

Example Use Case: The Policy defines a target Asset http://example.com/media-catalogue that has a scope of http://example.com/imt/jpeg (which, in this case, provides additional context on what characteristics the Asset MUST hold).

-
{
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Offer",
-    "@id": "http://example.com/policy:4444",
-    "permission": [{
-        "target": [{
-                "@id": "http://example.com/media-catalogue",
-                "scope": "http://example.com/imt/jpeg"	
+ 
+ {
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Offer",
+    "uid": "http://example.com/policy:4444",
+    "permission": [{
+        "target": [{
+                "uid": "http://example.com/media-catalogue",
+                "scope": "http://example.com/imt/jpeg"	
         }],
-        "action": "odrl:use",
-        "assigner": "http://example.com/user88"
+        "action": "use",
+        "assigner": "http://example.com/user88"
     }]
 }
- - + @@ -728,25 +710,25 @@

Role

 {
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/",
-        "vCard": "http://www.w3.org/2006/vcard/ns#"
-    },
-    "@type": "odrl:Agreement",
-    "@id": "http://example.com/policy:8888",
+    "@context": [
+        "http://www.w3.org/ns/odrl.jsonld",
+        { "vcard": "http://www.w3.org/2006/vcard/ns#" }
+    ],
+    "type": "Agreement",
+    "uid": "http://example.com/policy:8888",
     "permission": [{
         "target": "http://example.com/music/1999.mp3",
         "assigner": {
-            "@type": [ "odrl:Party", "vcard:Organization" ],
-            "@id":  "http://example.com/org/sony-music",
+            "type": [ "Party", "vcard:Organization" ],
+            "uid":  "http://example.com/org/sony-music",
             "vcard:fn": "Sony Music LCC",
             "vcard:hasEmail": "sony-contact@example.com" },
         "assignee": {
-            "@type": [ "odrl:Party", "vcard:Individual" ],
-            "@id":  "http://example.com/people/billie",
+            "type": [ "Party", "vcard:Individual" ],
+            "uid":  "http://example.com/people/billie",
             "vcard:fn": "Billie Zhan",
             "vcard:hasEmail": "billie@example.com"},
-        "action": "odrl:play"
+        "action": "play"
     }]
 }  
 
@@ -774,26 +756,55 @@

Scope

Example Use Case: The target Asset http://example.com/myPhotos:BdayParty are a set of photos posted to a social network site by the Assigner of the photos http://example.com/user44. The Assignee is a Party http://example.com/user44/friends, and represents all the friends of the Assigner. Since this is a collection of individuals, then the group scope is declared. In addtion, the scope of the Assignee has been also be declared as http://example.com/people/age/18+ (which, in this case, provides additional context on what characteristics the Assignee MUST hold).

-
{
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Agreement",
-    "@id": "http://example.com/policy:4444",
-    "permission": [{
-        "target": "http://example.com/myPhotos:BdayParty",
-        "action": "odrl:display",
-        "assigner": "http://example.com/user44",
-        "assignee": [{
-                "@id": "http://example.com/user44/friends",
-                "scope": [ "http://www.w3.org/ns/odrl/2/Group", 
-                           "http://example.com/people/age/18+"]	
+
+{
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Agreement",
+    "uid": "http://example.com/policy:4444",
+    "permission": [{
+        "target": "http://example.com/myPhotos:BdayParty",
+        "action": "display",
+        "assigner": "http://example.com/user44",
+        "assignee": [{
+                "uid": "http://example.com/user44/friends",
+                "scope": [ "Group", "http://example.com/people/age/18+"]	
         }]
     }]
 }
+
+

Action

+ + +

An Action indicates an operation that is applicable to an Asset. The Action is permitted to be performed on the target Asset when related to a Permission. When related to a Prohibition, the Action indicates the operation that is prohibited to be perform on the target Asset. When related to a Duty, the Action indicates the operation that is obligatory to be performed.

+ +

An Action has the following attribute:

+
    +
  • An Action MUST refer to an instance of an Action name.
  • +
+

The ODRL vocabulary [[!vocab-odrl]] defines a standard set of common Action names that MAY be used.

+ +
+

Example Use Case: The Party expresses an Offer policy for the target Asset http://example.com/music:1012, namely the Permission to play the Asset.

+
+ +
+{
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Offer",
+    "uid": "http://example.com/policy:1012",
+    "permission": [{
+            "target": "http://example.com/music:1012",
+            "action": "play"
+     }]
+}
+
+ + +
+

Permission

@@ -812,22 +823,22 @@

Permission

Example Use Case: The ticket Policy expresses the play Permission for the target Asset http//example.com/game:9090, stating that the ticket is valid until the end of the year 2017. Any valid holder of this ticket may exercise this Permission.

-
{
-     "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Ticket",
-    "@id": "http://example.com/policy:9090",
-    "permission": [{
-        "target": "http://example.com/game:9090",
-        "action": "odrl:play",
-        "constraint": [{
-            "leftOperand": "odrl:dateTime",
-            "operator": "odrl:lteq",
-            "rightOperand": "2017-12-31"
+ 
+ {
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Ticket",
+    "uid": "http://example.com/policy:9090",
+    "permission": [{
+        "target": "http://example.com/game:9090",
+        "action": "play",
+        "constraint": [{
+            "leftOperand": "dateTime",
+            "operator": "lteq",
+            "rightOperand": "2017-12-31"
         }]
     }]
-}
+} +
@@ -849,26 +860,26 @@

Prohibition

Example Use Case: The owner and Assigner of a target Asset http://example.com/photoAlbum:55 needs an Agreement Policy expressing with both a Permission and a Prohibition. Then Assigner Party http://example.com/MyPix:55 assigns the Permission display to the Assignee Party http://example.com/assignee:55 at the same time they are prohibited from archiving the target Asset. Additionally, in case of any conflicts between Permissions and Prohibitions, the conflict attribute is set to perm indicating that the Permissions will take precedence.

-
{
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Agreement",
-    "@id": "http://example.com/policy:5555",
-    "conflict": "odrl:perm",
-    "permission": [{
-        "target": "http://example.com/photoAlbum:55",
-        "action": "odrl:display",
-        "assigner": "http://example.com/MyPix:55",
-        "assignee": "http://example.com/assignee:55"
+
+{
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Agreement",
+    "uid": "http://example.com/policy:5555",
+    "conflict": "perm",
+    "permission": [{
+        "target": "http://example.com/photoAlbum:55",
+        "action": "display",
+        "assigner": "http://example.com/MyPix:55",
+        "assignee": "http://example.com/assignee:55"
     }],
-    "prohibition": [{
-        "target": "http://example.com/photoAlbum:55",
-        "action": "odrl:archive",
-        "assigner": "http://example.com/MyPix:55",
-        "assignee": "http://example.com/assignee:55"
+    "prohibition": [{
+        "target": "http://example.com/photoAlbum:55",
+        "action": "archive",
+        "assigner": "http://example.com/MyPix:55",
+        "assignee": "http://example.com/assignee:55"
     }]
-}
+} +
@@ -905,28 +916,26 @@

Duty

 {
-   "@context": {
-       "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Offer",
-    "@id": "http://example.com/policy:88",
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Offer",
+    "uid": "http://example.com/policy:88",
     "permission": [{
         "assigner": "http://example.com/assigner:sony",
         "target": "http://example.com/music/1999.mp3",
-        "action": "odrl:play",
+        "action": "play",
         "duty": [{
-            "action": "odrl:compensate",
+            "action": "compensate",
             "constraint": [{
-                "leftOperand": "odrl:payAmount",
-                "operator": "odrl:eq",
+                "leftOperand": "payAmount",
+                "operator": "eq",
                 "rightOperand": "5.00",
                 "unit": 
                   "https://www.currency-iso.org/dam/downloads/lists/list_one.xml#AUD"
             },
             {
-                "leftOperand": "odrl:event",
-                "operator": "odrl:lt",
-                "rightOperand": "odrl:policyUsage"
+                "leftOperand": "event",
+                "operator": "lt",
+                "rightOperand": "policyUsage"
             }]
         }]
     }]
@@ -939,67 +948,38 @@ 

Duty

-
{
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Privacy",
-    "@id": "http://example.com/policy:7777",
-    "permission": [{
-        "target": "http://example.com/personal-data:77",
-        "action": "odrl:distribute",
-        "constraint": [{
-            "leftOperand": "odrl:purpose",
-            "operator": "odrl:eq",
-            "rightOperand": "http://example.com/privacy/contact"
+
+{
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Privacy",
+    "uid": "http://example.com/policy:7777",
+    "permission": [{
+        "target": "http://example.com/personal-data:77",
+        "action": "distribute",
+        "constraint": [{
+            "leftOperand": "purpose",
+            "operator": "eq",
+            "rightOperand": "http://example.com/privacy/contact"
         }],
-        "assigner": "http://example.com/assigner:77",
-        "assignee": "http://example.com/gov:health:au",
-        "duty": [{
-            "action": "odrl:delete",
-            "target": "http://example.com/personal-data:77",
-            "constraint": [{
-                "leftOperand": "odrl:dateTime",
-                "operator": "odrl:eq",
-                "rightOperand": "P30D"
+        "assigner": "http://example.com/assigner:77",
+        "assignee": "http://example.com/gov:health:au",
+        "duty": [{
+            "action": "delete",
+            "target": "http://example.com/personal-data:77",
+            "constraint": [{
+                "leftOperand": "dateTime",
+                "operator": "eq",
+                "rightOperand": "P30D"
             }]
         }]
     }]
-}
+} +
-
-

Action

-

An Action indicates an operation that is applicable to an Asset. The Action is permitted to be performed on the target Asset when related to a Permission. When related to a Prohibition, the Action indicates the operation that is prohibited to be perform on the target Asset. When related to a Duty, the Action indicates the operation that is obligatory to be performed.

- -

An Action has the following attribute:

-
    -
  • An Action MUST refer to an instance of an Action name.
  • -
-

The ODRL vocabulary [[!vocab-odrl]] defines a standard set of common Action names that MAY be used.

- -
-

Example Use Case: The Party expresses an Offer policy for the target Asset http://example.com/music:1012, namely the Permission to play the Asset.

-
- -
{
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Offer",
-    "@id": "http://example.com/policy:1012",
-    "permission": [{
-            "target": "http://example.com/music:1012",
-            "action": "odrl:play"
-     }]
-}
- - -
-

Constraint

@@ -1041,52 +1021,50 @@

Constraint

Example Use Case: The Party http://example.com/myPix:6161 wants to assign the Permission distribute directly to the potential buyer of the Permission who will pay 100 EUR to be granted with the Permission. The distribute Permission is constrained to a specific country. The potential Assignee may then distribute the target Asset http://example.com/wallpaper:1234 according to the nextPolicy target Asset linked directly from this Permission. The next Policy Asset http://example.com/policy:7171 stipulates that the potential Assignee may only offer the display Permission to downstream consumers.

-
{
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Offer",
-    "@id": "http://example.com/policy:6161",
-    "permission": [{
-        "target": "http://example.com/wallpaper:1234",
-        "assigner": "http://example.com/myPix:6161",
-        "action": "odrl:distribute",
-        "constraint": [{
-            "leftOperand": "odrl:spatial",
-            "operator": "odrl:eq",
-            "rightOperand": "https://www.iso.org/obp/ui/#iso:code:3166:IT"
+
+{
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Offer",
+    "uid": "http://example.com/policy:6161",
+    "permission": [{
+        "target": "http://example.com/wallpaper:1234",
+        "assigner": "http://example.com/myPix:6161",
+        "action": "distribute",
+        "constraint": [{
+            "leftOperand": "spatial",
+            "operator": "eq",
+            "rightOperand": "https://www.iso.org/obp/ui/#iso:code:3166:IT"
         }],
-        "duty": [
+        "duty": [
             {
-                "action": "odrl:compensate",
-                "constraint": [{
-                    "leftOperand": "odrl:payAmount",
-                    "operator": "odrl:eq",
-                    "rightOperand": "100.00",
-                    "dataType": "http://www.w3.org/2001/XMLSchema#decimal",
-                    "unit": 
-                      "https://www.currency-iso.org/dam/downloads/lists/list_one.xml#EUR"
+                "action": "compensate",
+                "constraint": [{
+                    "leftOperand": "payAmount",
+                    "operator": "eq",
+                    "rightOperand": "100.00",
+                    "dataType": "http://www.w3.org/2001/XMLSchema#decimal",
+                    "unit": 
+                      "https://www.currency-iso.org/dam/downloads/lists/list_one.xml#EUR"
                 }]
             },
             {
-                "action": "odrl:nextPolicy",
-                "target": "http://example.com/policy:7171"
+                "action": "nextPolicy",
+                "target": "http://example.com/policy:7171"
             }
         ]
     }]
 }
  
 {
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-        "@type": "odrl:Set",
-        "@id": "http://example.com/policy:7171",
-        "permission": [{
-            "target": "http://example.com/wallpaper:1234",
-            "action": "odrl:display"
-        }]
-    }
+ "@context": "http://www.w3.org/ns/odrl.jsonld", + "type": "Set", + "uid": "http://example.com/policy:7171", + "permission": [{ + "target": "http://example.com/wallpaper:1234", + "action": "display" + }] +} +
@@ -1124,67 +1102,63 @@

Constraint Relations

 {
-    "@context": {
-       "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Offer",
-    "@id": "http://example.com/policy:88",
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Offer",
+    "uid": "http://example.com/policy:88",
     "permission": [{
         "target": "http://example.com/book/1999.mp3",
         "assigner": "http://example.com/org/paisley-park",
-        "action": "odrl:play",
+        "action": "play",
         "constraint": [{
                 "leftOperand": "http://example.com/policy:88/C1",
-                "operator": "odrl:xor",
+                "operator": "xor",
                 "rightOperand": "http://example.com/policy:88/C2"
             }],
     }],
    "constraint": [{
-       "@id": "http://example.com/policy:88/C1"
-       "leftOperand": "odrl:count",
-       "operator": "odrl:lteq",
+       "uid": "http://example.com/policy:88/C1"
+       "leftOperand": "count",
+       "operator": "lteq",
        "rightOperand": "100"
    },
    {
-       "@id": "http://example.com/policy:88/C2"
-       "leftOperand": "odrl:dateTime",
-       "operator": "odrl:lteq",
+       "uid": "http://example.com/policy:88/C2"
+       "leftOperand": "dateTime",
+       "operator": "lteq",
        "rightOperand": "2017-12-31"
    }]
 }  
 
-

Example Use Case: The Policy below shows a Permission to distribute photos in which the first constraint (the event http://example.com/football/game/2017) has concluded (the operator odrl:gt indicating this), then the second constraint (wait for 60 minutes) has passed. The operator andSequence requires that first the constraint in the leftOperand is satisfied - the event has closed - and this triggers the Action Delay Period after which the action of the permission may be excercised. (Note: The operator value of andSequence is not the same as and as for the latter, both operand Constraints must be satisfied, but could be processed at the same time.)

+

Example Use Case: The Policy below shows a Permission to distribute photos in which the first constraint (the event http://example.com/football/game/2017) has concluded (the operator gt indicating this), then the second constraint (wait for 60 minutes) has passed. The operator andSequence requires that first the constraint in the leftOperand is satisfied - the event has closed - and this triggers the Action Delay Period after which the action of the permission may be excercised. (Note: The operator value of andSequence is not the same as and as for the latter, both operand Constraints must be satisfied, but could be processed at the same time.)

 {
-    "@context": {
-        "odrl": "http://www.w3.org/ns/odrl/2/"
-    },
-    "@type": "odrl:Offer",
-    "@id": "http://example.com/policy:88",
+    "@context": "http://www.w3.org/ns/odrl.jsonld",
+    "type": "Offer",
+    "uid": "http://example.com/policy:88",
     "permission": [{
         "target": "http://example.com/photo.jpg",
         "assigner": "http://example.com/org/fifa",
-        "action": "odrl:distribute",
+        "action": "distribute",
         "constraint": [{
                 "leftOperand": "http://example.com/policy:88/C1",
-                "operator": "odrl:andSequence",
+                "operator": "andSequence",
                 "rightOperand": "http://example.com/policy:88/C2"
             }],
     }],
    "constraint": [{
-       "@id": "http://example.com/policy:88/C1"
-       "leftOperand": "odrl:event",
-       "operator": "odrl:gt",
+       "uid": "http://example.com/policy:88/C1"
+       "leftOperand": "event",
+       "operator": "gt",
        "rightOperand": "http://example.com/football/game/2017"
    },
    {
-       "@id": "http://example.com/policy:88/C2"
-       "leftOperand": "odrl:delayPeriod",
-       "operator": "odrl:gteq",
+       "uid": "http://example.com/policy:88/C2"
+       "leftOperand": "delayPeriod",
+       "operator": "gteq",
        "rightOperand": "P60M"
    }]
 }