Drools and Mandarax
两个项目做了两件不同的事情: 一个是Forward Chaining,另一个是
backward chaining. Drools 是forward chaining的, 意味着 它对assert的对象反应,
事件驱动的. Mandarax 是 backward chaining的, 像 prologue一样, 你问它问题,
它试图给你它知道的答案. 举例来说, 在使用Drools的时候, 你可能会先assert 给它今天的日期,
如果它发现有匹配的规则的手,它会用事件的方式通知你"今天是你的生日". 在 backward chaining 的系统, 你可能先问
"今天是我的生日嘛?" 系统会搜索它知道的, 然后告诉你答案.
For an excellent explanation of forward and backward chaining read Charles Forgey's recent articles at
http://rulespower.com/ - Forward and Backward Chaining:
Parts 1, 2 and 3.