- From: Víctor Rodríguez Doncel <vrodriguez@fi.upm.es>
- Date: Sat, 12 Nov 2016 13:52:54 +0100
- To: public-poe-wg@w3.org
- Message-ID: <e6e09a09-db67-70b3-e9a5-62be74673deb@fi.upm.es>
Stuart, 1) I have just learnt about your code at https://github.com/iptc/rightsml-dev/. Good! 2) I share your vision. When you speak about context reminds me about the authorisation model in MPEG-21 REL, which had as input not only the request and the specified licenses but also the "authorization context". In the MPEG-21 REL this was insufficiently formalized, and the authorization algorithm was a very poorly described procedure. I wished this could be improved this tiem. Víctor El 09/11/2016 a las 23:49, Myles, Stuart escribió: > > Hi Simon, > > ØHow would your engine evaluate/determine whether constrained permission > is valid? > I.e., x <= "2010-12-31"^^xsd:date -> where does "x" come from? > > What I wound up doing was creating a “context” for each requested > action. The context consists of a series of assertions that correspond > to things that could be constraints, such as location, purpose, time > of execution and so on. In fact, I (re)used the “constraint” part of > ODRL to express the context assertions. Since the engine can > “understand” a set of possible types of constraints, I realized that > possible set implies the range of constraint slots which need to be > filled. > > So, in your example, I would have a slot for time for execution, which > corresponds to “x”. > > The ODRL representation library I built is > https://github.com/iptc/rightsml-dev/tree/master/licensed although the > engine where I actually evaluate whether a particular action is > permitted is an API that layers on top of licensed. Maybe one day I > will get around to sprucing it up a bit and releasing that as open > source, too? > > Regards, > > Stuart > > *From:*Simon Steyskal [mailto:simon.steyskal@wu.ac.at] > *Sent:* Wednesday, November 09, 2016 2:33 AM > *To:* Myles, Stuart > *Cc:* W3C POE WG > *Subject:* Re: About a more strict definition of Constraint > > Hi! > > > (What follows is all based on my experience with implementing an > > engine to evaluate ODRL automatically. [...] > > Just out of curiosity (sry for hijacking your email discussion).. Given > following ODRL policy: > > <http://example.com/policy:0811> > a odrl:Set; > odrl:permission [ > a odrl:Permission ; > odrl:action odrl:play ; > odrl:target <http://example.com/game:4589> ; > odrl:constraint [ > a odrl:Constraint ; > odrl:operator odrl:lteq ; > odrl:dateTime "2010-12-31"^^xsd:date > ] > ] . > > How would your engine evaluate/determine whether constrained permission > is valid? > I.e., x <= "2010-12-31"^^xsd:date -> where does "x" come from? > > br, simon > > --- > DDipl.-Ing. Simon Steyskal > Institute for Information Business, WU Vienna > > www: http://www.steyskal.info/ <http://www.steyskal.info/> twitter: > @simonsteys > > Am 2016-11-08 16:13, schrieb Myles, Stuart: > > I don’t see how it is meaningful to constrain either parties or > > targets. In fact, I think it just introduces problems for evaluating > > policies. > > > > (What follows is all based on my experience with implementing an > > engine to evaluate ODRL automatically. And it is the same argument for > > why I think it is a mistake to indicate any properties of parties > > other than their URI - such as whether or not they are a “group”). > > > > > > When you’re evaluating an ODRL policy, you’re trying to determine > > “Am I permitted to perform this action on this asset?”. More > > generally, it could be stated as “Is Party P permitted to perform > > Action A on Asset X?”. That means you need to determine whether > > various entities in the Policy are “the same as” the entities > > you’re interested in. Is the Policy Asset “the same as” Asset X > > and is the Policy Assignee “the same as” Party P? (In fact, it is > > much more complicated than this, as you also need to determine whether > > the Policy Action is “the same as” Action A – ODRL actions are > > hierarchical, so it is quite likely the action you wish to perform is > > very granular, but the Policy Action could be much more general – an > > ancestor of Action A in the ODRL tree. And the same thing applies to > > values for constraints such as location – the Policy may constrain > > actions in Europe. And you might want to perform the Action in > > Istanbul or Geneva or London). > > > > So, a lot of the work that an ODRL evaluation engine must perform is > > to evaluate rules to determine whether various values are “the same > > as” other values. So, what would it mean to introduce constraints on > > those values in the Policy itself? How can a Party have both a URI > > *AND* a constraint? What is that meant to mean? I can understand a > > Party URI which means “people known to be 18 years and older”. But > > I don’t understand how an engine is meant to evaluate a URI and a > > constraint – unless we want to introduce rules for how to deal with > > contradictions between what is stated in the Policy constraints and > > what is “known” by the evaluating engine. > > > > Regards, > > > > Stuart > > > > FROM: Renato Iannella [mailto:renato.iannella@monegraph.com] > > SENT: Tuesday, November 08, 2016 8:40 AM > > TO: W3C POE WG > > SUBJECT: 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 [1]> ; > > > > odrl:assigner <http://example.com/sony:10 [2]> ; > > > > 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 [1]> ; > > > > odrl:constraint [ > > > > a odrl:Constraint ; > > > > spotify:artist <http://music.net/people:prince [3]> ; > > > > 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 > > > > Links: > > ------ > > [1] http://example.com/music:4545 <http://example.com/music:4545> > > [2] http://example.com/sony:10 <http://example.com/sony:10> > > [3] http://music.net/people:prince <http://music.net/people:prince> > -- Víctor Rodríguez-Doncel D3205 - Ontology Engineering Group (OEG) Departamento de Inteligencia Artificial ETS de Ingenieros Informáticos Universidad Politécnica de Madrid Campus de Montegancedo s/n Boadilla del Monte-28660 Madrid, Spain Tel. (+34) 91336 3753 Skype: vroddon3
Received on Saturday, 12 November 2016 12:55:18 UTC