Re: [poe] EXAMPLE 19 makes no sense

> **A choice needs to be made** between C1 and C2 ("xor").
(and we make no assumptions on how that is done)

but that's not how xor works..
http://mathworld.wolfram.com/XOR.html: 
> A connective in logic known as the "exclusive or," or exclusive disjunction. **It yields true if exactly one (but not both) of two conditions is true.** 

A | B | A xor B
:---: | :---: | :---:
0 | 0 | 0
1 | 0 | 1
0 | 1 | 1
1 | 1 | 0

> If the operator is xor then ~~at~~ **only one** of the Atomic Constraints (in the left or right operands) **MUST be satisfied** for the entire Compound Constraint to be satisfied.

Hence, to check whether an XOR compound constraint is satisfied **both** of its atomic constraints have to be validated, otherwise you don't know whether **only one** (but not both) of its atomic constraints is satisfied. 

Even though we don't specify how the validation of atomic constraints has to be done, we do know that if validating atomic constraint c1 at time t returns true, the condition specified by c1 holds at time t.
As such, following permission is only effective if either `<http://example.com/policy:88/C1>` or `<http://example.com/policy:88/C2>` are satisfied ->
1. it was exercised <= 100 times and today() > 2017-12-31
2. it was exercised > 100 times and today() <= 2017-12-31  

But it is not in effect if `<http://example.com/policy:88/C1>` and `<http://example.com/policy:88/C2>` are both satisfied or unsatisfied at the same time -> 
1. it was exercised <= 100 times and today() <= 2017-12-31
2. it was exercised > 100 times and today() > 2017-12-31  
```turtle
<http://example.com/policy:88>
    a odrl:Offer ;
    odrl:permission [ 
        odrl:target <http://example.com/book/1999.mp3> ;
        odrl:assigner <http://example.com/org/paisley-park> ;
        odrl:action odrl:play ;
        odrl:constraint [ 
            odrl:leftOperand <http://example.com/policy:88/C1> ;
            odrl:operator odrl:xor ;
            odrl:rightOperand <http://example.com/policy:88/C2> ;                                                     
        ]
    ] .

<http://example.com/policy:88/C1> 
    a odrl:Constraint ;
    odrl:leftOperand odrl:count ;
    odrl:operator odrl:lteq ;                              
    odrl:rightOperand "100" .

<http://example.com/policy:88/C2> 
    a odrl:Constraint ;
    odrl:leftOperand odrl:dateTime ;
    odrl:operator odrl:lteq ;                              
    odrl:rightOperand "2017-12-31" .
```
------------------


-- 
GitHub Notification of comment by simonstey
Please view or discuss this issue at https://github.com/w3c/poe/issues/205#issuecomment-311257684 using your GitHub account

Received on Tuesday, 27 June 2017 05:34:23 UTC