首页 > 笔记, 逻辑, 语义网 > 重读RIF-PRD:语义之动作、规则部分

重读RIF-PRD:语义之动作、规则部分

语法 和 语义之条件部分。原文档是http://www.w3.org/2005/rules/wiki/PRD

接着读action部分的语义

回顾一下state of the fact base(简称状态)是一个fact的集合,每个fact是一个不含变量的原子公式。

每个基原子动作(ground atomic action,也即不含变量的原子动作)会往这个集合里加入(assert)或者去掉(Retract)一些元素。[规范里定义了5条rule]

这样,转移关系(transition relation)定义为->RIF-PRD 为W x L x W的元素。W是所有可能状态的集合,L是所有基原子动作的集合。说白了,就(老状态,动作,新状态)这样一个三元组。

很简单不是?呵呵。下面就要人头大了:规则(rule)的操作语义。

————————————————-

我们已经讨论了规则的if部分和then部分的语义,还有什么复杂的呢?

Labeled terminal transition system(直译是“有标签的终端符号转移系统”,相信没人看得懂,简称转移系统好了)定义为{C,L,->,T}

  • C是状态state
  • L是标签label,也就是动作action
  • -> 是一个三元关系 C x L x C [参上面转移关系的定义]
  • T是C的一个子集,包括所有的终止符,也就是,如果进入这个状态,再也不会进入别的状态(黑洞!)
更复杂的是conflict resolution(冲突消解)——也就是,如果有多条规则实例可以用,到底先用哪个。通常冲突消解,需要保留状态的历史
  • 所谓规则实例(rule instance),是指把规则的if和then部分的变量都替换为常量得到的规则
  • 规则实例和fact base间有匹配的关系,也即其condition部分和fact base匹配
一个产生式规则系统状态(production rule system state)s,包含下面这三个要素
  • facts(s):事实库的状态
  • picked(s):系统状态对应的一组规则实例(有序列表)
  • previous(s):前一状态
冲突集合(conflict set)是对某系统状态s和规则集RS,所有能匹配facts(s)的RS的实例。这些规则称为是可激发的(fireable)。
RIF-PRD的产生式规则系统(production rule system)被定义为{S,A->, T},其中
  • S是系统状态的集合
  • A是转移标签(transition label)的集合——每个标签是一系列的基原子动作。
  • ->是SxAxS 三元组
  • T是终结系统状态。
三种常用的冲突消解原则
  • Refraction:如果规则实例被激活过(fire),只要它的激活条件一直没变,那后面的状态中它都不会被激活。[避免重复激发]
  • Priority:规则实例要按规定好的优先级排序
  • Recency:规则实例按最近使用过的次序排序,最近用过的优先 [规范里解释了具体怎么算recency]
RIF-PRD默认的conflicrt resolution算法是前向链(rif:forwardChaining),原则如下(4条)
  • Refraction要遵守
  • 不在refraction范围内的,按优先级排序(高到低)
  • 不再上两者范围内的,按Recency排序(新到旧)
  • tie-break要是还有剩下的,那就爱怎么着就怎么着,
什么时候停(halting)?如果经过上述4条过滤,冲突集是空的,也就是没有任何规则可以激发了,停。
【完】
Advertisements
分类:笔记, 逻辑, 语义网

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: