我有一个关于在三重商店中插入和删除语句的问题,例如Virtuoso,Stardog,4store,Allegrograph,Oracle11g。
插入新语句时,是否在商店中插入推断语句,或者在每次查询执行中使用推理器来获取推断语句?删除语句时同样的问题是,他们是否删除了推断语句?
答案 0 :(得分:3)
答案取决于数据库,没有"对"这样做的方式,据我所知,每个人都有所不同。并且没有理由你只需要实现或只进行查询时间推理;你可以做两件事,如果有的话,那就是"对"实现它的方法。
在使用实现的情况下(所有推论都保存在数据库中),真值维护是一个特别棘手的问题。你可以避免它重新构建所有推论,但这种方法有一些明显的缺点。因此,实现的系统将具有复杂的方案,其中存储用于推理的派生树,以便仅重新计算受更新影响的推断。但这是以减慢所有写入和批量加载为代价的。
查询时推理还侧重于真值维护问题;推理不是存储的,而是在评估过程中即时计算,但这是以执行更困难的查询为代价的。
据我所知,BigData,OWLIM和Oracle实现了推理,Stardog在查询时做了所有推理。我不确定Virtuoso和AllegroGraph。鉴于AllegroGraph使用RacerPro,或者至少习惯使用它,我猜它们已经实现了,但这只是猜测。我不知道4Store有任何推理。