ARQ是Jena使用SPARQL語法對推論後的本體論進行查詢的API
在jena對原本體論進行推理後,會獲得一個新的inference model
若要取得此model中的資料,就使用SPARQL語法進行查詢
舉例來說若我們從上一節範例最後產生的本體論中
想查詢一種會狩獵草食動物的動物,我們就可以用以下的語法進行查詢
String queryString = "PREFIX NS: <http://www.example.com/your_ontology.owl#>\n"
+ "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
+ "SELECT ?animal \n"
+ "WHERE{ ?animal NS:hunt ?prey . ?prey rdf:type NS:herbivore }";
Query query = QueryFactory.create(queryString);
QueryExecution qexec = QueryExecutionFactory.create(query, infmodel);
ResultSet results = qexec.execSelect();
//輸出成JSON格式以方便解析
ResultSetFormatter.outputAsJSON(System.out, results);