特定の検索関連タスクのために、JPL を介して Prolog を必要とする Java EE Web アプリケーションを開発したいと考えています。Web アプリケーションは JBoss アプリケーション サーバーにデプロイされます。Prolog エンジンは、YAP または SWI のいずれかです (現時点で JPL と互換性のある唯一の Prolog エンジンです)。Prolog クエリは、(潜在的に大規模な) データベースに格納されている情報に依存します。
誰かがこれまたは似たようなことを試した場合、次の質問についてフィードバックをいただけますか?:
- Prolog エンジンへのアクセスを必要とする同時 http セッションを管理する最良の方法は何ですか? 個別のセッションごとに独自の Prolog エンジンを割り当てることは可能ですか? このソリューションが機能する場合、「プロローグ エンジン プーリング」に似たものを実装して、プロローグ エンジンを新しいセッションにすばやく割り当てることは可能ですか? . または、すべてのクエリ要求を同期的に管理する単一の Prolog エンジンを用意するのが最善の解決策でしょうか? (そしてゆっくり)。
- Prolog とデータベースの相互作用をどのように管理できますか? データベース内のデータが頻繁に変更され、Prolog がクエリを解決するためにこのデータを必要とする場合、Prolog エンジン内のファクトをデータベース内のデータと同期させるための最良の戦略は何ですか? データベースが大きくなると、新しいセッションごとにゼロから開始するという便利なオプション (たとえば、データベースからすべてのデータを Prolog ファクトとして再ロードする) は良い考えではないようです。
- 実装中に java-prolog-database の相互作用に関連して予想されるその他の問題/問題はありますか?
前もって感謝します!