RE: About a more strict definition of Constraint

Hi Ivan – and all,

ok, let’s have a look at the Examples  https://www.w3.org/TR/vocab-odrl/#examples with constraints.

 

I’ve modified snippets of the Turtle syntax, changes are highlighted.

The major changes for turning a constraint into an explicit RDF triple:

-          Each constraint has an explicit odrl:constraintsubject = subject of the triple

-          Each constraint has an explicit odrl:constraintterm = predicate of the triple

-          Odrl:operator, odrl:rightoperandvalue, odrl:rightoperanddatatype, odrl:rightoperandunit make jointly the object of the triple

 

See my Open Issues section below the examples.

 

* 6.2 offer / Example 8 

<http://example.com/policy:0231>

  a odrl:Offer ;

  odrl:permission [

    a odrl:Permission ;

    odrl:target <http://example.com/music:4545> ;

    odrl:assigner <http://example.com/sony:10> ;

    odrl:action odrl:play ;

    odrl:duty _:requirements

  ] ;

  odrl:permission [

    a odrl:Permission ;

    odrl:target <http://example.com/music:4545> ;

    odrl:assigner <http://example.com/sony:10> ;

    odrl:action odrl:copy ;

    odrl:duty _:requirements ;

    odrl:constraint [

      a odrl:Constraint ;

      odrl:constraintsubject odrl:action;

      odrl:constraintterm odrl:count;

      odrl:operator odrl:lteq;

      odrl:rightoperandvalue 1

    ]

  ] .

Human language variant of the triple:

“the action of this permission” “has Count constraint” “lower than or equal – 1”

 

* 6.3 agreement – same as above

 

* 6.5 ticket / Example 20

 

<http://example.com/policy:0811>
  a odrl:Ticket ;
  odrl:permission [
    a odrl:Permission ;
    odrl:action odrl:play ;
    odrl:target <http://example.com/game:4589> ;
    odrl:constraint [
      a odrl:Constraint ;

      odrl:constraintsubject odrl:action;

      odrl:constraintterm odrl:validTo; {note: new term}

      odrl:operator odrl:lteq ;
      odrl:rightoperandvalue "2010-12-31"^^xsd:date
    ]
  ] .

Human language variant of the triple:

“the action of this permission” “has Valid To  constraint” “lower than or equal – 31 December 2010 (of type date)”

 

* 6.6 Offer and next policy / Example 24

 

<http://example.com/policy:5531>
  a odrl:Offer ;
  odrl:permission [
    a odrl:Permission ;
    odrl:action odrl:distribute ;
    odrl:target <http://example.com/wallpaper:2321> ;
    odrl:assigner <http://example.com/sony:99> ;
    odrl:constraint [
      a odrl:Constraint ;

      odrl:constraintsubject odrl:action;

      odrl:constraintterm odrl:spatial;

      odrl:operator odrl:eq ;
      odrl:rightoperandvalue <http://ontologi.es/place/IT>
    ] ;
    odrl:duty <http://example.com/duty:01>, <http://example.com/duty:02>
  ] .

Human language variant of the triple:

“the action of this permission” “has Spatial  constraint” “equal – a place with the id http://ontologi.es/place/IT”

 
<http://example.com/duty:01>
  a odrl:Duty ;
  odrl:action odrl:pay ;
  odrl:constraint [
    a odrl:Constraint ;
    odrl:constraintsubject <http://example.com/duty:01>;

    odrl:constraintterm odrl:payAmount;

    odrl:operator odrl:eq ;
    odrl:rightoperandvalue 1000.00 ;
    odrl:rightoperandunit <http://cvx.iptc.org/iso4217a:EUR>
  ] .

Human language variant of the triple:

“the thing with the id http://example.com/duty:01” “has Pay Amount  constraint” “equal – 1000.00 units of the currency EUR”

 

* 6.7 Privacy policy / Example 28

 

<http://example.com/policy:1111>
  a odrl:Privacy ;
  odrl:permission [
    a odrl:Permission ;
    odrl:action odrl:distribute ;
    odrl:target <http://example.com/billie:888:personal-data> ;
    odrl:assigner <http://example.com/billie:888> ;
    odrl:assignee <http://example.com/gov:health:au> ;
    odrl:duty [
      a odrl:Duty ;
      odrl:action odrl:delete ;
      odrl:constraint [
        a odrl:Constraint ;
        odrl:constraintsubject odrl:target;

        odrl:constraintterm odrl:deleteAfter; {note: new term}

        odrl:operator odrl:eq ;
        odrl:rightoperandvalue "P30D"^^xsd:dateTime 
      ]
    ] ;

Human language variant of the triple:

“the target of this policy” “has Delete After  constraint” “equal – period of 30 Days (of type date)”

 
    odrl:constraint [
      a odrl:Constraint ;
      odrl:constraintsubject odrl:action;

      odrl:constraintterm odrl:purpose;

      odrl:operator odrl:eq ;
      odrl:rightoperandvalue p3p:contact
    ]
  ] .

Human language variant of the triple:

“the action of this permission” “has Purpose  constraint” “equal – Contact (as defined by W3C’s P3P)”

 

======= END of examples

 

** Open syntax issues:

-          Policy-internal and -external constraint subjects:
As outlined in my initial email the odrl:constraintsubject could be either a thing being the value of an entity of this policy (e.g. odrl:target, odrl:assigner, odrl:assignee, odrl:action) or a policy-external entity (e.g. specific event with id) 
Could the rule be: 
a) if the value of odrl:constraintsubject is from odrl namespace then the subject is the ancestor field/entity of this name in the hierarchy of this policy
b) if the value of odrl:constraintsubject is from another namespace this is not field/entity of this policy.
If this rule is too simple then we need an indicator of the type of the odrl:constraintsubject.

-          A facet of the above: how to express policy-internal subjects
The subject of the constraint could be expressed by either the field/entity holding a value or by the value itself.
>From example 28 above: by odrl:target of by  <http://example.com/billie:888:personal-data> http://example.com/billie:888:personal-data
While the latter identifies directly the subject the first, the indirect variant also include the role of this person-data-thing in the policy. That’s why I have suggested using the field/entity.

-          Verbosity: for an easy understanding I have used quite verbose names, e.g. rightoperandvalue, could be shorted for a final specification. 

 

** Open semantic issue: the semantics of the constraint terms (in the latest published draft at  <https://www.w3.org/TR/vocab-odrl/#constraintActions> https://www.w3.org/TR/vocab-odrl/#constraintActions) must be checked if how the subject is constrained by this term is clear and unambiguous.

 

I hope this helps getting the direction of my suggestion.

 

Best

Michael

 

From: Ivan Herman [mailto:ivan@w3.org] 
Sent: Tuesday, November 8, 2016 7:09 AM
To: Michael Steidl <mdirector@iptc.org>
Cc: W3C POE WG <public-poe-wg@w3.org>
Subject: Re: About a more strict definition of Constraint

 

Michael,

 

I *think* I see where you are going, but I am not sure. Could you give some explicit examples? For example, by re-writing some of the examples in 

 

https://www.w3.org/TR/vocab-odrl/

 

using your approach? It would help me at least to understand it better…

 

Thanks

 

Ivan

 

 

On 7 Nov 2016, at 18:57, Michael Steidl (IPTC) <mdirector@iptc.org <mailto:mdirector@iptc.org> > wrote:

 

Hi all,

the recent discussion about Complex Constraints let me look into the current definition of Constraint [1].

I interpret this definition as:

-          A constraint applies to the Permission, Prohibition or Duty as a whole. In RDF terminology one of these is the subject of the triple. And this definition is implicit – the subject is always the Permission (, Prohibition) or Duty including the constraint.

-          The constraint data  are “mathematical terms with two operands and one operator” = a mathematical, or better a Boolean, condition which has to be met.

-          If multiple constraints with the same subject exist then all of them have to be met.

 

>From that I see two main open issues:

 

A) To make the use of the subject of the constraint more flexible – and have an RDF triple in mind:

1) I suggest to add an entity to Constraint expressing the subject explicitly. This entity could express that the whole Permission/Prohibition/Duty is the subject  or a specific part of it – or an entity outside it, e.g. an event. In the latter case an identifier for this external entity should be added to the structure.

That a constraint is included into a Permission or Duty still defines which constraints have to be met to show a thumbs up for Permission or Duty.

 

2) I suggest to consider the current “name” of a constraint as the predicate of the triple.

E.g. Absolute Position -> “has absolute position constraint”, Resolution -> “has resolution constraint”

 

3) I suggest to consider the “mathematical terms” as the object of the triple.

 

This could result in triples like (taken from discussions and use cases)

“The asset with id=’abc123’” “has resolution restriction” “operator=lowerThan rightOperand=300 unit=dpi”

“The assignee party” “has age restriction” “operator:higherThan rightOperand=18 unit=year”

“The assignee party” “has affiliation restriction” “operator:equal rightOperand=  <https://www.wikidata.org/entity/Q48282> https://www.wikidata.org/entity/Q48282 “ (help: “student” entity of WikiData)

“The event with id=’ <http://sporteventregistry.com/abc9883%E2%80%99> http://sporteventregistry.com/abc9883’” “has temporal-after-terminated constraint” “operator=higherThan rightOperand=30 unit=minutes”

“This Duty” “has payment constraint” “operator=equal rightOperator=200 unit=EUR”

 

 

B) Clarification of processing multiple constraints

The current specs define that all constraints have to be met.

First clarification: is that sufficient – or not. If not: what are requirements going beyond that?

Note: I recall it was raised that some constraints may apply in temporal order – but why is this relevant? Again: all constraints have to be met, in this case the e.g. Permission is only given after the last constraint has been met. And if the permission may change after some time (or other fulfilled constraints) ODRL provides the nextPolicy.

 

My approach is: it may help to have a more strict definition of constraint to solve some pending issues. Let’s consider that before digging into complexity.

 

Best,

Michael

 

[1]  <http://w3c.github.io/poe/model/#constraint> http://w3c.github.io/poe/model/#constraint

 

 

Michael Steidl

Managing Director of the IPTC [ <mailto:mdirector@iptc.org> mdirector@iptc.org]

International Press Telecommunications Council 
Web:  <http://www.iptc.org/> www.iptc.org - on Twitter  <http://www.twitter.com/IPTC> @IPTC

Business office address: 

25 Southampton Buildings, London WC2A 1AL, United Kingdom

Registered in England, company no 101096

 


----
Ivan Herman, W3C 
Digital Publishing Technical Lead
Home: http://www.w3.org/People/Ivan/
mobile: +31-641044153

ORCID ID: http://orcid.org/0000-0003-0782-2704



 

Received on Tuesday, 8 November 2016 11:55:01 UTC