一种基于Spark的语义推理引擎实现及应用
【摘要】:近些年在知识图谱蓬勃发展的大背景下,与之相关的语义Web的数据规模也呈现爆发态势。如何在大规模语义Web数据上有效地进行语义推理是研究者们面临的棘手问题。具体来说,在大规模语义Web数据上实施语义推理时,计算量巨大、消耗时间长都是突出的问题,特别是当应用复杂规则逻辑进行推理时,情况更是如此。传统单机环境下的语义推理引擎无法应对大规模知识图谱下的推理,缺乏可扩展性方面的考虑,难以满足在数据规模上日益增长的语义关联数据的推理需求。从分布式角度来看,已有的基于Hadoop MapReduce实现的语义推理框架由于欠缺推理算法相关的网络通信和磁盘I/O等的优化,推理效率依然较低。本文针对上述问题,围绕分布式内存计算平台Spark,研究以下几个方面的内容:首先设计一个良好模块化且推理规则可配置的完整分布式推理引擎架构。接着研究现有的单机和分布式语义推理算法,基于Spark框架对相关算法进行分布式的实现,并针对Spark的原理和特点做相应的优化。将基于Spark实现的推理引擎与现有的传统分布式推理引擎在推理效率上进行对比实验。实验结果表明,本文设计的基于Spark的语义推理引擎在推理效率上要远好于以Hadoop MapReduce为代表的推理实现,同时兼具了高可扩展性。最终将本系统应用到物联网领域,适应实时和流式的语义数据流处理和推理场景。