• 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");
    
    }
    

    最终结果

  • 相关阅读:
    BZOJ 2400: Spoj 839 Optimal Marks (按位最小割)
    bzoj4873: [Shoi2017]寿司餐厅(最大权闭合子图)
    bzoj1497: [NOI2006]最大获利(最大权闭合子图)
    bzoj1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
    bzoj1024: [SCOI2009]生日快乐
    bzoj2761: [JLOI2011]不重复数字
    bzoj1257: [CQOI2007]余数之和sum
    bzoj2456: mode
    bzoj1831: [AHOI2008]逆序对(DP+双精bzoj1786)
    bzoj2431: [HAOI2009]逆序对数列
  • 原文地址:https://www.cnblogs.com/vipyoumay/p/2138033.html
Copyright © 2020-2023  润新知