我想通过 JPL 开发一个 Java EE Web 应用程序,该应用程序需要 Prolog 来完成某些与搜索相关的任务。Web 应用程序将部署在 JBoss 应用程序服务器中。Prolog 引擎可以是 YAP 或 SWI(afaik 目前唯一与 JPL 兼容的 Prolog 引擎)。Prolog 查询依赖于存储在(可能很大的)数据库中的信息。
如果有人尝试过这个或类似的东西,您能否就以下问题给我反馈?:
- 管理需要访问 Prolog 引擎的并发 http 会话的最佳方法是什么?是否有可能 - 可取? - 为每个单独的会话分配其自己的 Prolog 引擎?如果这个解决方案有效,是否可以实现类似于“Prolog 引擎池”的东西来快速将 Prolog 引擎分配给新会话?. 或者最好的解决方案是拥有一个同步管理所有查询请求的 Prolog 引擎?(慢慢地)。
- 如何管理 Prolog 与数据库的交互?如果数据库中的数据经常变化,Prolog 需要这些数据来解决它的查询,那么让 Prolog 引擎中的事实与数据库中的数据保持同步的最佳策略是什么?如果数据库变大,在每个新会话中从头开始的海军选项(例如,将数据库中的所有数据作为 Prolog 事实重新加载)似乎不是一个好主意。
- 在实施期间与 java-prolog-database 交互相关的任何其他预期问题/困难?
提前致谢!