0
我在Jena模型中加载了本体。在Jena代码中,在创建模型并加载本体之后,我想要对本体运行多个Sparql查询。 所以在main()方法中,我将创建模型并读取本体,然后如何运行多个查询。 我会为每个sparql查询有一个单独的方法()吗? 请引导我如何模块化代码?如何在不同的方法中分离Jena模型和SPARQL查询()
关于
我在Jena模型中加载了本体。在Jena代码中,在创建模型并加载本体之后,我想要对本体运行多个Sparql查询。 所以在main()方法中,我将创建模型并读取本体,然后如何运行多个查询。 我会为每个sparql查询有一个单独的方法()吗? 请引导我如何模块化代码?如何在不同的方法中分离Jena模型和SPARQL查询()
关于
您可以简单地使方法接受模型作为参数,然后传递生成的模型。例如:
public static void execQ(String queryString, Model model) {
Query query = QueryFactory.create(queryString);
try (QueryExecution qexec = QueryExecutionFactory.create(query, model)) {
ResultSet results = qexec.execSelect();
for (; results.hasNext();) {
QuerySolution soln = results.nextSolution();
RDFNode x = soln.get("varName"); // Get a result variable by name.
Resource r = soln.getResource("VarR"); // Get a result variable - must be a resource
Literal l = soln.getLiteral("VarL"); // Get a result variable - must be a literal
}
}
}
谢谢djodjo,你能用一个简短的例子吗?我会非常感激,因为我对环境很陌生,只需要一点线索就可以开始。 –
我编辑了我的答案。它非常简单,相当一般,但您可以根据您的查询管理不同的抽象级别。 – djodjo
非常感谢djodjo,我会尝试一下。希望它会起作用 –