我正在开发一个Java应用程序来管理一个非常大的实体模型及其关系。例如“A使用B”,“B以C实现”,“C位于D”。所有这些实体及其属性都存储在noSQL数据库中。
我想做的是拥有逻辑谓词,例如:
然后,当用户打开A的详细信息屏幕时,他不仅会看到所有A的属性,还会看到:
我可以硬编码所有这些谓词,但我希望能够配置它。有没有人知道如何处理它?</ p>
我无法使用SQL。我没有像Prolog那样的东西可以调用。有一个用于Java的prolog模拟器,但我担心它会在评估谓词之前首先将整个数据模型加载到内存中。
感谢任何帮助。
答案 0 :(得分:0)
Prolog有几种Java实现(例如Lean Prolog,JIProlog,tuProlog,Jekejeke Prolog,Minerva,......)。有些提供Prolog和Java之间的双向接口。其中至少有一个,JIProlog,支持外部Prolog数据库的子句,显然允许使用这些子句而不将所有子句加载到内存中。如果将数据从noSQL数据库导出到Prolog文件是一个可行的选择,这可能是一个值得探索的解决方案。