RE: Extended Relations + Constraints On Constraints proposal

Hi Renato,

If I understand your proposal correctly, I think it does satisfy the requirements without altering the model, although it could be that the XML and JSON encodings need to be altered somewhat.

First, let me see if I understand your proposals:


Ø  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.

According the ODRL 2.1 XML encoding

https://www.w3.org/community/odrl/xml/2.1/#section-3


Constraint element attributes MUST be used as defined by one of the sets of attributes and their cardinalities below:
1.     name (required), operator (required), rightOperand (required), dataType (optional), unit (optional), status (optional), id (optional), or
2.     idref (required)

In other words, a constraint element in XML either has to have a name, operator and a rightOperand (with some optional attributes) such as

<o:constraint id="c1" name="http://www.w3.org/ns/odrl/2/spatial" operator="http://www.w3.org/ns/odrl/2/eq" rightOperand="http://www.itu.int/tML/tML-ISO-3166:it"/>

Or it has to have a idref attribute only. The idref is used to reference the (optional) constraint/@id  of another constraint. (This is syntactic sugar to avoid having to repeat an entire constraint in XML – see https://www.w3.org/community/odrl/xml/2.1/#section-4).

So, how would we express the XML equivalent of “c1 odrl:dependsOn c2”? You could add more attributes to the XML constraint, I suppose. Or you could introduce an a new XML element which lists the dependencies, e.g.

<o:constraintDependency leftOperand="c1" operator="http://www.w3.org/ns/odrl/2/dependsOn" rightOperand="c2"/>

And we would need to make similar changes to the JSON(-LD) encoding. I like the idea of introducing the constraintDependency element (or a better name). And I like using the operator mechanism to indicate what the dependency is.

But have I understood your suggestion correctly?

Regards,

Stuart


From: Renato Iannella [mailto:renato.iannella@monegraph.com]
Sent: Wednesday, January 18, 2017 12:25 AM
To: W3C POE WG
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<https://github.com/w3c/poe/issues/63>
[2] https://github.com/w3c/poe/issues/62<https://github.com/w3c/poe/issues/62>

Received on Friday, 20 January 2017 20:11:53 UTC