Warning:
This wiki has been archived and is now read-only.
Evaluator
The task of an ODRL Evaluator is to determine, given a particular state of the world, which Permissions and Prohibitions are active, and which Obligations have been infringed.
An assignee can only exercise the action of a Permission over the specified asset (or be bound by a Prohibition) if it is active.
The status of a Permission/Prohibition/Obligation is determined by the status of the Duties and Constraints it references.
Duties are either fulfilled or not while Constraints are either satisfied or not. As shown below, the Evaluator makes its determination on the basis of these values: aka the 'state of the world'.
How these values are themselves determined is left to individual implementations. But given these values, all ODRL Evaluators should agree on which Permissions and Prohibitions are active, and on which Obligations have been infringed.
The test cases provided are drawn directly from the examples in the ODRL Information Model. It's hoped that they can help clarify the semantics of the model.
EXAMPLE 12 - An un-constrained Permission P1 is offered:
ID | P1 |
---|---|
E12-1 | Active |
The permission is active and the music can be played.
EXAMPLE 13 - Permission P1 is constrained by the Constraint C1:
ID | P1.C1 | P1 |
---|---|---|
E13-1 | Satisfied | Active |
E13-2 | Not Satisfied | Not Active |
The permission is active only while the constraint is satisfied, i.e. before the 2018 New Year. After that the offer lapses; the constraint is no longer satisfied and the permission is no longer active.
EXAMPLE 14 - The Action of Permission P1 is refined by the Constraint R1:
ID | P1.R1 | P1 |
---|---|---|
E14-1 | Satisfied | Active |
E14-2 | Not Satisfied | Not Active |
So long as less than half of the asset has been printed - so the constraint is satisfied - the permission remains active, and more can be printed. Once half is printed, and the constraint is no longer satisfied, the permission to print is no longer active. Printing must stop.
EXAMPLE 15 - The Action of Permission P1 is refined by two Constraints R1 and R2 which are linked by the Operand 'xone':
ID | P1.R1 | P1.R2 | P1 |
---|---|---|---|
E15-1 | Satisfied | Satisfied | Not Active |
E15-2 | Satisfied | Not Satisfied | Active |
E15-3 | Not Satisfied | Satisfied | Active |
E15-4 | Not Satisfied | Not Satisfied | Not Active |
Reproducing the asset in just one of the media keeps the permission active; but then reproducing it in the other media too de-activates the permission. Dual publication is not allowed. Equally, the permission is also not active if neither of the media constraints are satisfied.
Reproducing the asset in any other media than those specified in the constraints is not supported by this permission.
EXAMPLE 16 - The Asset of Permission P1 is refined by the Constraint R1:
ID | P1.R1 | P1 |
---|---|---|
E16-1 | Satisfied | Active |
E16-2 | Not Satisfied | Not Active |
Playing media with a running time of less than 60 minutes satisfies the constraint so the permission is active. However, attempting to play media of greater length fails to satisfy the constraint, thus de-activating the permission. Such lengthy media cannot be played.
EXAMPLE 17 - The Assignee of Permission P1 is refined by the Constraint R1:
ID | P1.R1 | P1 |
---|---|---|
E17-1 | Satisfied | Active |
E17-2 | Not Satisfied | Not Active |
Analogously to the previous example, this permission only supports the display of the pictures by friends who are over the age of 17. The permission is not active for younger friends. Some birthday!
EXAMPLE 18 - The Permission P1 is constrained by the Constraint C1:
ID | P1.C1 | P1 |
---|---|---|
E18-1 | Satisfied | Active |
E18-2 | Not Satisfied | Not Active |
The permission to play the game only lasts until the end of 2017, after which it is no longer active and the game cannot be played under this permission.
EXAMPLE 19 - A Permission P1 and Prohibition Pr1 are provided:
ID | P1 |
---|---|
E19-1 | Active |
ID | Pr1 |
---|---|
E19-2 | Active |
Neither the permission nor the prohibition are qualified by any constraints or duties. Both will remain active until the assigner withdraws them.
EXAMPLE 20 - The Action of Obligation O1 is refined by the Constraint R1:
ID | O1.R1 | O1 Fulfilment | O1 Infringement |
---|---|---|---|
E20-1 | Satisfied | Fulfilled | Not Infringed |
E20-2 | Not Satisfied | Not Fulfilled | Infringed |
E20-3 | Satisfied | Not Fulfilled | Infringed |
By paying the €500 the assignee fulfils the obligation. It is now a fulfilled obligation. Failure to pay maintains an unfulfilled obligation.
Michael: line E20-3 is new.
EXAMPLE 21 - The Obligation O1 has a Consequence Cq1 whose Action is refined by the Constraint R1:
ID | O1 Fulfilment | Cq1 Activity | Cq1.R1 | Cq1 Fulfilment | O1 Infringement |
---|---|---|---|---|---|
E21-1 | Fulfilled | Not Active | Not Infringed | ||
E21-2 | Not Fulfilled | Active | Satisfied | Not Fulfilled | Infringed |
E21-3 | Not Fulfilled | Active | Not Satisfied | Not Fulfilled | Infringed |
E21-4 | Fulfilled | Active | Satisfied | Fulfilled | Not Infringed |
E21-5 | Fulfilled | Active | Not Satisfied | Not Fulfilled | Infringed |
E21-6 | Not Fulfilled | Active | Satisfied | Fulfilled | Infringed |
E21-7 | Fulfilled | Active | Satisfied | Not Fulfilled | Infringed |
Immediately deleting the document fulfils the obligation and does not trigger the consequence (row 1). Failure to do so triggers the consequence. It is now active (row 2 onwards). Now the document must be deleted and €10 must be paid: both the obligation and the consequence must be fulfilled (row 4).
Michael: lines E21-6 and E21-7 are new
EXAMPLE 22 - The Permission P1 has a Duty D1. The Duty D1 has a Constraint C1 and its Action is refined by Constraint R1:
ID | D1.C1 | D1.R1 | P1.D1 | P1 |
---|---|---|---|---|
E22-1 | Satisfied | Satisfied | Fulfilled | Active |
E22-2 | Satisfied | Satisfied | Not Fulfilled | Not Active |
E22-3 | Satisfied | Not Satisfied | Not Fulfilled | Not Active |
E22-4 | Not Satisfied | Satisfied | Not Fulfilled | Not Active |
E22-5 | Not Satisfied | Not Satisfied | Not Fulfilled | Not Active |
Failure to fulfil the duty de-activates the permission. Only when the duty is fulfilled by paying €5 prior to playing the file is it active. No other scenario is supported by this permission.
Michael: line E22-5 is new.
EXAMPLE 23 - The Permission P1 has a Duty D1. The Duty D1 has a Consequence Cq1:
ID | P1.D1 | D1.Cq1 Activity | D1.Cq1 Fulfilment | P1 |
---|---|---|---|---|
E23-1 | Fulfilled | Not Active | Active | |
E23-2 | Not Fulfilled | Active | Fulfilled | Not Active |
E23-3 | Not Fulfilled | Active | Not Fulfilled | Not Active |
E23-4 | Fulfilled | Active | Fulfilled | Active |
E23-5 | Fulfilled | Active | Not Fulfilled | Not Active |
Attributing the Australian Government as the owner of this data on exercising this permission does not activate the consequence (row 1). But failure to do so does (row 2 onwards). Now the only way to proceed with an active permission is to do the attribution and to accept tracking (row 4). Failure to do both de-activates the permission (rows 2, 3, and 5). The assignee cannot distribute the data under this permission until they fulfil both the duty and the consequence.
EXAMPLE 24 - A Prohibition Pr1 has a Remedy Rm1:
ID | Pr1.Rm1 | Pr1 |
---|---|---|
E24-1 | Not Fulfilled | Active |
E24-2 | Fulfilled | Not Active |
The assignee can 'switch off' the prohibition by taking the remedy and anonymising the data. Doing so de-activates the prohibition (row 2). Indexing the data while failing to properly anonymise it is to violate the prohibition.
Michael: line E24-3 has gone.