新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   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)/描述逻辑/本体 』 → 请问大侠:我在用SPARQL查询RDF模型时遇到的困难,求救 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 5596 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 请问大侠:我在用SPARQL查询RDF模型时遇到的困难,求救 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     lqm 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:66
      积分:360
      门派:XML.ORG.CN
      注册:2006/5/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lqm发送一个短消息 把lqm加入好友 查看lqm的个人资料 搜索lqm在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lqm的博客楼主
    发贴心情 请问大侠:我在用SPARQL查询RDF模型时遇到的困难,求救

    最近再学习SPARQL语言查询RDF时遇到很多困难,我用的是Jena接口语言如下:
    我使用的RDF文件内容(test.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:vCard = "http://www.w3.org/2001/vcard-rdf/3.0#"
               xmlns:HongLM="http://127.0.0.1/HongLM#">
                  
       <rdf:Description rdf:about = "http://qqqfoo.com/annual-report.html" >
        <DC:title> Annual Report 1999/2000 </DC:title>
        <DC:creator rdf:parseType="Resource">
          <vCard:FN> Corky Crystal </vCard:FN>
          <vCard:N rdf:parseType="Resource">
            <vCard:Family> Crystal </vCard:Family>
            <vCard:Given>  Corky </vCard:Given>
          </vCard:N>
          <vCard:EMAIL rdf:parseType="Resource">
            <rdf:value> corky@qqqfoo.com </rdf:value>
            <rdf:type rdf:resource="http://www.w3.org/2001/vcard-rdf/3.0#internet"/>
          </vCard:EMAIL>
        </DC:creator>
        <DC:date> 2000-10-01 </DC:date>
        <DC:subject> Company Report, Outcomes, Objectives </DC:subject>
        <DC:publisher> qqqfoo.com Pty Ltd </DC:publisher>
        <DC:rights> Copyright 2000 </DC:rights>
       </rdf:Description>
      <rdf:Description rdf:about ="http://127.0.0.1/HongLM/rt34.htm">
        <HongLM:master>Jia Bao Yu</HongLM:master>
        <HongLM:hasservant>Qin Wen</HongLM:hasservant>
        <HongLM:haswife>Xue Bao Cha</HongLM:haswife>
      </rdf:Description>
      </rdf:RDF>
    我用的查询模式:
    "PREFIX  rdfs:<http://www.w3.org/2000/01/rdf-schema#>"+
    "PREFIX  HongLM:<http://127.0.0.1/HongLM#>"+
    "SELECT ?x  ?obj " +
    "WHERE {" +
         "?x DC:title  ?obj."   
           +  "}";
    利用这种方法可以查询,如DC:title,DC:date,DC:subject,DC:publisher, DC:rights之类的节点,但是要查询类似,DC:creator,vCard:EMAIL这些符合节点则不能得到查询结果。
    例如:
    "SELECT ?x ?creator"+
    "Where {"+
    "?x  DC:creator  ?y ."+
    "?y  vCard:FN    ??creator ."+  "}";执行的结果,不报错,无结果返回。

    参考程序如下:
    import java.io.InputStream;
    import java.io.FileInputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.*;
    import com.hp.hpl.jena.query.*;
    import com.hp.hpl.jena.rdf.model.*;
    import com.hp.hpl.jena.ontology.OntClass;
    import com.hp.hpl.jena.ontology.OntModel;
    import com.hp.hpl.jena.rdf.model.ModelFactory;
    import com.hp.hpl.jena.rdf.model.Property;
    import com.hp.hpl.jena.rdf.model.RDFNode;
    import com.hp.hpl.jena.rdf.model.Resource;
    import com.hp.hpl.jena.rdf.model.Statement;
    import com.hp.hpl.jena.rdf.model.StmtIterator;
    public class Rdqowl
    {
    public static void main(String args[])
        {
            // Open The  RDF or OWL  graph from the filesystem
    try
    {
    InputStream in = new FileInputStream(new File("test.rdf"));

    // Create an empty in-memory model and populate it from the graph
    Model model = ModelFactory.createMemModelMaker().createModel();
    model.read(in,null); // null base URI, since model URIs are absolute
    in.close();
    String queryString =      
    "PREFIX  vCard:<http://www.w3.org/2001/vcard-rdf/3.0>"+
    "PREFIX  DC:<http://purl.org/dc/elements/1.1/>"+
    Select "?x   DC:title   ?title"
    "WHERE {" +
    "{ ?x  DC:creator  ?c.}  "+
    " OPTIONAL { ?c vCard:FN   ?fname } ."+
      "FILTER isBlank(?c)"
       +  "      }";              
    Query query = QueryFactory.create(queryString);
    // Execute the query and obtain results
    QueryExecution qe = QueryExecutionFactory.create(query, model);
    ResultSet results = qe.execSelect();


    // Output query results 
    ResultSetFormatter.out(System.out, results, query);

    // Important - free up resources used running the query
    qe.close();

    }
    catch (Exception ex)
            {
                ex.printStackTrace();
            }


        }
    }
    还有一问?
    用上面的方法怎么查询OWL文件?


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/13 10:45:00
     
     lqm 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:66
      积分:360
      门派:XML.ORG.CN
      注册:2006/5/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lqm发送一个短消息 把lqm加入好友 查看lqm的个人资料 搜索lqm在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lqm的博客2
    发贴心情 
    盼望哪位大侠能给我一点指点,谢谢
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/14 11:40:00
     
     jpz6311whu 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研三(收到微软亚洲研究院的Offer了)(版主)
      文章:1718
      积分:10610
      门派:W3CHINA.ORG
      注册:2005/4/12

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

    import java.io.InputStream;
    import java.io.FileInputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.*;
    import com.hp.hpl.jena.query.*;
    import com.hp.hpl.jena.rdf.model.*;
    import com.hp.hpl.jena.ontology.OntClass;
    import com.hp.hpl.jena.ontology.OntModel;
    import com.hp.hpl.jena.rdf.model.ModelFactory;
    import com.hp.hpl.jena.rdf.model.Property;
    import com.hp.hpl.jena.rdf.model.RDFNode;
    import com.hp.hpl.jena.rdf.model.Resource;
    import com.hp.hpl.jena.rdf.model.Statement;
    import com.hp.hpl.jena.rdf.model.StmtIterator;
    public class TestSparql
    {
    public static void main(String args[])
        {
            // Open The  RDF or OWL  graph from the filesystem
    try
    {
    InputStream in = new FileInputStream(new File("src/test/test.rdf"));//jpz mod

    // Create an empty in-memory model and populate it from the graph
    Model model = ModelFactory.createMemModelMaker().createModel();
    model.read(in,null); // null base URI, since model URIs are absolute
    in.close();
    String queryString =      
    "PREFIX  vCard: <http://www.w3.org/2001/vcard-rdf/3.0>"+
    "PREFIX  DC: <http://purl.org/dc/elements/1.1/>"+
    "Select ?x      ?title" + //jpz mod
    "WHERE {" +
    "{ ?x  DC:creator  ?c.}  "+
    " OPTIONAL { ?c vCard:FN   ?fname } ."+
      "FILTER isBlank(?c)"
       +  "      }";              
    Query query = QueryFactory.create(queryString);
    // Execute the query and obtain results
    QueryExecution qe = QueryExecutionFactory.create(query, model);
    ResultSet results = qe.execSelect();


    // Output query results
    ResultSetFormatter.out(System.out, results, query);

    // Important - free up resources used running the query
    qe.close();

    }
    catch (Exception ex)
            {
                ex.printStackTrace();
            }


        }
    }

    ---------------------
    以上//jpz mod是我改过的地方
    程序运行结果:
    -------------------------------------------------------
    | x                                      | titleWHERE |
    =======================================================
    | <http://qqqfoo.com/annual-report.html> |            |
    -------------------------------------------------------

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/14 16:34:00
     
     lqm 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:66
      积分:360
      门派:XML.ORG.CN
      注册:2006/5/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lqm发送一个短消息 把lqm加入好友 查看lqm的个人资料 搜索lqm在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lqm的博客4
    发贴心情 
    谢谢,不过我测试了一下,可以运行,结果也同你给出的一样,我想要的结果是:
    -------------------------------------------------------
    | x                                                                       | fname |
    =======================================================
    | <http://qqqfoo.com/annual-report.html> |            | Corky crystal

    -------------------------------------------------------

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/15 17:11:00
     
     lqm 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:66
      积分:360
      门派:XML.ORG.CN
      注册:2006/5/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lqm发送一个短消息 把lqm加入好友 查看lqm的个人资料 搜索lqm在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lqm的博客5
    发贴心情 
    也就是说,要<http://qqqfoo.com/annual-report.html> 和它的
    <vCard:FN> Corky Crystal </vCard:FN>
          <vCard:N rdf:parseType="Resource">
            <vCard:Family> Crystal </vCard:Family>
            <vCard:Given>  Corky </vCard:Given>
          </vCard:N>
    对于这些复合节点就不能得到查询的结果。
    请你再帮帮我看看哈!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/15 17:14:00
     
     jpz6311whu 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研三(收到微软亚洲研究院的Offer了)(版主)
      文章:1718
      积分:10610
      门派:W3CHINA.ORG
      注册:2005/4/12

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jpz6311whu发送一个短消息 把jpz6311whu加入好友 查看jpz6311whu的个人资料 搜索jpz6311whu在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jpz6311whu的博客6
    发贴心情 
    程序中
    <http://www.w3.org/2001/vcard-rdf/3.0>
    改为:
    <http://www.w3.org/2001/vcard-rdf/3.0#>
    明白了吧?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/15 18:25:00
     
     lqm 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:66
      积分:360
      门派:XML.ORG.CN
      注册:2006/5/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lqm发送一个短消息 把lqm加入好友 查看lqm的个人资料 搜索lqm在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lqm的博客7
    发贴心情 
    哦,果然是这样的,谢谢哈!
    我想了好久,看看还是你们这些大侠厉害,佩服,佩服!!!!!!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/15 21:44:00
     
     lqm 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:66
      积分:360
      门派:XML.ORG.CN
      注册:2006/5/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lqm发送一个短消息 把lqm加入好友 查看lqm的个人资料 搜索lqm在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lqm的博客8
    发贴心情 
    谢谢,楼上的大侠,按照你的提示,果然能够查询比较复杂的RDFS数据了
    我还想问的是,如果我想查询OWL模型数据,是不是也很方便?
    请赐教哈!!!
    热心的大侠,先谢谢哈!!!!!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/15 22:09:00
     
     jpz6311whu 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研三(收到微软亚洲研究院的Offer了)(版主)
      文章:1718
      积分:10610
      门派:W3CHINA.ORG
      注册:2005/4/12

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jpz6311whu发送一个短消息 把jpz6311whu加入好友 查看jpz6311whu的个人资料 搜索jpz6311whu在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jpz6311whu的博客9
    发贴心情 
    owl就是一种rdf啊
    方便不方便我没比较过,但是肯定能查询
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/15 22:48:00
     
     lqm 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:66
      积分:360
      门派:XML.ORG.CN
      注册:2006/5/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lqm发送一个短消息 把lqm加入好友 查看lqm的个人资料 搜索lqm在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lqm的博客10
    发贴心情 
    谢谢你及时提醒哈
    好的,我认真研究一下怎么用SPARQL来查询OWL!
    我具体去做一下看看,感觉有什么区别!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/16 0:21:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/10/1 13:33:09

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

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