八进制

少年壮志无烟抽

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  232 随笔 :: 0 文章 :: 3015 评论 :: 11 Trackbacks

临近期末,我有一门课程的期末项目是做一个教育领域的本体应用系统,所以最近经常思考本体在这样一个系统中所起的作用,以及该如何实现。(本体是否只能在web环境下发挥作用,使用本体描述一个独立系统的模型是否值得?)

假设要做的是选课系统,很容易看出系统里应该有这些对象:课程、学生、教师,它们之间互有联系。现在的问题是,本体、Java类和数据库各扮演怎样的角色?我目前想到的方法有以下几个:

  1. 在本体(owl)里建立这些类和关系,在Java里建立同样的Bean类,运行时系统把本体里的individuals转换为Java类的实例,也就是在内存里得到一个Java实例的集合,选课的各种操作就是对这个集合的修改,退出系统时再进行反向转换,把修改反映到本体里。在这样的实现方法中,本体实际上扮演了数据库的角色,所以当数据(individuals)很多的时候,效率会很成问题。(Protege的owl编辑工具提供了从本体生成EMF模型代码的功能,虽然目前还是alpha版,这也许将成为同步两种模型的不错选择。)

  2. 对上面的方法进行修改,让本体不保存individuals,对Java实例集合的修改最终反映到关系数据库里(利用hibernate不会很困难),运行时系统直接从数据库里取得数据转换为Java实例。这样的实现可以解决效率问题,但和传统应用区别不大,本体的作用几乎为零。

  3. 另一种比较极端的做法是只用本体维护类和individuals,Java方面没有任何与应用有关的模型,系统一开始把本体读入内存以rdf图的方式存在,选课操作转换为对此图的修改(利用Jena等API)。这个方法存在两个问题,一是效率,二是Java代码的可读性下降,这就相当于直接使用JDBC而不是hibernate对数据库操作的区别。

在solo项目里我使用的是第一种方式,各方面效果还可以接受,但本体的作用发挥得很不够。这是很重要的方面,因为如果和传统项目没有区别,辛辛苦苦引入本体又是为了什么,特别是对本体推理的功能,我想最关键的问题还是要找出最适合应用的本体,定义本体的确是一门学问。

Update:IBM Alphaworks也提供了一组本体工具(包括Orient、EODM和RStar),对EMF的支持应该不错。今天初步试了一下Orient,它只支持RDF(S),而不支持OWL,所以无法满足课程项目的要求,Orient的目前版本还有一些小bug,除已知的那些以外,我把.ontology文件输出为ecore模型总是不成功,而输出为rdf是可以的。

Update:推荐一个关于本体和模型驱动的幻灯片,主要内容是介绍应该如何利用UML的可视化编辑功能和元模型的扩展功能来构造本体,这里面介绍了相当多的相关概念(其中很多我甚至没听说过),以及它们出现的原因,比较有利于我们理清思路。

posted on 2005-06-05 12:31 八进制 阅读(3993) 评论(12)  编辑 收藏 所属分类: Web服务/语义Web

评论

#1楼  2005-06-17 20:32 BEAR [未注册用户]
为什么不用一用Jena呢?
  回复  引用    

#2楼  2005-07-12 12:57 yy [未注册用户]
EODM 的新版本很快就要发布了,这些bug都会被修正
  回复  引用    

#3楼  2005-09-15 15:40 wangg_sw [未注册用户]
那位能够举例告诉我jena 2.1的使用方法!谢谢.我的地址是:wangg_sw@yahoo.com.cn,谢谢!
  回复  引用    

#4楼  2005-09-15 20:13 yes [未注册用户]
jena的doc里面有些例子,你可以看看,其实jena编程都是从那些例子上发展起来的
  回复  引用    

#5楼 [楼主] 2005-09-15 20:32 八进制      
对,jena的文档做得不错,我最早接触rdf就是从它的介绍开始的。
  回复  引用  查看    

#6楼  2005-09-19 20:42 yes [未注册用户]
如果我用eclipse做了一个插件,现在我想让这个插件独立于eclipse运行(即在不打开eclipse的情况下也能运行这个插件),请问有什么办法吗?如果有这方面的教程或资料,请告知,谢谢!
  回复  引用    

#7楼 [楼主] 2005-09-19 20:49 八进制      
如果你的插件是插在workbench上的(例如用了view或editor),则运行时必须eclipse平台,rcp提供了最精简的运行平台。如果没有对eclipse平台的依赖,比如只是单纯的swt应用程序,只要提供需要的dll就可以单独运行。
  回复  引用  查看    

#8楼  2005-09-20 16:58 yes [未注册用户]
我做的这个插件是基于GEF的,现在已经基本完成了.如果我把它改成rcp,是不是要添加很多代码呢?还是改一下设置文件就可以了?
  回复  引用    

#9楼 [楼主] 2005-09-20 21:48 八进制      
代码是要写一些的,不多。
  回复  引用  查看    

#10楼  2005-10-18 20:12 timshaw [未注册用户]
我想问一下,你说的本体应用系统是不是就是那种各种对象之间存在关系,然后他们组成一个对象网.虽然这些对象分布在不同的位置中,但是我们依然能方便的根据这种关系在整个对象网络中遍历?
我最近弄Web服务论文的时候,不经意间弄出了一个东西,只要我们事先指定这个遍历顺序,系统便可以自动多次导航。
就像我们浏览网页的时候,心理想的是看sina的体育新闻中有关李毅的一篇新闻。
但我们真正要这样去做的动作有打开sina首页,然后点击到sport页面最后挑到写李毅的那篇文章。整个动作都需要我们去点击鼠标。
但是现在我实现的这个系统,除了开头输入数据,整个过程完全不需要人的动作,
系统自动会找出这篇文章然后返回给用户。

我是研究Web服务的,对语义Web没看多少。我想问一下这样的东西有价值吗?
你可以写信和我联系,lxf_manning@163.com
或者和我QQ:84539606 请说明是讨论语义web的。
谢谢
  回复  引用    

#11楼  2008-01-09 17:22 shenzw [未注册用户]
请问你认为本体在你那个系统里会发挥什么作用?应用本体有价值吗?用其它方法会不会解决的更好呢 ?
  回复  引用    

#12楼 [楼主] 2008-01-15 12:08 八进制      
在这个项目里基本当作数据库来用,所以作用不大。
  回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  博客园首页

  新闻频道

  社区

  小组

  博问

  网摘

  闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-06-05 23:21 编辑过
成果网帮您增加网站收入


相关链接: