2.1基本PRoL0G 2.1.1PR0L0G的语句 1.事实(fact)蕌 格式〈谓词名〉(〈项表〉).蕌 student(john).蕌 like(mary, music) abc 蕌 repeat. 功能一般表示对象的性质或关系。蕌
2.规则(rule)蕌 格式〈谓词名〉(〈项表〉):-〈谓词名〉(〈项表〉){, 〈谓词名〉(〈项表〉)} bird(X):-animal (X), has(X, feather).TE grandfather(X, Y) father(X, Z), father (z, y) run:start, stepl(X), step2(X), end. Yy 功能一般表示对象间的因果关系、蕴含关系或对应 关系
3.问题( question)蕌 格式?-〈谓词名〉(〈项表〉){,〈谓词名〉 (〈项表〉)} ?- student(john).蕌 ?-like(mary,X).湩 功能问题表示用户的询问,它就是程序运行的 目标
2.1.2PR0L0G的程序 PROLOG程序一般由一组事实、规则和问题组 成。问题是程序执行的起点,称为程序的目标。 likes(bell, sports) likes(mary, musIc)、蕌 likes(mary, sports).TE likes(jane, smith).蕌 friend(john, X):-likes(X, reading), likes(X, music) friend(john, X): -likes(X, sports), likes(X, music ?-friend (john, Y)
?-ikes(mary1X).潼 或盍 ? -likes( mary, musIC)潼 或蕌 ?- friend(XY),潼 或 日日 ?-likes(bell sports),EE ikes(mary; musIc),蕌 friend(john,X).潼
2.1.3PR0L0G程序的运行机理 1.自由变量与约東变量 匹配合一 两个谓词可匹配合一,是指两个谓词的名相同, 参量项的个数相同,参量类型对应相同,并且对应 参量项还满足下列条件之一: (1)如果两个都是常量,则必须完全相同。蕌 (2)如果两个都是约束变量,则两个约束值必 须相同。蕌 (3)如果其中一个是常量,一个是约束变量, 则约束值与常量必须相同。 蕌(4)至少有一个是自由变量
考虑下面的各组谓词是否可匹配合一?蕌 pre("obl","ob2”,Z)蕌 prel("obl″,"ob3″,Y)潼 prel("obl","ob2″,z)蕌 pre("ob1"”,X,"ob3") pre("obl"”,"ob2”,Z)蕌 prel(obl",X,Y)