[論文レビュー] Attempto - From Specifications in Controlled Natural Language towards Executable Specifications
本論文では、制限付きでコンピュータが処理可能な自然言語のサブセットである Attempto Controlled English (ACE) で書かれた仕様を、話題記述構造(DRS)を介して実行可能な Prolog コードに変換する Attempto というシステムを提案する。このアプローチにより、ドメイン専門家が明確で自然な言語による要件を記述でき、形式的に検証・シミュレーションが可能となり、非形式的な要件と実行可能なソフトウェアモデルの間のギャップを埋めることを可能にする。
Deriving formal specifications from informal requirements is difficult since one has to take into account the disparate conceptual worlds of the application domain and of software development. To bridge the conceptual gap we propose controlled natural language as a textual view on formal specifications in logic. The specification language Attempto Controlled English (ACE) is a subset of natural language that can be accurately and efficiently processed by a computer, but is expressive enough to allow natural usage. The Attempto system translates specifications in ACE into discourse representation structures and into Prolog. The resulting knowledge base can be queried in ACE for verification, and it can be executed for simulation, prototyping and validation of the specification.
研究の動機と目的
- アプリケーションドメインの専門家と形式的ソフトウェア要件の間の概念的ギャップを低減すること。
- 形式論理の訓練を受けないドメインスペシャリストが、自然言語を用いて正確で曖昧さのない要件を記述できるようにすること。
- これらの自然言語要件を実行可能なコードに変換するシステムを開発すること。
- 人間が読みやすい制御された言語を用いて、実行可能で検証可能で保守可能なソフトウェア要件の作成を支援すること。
提案手法
- 自然言語の形式的で定義されたサブセット、すなわち Attempto Controlled English (ACE) を使用する。
- 話題記述理論(DRS)を用いて ACE 文を形式的論理構造に翻訳する。
- DRS 表現を実行可能で論理的推論が可能な Prolog 命令に変換する。
- 疑問文(yes/no 問いと wh-質問)を Prolog クエリに翻訳し、クエリをサポートする。
- I/O 操作などの現実世界のイベントをシミュレートするため、Prolog に副作用をもたらす述語を導入する。
- 仕様文の文の順序に従って、イベントの時間的順序をメタインタプリタが保証する。
実験結果
リサーチクエスチョン
- RQ1制御された自然言語を用いて、形式的で実行可能なソフトウェア要件を効果的に記述できるか?
- RQ2自然言語要件を、実行可能で検証可能な形式論理表現に体系的に翻訳するにはどうすればよいか?
- RQ3自然言語ベースの要件において、イベントの時間的順序と副作用を処理するにはどのようなメカニズムが必要か?
- RQ4形式論理の専門知識がなくても、ドメイン専門家が信頼性をもって要件を記述・検証できるか?
- RQ5要件の実行を、状況に応じた情報に対してインタラクティブで応答性のあるものにできるか?
主な発見
- Attempto システムは、DRS を介して ACE 要件を実行可能な Prolog コードに成功して変換し、要件のシミュレーションと検証を可能にした。
- イベントの時間的順序は文の順序に従って暗黙的に捉えられ、メタインタプリタが正しい順序で条件を実行できる。
- ACE における疑問文は正しく Prolog クエリに翻訳され、知識ベースの論理的推論と検証が可能になった。
- Prolog のインターフェース述語を用いて、実際の動作をトレースまたはトリガーすることで、副作用のシミュレーションが実現された。
- 必要に応じて、顧客の身元などインスタンス固有のデータをユーザーに問い合わせることで、インタラクティブな実行が可能になった。
- プロトタイプは、制御された自然言語が、自動契約機のような複雑なシステムにとって実行可能で理解しやすい仕様言語として有効であることを示した。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。