我有一个关于在三重存储中插入和删除语句的问题,比如Virtuoso、Stardog、4 4store、Allegrograph、Oracle11g。
当插入新语句时,他们是在存储中插入推断语句,还是在每次查询执行中使用合理性来获取推断语句?同样的问题,当删除语句时,它们是否删除推断语句?
发布于 2014-04-22 18:49:14
答案将取决于数据库,没有“正确”的方法去做,据我所知,每个方法都有一些不同。你没有理由只进行物化或查询时间推理;你可以做到这两种方法,如果有的话,这是实现它的“正确”方法。
在使用物化的情况下(所有推理都保存在数据库中),真相维护是一个特别棘手的问题。您可以避免重新构建所有的推论,但是这种方法有一些明显的缺点。因此,物化的系统将具有复杂的方案,从而存储用于推理的派生树,以便只重新计算受更新影响的推理。但这是以减缓所有写入和批量加载为代价的。
查询时间推理还附带了真相维护的问题;推理不是存储的,而是在评估过程中动态计算的,但这是以执行更困难的查询为代价的。
据我所知,BigData、OWLIM和Oracle都是在查询时进行推理的。我不确定Virtuoso和AllegroGraph的情况。考虑到AllegroGraph使用的是RacerPro,或者至少曾经使用过,我猜它们会变成现实,但这只是猜测。我不知道4 4Store做了任何推理。
https://stackoverflow.com/questions/23226709
复制相似问题