Re: [poe] Define Atomic and Compound Constraint as subclasses

My view on the change of the Constraint design as discussed at the call on 2017-07-03 - https://www.w3.org/2017/07/03-poe-minutes

1. Create a subclass Binary Constraint (close to the previous Atomic Constraint) and a subclass Multi Constraint of the Constraint Class
2. Binary Constraint class properties:
- leftOperand, cardinality 1, range: LeftOperand class instance or Constraint class instance
- rightOperand, cardinality 1, range: literal value or Constraint class instance
OR rightOperandReference, same cardinality, range: anyURI
- operator, cardinality 1, range: (Binary?)Operator class instance
- datatype ... as currently in the IM
- unit ... as currently in the IM
- status ... as currently in the IM - or not? See next bullet.
3. Binary Constraint definition: Binary Constraints are expressions for comparing two operands by one operator. If the expression evaluates to true the Constraint is satisfied. Binary Constraints may use relational operators {see #194} or sequential logical operators. In the case of a sequential logical operator the leftOperand and the rightOperand must be a Constraint.
{My question: does it make sense to allow a status property in case of a sequential logical operator?}
4. New definition of Sequential Logical Operator: the operator requires that first the leftOperand must be processed and only when it is satisfied the rightOperand can be logically compared as defined by the operand. 
- andSequence: a Sequential Logical Operator, the Boolean operation AND is applied.
5. Multi Constraint class properties:
- operator, cardinality 1, range: ODRL Logical Operator
- operand, cardinality 1, range: list of 2 or more Binary Class instances
6. Multi Constraint definition: Multi Constraints are expressions for comparing two and more Binary Constraints as operands by one operator. If the expression evaluates to true the Constraint is satisfied. Multi Constraints may use only an ODRL Logical Operator.
7. New definition of ODRL Logical Operator: a Boolean Operator optionally with ODRL-specific limitations.
- and: same as Boolean AND
- or: same as Boolean OR
- xor1: out of a set of operands only one is satisfied to make the expression satisfied. If none of if more than 1 operands are satisfied the expression is not satisfied.

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

Received on Monday, 3 July 2017 16:28:51 UTC