【发布时间】:2019-05-08 11:05:49
【问题描述】:
我正在使用 Virtuoso Jena Provider 来查询上传到 Virtuoso 上的图表,但我还想在查询中添加推理。
我已尝试过此代码,但在 .execSelect(); 行出现错误
Exception in thread "main" java.lang.NullPointerException
at mypackage.Main.main(Main.java:49)
这是我目前尝试过的代码。
VirtGraph vg = new VirtGraph(graph, url, username, password);
VirtModel model = new VirtModel(vg);
InfModel ont = ModelFactory.createInfModel(ReasonerRegistry.getOWLReasoner(), model);
Query sparql = QueryFactory.create("PREFIX sosa: <http://www.w3.org/ns/sosa/>\r\n" +
"PREFIX ex: <http://example.org/data/>\r\n" +
"SELECT ?s ?o FROM <http://147.27.60.65/sensorOntology> WHERE {?s sosa:isHostedBy ?o}");
QueryExecution vqe = VirtuosoQueryExecutionFactory.create(sparql, ont);
ResultSet results = vqe.execSelect();
向我的图表添加推理器的正确方法是什么?如何查询结果集?
这些是我正在使用的版本: 耶拿:3.1 JDBC:4 大师级:6
编辑 我从https://github.com/stardog-union/pellet 安装了 Pellet reasoner,但我只能正确推断存储在我的电脑上并加载到 Jena 上的 .owl 文件,但我仍然无法推断作为 virtuoso 图上传的相同文件。
【问题讨论】:
-
首先想到的是,因为这些咬了很多人,是为了确认所有涉及的版本——Jena Provider, JDBC Driver、Jena、Java、Virtuoso 等——是最新的和适当的版本-匹配。然后,从Virtuoso Jena Provider docs看this sample query。
标签: java jena virtuoso reasoner openlink-virtuoso