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.