こんにちは。渡邊です。
商用ルールエンジン、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はドキュメントが丁寧に記されていて好印象です。内容は包括的で整理されており、読みやすいです。日本語版があればもっとよいですね。