知识工程经典语言 PROLOG基本介绍

定义

PROLOG语言是一种基于Horn子句的逻辑型程序设计语言,也是一种陈述性语言。

PROLOG的语句

PROLOG语言仅有三种语句,称为事实、规则和问题。

事实

格式 <谓词名>(<项表>).
其中谓词名是以小写英文字母开头的字母、数字、下划线等组成的字符串,项表是以逗号隔开的项序列。PROLOG中的项包括由常量或变量表示的简单对象以及函数、结构和表等,即事实的形式是一个原子谓词公式。
例如:
student(john).
like(mary,music).
就是PROLOG的两个合法事实。

规则

格式: <谓词名>(<项表>):-<谓词名>(<项表>){,<谓词名>(<项表>)}
其中":-“号表示"if”(也可以直接写为if),其左部的谓词是规则的结论(也称为头),右部的谓词是规则的前提(也称为体),{}表示零次或多次重复,逗号表示and(逻辑与),即规则的形式是一个逻辑蕴含式。例如:
bird(X):-animal(X), has(X,feather).
grandfather(X,Y): -father(X,Z),father(Z,Y).
就是PROLOG的合法规则。

问题

格式: ?- <谓词名>(<项表>){,<谓词名>(<项表>)}
例如:
?-student(john).
?-like(mary,X).
就是两个合法的问题。

一个简单的prolog程序

% 定义likes谓词
likes(bell, sports).
likes(mary, music).
likes(mary, sports).
likes(jane, smith).
likes(jane, reading).

% 定义friend谓词
friend(john, X) :- likes(X, reading), likes(X, music).
friend(john, X) :- likes(X, sports), likes(X, music).

% 查询
?- friend(john, Y).

运行方法及结果截图

  • 首先需要下载swi-prolog,下载地址为swi-prolog
  • 将上面的程序保存为.pl结尾的文件,像我就是保存为了demo.pl,并存放在了F:\tmp文件夹中
  • 打开cmd,并进入存放pl文件的文件夹
  • 依次运行命令

swipl
[demo].
friend(john,Y).

  • 注意,这里的[demo].是因为我保存的程序文件为demo.pl。而最下面的语句为查询语句。整个的截图如下:
    在这里插入图片描述

上面代码的解释

把上面的代码解释一下为:
bell喜欢sports;
mary喜欢music;
mary喜欢sports;
jane喜欢smith;
jane喜欢reading;
如果你喜欢reading且喜欢music,那么你可以和john做朋友;
如果你喜欢sports且喜欢music,那么你可以和john做朋友;
试问,谁能和john成为朋友呢?

从运行结果我们可知,是mary,即Y=mary。(和我们的推断一致)。

以上便是我学习《人工智能导论》一书的学习笔记,我会继续学习下去的,希望和大家一起进步了!

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值