论文部分内容阅读
近年来,随着语义网技术的不断发展与进步,用来描述语义网资源的资源描述框架(RDF)越来越多地应用于各个领域,RDF的广泛应用使得其数据量急速增长,如何高效地管理海量RDF数据成为一个急待解决的问题。现有的RDF数据管理系统大都采用传统的关系型数据库来存储RDF数据,随着RDF数据的爆炸式增长,这种方式已难以高效地管理海量RDF数据。有研究表明关系型数据库在处理海量RDF数据时存储与查询效率都比分布式数据库低,越来越多的研究者开始利用分布式系统的海量数据存储与并行计算能力解决海量RDF数据管理问题。海量RDF数据管理的研究主要分为两个方面:第一,如何有效地存储海量RDF数据;第二,如何高效地查询RDF数据。本文针对这两个问题提出一种基于分布式数据库HBase的RDF数据存储模型,设计并实现该存储模型上的SPARQL BGP查询算法。论文的主要工作如下:(1)提出一种基于分布式数据库HBase的RDF数据存储模型,根据OWL描述的本体信息,将RDF实例数据按类划分,主语为同一类的三元组数据保存在该类的S PO和O PS两张存储表中,充分利用HBase提供的Row-key索引,在保证查询性能的同时有效地减少了存储开销。(2)利用HBase Java API实现该存储模型上的SPARQL查询与更新操作,设计满足八种形式Triple Pattern的Triple Pattern查询算法、提供满足子类、子属性和逆属性三种推理关系的Triple Pattern推理算法以及SPARQL基本图模式(Basic Graph Pattern, BGP)查询算法。并且根据BGP中子句的选择度、子句之间是否有共享变量以及子句的谓语是否为rdf:type对BGP查询算法进行优化。(3)采用RDF标准测试数据集LUBM分别在单机伪分布式Hadoop系统以及真实的分布式Hadoop集群环境下对存储模型与查询算法进行了实验评估,实验对不同大小的数据集分别执行LUBM提供的14种查询,验证了存储模型和查询算法的可行性,并且对BGP优化前与优化后的查询性能进行了分析与比较。并且与现有的存储模型与查询算法进行比较,通过对比实验证明了本文提出的方案的有效性。