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

    最终结果

  • 相关阅读:
    前端之html的常用标签2和css基本使用
    前端之前端介绍或html的常用标签1
    mysql之练习题4
    mysql之零碎知识
    mysql之索引查询2
    python对象类型----数字&字符串
    初识python---简介,简单的for,while&if
    Shell 语句
    正则表达式----grep
    EG:nginx反向代理两台web服务器,实现负载均衡 所有的web服务共享一台nfs的存储
  • 原文地址:https://www.cnblogs.com/vipyoumay/p/2138033.html
Copyright © 2020-2023  润新知