以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  关于规则于公理 我的思考  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=35318)


--  作者:lzcsu
--  发布时间:7/7/2006 10:16:00 AM

--  关于规则于公理 我的思考
公理是本体结构的重要部分,公理指的是放之四海皆准的真理,规则不一样,规则只是一个领域适用的准则。
Trigger rule是触发规则,特有的含义指的是对A→B规则,假如一个实例属于A那么它同样属于B,而对于非A的实例而言,规则则不起效,但对于离散数学里面的A→B对非A领域而言A→B同样成立,这是两者的根本区别,独特的性质是trigger的意义所在,是其与生俱来的特性。所以普通意义上的A→B它对应的是非A析取B,而对trigger rule中的A→B而言,其意义是A合取B。所以trigger rule中的A→B并不能推出非B→非A。因为非B→非A等于非A合取非B。
上次看到的一个例子:
“unmarried_student(X):-not(married(X)), student(X).
student(joe).
married(john).
这个程序有一个rule和两个fact, rule可以看成是not(married(X)) and student(X)--->unmarried student(X).
给出一个query
?- unmarried_student(joe).
yes
可以看出当给x赋值joe,可以退出unmarried_student(joe)是可以推理出来的, 同样
?- unmarried_student(john).
no
同样,赋值给xjohn也是可以进行推理的, 但当要查询
?- unmarried_student(X).
no
我们希望得到的答案应该是joe, 但是得到的答案是no(即failure),因为推理的假设不充分,因为至少已经有一个unmarried student, 所以这个推理规则不能用了,得到的结果是negation as failure。“
因为在第二个查询的时候,由于规则不适用于这个fact,所以说明规则在所有的fact内并不适用,所以第三个查询要找出所有的没结婚的学生x,由于不能判断john,得出结果no。在普通命题中的A→B能推出非B→非A是因为它们两者适用正确的范围一样,但都加上了前提条件为非的范围,而trigger rule明确规定了不适用前提条件为非的情况,自然它们就不能等价了。

--  作者:wumingrock
--  发布时间:7/7/2006 10:41:00 AM

--  
本体定义里,哪些是公理,哪些是规则呢?

本体中概念之间的关系是算公理还是规则呢??


--  作者:kolapig
--  发布时间:7/7/2006 8:51:00 PM

--  
看了一下,不太明白你想说什么,

想说 trigger rule 与 Description logic axiom 的区别?

还是想说negation as failure 和普通negation 的区别?


--  作者:kolapig
--  发布时间:7/7/2006 9:04:00 PM

--  
第三个为什么是NO, 你这个例子是从哪里看到的?

是PROLOG的一个例子吗?

如果你的not 是nagation as failure的意思(也应该是,根据前两个例子的结果), 那么,第三个例子从 logic programming 的角度讲 结果i不应该是 no. 不是很明白你的解释, 比如 "所以说明规则在所有的fact内并不适用".


--  作者:iamwym
--  发布时间:7/8/2006 11:33:00 PM

--  
axiom和中国教育中的公理不完全一样,axiom在本体中并不是放置四海皆准的道理,无非是某领域内的一种比较被广泛认可的知识。
--  作者:lzcsu
--  发布时间:7/9/2006 3:41:00 PM

--  
iamwym说的极是
其实我说的就是Trigger rule中A→B等于A合取B
普通意义上的A→B对应的是非A析取B
所以Trigger rule中不能由A→B推出非B→非A
--  作者:lzcsu
--  发布时间:7/9/2006 3:48:00 PM

--  
至于我所举的例子所表达的意思:
在第二个推理中 规则并不适用,这说明了规则并不在所有的fact中适用
第三个推理?- unmarried_student(X).是要找出所有的unmarried_student,由于在fact john中规则是不适用的,所以对于john是不是unmarried_student无法判断。
所以推理实际上是无法完成的。
不知表达的意思够不够清楚
--  作者:kolapig
--  发布时间:7/13/2006 4:36:00 AM

--  
还是不明白你说什么。
但是如果就axiom 和 trigger rule 来讲, DL 中的 axiom 其实是 hierarchy, 比如    Man subsumed Human, 所以如果不是 Man 当然就不是 Human,而Trigger rule 的根本含义 不是 hierarchy,一个例子是 professor --> Doctor,   但是不代表 非Doctor 就 不是 professor, 也就是说这类知识是不可逆的。

对于negation as failure(用not代表)是 用来表达非单调逻辑的一种方式, 它和普通的negation(用NOT代表) 不同,  NOT Man(Tom) 表示Tom不是Man, 但是 not Man(Tom)表示 Tom是 Man 不能被证明, 这也就是negation as failure 的意思, 失败即否定(也就是说 证明不了就否定).
所以第二个query中, 我们知道 married(john),所以married(John)是可以证明的, 因为 那个 rule 不会被猝发, 所以答案当然是 no.

但是第三个query就不明白了, 如果是no, 那明显和你第一个query矛盾,具体请网友lzcsu给出更具体的环境. 个人认为第三个query X可以是Joe.


--  作者:wolfel
--  发布时间:7/21/2006 5:51:00 PM

--  
trigger rule没有模型论语义,而是过程性语义,你把它理解为A合取B根本就是错得。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms