当前位置: 首页 > 知识库问答 >
问题:

owlapi隐士和SPARQL

夏晋
2023-03-14

如何使用HERMIT reasoner 1.3.8在Java中执行SPARQL查询?我使用的是owlapi 4.2,我使用以下方法加载了HERMIT reasoner:

OWLReasonerFactory reasonerFactory = new Reasoner.ReasonerFactory();
OWLReasoner reasonerHermit = reasonerFactory.createReasoner(ontology);

不幸的是,我找不到任何关于如何使用此推理器执行SPARQL查询的解释?!这可能吗?如果没有,我使用owlapi和SPARQL还有什么其他的可能性(其他原因)?

编辑:

我现在知道我需要一个SPARQL引擎。这就是我这样使用SPARQL-DL的原因:

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

我怎样才能走出http://www.example.com/project1#document_1?我找不到一个合适的方法来获得这个值。

共有2个答案

东门子昂
2023-03-14

查看QueryResult的源代码,这里提供了一个查询绑定。您有迭代所有绑定的方法,您应该在绑定的绑定值中找到您想要的值。

傅自明
2023-03-14

HermiT是OWL推理机,而不是SPARQL引擎。有一个叫做SPARQL-DL的应用编程接口,但是根据它的网站,它只支持OWL应用编程接口v3. x。可以找到支持OWL API 4的新分叉版本,作为Presge项目的一部分:https://github.com/protegeproject/sparql-dl-api

 类似资料: