Apache Jena偷吃步

ARQ API

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);