こんにちは。渡邊です。
商用ルールエンジン、Corticonの研究をしています。
“Corticon Foundation User Guide.pdf” を一読しました。
Corticonの基盤APIを使ってできることや内部設計の概要について記されていました。
要点と個人的なメモを残します。詳細は別記事として追々投稿していこうと思います。
便宜上、原文のassetをリソースと訳しました。Vocabulary/Rulesheet/Ruleflow/Ruletestを保存したファイル(それぞれ独立しています)を指します。
基盤API(Corticon Foundation API)とは
- Eclipseプラグイン(Studioがこれに相当する)
- GUI無し Client
- Java Swing/AWT UI
- NET UI Framework
- Web 2.0 (GWT, Flex, RAP)
- Eclipse RCPアプリケーション向け:Eclipseプラグイン一式に含まれる。
- 非Eclipseアプリケーション向け:JARファイルに含まれる。
設計思想
基盤APIを使ってできること
- リソースの登録と更新
- 実行ルール分析機能(例えば、曖昧さのチェック、完全性チェック、展開、折り畳み)
- テストを実行し、期待される結果と出力を比較
- レポート作成
- メトリック収集のためのリソース分析
- Corticonスタジオに匹敵するルール全体の作成体験を全てのユーザに提供する、包括的なUIの作成
Presentation API
リソースから情報を取得したり、エディタを実装するために必要なサービスを含む。
- ツリービューと付随するプロパティテーブルを使用し、Vocabularyを作成/更新することができる。
- デシジョンテーブルを使用し、Rulesheetを作成/更新することができる。
- ダイアグラムの表示を使用し、Ruleflowを作成/更新することができる。
- タブフォルダ(各タブがTestsheetを含む)を使用し、Ruletestを作成/更新することができます。
Companion API
Presentation APIの機能拡張。 Corticon製品のライセンス条項や他の条件により、インストールされていないかもしれない機能。
(IExpandCollapseAPI以下については、私自身がStudioで試したことがない機能に関するAPIです。書いておきながら、よく理解できていないものがあります)
- Rulesheetの曖昧さをチェックする。
- Rulesheetの完全性をチェックし、不足しているルールを追加する。
- 展開/折り畳み/圧縮。
- データベース・アクセス機能を追加する
- 語彙要素とデータベースのメタデータ間のマッピングを操作する。
- データベースのメタデータを操作する。
- 語彙要素とエンドユーザのJavaオブジェクト間のマッピングを操作する。
- エンドユーザーのJavaオブジェクトのメタデータを操作する。
- Corticonルール演算子やエンドユーザーの機能拡張に関するメタデータへのアクセスを提供する。
- Ruletest Presentation APIの拡張。Testsheetレベルで操作するメソッドを提供する。
Dialog “Smarts” API
UIのモーダルダイアログ、またはウィザードを実装するために必要なサービス。
ダイアログ/ウィザードをサポートするために必要なサービス、ロジックをAPIとして括りだしたもの。
おおよそ、ダイアログ/ウィザード : Dialog “Smarts” API = 1 : 1の関係がある。
- Version 4インポートウィザード
- Vocabulary新規作成ウィザード
- Ruleflow新規作成ウィザード
- Rulesheet新規作成ウィザード
- Ruletest新規作成ウィザード
- Vocabularyエディタに関連するダイアログ
- Vocabulary JOM(Java Object Mapper?)メタデータのインポートダイアログ
- Testsheetの名前の変更ダイアログ
- テスト件名変更ダイアログ
- RuletestエディタのHREF-Styleに関連するダイアログ
Canonical API
リソースの標準要素(モデル)を維持するために必要なサービスを含む。現在は内部使用のみ。
Presentation APIがモデルの状態更新をCanonical APIに委譲している。
- VocabularyモデルAPI
- RulesheetモデルAPI
- RuleflowモデルAPI
- RuletestモデルAPI
- TestsheetモデルAPI
所感
Corticonはドキュメントが丁寧に記されていて好印象です。内容は包括的で整理されており、読みやすいです。日本語版があればもっとよいですね。