- From: Renato Iannella via GitHub <sysbot+gh@w3.org>
- Date: Fri, 01 Sep 2017 05:47:40 +0000
- To: public-poe-archives@w3.org
riannella has just labeled an issue for https://github.com/w3c/poe as "Model": == Setting a value related to the leftOperand of a constraint == @riannella brought this issue up in https://github.com/w3c/poe/issues/226#issuecomment-326155378 - as this issue is outside the scope of 2.6.8 Rule Active State Processing this new issue is created. Sorry, but I have a different view on the Datetime LeftOperand - http://w3c.github.io/poe/vocab/#term-dateTime: * It is defined as "The date (and optional time and timezone) to be compared. " No word defines this is date (and ...) is the date (and time) of Now. My understanding is: this Left Operand defines that a date (with optional time) value set by the usage context is compared with a value defined as rightOperand. And if no leftOperand-value is set the default value is the date (and time) of Now. * Its Note tells "The Rule may be exercised before (with operator lt/lteq) or after (with operator gt/gteq) the date(time) defined by the Right operand." - and I conclude: you can take any date and time before or after the rightOperand value and match it against the rightOperand value - the Not-/Satisfied outcome is returned. * If the strict rule is that only the date&time of Now can be compared and having an operator of odrl:gteq and a right operand of "2018-01-01" the ODRL processor has to check from now on permanently this constraint with the current date&time to find on the 1 January 2018 a second after midnight that constraint is fulfilled now. Is this really intended, I can't believe that. * An issue might be: how to express a date&time other than Now. I think setting (or pre-setting) the status property of this constraint would be a good solution. This requires only a minor change of the definition of this property in 2.5.1 of the IM and I suggest: "A Constraint may have none or one status property value for **a** value generated from the leftOperand action **or for a value related to the leftOperand set as reference for the comparison.**" And this could be the expression ``` :policy102 a odrl:Set ; ### active on 24 December 2000 ### odrl:permission [ odrl:action odrl:print ; odrl:constraint [ odrl:leftOperand odrl:dateTime ; odrl:status "2000-12-24T00:00:00Z" ; ### inserted for this specific evaluation ### odrl:operator odrl:lt ; odrl:rightOperand "2000-12-31" ; ] ] . ``` We have to be aware constraints are very dynamic black-boxes. If e.g. the LeftOperand is the Relative Asset Size (http://w3c.github.io/poe/vocab/#term-relativeSize) with odrl:lteq and rightOperand "200%" evaluating this constraint urgently needs a real value to be compared against the "200%", it cannot be generated from the left operand Relative Asset Size. E.g. ``` :policy901 a odrl:Set ; odrl:permission [ odrl:action odrl:derive ; odrl:constraint [ ### constraint is Satisfied ### odrl:leftOperand odrl:relativeSize ; odrl:status "158%" ; ### inserted for this specific evaluation ### odrl:operator odrl:lteq ; odrl:rightOperand "200%" ; ] ] . :policy901 a odrl:Set ; odrl:permission [ odrl:action odrl:derive ; odrl:constraint [ ### constraint is Not-Satisfied ### odrl:leftOperand odrl:relativeSize ; odrl:status "213%" ; ### inserted for this specific evaluation ### odrl:operator odrl:lteq ; odrl:rightOperand "200%" ; ] ] . ``` See https://github.com/w3c/poe/issues/227
Received on Friday, 1 September 2017 05:47:35 UTC