首页 > 逻辑, 语义网, 思路 > RIF-PRD的过程语义和描述语义

RIF-PRD的过程语义和描述语义

同时开始写RIF和策略语言(policy language)这篇文章。现在是三篇同时开工,争取每篇每天写一页——我不知道有些牛人是怎么做到日试万言,倚马可待的。

RIF-PRD的官方语义是过程语义Procedural Semantics(也称operational semantics),也就是有一些“action”,通过这些action,模型的状态会发生变化。比方说,你和面,有加水和加面两个动作,那每个动作之后,这个面团的状态就会发生一些变化——那从逻辑上讲(如果你把和面的过程也看成逻辑的计算),这个面团的语义变化了,比如从小面团变成了大面团。

理论上讲,你加面和加水的次序发生改变,是不会影响面团的最终次序的。但对有些工作,次序错了那后果是完全不通的。比如我们和面是为了蒸馒头,那加酵母这个动作一定要在蒸这个动作前面。所以对过程语义,句子的次序是很重要的。“屡败屡战” 和“屡战屡败”在皇帝看来意境不同,“情有可原,法无可赦”(对马加爵)或者“法无可赦,情有可原”(对药家鑫)之类的法律活用,都是过程语义的活学活用的例子。

描述语义(descriptive semantics)又是什么?很多时候,我们不关心句子的次序,只关心它们最终说了什么。比如一个聪明的皇帝,不管是看到“屡败屡战” 还是“屡战屡败”,都最终指向一个模型,里面有两个元素:{屡败,屡战}。那么那个大臣在描述语义下,不管怎么玩弄词句,都是要被砍头的。

在互联网上,我们大多数时候没有办法预测知识描述的次序——比如链接出现的顺序。这就是为什么大多数语义网的语言,比如RDF和OWL,都用了描述语义(比如模型论语义)。而且描述语义的推理机,可以有正向推理,反向推理等很多方式,比过程语义一根筋往前冲要灵活。

RIF的BLD(基本逻辑方言)也是用的描述语义,因为它就是没有“Negation”(逻辑非)的Horn Rule(霍恩规则)。

但是RIF的PRD(产生式规则方言)只有过程语义?为什么?主要是因为引入了逻辑非。有了非,次序就很重要了,例如

  • 如果没有鸡蛋,就不吃方便面
  • 如果家里有方便面,就去买鸡蛋
  • 看见一包方便面

按这种排列,在过程语义下,最后就吃不到方便面。把次序整个颠倒,就有的吃。

很多时候,我们又需要逻辑非,又想有次序无关性,怎么办?ISWC2010上有篇文章讲这个事:

Declarative Semantics for the Rule Interchange Format Production Rule Dialect
by Carlos Viegas DamasioJose Julio AlferesJoao Leite

但是我认为这个方法,是没多大意义的。因为它所做的,是把产生式程序本身给一步步记下来,然后给这个详细的记录一个描述语义。打个比方说,你把加水加面加酵母上锅蒸的全过程都一二三四五记下来,然后去数这个记录里汉字的分布。你得到的结果到是次序无关的,但是有什么用呢。而且,你的过程已经走完了,馒头都出锅了(推理过程已经结束),还要你的描述语义做什么呢?我们要这个描述语义,是希望它能帮我们确定推理结果(比如,知道馒头这样搞一定蒸得出来)——虽然我们并不需要知道这个推理结果。

所以我要做的,就是发展RIF-PRD的另外一种描述语义。PRD的全集是没法搞的,只能是一个子集。这个文章,就在说这个子集,已经如何从这个子集映射到一些策略语言上(算是应用)。拖了半年了,终于下了决心把它彻底完成。

Advertisements
分类:逻辑, 语义网, 思路
  1. 还没有评论。
  1. 2012/04/16 @ 01:32

发表评论

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 博主赞过: