我对编码很陌生,我不知道我想做什么叫做什么,我想找出答案,这样我就可以做更多的研究,而不是重新发明轮子。我寻找诸如data consolidation/combine input之类的东西,但是结果要么太模糊,要么我添加了一种语言的名称,我得到了不相关的库(例如javascript:这或这)。
我想要做的是整合来自不同来源的数据:
sourceA可能有组织名称为“MyFunny App”,而sourceB可能有"MyFunny")。normalization (规范化的值更有可能匹配,冲突更少)来完成,但是我认为任何做这种工作的人都必须执行一些常见的任务()。
赋值:
-增加缺失的值
-对于相互冲突的/现有的价值,请尝试解决
-根据为每个值定义分数的一些标准进行解析
-选择得分最高的值
调试:
-跟踪所有数值(原始/标准化)及其来源/分数
-有日志显示每件东西在通过每个源时是如何被修改的
发布于 2018-05-29 14:06:39
该问题中描述的数据合并可以使用语义web/链接数据和相关的RDF存储技术进行大规模的处理。
其主要思想是将包含所有源元数据的原始数据添加到RDF图(或多个图) "数据湖“中。在此之后,可以使用规则引擎和/或推理引擎将所提取的(“输出”)数据具体化到相同的图中,为数据源和所需的输出数据提供本体(在任何情况下,如果源不同,就需要这种或另一种形式的输出数据)。或者,也可以通过查询(取决于更具体的情况)从原始数据动态计算。
所有上述情况(丢失值、冲突值、跟踪所有值等)都通过这种方式进行ETL (提取、传输、加载)。
语义技术的一个优点是使用开放世界假设和“任何人都可以谈论任何事情”(AAA原则)。这意味着,技术可以非常灵活地利用来源信息或问题中提到的一些分数和规则来解决冲突。
一些简短的解释可以找到,例如在这些幻灯片,大卫布斯博士。
另外一个术语(除了数据整合和ETL)就是企业信息集成():它面临类似的挑战。
这个问题没有具体说明“有效”意味着什么。无论是进程的速度还是调整数据源的效率。语义技术可以更好地对齐,尽管现代的RDF存储和图形数据库是相当有效和有能力的。
请注意,这只是一种可能的技术。技术的选择可能会受到许多细微差别的影响,而开发团队更熟悉的并不是最后的差别。
https://softwareengineering.stackexchange.com/questions/371731
复制相似问题