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

}

最终结果

相关文章:

  • 2021-08-31
  • 2021-04-20
  • 2021-08-07
  • 2022-12-23
  • 2021-09-04
  • 2021-12-13
  • 2021-09-08
  • 2021-05-24
猜你喜欢
  • 2021-07-22
  • 2021-12-11
  • 2021-07-12
  • 2021-06-05
  • 2021-10-16
  • 2022-12-23
  • 2021-11-03
相关资源
相似解决方案