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,我會嘗試一下。希望它會起作用 –