我可以强制Drools规则匹配同一类型的所有对象而不是一个对象吗

我可以强制Drools规则匹配同一类型的所有对象而不是一个对象吗,drools,Drools,我有一个商业规则,我需要在Drools中建模。规则规定我有一组火车在旅行。如果每列火车都符合以下标准,我需要规则来启动: 司机的名字叫特德 或者司机叫乔,他要去苏格兰的一个车站 或者司机的名字是安迪,他要从伦敦去伯明翰 如果任何列车符合上述标准,我可以编写匹配规则,例如 列车(司机==“Ted” ||(司机==“乔”和目的地国家==“苏格兰”) ||(司机==“安迪”和原产地==“伦敦”和目的地==“伯明翰”)) 但是我可以写一条规则来确保知识库中的所有序列都符合标准吗?非常简单:使用条件

我有一个商业规则,我需要在Drools中建模。规则规定我有一组火车在旅行。如果每列火车都符合以下标准,我需要规则来启动:

  • 司机的名字叫特德
  • 或者司机叫乔,他要去苏格兰的一个车站
  • 或者司机的名字是安迪,他要从伦敦去伯明翰
如果任何列车符合上述标准,我可以编写匹配规则,例如

列车(司机==“Ted”
||(司机==“乔”和目的地国家==“苏格兰”)
||(司机==“安迪”和原产地==“伦敦”和目的地==“伯明翰”))


但是我可以写一条规则来确保知识库中的所有序列都符合标准吗?

非常简单:使用条件元素
而不是
,它实现了否定的存在量词∄. 当然,您必须确定否定条件的缺失,即

not Train( ! (driver == "Ted") 
         && ! (driver == "Joe" && destCountry == "Scotland") 
         && ! (driver == "Andy" && origin == "London" && dest == "Birmingham"))

这似乎有点明显,但不知何故,我自己也不能很好地表达出来。谢谢