如何使用HERMIT推理器1.3.8在Java中执行SPARQL查询?我正在使用owlapi 4.2并且我使用以下方式加载了HERMIT推理器:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy"];
weekEndDate=[formatter dateFromString:strDate];
不幸的是我找不到任何解释如何用这个推理器执行SPARQL查询?!这有可能吗?如果没有,我使用owlapi和SPARQL还有哪些其他的可能性(其他reasoners)?
修改
我现在知道我需要一个SPARQL引擎。这就是我使用SPARQL-DL的原因:
OWLReasonerFactory reasonerFactory = new Reasoner.ReasonerFactory();
OWLReasoner reasonerHermit = reasonerFactory.createReasoner(ontology);
查询有效,但如果我现在得到类似
的内容QueryEngine engine = QueryEngine.create(manager, reasoner, true);
Query query = Query.create("...");
QueryResult result = engine.execute(query);
System.out.println(result);
如何离开?de.derivo.sparqldlapi.Var@69 = http://www.example.com/project1#document_1
?我找不到合适的方法来获得这个值。
答案 0 :(得分:3)
HermiT是一个OWL推理器而不是SPARQL引擎。有一个名为SPARQL-DL的API,但根据其website,它仅支持OWL API v3.x.支持OWL API 4的新分叉版本可以作为Protege项目的一部分找到:https://github.com/protegeproject/sparql-dl-api
答案 1 :(得分:2)
查看QueryResult的源代码available here,你所拥有的是一个查询绑定。你有迭代所有绑定的方法,你应该在绑定的绑定值中找到你所追求的值。