论文部分内容阅读
Ontology是对一个特定领域中重要概念的共享的形式化的描述,由于具有明确性和共享性,它可以作为领域内不同主体之间进行交流的语义基础;更进一步的,Ontology可以帮助机器理解文档表达的语义信息。语义网络是Ontology的一个重要应用场景。互联网堪称人类最丰富的信息源,但是持续且快速的信息增长使得维护和访问用户所需的网络信息变得越发困难。语义网络是近年来提出的新型网络的概念,旨在使机器自动完成基于语义的网络信息搜索,为用户提供最大的便利。在语义网络的框架中,Ontology用来描述网络资源的语义,从而使机器具有自动管理网络信息的能力。 巨大的数据规模是语义网络环境下Ontology数据管理面临的一个突出问题。另外,网络资源的持续增长也导致了语义数据的持续更新。如何有效支持更新是语义网络环境下Ontology数据管理面临的另一个重要问题。 现有的大多数研究工作尝试基于关系数据库的方式解决问题。但是,关系数据库并不是针对Ontology数据的特点设计的,Ontology数据复杂的图形结构和关系数据简单的扁平结构存在很大差异。基于关系模型管理Ontology数据,需要把复杂的Ontology图拆分成简单的关系存储,并把基于图上的查询转换成大量关系查询的连接。模式上的不匹配从根本上制约了基于关系数据库的方法处理大规模Ontology数据的能力。另外,由于查询推理隐含的Ontology数据耗费大量时间,基于关系数据库的Ontology管理方法往往预先将隐含数据转化为显式数据物化在存储中。这种做法虽然可以保证查询效率,但是增加了更新的代价。在更新原有数据时,如何动态维护物化的隐式数据,使二者保持推理的一致性,是一个代价昂贵的难题。实际上,多大数已有的Ontology管理系统都不能正确有效的支持数据更新。 本文研究了如何设计符合Ontology数据特征的存储和查询处理方法,这也是支持大规模Ontology数据管理的基础。针对现有工作存在的问题,提出了一种新的Ontology存储方法。这种存储方法针对Ontology数据的特点设计了Native的存储结构,打破了关系数据库模型的限制。其中最显著的特色是借鉴了XML的数据模型,采用树形结构存储Ontology用户模式中的类和属性层次。树形存储可以尽量保持原有层次,减少查询时的连接操作,因此不必物化类和属性层次带来的隐含数据,从而减轻更新的代价。设计的存储结构具有很好的更新能力,在Ontology数据变化时能够很方便的保证数据的一致性,同时保持很小的更新代价。 基于这种新的存储方法,提出了相应的查询处理方法,支持Ontology专用查询语言SPARQL,并对它的语法进行了扩展。通过分析Ontology查询语句,发现:带有变量的三元组是Ontology查询中的语义表述的基本单元;我们将其定义为Query Triple,简称QT。相应的,在查询处理中也将QT作为基本的处理单元:首先执行所有的QT得到中间结果,然后将这些中间结果进行连接,得到最终的查询结果。提高QT的执行效率是高效处理Ontology查询的基础,建立了一系列索引结构提高QT查询效率。包括加速查找给定类型或属性的索引,加速查找与给定个体相关的所有类或属性的索引。查询方法充分利用存储的结构优势,有效的支持查询中用户模式层的相关推理,既能够减少物化的推理数据,同时保证良好的查询效率。 简言之,方法解决了关系数据库存储中不能够很好解决的问题,能够更好的处理大规模Ontology数据的存储,查询和更新。实验结果验证了这一结论。