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

    >> 本版讨论Semantic Web(语义Web,语义网或语义万维网, Web 3.0)及相关理论,如:Ontology(本体,本体论), OWL(Web Ontology Langauge,Web本体语言), Description Logic(DL, 描述逻辑),RDFa,Ontology Engineering等。
    [返回] 计算机科学论坛W3CHINA.ORG讨论区 - Web新技术讨论『 Semantic Web(语义Web)/描述逻辑/本体 』 → 有关用java程序创建本体的一些问题。各位研究的前辈请进,给一些指点。 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 4335 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 有关用java程序创建本体的一些问题。各位研究的前辈请进,给一些指点。 举报  打印  推荐  IE收藏夹 
       本主题类别: Ontology Language    
     luqiaofn 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:13
      积分:97
      门派:XML.ORG.CN
      注册:2009/5/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给luqiaofn发送一个短消息 把luqiaofn加入好友 查看luqiaofn的个人资料 搜索luqiaofn在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看luqiaofn的博客楼主
    发贴心情 有关用java程序创建本体的一些问题。各位研究的前辈请进,给一些指点。

    小弟刚刚开始接触本体这方面的工作,正在熟悉protege-owl API,OWL API和jena,打算用从数据库中抽取信息,然后用程序生成本体。但是在编程的过程中遇到了一些问题,解决不了,发上来请各位前辈指点。

    小弟的想法是先用OWL API生成一个本体框架(只包含一些基本信息),不过在打算将类、属性、实例、关系这些信息写入本体的时候,在OWL API里没有发现将这些信息写入本体的方法。因为OWL API的实例代码太少,有可能小弟水平太低,没有发现这些方法。希望各位前辈指点,如果有这些方法的话,告诉小弟应该怎么用。

    查看protege-owl API的编程指南中,有将类、属性、实例、关系这些信息写入本体的方法,不过小弟在运行一些实例代码的时候(比如owlModel.save(new File(...).toURI(), FileUtils.langXMLAbbrev, errors);),这条程序一直存在问题。

    是不是在编程过程中用一个API(protege-owl API或OWL API其中的一个)就完全可以做出来了?

    不知道小弟的想法有没有什么不对的地方,请已经做过这方面工作的高手指点一下,您当时通过JAVA程序生成本体的时候主要是用的哪个API(关键是将类、属性、实例、关系这些信息写入本体用的是哪个API)?具体流程是怎么样的?

    欢迎各位前辈留下联系方式,以方便向您请教!谢谢。

    小弟是新手,希望各位前辈不吝赐教!


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/22 20:05:00
     
     tonny_hw@163.com 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:17
      积分:127
      门派:XML.ORG.CN
      注册:2008/7/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给tonny_hw@163.com发送一个短消息 把tonny_hw@163.com加入好友 查看tonny_hw@163.com的个人资料 搜索tonny_hw@163.com在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看tonny_hw@163.com的博客2
    发贴心情 
    很关注这个本体编程的问题,同问
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/23 20:49:00
     
     yayatu 美女呀,离线,快来找我吧!双子座1981-6-1
      
      
      
      威望:1
      等级:大三暑假(2个月背完了红宝书)(贵宾)
      文章:134
      积分:965
      门派:XML.ORG.CN
      注册:2004/7/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给yayatu发送一个短消息 把yayatu加入好友 查看yayatu的个人资料 搜索yayatu在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看yayatu的博客3
    发贴心情 

      LZ, 我的一下下建议就是先尝试用protege-owl api。

      资源实在很多,http://protege.stanford.edu/plugins/owl/api/guide.html

      你想往本例里面写入各种信息都对应了相应的API。在此简单列举

       关于类的:

         OWLNamedClass personClass = owlModel.createOWLNamedClass("Person");

        // Create subclass (complicated version)
        OWLNamedClass brotherClass = owlModel.createOWLNamedClass("Brother");
        brotherClass.addSuperclass(personClass);
        brotherClass.removeSuperclass(owlModel.getOWLThingClass());

       关于个体的:

        OWLIndividual individual = brotherClass.createOWLIndividual("Hans");
        Collection brothers = brotherClass.getInstances(false);
        assert (brothers.contains(hans));
        assert (brothers.size() == 1);

      关于数值属性:
        OWLDatatypeProperty property = owlModel.createOWLDatatypeProperty("name");
        name.setRange(owlModel.getXSDstring());
       

      关于对象属性

       OWLObjectProperty ancestorProperty = owlModel.createOWLObjectProperty("ancestor");
        ancestorProperty.setRange(personClass);
        ancestorProperty.setTransitive(true);


       关于写回:

         String uri = "http://protege.cim3.net/file/pub/ontologies/travel/travel.owl";
        //alternatively, you can specify a local path on your computer
        //for the travel.owl ontology. Example:
        //String uri = "file:///c:/Work/Projects/travel.owl"
        JenaOWLModel owlModel = ProtegeOWL.createJenaOWLModelFromURI(uri);

        OWLNamedClass destinationClass = owlModel.getOWLNamedClass("Destination");
        // ...

        String fileName = "travel-saved.owl";
        Collection errors = new ArrayList();
        owlModel.save(new File(fileName).toURI(), FileUtils.langXMLAbbrev, errors);
        System.out.println("File saved with " + errors.size() + " errors.");

       (JenaOWLModel 是OWLModel的子类)

        这些都是从guide里面截取下来的。LZ 请详细参见那个guide,至少从里面,你想做的都有了。

    ----------------------------------------------
    研究描述逻辑,努力中……

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/24 17:34:00
     
     luqiaofn 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:13
      积分:97
      门派:XML.ORG.CN
      注册:2009/5/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给luqiaofn发送一个短消息 把luqiaofn加入好友 查看luqiaofn的个人资料 搜索luqiaofn在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看luqiaofn的博客4
    发贴心情 
    谢谢yayatu的回复。

    不过好像用protege-owl API不能不依靠URI而直接建立一个只有基本信息的“空本体”吧?就像OWL API一样。

    我现在是打算先生成一个“空本体”框架,然后再一点一点把信息写进去。如果用已有的URI建立一个本体,里面应该有一些类、属性、实例的信息吧?

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/25 12:34:00
     
     yayatu 美女呀,离线,快来找我吧!双子座1981-6-1
      
      
      
      威望:1
      等级:大三暑假(2个月背完了红宝书)(贵宾)
      文章:134
      积分:965
      门派:XML.ORG.CN
      注册:2004/7/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给yayatu发送一个短消息 把yayatu加入好友 查看yayatu的个人资料 搜索yayatu在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看yayatu的博客5
    发贴心情 
    OWLModel owlModel = ProtegeOWL.createJenaOWLModel();

      这个就是你所说的“空本体”。呵呵。然后你可以在里面添加类,实例,和属性,那么这些资源的URI就和这个本体的uri是一致的。当然了,这个uri就是在生成model的时候自己生成的,不是你制定的。

    ----------------------------------------------
    研究描述逻辑,努力中……

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/25 14:39:00
     
     luqiaofn 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:13
      积分:97
      门派:XML.ORG.CN
      注册:2009/5/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给luqiaofn发送一个短消息 把luqiaofn加入好友 查看luqiaofn的个人资料 搜索luqiaofn在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看luqiaofn的博客6
    发贴心情 
    再次谢谢yayatu的回复。

    我先编程试一下,如果有问题再问各位前辈!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/25 16:05:00
     
     Humphrey 帅哥哟,离线,有人找我吗?狮子座1981-7-23
      
      
      威望:1
      等级:研二(搞定了DL,再搞定F-Logic!)
      文章:937
      积分:5743
      门派:W3CHINA.ORG
      注册:2008/3/12

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Humphrey发送一个短消息 把Humphrey加入好友 查看Humphrey的个人资料 搜索Humphrey在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看Humphrey的博客7
    发贴心情 
    建立空本体实质就是建立一个符合特定格式的数据存储框架吧?
    不过如果不能对内部的数据进行自动填充,而是采用传统的手工编辑方式,岂不是失去了创建框架的意义。更重要的问题应该是本体数据的填充吧。

    ----------------------------------------------
    鸿丰

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/25 16:13:00
     
     GoogleAdSense狮子座1981-7-23
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/10/2 6:09:11

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

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