新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国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等。
    [返回] 中文XML论坛 - 专业的XML技术讨论区W3CHINA.ORG讨论区 - Web新技术讨论『 Semantic Web(语义Web)/描述逻辑/本体 』 → [原创]如何用Jena创建一个完整的OWL文件? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 13343 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [原创]如何用Jena创建一个完整的OWL文件? 举报  打印  推荐  IE收藏夹 
       本主题类别: Ontology Language | RDF/RDFS    
     liych05 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:4
      积分:63
      门派:XML.ORG.CN
      注册:2009/4/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给liych05发送一个短消息 把liych05加入好友 查看liych05的个人资料 搜索liych05在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看liych05的博客楼主
    发贴心情 [原创]如何用Jena创建一个完整的OWL文件?

    一个完整的OWL文件包含以下几部分:
    1、<?xml version="1.0"?>
    2、<!DOCTYPE rdf:RDF [
        <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
        <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
        <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#" >
        <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
        <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
      .....
    ]>这一部分也可以没有

    3、正文部分
    <rdf:RDF
        xmlns:rdf="&rdf;"
        xmlns:owl="&owl;"
        xmlns:xsd="&xsd;"
        xmlns:rdfs="&rdfs;"
        xml:base="http://example.org.cn/" >
    ...................
    </rdf:RDF>

    可是当我们用OntModel对象来实现的时候,最后生成的文件只有第三3(正文部分)。程序如下:
    OntModel ont = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, null);
    FileOutputStream out1 = new FileOutputStream("./foo.owl");
    ont.write(out1,"RDF/XML","http://example");

    生成的foo.owl文件如下:
    <rdf:RDF
        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns:owl="http://www.w3.org/2002/07/owl#"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
        xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" >
    </rdf:RDF>

    由上看,Model的write方法是没有办法设置第1部分(xml编码格式)和第2部分。而且,xml:base属性在OntModel中是无法设置的。setNsPrefix只能设置xmlns下的属性。

    但是RDFWriter类却可以做这样的工作。
    OntModel marray = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, null);
    RDFWriter rdfwriter = marray.getWriter();
    rdfwriter.setProperty("showXmlDeclaration","true");
    rdfwriter.setProperty("showDoctypeDeclaration","true");
    rdfwriter.setProperty("xmlbase","http://example.org.cn/");
    FileOutputStream out1 = new FileOutputStream("./foo.owl");
    rdfwriter.write(marray, out1, "http://example.org/");

    最后生成的foo.owl文件如下:
    <?xml version="1.0"?>
    <!DOCTYPE rdf:RDF [
      <!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
      <!ENTITY xsd 'http://www.w3.org/2001/XMLSchema#'>
      <!ENTITY owl 'http://www.w3.org/2002/07/owl#'>
      <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>]>
    <rdf:RDF
        xmlns:rdf="&rdf;"
        xmlns:owl="&owl;"
        xmlns:xsd="&xsd;"
        xmlns:rdfs="&rdfs;"
        xml:base="http://example.org.cn/" >
    </rdf:RDF>

    但是,根据jena的文档说明,我原以为,rdfwriter.write(marray,out1, "http://example.org/"); 执行之后,会将rdfwriter所设置的所有信息都保存到OntModel对象marray中去,可是没有。当我将marray直接输出到一个本体文件中去时发现,rdfwriter好像什么也没有做过一样。我才发现OntModel始终只是一个本体模型,除了描述本体的信息,再不包含多余信息。

    求救,我想用jena创建一个完整的owl文件,应该如何做?该owl文件包括xml编码说明,包括DOCTYPE声明,包括xml:base属性设置。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/5/4 13:05:00
     
     风余 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:19
      积分:134
      门派:XML.ORG.CN
      注册:2010/10/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给风余发送一个短消息 把风余加入好友 查看风余的个人资料 搜索风余在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看风余的博客2
    发贴心情 
    同问输出owl
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2011/8/27 12:00:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/21 23:03:36

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

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