以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  RACER FaCT KAON2和Jena的比较 - 几点个人看法  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=20645)


--  作者:iamwym
--  发布时间:7/23/2005 8:14:00 PM

--  RACER FaCT KAON2和Jena的比较 - 几点个人看法
把昨天有些没说的,在这里稍微补充一下吧,顺便也拿这个回了一个朋友的信息。

KAON2和ontology连接使用的是自己的api,是直接调用kaon2的api去对ontology进行推理。kaon2有几个例子在它的软件包中,可以运行一下试试看。不过配置还是需要一点过程,要下载一个apache的ant,KAON2的网站上有guide。德国人做东西,功能什么都不错,就是易用性差了点。Uli Sattler就说过AIFB的人东西做了不错,就是不去prove它。

FaCT可以和Protege连,应该是用DIG的,DIG是一个比较认可的接口,目的也就是为了统一不同reasoner的接口问题,其实也是他们那边帮人刚出来的。可以不使用DIG, 但是要开发自己的另外接口恐怕难度不小。FaCT其实现在有3个使用办法,一个是DIG,一个基于COBRA的客户/主机端连接,还有就是自己看LISP源码了。

个人认为,对于开发自己的应用,需要用到本体的推理,如果对推理要求不高,Jena API就是一个不错的选择。如果对于推理的功能要求比较高,那还是推荐KAON2。而RACER和FaCT,都要使用DIG或者客户端的方式,显得不是非常直接,编程开发复杂程度都会相应增加。我想真正的Java程序员肯定会比较乐意使用API而不是外挂一堆东西。

而RACER,应该说是比KAON2更加易用一些的推理器,适合大家在开发直接使用现成ontology的应用程序中,并且并不包含推理的过程。FaCT效率应该是比RACER好的(Ian这么声称的,有问题找他去:P),不过相信大家如果是直接面向现成本体的开发,使用哪个推理器去验证本体的一致性和满足性,都不是很有所谓,凭自己喜欢就行。

一家之言,候教大方。


--  作者:jiexincao
--  发布时间:7/23/2005 9:17:00 PM

--  
看了上面的陈述对一些基本的问题有了很明确的了解了,但是想继续请教的问题还有几个:
1.各种推理工具的推理算法是不是大差不离?有没有关于它们所使用的算法的比较的文章(或者言论)?
2.这几个推理工具是不是除了jena工具包以外都不需要自定义规则?或者需要自定义规则,规则的语法是不是各个系统自定义的?
3.除了功能上的一些问题,如支持不支持对Abox的推理外,对于都支持的推理(如,对Tbox的推理)各种推理工具有没有效率上的差异。

这几个问题的答案一直不知道该从哪里找些什么资料能了解到。还请版主多多指导,或者指导指导在哪里可以获得上述问题的答案。也希望其他的高手给予帮助。

---------------------------------
还有一个想法:
第三个问题如果目前没有答案的话,组织论坛的力量,做一个合适的例子,大家都使用这个例子对各种工具进行效率评估,然后对结果进行统计。这种方法可行吗?


--  作者:iamwym
--  发布时间:7/23/2005 10:37:00 PM

--  
1.fact, racer, kaon2都是基于tableaux,有各自的特点,做了一定的优化,详情查阅作者的论文就可以。
2.没错,它们的规则都是定义好的,不过你可以扩展。
3.Abox的推理不是不支持,是支持了不够好。

效率上差异并不明显,如果能统一硬件软件系统环境的情况下进行测试,将结果量化比较,肯定是一个不错的研究成果。如果要多视点,多平台,多种本体进行一个测试,完全是可行的。关键是一个不同的硬件平台都要尝试,不同的操作系统,这样得出的东西才有说服力。


--  作者:jiexincao
--  发布时间:7/23/2005 11:01:00 PM

--  
非常感谢斑竹。


多个平台,多个操作系统进行测试可能就比较麻烦了。应该多数都是windows的吧,可能还是D版,呵呵。


--  作者:iamwym
--  发布时间:7/24/2005 5:40:00 PM

--  
只在windows下测试,就不大具有说服力了,比如可能java vm在windows下面的效率和其他平台不一样。
偶还做过几个月测试,这个东东正规搞起来比较麻烦的,一个系统可以测上几个月。
--  作者:jiexincao
--  发布时间:7/24/2005 6:34:00 PM

--  
我本来还以为多几个人做测试不几天就可以获得一个结果呢,想不到还需要那么长的时间。
--  作者:iamwym
--  发布时间:7/25/2005 7:50:00 AM

--  
有个初步结果问题不大,比如某种软硬件环境下的比较吧,大概1个礼拜可以搞出来了。这样的结果价值不大,就说明了在这台机器上用哪个推理器在哪方面表现好些。
--  作者:kolapig
--  发布时间:7/26/2005 12:59:00 AM

--  
关于ABox 的推理, Man的Isatance store 还不错,算是用空间换取时间的一个技术,但目前还在不断完善中,有兴趣可以参考:http://instancestore.man.ac.uk/
--  作者:iamwym
--  发布时间:7/26/2005 4:33:00 PM

--  
嗯,介绍一下,楼上的kolapig同学马上就是Ian的PhD了。大家欢迎。
--  作者:jiexincao
--  发布时间:7/26/2005 5:30:00 PM

--  
又来了一个牛人,欢迎欢迎!以后还请多多指教啊!
--  作者:kolapig
--  发布时间:7/26/2005 8:08:00 PM

--  
。。。。还不是牛人。。。。

共同交流,互相帮助,是真的。


--  作者:boycott2
--  发布时间:7/26/2005 10:28:00 PM

--  
欢迎欢迎,积极交流
--  作者:davidking
--  发布时间:7/27/2005 11:38:00 AM

--  
请教一下:iS是不是用数据库来进行instance的推理,用dig访问其他的reasoner做一致性检验?
--  作者:iamwym
--  发布时间:7/28/2005 12:11:00 AM

--  
不是用数据库的。dig确实就是这个作用。
--  作者:davidking
--  发布时间:7/28/2005 1:04:00 AM

--  
那么,iS是不是用数据库来作为存储大量individual的Abox,用owl记载Tbox的内容,实际的推理还是由dig调用reasoner来完成的?
这样是不是在处理海量数据时,与单独使用FaCT有更高的效率?
--  作者:iamwym
--  发布时间:7/28/2005 2:22:00 AM

--  
我不是很了解instance store,但据我所知在推理中没有数据库这个说法吧,推理中访问数据库是很不现实的事情。

感觉你的提法有点问题,普通reasoner处理individual的效率很低,就算不是海量也很低。

owl中显然记载了整个本体的信息,无论abox还是tbox所需推理的东西。不好意思,我有点不是很明白你在问什么。


--  作者:davidking
--  发布时间:7/28/2005 4:00:00 PM

--  
那么,请问一下iS里面的数据库到底是起什么作用的呢?
--  作者:iamwym
--  发布时间:7/28/2005 6:38:00 PM

--  
明白你的意思了。
跟据我的理解,数据库是用于存储对于individual的描述,从而对个体进行实体化。

见http://instancestore.man.ac.uk/中提到:

The first operation (addAssertion) stores in the database the fact that individual is an instance of description, together with additional information gathered through calls to the reasoner, such as the atomic concepts in the ontology the individual is instance of, and, in an  optimised version, the taxomomy position of the description with respect to the ontology.

The second operation (retrieve) again uses the database and the reasoner (with respect to the ontology) to retrieve all individuals which are instances of description.

第一个是定义第二次是获取。其实这个实现就是我以前提到过的,把individual转化成普通类进行推理。由于访问数据库,进行加定义,和获取两个操作,这个效率是非常慢的,iS非常不完善的,基本上不可能在个人计算机上应用于实际推理。但是比起RACER等其他方法,已经要好上很多,至少支持了对于个体的推理。

而值得注意的是,individual是不应该存储于数据库中的,如果这样本体就没用了,我觉得这其实是一个关于本体基本的概念的误解。。如果在数据中,谁都不会知道个体与类之间的关联,特别在不同本体中。


--  作者:iamwym
--  发布时间:7/28/2005 6:41:00 PM

--  
题外话,很多技术的进步和美好的应用都是建立在硬件进步的基础上。如果现在的机器快上100倍,相信马上iS就可用了。想想一下33mhz处理器,和3.3ghz处理器之间的差别吧,相信这两种机器大家都见过。
--  作者:kolapig
--  发布时间:7/28/2005 10:51:00 PM

--  
把individual转化为普通类(spseudo-individuals)来推理是很不现实的,因为individual通常会很多,一个concept可能包含上百个individual,
如果把所有的individual都转化成spseudo-individuals,那TBOX Reasoner 将变得效率很低,甚至崩掉.

iS中的dababase 是用来存储ABOX的, 这个database也存储"a complete realisation of the ABox". 对于每个individual,都存储离他最近(most specific)的concept.

iS中对ABox的推理是用reasoner(如 FaCT) 对TBox进行推理和对database对数据的存取相结合来实现的.可以这么理解: TBox对Concept进行推理,而database就负责most specific concept和individual的对应关系
这样个说法可能不是很准确,但有助于理解.

目前,iS确实是很不完善的,比如他只支持Role-free的ABox的推理,也就是说ABox中只包含x:C这样的axiom.

当时写proposal的时候读过几篇iS的论文,现在基本淡忘,上面是残留的印象,有问题请批评指正,

如果想进一步了解,可以看看几篇iS的文章,google一下

The Instance Store Description Logic Reasoning with Large Numbers of Individuals

Implementing the Instance Store

Matchmaking Using an Instance Store:Some Preliminary Results
....


--  作者:davidking
--  发布时间:7/28/2005 10:55:00 PM

--  
看了一下iS的文档里介绍的算法,的确是将individual转化为类来进行推理的,
多谢LZ,受教了!
--  作者:davidking
--  发布时间:7/28/2005 11:09:00 PM

--  
看了一些Racer的资料,里面除了它的客户端和Dig接口外,还谈到了TCP Socket interface,有关JRacer和LRacer,但文档语焉不详,LZ有相关的资料么?
谢谢先!
--  作者:iamwym
--  发布时间:7/30/2005 3:32:00 AM

--  
racer使用提供网络服务的模式运行的,socket interface只是用来作为数据传递,不是这里所关心的。
--  作者:webcoolie
--  发布时间:8/5/2005 4:31:00 PM

--  
谢谢
--  作者:webcoolie
--  发布时间:8/5/2005 4:33:00 PM

--  
OK
--  作者:wyn422
--  发布时间:8/11/2005 4:15:00 AM

--  
哪位高人指点一下:

1.怎么用Kaon2从owl里得到ABox和TBox?
2.取出来的assertions和terminology axioms是用什么数据结构?
3.如果想得到Fuzzy Owl怎么加Fuzzy Value? 上个月summer school的时候问过Ian,他说要加extension。不过我对语法不那么熟,看了半天不知从何下手
先谢过了!!


--  作者:iamwym
--  发布时间:8/11/2005 4:51:00 AM

--  
1.建议看documentation,api应该是有method的。
2.这个我不是很肯定,但按照一般的传统,应该是树。
3.Ian的意思恐怕是现在的reasoner还不支持这一点,所以要加基于模糊逻辑的推理扩展,目前应该有没有具体实现。下手点可以用基于fuzzy logic的推理器实现。现在感觉热点在非单调逻辑和时序逻辑上,基于模糊逻辑的实现还没有很提上日程。

summer school,上个月Dresden那个?


--  作者:yayatu
--  发布时间:8/11/2005 4:07:00 PM

--  

   kolapig是不是就是斑斑上次在群里向我提起的牛人啊???
   呵呵,欢迎!!!


--  作者:wyn422
--  发布时间:8/11/2005 6:01:00 PM

--  
以下是引用iamwym在2005-8-11 4:51:02的发言:
1.建议看documentation,api应该是有method的。
2.这个我不是很肯定,但按照一般的传统,应该是树。
3.Ian的意思恐怕是现在的reasoner还不支持这一点,所以要加基于模糊逻辑的推理扩展,目前应该有没有具体实现。下手点可以用基于fuzzy logic的推理器实现。现在感觉热点在非单调逻辑和时序逻辑上,基于模糊逻辑的实现还没有很提上日程。

summer school,上个月Dresden那个?



多谢!
我这个project就是要把FuzzyOwl转换成ClassicalDL。

是在Dresden的summer school。

另:Axiom 是否就是指TBox Axiom和ABox Axiom?


[此贴子已经被作者于2005-8-11 20:52:43编辑过]

--  作者:iamwym
--  发布时间:8/13/2005 5:37:00 AM

--  
是楼上朋友的所在的组比较关心fuzzy logic
那应该是在德国了,哪个部分,很可能我以后也在德国,呵呵。
是tbox了。
--  作者:wyn422
--  发布时间:8/15/2005 3:23:00 AM

--  
多谢!
在Dresden CL
--  作者:Ambrosia
--  发布时间:4/23/2006 10:48:00 AM

--  
这是早前几个牛人的讨论,又被我翻出来了,呵呵。想问几个问题:

1 在我个人所作的实验中,确实实现了对个体的推理,当然需要加入扩展规则。为什么大家说对individual instance 的推理无法实现。

2 个人认为reasoner可以对某些数据库进行访问,如三元组库。

3 在这几个professional reasoner 中加入扩展规则和在jena中加入扩展规则有什么区别,需要注意什么?

谢谢!


--  作者:iamwym
--  发布时间:4/24/2006 4:08:00 AM

--  
1.对于大的instance集合,效率很低,而且是把 individual当作class处理的。
2.确实可以,但是功能也非常有限。
3.jena推理能力因该不强,也不完全,不过本人没有经过测试,因为没有人把jena当作reasoner。对于规则的支持,其实并步复杂,所以我猜测他们实现机制类似
--  作者:Ambrosia
--  发布时间:4/24/2006 9:31:00 AM

--  
谢谢版版!看来版版的研究深入且实事求是。对德国学术的研究态度我一向都很敬佩,觉得他们总是言之有物。希望版版学业有成,早日回来报效祖国,呵呵
--  作者:可乐加烟
--  发布时间:5/24/2006 2:14:00 AM

--  
求救一个菜鸟问题。。。
(莫取笑。。。赶毕业设计,时间无多,英文又差,希望能说详细点)
问题:首先我建立了一个WEB服务(非语义网的)(基于JAVA和COMCAT),安全隐私本体
         其次我在客户端通过建立 URL Connection 把 安全隐私本体客户端 发送给服务器,服务器通过Servlet接收。
         第三在Servlet里调用推理机的API,对安全隐私本体客户端和已存在服务端的安全隐私本体服务端进行匹配。
        我要怎么样调用RACER的API?怎么样进行匹配? 用什么函数调用?       



--  作者:bjutcs
--  发布时间:5/31/2006 9:53:00 PM

--  
还是先直接用jena的API方便些
--  作者:kolapig
--  发布时间:6/2/2006 4:59:00 AM

--  
DL 2006 有一篇文章, Automeated Benchmarking of Desription Logic, 比较了不同reasoner 的一些特性,目前没有哪个reasoning 是最好的,只有最适合的,现在网上还没有,很关心的朋友,等一段时间估计就会有了。
--  作者:iamwym
--  发布时间:6/3/2006 12:40:00 AM

--  
简单概括一下好了
易用,入门简单:racerpro
适合dl学习研究:pellet, fact++
适合开发者:kaon2, pellet
适合大abox:kaon2
--  作者:baojie
--  发布时间:6/3/2006 7:17:00 AM

--  
DDL做ABox推理也是用ABox转化为TBox来做的. 估计性能也不会太好

L. Serafini and A. Tamilin. Distributed instance retrieval in heterogeneous
ontologies. In Proceedings of SWAP 2005, CEUR Workshop Vol
166, 2005.
http://dit.unitn.it/~tamilin/publications/swap05/paper.pdf


--  作者:iamwym
--  发布时间:6/4/2006 11:00:00 PM

--  
个人观点,tableaux并不是解决abox的一个办法
--  作者:hunterdong
--  发布时间:11/14/2007 7:28:00 AM

--  有收获
看得虽然迷糊但是还是有点收获。。 第2/3遍看到这个主题了。

我试着用Protege里面的Infer来调Racer推为何总是不能结束?要很长时间么?pizza这样的小文件也不行

看racer的说明这样应该可以the inferred types are computed for the individuals。。不理解

man的OWLAPI好用么?

那天上网查东西看见Ian跳槽去牛津了?kolapig用不用跟着跳槽呢?赫赫


--  作者:vivalz
--  发布时间:1/25/2008 5:13:00 AM

--  
看了大家的讨论。。有点想法。。正好本人的硕士论坛就是这个。。比较评测一下fact racer kaon。不过我还是个新手。很多知识点相互关系还没有弄清楚。。看来是需要再实际操作一下。。。
--  作者:wolfel
--  发布时间:1/29/2008 1:22:00 AM

--  
KONE2 应该不是基于tableaux吧,我印象里是把DL转化为逻辑程序以后用了逻辑程序的推理算法,使用了一种hyper-resolution的方式做了一个等价转换。Boris Motik的主要贡献就在于解决了含有大量individual的大ABOX的高效推理问题


--  作者:wei214Ning
--  发布时间:2/12/2008 3:19:00 PM

--  
I am using the Pellet
--  作者:myl
--  发布时间:2/15/2008 2:26:00 PM

--  
我现在就jena和kaon2谈谈自己的体会。我使用jena进行语义web编程有4年的历史了。:)我一直都比较满意jena的可编程应用开发模式:首先写你的具体论域owl本体,然后装入生成本体模型(当然一些领域规则也可以通过jena 的语义模型提供的api直接写出规则),最后加载推理器产生推理语义模型,并用rdql类似的查询语言执行基于推理语义模型的语义查询。但是,令我头痛的是,jena存储是基于内存的,也就是说,处理大规模的数据总是有问题。举个例子,如果把food.owl本体装入jena,那么你就不会得到任何推理模型,更不用说语义查询了。系统会崩溃!于是,我换用kaon2,至少处理这个本体,kaon2是非常令我满意的。只是需要几秒钟。然而,kaon2也有一些令人不快的记忆,你无法使用kaon2随心所欲的进行你需要的查询,你只能查找实例,这是因为它是基于abox的推理方式,之所以kaon2能够很快的装载并进行推理这是因为它执行了与jena不同的推理方式,不会产生以指数级增长的推理信息。
--  作者:hyue2009
--  发布时间:4/19/2008 9:47:00 PM

--  
刚刚接触这方面的知识,还望各位高手多多指点。
--  作者:fsfhappy
--  发布时间:2/1/2010 5:23:00 PM

--  
很是受用啊

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
189.453ms