语义网之PROLOG本质

1、PROLOG程序按下面目标的一般形式由事实和规则组成:

p:-p1,p2,..pN.

(,表示合取∧ ;表示析取∨)

其中,p是规则的头,Pk是子目标。当且仅当所有子目标满足,头目标p才能满足。:-可理解为if。这种表达称为Horn子句

如果是;可理解,当这些子目标至少满足一个就可以了

2、举例:

parent(X,Y):-father(X,Y).

parent(X,Y):-mother(X,Y).

意味着:如果X是Y的父亲或母亲,则X是Y的双亲。

祖先可以定义规则为:

(1)ancestor(X,Y):-parent(X,Y)

(2)ancestor(X,Y):-ancestor(X,Z),ancestor(Z,Y).

3、PROLOG系统一般由谓词数据库(规则和事实)、解释机(向谓词数据库发出查询,谓词数据库负责回答)、用户

解释器会尝试用深度优先和广度优先搜索。

4、举例:

接着祖先的定义补充以下事实

(3)parent(ann,mary).

(4)parent(ann,susan).

(5)parent(mary,bob).

(6)parent(susan,john).

向PROLOG提问确定Ann是否是Susan的祖先

:-ancestor(ann,john).

开头没有意味着规则无头,意味着是由PROLOG证明的条件。

接收提问后,PROLOG开始搜索那些规则头与输入模式ancestor(ann,john)相匹配的语句,称模式匹配。步骤如下:

A)与祖先规则(1)相匹配,X为ann,Y为john,PROLOG开始尝试匹配(1)的体,即parent(X,Y)。

parent(ann,john)无匹配。

B)PROLOG继续祖先规则(2),X为ann,Y设为john,证明(2)的ancestor(ann,Z)和ancestor(Z,john)这2个子目标为真。

C)PROLOG尝试证明ancestor(ann,Z),从顶端(也就是(1))开始,与(3)匹配,把Z设为mary,尝试把ancestor(Z,john)当做ancestor(mary,john)来匹配,与(1)匹配 ,但是parent(mary,john)搜索失败。

D)PROLOG重新考虑Z为mary,显示这个选择没用,回溯寻找不同的搜索路径,搜索(4),设Z为susan,然后(6)parent(susan,john).成立

E)返回查询为真

PROLOG的控制结构属于马尔可夫算法类型,模式匹配的搜索次序由Horn子句输入次序决定。而相反的是基于规则的专家系统按POST模式,输入次序并无影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值