事实上,我们的程序是要表示一些从已有的事实作出推断的规则。我们可以这样来表示规则:
表示:如果 y 是 x 的家长,那么 x 是 y 的孩子;更恰当地说,我们可以通过证明 来证明 (child x y)
的所表示的事实。
一些规则可能依赖另一些规则所产生的事实。比如,我们写的第一个规则是为了证明 (child x y)
的事实。如果我们定义如下规则:
表达式的证明可以回溯任意数量的规则,只要它最终结束于给出的已知事实。这个过程有时候被称为反向链接 (backward-chaining)。之所以说 反向 (backward) 是因为这一类推论先考虑 head 部分,这是为了在继续证明 body 部分之前检查规则是否有效。链接 (chaining) 来源于规则之间的依赖关系,从我们想要证明的内容到我们的已知条件组成一个链接 (尽管事实上它更像一棵树)。