新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> Web服务(Web Services,WS), 语义Web服务(Semantic Web Services, SWS)讨论区: WSDL, SOAP, UDDI, DAML-S, OWL-S, SWSF, SWSL, WSMO, WSML,BPEL, BPEL4WS, WSFL, WS-*,REST, PSL, Pi-calculus(Pi演算), Petri-net,WSRF,
    [返回] 计算机科学论坛W3CHINA.ORG讨论区 - Web新技术讨论『 Web Services & Semantic Web Services 』 → [原创] 解决Protege使用中的一个问题:从已有owl文件建立项目失败 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 8780 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [原创] 解决Protege使用中的一个问题:从已有owl文件建立项目失败 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     feifeifly 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:38
      积分:377
      门派:XML.ORG.CN
      注册:2005/11/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给feifeifly发送一个短消息 把feifeifly加入好友 查看feifeifly的个人资料 搜索feifeifly在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看feifeifly的博客楼主
    发贴心情 [原创] 解决Protege使用中的一个问题:从已有owl文件建立项目失败

    [原创] 解决Protege使用中的一个问题:从已有owl文件建立项目失败

    相信很多人有这样的经历:从一个已经存在的owl文件建立protege项目,总是不能成功,报如下的错误:
    java.lang.ClassCastException 或者java.lang.nullPointer
    at....后面一大堆java异常,都是protege或jena抛出的异常。

    由于protege的抱错机制很糟糕,我们几乎不可能从中看出任何有价值的信息,帮助我们判断到底是owl文件中的什么地方有问题。

    这个问题我到网上搜了很长时间,发现从2004年就不断有人问,可是却没有正点的回答。只好痛苦的反复尝试和思考,总算皇天不负苦心人,真的让我捉到了线索,解决了这个问题,从中也小有收获,写来用大家共享。

    我所需要导入的是一个描述web service的owl文件,就是用protege的owls插件自动的从wsdl中转化生成的那个owl文件。显然,这个文件要用到owls的四个upper本体,还要用到swrl的本体。这一点从名字空间部分就可以看出:
    <rdf:RDF
        xmlns:process="http://www.daml.org/services/owl-s/1.1/Process.owl#"
        xmlns:list="http://www.daml.org/services/owl-s/1.1/generic/ObjectList.owl#"
        xmlns:swrl="http://www.w3.org/2003/11/swrl#"
        xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
        xmlns:owl="http://www.w3.org/2002/07/owl#"
        xmlns:expression="http://www.daml.org/services/owl-s/1.1/generic/Expression.owl#"
        xmlns:service="http://www.daml.org/services/owl-s/1.1/Service.owl#"
        xmlns:grounding="http://www.daml.org/services/owl-s/1.1/Grounding.owl#"
        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
        xmlns="http://192.168.0.102:8080/axis/owl-s/getConcept.owl#"
        xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:profile="http://www.daml.org/services/owl-s/1.1/Profile.owl#"
      xml:base="http://192.168.0.102:8080/axis/owl-s/getConcept.owl#">

    当我用这个owl文件建立protege项目时,就遇到了上面的问题。最后,我在名字空间后面的本体导入部分加了这样的一段话,问题就解决了:
    <owl:Ontology rdf:about="">
      <owl:imports rdf:resource="http://www.daml.org/services/owl-s/1.1/Grounding.owl" />
      <owl:imports rdf:resource="http://www.daml.org/rules/proposal/swrlb.owl" />
      <owl:imports rdf:resource="http://www.daml.org/rules/proposal/swrl.owl" />
      <owl:imports rdf:resource="http://www.daml.org/services/owl-s/1.1/Profile.owl" />
      </owl:Ontology>

    为什么呢?这要从protege的实现机制说起。显然,protege首先要根据owl文件在内存中生成OntoModel,那么,这个OntoModel中到底包含哪些资源(类/属性/实例等)呢?显然,这个owl文件中定义的会包含进来。此外,这个owl文件会依赖一些外部的资源,例如,我定义了Service的实例myService,可是Service类确是在owls upper本体中定义的。因此,必须通过最开始的imports语句显式的高速Protege,你要把需要的本体中的资源也导入到OntoModel中。否则,大家可以想像,protege需要建立一个service的实例,但是,却不能在OntoModel中找到Service类,那肯定是会出错的嘛!

    通常的一个误解是:既然声明了名字空间,难道protege不能自动找到外部资源吗?答案是否定的!名字空间仅仅是用来和短名合在一起,表示资源的URi(也是全局唯一名字),并不会起到警告Protege在OntoModel中导入相应资源的作用。

    在上面的例子中,大家可能还会有疑问:为什么只imports了Profile和Grounding,而没有Service和Process呢?答案在于在Profile中,显式的imports了后面二者。于是,imports的关系就传递了下去。

    还有一个问题是:问什么owls插件自动生成的owl文件会有这个问题呢?这是因为这个软件的设计者假设这个owl文件总是作为一个被导入的本体与你的工作owl文件协作的。而在后者中,肯定会导入需要的owls upper本体。正是因为有太多这样的假设,才造成了当前语义web工具之间的兼容性非常不好,给使用者(尤其是初学者)造成了很大不便。

    希望这个帖子能给大家一些帮助。此外,大家如果真的要用Protege的话(好像目前这是最好的选择,尽管它有很多缺点),还是要好好搞清楚它的一些特点,否则,的确是很郁闷的。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/24 14:21:00
     
     MerryZhang 美女呀,离线,快来找我吧!
      
      
      威望:4
      头衔:CTO
      等级:计算机学士学位
      文章:442
      积分:2808
      门派:W3CHINA.ORG
      注册:2006/1/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给MerryZhang发送一个短消息 把MerryZhang加入好友 查看MerryZhang的个人资料 搜索MerryZhang在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看MerryZhang的博客2
    发贴心情 
    很不错,继续努力!
    在OWL文件进行资源的Import的确是非常烦人的事情,很多的时候,报错都是因为找不到Import的路径才出现的。

    ----------------------------------------------
    那一段我们曾心贴着心,我想我更有权力关心你,可能你已走进别人风景,多希望也有星光的投影.努力为你改变,却变不了预留的伏笔.以为在你身边那也算永远
    仿佛还是昨天,可是昨天已非常遥远,但闭上双眼我还看得见.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/24 16:35:00
     
     zhoulumei007 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:15
      积分:173
      门派:XML.ORG.CN
      注册:2006/3/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zhoulumei007发送一个短消息 把zhoulumei007加入好友 查看zhoulumei007的个人资料 搜索zhoulumei007在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看zhoulumei007的博客3
    发贴心情 
    楼主 我在导入网上的owl文件时候总是遇到这样的问题,我的网络连接是正常的.
    http://www.daml.org/services/owl-s/1.1/examples.html  即OWL-S 1.1 Release: Examples中的Bravo Air (fictitious airline site) 几个.owl和.wsdl 我导入的时候都是connect out 想问下你能导入吗
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/25 9:38:00
     
     feifeifly 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:38
      积分:377
      门派:XML.ORG.CN
      注册:2005/11/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给feifeifly发送一个短消息 把feifeifly加入好友 查看feifeifly的个人资料 搜索feifeifly在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看feifeifly的博客4
    发贴心情 
    能说得具体一点吗?你说得导入是指在Protege下用这些owl文件建立工程吗?如果是这样,wsdl导入又是什么意思?还是说用protege owls插件中的wsdl导入按钮?

    这些例子中的好多我实验过,好像很多是可以的,只有个别的有问题。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/25 13:43:00
     
     zhoulumei007 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:15
      积分:173
      门派:XML.ORG.CN
      注册:2006/3/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zhoulumei007发送一个短消息 把zhoulumei007加入好友 查看zhoulumei007的个人资料 搜索zhoulumei007在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看zhoulumei007的博客5
    发贴心情 
    在用用protege owls插件中的wsdl导入按钮时connect out ,我的网络连接是通的
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/9/6 11:05:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Web Services & Semantic Web Services 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/6/22 10:11:59

    本主题贴数5,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms