问题的一般情况
假设有一个数据提供者(源)具有定义良好的模式,API等...但它是只读的或不能立即传播推送的更改或者可以过滤更改。众所周知的这类来源的例子:维基百科(dbpedia),freebase。
我们需要一种方法来填充数据而不会丢失与数据源的同步(我们不能只是分叉这些数据并维护它)。
更具体的方案
数据源有事实:
[ [John, birthday, 1985], [John, died, 2013], [Vasya, birthday, 1970] ]
而且我们知道,实际上约翰的生日是1986年,而他现在还活着。我们也知道,Vasya昨晚真的死了,我们需要向我们系统的用户提供实际的事实。
但我们还需要与提供商同步数据,例如,如果数据源将Vasya的生日改为1970年或编辑与John死亡相关的信息(例如,通过添加三[John, died, 2014]
),我们需要显示此信息,因为它更实际。
我目前的情况
目前我正在考虑围绕它和原始数据源实施一些“补充提供者”和“门面提供者”。首先只包含与源提供者数据不同的数据,后者将为实际应用程序提供数据读取和操作机制。
我试图找到现有的解决方案,但失败了。但我想这是一个众所周知的问题,我只是不知道要搜索什么词。
那么,我应该如何在我的应用程序中管理这样的问题?而且,如果你知道一些关于这个问题的好消息来源(书籍,博客文章,研究等......),请提供参考资料。