Fwd: WorkUnit guard semantics issue

Gentlepeople,

I wanted to present to you a history from 22nd Sept through to the  
current date of the WorkUnit with guards and blocking set to true.
In my previous email I alluded to all that follows. I do not think that  
this should prevent us from continuing on a present path but we
will need to rectify this matter during a last call period. We may as a  
group choose to include it in the LC issues page or we choose
to have it raised (and I am happy to do so) against the LC working  
draft when it has been done.

Best

Steve T


> Editors copy of 22nd Sept
> ref: http://www.w3.org/2002/ws/chor/edcopies/cdl/cdl.html
>
> 2.4.5 WorkUnits
> ......
> ? When the attribute block is set to "true" and one or more  
> Variable(s) are not available, then the Work Unit MUST block waiting  
> for the Variable information to become available. This attribute MUST  
> not be used in Exception Work Units. When the Variable information  
> specified by the guard condition become available then the guard  
> condition is evaluated:
> ?  If the guard condition evaluates to "false", then the Work Unit  
> matching fails and the Activity-Notation enclosed within the Work Unit  
> is skipped and the repetition condition even if specified is not  
> evaluated
> ? If the guard condition evaluates to "true", then the Work Unit is  
> matched and then the repetition condition, if specified, is evaluated  
> when the Variable information specified by the repetition condition  
> become available
> ? If the repetition condition evaluates to "true", then the Work Unit  
> is considered again for matching
> ? If the repetition condition evaluates to "false", then the Work Unit  
> is not considered again for matching
>
> Comments:
> Thus according to this draft if a WU has a guard with variables A, B  
> and C and condition "A > 1 && B != 6 && C < 5" and has blocking set to  
> "true" then when the variables A, B and C are available the condition  
> "A > 1 && B != 6 && C < 5" is evaluated. If the condition is false  
> because the information at A or B or C is such that this is so then  
> the Activity-Ntation within the WU is skipped.
>
> No examples in this version suggest otherwise.
>
>
> Working Draft 12th Oct
> Ref: http://www.w3.org/TR/2004/WD-ws-cdl-10-20041012/
>
> 2.4.5 WorkUnits
> .....
> ? When the attribute block is set to "true" and one or more  
> Variable(s) are not available, then the Work Unit MUST block waiting  
> for the Variable information to become available. This attribute MUST  
> not be used in Exception Work Units. When the Variable information  
> specified by the guard condition become available then the guard  
> condition is evaluated:
> ?  If the guard condition evaluates to "false", then the Work Unit  
> matching fails and the Activity-Notation enclosed within the Work Unit  
> is skipped and the repetition condition even if specified is not  
> evaluated
> ? If the guard condition evaluates to "true", then the Work Unit is  
> matched and then the repetition condition, if specified, is evaluated  
> when the Variable information specified by the repetition condition  
> become available
> ? If the repetition condition evaluates to "true", then the Work Unit  
> is considered again for matching
> ? If the repetition condition evaluates to "false", then the Work Unit  
> is not considered again for matching
>
> Comments:
> The 12 October working draft is unchanged at least in terms of the  
> guard semantics on WU's with blocking set to true.
>
> Editors Draft 11th November
> Ref:  
> http://lists.w3.org/Archives/Public/public-ws-chor/2004Nov/att-0055/ 
> cdl_v1-editors-nov11-2004-XML.pdf.tar.gz
>
> 2.4.6 WorkUnits
> .....
> The optional attribute block specifies whether the matching condition  
> relies on the Variable that is currently available, or whether the  
> Work Unit has to block waiting for the Variable to become available in  
> the future if it is not currently available. This attribute MUST  
> always be set to “false” in Exception Work Units. The default for this  
> attribute is set to “false”.
>
> .....
>
> • If the attribute block is set to "true" and one or more required  
> Variable(s) are not available, then the Work Unit MUST block. When the  
> required Variable information specified by the guard condition become  
> available and the guard condition evaluates to "true", then the Work  
> Unit is matched. If the repetition condition is specified, then it is  
> evaluated when the Work Unit completes successfully. Then, if the  
> required Variable information specified by the repetition condition is  
> available and the repetition condition evaluates to "true", the Work  
> Unit is considered again for matching. Otherwise, the Work Unit is not  
> considered again for matching
>
> Comments:
> In this draft the text has changed considerably but nothing in the  
> text suggests that the semantics are significantly different from the  
> previous working draft and editors draft listed above.
>
>
> Editors Draft 3rd December
> Ref:  
> http://lists.w3.org/Archives/Public/www-archive/2004Dec/att-0004/ 
> cdl_v1-editors-dec03-2004-XML-sent.pdf
>
> 2.4.6 WorkUnits
> .....
> The OPTIONAL attribute block specifies whether the Work Unit has to  
> block waiting for referenced Variables within the guard condition to  
> become available (if they are not already) and the guard condition to  
> evaluate to “true”. This attribute MUST always be set to “false” in  
> Exception Work Units. The default for this attribute is set to  
> “false”.
> .....
> If the attribute block is set to "true" and one or more required  
> Variable(s) are not available or the guard condition evaluates to  
> "false", then the Work Unit MUST block. When the required Variable  
> information specified by the guard condition become available and the  
> guard condition evaluates to "true", then the Work Unit is matched. If  
> the repetition condition is specified, then it is evaluated when the  
> Work Unit completes successfully. Then, if the required Variable  
> information specified by the repetition condition is available and the  
> repetition condition evaluates to "true", the Work Unit is considered  
> again for matching. Otherwise, the Work Unit is not considered again  
> for matching
>
>  Comments:
> This changes the semantics since it explicitly states that the guard  
> condition to evaluate to "true" in the first paragraph above as well  
> as or the guard condition evaluates to "false", then the Work Unit  
> MUST block in the second paragraph which was never stated before and  
> was in fact different all other references from 22nd Sept onwards to  
> 11th November.
>
>  Whilst we appreciate the need to make progress and we understand the  
> need to incorporate sensible semantics for timeouts we do not believe  
> that changing the semantics to accommodate the timeouts is a good  
> thing to be doing. It would be better to take a longer view.
>
> We do intend to raise this as an issue against the LC document when it  
> is published and we do not believe it has a major architectural  
> impact.
>

Received on Wednesday, 8 December 2004 15:17:28 UTC