Apache jena ARQ FILTER优化

时间:2018-02-06 17:27:57

标签: apache sparql jena arq

通过为GraphDatasetGraph提供impl,我在MongoDB上合理地实现了Jena。 SPARQL查询转换为MongoDB中的相应查询表达式,并且至少在三重匹配的基础上,以高性能方式进行物化。这并不奇怪;索引做了他们应该做的事情。 <{1}}包含一个RDFS推理器Graph,一切都很好。

我现在有兴趣探索优化过滤下推到MongoDB的方法。例如,这个SPARQL:

Model

导致MongoDB ?s a:attested "2017-06-01T00:00:00Z"^^xsd:dateTime . 表达式的设置:

find

一切都很好。但是这个SPARQL:

{ "P" : "a:attested", "O" : { "$date" : 1496275200000 } }

导致ARQ仅将谓词传递给?s a:attested ?theDate . FILTER (?theDate = "2017-06-01T00:00:00Z"^^xsd:dateTime)

Graph::find()

从数据库中提取了很多东西,过滤在ARQ中完成。上面的{ "P" : "a:attested" } 表达式显然不需要简单的相等,但它证明了这一点。

TDB documentation says“...... TDB使用ARQ的FILTER扩展点。”但是OpExecutor goes to a To-Do的链接。

任何人都可以指出在ARQ调用OpExecutor时可以挂钩或以其他方式访问某些内容的任何示例吗?正是在这一点上,我的实现跳转到制作查询,如果我可以询问是否存在过滤器,那么我可以“改进”对查询的限制。在这个时候,我处理阻止过滤在ARQ本身中再次发生再次并不是那么重要。

0 个答案:

没有答案