zoukankan      html  css  js  c++  java
  • Java 语义网编程系列五: Jena+sparql实现语义数据查询

    Sparql 是语义网的查询语言,是w3c推荐的一个标准,一下演示了之前设计的本体文件的查询,实现了"benz"车拥有者的姓名的查询。

     

    /**
    
     * 语义数据查询
    
     * @param spaqrlString
    
     * @param queryModel
    
     * @param var
    
     */
    
         public void queryBySpaqrl( String spaqrlString , Model queryModel , String var )
    
                 {
    
                Query query =         QueryFactory.create(spaqrlString);
    
                QueryExecution queryExecution = QueryExecutionFactory.create(query,queryModel);
    
                ResultSet resultSet = queryExecution.execSelect();
    
                while(resultSet.hasNext())
    
                        {
    
                                QuerySolution querySolution = resultSet.nextSolution();
    
                                RDFNode rdfNode = querySolution.get(var);
    
                                System.out.println(var +" is " + rdfNode.toString());
    
                        }
    
                 }
    

     

    Sparql 语句

    @Test
    
    public void testJenaSparql()
    
    {
    
    JenaModelSpaqrl  jenaModelSpaqrl = new JenaModelSpaqrl();
    
    jenaModel= new JenaModel();
    
    StringBuffer querystringBuffer = new StringBuffer();
    
    querystringBuffer.append("PREFIX s1" + ": <" + defaultNameSpace + ">");
    
    querystringBuffer.append(
    
    "select ?name" +
    
    " where { " +
    
    "?car s1:hasBrand \"Benz\"."+
    
    "?car s1:hasOwner ?person."+
    
    "?person s1:hasName ?name}"
    
    );
    
    jenaModelSpaqrl.queryBySpaqrl(querystringBuffer.toString(), jenaModel.createOntologyModel(OntModelSpec.OWL_DL_MEM, pathFile) ,"?name");
    
    }
    

    最终结果

  • 相关阅读:
    求算个十百输出
    求算反弹高度
    九九乘法表
    等腰三角形字母
    动态数码管
    静态数码管
    出错的程序操作
    EPLAN
    robotstudio smart组件解释
    eclipse插件安装方法
  • 原文地址:https://www.cnblogs.com/vipyoumay/p/2138033.html
Copyright © 2011-2022 走看看