FW: Extended Relations + Constraints On Constraints proposal

Sorry for the late forwarding.

Michael

 

From: Michael Steidl (IPTC) [mailto:mdirector@iptc.org] 
Sent: Monday, January 23, 2017 11:03 AM
To: 'Renato Iannella' <renato.iannella@monegraph.com>
Subject: RE: Extended Relations + Constraints On Constraints proposal

 

Hi Renato and WG,

re some details of the suggested solutions below:

 

* sorry, but I can’t follow this detail in the section about Extended Relations: “… each left and right operand would be two constraint objects …”. Having a look into [1] I would formulate: “a constraint could have other constraints as objects of the left and the right operand and the operator of this constraint sets a relationship between these two other constraints”. Did I get [1] right?

 

* re “constraint on constraint”: I understand Renato’s suggestion as defining a sequence of constraints: first comes constraint c1 and if it is met next comes constraint c2 (… and so on). By my understanding of the term “depend” it links constraints but doesn’t set a sequence. I suggest as new Constraint property hasPriorConstraint and its object must be another constraint of this permission or duty which must be processed prior to this one – a processor would have to go back to the starting sequence. 

 

An alternative and easy to process design of constraint sequence would be:

:c1 a odrl:Constraint ;

                odrl:operator odrl:eq ;

                odrl:leftOperator …

                odrl:sequenceid “a”

                odrl:sequencenumber 1

 

:c2 a odrl:Constraint ;

                odrl:operator odrl:eq ;

                odrl:leftOperator …

                odrl:sequenceid “a”

                odrl:sequencenumber 2

 

:c3 a odrl:Constraint ;

                odrl:operator odrl:eq ;

                odrl:leftOperator …

                odrl:sequenceid “b”

                odrl:sequencenumber 1

 

:c4 a odrl:Constraint ;

                odrl:operator odrl:eq ;

                odrl:leftOperator …

                odrl:constraintSequence

                odrl:sequenceid “b”

                odrl:sequencenumber 2

 

… if a processor encounters a constraint with a sequenceid it must only look for the lowest sequencenumber of this sequenceid

 

* re “c1 odrl:dependsOn c2” = “constraint 1 depends on constraint 2”: wasn’t the intention to say “constraint 2 depends on constraint 1” = the subject and the object of the triple should be switched. 

And if we make this assertion a property of a constraint the subject of the triple is implicitly “this constraint”. See my thoughts about the semantics of the predicate above.

 

* re the example: sorry but by existing constraint left operand I can’t see how to solve the classic example:

Permission: action = Display

Constraint 1: leftOperand = Action Datetime (or Period), rightOperand = the timestamp of the end of the event (could be a URL delivering it in real-time), operator = greater than or equal

Constraint 2: leftOperand = Action Datetime (or Period), rightOperand = ?? how to express “30 minutes later that a specific timestamp”, operator = greater than or equal, (new) priorConstraint = c1

 

Best,

Michael

 

From: Renato Iannella [mailto:renato.iannella@monegraph.com] 
Sent: Wednesday, January 18, 2017 6:25 AM
To: W3C POE WG <public-poe-wg@w3.org <mailto:public-poe-wg@w3.org> >
Subject: Extended Relations + Constraints On Constraints proposal

 

Dear WG, I have a proposal to address the two main outstanding requirements; 

 - Extended Relations [1]

 - Constraints on Constraints [2]

 

Since we have updated the constraint model with clearer left/right operands - and the constraint model itself naturally supports comparison operations, then I recommend we only support Extended Relations for Constraints. In this case, each left and right operand would be two constraint objects, and the operators odrl:xor odrl:or odrl:and can be used to express the relation. (note: we don’t need odrl:and as that is the default, but we can add it anyway for completeness.)

(See the last example at [1] for a sample.)

 

In a very similar fashion, to support “constraints on constraints” all we need to do is define a new operator that (semantically) indicates that one constraint “is dependent” on the other. Lets say, for example, that is called “odrl:dependsOn”.

so, “c1 odrl:dependsOn c2” would mean that the first c1 constraint would have to be satisfied first, then the second c2 must then be satisfied.

 

In our classic example “30 mins after the football” match, c1 would be the football event ending, and c2 would be wait 30 min period.

(Note: this is not the same as odrl:and as that means I can wait 30 mins at the same time wait for the game to end.)

 

This proposal has no change on the model, and only the addition of the operators to the vocabulary.

 

Thoughts…

 

Renato Iannella, Monegraph

Co-Chair, W3C Permissions & Obligations Expression (POE) Working Group

 

[1] https://github.com/w3c/poe/issues/63

[2] https://github.com/w3c/poe/issues/62

 

Received on Monday, 23 January 2017 12:48:47 UTC