新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国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加载含中文的本体文件乱码问题的一个解决办法 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 29059 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: jena加载含中文的本体文件乱码问题的一个解决办法 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     jiexincao 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      等级:计算机学士学位
      文章:394
      积分:2379
      门派:XML.ORG.CN
      注册:2005/1/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jiexincao发送一个短消息 把jiexincao加入好友 查看jiexincao的个人资料 搜索jiexincao在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jiexincao的博客楼主
    发贴心情 jena加载含中文的本体文件乱码问题的一个解决办法

    以前一直有人问jena读入本体的乱码问题,似乎版上还没有明确的写出解决方法。下面是我解决这个问题的代码片断:

    FileInputStream file = new FileInputStream("test.owl");
    InputStreamReader in = new InputStreamReader(file, "UTF-8");
    Model model = ModelFactory.createDefaultModel();
    model.read(in, null);
    in.close();

    究其原因应该是文件中的编码为unicode,java默认的编码是gb2312(当然是指我们的简体中文版操作系统),所以读入文件的时候指定编码就可以了。

    另外一种解决方法是在protege的菜单code中选择show RDF/OWL source code,然后把这些code贴到一个文件(test.owl)中,然后使用一般的方法就可以读了,示例代码如下:

    BufferedReader in=new BufferedReader(new FileReader("test.owl"));
    Model model = ModelFactory.createDefaultModel();
    model.read(in, null);
    in.close();

    不过这个方法有点“丑陋”——汉字在文件中全部变成其对应的unicode编码,只能通过程序读了。所以建议直接使用上面一种。

    如果有其他什么解决方法,建议大家也贴上来。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/27 21:46:00
     
     badguy_tj 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(Java考了96分!)
      文章:55
      积分:316
      门派:W3CHINA.ORG
      注册:2005/5/12

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

    ----------------------------------------------
    不是因为有些事情难以做到,我们才失去自信的;而是因为我们失去自信,有些事情才显得难以做到。 ======================== * * 自信、进取、独立 * * ========================

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/28 9:48:00
     
     happy++ 帅哥哟,离线,有人找我吗?魔羯座1982-12-22
      
      
      等级:大二期末(C++考了100分!)
      文章:65
      积分:312
      门派:XML.ORG.CN
      注册:2005/11/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给happy++发送一个短消息 把happy++加入好友 查看happy++的个人资料 搜索happy++在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看happy++的博客3
    发贴心情 
    支持
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/28 12:03:00
     
     wyf_aaa 美女呀,离线,快来找我吧!
      
      
      等级:大一(高数修炼中)
      文章:31
      积分:180
      门派:XML.ORG.CN
      注册:2006/3/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wyf_aaa发送一个短消息 把wyf_aaa加入好友 查看wyf_aaa的个人资料 搜索wyf_aaa在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看wyf_aaa的博客4
    发贴心情 
    不错!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/28 15:00:00
     
     Green_blue 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:37
      积分:224
      门派:XML.ORG.CN
      注册:2006/5/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Green_blue发送一个短消息 把Green_blue加入好友 查看Green_blue的个人资料 搜索Green_blue在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看Green_blue的博客5
    发贴心情 
    我用了你的第一个方法怎么不啊, 还是有错误, 操作系统是windows Server 2003,开发环境是Eclipse,是什么原因?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/15 20:58:00
     
     Green_blue 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:37
      积分:224
      门派:XML.ORG.CN
      注册:2006/5/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Green_blue发送一个短消息 把Green_blue加入好友 查看Green_blue的个人资料 搜索Green_blue在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看Green_blue的博客6
    发贴心情 
    出现的错误:
    WARN [main] (RDFDefaultErrorHandler.java:36) - file:///F:/yyx/%E7%A8%8B%E5%BA%8F/mddm_rdfstore_db/(line 7 column 43): {W124} Non-ascii characters in a namespace URI may not be completely portable: <http://example.org/schemas/tongxin/schemas/???#>. Resulting RDF URI references are legal.
    WARN [main] (RDFDefaultErrorHandler.java:36) - file:///F:/yyx/%E7%A8%8B%E5%BA%8F/mddm_rdfstore_db/(line 7 column 43): {W124} Non-ascii characters in a namespace URI may not be completely portable: <http://example.org/schemas/tongxin/schemas/???#>. Resulting RDF URI references are legal.
    ERROR [main] (RDFDefaultErrorHandler.java:40) - file:///F:/yyx/%E7%A8%8B%E5%BA%8F/mddm_rdfstore_db/(line 9 column 40): {E201} rdf:resource not allowed as attribute here.
    ERROR [main] (RDFDefaultErrorHandler.java:40) - file:///F:/yyx/%E7%A8%8B%E5%BA%8F/mddm_rdfstore_db/(line 15 column 42): {E201} rdf:resource not allowed as attribute here.
    ERROR [main] (RDFDefaultErrorHandler.java:40) - file:///F:/yyx/%E7%A8%8B%E5%BA%8F/mddm_rdfstore_db/(line 21 column 46): {E201} rdf:resource not allowed as attribute here.
    ERROR [main] (RDFDefaultErrorHandler.java:40) - file:///F:/yyx/%E7%A8%8B%E5%BA%8F/mddm_rdfstore_db/(line 27 column 44): {E201} rdf:resource not allowed as attribute here.
    ERROR [main] (RDFDefaultErrorHandler.java:44) - file:///F:/yyx/%E7%A8%8B%E5%BA%8F/mddm_rdfstore_db/(line 30 column 95): An invalid XML character (Unicode: 0xde64) was found in the element content of the document.
    Exception: com.hp.hpl.jena.shared.JenaException: rethrew: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0xde64) was found in the element content of the document.
    org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0xde64) was found in the element content of the document.
     at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
     at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
     at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
     at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
     at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
     at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
     at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
     at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
     at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
     at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
     at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
     at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:106)
     at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:197)
     at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:184)
     at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:222)
     at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:187)
     at com.mddm_rdfstore_db.store.RDFStore1.parser(RDFStore1.java:103)
     at com.mddm_rdfstore_db.store.RDFStore1.main(RDFStore1.java:489)
    com.hp.hpl.jena.shared.JenaException: rethrew: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0xde64) was found in the element content of the document.
     at com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler.fatalError(RDFDefaultErrorHandler.java:45)
     at com.hp.hpl.jena.rdf.arp.impl.ARPSaxErrorHandler.fatalError(ARPSaxErrorHandler.java:35)
     at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:212)
     at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.fatalError(XMLHandler.java:239)
     at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
     at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
     at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
     at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
     at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
     at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
     at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
     at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
     at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
     at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
     at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:106)
     at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:197)
     at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:184)
     at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:222)
     at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:187)
     at com.mddm_rdfstore_db.store.RDFStore1.parser(RDFStore1.java:103)
     at com.mddm_rdfstore_db.store.RDFStore1.main(RDFStore1.java:489)
    Caused by: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0xde64) was found in the element content of the document.
     at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
     ... 17 more
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/15 21:01:00
     
     homkee 帅哥哟,离线,有人找我吗?白羊座1980-3-21
      
      
      等级:大一(高数修炼中)
      文章:14
      积分:115
      门派:XML.ORG.CN
      注册:2005/9/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给homkee发送一个短消息 把homkee加入好友 查看homkee的个人资料 搜索homkee在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看homkee的博客7
    发贴心情 
    以下是引用jiexincao在2006-5-27 21:46:00的发言:
    以前一直有人问jena读入本体的乱码问题,似乎版上还没有明确的写出解决方法。下面是我解决这个问题的代码片断:

    FileInputStream file = new FileInputStream("test.owl");
    InputStreamReader in = new InputStreamReader(file, "UTF-8");
    Model model = ModelFactory.createDefaultModel();
    model.read(in, null);
    in.close();

    究其原因应该是文件中的编码为unicode,java默认的编码是gb2312(当然是指我们的简体中文版操作系统),所以读入文件的时候指定编码就可以了。

    另外一种解决方法是在protege的菜单code中选择show RDF/OWL source code,然后把这些code贴到一个文件(test.owl)中,然后使用一般的方法就可以读了,示例代码如下:

    BufferedReader in=new BufferedReader(new FileReader("test.owl"));
    Model model = ModelFactory.createDefaultModel();
    model.read(in, null);
    in.close();

    不过这个方法有点“丑陋”——汉字在文件中全部变成其对应的unicode编码,只能通过程序读了。所以建议直接使用上面一种。

    如果有其他什么解决方法,建议大家也贴


      
    从Protege 3.1 的file-> export to format 可以直接输出 owl文件,可以不那么“丑陋”。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/15 22:24:00
     
     jiexincao 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      等级:计算机学士学位
      文章:394
      积分:2379
      门派:XML.ORG.CN
      注册:2005/1/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jiexincao发送一个短消息 把jiexincao加入好友 查看jiexincao的个人资料 搜索jiexincao在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jiexincao的博客8
    发贴心情 
    to 5楼,你说的问题我也不是很清楚,要不你把你的owl文件贴上来,我来试试能不能找到出问题的地方
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/15 22:52:00
     
     Green_blue 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:37
      积分:224
      门派:XML.ORG.CN
      注册:2006/5/18

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

    <?xml version="1.0"?>
    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:tg="http://example.org/schemas/tongxin/schemas/自动#"
    xml:base="http://example.org/tongxin/自动">

    <rdf:Description rdf:resource="#自动化">
      <tg:Englishname>automation</tg:Englishname>
      <tg:explain>采用自动控制、自动监测、自动调整装置来操纵设备,完成生产、管理过程或其它所需的功能。</tg:explain>
      <tg:category>19B</tg:category>
    </rdf:Description>

    <rdf:Description rdf:resource="#办公自动化">
      <tg:equate>办公室自动化、OA</tg:equate>
      <tg:Englishname>office automation</tg:Englishname>
      <tg:explain>以管理科学为前提,以行为学为主导,以系统科学为理论基础,综合运用电子计算机及通信技术而形成的一门办公业务自动化处理的综合技术。</tg:explain>
    </rdf:Description>

    <rdf:Description rdf:resource="#情报处理自动化">
      <tg:equate>自动化情报处理</tg:equate>
      <tg:Englishname>自动化情报处理</tg:Englishname>
      <tg:explain>利用计算机和其它有关设备,实现对情报信息收集综合、分类、辨别、存储、更新、检索和复制的自动化。</tg:explain>
    </rdf:Description>

    <rdf:Description rdf:resource="#图书馆自动化">
      <tg:equate>电子图书馆</tg:equate>
      <tg:Englishname>library automation</tg:Englishname>
      <tg:explain>以电子计算机系统为基础,在程序自动控制下,使图书馆中各项业务操作系统化、数据处理自动化、编目分类标准化、管理工作自动化、实现联机检索和数据传输网络化,以达到资源共享和充分发挥图书馆效益的目的。</tg:explain>
    </rdf:Description>

    <rdf:Description rdf:resource="#业务管理自动化">
      <tg:equate>自动化业务管理</tg:equate>
      <tg:Englishname>service management automation</tg:Englishname>
      <tg:explain>在各类业务部门中,综合运用计算机技术、通信技术、系统科学、行为科学等处理数量庞大且结构不明确的工作,以实现业务管理的自动化。</tg:explain>
    </rdf:Description>
    </rdf:RDF>

    能不能把你解析成功的OWL文件或者RDF文件给我传几个,我也试试, 我用的操作系统是windows server 2003,Eclipse3.1环境下开发,与这些有关系吗?
    谢谢了搂主!yyxsj_2008@yahoo.com

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/18 9:46:00
     
     jiexincao 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      等级:计算机学士学位
      文章:394
      积分:2379
      门派:XML.ORG.CN
      注册:2005/1/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jiexincao发送一个短消息 把jiexincao加入好友 查看jiexincao的个人资料 搜索jiexincao在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jiexincao的博客10
    发贴心情 
    我把你的文件内容拷到文本文件中,保存之后编码问题解决了。

    但仍然有提示信息:
    WARN [main] (RDFDefaultErrorHandler.java:36) - (line 6 column 42): {W124} Non-ascii characters in a namespace URI may not be completely portable: <http://example.org/schemas/tongxin/schemas/自动#>. Resulting RDF URI references are legal.
    ERROR [main] (RDFDefaultErrorHandler.java:40) - (line 8 column 38): {E201} rdf:resource not allowed as attribute here.
    ERROR [main] (RDFDefaultErrorHandler.java:40) - (line 14 column 40): {E201} rdf:resource not allowed as attribute here.
    ERROR [main] (RDFDefaultErrorHandler.java:40) - (line 20 column 42): {E201} rdf:resource not allowed as attribute here.
    ERROR [main] (RDFDefaultErrorHandler.java:40) - (line 26 column 41): {E201} rdf:resource not allowed as attribute here.
    ERROR [main] (RDFDefaultErrorHandler.java:40) - (line 32 column 42): {E201} rdf:resource not allowed as attribute here.
    OK
    所以你的里面除了编码问题还有一些RDF的语法问题。不过我的RDF 学的半生不熟,熟悉的快来帮忙啊!

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

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

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