Loading article…
| 開発者 | サンディア国立研究所 |
|---|---|
| 初回リリース | 1995年 |
| 安定リリース | 7.1p2 / 2008年11月5日 |
| 書かれた | ジャワ |
| プラットフォーム | ジャワ |
| ライセンス | 所有権、パブリックドメイン |
| Webサイト | ジェスルール |
JessはJavaコンピューティングプラットフォーム用のルールエンジンで、 Javaプログラミング言語で書かれています。これはサンディア国立研究所のアーネスト・フリードマン=ヒルによって開発されました。[1]これはCLIPS言語のスーパーセットです。[1]これは1995年後半に初めて書かれました。[1]この言語はエキスパートシステムの自動化のためのルールベースプログラミングを提供し、エキスパートシステムシェルと呼ばれることがよくあります。[1]近年では、同様の機能に依存する インテリジェントエージェントシステムも開発されています。
1つのプログラムに1回だけ実行されるループがある手続き型パラダイムではなく、Jessが使用する宣言型パラダイムは、パターンマッチングと呼ばれるプロセスによって、一連のルールを一連の事実に継続的に適用します。ルールは一連の事実を変更したり、任意のJavaコードを実行したりできます。ルールの実行にはReteアルゴリズム[1]が使用されます。
ライセンス
Jess のライセンスは、教育機関や政府機関での使用ではフリーウェアですが、商用での使用ではライセンスが必要なプロプライエタリソフトウェアです。一方、Jess の基礎であり開始コードである CLIPS は、無料のオープンソースソフトウェアです。
コード例
コード例:
; はコメントです
(バインド?x 100 )
; x = 100
(定義関数max ( ?a ?b ) ( if ( > ?a ?b ) then ?a else ?b ))
( deffacts myroom (家具椅子) (家具テーブル) (家具ベッド) )
( deftemplate car (スロットの色) (スロットの走行距離) (スロットの値) )
( assert (車(色赤) (走行距離10000 ) (値400 )))
サンプルコード:
(クリア)
( deftemplate blood-donor (スロット名) (スロットタイプ)) ( deffacts blood-bank ; 名前とそのタイプを [[作業メモリ]] に格納します( blood-donor (名前"Alice" )(タイプ"A" )) ( blood-donor (名前"Agatha" )(タイプ"A" )) ( blood-donor (名前"Bob" )(タイプ"B" )) ( blood-donor (名前"Barbara" )(タイプ"B" )) ( blood-donor (名前"Jess" )(タイプ"AB" )) ( blood-donor (名前"Karen" )(タイプ"AB" )) ( blood-donor (名前"Onan" )(タイプ"O" )) ( blood-donor (名前"Osbert" )(タイプ"O" )) ) ( defrule can-give-to-same-type-but-not-self ; A > A、B > B、O > O、AB > AB は処理しますが、N1 > N1 は処理しません( blood-donor ( name ?name )( type ?type )) ( blood-donor ( name ?name2 )( type ?type2 &: ( eq ?type ?type2 ) &: ( neq ?name ?name2 ) )) => ( printout t ?name " can give blood to " ?name2 crlf ) ) ( defrule O-gives-to-others-but-not-itself ; O は上記のルールで O をカバーします( blood-donor ( name ?name )( type ?type &:( eq ?type "O" ))) (献血者(名前?name2 )(タイプ?type2 &: ( neq ?type ?type2 )
&: ( neq ?name ?name2 ) )) => ( printout t ?name " can give blood to " ?name2 crlf ) ) ( defrule A-or-B-gives-to-AB ; case O が AB に与え、AB が AB に与える 既に処理済み( blood-donor ( name ?name )( type ?type &: ( or ( eq ?type "A" ) ( eq ?type "B" )))) ( blood-donor ( name ?name2 )( type ?type2 &: ( eq ?type2 "AB" ) &: ( neq ?name ?name2 ) )) => ( printout t ?name " can give blood to " ?name2 crlf ) ) ;(すべて監視) ( reset ) ( run )
参照
関連システム
- CLIPS :エキスパート システムを構築するためのパブリック ドメイン ソフトウェアツール
- ILOGルール: ビジネスルール管理システム
- JBoss Drools : ビジネス ルール管理システム (BRMS)
- Prolog : 汎用論理プログラミング言語
- OpenL タブレット: ビジネス中心のルールと BRMS
- DTRules: Java 用の決定表ベースのオープンソース ルール エンジン
参考文献
- ^ abcde ヘマー、マルクス C. (2008)。化学研究におけるエキスパートシステム。CRC プレス。pp. 47–48。ISBN 9781420053241. 2012年3月30日閲覧。 978-1-4200-5323-4出版年月日
その他の情報源
- フリードマンヒル、アーネスト (2003)。『Jess in Action: Java のルールベースシステム』。Manning Publications。ISBN 9781930110892. 2012年3月30日閲覧。 1-930110-89-8
外部リンク
- 公式サイト
