Please keep an eye on the www-voice thread. I think there may still be
problems with the current step algorithm, and I'm drafting a reply to
elaborate on this.

Thanks,

Jake

On Tue, Mar 1, 2011 at 6:50 PM, Rahul Akolkar <rahul.akol...@gmail.com> wrote:
> On Sun, Feb 27, 2011 at 11:51 AM, Jacob Beard <jbea...@cs.mcgill.ca> wrote:
>> Hi,
>>
>> I'm currently working on revising scxml-js so that it implements the
>> semantics defined by the step algorithm of the SCXML specification (as
>> opposed to the mixture of SCXML semantics and Rhapsody semantics which
>> it currently implements). I've run into a part of the step algorithm
>> which is somewhat unclear, and because it may relate to a limitation
>> in the Commons SCXML implementation, I thought I would ask about this
>> on the Commons SCXML list before asking about it on the w3-voice list.
>>
>> Consider the following SCXML document:
>>
>> <scxml initial="p">
>>
>>        <parallel id="p">
>>
>>                <history id="h">
>>                        <transition target="A.2 B.2"/>
>>                </history>
>>
>>                <state id="A" initial="A.1">
>>                        <state id="A.1"/>
>>                        <state id="A.2"/>
>>                </state>
>>
>>                <state id="B">
>>                        <state id="B.1"/>
>>                        <state id="B.2"/>
>>                </state>
>>
>>        </parallel>
>>
>> </scxml>
>>
>> (https://gist.github.com/846316)
>>
>>
>> I believe the step algorithm in the SCXML specification would
>> interpret the document in the following way:
>>
>> addStatesToEnter would at some point be called for parallel state p.
>> addStatesToEnter would then be called recursively for each of p's
>> children: h, A, B.
>>
>> addStatesToEnter would first be called for h. Because this is the
>> first time h was entered, addStatesToEnter will be recursively called
>> for each of the targets of its default transition: A.2 and B.2. A.2
>> and B.2 will then be added to statesToEnter.
>>
>> addStatesToEnter would then be called for state A. A  is a compound
>> state, so addStatesToEnter would then be called for A's initial state:
>> A.1. A.1 would then be added to statesToEnter.
>>
>> The same would occur for B, and so B.1 would be added to statesToEnter.
>>
>> The resulting configuration would then be: p,h,A,B,A.1,A.2,B.1,B.2,
>> which is not a legal configuration, as A and B are both OR states.
>>
>>
>>
>> Is my interpretation of the specification correct, in that the step
>> algorithm would allow this illegal configuration, or am I missing
>> something?
>>
>>
>>
>> I'm asking this question here, rather than on the w3-voice list,
>> because I believe Commons SCXML does not currently support history in
>> parallel: 
>> http://mail-archives.apache.org/mod_mbox/commons-user/201001.mbox/%3cce1f2ea81001131340w2aaaf5bfs84b9db2252287...@mail.gmail.com%3E
>>
>> It's not clear whether this is due to possible conflicts in SCXML
>> semantics, or whether this is simply Commons SCXML implementation
>> lagging a bit behind changes in the specification.
>>
> <snip/>
>
> Its lag. I believe you have your answer on w3-voice, if not, let me
> know and I'll look further.
>
> -Rahul
>
>
>> I'd appreciate any guidance you can offer. Thanks,
>>
>> Jake
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to