新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国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)/描述逻辑/本体 』 → 求助,在Java程序中调用SPARQL对中文本体进行检索 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 28751 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 求助,在Java程序中调用SPARQL对中文本体进行检索 举报  打印  推荐  IE收藏夹 
       本主题类别: Ontology Language | RDF/RDFS    
     shoutfish 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(Java考了96分!)
      文章:52
      积分:400
      门派:XML.ORG.CN
      注册:2009/2/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给shoutfish发送一个短消息 把shoutfish加入好友 查看shoutfish的个人资料 搜索shoutfish在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看shoutfish的博客楼主
    发贴心情 求助,在Java程序中调用SPARQL对中文本体进行检索

    有点急,毕设在检索的最后一部分卡住了。上来怨念一下。

    public class OntoQuery{
     public static void main(String[] args) throws IOException{
      //首先,通过输入获取一个检索字段
      SearchOntoSenten ss = new SearchOntoSenten();
      String inputString = null;
      inputString = ss.getStr();
      // 创建一个本体模型,此处直接对Protege生成的owl文件进行检索
      OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
      model.read("file:D:/Program Files/Protege_3.3.1/s.f.achieve/设备1.2.owl");
      // 以下根据输入的字符串创建一个查询语句
      String queryString = " PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> "
       + " PREFIX xmlns:<http://www.owl-ontologies.com/unnamed.owl#> "
       + " SELECT ?x "
       + " WHERE { "
       + "    ?x rdfs:subClassOf xmlns:" + inputString  //引入之前获取的输入字段
       + " } ";
      // 创建一个查询
      Query query = QueryFactory.create(queryString);
      // 执行查询,获得结果
      QueryExecution qe = QueryExecutionFactory.create(query, model);
      ResultSet results = qe.execSelect();
      // 向控制台输出结果
      ResultSetFormatter.out(System.out, results, query);
      // 释放资源
      qe.close();
     }
    }

    ------请在下面一行输入所需检索字段,按回车结果------
    流程泵
    ---------------
    | x           |
    ===============
    | xmlns:鍖栧伐娴佺▼娉?|
    ---------------


    前面是我模仿developmentWorks上的代码设计的本体检索程序。后面是我检索返回的乱码结果。
    getStr()是从输入取字符串的一个方法。就是把下面“流程泵”的值赋给inputString。
    对英文进行检索的时候没有问题,但是,当本体内容是中文的时候就会返回乱码。
    而且,因为新版的Jena好像方法也有了很大变化,原来那些方法虽然使用起来没有问题,但是,查文档看得还是一头雾水,纠结啊纠结……就算是能够检索得到正常的结果,也还要继续研究如何把检索结果赋给字符串数组变量。


       收藏   分享  
    顶(0)
      




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

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Humphrey发送一个短消息 把Humphrey加入好友 查看Humphrey的个人资料 搜索Humphrey在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看Humphrey的博客2
    发贴心情 
    那么您的问题就是检索结果是乱码,如何解决吗?
    如果是这样,还需要您提供您所使用的工具,包括数据库的名称和版本。很可能在其中某个环节出了问题。

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/20 12:13:00
     
     jpz6311whu 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研三(收到微软亚洲研究院的Offer了)(版主)
      文章:1718
      积分:10610
      门派:W3CHINA.ORG
      注册:2005/4/12

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jpz6311whu发送一个短消息 把jpz6311whu加入好友 查看jpz6311whu的个人资料 搜索jpz6311whu在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jpz6311whu的博客3
    发贴心情 
    问题可能出现在两个地方:一个是读本体库的时候,是否是按照指定编码读取?另外打印结果的时候,编码是否设置正确?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/22 12:31:00
     
     yayatu 美女呀,离线,快来找我吧!双子座1981-6-1
      
      
      
      威望:1
      等级:大三暑假(2个月背完了红宝书)(贵宾)
      文章:134
      积分:965
      门派:XML.ORG.CN
      注册:2004/7/6

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

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/24 4:01:00
     
     shoutfish 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(Java考了96分!)
      文章:52
      积分:400
      门派:XML.ORG.CN
      注册:2009/2/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给shoutfish发送一个短消息 把shoutfish加入好友 查看shoutfish的个人资料 搜索shoutfish在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看shoutfish的博客5
    发贴心情 
    用的是Eclipse3.4.2release
    Jena2.5.7
    本体检索还用不到数据库,只是一个用Protege3.3.1编了一个本体文件(.owl)而已。
    当这个文件是英文的时候,检索结果可以出现类似“xmlns:Pizza”的结果,但是中文,就会像上面的程序运行结果一样。
    打印结果的时候还不是转换成字符串输出(这个我也不知道怎么实现),而是直接调用一个打印的方法:
    ResultSetFormatter.out(System.out, results, query);
    建立本体的时候,都是用的utf-8,这个应该是没有问题的,文件本身可以用记事本查看的。
    应该是在检索的时候出的问题,不过,对owl文件进行检索的时候,怎么设置编码呀?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/24 16:16:00
     
     yayatu 美女呀,离线,快来找我吧!双子座1981-6-1
      
      
      
      威望:1
      等级:大三暑假(2个月背完了红宝书)(贵宾)
      文章:134
      积分:965
      门派:XML.ORG.CN
      注册:2004/7/6

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

       请选择Run ->Run-> Common->Console Encode ->UTF-8

       Try it

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/6/24 17:16:00
     
     lgpxzyb 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:21
      积分:145
      门派:XML.ORG.CN
      注册:2008/2/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lgpxzyb发送一个短消息 把lgpxzyb加入好友 查看lgpxzyb的个人资料 搜索lgpxzyb在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lgpxzyb的博客7
    发贴心情 
    如何提取得到的结果?比如想把?x的值付给程序中的变量i。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/7/27 22:05:00
     
     fanwander 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:34
      积分:186
      门派:XML.ORG.CN
      注册:2008/3/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fanwander发送一个短消息 把fanwander加入好友 查看fanwander的个人资料 搜索fanwander在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看fanwander的博客8
    发贴心情 
    我在使用ResultSetFormatter的时候也是乱码,可以把ResultSet中的结果遍历出来,不去使用ResultSetFormatter。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/7/30 15:03:00
     
     Avansky 帅哥哟,离线,有人找我吗?
      
      
      威望:1
      等级:大三(研究MFC有点眉目了!)
      文章:103
      积分:675
      门派:W3CHINA.ORG
      注册:2008/12/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Avansky发送一个短消息 把Avansky加入好友 查看Avansky的个人资料 搜索Avansky在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看Avansky的博客9
    发贴心情 
    楼主:你的SearchOntoSenten具体代码可以看一下吗?

    ----------------------------------------------
    本人的论文是基于语义网的搜索引擎技术。
    望同路人多交流!
    Email:avan1017@163.com

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2010/3/28 11:12:00
     
     Lexxuan 帅哥哟,离线,有人找我吗?
      
      
      威望:1
      等级:大四(GRE考了1500分!)
      文章:88
      积分:1025
      门派:W3CHINA.ORG
      注册:2009/4/23

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Lexxuan发送一个短消息 把Lexxuan加入好友 查看Lexxuan的个人资料 搜索Lexxuan在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 点击这里发送电邮给Lexxuan  引用回复这个贴子 回复这个贴子 查看Lexxuan的博客10
    发贴心情 
    以下是引用shoutfish在2009-6-24 16:16:00的发言:
    本体检索还用不到数据库,只是一个用Protege3.3.1编了一个本体文件(.owl)而已。
    当这个文件是英文的时候,检索结果可以出现类似“xmlns:Pizza”的结果,但是中文,就会像上面的程序运行结果一样。
    打印结果的时候还不是转换成字符串输出(这个我也不知道怎么实现),而是直接调用一个打印的方法:
    ResultSetFormatter.out(System.out, results, query);
    建立本体的时候,都是用的utf-8,这个应该是没有问题的,文件本身可以用记事本查看的。


    如果全英文的owl,最好先用ANSI编码格式存,UTF-8有时候会出现问题,比如用mysql持久化的时候
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2010/3/30 5:13:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/12/18 8:54:18

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

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