论文部分内容阅读
语义网(Semantic Web)通过赋予信息明确的结构和语义,使得机器能更好地显示、理解和处理它们。RDF(Resource Description Framework)是由W3C(万维网联盟)提出的用于描述语义万维网资源的一个框架。随着链接开放数据(Linked open data)和DBpedia等项目的全面展开,很多领域以RDF为数据模型发布各自的语义知识库。结构化查询语言是访问语义数据的标准查询语言,但查询规则复杂不能满足普通用户的查询需求。为了满足普通用户对日益庞大的RDF语义数据检索的需求,提出能够处理海量RDF语义数据且支持人们熟悉的高效的关键词分布式搜索方案,对于语义搜索推广和语义知识共享具有重要意义。首先,本文提出一种面向大规模RDF数据的分布式语义搜索算法DKSSO(Distributed Keyword Semantic Search on Ontology)。该算法基于分布式数据库Hbase存储RDF本体和RDF实例数据,依据RDF数据类型将大规模实例数据进行分布式分类存储,帮助搜索定位和缩小查找范围。在搜索时,先结合RDF本体构建关键词对应的本体子图,将关键词从内容层面映射到本体语义层面,并提出一种语义评分函数评分排序。再利用MapReduce并行计算,在大规模RDF数据图上优先搜索评分值高的本体子图,得到对应的查询结果子图,直到找到Top-k结果。接着,随着在线分析连续数据流的应用需求日益增多,数据处理从静态数据逐渐向流式动态数据转变,为了满足用户对RDF数据流实时查询的应用需求,本文提出了一种面向大规模RDF数据流的分布式实时搜索算法DKSSRS(Distributed Keyword Semantic Search over RDF Data Stream on Storm)。基于分布式流式计算框架Storm,实时地处理RDF数据流,设计分布式存储方案存储流式数据,存储时用时间戳区分历史数据和新增数据流。构建Storm实时查询拓扑任务,接收并处理实时过来的查询请求。并且建立查询缓存,复用历史查询结果,支持增量更新查询,完成高效地实时查询。最后,本文通过在基准测试数据集和真实数据集上进行对比实验,表明了DKSSO算法和DKSSRS算法相比现有的搜索方案,在搜索效率和搜索效果上都具有明显的优势。此外,本文还分别通过实验验证DKSSO算法和DKSSRS算法具有较好的可扩展性,且DKSSRS算法能够在分布式环境中对实时查询进行正确高效地处理。