通过Jena为SPARQL请求启用推理



问题环境:

我必须通过SPARQL访问存储在virtuoso服务器中的一些RDF数据。对于我想要访问的图形,推理必须是启用的。在客户端jena 2.11。必须使用X

现在的问题是:

要启用推理,我必须根据http://docs.openlinksw.com/virtuoso/rdfsparqlrule.html将define input:inference „http://examplegraphIRI“行添加为SPARQL查询的第一行。如果我使用Jena QueryExecutionFactory来执行查询,它将被拒绝,因为ARQ无法解析给定的行。

现在的问题是:

我是否需要使用Virtuoso JenaProvider (http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtJenaProvider#Bypass%20Jena/ARQ%20parser)?它能解决我的问题吗(最新版本(http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VOSDownload#Jena%20Provider)表示它适用于jena 2.10.x)?

是否有其他的可能性来启用SPARQL端点的推理?

我通过浏览Jena和ARQ的源代码找到了解决方案:

不使用final QueryEngineHTTP request = QueryExecutionFactory.createServiceRequest(String,Query),我可以直接使用final QueryEngineHTTP request = new QueryEngineHTTP (this.endpoint, fullQueryString)来绕过解析器。

最新更新