用Java评估逻辑谓词

时间:2014-09-29 10:02:05

标签: java predicate

我正在开发一个Java应用程序来管理一个非常大的实体模型及其关系。例如“A使用B”,“B以C实现”,“C位于D”。所有这些实体及其属性都存储在noSQL数据库中。

我想做的是拥有逻辑谓词,例如:

    当A使用B 时,
  • B由A使用
  • 当A使用B并且B在C
  • 中实现时,A依赖于C.

然后,当用户打开A的详细信息屏幕时,他不仅会看到所有A的属性,还会看到:

  • A使用B
  • A取决于C
  • A致电D

我可以硬编码所有这些谓词,但我希望能够配置它。有没有人知道如何处理它?<​​/ p>

我无法使用SQL。我没有像Prolog那样的东西可以调用。有一个用于Java的prolog模拟器,但我担心它会在评估谓词之前首先将整个数据模型加载到内存中。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

Prolog有几种Java实现(例如Lean Prolog,JIProlog,tuProlog,Jekejeke Prolog,Minerva,......)。有些提供Prolog和Java之间的双向接口。其中至少有一个,JIProlog,支持外部Prolog数据库的子句,显然允许使用这些子句而不将所有子句加载到内存中。如果将数据从noSQL数据库导出到Prolog文件是一个可行的选择,这可能是一个值得探索的解决方案。