1.必须使用有状态的session KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newClassPathResource( "fireAlarm.drl", getClass() ), ResourceType.DRL ); if ( kbuilder.hasErrors() ) { System.err.println( builder.getErrors().toString() ); } kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() ); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); 2.基本类 Room类 Sprinkler灭火器 Alarm报警器 Fire火灭 3.规则写法 注意 a.modify语句,是对对象的修改,与直接调用对象的set方法的不同是,调用modify后,被修改的对象会在规则引擎中重新检查是否匹配某条规则,从而产生推理。因此,推理必须使用有状态的session b."not"语句,可以检查一个对象是否不存在 //房间有火灭时,打开灭火器 rule