1

C# と Java (化学アプリケーション用) の両方で実行および開発できる「ルールベース」のシステムを構築する必要があります。システムは、(既存のライブラリを介して) オブジェクトの計算されたプロパティを取得し、それらの値を決定できる必要があります。システムがどのようになるかはわかりませんが、ルールが正式に一貫している必要はありません (多くのヒューリスティックを使用します)。ユーザーと開発者がエンジン (オープン ソースであり、両方のプラットフォームで実行する必要があります) について知らなくてもルールを変更できるように、可能な限りルールを外部化する必要があります。自然言語に似た限られた一連のコマンドによってシステムが実行される可能性があります。適応の要素があります-新しいオブジェクト(または少なくとも語彙)を追加できます。

これは思ったほど難しいことではありません.FORTRANを使用して30年以上前に大きな進歩がありましたが、この分野は休眠状態にあります. エントリのオーバーヘッドがわずかな場合に実験できるアプローチへのポインタをいただければ幸いです。機能する可能性のあるアプローチには、次のものがあります。

  1. プロローグ
  2. OWLオントロジー
  3. 決定木
  4. RULEML
  5. テキストベースのゲーム

編集 質問の主な側面は、ルールベースのシステムを見つけることです(Java C#の言及は二次的なものであり、単に「Windowsには組み込みシステムがあります」と言うかもしれない回答を防ぐためでした.)変換へのアプローチで答えないでください. Java から C#; 原則として、どちらにも実装できるルールベースのアプローチが必要です。これまでのところ、1 つ (または 2 つ) の回答のみが実際にルールの側面に対処しています。

4

4 に答える 4

2

Java で開発する場合は、 IKVM を使用して、結果のクラスを .Net/C# で使用できます。IKVM は、Java バイトコードを同等の MSIL に変換し、.Net 内ですべて実行される Java クラス フレームワークと VM も提供します。非常にうまく機能し、無料で、商業的に使用されており (Saxon XSLT/XQuery/XPath 製品など)、Java クラス ファイルを .Net dll に変換するのは非常に簡単です。

私はよく .Net で Java プロジェクトを使用して、科学的および数学ベースの操作を行います。これらの分野での作業は Java で行われる傾向があるためです。これは、C# での作業よりもはるかに多いことは確かです。

于 2009-10-13T09:37:03.470 に答える
2

Drools (現在は JBoss Rules としても知られています) を見ることができます。これは、かなり長い間使用されてきた Rete エンジンの実装であり、現在は .NET にも移植されているため、Java および C# で使用できるようにするための要件を満たす必要があります。実装がどれほど近いかはわかりません。機能のサブセットに制限されていることに気付くかもしれません。

JBoss ルール: http://jboss.org/drools/

Drools.NET: http://droolsdotnet.codehaus.org/

JBoss サイトのビジネス フォーカスについて心配する必要はありません。Drools は、汎用のルール エンジンの実装です。

于 2009-10-13T09:51:40.213 に答える
0

独自のドメイン固有言語を実装する場合は、IronPython(Microsoft Dynamicsが同じ目的で使用します)、またはたとえばBoo言語を使用することをお勧めします。

于 2009-10-13T07:26:07.577 に答える
-1

ルール エンジンを Web サービスとして構築し、C# または Java からサービスを呼び出すことができます。

于 2009-10-13T11:56:13.733 に答える