組み込みProlog通訳/Javaコンパイラ
-
08-07-2019 - |
質問
ように申し込みJava、そのニーズも複雑なロジックルール控除項目の一環として可能です。思コード私の論理控除にPrologまたは他のロジック/制約プログラミング言語ではなくJavaとしていると考えられたコードを大幅に簡素化により保守性.
インターネットで調べための組み込みJavaの実装にPrologを見て、それぞれ非常に少ない。私は(控えめ)選択条件:
- きォJavaなどできる包っjavaパッケージを求めない代わりに、他のネイティブの設置には外部のプログラム)
- シンプルなインタフェースを利用からコロジカルフットプリントの転控除項目、検査の結果、ルールの追加)
- いて少なくともいくつかの例に使い方を指導することもでき
- しないする必要がPrologが、他のロジック/制約プログラミング言語の基準をいう。
どんない、また、その長所と短所?
解決
ウィキペディアによると、Prologの次のバージョンにはJavaインターフェイスがあります。それらのメインページにリンクしました:
- BProlog
- Ciao Prolog
- SICStus Prolog
- SWIプロローグ
- TuProlog (Javaで実装)
- LPAプロローグ
検索で頑張ってください!
他のヒント
SWI prologに非常に人気の実装を持っているようで JavaインタフェースとしてはSiCStus いすを使用JNIインスタンスを生成するインスタンスJavaです。に使用しましたらCとはなかったのでしょうか?前からいお勧めします。私prefferenceするSWIのではオープンソースは、私の経験から、 デファクト 実装されます。
ドキュメンテーションにSWIのJavaインタフェースが十分に埋め込む過程で非常に素直です。
2年前に同じことをする必要がありました。 JPLと呼ばれるSWIインターフェイスを使用しました。これにより、Prologファイルをロードし、そのファイルでアサートし、クエリすることができます。 SWI Prologのインストールが必要ですが、それはまったく問題ありません。 SWI Prologは、多くのプラットフォームで利用可能です。
また、Javaで100%実装され、外部プログラムを必要としない代替案も試しました。それらはすべてバグが多かったり使いにくいものでした。時間を無駄にしないでください。
Amzi prolog はしばらく前から存在しています。私はそれを簡単に使用しましたが、組み込みバージョンは使用しませんでした。ただし、優れたドキュメントがあり、サポートを購入できます。 Javaポートがあるため、一見の価値があります。
LPAは、Java、.Netなどを含むさまざまな主流言語にPrologエンジンを組み込む方法としてLPA Intelligence Serverを提供します
クライヴ
Javaで書かれた2つの商用プロローグ:IF Computer JapanとJekejekeによるMinerva。どちらもISOに非常に近いです。
Clojure は、ライブラリ( core.logic ))ロジックおよび制約ベースのプログラミングをサポートします。 Clojureには、Javaクラスおよび Javaコードの操作を生成するための多数の機能もあります。言語は簡単です。
作成した Prolエンジンもご覧ください。 PrologをJavaプログラムに埋め込むことができます(ただし、高速ではありません)
Prova 3.0 http://www.prova.ws は完成間近です。ただし、これは別のPrologだけでなく、プログラミングスタイルの組み合わせであり、特に、簡単な双方向Java統合、リアクティブエージェントプログラミング、ESBとの統合、ワークフローロジック、およびイベント処理に役立ちます。このバージョンはゼロからの完全なリライトであるため、OWL統合などの一部の古い機能はありませんが、次のリビジョンで戻る予定です。
Scalaのミニ漢字があり、ネイティブJVMの実装を提供します無駄のない、ハッキング可能な、現代のホーン節ベースのロジックプログラミング言語。
私が最近出会ったもう1つの価値のあるオプションはJSetLです。プロローグではありませんが、 論理変数をサポートするJava用の制約プログラミングライブラリ、 統一、制約解決、非決定論。
Javaには多くのProlog実装があります。それらは非常に高速ではありませんが、Java内から使用するのに便利です。 例は次のとおりです。 TuProlog または PrologCafe また、次の学士号のテーマをご覧ください。 JavaでのPrologプログラムの実行と分析。
>