Sparql-选择查询作为输入并将其转换为“构造”查询。

时间:2018-06-29 14:30:20

标签: java sparql jena endpoint

我正在对Sparql和Jena进行小任务。基本上,我必须编写一个代码,以任何“选择”查询作为输入并将其转换为“构造”查询。

应该通过Java代码完成。

我对“选择”查询和“构造”查询有很好的理解。但是这个任务使我感到困惑。我只在做简单的sparql查询。有人可以帮我吗?

    // Select films and actors that appeared leonardo di caprio films // 

    "Prefix dbo: <http://dbpedia.org/ontology/>"
                + "Prefix dbr: <http://dbpedia.org/resource/>"
                + "select ?film ?actor where {\r\n" + 
                "\r\n" + 
                "?film a dbo:Film .\r\n" + 
                "?film dbo:starring ?actor.\r\n" + 
                "?film dbo:starring dbr:Leonardo_DiCaprio\r\n" + 
                "\r\n" + 
                "}";

String service1 = "https://dbpedia.org/sparql"; // for select query 

Query query = QueryFactory.create(query1); 

        QueryExecution qe = QueryExecutionFactory.sparqlService(service1,
                query);

         ResultSet results = qe.execSelect(); 




         while (results.hasNext()){
             QuerySolution s=results.nextSolution();
             System.out.println(s);  

         }

输出将显示选择查询的结果,但是对于此任务,我想编写将任何“选择”查询作为输入并将其转换为“构造”查询(不是结果)的Java代码。例如,构造查询应显示在输出中。

OUTPUT:

Construct {?actor <Mov:Starring> ?film.}
Where {
?film a dbo:Film . 
?film dbo:starring ?actor.
?film dbo:starring dbr:Leonardo_DiCaprio
}

有没有办法做到这一点。谁能帮我吗?

0 个答案:

没有答案