形式语义教材-ch3 逻辑式语言

形式语义教材-ch3 逻辑式语言

ID:33813993

大小:218.00 KB

页数:37页

时间:2019-03-01

形式语义教材-ch3 逻辑式语言_第1页
形式语义教材-ch3 逻辑式语言_第2页
形式语义教材-ch3 逻辑式语言_第3页
形式语义教材-ch3 逻辑式语言_第4页
形式语义教材-ch3 逻辑式语言_第5页
资源描述:

《形式语义教材-ch3 逻辑式语言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章逻辑式语言§3.1概述1972年,Kowalski和Colmerauer第一次提出了逻辑程序设计概念,Colmerauer和他的研究小组在法国Marseille大学第一个实现了逻辑程序设计语言PROLOG语言的解释器。在此之后,在1983年,D.H.D.Warren第一个实现了Prolog的编译器。自从编译器诞生开始,Prolog语言成了世界公认的著名语言。Prolog是一个顺序的具体逻辑式语言,而并行的逻辑语言有Parlog,ConcurrentProlog,GHP等。逻辑式语言的理论基础是Horn逻辑。逻辑式语言的应用领域有:关

2、系数据库,问题求解,自然语言的理解,方程式的符号解法,生物化学中的分子结构分析,数理逻辑,人工智能等等。逻辑式语言的特点有:■具有良好的逻辑性■具有良好的并行性■具有良好的不确定性■可求多个解■有不完全值概念■无类型概念。§3.2有趣的Prolog语言在正式介绍逻辑式语言的理论、语法、语义等内容以前,首先粗略地领会一下Prolog程序的风格和趣味性。Prolog程序和我们所见到的过程式以及函数式语言有着很大的不同。在Prolog语言里,变量用大写字母打头的标识符来表示,凡是小写字母打头的都是常量(整常数或原子)。Prolog程序由一组子句

3、组成,其中子句有两类,其一叫做事实,其二叫做规则。事实说明一个断言,比如like(mary,candy)表示这样一个事实:"mary喜欢108––candy"。规则部分,则用来表示推理,如下面是一个规则的例子:likes(mary,X)←likes(john,X),likes(stoy,X).它表示"如果john喜欢X,并且stoy也喜欢X,则mary喜欢X"。当然程序中的子句究竟代表什么内容,这是程序员自己才知道的。一个Prolog程序也可以是全部由事实部分组成。我们知道程序必须有个输入部分。那么,Prolog程序的输入是什么?这一点也

4、和通常的程序不同,即输入的不是数据,而是一个提问。Prolog系统将回答"yes"或"no"。如果是yes情况,则具体还指出提问中的变量取什么样的值时,能够使提问成为真。例如,假设有图Prolog程序图3.2.1likes(mary,candy).mary喜欢糖果likes(mary,wine).mary喜欢水果likes(john,wine).john喜欢水果likes(john,meat).john喜欢肉类则这是仅由4个事实(公理)组成的程序。事实部分主要说的是谁喜欢什么。对于这个程序可以提出以下种种问题。比如:□?-like(mar

5、y,candy).回答yes(mary喜欢candy吗?)□?-like(mary,mary).回答no(mary喜欢mary吗?)□?-like(mary,X).回答yes:X=candy,X=wine(mary都喜欢什么?)□?-like(mary,X),like(john,X).回答yes:X=wine(什么东西(X)被mary和john所喜欢?)□?-like(mary,candy),like(john,candy).回答no(mary和john都喜欢candy吗?)□?-like(X,candy).回答yes:X=mary(都谁

6、喜欢candy?)□?-like(X,wine).回答yes:X=mary,X=john(都谁喜欢wine?)108––□?-like(X,Y).回答yes:(谁都喜欢什么?)(1)X=mary,Y=food(2)X=mary,Y=wine(3)X=john,Y=wine(4)X=john,Y=mary从本例可以看出,对于同一程序可提出很多很多的问题。在这些提问里可包含一些变量X1,X2,....,Xn。如果回答是yes,则将指出当提问中的这些变量取什么样的值时使提问成为真。在提问时,只要把已知的内容写成常量,而把想知道的部分写成变量,那

7、么即可达到了解未知部分的目的,因此是很有趣的。提问的语法结构是,由?-符号打头,并其后是一串原子式(用逗号隔开)。开始的提问部分称为初始总目标(或称目标子句),而其中的每个原子式称为子目标。总目标中的最前一个子目标称为当前子目标。如果所有子目标都成功,则总目标也就成功,这时系统将发出yes,并给出一个具体解。前面考虑了只有事实的Prolog程序。但只有事实部分远不能描述很多实际问题,比如“mary喜欢的john都喜欢”等问题。下面再考虑带规则(推理)部分的Prolog程序例,具体如下:male(john)."john是男的"male(st

8、oy)."stoy是男的"male(david)."david是男的"female(mary)."mary是女的"female(rose)."rose是女的"female(mira)."mir

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。