Re: About a more strict definition of Constraint

I think the general issue is that we have associated the Constraint to the Perm/Prohib/Duty, when we should have associated it directly to the Action/Name.

Michael’s example show that with the “odrl:constraintsubject” having to explicitly refer to the odrl:action.

And this gets worse when we introduce support for Constraints on Asset’s and Parties.

*IF* we move the constraint directly as a property of the Action/Name, then we could express:
  odrl:permission [
    a odrl:Permission ;
    odrl:target <http://example.com/music:4545> ;
    odrl:assigner <http://example.com/sony:10> ;
    odrl:action [
      a odrl:Action ;
      rdf:value odrl:copy ;
      odrl:constraint [
        a odrl:Constraint ;
        odrl:count 1 ;
        odrl:operator odrl:lteq
      ]
    ]
  ] .
This makes the constraint clearly associated with the odrl:copy action (and all constraints in that Action will apply to the same).

Then, when we add a Constraint to the Target, the subject is clear:

 odrl:target [
      a odrl:Asset ;
      rdf:value <http://example.com/music:4545> ;
      odrl:constraint [
        a odrl:Constraint ;
        spotify:artist <http://music.net/people:prince> ;
        odrl:operator odrl:eq
      ]
    ]
And the same for Party:

odrl:assignee [
      a odrl:Party ;
      rdf:value <http://example.com/billie> ;
      odrl:constraint [
        a odrl:Constraint ;
        spotify:age 18 ;
        odrl:operator odrl:gteq
      ]
    ]

Then we have our favourite example…the constraint on a constraint.
The constraint “end of the football match” is further constrained by a “30 min time period”:

   odrl:action [
      a odrl:Action ;
      rdf:value odrl:distribute ;
      odrl:constraint [
        a odrl:Constraint ;
        odrl:event <http://premier-league.com/end-of-match ;
        odrl:operator odrl:eq ;
        odrl:constraint [
          a odrl:Constraint ;
          odrl:dateTime "P30M" ;
          odrl:operator odrl:gteq ;
      ]
    ]
  ] .


Renato

ps: i’ve used rdf:value here but we could define our own predicate

Received on Tuesday, 8 November 2016 13:40:18 UTC