owlapi HERMIT和SPARQL

时间:2016-11-28 10:56:16

标签: java sparql owl-api

如何使用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 ?我找不到合适的方法来获得这个值。

2 个答案:

答案 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,你所拥有的是一个查询绑定。你有迭代所有绑定的方法,你应该在绑定的绑定值中找到你所追求的值。