如何向Drools添加一个事实

时间:2016-05-19 06:50:22

标签: java drools

我是Drools的新手,我有一些小问题。 我已经编写了一个测试规则文件,看它是否有效。

我有一些基于其他规则的结果的规则。 到目前为止,我通过操纵Java-Objekts中的属性来处理它。因此,以下规则可以检查这些属性。

但是可以在不操纵现有属性的情况下向知识库添加事实吗?

这是我的DRL的一部分

 rule "Ist save" 
 no-loop true
 when 
      $p : Person(guarantor == true)
then 

    $p.setSave(true);
 end

rule "Ist trustworthy" 
 no-loop true
when
    $p : Person(ages > 25)
    Person(schufa == false)

then
modify($p) {setReliable(true);  }
end

rule "gets credit"
 no-loop true
 when 
    $p : Person(reliable == true && save == true)
then     
    $p.setGetsCredit(true);
end

同样的问题改写: 实际上我通过设置setSave(true)来操纵Person。但是,如果我的Java类中没有Attribute isSave。是否也可以将事实isSave添加到我的知识库中?

非常感谢!

1 个答案:

答案 0 :(得分:0)

没有什么可以阻止你定义一个能够保存该信息的类,一个“保存”值和对一个Person对象的引用,并插入它。