以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 Semantic Web(语义Web)/描述逻辑/本体 』 (http://bbs.xml.org.cn/list.asp?boardid=2) ---- Jena Ontology API学习帖,问题帖[讨论] (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=73423) |
-- 作者:csjcg2 -- 发布时间:3/23/2009 5:58:00 PM -- Jena Ontology API学习帖,问题帖[讨论] 最近在学习Jena Ontology API,由于参考资料不多,所以经常遇到问题无法解决。发这条贴子,跟大家讨论一下,希望高手能指点一二。 问题: 用protege建模,生成了一个owl Project(包含project文件和owl文件等),然后用Jena API来读取owl文件,并存入数据库。最后用Jena API的OntModel.listClasses把数据库里面的类读出来,不知道是不是因为本体库太大(有600多个concept),每次用Testcase测试的时候,都会报错: 如果我不是读取用protege建立的owl文件,而是用Jena example里面的test1.owl,就没有问题。不知道有没有人遇到过类似的问题,如果有,请指教一下。谢谢。 |
-- 作者:jpz6311whu -- 发布时间:3/23/2009 7:11:00 PM -- 推理的OntModel不适合存储在数据库中,我曾经也遇到这种情况,要么把本体库改成不推理模式,要么不存储到数据库中。 |
-- 作者:csjcg2 -- 发布时间:3/23/2009 9:05:00 PM -- 你的意思是如果需要推理的话,就不要用数据库存储本体? 难道直接从owl文件读取的OntModel处理推理速度会更快? --------------------------------------------------------------------------- 刚刚我提的错误已经解决,原因估计是频繁操作数据库导致内存中有大量的废弃对象,垃圾回收大量占用系统CPU。(好像是这样,超过98%就会报错,具体可以去查查有关垃圾收集机制)解决方法是:将jvm的参数修改一下 -xmx512m。但是虽然最终还是可以绿色通过,但是总耗时5分钟左右。 |
-- 作者:jpz6311whu -- 发布时间:3/23/2009 9:42:00 PM --
是的,我以前也是遇到同样的情况,CPU满负荷运行过30分钟还没有完成,实在不得不放弃,处理的OWL大概几万triple的样子 |
-- 作者:csjcg2 -- 发布时间:3/23/2009 10:08:00 PM -- 兄弟,你是对的。用数据库存储果然是比文件存储慢(在使用推理的情况下) 我使用的都是Jena提供的推理器。 推理器有三种 RDFS_INF TRANS_INF RULE_INF (当然还有一种就是没有推理器啦) 实验结果是用TRANS_INF的速度是最快的。 对OntModel的listSubClasses()这个方法而言的。 在文件读取OWL数据,TRANS_INF的推理器的设置下OntModel m = ModelFacotry.createOntModel(OntModelSpec.OWL_DL_MEM_TRANS_INF) 文件里大约有600多个概念。还有100左右的子类声明。 有人用过Racer的推理机吗?如果用Racer,会不会比Jena自带的rule推理机还慢啊。。。 最后唉叹一下,这语义网搜索的速度也太慢了吧。。。。。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |