我必须通过SPARQL访问存储在演奏家服务器中的一些RDF数据。必须为我要访问的图启用推理。在客户端,必须使用jena2.11.x。
为了启用推理,我必须define input:inference „http://examplegraphIRI“
根据http://docs.openlinksw.com/virtuoso/rdfsparqlrule.html将行添加为SPARQL查询的第一行。如果我使用JenaQueryExecutionFactory
执行查询,则它将被拒绝,因为ARQ无法解析给定的行。
我是否需要使用Virtuoso Jena Provider(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)
I,我可以final QueryEngineHTTP request = new QueryEngineHTTP (this.endpoint, fullQueryString)
直接使用绕过解析器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句