| ファイル名拡張子 |
.scxml |
|---|---|
| 開発者 | ワールドワイドウェブコンソーシアム |
| 最新リリース | 1.0 2015年9月1日 |
| フォーマットの種類 | マークアップ言語 |
| 延長 | テキスト |
| Webサイト | http://www.w3.org/TR/scxml/ |
SCXML は、State Chart XML: State Machine Notation for Control Abstraction の略です。これは、Harel ステートチャートに基づく汎用的なステートマシンベースの実行環境を提供するXMLベースのマークアップ言語です。
SCXML は複雑な有限状態マシンを記述できます。たとえば、サブ状態、並列状態、同期、同時実行などの表記を SCXML で記述できます。
目標
この標準の目的は、他の XML コンテキストで既に使用されている状態図表記法を一般化することです。たとえば、SCXML 表記法は、次のCCXML 2.0 バージョン ( VoiceXMLに電話サポートを提供するように設計された XML 標準) で使用される状態マシン表記法に代わるものと予想されます。また、マルチモーダル インタラクション アクティビティでマルチモーダル制御言語として使用することもできます。
この言語の目標の 1 つは、言語が CCXML と互換性があり、プログラミング モデルやドキュメント構造に大きな変更を加えずに (たとえば、XSL変換を使用して) 既存の CCXML スクリプトを SCXML に簡単に変換できるようにすることです。
現在の仕様バージョンは2015年9月にW3Cによってリリースされました。[1]
アプリケーション
W3C SCXML仕様によると、[2] SCXMLは汎用のイベントベースのステートマシン言語であり、次のようなさまざまな方法で使用できます。
- VoiceXML 3.0 のカプセル化された音声モジュール (音声フォーム、音声ピックリストなど) を制御する高レベルダイアログ言語として
- 音声アプリケーションのメタ言語として、VoiceXML 3.0 機能に加えて、データベース アクセスとビジネス ロジック モジュールも制御できます。
- MultiModal Interaction フレームワークのマルチモーダル制御言語として、VoiceXML 3.0 ダイアログを、キーボードとマウス、インク、視覚、触覚などの他のモダリティのダイアログと組み合わせます。また、リップリーディング (音声認識と視覚の組み合わせ)、フォールバックとしてのキーボードを使用した音声入力、および複数ユーザー編集用の複数のキーボードなどの複合モダリティを制御することもできます。
- CCXML の将来のバージョンのステート マシン フレームワークとして。
- 拡張コール センター管理言語として、CCXML コール制御機能とコンピューター テレフォニー統合を組み合わせ、電話通話とコンピューター画面のポップ、およびチャット、インスタント メッセージングなどの他の種類のメッセージ交換を統合するコール センターを実現します。
- 音声処理を伴わない他のコンテキストでの一般的なプロセス制御言語として。
W3C VoiceXML 3.0仕様草案[3]には、機能を定義するためのステートチャートとSCXML表現が含まれています。
マルチモーダルアプリケーション
マルチモーダル アプリケーション設計では、コミュニケーションのさまざまな部分に最適なさまざまなモダリティ (音声、タッチスクリーン、キーボードとマウスなど) を使用できます。たとえば、音声入力を使用すると、携帯電話の小さな画面に入力する必要がなくなりますが、リストやマップを伝えるには、利用可能なオプションの長い説明を聞くよりも、画面の方が速い場合があります。SCXML を使用すると、複数の処理を並行して簡単に実行でき、Interaction Manager SCXML アプリケーションは、音声ダイアログとビジュアル ダイアログ間の同期を維持します。
W3Cのドキュメント「マルチモーダルアーキテクチャのためのアプリケーションの作成」[4]では、W3Cマルチモーダルアーキテクチャを実装するマルチモーダルシステムについて説明し、SCXML、CCXML、VoiceXML 2.1、HTMLなどのさまざまなW3Cマークアップ言語を使用して作成された単純なマルチモーダルアプリケーションの例を示しています。
実装
- scxmlcc 効率的な scxml から C++ へのコンパイラ。
- Apache Commons SCXML、SCXML ダイアグラムを解析および実行するための純粋な Java ライブラリ
- SCXMLgui SCXML 用の Java ビジュアル エディター。
- SCION SCXML はポータブル JavaScript で実装されています。
- JSSCxml は Web ブラウザ実装です。準拠性が高く、DOM イベントのサポートも優れています。ECMAScript データモデルのみをサポートします。
- Java および C# の言語バインディングを備えた uSCXML C/C++ インタープリターおよびトランスフォーマー/コンパイラー。JavaScriptCore または Google の v8 による完全な ECMAScript サポート、追加の LUA および Prolog データモデル、XPath データモデルの基本的なサポートのみ。SPIN モデル チェッカーによる形式検証用の PROMELA データモデル。
- LXSC Lua XML StateChart インタープリター - Lua データ モデルを使用して SCXML ステート マシンを解析および実行します。
- Qt SCXML エンジンも C++ で実装されており、シグナルとスロットのコンセプトと緊密に統合されており、ビジュアル エディターがQt Creatorに統合されています。
- TypeScript で実装された XState。
非アクティブな実装
次の実装は非アクティブです。つまり、ソース コードへの最後の変更が 2 年以上前に行われました。
- Oz プログラミング言語での実験的な SCXML 実装への Web インターフェイス
- Legian Rhino を Javascript エンジンとして使用して Java で実装された SCXML エンジン。カスタム タグ ライブラリやインクルードなどの追加機能もサポートしています。W3C に完全準拠しているわけではありません。
- PySCXML は Python 実装です。Websocket や SOAP など、幅広いテクノロジをサポートしています。標準に高度に準拠しています。ECMAScript データモデルもサポートしています。(最終プッシュ 2013)
- PySCXML コンソールは、SCXML ドキュメントを実行および操作するための Web ベースのインタラクティブな SCXML コンソールです。ECMAScript データモデルをサポートします。
- PySCXML の SCXML4Flex ActionScript/Flex 部分ポート。
参照
参考文献
- ^ 「State Chart XML (SCXML): 制御抽象化のためのステートマシン表記法」。World Wide Web Consortium。2015年 9 月 1 日。2016年3 月 2 日閲覧。
- ^ ステートチャート XML (SCXML): 制御抽象化仕様のためのステートマシン表記法
- ^ 音声拡張マークアップ言語 (VoiceXML) 3.0 仕様
- ^ マルチモーダルアーキテクチャ向けアプリケーションの作成
外部リンク
- W3C SCXML 仕様 1.0
- SCXML Commons ユースケース - ストップウォッチの例
