At any point in time, in the policy space, there might be many possible “available” policies for an asset.
When we are evaluating, we are considering a specific instance of a policy for the triple <assigner, assignee, asset> that has been agreed, not just if a rule is fulfilled or not.
In the (basic) example below, the asset has multiple policies, which have the same permission, but different prohibitions and duties, and different assignees.
ex:Asset1 a odrl:AssetCollection;
odrl:hasPolicy ex:P1, ex:P2.
ex:Permission1 a odrl:Permission;
odrl:action odrl:play;
terms:description "permission to play".
ex:Prohibition1 a odrl:Prohibition;
terms:description "can't be played on weekends".
ex:Prohibition2 a odrl:Prohibition;
terms:description "can't be played on weekdays".
ex:Duty1 a odrl:Duty;
terms:description "premium price for use 5 days a week".
ex:Duty2 a odrl:Duty;
terms:description "discounted price for use 2 days a week".
ex:P1 a odrl:Agreement;
odrl:assigner ex:Assigner;
odrl:assignee ex:Assignee1; # <------ one Assignee
odrl:permission ex:Permission1;
odrl:duty ex:Duty1;
odrl:prohibition ex:Prohibition1.
ex:P2 a odrl:Agreement;
odrl:assigner ex:Assigner;
odrl:assignee ex:Assignee2; # <------ different Assignee
odrl:permission ex:Permission1;
odrl:duty ex:Duty2;
odrl:prohibition ex:Prohibition2.
At any point in time, in the policy space, there might be many possible “available” policies for an asset.
When we are evaluating, we are considering a specific instance of a policy for the triple <assigner, assignee, asset> that has been agreed, not just if a rule is fulfilled or not.
In the (basic) example below, the asset has multiple policies, which have the same permission, but different prohibitions and duties, and different assignees.