- From: Barnett, James <James.Barnett@aspect.com>
- Date: Fri, 11 Apr 2008 16:23:44 -0400
- To: "Andrew Emmons" <andrew.emmons@quickoffice.com>, <www-voice@w3.org>
- Message-ID: <57686697B4E28949A90094A6469165C70396E122@ASP1EXCH1.aspect.com>
Andrew, Your statements are all correct. For simple (= flat) state machines of the kind you would see in an automata theory class, things can be stated very straightforwardly: "at any point, a state machine is in one and only one state, which is called the 'active' state. When an event occurs, the state machine may take a transition, instantaneously leaving its current active state and entering another. " Things are more complicated in SCXML due to nested and parallel states, but the same basic idea applies: at any point an SCXML state machine is either a) in a single _atomic_ (innermost) state, and the other active states are the ancestors of the atomic state, or b) in multiple atomic states, in which case the atomic states are descendents of a single parallel element, and the other active states are the ancestors of those atomic states. - Jim ________________________________ From: www-voice-request@w3.org [mailto:www-voice-request@w3.org] On Behalf Of Andrew Emmons Sent: Friday, April 11, 2008 3:50 PM To: www-voice@w3.org Subject: SCXML: Fundamental questions Hello, Quickoffice has been looking at using SCXML in combination with our SVG implementation. We have a few quick questions about the very basics of state machines. We were trying to find a clear definition in the spec about what an "active" state is. Or what it means to "activate" a state. Or "being in" a state. This might be an oversight of the spec, or might be something so fundamentally obvious that it was not deemed necessary to specifically describe it, in which case we apologize for the questions. Consider the following state machine excerpt (transitions omitted): <scxml> <state id="s"> <state id="s0"/> <state id="s1"/> </state> <state id="t"> <state id="t0"/> <state id="t1"/> </state> </scxml> Are those statements correct : - "being in s" means that s is active - "entering s" means that s becomes active - generally speaking, if a state machine "is in" a state, it means that state is active (and vice-versa) - when a substate is active, all its ancestor states are necessarily also active - thus, if the state machine "is in" s0, it is also necessarily "in" s - a transition from s0 to t0 necessarily exits s0 and s (they both become inactive) and enters t and t0 (which both become active) A straightforward answer to those questions will go a long way towards helping us to implement some aspects of the SCXML spec and towards designing proper state machines using SCXML. Thanks in advance, Andrew Andrew Emmons Architect and Manager, SVG Technologies Co-Chair, W3C SVG Working Group Quickoffice, BitFlash Division Web: www.bitflash.com <http://www.bitflash.com/> , www.quickoffice.com
Received on Friday, 11 April 2008 20:24:28 UTC