[poe] Issue: Harmonise how a Duty with consequences should be evaluated marked as Model

nitmws has just labeled an issue for https://github.com/w3c/poe as "Model":

== Harmonise how a Duty with consequences should be evaluated ==
This is about the CR version of the IM, today (25 September) at https://w3c.github.io/poe/model

The [Duty Class definition](https://w3c.github.io/poe/model/#duty) says about consequences: 

> If its (= the Duty's) action has not been exercised, then all consequences must be fulfilled to fulfil the Duty.

Further down in this section the description of the `consequence` property says:

> If either of these (= a duty or obligation) fails to be fulfilled, then this will result in the consequence Duty _also_ becoming a new requirement, meaning that the original obligation or duty, as well as the consequence Duty must all be fulfilled. 

These two statements are not aligned: the first one does not require to exercise the action of the Duty, the second one does. 
I suggest - **as minimal approach**, see more below - to change the 1st paragraph of the Duty Class to:

> A Duty is the **obligation** to **exercise** an action, with all refinements **satisfied**. A Duty is **fulfilled** if all constraints are **satisfied** and if its action, with all refinements **satisfied**, has been exercised. If its action has not been exercised, then this action has to be exercised and all consequences must be fulfilled to **fulfil** the Duty. (Note: only Duties referenced by duty or obligation properties may use consequence properties.)

This wording above defines in fact but not explicitly the need to run two evaluations of the same Duty instances:
* Round 1: the Evaluator detects the action of the Duty has not been exercised 
This triggers:
* Round 2: the Evaluator has to check if the action of the Duty has been exercised AND if all consequences of the Duty have been fulfilled. Only in this case the evaluated Duty can be set to **Fulfilled.** 
(This should be reflected in the Truth Tables of the [Evaluator page](https://www.w3.org/2016/poe/wiki/Evaluator).)

To make this transparent it would help to integrate such a 2-rounds-evaluation in the definition. My suggestion, **round 2** ;-)

> A Duty is the **obligation** to **exercise** an action, with all refinements **satisfied**. A Duty is **fulfilled** if all constraints are **satisfied** and if its action, with all refinements **satisfied**, has been exercised. If its action has not been exercised, then the Duty has to be evaluated again requiring that its action has been exercised and all consequences have been fulfilled to **fulfil** the Duty. (Note: only Duties referenced by duty or obligation properties may use consequence properties.)



See https://github.com/w3c/poe/issues/267

Received on Monday, 25 September 2017 13:56:35 UTC