(计算机应用技术专业论文)DartGridV3语义数据库网格的设计与核心模块实现.pdf_第1页
(计算机应用技术专业论文)DartGridV3语义数据库网格的设计与核心模块实现.pdf_第2页
(计算机应用技术专业论文)DartGridV3语义数据库网格的设计与核心模块实现.pdf_第3页
(计算机应用技术专业论文)DartGridV3语义数据库网格的设计与核心模块实现.pdf_第4页
(计算机应用技术专业论文)DartGridV3语义数据库网格的设计与核心模块实现.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机应用技术专业论文)DartGridV3语义数据库网格的设计与核心模块实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江大学硕士学位论文 。郴,i d v 3 语义数据库网格的设计与核心模块实现 摘要 在互联网飞速发展的背景下,数据库应用体现出了不同以往的新特点,新的 需求应运而生。海量数据及数据孤岛的产生,严重阻碍了科学数据的有效共享。 本文从这一背景出发,在传统的数据集成解决方案基础上引入了语义技术和 网格技术,提出了基于语义的数据库网格的概念,作为异质异构数据库集成的一 种解决方案。 在基于语义的数据库网格理论中,传统数据资源网格服务化和语义化对异质 异构数据库集成的有着重要的意义。解决传统数据资源网格服务化的关键问题, 是数据资源网格虚拟组织的组成、角色及各自职责的定义问题;而解决传统数据 资源语义化的关键问题,是基于语义视图的语义映射和查询重写的思想。 d a r c g r i d 平台是基于语义的数据库网格的一个实现。本文通过对d a n g r i d v 3 平台的系统核心构架、核心模块、核心算法、外围辅助工具及遇到的问题等多个 方面进行分析,对基于语义的数据库网格系统的功能性、实用性、易用性进行了 探讨。 通过将d a n g r i d v 3 平台与当前语义和网格研究领域一些相似或相关的研究 工作进行对比,说明了基于语义的数据库网格及其实现d a n g r i d v 3 的特色,并 对一些技术上的选择做出了分析。 最后,本文还简单介绍了基于语义的数据库网格的一个实际应用中医药 数据共享平台。 关键词:语义技术、网格技术、d a r t g d 、异质异构数据库集成 浙江大学硕士学位论文 。a n g r i d v 3 语义数据库网格的设计与核心模块实现 第一章绪论 1 1 背景 1 1 1 应用背景 夺互联网的特点和发展 今天,互联网已经成为许多人生活中不可缺少的重要部分。作为一个庞大的 信息共享和信息交流的基础平台,其技术普遍具有如下几点本质特征: 1 开放性:任何人在任何地方可以自由的发布、查找和获取他所感兴趣的 信息; 2 普遍性:互联网基于一些基本的协议族和共同遵循的开发和使用模式5 3 松耦合性:互联网中的信息实体可以独立存在而互不影响,它们通过共 同协议来实现互操作; 4 动态性:互联网不存在一个持久稳定的状态,每一时刻都有新的信息实 体加入和退出,因而不同时刻的相同查询的结果可能有很大不同; 5 无界性:互联网从时空两个角度都具备无界的特点:互联网信息实体所 组成的拓扑结构是无法确定其边界的;同时互联网信息实体的增长也不 会有时效上的边界:这两点直接导致了互联网中的信息搜索与查询是一 种无边界的查询。 互联网的上述本质特点正是互连网能够得以快速发展,并且对人类的社会生 活产生与日俱增的影响力的原因。但是同时,也正是因为这些特点为互联网环境 下的信息应用带来了新的问题: 1 信息海洋:开放是导致了信息大爆炸,使得w 曲拥有海量的、深度异质 的、多型态的信息资源,如超文本、图片、多媒体、数据库、应用程序( 组件) 等,大量信息淹没在互联网中,无法有效识别和发现,而成为信息海洋; 2 信息孤岛:互联网中的数据载体或应用程序都具有自主自治特点,由于 缺乏更高层次的协议和标准,而使得现有数据载体之间或互联网程序之间无法进 行无缝的衔接、直接的数据交换和高效的系统集成,从而产生了大量的信息孤岛: 浙江大学硕士学位论文。抓g r i d v 3 语义数据库网格的设计与核心模块实现 此外,不断产生的新需求对互联网要求越来越高,如:高精度的信息查询、 动态的协同共享、个性化的智能服务以及广域范围的资源有效管理等。 造成当前互联网现状的本质技术原因有两个: 1 当前互联网技术缺乏规范化的信息表达模型和语义支持:互联网上信息 资源深度异质异构,因而迫切需要解决信息资源语义的不一致性问题,实现在语 义上的互连互通,以支持无缝的信息集成; 2 缺乏一个统一的体系架构以支持全域范围内的动态虚拟组织的建立:互 联网上信息资源具有无统一控制的“真”分布性,因而,需要研究一个高度可扩 展的体系架构对虚拟的、动态的、层次化的组织进行动态的、有序的管理; 夺科学数据资源的高速发展 随着信息和知识经济时代的飞速发展,各科学研究领域都已积累了大量的科 学数据,如医药科技基础数据库群、国家气象基础数据、生物信息学数据库群等。 这些仍在呈指数级不断增长的科学数据,作为不断增值的巨大社会财富,是科技 创新、经济发展和国家安全的重要战略资源;也是政府部门制定政策、进行科学 决策的重要依据;其共享与应用对于增强我国科技创新能力,提高科技整体水平, 减少重复建设,节约人力物力资源,以及促进社会和经济发展都具有十分重要的 意义。 但是目前这些科学数据都存在如下问题: 封闭性:大部分科学数据都以封闭的状态存在,不论从管理层面还是技 术层面都缺乏有效的机制支持其对社会提供开放的数据服务: 数据孤岛:由于大部分科学数据都由不同部门、研究组织或大学独立开 发,完全缺乏统一的整合与集成方式,因而形成一个个彼此分离的“信 息孤岛”。 缺乏规范和标准:大部分科学数据的建设都没有相应的国际或国家标准 做指导,从而造成科学数据的深度异质异构性; 海量大规模:科学数据不断增长,现有的数据管理平台无法支持大数据 量的有效管理,如多备份、动态镜像、实时控制等。 这些问题严重阻碍了科学数据的有效共享,如何应用现代信息技术,动态整 合与集成跨区域、跨学科的各部门、各单位的科学数据资源,充分利用国际科学 浙江大学硕士学位论文 。m g i d v 3 语义数据库网格的设计与核心模块实现 数据,把分散的孤立的封闭的科学数据资源在开放的动态的松耦合的信息共享平 台下实现多层次、全方位、分布式的数据、信息与知识共享是亟待解决的课题。 1 1 2 技术背景 夺网格技术 i n t e n l e t 的产生与发展,对人们的思维方式、工作模式以及生活理念都产生 了巨大的影响与冲击。以e m i l 为主要应用的第一代i n t e m e t 把遍布于世界各地 的计算机用t c p l p 协议连接在一起;第二代i n t e m e t 则通过w e b 信息浏览及电 子商务应用等信息服务,实现了全球网页的连通;第三代i m e m e t 将“试图实现 互联网上所有资源的全面连通,包括计算资源、存储资源、通信资源、软件资源、 信息资源、知识资源等”,这就是网格计算( g i r dc o m p u t i l l g ) 【l 】【2 】【3 】。网格计 算所解决的核心问题是:“动态虚拟组织( r t i l a lo 唱a 1 1 i z a t i o n ) 中的资源协同共 享( c o o r d i n a t e ds h 鲥n g ) 与问题求解( p r o b l 唧s o l v i n g ) ”。大规模数据共享也是 网格计算所要解决一个难题之一。 夺g 1 0 b u st 0 0 1 k i t g l o b u s 6 】是美国a 玛o m e 国家实验室的研发项目,全美有1 2 所大学和研究 机构参与了该项目。g l o b u s 对资源管理、安全、信息服务及数据管理等网格计 算的关键理论进行研究,帮助规划和组建大型的网格试验平台,开发适合大型网 格系统运行的大型应用程序。到目前为止,g l o b u s 已经成功地应用于数个大型 项目,如美国s y i l t h e t i cf o r c e se x p r e s s 大规模军事仿真计算等。 从上世纪9 0 年代中期以来,g l o b u st 0 0 1 l ( i t 的版本一直在不断更新。目前 g l o b u st o o l l d t 已经发展到第四版,支持的规范也已经从早期的o g s o g s i 发展 成为现在的w s r f ,逐渐与w 曲s e “i c e 融合。g l o b u st o o l k i t 己经成为业界公认 的网格程序基础开发平台。 夺0 g s a - d a i o g s a _ d q p o g s a d a i 【7 是一个支持通过w 如s e r v i c e 访问数据资源( 如关系型数据库、 ) 。l 数据库等) 的中间件软件。通过o g s a d a lw e bs e r v i c e 用户可以对数据进 行查询、更新、传输和发布。o g s a - d a jw e bs e n r i c e s 可以为客户提供数据集成 的服务。 浙江大学硕士学位论文 。a n g i d v 3 语义数据库网格的设计与核心模块实现 第二章设计目标和关键问题 2 1 设计目标 在互联网的高速发展、数据爆炸性增长的背景下,人们对海量数据的使用提 出了新的需求,首当其冲的即是海量的数据库中数据的应用。新环境下的数据库 应用具有的以下这些新的需求特点,也正是本文所描述的基于语义的数据库网格 的设计目标: 能够集成分布于广域网环境下的数据库资源。 在互联网热潮兴起之后,多个数据库之间的数据融合成为新的需求热点。原 本相互孤立的数据资源通过相互的融合,能够利用彼此之间的相关性得到更有效 地利用。然而,广域网环境为数据资源的发布提出了更高的要求。 能够集成异质异构的数据库资源。 数据资源的孤立不仅仅体现在物理介质上的相互分离,更重要的是,各个数 据资源在逻辑结构上也是不同的。具有相互关联甚至相同语义信息的数据资源在 各自的结构设计上可能存在着极大的差异。要融合和连通这些彼此异质异构的数 据资源,必须为之提供统一的数据模式定义及统一的访问方式。 能够动态形成关于数据库资源的虚拟组织。 在广域网环境下,数据资源的所有者( 或者提供者) ,数据资源的使用者, 数据资源的管理者等等角色在整个数据库应用中的作用和地位必须有一整套的 机制提供支持,以使得关于数据资源的各个行为角色能够顺利地执行自己的权利 和义务,维护整个虚拟组织的有效协同运作。 具有相当的健壮性和容错性,能够满足广域网环境下错综复杂的条件。 由于广域网不同于局域网的错综复杂的环境,使得对于数据资源的集成必须 具有相当的健壮性和容错性。整个虚拟组织的运作不能依赖于所有虚拟组织成员 的正常工作。即使有部分的虚拟组织成员由于某种原因无法连接或无法访问,虚 拟组织中的其它部分应当能够继续协同工作而不受影响。并且,虚拟组织的成员 应当能够进行动态的加入和退出,而不影响其他成员的运作。 具有相应的授权、访问控制等安全机制。 浙江大学硕士学位论文 。眦g i d v 3 语义数据库网格的设计与核心模块实现 第三章体系架构和核心组件 本章我们着重讨论基于语义的数据库网格的体系架构这个问题。我们将从两 个方面来描述它。 首先,网格技术所解决的一个重要问题是虚拟组织的协同工作问题,基于语 义的数据库网格也不例外。我们将通过对该虚拟组织进行分析,理清其中的组织 角色以及他们各自承担的职责,从而得到整个数据库语义网格的一个宏观整体上 的概念,了解各个角色的协作方式。 其次,对于数据库语义网格虚拟组织中的每个角色及其相关职责,在体系架 构中都应该有相应的核心组件与之对应,提供支持。在这里我们将简单介绍体系 架构中的各个核心组件,以及它们的功能作用,从而理清基于语义的数据库网格 平台的定义和功能。 3 1 虚拟组织 虚拟组织 1 是指:为了进行协作的问题求解,根据一定的规则进行资源共 享的一组个人或组织。这种共享是高度可控的,资源、资源提供者、资源使用者、 以及共享的条件都进行了清楚的定义。 而基于语义的数据库网格的虚拟组织,指由一组角色动态组成的,为了共享 一些语义上相似或者相关的数据库资源而形成的组织。我们可以把这些相似或者 相关的语义概念的总和称为这个虚拟组织的主题。这个虚拟组织中共享的资源主 要指这些语义上相似或者相关的数据库资源。而该虚拟组织的成员角色可能包括 虚拟组织管理者、数据源提供者、领域专家、数据资源使用者等。这些角色在虚 拟组织中各自承担一定的职责,通过彼此协同合作来确保虚拟组织的正常运作。 当然,这些角色并不是彼此互斥的。有可能一个虚拟组织的成员同时具有多 个角色。例如,极有可能数据提供者同时也是数据使用者。 更为具体地来说,基于语义的数据库网格的基本功能包括: 管理虚拟组织中的数据资源,包括加入退出、查询、元信息获取等。 维护虚拟组织中的统一数据模型,即本体论。 维护虚拟组织中的各数据资源与统一数据模型间的语义映射关系。 浙江大学硕士学位论文d a r t g r j d v 3 语义数据库网格的设计与核心模块实现 提供一个统一的语义查询界面,为数据用户屏蔽底层数据的媒质和结构 差异,使得用户可以在无需了解数据资源具体信息的情况下,从多个数 据资源中得到具有关联关系的数据。 3 2 虚拟组织角色描述 根据基于语义的数据库网格的定义以及相应虚拟组织的设定,其虚拟组织应 当包含以下几种角色: 虚拟组织管理者 一个基于语义的数据库网格虚拟组织应该有一个或者更多的管理者。管理者 的职责在于,对于不同的虚拟组织成员和资源,提供诸如资源有效性、角色权限 等方面的进行控制。应当注意的是,由于虚拟组织的动态性,管理者并不是一个 拥有绝对权力的角色。虚拟组织中的各个角色成员还是拥有充分的自治性。 领域专家 虚拟组织中的领域专家应该由对于这个虚拟组织的主题拥有权威的成员担 任。领域专家的职责在于确定整个虚拟组织中统一的本体论。这个本体相当于一 个得到虚拟组织中成员认可的词汇表。所有的数据共享都将建立在这个基础之 上。当然,这个统一本体论既可以是由领域专家定义的,也可以由组织成员通过 提案、讨论再由领域专家确定。但是由于虚拟组织中本体论的统一性要求,领域 专家角色在虚拟组织中的个数应该较少。 数据提供者 数据提供者的职责是为整个虚拟组织提供数据来源和数据的语义定义。因此 数据提供者必须向整个虚拟组织共享的信息包括一下几个方面: 数据的物理访问方式。包括数据库或数据服务的类型、地址、端口信息等。 数据的访问权限信息。包括数据库或数据服务的用户与虚拟组织中成员的权 限对应信息等。 数据的结构与虚拟组织统一本体之间的对应关系,即语义注册信息。这部分 内容很有可能需要数据提供者通过咨询领域专家或者是和领域专家共同完成。 浙江大学硕士学位论文 。a n g n d v 3 语义数据库网格的设计与核心模块实现 数据资源相关服务维护了所有的数据资源的相关信息,所有直接与数据资源 有关操作都由这个组件提供支持。这些操作包括数据资源的动态发布力口入、退 出、信息维护、信息查询、数据的导入和查询等等。 实际上,这个核心组件为各种不同类型的数据资源提供了统一的接口,使得 查询能够跨越不同的数据资源类型。数据库网格平台在分析用户的查询请求的时 候,正是从这个数据资源服务中获得数据资源的相应信息,进而生成查询计划, 并把查询分派到各个数据资源的。 语义注鼹表疆务 语义注册组件中维护了各个数据资源的数据模式与本体论之间的映射关系。 这个重要的数据结构是整个平台实现异构数据集成的基础。这个组件对所有语义 映射信息提供动态的添加、删除、查询等操作支持。 语义查询凝务 语义查询服务组件是直接面对数据使用者的接口,它负责执行用户根据本体 论构造的语义查询,返回查询结果。 语义查询服务是整个平台中最为关键的部分,它又可再细分为: 查询预处理:包括验证本体的有效性、验证数据资源的可用性、验证查 询的合法性和完整性等一系列工作。 查询解析:负责分析语义查询,根据语义注册信息生成相应的查询计划。 这些查询计划描述了所要查询的数据来自哪些数据资源、具体的表名、 数据列、查询条件、各个数据表之间的连接关系以及各条查询计划之间 的执行依赖关系。 查询分派执行:将查询计划根据一定的策略分发派送到各个相应的数据 资源,并执行。 原子查询结构融合:将原子查询计划的执行结果进行融合,得到符合用 户要求的最终查询结果。 语义包装服务 1 4 浙江大学硕士学位论文。a n g r i d v 3 语义数据库网格的设计与核心模块实现 用户可以选择以特定的方式把查询的结果与其语义信息结合起来( 包括 l 、r d f 等方式) 。语义包装组件满足了这个需求,使用户能够得到符合其预 期的数据结果。 总结 下面两张表分别分析了基于语义的数据库网格虚拟组织各个角色与核心组 件之间的关系。 各角色与模块旬的关系 虚拟组织管领域专家数据提供者数据使用者 理者 本体论本体论发布、维本体论查询本体论查询 服务护、更新 数据资管理维护数 数据资源的加 源服务据资源相关入、访问权限设 信息 置 语义注 协同数据提供提供、维护语义 册服务者进行语义注注册信息 册 语义查输入语义查询, 询服务 得到查询结果 语义包 将语义查询结果 装服务 与语义信息结合 表3 1 基于语义的数据库网格虚拟组织各个角色与核心组件之间的关系 经过上面的分析,我们初步了解的基于语义的数据库网格的体系架构。 浙江大学硕士学位论文 。矾g r i d v 3 语义数据库网格的设计与核心模块实现 图3 2 基于语义的数据库网格体系架构图 1 6 浙江大学硕士学位论文。a r t g i d v 3 语义数据库网格的设计与核心模块实现 第四章核心技术和算法 4 1 使用视图来进行查询 通过虚拟接口对一组不同的数据库资源做统一查询是一个老问题了。典型的 做法被称为基于视图的查询重写【2 1 】 2 2 。这种做法把这组数据库资源描述为一 些中间视图,然后将用户对于中间视图的查询重写为直接对数据库资源的查询。 大部分使用中间视图的数据集成查询算法中,中间视图仍然是一个关系型的 数据模型,或者以x m l 描述的数据模型。使用本体论来作为中间视图的介质是 一种新的尝试。特别的,在基于i m f 的本体论模型中,我们考虑一组无论在关 系模型还是x m l 模型中都没有描述的额外约束,例如r d f s :s u b c l a s s o r d f s :s u b p r o p e 啊o er d f s :d o m a i n 以及r d f s :r a n g e 等等。这些约束对于数据集成来说 是十分有意义的。举例来说,假如在本体论中有如下三元组:f o a f = s c h o o m o m e p a g e r d f s :s u b p r o p e r t y o f f o 世h o m e p a g e ,并且从关系表t 的某列到属性 f oa f = s c h o o l h o m 印a g e 建立了语义映射。如果通过语义查询查找f o 旋h o m e p a g e , 则查询重写算法应该自动地判断出关系表t 与该查询有关。换句话说,如果三 元组:a a af o a f = s c h o o l h o m 印a g e :b b b 属于该查询的结果,那么:a 艄 f 0 吐h o m 印a g e :b b b 应该也属于查询结果。也就是说,r d f s :s u b p r o p e n y o f 属性为 中间视图设置了一种额外的约束,使得查询可以获得更多的结果。 要使用本体作为中间视图来对数据进行集成和查询,必须解决两大关键问 题: 1 语义映射,即如何把中间视图和被集成的数据模式对应起来。 2 查询重写,即如何把对于中间视图的查询,转换成为对于底层数据的 查询。 语义映射和查询重写是整个平台进行异质异构数据集成的基础。其中,语义 映射是一个数据结构,它描述了关系型数据模型与本体论数据模型之间的对应关 系。而查询重写则是建立在这个数据结构上的算法,它负责使用数据结构中的信 息,把用户的语义查询转换为对数据库的查询计划。 浙江大学硕士学位论文 。,【g n d v 3 语义数据库网格的设计与核心模块实现 本文中描述的语义映射和查询重写算法来源于浙江大学c c n t 实验室所发 表的数篇学术论文1 ,其后在实现的过程中又经过不断完善而形成的。 4 2 语义映射 让我们通过一个简单的例子来说明语义映射。 假如w 3 c 和浙江大学( z j u ) 都有雇员数据库,我们希望用f o a f 2 本体将 它们集成起来,这样我们就可以简单地通过查询f o a f 本体来查询这两个数据 库。 图4 1 从关系表到r d f 本体的语义映射 1 0 】 图4 1 描述了两个关系数据库、f o a f 本体的一部分以及它们之间的两个映 射关系。在图上,虚线箭头表示了元素之间的映射关系。额外的) f s 约束表明, f o 娃s c h 0 0 1 i o m 印a g e 和f o 世a c c o u m s e r v i c e h o m e p a g e 都是f 0a f = h o m e p a g e 的子属 性,而f o a f o n l m e c h a r a c c o u m 和f o a f o n l i n e e c o m m e r c e a c c o u n t 都是 f b a f = o n l i n e a c c o u m 的子类。在传统的数据集成中,映射都被定义成视图。在这 里,每个数据资源中的关系表则被认为是r d f 本体论的一个视图,我们把这些 视图称为语义视图。 定义4 “1 0 语义视图:形如r ( x ) 一:g ( x ,y ) ,其中 1 r ( x ) 是视图的头部。r 是一个关系谓词。 1 具体请查阅参考文献【1o 【1 2 】 2t h ef e n d o f a 蹦d ( f o a f ) p r o j e 吐:h 即:f 0 睡p r o j e m o 叫 1 8 浙江大学硕士学位论文 。a n g 棚v 3 语义数据库网格的设计与核心模块实现 2 g ( x ,y ) 是视图的主要部分。g 是一组r d f 三元组,并且其中的一些 节点可能被变量代替。 3 x ,y 包含了变量和常量。x 中的变量称为区别变量,而y 中的变量 称为存在变量。 通过定义我们看到,语义视图一般包含两个部分:视图的头部和视图的主体。 其中,头部是一个关系谓词,而主体是一组r d f 三元组。简单来说,视图的主 体可以被看作是在i f 本体论上的一个本体查询,它从i f 本体论的角度定义 了视图头部关系谓词的语义。类似于传统的基于视图的查询重写理论,语义视图 中存在两种变量。在视图头部出现的变量称为区别变量,只出现在视图主体而未 出现在视图头部的变量称为存在变量。 通过语义视图理论,我们可以清晰地建立起关系型数据库与r d f 本体论之 间的语义映射关系,从而建立起我们的中间视图,为语义查询打下基础。 4 3 语义查询 仍然通过一个简单的例子来说明语义查询。 下面这个查询0 1 是f o a f 本体的一个查询: q 1 :s e l e c t ? e n ? e m ? e h ? y 27 a n ? a h w h e r e ? y 1r d f :t y p ef o a f :p e r s o n ? y 1f o a f :n a i l l e ? e n ? y 1f o a f :m b o x ? e m o p t i o n a l ? y lf o a f :h o m e p a g e ? e h ? y 1f o a f :h 0 1 d s a c c o u n t ? y 2 ? y 2r d f :t y p ef o a f :o n l i n e a c c o u n t ? y 2f 0 8 f :a c c o u n t n 锄e ? a n ? y 2f o a f :h o m e p a g e ? a h 这个查询是用标准本体论查询语言s p a r q l 3 写的。它的意思是查出某人的 名字、邮箱、主页以及他的在线账号、账号名称和账号服务的主页。我们注意到 在查询中有一个o p r n 0 n a l 块。根据s p a r q l 规范,假如0 p t i o n a l 块不能 3w 3 c s p a r q l :b n p :w 、mw 3 o 椰“r d f s p 盯q 1 一q u c r y 1 9 浙江大学硕士学位论文 。a n g i d v 3 语义数据库网格的设计与核心模块实现 得到结果,则可以被忽略。因此,o p t i o n a l 块可能会影响到语义查询中,查 询重写的结果。 现在的问题是,我们有了一组数据资源,有了一组语义视图,并且还有一些 额外的约束条件( 比如r d f s :s l l b c l a s s o f ) ,我们应该怎样处理类似q 1 这样的语义 查询? 传统基于视图的查询重写的做法是,把视图的定义应用到这组数据资源上, 将其看作是一些不完整数据库,再将这些不完整的数据库进行连接操作。但是这 种做法不能直接用到语义查询上,因为我们还要考虑那些额外的约束条件。我们 提出了一套类似,但是更适合i f 语义查询的方法。简单来说,我们根据语义 视图的定义以及r d f s 的额外约束条件构造一个目标) f 实例g 。然后,我们 通过在g 上执行查询来获得结果。事实上,我们把这个构造过程分为两个阶段: 1 在语义视图上考虑额外约束。 例如,对于三元组( ? y 2f | o 吐a c c o u n t s e r v i c e h o m e p a g e ? a h ) ,考虑额外约束 f b 娃a c c o u n t s e r v i c e h o m e p a g er d f s :s u b p m p e n y o f f o 吐h o m e p a g e ,? y 2 f o 娃h o m e p a g e ? a ”,则产生一条新的约束条件,( ? y 2f o a f = h o m 印a g e ? a h ) 。 2 在数据资源上考虑语义视图。 根据已经扩展过( 考虑了额外约束) 的语义视图,把关系型的数据转换为 r d f 实例。换句话说,相应于数据资源中查出的数据,一组符合语义视图的r d f 三元组将会被加入到结果实例中。 一个需要注意的地方是生成空节点i d 的s k o l e mf 1 1 n c t i o n s 。从图4 2 我们可 以看到,对于查询中的存在变量,在结果中都生成了一个相应的空节点d 。比 如,一:b n l 、一:b n 2 就是相对于? y 1 、? y 2 的空节点i d 。每个r d f 类在结果中都对 应于一个可以为它生成空节点i d 的s k 0 1 e m f l l n c t i o n 。例如,图4 1 中的r d f 类 就有如下的s k o l e mf u l l c t i o n : f - o 娃p e r s o n s f l ( ? e n ) ,f b 碰0 n l i n e a c c o u n t s f 2 ( ? a n ) s k o l e mf u n c t i o n 的参数取决于用户想在结果上使用的约束条件。例如, s f l ( ? e n ) 就意味着如果在结果中有两个实例的f b 吐n 锄e 属性一样,则认为这两 个实例是相同的,应该生成同一个空节点i d 。这有点类似数据库中的主键约束, 2 0 浙江大学硕士学位论文 。a n g d v 3 语义数据库网格的设计与核心模块实现 在数据结果融合中是非常有用的。比如对于f o 旋n 锄e 为“h u a j u n ”的节点,w 3 c 和z j u 两个数据源生成了同样的空节点i d 。 在很多遗留的数据库中,数据的语义是没有完整表达的。就拿问w 3 c :e m p 表来说,它隐含了这样的意思:每个人有一个在线账号,这个账号的名字是o ( 。 这里“每个人有一个”的语义信息被丢失了。这种语义可以通过空节点保留下来, 因为空节点的意思就是:存在某样东西,但无需清楚地标识它。事实上,这就是 一种不完整的语义信息。从这点上来说,空节点是语义数据集成中一种重要的表 达单元。 i 墓菇懑穗:耋篙嬲纂i 龆惑黧:黼曼蓑。匿麓瑟i i i l i 攀瓮:警鬻舞霸霉i ;, l 鼎坤咄p - 脚 “赫_ ;- q 口- nt 蛐- l p 删 h t t 舳j ,“付- s o h r t er o l 3 t l n n t ii 埘t 日髓a 牡雠v j n 0 罄t n fv 靶w s t n r g p tr b fi n s t 8 n c 2 争0, 斛麟_ 黼! 碳b _ 嫩鲰,+ : 一 础国,麟馘抽“郴川? 抽¥拯4 船x lj - 上 焱t 摊文t 蠹脚h 。面蜷# ,坤曲耐怫 m _ 2 “口p b t 口h l n k 洲o 2 羔烹: + 嘲_ 胖囊畦舯l “_ l 。t t 特神1 孽料t 柚,t 町堂旷;:,日t 略 n 蛾o - m i c b n f t 4 - t 膨彬譬! 燃蛾荆! ! 艰w 2 1 4 ,m “。h l n 州1 t 憎t 鳓一_ - 舢- “柑虻: m 们 h t 辑畔 j 姆x 髓“口_ -舟l l o _ ,4 甜嗨l # 商f 罄辩蠢墨铲毒蕊鍪。一肛:毋蠖蠹麓誊瓣:龋2 燃一; 麓i i 篓鲞霪! “” i iu ;豪囊鬻畿:2 昌肇嗽嚣嚣。 2 :怒l 嚣器冀;芝:鏊 j 曲。够赫”1 ”辨:甬堂- i 。 图4 2 数据资源和日标i c d f 实例 1 0 现在我们可以给查询语义一个正式定义了。 定义4 2 1 0 查询语义:若q 是一个r d f 语义查询,那么相对于一组关系型数 据库资源i 、一组r d f 语义视图v 以及一组r d f s 语义约束c 来说,对q 的一组查询结 果记为a n s w e r s v ,c ( q ,i ) 。a n s w e r s v ,c ( q ,i ) 由一组三元组组成,并且所有这些三 元组t 都满足t q ( g ) ,其中g 是目标r d f 实例。 我们已经看到空节点为我们带来的灵活性,但是它也为查询计算带来了复杂 性。事实上,计算查询结果是一个n p 完全问题。因此,这里存在一个灵活性和 复杂性的权衡。 4 4 查询重写 查询重写是语义查询的核心算法。 2 l 浙江大学硕士学位论文 。郴i d v 3 语义数据库网格的设计与核心模块实现 首先,需要对砌) f 语义视图进行预处理。刚) f s 约束条件被加入到视图中, 得到扩展的语义视图。这个步骤地作用在于能够帮助处理更多种类的查询。假如 没有这个步骤,查询0 1 就没有办法处理了。因为f j 吐0 n l i n e a c c o u n t 和 f o a f = h o m e p a g e 的语义关系没有在任何语义视图定义中体现出来。 然后,语义视图定义被转换成为一组“类映射规则”,以便于语义查询转换 为对关系模型的查询。这个算法有些复杂,总的来说可以被分成四步。 1 将三元组分组。在语义视图的主体中以三元组的主语进行分组。例如, 所有主语为? y 1 的三元组分为一组。 2 把三元组中的存在变量替换为相应的s k o l e mf u n c t i o n 。例如,? y 1 、? y 2 就被替换为s f l ( ? e n ) 、s f 2 ( ? p n ) 。 3 构造类映射规则。对于每组三元组,创建相应的类映射规则。规则的 头部就是原先的关系谓词,而主体是该组三元组。 4 融合类映射规则。有两种情况可能导致类映射规则的融合: a ) 当产生重复规则的时候。 b ) 当同一个数据资源中的数据表之间有相关规则的时候。 最后,根据这些生成的类映射规则,把输入的语义查询重写为一组有效的新 查询。类似于生成类映射规则的过程,先把查询主体中的存在变量替换为相应的 s k o l e m f u n c t i o n ,然后,在每组三元组中寻找“可应用的映射规则”。如果找到, 则把这组三元组换为该映射规则,并生成一个新的部分重写。当所有的三元组替 换完毕是,新的查询就产生了。当查询中遇到没有映射的o p l l 0 n a l 三元组, 该三元组中的变量就被设为n u l l 。 浙江大学硕士学位论文。a n g r i d v 3 语义数据库网格的设计与核心模块实现 图4 3 查询重写 1 0 定义4 3 1 0 三元组映射:有两个三元组t 1 、t 2 。如果从v a r s ( t 1 ) 到v a r s ( t 2 ) 有一个变量映射巾,使得t 2 = 巾( t 1 ) ,那么就称有一个从t 1 至0 t 2 的三元组映射。 定义4 4 1 0 可应用的映射规则:对于查询q 中的一组三元组g 和一个映射规 则m ,如果存在一个三元组映射巾,把g 中所有非o p t i o n a l 的三元组映射到m 中的 某个三元组,则称m 对于g 是一个可应用的映射规则。 定理4 1 1 0 s o u n d n e s s :以,代表一组r d f 语义视图。对于一个r d f 本体论 上的语义查询q ,查询重新算法生成一组新查询r ,使得r ( i ) 包含于q ( g ) 。其中, i 表示每个数据资源,而g 表示i 所对应的目标r d f 实例。 定理4 2 1 0 c o m p l e t e n e s 8 :以,代表一组r d f 语义视图。对所有在r d f 本体 论上的语义查询q ,p 表示满足r ( i ) 包含于q ( g ) 的一个查询重写( 其中,r ( i ) 表示 由查询重写算法生成的一组新查询) ,有p ( i ) 包含于r ( i ) 。 定理4 1 、4 2 描述了查询重写算法的正确性 2 。 查询重写算法的复杂度为o ( m n ) ,其中n 为语义查询中的三元组个数,而m 为映射规则的条数。总的来说,基于视图的查询重写是一个n p 完全问题。尽管 如此,实际应用中的情况并没有理论上那么糟糕。事实上,在本文第七章提到的 中医药应用中的大多数情况下,它都能够正常地工作。 浙江大学硕士学位论文。a n g d d v 3 语义数据库网格的设计与核心模块实现 第五章原型系统实现 本节我们将介绍基于语义的数据库网格的一个原型系统实现_ d a n g r i d 4 数据库网格平台及其相关工具。并对在原型系统实现时,从理论到实际过程中遇 到的或需要注意的一些问题进行讨论。 5 1d a r t g r i d 语义数据库网格平台 前面我们已经分析了基于语义的数据库网格所要解决的问题和必须具备的 核心组件。d a n g r i d 语义数据库网格平台作为基于语义的数据库网格的基础设 施,目的是为整个虚拟组织的建立和正常运作提供支持和保障。 5 2 各核心组件的实现概述 根据第三章所分析的虚拟组织体系架构,d a n g r i d 分别实现了对于本体论、 数据资源、语义注册表的管理模块,支持虚拟组织中相应资源的使用和控制。在 4 h t 【p :c c n t 习ue d uc 嘶r o j e c 吲d a n 铲i d 图5 1d a r t g r i d 模块及工具图 2 4 浙江大学硕士学位论文。a n g 州v 3 语义数据库网格的设计与核心模块实现 语义查询组件方面,d a r t g r i d 将其进一步分为查询解析、查询重写、查询调度等 模块,通过相互协作来进行语义查询。d a n g r i d 实现了一个简单的易于扩展的语 义包装模块,提供语义包装组件的功能。 下面我们进一步就算法较为复杂的几个模块做更进一步的介绍。 5 2 1 语义映射的实现 语义映射根据i m f 语义视图理论来实现。由于关系型数据模型和语义数据 模型之间的差异,关系型数据库的语义视图化过程中可能遇到各种情况。然而, 大多数设计良好的关系型数据库中,关系表与本体论之间的对应关系大都可以归 结到几种基本的情况或者它们的组合。下面,我们就通过讨论几种基本的映射情 况,来具体讨论如何建立语义映射。 关系型数据库的数据模型一一表、列 数据模型在概念上是数据、关系以及对数据的约束这三者的集合。关系型数 据库模型的真正含义就是关系型数据模型要求数据按照关系来保存。关系( 一类 数据在概念上的集合) 由表格( 它保存了关于实体的信息) 来表示。表中的每一 行对应一个t u p l e ( 元组) ,列对应一个属性。每个属性都和一个值域( 该属性可 能的赋值范围) 相联系。 语义数据模型一一本体、属性 本体模型更像是一种类和对象的模型。数据模型在这里被表达为本体及其属 性,而数据则表达为本体实例。 建立对应关系 在两种数据模型间建立对应,要解决如下问题 关系銎数据痒阊的数据模式差异 建立虚拟组织统一本体的最根本原因就是要解决同一主题的关系型数据库 之间的数据模式差异问题。由于虚拟组织中的数据提供者是相互独立的,他们的 数据库模式必然存在相当的差异。举例来说: l 浙江大学硕士学位论文。m g n d v 3 语义数据库网格的设计与核心模块实现 两个学校希望进行教学资源的整合,两校学生可以互选对方学校的课程。两 个学校都建立了课程和教师资源的关系型数据库。其中,如下 列名数据类型 c 1 a s s d i n t e g e r c l a s s n a i i l e s 仃i 1 1 9 t c a c h e r i d i n t e g e r t 鞋i c h e r n a i i l e s 仃i n g m a ) 【s t u d e n t i n t e g e r 甲学校的数据库 列名数据类型 n o i n t e g e r n m e s 廿i n g l e c t i l r e r i n t e g e r l e c n l r e r s e x s 砸n g c 印a c 时i n t e g e r 乙学校的数据库 我们的语义模型必须能够覆盖这些可能的关系模型。因此,语义数据模型必 须设计为具有充分的灵活性和可扩展性:必须能够同时满足多种关系型数据模型 的映射要求,并且可以根据要求方便地进行扩展,加入以前未能考虑到的概念或 属性。 如何才能设计出符合要求的语义数据模型呢? 我们知道,关系型数据库的设 计来源于实际数据之间的关系。无论关系型数据模型具体形态是怎样,它都反映 了实际数据的模型。要使我们的语义数据模型能够尽可能的满足更多的关系型数 据模型的映射要求,必须根据实际数据的关系来设计它。另外,由于本体的设计 者预先并不一定知道所有的数据提供者的关系模型,所以也只能根据这个领域 ( 或者说该虚拟组织的主题) 中数据的实际情况来设计本体( 也就是语义数据模 型) 。事实证明,也只有这样设计出的本体,才具备我们要求的灵活性和可扩展 性。 关系型数据库数疆模式s 语义数据摸式的差异 语义模型,即本体的特点是:它由概念和属性构成,它的表现形式是图。而 关系模型的表现形式是表。要使用语义模型来解决关系模型的差异问题,必须能 够在语义模型中表达出关系模型的核心一关系。 事实上,语义模型和关系模型的对应存在下面几种情况: 1 一张表对应一个本体 这是最为简单的情况,即一张数据表描述的是同一个概念的属性。在这种情 况下,我们只需简单的将概念的属性和数据表的列对应起来即可。 2 一张表对应多个本体 浙江大学硕士学位论文。叫g r i d v 3 语义数据库网格的设计与核心模块实现 这是一种常见的情况。 我们回到上面的例子。在那个例子中,实际上包括了两个概念:课程和教师。 其中,课程概念包括课程标识、课程名称、课程容量等属性,而教师概念包括教 师标识、教师名称、教师性别等属性。无论是甲学校还是乙学校的数据库,这两 个概念的数据都储存在同一张数据库表中。这种情况一般出现在两个概念之间存 在一对一的关联关系的情况下,此时数据库设计者可能将数据放在一个关系表中 方便处理。当然,也可能存在例外情况,但那样的话可能产生不必要的数据冗余。 更一般的情况是,为了表达这种关系,数据库设计者会在一张数据表中主要 描述某一个概念,而使用一个或几个列来描述另一个概念的唯一标识。例如,对 于上面这个例子,我们可以用两个数据表来表达: 列名 数据类型 c l 够s r d i n t e g c r c l a s s n a m es 血g m a x s t l l d e m i n t e g e r t e a c h e r i i ) i n t e g e r l 列名数据类型 t e a c h e 棚) i m e g e r t b a c h e r n m e s 仃i l l g 表1表2 我们可以看到,在表l 中,通过一个t e a c h e r ) 列表达了表2 中数据与表l 中数据的关系。而每个教师的具体信息都存储在表2 中。这样,就可以把数据的 冗余大大减少。而在与本体的映射中,表l 就同时映射到课程和教师两个概念, 表2 映射到教师概念。 再深一步看,事实上课程概念中还应该有一个任课教师的属性,这个属性指 向一个教师概念的实例。但是这个属性在关系表中是找不到对应的表达的,我们 如何来表示这个属性呢? 在数据表中,我们可以发现有两个数据列与教师概念的 表示属性建立了映射:表1 的t e a c h e r i d 列和表2 的t e a c h e r i d 列。这种映射方 式正好表达了课程概念和教师概念之间的关系,也就是任课教师这个属性。 3 多张表对应一个本体 也可能有另外一种情况:一个概念由于种种原因( 例如,数据来自不同的部 门,不同的系统) ,被存储在多张数据表中。仍然以上面的课程为例,它可能被 存储为如下几张表: 浙江大学硕士学位论文。a n g i d v 3 语义数据库网格的设计与核心模块实现 l 列名数据类型 c 1 a s s i di n t e g e r c l “s n a i i l o s 埘n g f 列名数据类型 c l a s s i d i n t e g e r m a x s m d e n t i n t e g e r f 列名数据类型 c 1 a s s d i n t c g e r t b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论