以下是動物例子的完整基礎規則,我相信是由帕特裏克·溫斯頓(Patrick Winston)和伯索爾德·霍恩(Berthold Horn)提出的:
1. 如果動物有毛發,那麽該動物是哺乳動物。
2. 如果動物能產奶,那麽該動物是哺乳動物。
3. 如果動物有羽毛,那麽該動物是鳥類。
4. 如果動物會飛,並且動物能產卵,那麽該動物是鳥類。
5. 如果動物吃肉,那麽該動物是食肉動物。
6. 如果動物是哺乳動物,並且動物有蹄,那麽該動物是有蹄類動物。
7. 如果動物是哺乳動物,並且動物是食肉動物,並且動物毛發是黃褐色,並且動物有黑色條紋,那麽該動物是老虎。
8. 如果動物是有蹄類動物,並且動物有黑色條紋,那麽該動物是斑馬。
讓我們看看這些規則如何在正向推理下工作的。假設用戶提供的信息是動物產奶,有蹄,有黑色條紋。然後正向推理將按如下方式進行:
1. 動物產奶這個事實會觸發規則2,工作存儲器裏麵會增加“該動物是哺乳動物”的信息。
2. 新增的動物是哺乳動物的信息,再加上動物有蹄,則觸發規則6,工作存儲器裏麵會增加“該動物是有蹄類動物”的信息。
3. 新增加的該動物是有蹄類動物的信息,再加上動物有黑色條紋的事實,則會觸發規則9,工作存儲器裏會增加“該動物是斑馬”的信息。
4. 到了這一步,沒有進一步的規則可以觸發了。
這樣,我們就可以從動物的信息和規則中獲得三項新的知識。
對於反向推理,我們從一些想假設的結論(目標)開始,再使用規則來回溯到更小的知識項。讓我們看看,如果用戶向係統呈現的目標是確定動物是否有蹄類動物,而沒有給出任何信息,係統將如何工作:
1. 推理機試圖尋找一個“該動物是有蹄類”的規則,在本例中,它找到了規則6。