以文本方式查看主题 - W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL (http://bbs.xml.org.cn/index.asp) -- 『 Semantic Web(语义Web)/描述逻辑/本体 』 (http://bbs.xml.org.cn/list.asp?boardid=2) ---- 请教Description Logics推理的问题! (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=54565) |
-- 作者:Leon.Essence -- 发布时间:10/29/2007 11:32:00 AM -- 请教Description Logics推理的问题! 在描述逻辑中,如果有一个知识库和一个概念,那么下面的式子是成立的 K |= C <==> ¬C unsatisfiable with K, 假设K|=A, K|=B,那么K和¬A,¬B都是unsatifiable的, 这肯定是不对的,可是错在什么地方呢? 请高手指教!谢谢! |
-- 作者:Leon.Essence -- 发布时间:10/29/2007 11:38:00 AM -- 显示不正确,我重写一遍,不好意思! 使用~代表not的意思 在描述逻辑中,如果有一个知识库和一个概念,那么下面的式子是成立的 假设K|=A, K|=B,那么K和~A,~B都是unsatifiable的, 这肯定是不对的,可是错在什么地方呢? 请高手指教!谢谢! |
-- 作者:wolfel -- 发布时间:10/29/2007 3:00:00 PM -- 虽然有点儿奇怪,但是这是对的啊 实际上就是这样的: K|=A => K|=A \/~ B <=> K|= B->A 于是有 K |= A<->B
|
-- 作者:Leon.Essence -- 发布时间:10/29/2007 4:03:00 PM -- 谢谢! 但是我觉得不正确,因为如果这样的话, Thanks for any comments! |
-- 作者:wolfel -- 发布时间:10/29/2007 4:17:00 PM -- 从语义的角度来说确实是相等的啊。 对于K的所有可能世界,假如A和B在所有可能世界中都能得到满足,那么A和B的不同就仅仅在于他们使用了不同的名字,但是在论域中的指称都是相同的。 注意:A=B的语义是 A^I=B^I |
-- 作者:Leon.Essence -- 发布时间:10/29/2007 4:43:00 PM -- 谢谢wolfel,我回去再想想这个问题,总觉的有点不对! 最近一直在做DL方面的工作,碰到了很多问题, 在DL中,C satisfiable with K 表示 存在至少一个model同时满足K和C 现在假设K为{A subclassof B, D subclassof E} concept为C 但是我在Pellet中,发现C is unsatisfiable with K, |
-- 作者:wolfel -- 发布时间:10/29/2007 8:41:00 PM -- 你提的这个问题可能涉及到语言中没有出现的符号如何解释的问题。 我查了一下描述逻辑手册,提到描述逻辑的语义解释只是针对语言中出现的符号,我理解就是只是针对知识库中有的符号进行解释,没有提到语言中没有出现的符号如何解释。 你举的例子中,C没有出现在K中,所以我觉得也许pallet中认为语言中没有出现的符号,自动解释为空集了,因此C就不可满足。我觉得这是一种特殊情况,推理机可以自己选择处理这种特例的方法,所以如果认为C可满足,也是说得过去的。 至少我是这么觉得的,欢迎大家拍砖~ |
-- 作者:wolfel -- 发布时间:10/30/2007 11:32:00 AM -- 咳咳,针对LZ的问题,5楼我的回答是错误的,特此更正~ |
-- 作者:wjwenoch -- 发布时间:10/31/2007 9:38:00 AM --
It is right. That you find it weird is due to the fact that both A and B are actually equivalent to *TOP* in DL. We say K |= A, then A is a semantic consequence following from K, that is, A is SAT in every interpretation/model of K. So is B. thus A, B are tautologies. In DL, they are actually *TOP* or GCIs. Am I correct?...
|
-- 作者:baojie -- 发布时间:10/31/2007 10:57:00 AM -- wjwenoch 说得不错。 “现在假设K为{A subclassof B, D subclassof E} concept为C 则C应该是satisfiable with K的 但是我在Pellet中,发现C is unsatisfiable with K,这是为什么呢?” 这应该看作Pellet的bug。理论上,C是可满足的。 |
-- 作者:zhaonix -- 发布时间:10/31/2007 11:13:00 AM -- 有趣!琢磨了半天,觉得有了点眉目,见下面。大家批判:
~~~~~~~错就错在这里。事实上, DL中在这里不满足类似于命题逻辑的排中律那样的东西,C is satisfiable w.r.t K 并不意味着~C is unsatisfiable w.r.t K !请看DL Handbook 2.2.4.1中对Satisfiability的定义:A concept C is satisfiable with respect to T if there exists a model I of T such that CI is nonempty. 注意这里说的是“存在一个”而不是“任意一个” model of T。 另外,DL TBox中Satisfiability推理任务似乎也不这么写的:K|=C 。你见过K|=C<D, 见过K|=C(x),但你见过K|=C吗? 倒是在命题逻辑系统中,有 K|=C 形式,表示的是任何弄真K的指派都使得命题C为真,因此K|=C和K|=D同时成立意味着在任何弄真K的指派下,C和D都永远为真,这当然意味着此情形下C和D要么同真要么同假,即K|=(C<->D)。
[此贴子已经被作者于2007-11-1 8:42:06编辑过]
|
-- 作者:zhaonix -- 发布时间:10/31/2007 11:40:00 AM --
No unfortunately. :( They are not the "TOP" concept. 即使在DL中引入“K|=C”这样的表示方法以表示“K的任何一个model都是C的model”,也有个问题在于:一个解释如果是C的model的话,同时完全有可能是~C的model的。 如 KB{TBox{A}, ABox{}} |=A 不假,但并不意味着A就是那个universal concept。因为任何一个赋予A一个非空的、哪怕只含有一个元素x的集合的解释,都是该KB的model,显然它也是A的model,同时也是~A的model——只要这个domain中除了x外还存在至少一个别的元素。 baojie老大,我说的对吗?
[此贴子已经被作者于2007-11-1 8:54:03编辑过]
|
-- 作者:Leon.Essence -- 发布时间:10/31/2007 5:02:00 PM --
谢谢大家的讨论,首先我来总结以下上面这个问题, > Dear all, This is an API design decision for Pellet. The function If you want to distinguish between logically inconsistent concepts and Cheers, |
-- 作者:Leon.Essence -- 发布时间:10/31/2007 7:14:00 PM --
K|=C <==> ~C is unsatisfiable with K |
-- 作者:wjwenoch -- 发布时间:11/1/2007 3:49:00 AM --
The author used "K |= C" not to claim "C is SAT with K", but instead showed that C is a tautology/valid. It is actually saying "C is valid w.r.t K" from the previous context. In all, it is not a SAT representation when he used "K |= C". I think "K |= C " is allowed. You can treat it as "K |= (C implies TOP)". |
-- 作者:baojie -- 发布时间:11/1/2007 4:47:00 AM -- 我觉得问题还是出在楼主的 K|=C 表示方法。通用的描述逻辑语法里,是没有这样的形式的。如果写在文章里,读者会很困惑的。 |
-- 作者:zhaonix -- 发布时间:11/1/2007 8:51:00 AM --
得到baojie的确认,看来问题很清楚了:楼主自己创造了一种表示法!:) 而且与读者(至少如我)根据命题逻辑中这种表示方法的含义所形成的直觉(任何是K的模型的解释必然也是C的模型)不一致:( 如果这个表示法是楼主这个意思的话,那还存在刚开始说的问题吗?——C和D都是universal concept了,当然互相subClassOf了 可能楼主一开始也不是很确定这个表示法的用意。
|
-- 作者:wolfel -- 发布时间:11/1/2007 10:30:00 AM --
我觉得有问题,有效式(valid)并不是tautology,有效式是在前提集的所有model下成真的,但是tautology是对任意解释都为真,K|=C, 只能有C是有效的,单并不能等价于TOP。 LZ的问题我已经跟他讨论过,其实问题出在这里: K|=A <=> K \/ {\neg A}中A不可满足 => K \/ {\neg A}中 A /\ \neg B不可满足 <=> K \/ {\neg A}|= A \sqsubseteq B K|= B <=> K \/ {\neg B}中B不可满足 => K \/ {\neg B}中\neg A /\ B不可满足 <=> K \/ {\neg B} |= B\sqsubseteq A 由于推出 A\sqsubseteq B和推出 B\sqsubseteq A的前提集不同,因此根本得不到 A=B |
-- 作者:wolfel -- 发布时间:11/1/2007 10:32:00 AM --
跟表示方法没有关系, 你可以认为 C是一个描述逻辑公式比如 A < B |
-- 作者:zhaonix -- 发布时间:11/1/2007 7:37:00 PM --
那 ~(A<B) 是什么意思呢?在DL中。 |
-- 作者:wolfel -- 发布时间:11/1/2007 9:22:00 PM --
描述逻辑的语法中当然不能有这种表达式,不过这种形式的公式的语义也是可以定义的,见文献: Giorgos Flouris, Zhisheng Huang, Jeff Z. Pan, Dimitris Plexousakis, HolgerWache: "Inconsistencies, Negations and Changes in Ontologies", in Proc. of AAAI'06 在这篇文章中,negation有两种形式的语义:coherence negation 和consistency negation,相应的, ~(A\sqsubseteq B)可以定义为 \exists (A\sqcap \neg B)和 A\sqsubseteq \neg B LZ确实使用符号不规范,并且其实LZ的“KB不可满足”也是不规范的说法,因为不可满足是针对某个concept说的,KB只有incoherence和inconsistency。 不过最主要的问题是我觉得LZ提的这个问题实际上是一个一阶逻辑的问题。 |
-- 作者:Leon.Essence -- 发布时间:11/1/2007 9:36:00 PM -- 我认为,如果K|=C的话(无论C是一个concpet还是axiom),这说明C是为universal concept的, 每个知识库K有自己的universal concept(它们是不同的),这样C并不是并不是tautology,而只是对K的所有model都成立而已。 这种认为每个知识库有自己不同的universal concept的说法不知对不对 但是在K中含有概念,和C是概念这种写法也应该是允许的。 望大家指点! |
-- 作者:wolfel -- 发布时间:11/1/2007 9:44:00 PM --
1. 我没有听说过这种说法,TOP就是一个全集概念,所有的concept都属于它。而且我觉得你定义每个KB的universal concept也没有什么意义啊 |
-- 作者:zhaonix -- 发布时间:11/2/2007 10:02:00 AM --
赞楼上!相关文献说来就来。 同意:楼主提的问题,是把DL和FOL混在一块了。虽然DL可以看作FOL的子集,但为了其用途定义了一套特定语法,不宜与FOL的混用。如果自己非要引入新的语法的话,得按照其风格定义好语义才行。 用FOL的等价形式来看,DL中的 C<D 与 ~CVD 还是有区别的。DL中的C相当于是一个FOL一元谓词,而C<D则是一个命题(sentence,即不含自由变元的公式): forAny.x.(C(x)->D(x)) ,等价于 forAny.x.(~C(x)VD(x)) 。后面这个式子与描述逻辑中的T<(~CVD)相当,而不是~CVD本身,因为后者是一个谓词而非公式。后者这种形式——谓词的组合——只在DL中有,而在通常的FOL中没有,倒也挺有意思。 关于Tableaux算法中在判断 K|=(C<D) 问题时会搞出一个 ~CVD 来的问题。问题出在:算法不是把后者当作一个普通的概念那样对待的! 对于普通的概念C,DL系统会用Tableaux算法作用于C,以确定C是否可以满足; 而这里,DL系统的任务是要把算法作用于~CVD的否定 上去,想确定的是其否定式(即C^~D)是否可以满足。 而虽然“C可满足”成立意味着“C不可满足不成立"、反之亦然,但 “C可满足” 与 “~C不可满足” 并不等价!——前一对命题中后者是前者的双重否定式,但后一对命题中后者不不是前者的双重否定式(把“可满足”看作一元谓词、把C看作个体常量即可。哇塞,二阶逻辑了!:))。 确切地说:C不可满足意味着~C对(堪作当前KB的model的)任何解释都是可满足的;而C可满足时,~C也可能满足也可能不满足,即相当于啥也没说:) 。 这一点其实完全不奇怪。再用FOL来描述: C不可满足 <--> ~C恒满足 : ~exists.x.C(x) <--> forAny.x.~C(x) C可满足 --> ~C ? : exists.x.C(x) --> ? ~C(x) 因此,判定C的可满足性与判定~C的可满足性对于能得到的关于C本身的结论,是完全不同的。 ——感谢楼主及大家的讨论,才使我想了这么多、对这个问题才头一次感到这么清楚。
[此贴子已经被作者于2007-11-2 13:17:30编辑过]
|
-- 作者:wjwenoch -- 发布时间:11/2/2007 11:26:00 AM -- To: Leon.Essence&wolfel : 你们是对的,我的说法错了。tautology和validity在一阶逻辑中并不相等,前者是后者的真子集。所以“K|= C”说明C是valid而已。 至于楼主说的K |= C implies D,我的看法和zhaonix一样。理论上,DL Reasoner也有可能使用:TOP implies (not C or D),也就是做为GCI去推理。但实现上一般都是采用的Lazy Unfolding一套,单方向使用unfolding rule。 PS. “C可满足” 与 “~C不可满足”在经典逻辑中就是不等价的。一个是SAT的定义,一个是validity的等价式。 PPS. 楼上最后的那段话:。。。“确切地说:C不可满足意味着~C对(堪作当前KB的model的)任何解释都是可满足的;而C不可满足时,~C也可能满足也可能不满足,即相当于啥也没说:) 。”
|
-- 作者:zhaonix -- 发布时间:11/2/2007 1:15:00 PM --
~~~~~~~~~~~~~是,现在改过来了。Tks! |
-- 作者:wolfel -- 发布时间:11/2/2007 2:38:00 PM --
讨论越来越热烈了,是个好现象!^^ 不过对于你的说法,我觉得你把问题复杂化了。 (1)实际上语法(syntax)包含了词法和句法,不管在一阶逻辑中还是在描述逻辑中都有,词法包括字母表,变元,常元,函数词的定义,句法是公式的定义。在描述逻辑中,词法就是concept description的归纳定义,比如 而句法就是TBOX的terminology和ABOX中的assertion的定义,比如两种形式的公理 C= D 和 C< D,这些就相当于一阶逻辑中的formula。 (2)关于可满足:可满足是一个语义上的概念,C相对于知识库K可满足表示K有一个模型I使得C^I不是空集,而 K|= C<D (称为 C<D是K的语义后承) 的意思是对K的任意模型I,使得 C^I 是D^I的子集。由此可以证明, C /\ \neg D相对于K不可满足在语义上等价于 K|= C< D。 (3)关于C可满足和~C不可满足,再多说一句:两个问题互为补问题(complement)。从计算复杂性来说,在命题逻辑中,C可满足是NP的,C有效是coNP的。目前尚不清楚NP是否等于coNP。
|
-- 作者:Yuejian -- 发布时间:11/2/2007 9:49:00 PM -- kAON2 也有一个显然的reasoning BUG: K={ \top subclassof \bot} is satisfiable by KAON2. |
-- 作者:baojie -- 发布时间:11/3/2007 12:45:00 AM -- 你是想说 K={ \top subclassof \bot} is “consistent” by KAON2 ? |
-- 作者:Yuejian -- 发布时间:11/3/2007 1:31:00 AM -- 是的。 |
-- 作者:Yuejian -- 发布时间:11/3/2007 1:57:00 AM --
对的!但是注意一点就是 x可满足和x不可满足是互为补问题,C可满足和~C不可满足分别是两个问题的实例而已, 与逻辑否定~没有关系。 |
-- 作者:kolapig -- 发布时间:11/3/2007 2:10:00 AM -- 不是吧,各位! 这个问题本身就是错误的. 想问一下楼主, K |= C 是什么??? 看你的帖子,C应该是一个concept. 但是实际上 在DL 里面 K |= C 是没有意义的? 只有 K |= C(a) 或者 K |= C subsumed D 才有意义.
|
-- 作者:kolapig -- 发布时间:11/3/2007 2:23:00 AM -- 对不住阿, 这边上网好慢,好像baojie和其他几位已经点出这个问题了.
|
-- 作者:kolapig -- 发布时间:11/3/2007 2:32:00 AM -- 最根本的问题是搂主对 satisfiable和 |= 的关系 的理解错误 A is satisfiable with K 解释: "A and not B is satisfiable with K" 表明 *存在一个 x* such that
|
-- 作者:zhaonix -- 发布时间:11/3/2007 5:20:00 PM --
这步不对吧? 见DL Handbook 2.2.4.1中对Satisfiability的定义:A concept C is satisfiable with respect to T if there exists a model I of T such that C^I is nonempty. 注意这里说的是“存在一个”而不是“任意一个” model of T。
|
-- 作者:wolfel -- 发布时间:11/3/2007 6:51:00 PM -- A相应于K可满足的时候,~A相应于K也有可能可满足 最明显的是例子是{p\/q}中,p和~p都是可满足的...
[此贴子已经被作者于2007-11-3 21:40:20编辑过]
|
-- 作者:kolapig -- 发布时间:11/4/2007 5:48:00 AM -- 阿,傻啊,你说的没错。。。。。 抱歉了,各位。自己糊涂了。 应该是这样的: A is satisfiable with K 这下该对了... 在此抱歉。。。。。
|
-- 作者:kolapig -- 发布时间:11/4/2007 6:02:00 AM -- 这个帖子从本质上来讲, 一开始的错误就是把 ''A is satisfiable with K'' 理解为 K|= A. 欢迎评论...
|
-- 作者:zhaonix -- 发布时间:11/4/2007 9:17:00 AM --
嗯,真相大白,达成共识。热烈的讨论基本上圆满结束:) 一点小疑问:既然你这一贴也这么说了。那么再上面一楼里的如下说法是不是严格来说也不贴切: A is satisfiable with K 因为1)"|="符号表示的是对于左侧KB的“任意”model如何如何,现在与“存在x”放在一起似乎不太和谐:); A is satisfiable with K |
-- 作者:kolapig -- 发布时间:11/5/2007 1:06:00 AM -- 你说的没错。。。应该是这样的。 FK。。。 怎么老说不清楚
|
-- 作者:zhaonix -- 发布时间:11/5/2007 9:05:00 PM --
呵呵,忙中出错吧。 多交流! |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
187.500ms |