fbpx
Wikipedia

SCXML

SCXML stands for State Chart XML: State Machine Notation for Control Abstraction. It is an XML-based markup language that provides a generic state-machine-based execution environment based on Harel statecharts.

State Chart XML
Filename extension
.scxml
Developed byWorld Wide Web Consortium
Latest release
1.0
September 1, 2015
Type of formatMarkup language
Extended fromXML
Websitehttp://www.w3.org/TR/scxml/

SCXML is able to describe complex finite state machines. For example, it is possible to describe notations such as sub-states, parallel states, synchronization, or concurrency, in SCXML.

Goals edit

The objective of this standard is to genericize state diagram notations that are already used in other XML contexts. For example, it is expected that SCXML notations will replace the State machines notations used in the next CCXML 2.0 version (an XML standard designed to provide telephony support to VoiceXML). It could also be used as a multimodal control language in the Multimodal Interaction Activity.

One of the goals of this language is to make sure that the language is compatible with CCXML and that there is an easy path for existing CCXML scripts to be converted to SCXML without major changes to the programming model or document structure (for example, by using an XSL Transformation).

The current version of the specification was released by the W3C in September 2015.[1]

Applications edit

According to the W3C SCXML specification,[2] SCXML is a general-purpose event-based state machine language that can be used in many ways, including:

  • As a high-level dialog language controlling VoiceXML 3.0's encapsulated speech modules (voice form, voice picklist, etc.)
  • As a voice application metalanguage, where in addition to VoiceXML 3.0 functionality, it may also control database access and business logic modules.
  • As a multimodal control language in the MultiModal Interaction framework, combining VoiceXML 3.0 dialogs with dialogs in other modalities including keyboard and mouse, ink, vision, haptics, etc. It may also control combined modalities such as lipreading (combined speech recognition and vision) speech input with keyboard as fallback, and multiple keyboards for multi-user editing.
  • As the state machine framework for a future version of CCXML.
  • As an extended call center management language, combining CCXML call control functionality with computer-telephony integration for call centers that integrate telephone calls with computer screen pops, as well as other types of message exchange such as chats, instant messaging, etc.
  • As a general process control language in other contexts not involving speech processing.

The draft W3C VoiceXML 3.0 specification[3] includes State Chart and SCXML Representation to define functionality.

Multimodal applications edit

Multimodal application designs can use different modalities (for example, voice vs. touchscreen vs. keyboard and mouse) for different parts of a communication best suited to it. For example, voice input can be used to avoid having to type on the small screen of a mobile phone, but the screen may be a faster way of communicating a list or map, compared to listening to long descriptions of available options. SCXML makes it easy to do several things in parallel, and the Interaction Manager SCXML application will maintain the synchronization between Voice and Visual dialogues.

 

The W3C document Authoring Applications for the Multimodal Architecture[4] describes a multimodal system that implements the W3C Multimodal Architecture and gives an example of a simple multimodal application authored using various W3C markup languages, including SCXML, CCXML, VoiceXML 2.1 and HTML.

Implementations edit

  • scxmlcc An efficient scxml to C++ compiler.
  • Apache Commons SCXML, a pure Java library to parse and execute SCXML diagrams
  • SCXMLgui Java Visual Editor for SCXML.
  • SCION SCXML implemented in portable JavaScript.
  • JSSCxml a Web browser implementation. Highly conformant, with good support for DOM Events. Only supports the ECMAScript datamodel.
  • uSCXML C/C++ interpreter and transformer/compiler with language bindings for Java and C#. Full ECMAScript support via JavaScriptCore or Google's v8, additional LUA and Prolog datamodels, only rudimentary support for XPath datamodel. PROMELA datamodel for formal verification with the SPIN model-checker.
  • LXSC Lua XML StateChart interpreter - parses and executes SCXML state machines with a Lua data model.
  • Qt SCXML Engine implemented in C++ as well and tightly integrated with their Signals and Slots concept, with a visual editor integrated in Qt Creator.
  • XState implemented in TypeScript.

Inactive implementations edit

The following implementations are inactive, i.e., the last change to their source code was made more than two years ago:

  • Web interface to an experimental SCXML implementation in the Oz programming language
  • Legian An SCXML engine implemented in Java using Rhino as a Javascript engine. It also supports some additional features such as custom tag libraries and includes. It is not fully W3C compliant.
  • PySCXML a Python-implementation. Supports a wide range of technologies, including websockets and SOAP. Highly standards-compliant. Also supports the ECMAScript datamodel. (last push 2013)
  • The PySCXML Console a web-based interactive SCXML console for running and interacting with SCXML documents. Supports the ECMAScript datamodel.
  • SCXML4Flex ActionScript/Flex partial port of PySCXML.

See also edit

References edit

  1. ^ "State Chart XML (SCXML): State Machine Notation for Control Abstraction". World Wide Web Consortium. September 1, 2015. Retrieved March 2, 2016.
  2. ^ State Chart XML (SCXML): State Machine Notation for Control Abstraction specification
  3. ^ Voice Extensible Markup Language (VoiceXML) 3.0 specification
  4. ^ Authoring Applications for the Multimodal Architecture

External links edit

  • W3C SCXML specification 1.0
  • SCXML Commons Usecases - Stopwatch example

scxml, stands, state, chart, state, machine, notation, control, abstraction, based, markup, language, that, provides, generic, state, machine, based, execution, environment, based, harel, statecharts, state, chart, xmlfilename, extension, scxmldeveloped, bywor. SCXML stands for State Chart XML State Machine Notation for Control Abstraction It is an XML based markup language that provides a generic state machine based execution environment based on Harel statecharts State Chart XMLFilename extension scxmlDeveloped byWorld Wide Web ConsortiumLatest release1 0September 1 2015Type of formatMarkup languageExtended fromXMLWebsitehttp www w3 org TR scxml SCXML is able to describe complex finite state machines For example it is possible to describe notations such as sub states parallel states synchronization or concurrency in SCXML Contents 1 Goals 2 Applications 2 1 Multimodal applications 3 Implementations 4 Inactive implementations 5 See also 6 References 7 External linksGoals editThe objective of this standard is to genericize state diagram notations that are already used in other XML contexts For example it is expected that SCXML notations will replace the State machines notations used in the next CCXML 2 0 version an XML standard designed to provide telephony support to VoiceXML It could also be used as a multimodal control language in the Multimodal Interaction Activity One of the goals of this language is to make sure that the language is compatible with CCXML and that there is an easy path for existing CCXML scripts to be converted to SCXML without major changes to the programming model or document structure for example by using an XSL Transformation The current version of the specification was released by the W3C in September 2015 1 Applications editAccording to the W3C SCXML specification 2 SCXML is a general purpose event based state machine language that can be used in many ways including As a high level dialog language controlling VoiceXML 3 0 s encapsulated speech modules voice form voice picklist etc As a voice application metalanguage where in addition to VoiceXML 3 0 functionality it may also control database access and business logic modules As a multimodal control language in the MultiModal Interaction framework combining VoiceXML 3 0 dialogs with dialogs in other modalities including keyboard and mouse ink vision haptics etc It may also control combined modalities such as lipreading combined speech recognition and vision speech input with keyboard as fallback and multiple keyboards for multi user editing As the state machine framework for a future version of CCXML As an extended call center management language combining CCXML call control functionality with computer telephony integration for call centers that integrate telephone calls with computer screen pops as well as other types of message exchange such as chats instant messaging etc As a general process control language in other contexts not involving speech processing The draft W3C VoiceXML 3 0 specification 3 includes State Chart and SCXML Representation to define functionality Multimodal applications edit Multimodal application designs can use different modalities for example voice vs touchscreen vs keyboard and mouse for different parts of a communication best suited to it For example voice input can be used to avoid having to type on the small screen of a mobile phone but the screen may be a faster way of communicating a list or map compared to listening to long descriptions of available options SCXML makes it easy to do several things in parallel and the Interaction Manager SCXML application will maintain the synchronization between Voice and Visual dialogues nbsp The W3C document Authoring Applications for the Multimodal Architecture 4 describes a multimodal system that implements the W3C Multimodal Architecture and gives an example of a simple multimodal application authored using various W3C markup languages including SCXML CCXML VoiceXML 2 1 and HTML Implementations editscxmlcc An efficient scxml to C compiler Apache Commons SCXML a pure Java library to parse and execute SCXML diagrams SCXMLgui Java Visual Editor for SCXML SCION SCXML implemented in portable JavaScript JSSCxml a Web browser implementation Highly conformant with good support for DOM Events Only supports the ECMAScript datamodel uSCXML C C interpreter and transformer compiler with language bindings for Java and C Full ECMAScript support via JavaScriptCore or Google s v8 additional LUA and Prolog datamodels only rudimentary support for XPath datamodel PROMELA datamodel for formal verification with the SPIN model checker LXSC Lua XML StateChart interpreter parses and executes SCXML state machines with a Lua data model Qt SCXML Engine implemented in C as well and tightly integrated with their Signals and Slots concept with a visual editor integrated in Qt Creator XState implemented in TypeScript Inactive implementations editThe following implementations are inactive i e the last change to their source code was made more than two years ago Web interface to an experimental SCXML implementation in the Oz programming language Legian An SCXML engine implemented in Java using Rhino as a Javascript engine It also supports some additional features such as custom tag libraries and includes It is not fully W3C compliant PySCXML a Python implementation Supports a wide range of technologies including websockets and SOAP Highly standards compliant Also supports the ECMAScript datamodel last push 2013 The PySCXML Console a web based interactive SCXML console for running and interacting with SCXML documents Supports the ECMAScript datamodel SCXML4Flex ActionScript Flex partial port of PySCXML See also editVoiceXML CCXMLReferences edit State Chart XML SCXML State Machine Notation for Control Abstraction World Wide Web Consortium September 1 2015 Retrieved March 2 2016 State Chart XML SCXML State Machine Notation for Control Abstraction specification Voice Extensible Markup Language VoiceXML 3 0 specification Authoring Applications for the Multimodal ArchitectureExternal links editW3C SCXML specification 1 0 SCXML Commons Usecases Stopwatch example Retrieved from https en wikipedia org w index php title SCXML amp oldid 1123481855, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.