我正在对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
}
有没有办法做到这一点。谁能帮我吗?