第二部分:第5章 Prolog基础 第5章Pro|og基础 本章介绍学习关于 Prolog编程最基本的内容,包括Horn子句、 Prolog推理 机、程序控制、 Prolog算符等。 ● Visual Prolog是面向对象的、严格类型化的和模式检验的。在编写 Visual log程序时,必须掌握这些内容。但在这里,我们将集中于编写代码这 个核心问题,也就是说,编写这些代码时暂时不考虑类、类型和模式。 我们将使用包含在Vsua| Prolog6中的PIE例子。PIE是一个经典的 Prolog 解释器,通过使用它,可以学会和试验 Prolog程序,而不必关心类、类型 等方面的知识。 ●内容是基于使用 Build6004或以后的 Visual Prolog6版本,否则,PIE应 用程序将不会像我们描述的这样工作。这个编译号可以在VDE的Abou对话 框中找到 2004.11.3 A|程序设计
2004.11.3 AI程序设计 1 第二部分:第5章 Prolog基础 第5章 Prolog基础 ⚫ 本章介绍学习关于Prolog编程最基本的内容,包括Horn子句、Prolog推理 机、程序控制、Prolog算符等。 ⚫ Visual Prolog是面向对象的、严格类型化的和模式检验的。在编写Visual Prolog程序时,必须掌握这些内容。但在这里,我们将集中于编写代码这 个核心问题,也就是说,编写这些代码时暂时不考虑类、类型和模式。 ⚫ 我们将使用包含在Visual Prolog 6中的PIE例子。PIE是一个经典的Prolog 解释器,通过使用它,可以学会和试验Prolog程序,而不必关心类、类型 等方面的知识。 ⚫ 内容是基于使用Build 6004或以后的Visual Prolog 6版本,否则,PIE应 用程序将不会像我们描述的这样工作。这个编译号可以在VDE的About对话 框中找到
第二部分:第5章 Prolog基础 第5章Pro|og基础 5.1Hon子句逻辑 52 Prolog推理机 5.3扩展家庭定理 54 Prolog是一种编程语言 5.5程序控制 6 Prolog算符 本章小结与习题 2004.11.3 A|程序设计
2004.11.3 AI程序设计 2 第二部分:第5章 Prolog基础 第5章 Prolog基础 5.1 Horn子句逻辑 5.2 Prolog推理机 5.3 扩展家庭定理 5.4 Prolog是一种编程语言 5.5 程序控制 5.6 Prolog算符 本章小结与习题
第二部分:第5章 Prolog基础 5.1Horn子句逻辑 ● Visual prolog和其他用语都是基于Horn子句逻辑的。Horn子句逻 辑是对事物及其相互关系进行推理的形式系统 ●在自然语言中,我们可以这样表达一个陈述句 John是Bi的父亲 ●这里我们涉及两个实体,John和BⅢ,以及他们之间的关系,即一 个是另一个的父亲。在Horn子句逻辑中,可以这样形式化地表述上 面的陈述句: father( Bill John") 上面的 father是带有两个参量的一个谓词或关系,它表示第二个人 是第一个人的父亲 2004.11.3 A|程序设计
2004.11.3 AI程序设计 3 第二部分:第5章 Prolog基础 5.1 Horn子句逻辑 ⚫ Visual Prolog和其他用语都是基于Horn子句逻辑的。Horn子句逻 辑是对事物及其相互关系进行推理的形式系统。 ⚫ 在自然语言中,我们可以这样表达一个陈述句: John是Bill 的父亲. ⚫ 这里我们涉及两个实体,John和Bill,以及他们之间的关系,即一 个是另一个的父亲。在Horn子句逻辑中,可以这样形式化地表述上 面的陈述句: father(“Bill”, “John”). ⚫ 上面的father是带有两个参量的一个谓词或关系,它表示第二个人 是第一个人的父亲
第二部分:第5章 Prolog基础 5.1Horn子句逻辑 ●像“John是B的父亲”这样的陈述称为事实,而“X是Z的祖父, 如果X是Y的父亲且Y是Z的父亲”称为规则 ●我们可以用事实和规则来形成定理,一个定理是事实和规则的集合, 让我们陈述一个小定理 father(" Bill", John). father Pam"Bill") grandFather(Person, Grand Father) father(Person, Father) father(Father, GrandFather) 2004.11.3 A|程序设计
2004.11.3 AI程序设计 4 第二部分:第5章 Prolog基础 5.1 Horn子句逻辑 ⚫ 像“John是Bill 的父亲”这样的陈述称为事实,而“X是Z的祖父, 如果X是Y的父亲且Y是Z的父亲”称为规则。 ⚫ 我们可以用事实和规则来形成定理,一个定理是事实和规则的集合, 让我们陈述一个小定理: father("Bill", "John"). father("Pam", "Bill"). grandFather(Person, GrandFather) :- father(Person, Father), father(Father, GrandFather)
第二部分:第5章 Prolog基础 5.1Horn子句逻辑 ●这个定理的作用是回答这样一些问题: ●John是Sue的父亲吗? ●谁是Pam的父亲? ●John是Pam的祖父吗? 这些问题称为目标(goa)。它们可以这样形式化表述: .?father( Sue, John") .?father("Pam",X) 0?- grand Father( Pam, John") 2004.11.3 A|程序设计
2004.11.3 AI程序设计 5 第二部分:第5章 Prolog基础 5.1 Horn子句逻辑 ⚫ 这个定理的作用是回答这样一些问题: ⚫ John是Sue的父亲吗? ⚫ 谁是Pam的父亲? ⚫ John是Pam的祖父吗? ⚫ ... ⚫ 这些问题称为目标(goal)。它们可以这样形式化表述: ⚫ ?- father("Sue", "John"). ⚫ ?- father("Pam", X). ⚫ ?- grandFather("Pam", "John")