(计算机软件与理论专业论文)数字图书馆包装层生成技术的研究.pdf_第1页
(计算机软件与理论专业论文)数字图书馆包装层生成技术的研究.pdf_第2页
(计算机软件与理论专业论文)数字图书馆包装层生成技术的研究.pdf_第3页
(计算机软件与理论专业论文)数字图书馆包装层生成技术的研究.pdf_第4页
(计算机软件与理论专业论文)数字图书馆包装层生成技术的研究.pdf_第5页
已阅读5页,还剩77页未读 继续免费阅读

(计算机软件与理论专业论文)数字图书馆包装层生成技术的研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 包装层为实现异构数字图书馆系统的集成和互操作提供了一条有效的 途径。但是,w 曲上的数字图书馆在资源类型和访问界面上有所不同且可 能会发生变化,同时数字图书馆的数量也在不断地增加,如何使数字图书 馆的包装层适应这些变化,即如何方便快捷地为数字图书馆生成包装层, 已经成为数字图书馆建设中一个亟待解决的问题。 本文对数字图书馆包装层半自动化生成的关键技术进行了深入的研 究。首先,对数字图书馆包装层结构模型中的各相关机制及其实现的关键 技术进行了深入的研究。重点探讨了查询映射机制的实现,通过建立一个 具有可适应性的查询能力描述模型,对位于中介层的查询能力及包装层所 对应的目标数字图书馆的查询能力进行统一的描述,为查询映射机制的实 现提供了基础和依据;针对以往查询映射技术中存在的不足,将数字图书 馆包装层中的查询映射分为查询能力映射及查询语法映射两部分,并提出 了相应的实现算法,同时还讨论了查询过滤问题对查询映射产生的影响。 然后,在对数字图书馆包装层的各相关机制进行研究的基础上,基于 程序生成器的思想提出了一种基于x m l 和j a v a 的数字图书馆包装层半自动 生成方法,并利用j a v a 语言实现了一个简单的数字图书馆包装层生成器原 型。重点讨论了数字图书馆的x m l 描述文档的创建,以及x m l 文档的d o m 解析技术的应用,这些都是实现数字图书馆包装层生成器的关键所在。 最后,以具体的数字图书馆包装层的生成过程为例,对数字图书馆包 装层的生成过程及包装层生成器原型的实现进行了分析。 关键词数字图书馆;中介层;包装层;查询能力描述模型;包装层生成器 燕山大学工学硕士学位论文 a b s t r a c t w r a p p e rp r o v i d e sa ne f f i c i e n tw a yf o ri m p l e m e n t i n gt h em u t u a lo p e r a t i o n a n di n t e g r a t i o nb e t w e e nh e t e r o g e n e o u sd i g i t a ll i b r a r ys y s t e m s b u tt h et y p eo f r e s o u r c e sa n di n t e r v i e wp a g e sa r ed i f f e r e n to nt h ew e bb e t w e e nd i g i t a ll i b r a r i e s a n dt h e ya r ec h a n g e dc o n s t a n t l y ,a tt h es a m et i m et h en u m b e ro fd i g i t a l l i b r a r i e si si n c r e a s i n gc o n s t a n t l y s oh o wt om a k ew r a p p e ra d a p tt h ec h a n g e s , n a m e l yh o wt oe f f i c i e n t l yg e n e r a t et h ed i g i t a ll i b r a r y sw r a p p e rh a sb e e na n n e e dt os o l v i n gp r o b l e mi nd i g i t a ll i b r a r yc o n s t r u c t i o n t h i sp a p e rs t u d i e st h ek e yt e c h n o l o g i e so fd i g i t a ll i b r a r y ss e m i - a u t o m a t i c w r a p p e rg e n e r a t i o n f i r s t l y , t h i sp a p e ra n a l y s e st h er e l a t e dm e c h a n i s m s a n dt h e i m p l e m e n t i n gk e yt e c h n o l o g i e s i n d i g i t a ll i b r a r y sw r a p p e r ,a m o n gi t ,t h e i m p l e m e n t o fq u e r ym a p p i n gm e c h a n i s mi sm a i n l ys t u d i e d t h r o u g h e s t a b l i s h i n ga na p p l i c a b l eq u e r yc a p a b i l i t yd e s c r i p t i o nm o d e lt od e s c r i b et h e s o u r c eq u e r yc a p a b i l i t yo fm e d i a t o ra n dt h et a r g e tq u e r yc a p a b i l i t yo fw r a p p e r , w h i c hp r o v i d e st h ef o u n d a t i o nf o rq u e r ym a p p i n gm e c h a n i s m a n df o rt h e w e a k n e s so fb e f o r eq u e r ym a p p i n gt e c h n o l o g y , d i v i d i n gt h eq u e r ym a p p i n go f d i g i t a ll i b r a r y sw r a p p e ri n t oq u e r yc a p a b i l i t ym a p p i n ga n dq u e r yg r a m m a r m a p p i n g ,g i v i n gt h er e l e v a n ta l g o r i t h m a n dd i s c u s s e st h eq u e r yf i l t e rt ot h e q u e r ym a p p i n gp r o b l e m s e c o n d l y , o nt h eb a s i so f a n a l y s i sf o rt h ed i g i t a ll i b r a r y sw r a p p e rr e l e v a n t m e c h a n i s m sa b o v e ,t h i sp a p e rm a k e su s eo ft h ep r o g r a mg e n e r a t o rt o p u t f o r w a r dad i g i t a ll i b r a r y ss e m i a u t o m a t i cw r a p p e rg e n e r a t i o nm e t h o db a s e do n x m la n dj a v a ,a n du s i n gj a v al a n g u a g ed e v e l o pt h eg e n e r a t o r sp r o t o t y p e , a m o n gi t t h i sp a p e re m p h a s e st h ee s t a b l i s h m e n to fd i g i t a ll i b r a r y sx m l d e s c r i p t i o nd o c u m e n t ,a n dt h ex m l d o c u m e n t sd o m p a r s i n gt e c h n o l o g y , t h e y a r et h ek e yo fi m p l e m e n t i n gt h ed i g i t a ll i b r a r y sw r a p p e rg e n e r a t o r f i n a l l y , t a k i n gw r a p p e rg e n e r a t i o no fg i v e nd i g i t a ll i b r a r yf o re x a m p l e , a n a l y z i n gt h ei m p l e m e n t i n go f d i g i t a ll i b r a r y sw r a p p e rg e n e r a t o rp r o t o t y p e k e y w o r d sd i g i t a ll i b r a r y ;m e d i a t o r ;w r a p p e r ;q u e r yc a p a b i l i t yd e s c r i p t i o n m o d e l ;w r a p p e rg e n e r a t o r i l l 燕山大学硕士学位论文原创性声明 本人郑重声明:此处所提交的硕士学位论文数字图书馆包装层生成 技术的研究,是本人在导师指导下,在燕山大学攻读硕士学位期间独立进 行研究工作所取得的成果。据本人所知,论文中除已注明部分外不包含他 人已发表或撰写过的研究成果。对本文的研究工作做出重要贡献的个人和 集体,均已在文中以明确方式注明。本声明的法律结果将完全由本人承担。 作者签字 肖_ ;弓日 日期:肿月幽妇 燕山大学硕士学位论文使用授权书 数字图书馆包装层生成技术的研究系本人在燕山大学攻读硕士学 位期间在导师指导下完成的硕士学位论文。本论文的研究成果归燕山大学 所有,本人如需发表将署名燕山大学为第一完成单位及相关人员。本人完 全了解燕山大学关于保存、使用学位论文的规定,同意学校保留并向有关 部门送交论文的复印件和电子版本,允许论文被查阅和借阅。本人授权燕 山大学,可以采用影印、缩印或其他复制手段保存论文,可以公布论文的 全部或部分内容。 保密口,在年解密后适用本授权书。 本学位论文属于 不保密吼 ( 请在以上相应方框内打“4 ”) 第1 章绪论 第1 章绪论 近年来w e b 信息集成逐渐引起人们的注意,而实现w e b 信息集成的关 键就是为各个异构的信息源来构建包装层。本文将围绕数字图书馆的特点 来对数字图书馆包装层的生成技术进行研究和探讨。本章主要讨论全文的 研究背景、数字图书馆包装层生成的主要研究内容、国内外的研究现状以 及本文的组织结构。 1 1 课题背景及意义 随着i n t e r n e t 技术的出现和发展,实现了全球范围的网络互连与通信, 从而使w e b 成为最大的环球信息资源库。然而,w e b 上的数据与传统的数 据库中的数据不同,传统的数据库都有一定的数据模型,可以用来具体描 述特定的数据;然而w e b 上的数据非常复杂,每一站点的数据都各自独立 设计,没有特定的模型可以用来描述,数据具有自述性和动态可变性。 w e b 信息源的这种异构性给信息源之间的互访操作,尤其是数据交换 带来了相当大的困难。这使得w e b 信息集成技术 1 , 2 1 应运而生,而开发w e b 信息集成系统的关键就是为需要集成的各个w b b 信息源构建包装层。 包装层这一概念主要就是为了实现异构信息源的集成而提出的 3 1 ,可 以简单地认为包装层就是位于应用程序和信息源之间的一个接口【4 】。而数 字图书馆的包装层可以认为是数字图书馆的智能前端代理,负责将来自中 介层的统一查询表示转换为适合于底层数字图书馆的查询形式,并从得到 的查询结果中提取出用户所需要的信息,提交给中介层。 近年来数字图书馆的集成阁和置操作问题【6 】越来越引起人们的注意, 互操作问题虽然并不是数字图书馆特有的问题,但它已经成为当前数字图 书馆领域内的研究热点和数字图书馆建设中不可回避的现实。 经过多年的发展,大部分数字图书馆都拥有大量的电子资源,但是这 些海量信息资源往往是异构的。即它们的存储格式、提供的服务模式、访 1 燕山大学工学硕士学位论文 问接口、数据传输协议等都各不相同。当用户需要查找某一信息资源时, 虽然可以逐个访问各个数字图书馆,但在更多情况下,用户则希望提出一 次查询请求,便可以获得全部所需的数字图书馆资源,而无需熟悉多种系 统与查询界面,因此,就应该将数字图书馆所包含的信息资源集成起来, 而要为用户提供这种统一的信息查询服务,首先必须解决多个异构系统之 间的集成问题。 中介层包装层结构【1 是解决这种数字图书馆异构资源整合的有效途 径之一。在该结构中,中介层通过包装层对不同的数字图书馆进行包装, 隐藏了数字图书馆的异构性和访问细节,为用户提供了可以访问多个数字 图书馆的统一接口,提高了对数字图书馆访问的透明性,可见包装层是实 现数字图书馆互操作问题的关键。但w e b 上的数字图书馆的资源类型和访 问界面可能有所不同且可能会发生变化,并且数字图书馆的数量也在不断 的增加,为了使数字图书馆的包装层适应这些变化,即如何快速方便地来 为数字图书馆生成包装层已经成为解决异构数字图书馆资源整合的一个重 要研究方向。 1 2 国内外的研究状况综述 包装层的应用范围比较广泛,在这里首先介绍包装层生成的国内外研 究现状,然后对包装层在数字图书馆中的应用进行概述。 1 2 1 包装层生成的国内外研究现状 包装层是实现信息集成的关键。在国内外已经出现了很多对于中介层 包装层结构的研究,出现了很多基于w e b 的信息集成系统的研究原型和产 品,其中大多数系统都侧重于研究如何针对不同的异构数据源设计包装层, 这些系统在一定程度上解决了异构信息源动态变化的问题 8 , 9 1 。 其中,国外比较著名的包装层生成方法( 项目) 包括t s i m m i s 、w 4 f 、 x w r a p 等。t s i m m i s 项目 1 0 l 提出了一种基于t e m p l a t e 的包装层生成方法。 这个方法可以快速构建包装层,但对单个信息源它要求大量的例子。另一 个项目w 4 f 1 1 l 是由宾夕法尼亚大学开发的,主要特点是采用t d o m ( d o c u 一 2 第1 章绪论 m e r i to b j e c tm o d e l ,文档对象模型) 对象模型和使用n s l f n e s t e ds t r u c t u r e l a n g u a g e ,嵌套结构化语言) 来编码信息抽取规则,其抽取语言的表示能力 较强,而缺点在于规则的产生是依赖于专家的经验,要求专家手工生成, 因此比较烦琐和困难。而x w r a p t l 2 , 1 3 1 是一个将h t m l 转换成x m l ( t h e e x t e n s i b l e m a r k u pl a n g u a g e ,可扩展的标记语言) 的包装层半自动生成系 统,其主要优点是提供了比较友好的包装层生成界面和半自动的生成方法, 但规则的适用范围有限,使用不够方便是x w r a p 的不足之处。 最近,国外提出了两个基本能够实现完全自动化的方法 1 4 , 1 5 】,目p r o a d r u n n e r 系统中的a l i g n 算法和e x a l g 算法,这两种方法只要输入相应的网 页就能够自动进行分析和生成包装层,并且将数据从网页中抽取出来,在 整个过程中需要用户干预的地方只是最后的数据结构的语义分析部分。采 取这样的全自动方式,大大减轻了用户的工作量,使得网页的抽取工作有 了较大的进步。 国内迄今为止的研究工作基本上处于包装层的半自动生成阶段,尚未 见到能够自动识别网页并产生包装层抽取数据的方法的有关研究资料。国 内较为典型的系统和算法如下。 ( 1 ) 基于预定义模式的包装层生成中国人民大学数据与知识研究所 提出的基于预定义模式的包装层生成方法 1 6 1 是由用户来定义模式并给出 模式与h t m l 网页的映射关系,接着系统推导出规则的同时生成包装层。 ( 2 ) 基于d o m 的信息提取中科院软件所提出的基于d o m 的信息提取 算法【1 7 1 8 l 以文档对象模型为基础,把所要提取的信息在d o m 层次结构中的 路径作为信息抽取的“坐标”,并以这个基本原理为基础设计了一种归纳学 习算法来半自动地生成提取规则,然后根据规则生成j a v a 类,将该类作为 w 曲数据源包装层组成的重要构件。 ( 3 ) 基于样本实例的w e b 信息抽取河北大学提出的基于样本实例的 w e b 信息抽取方法【1 9 1 ,用户首先选定样本页面和预定义模式( 基于o r ) 模 型,然后对样本页面和其中的样本记录进行标记学习形成规则( 包含抽取规 则和关联规则) ,并将规则放入知识库中,最后利用知识库对其它同类页面 自动抽取信息,并将结果存放在对象关系数据库中。 燕山大学t 学硕士学位论文 ( 4 ) 基于多层模式的多记录网页信息抽取中国科技大学提出的基于 多层模式的多记录网页信息抽取方法【2 0 】,其基本思想是h t m l 网页信息抽 取只是利用多层模式来加以描述,以便能够利用各层模式之间相互联系的 特点,帮助动态获取各层中与h t m l 页面内容具体描述( 格式) 密切相关的信 息识别模式知识;并最终再利用所获得的多层( 信息识别) 模式之时,完成 相应的各个h t m l 网页的具体信息抽取工作。 通过分析国内包装层生成的现状可以发现,主要存在两个问题:一是 需要较多的人工干预,不能完全实现自动化;二是根据一定的先验知识生 成包装层的方法造成了系统的适应性差,缺乏灵活性。 通过对包装层生成的国内外研究现状进行分析,可以发现,对于包装 层及其生成的研究主要集中在对于w e b 上信息源的信息抽取上,往往过于 强调“包装层可以看作是一些专门的程序,利用它们可以将数据从网页中 抽取出来并且将结果转换为结构化的形式”,即片面强调了包装层作为信息 抽取工具的作用。 可以说包装层的应用主要是对w e b 页面来进行包装,而对于w e b 信息 源进行包装的研究工作也只是将重点放在对信息源所返回的结果页面或其 中某一页面的包装上,而对于其中全局查询与本地查询之间的查询映射问 题只是一带而过甚至不进行研究讨论。 对于异构信息源之间查询映射问题 2 1 , 2 2 1 的研究已经出现了很长时间, 人们往往是通过分析各信息源所支持的查询语言集合t 2 3 0 4 1 来进行查询映射 问题的研究,而对于各信息源所支持的查询语言集合的分析需要专门的研 究人员且实施起来烦琐、困难,更不用说将其应用到数字图书馆的包装层 生成的研究中来了。 综上所述,对于包装层生成的研究大多数都是采用基于规则的生成方 法,并且在生成过程中绝大部分代码是用来处理查询和数据转换的,因此 对于包装层生成技术的研究主要是针对于查询映射规则( 技术) 和信息抽取 规则( 技术) 的研究。 针对当前包装层生成的国内外研究现状,本文将侧重于包装层生成中 异构信息源之间查询映射的研究。 4 第l 章绪论 1 2 2 数字图书馆包装层及其生成方法 包装层,可以理解为是对应于特定信息源的一种特殊程序,负责将查 询和数据由一种模式转换成另一种模式【2 5 1 。所以,相应地在包装层的工作 过程中包含两个关键的数据转换 2 6 , 2 7 :一是将来自中介层的查询请求转换 成相应的数据源检索命令;二是将数据源返回的查询结果封装成一种统一 的数据格式,返回给中介层。因此,基于中介结构的数字图书馆系统集成 框架 2 8 , 2 9 中的数字图书馆包装层应该具有以下三个功能:一是从中介层那 里接收用户的查询请求并将其转换为适应于底层数字图书馆的查询命令形 式;二是利用转换后的查询命令形式调用底层数字图书馆的查询服务程序, 获取所查询的数字图书馆资源;三是从返回的查询结果中提取出用户所需 要的信息,并以统一的数据格式提交给中介层。 目前,包装层的生成方法 1 5 , 3 0 , 3 1 1 可分为三种:方法一,针对特定的w e b 页面手工编写定制的专用包装层;方法二,提供g u i 并使用启发式规则, 辅助用户半自动地生成专用包装层口2 州】,所谓半自动地生成即通过人的干 预来进行包装层的生成;方法三,采用人工智能和机器学习领域的理论和 技术开发基于知识的通用包装层,这在一定程度上使得包装层的生成能够 自动地进行,但是,在这些技术中都不仅要求要由用户提供标识样本集, 还要求要有一定的先验知识。 相应地,数字图书馆的包装层的生成方法也可分为上述三种方式。在 手工编写阶段,由专门的具有一定知识的专业人员首先对数字图书馆的查 询界面进行分析,然后写出包装层程序代码,在这个阶段中,对于这样的 专业人员的要求非常高,因此依靠手工方式编写数字图书馆包装层程序代 码是一个非常困难的工作,而且效率低,维护工作量大。包装层和信息源 之间是紧密耦合的,当信息源发生变化时,与之对应的包装层代码则必须 随之进行相应的修改。而且,随着网上数字图书馆的不断增加和访问界面 的更新,采用手工方式来编写数字图书馆的包装层程序缺乏灵活性,因此 需要采用半自动或者自动的方式来生成数字图书馆的包装层程序。然而, 方法三中对于包装层的全自动生成 3 5 , 3 6 l ,虽然开发代价小,但就目前的技 5 燕山大学t 学硕士学位论文 术应用水平来看,准确率不高,而且对开发人员的要求非常地高。这些都 为数字图书馆包装层的半自动生成提供了广阔的发展空间,因此本文提出 了一种基于x m l 和j a v a 的数字图书馆包装层半自动生成方法。 1 3 本文的主要研究内容 通过分析国内外包装层生成的研究现状可以发现,以往的研究往往只 侧重于包装层程序中信息提取规则的研究,而对于查询映射规则的研究很 少。因此,本文将结合数字图书馆的特点,重点解决查询映射机制在数字 图书馆包装层中的实现问题,并对以往查询映射机制实现中的不足之处进 行相应的改进。 本文将对数字图书馆包装层生成的关键技术进行研究,重点讨论查询 能力描述模型和查询映射机制及其相关问题,并基于程序生成器的思想提 出一种基于x m l 和j a v a 的数字图书馆包装层半自动生成方法,最后还要利 用j a v a 语言来实现一个简单的数字图书馆包装层生成器原型。所以本文的 研究重点在于以下三个方面:查询能力描述模型的建立、查询映射算法的 生成,以及数字图书馆的x m l 描述文档的创建。 本文将主要研究以下内容。 ( 1 ) 对于查询能力描述模型的研究 不是任何的信息源都能提供s q l 或者相似的能力,包装层将应用程序级的查询转换成信息源专用的查询和 命令。在本文中,将从分析数字图书馆查询界面的特点入手,来获取其所 对应的查询能力,并利用查询输入关键词、关键词修饰词以及逻辑操作符 之间的约束关系来设计一个具有可适应性的查询能力描述模型。 ( 2 ) 对于查询映射算法的研究查询映射问题是数字图书馆包装层生 成中的关键与难点,本文将以所创建的查询能力描述模型为基础来讨论查 询映射算法的生成,并将对查询过滤问题进行初步的探讨。 ( 3 ) 对于数字图书馆的x m l 描述文档的研究因为包装层与底层数字 图书馆之间是紧密耦合的,所以必须通过分析底层数字图书馆的特点来进 行其所对应的包装层生成的研究。由于x m l 是一种完全可移植的数据格 式,用户可以根据需要定制x m l 标签,所以本文将利用x m l 作为中间信息 6 第1 蕈绪论 交换语言。并以数字图书馆的x m l 描述文档来作为数字图书馆包装层生成 器的输入,为最终数字图书馆包装层的生成提供基础。这里的另一个研究 内容在于构建该x m l 文档的d t d ( d o c u m e n tt y p ed e f i n i t i o n ,文档类型定义) 文档,以此d t d 文档为模板和标准,用来检验x m l 文档的有效性并规范 x m l 文档的创建。 ( 4 ) 对于程序生成器技术的研究本文将通过数字图书馆包装层生成 器来最终实现底层数字图书馆所对应的包装层的生成,其核心技术就是程 序生成器技术。本文将基于x m l 和j a v a 来创建该数字图书馆包装层生成器, 其核心就在于对x m l 文档的解析。因此,对于x m l 文档的d o m 解析技术 的研究也是本文的一个研究内容。 1 4 本文的组织结构 本文共分为五章,具体内容如下。 第1 章为绪论。阐明了课题的背景和意义、对包装层生成的国内外研究 现状进行了综述,提出了本文的主要研究内容。 第2 章是数字图书馆包装层生成的相关技术。介绍了本文研究工作涉及 到的相关技术基础,包括x m l 及其相关技术和程序生成器技术。 第3 章是数字图书馆包装层的结构模型及相关机制。重点对其中的查询 映射机制的实现进行了深入的研究。在查询能力描述模型的基础上讨论了 查询映射算法的生成,并初步介绍了查询过滤问题。 第4 章是基于x m l 和j a v a 的数字图书馆包装层半自动生成。其中主要对 数字图书馆的x m l 描述文档的创建问题进行了研究,从而为数字图书馆包 装层生成器的实现奠定了基础。 第5 章是数字图书馆包装层生成器原型的实现。主要介绍了数字图书馆 包装层生成器的设计过程,融入了设计过程中的相关代码和相关思路。 最后,在结论中对本文的研究成果进行了总结,并对进一步的研究工 作进行了分析和展望。 燕山大学工学硕士学位论文 第2 章数字图书馆包装层生成的相关技术 本文利用程序生成器的技术来最终实现数字图书馆包装层程序的生 成。对于程序生成器来说,x m l 文档是生成程序的关键所在 3 7 , 3 8 ,程序生 成器的可变性问题全体现于此。这样,当数字图书馆的结构发生变化时, 不需要重新编写包装层程序的代码,只需要更新该数字图书馆的x m l 描述 文档即可。 2 1 数字图书馆的。描述文档 在理想的情况下,一个数字图书馆的描述文档”卅1 应该是简单的、直 接的、可读性强的,且易于修改的。x m l 正好满足了以上的要求。 2 1 1 x m l 及相关技术 w 3 c 对x m l 做了如下的描述:“x m l 描述了一类被称为x m l 文档的数 据对象,并部分描述了处理它们的计算机程序的行为。x m l 是s g m l ( s t a n - d a r dg e n e r a l i z em a r k u pl a n g u a g e ,标准通用标记语言) 的一个应用实例或一 种受限形式。从结构上说,x m l 文档遵从s g m l 文档标准【4 2 1 。”同h t m l 一样,x m l 也是一种基于文本的标记语言,都是从s g m l 发展而来的。x m l 是由一群s g m l 的审核人员兼w e b 专家所共同制定的,而且并不是为了要 取代h t m l ;就应用层面来看,x m l 介于s g m l 与h t m l 之间,但克服了 s g m l 过于复杂和h t m l 缺乏灵活的缺点。 x m l 中的x 代表e x t e n s i b l e ( 可扩展的) ,这是因为x m l 本身并没有定义 元素类型或内容,每个x m l 文档定义其自己的结构、元素类型和内容。它 是i n t e r n e t 环境中跨平台的、依赖于内容的技术。 在i n t e r n e t 上,x m l 有两个用途1 4 3 】:其一,作为元标记语言,定义各种 实例标记语言;其二,作为标准交换语言,担负起描述交换数据的作用。 针对不同的应用,x m l 文档应该有不同的结构规范,即每个x m l 文档都有 r 第2 章数字图书馆包装层生成的相关技术 相应的文档类型定义,即文档模板。模板定义7 x m l 文档的基本结构,如 果x m l 文档采用了某个模板,则它必须要符合模板中定义的结构规范。即 为一个数字图书馆创建一个描述文档,此时还需要利用一个模式来定义规 则和标准的公共集合。 目前,有两种方法可以定义x m l 文档的模板:d t d l 4 2 i 干i x m ls c h e m a ( x m l 模式) 瞰】。与x m l 能够有效地描述数据一样,d t d 通过定义数据的结 构使得这些数据能够被各种不同的程序以不同的方式使用。d t d 定义了数 据的格式化方式,它必须定义x m l 文档中的每个允许使用的元素,每个元 素允许使用的属性和可能接受的属性值,每个元素的嵌套和出现顺序,以 及任何外部实体等内容。 x m ls c h e m a 也是一种定义x m l 文档语法和结构限制的方法,可以说 它是d t d 的一种进化。它与d t d 不同,x m ls c h e m a 本身就是x m l 文档, 提供了很多数据类型来定义元素的值,提供了包含更丰富的嵌套标签( 即标 签下包含子标签) ,提供了命名空间机制将不同词汇组成x m l 文档,所以 x m ls c h e m a 要比d t i ) 更丰富更具有可扩展性,然而其相应的处理和开发 工具也更复杂。当遇到以下情况时,d t d 仍然是首选:当需要简洁的表示 文档规则时;当希望用户能够通过内部参数集覆盖并将类型专门化时;当 文档规则主要考虑元素的嵌套而不是内容的语义约束时;当所使用的工具 对d t d 的支持更胜于对x m ls c h e m a 的支持时。所以,根据数字图书馆的 特点,以及数字图书馆包装层生成器对输入文档的要求,在本文中,采用 d t d 来定义数字图书馆的x m l 描述文档的模式,对于该应用来说d t d 已经 足够了。 2 1 2x m l 文档的设计 在设计数字图书馆的x m l 描述文档时,首先必须了解该x m l 文档将应 用在哪种领域以及该领域所需要的领域知识( d o m a i nk n o w l e d g e ) 。然后才 使用元素与属性来描述该领域的各项数据;同时,设计x m l 文档结构的另 一个重要的问题是确定如何安排元素和如何表示元素之间的关系。如果能 够自然反映人们对各元素所代表概念的思考方式,这样的元素设计是最好 9 燕山大学工学硕士学位论文 不过的了。接下来,设计中的重点就是在元素和属性间做出选择。是元素 还是属性,通常会有如下需要注意的事项:在x m l 文档的设计过程中,如 果所要描述的数据会发生许多相同性质的数据同时出现时,必须使用元素 来加以描述,如果将此重要性的数据使用属性来描述,将会发生错误,因 为元素是可以重复出现的,但属性却无法在同一元素内重复设置。 同时,还必须注意数据间的层次关系、数据的顺序。因为各个子元素 的出现顺序及结构有时候在d t d 中也会有明确的定义,所以必须先将其考 虑在内。并且由于树状结构的关系,每个子节点也具有先后顺序,这些问 题都将影响到利用数字图书馆包装层生成器在数字图书馆包装层生成过程 中,利用d o m 对x m l 文档的解析时所获取数据的正确性。 2 2 程序生成器简介 程序生成器 4 4 啪l ,顾名思义,就是能够生成程序的程序。编写一个程 序生成器,它意味着不仅仅是编写一个程序,而是要编写一个可以写出许 多程序的程序,故程序生成器的效率非常高。因此,以此为基础而提出的 数字图书馆包装层生成器将提高包装层半自动生成的效率。在用户界面、 数据库、中间件、语法分析和词法分析等方面,程序生成器是其开发环境 中的重要组成部分。一个标准的程序生成器是一系列简单的打印语句,这 些语句是具有重复代码或条件的控制语句的状态流【4 7 1 。 2 2 1 程序生成器的结构 作为程序生成器的典型结构,它由获取数据、分析转换数据、生成程 序三个部分组成1 4 7 。程序生成器经过如图2 1 所示的三种约束时间,完成程 序的生成。 2 2 2 理解程序的可变性 可变性h 刀是建立程序生成器的主要成分,它是指一个在域分析期间确 认但直到建立或运行时间才确定的决策。可变性包括运行时可变性、编译 时可变性和生成时可变性。 1 n 第2 章数字图辟馆包装层生成的相关技术 生成时间:摹_ 】二某一个规则产生程序的时间 编洋时间:编译生成的程序所用的时间 运行时间:执行生成的程序所用的时间 图2 1 约束时n t 4 7 】 f i g 2 - 1c o n s t r a i n tt i m e l 4 7 ( 1 ) 运行时可变性是在运行时间内确定的决策。因此,这类决策既不 能在生成时间确定,也不能在编译时间确定,并且属于程序部分,它建立 在应用软件的公共部分。运行时可变性可以由许多方法表示和控制,如资 源或配置文件,例如一些x m l 文档,来作为某一w 曲应用的配置文件等, 还有数据库、用户界面、动态加载类等。 ( 2 ) 编译时可变性是在编译时间确定的决策。因此,这类决策既不能 在生成时间确定,也不能在运行时间改变,而必须是编译程序的部分。编 译时可变性能够以许多方式使用和实现,如编译时常量,即声明标识符为 f i n a l 的变量,还包括经典的面向对象技术。 ( 3 ) 生成时可变性信息通过一个创建定制程序的程序生成器读入。一 般所说的可变性都是指运行时可变性。运行时可变性的信息一般保存在一 个外部文件( 特性文件、x m l 文件和数据库等) 中并且通过程序读入,编译 时可变性的信息合并于程序中( 运用分解对象或子类) 。程序生成器是从规 范中创建应用程序的工具,而生成时可变性确定输入到程序生成器中的规 范内容,所以,可见生成时可变性是程序的可变性的重要部分,而且不难 1 1 燕山大学工学硕士学位论文 发现编写程序生成器的难点并不是编码而是对于这些规范文件的编写。 2 2 3程序生成器的实现方法 2 2 3 1 利用d o m 生成程序使用x m l 文件和d o m 构建一个程序生成器, 如图2 2 所示。使用x m l 语法分析器读入和存储规范,读入x m l 文件并对 其进行语法分析,创建d o m 对象。 x m l 的规范 厂 0 、 x m l 语法分析器 i d o m 语法分析树 1 分析和转换 i 转抉后的语j 击分析树 ( 或等价式) i j a v a 代码生成器i l ki 上 生成程序( j a v a t 源文件) 图2 2 使用x m l 文件和d o m 构建程序生成器1 f i g 2 - 2i m p l e m e n t i n gp r o g r a mg e n e r a t o ru s i n gx m ld o c u m e n ta n dd o m ” 目前,支持x m l 文档解析的主要技术包括以下两个方面。 ( 1 ) 8 a xs a x ( s i m p l ea p if o rx m l ) 1 4 7 】j i 妻x m l 简单a p i 的缩写,它提供 了一个用来解析x m l 数据的基本事件驱动的框架。s a x 通过扫描整个x m l 文档,将数据解析成几个有用的部分。在该处理过程中的每一步,s a x 都 定义了可能发生的事件。现有的x m l 解析器( 如s u n 公司的v r o j e c t x 和i b m 12 第2 章数字图书馆包装层生成的相关技术 公司的x m l 4 j 等) 都可以插入s a x a p i ,并可以产生解析后的x m l 数据。 ( 2 ) d o md o m l 4 7 1 是x m l 文档的编程接口规范,它定义了x m l 文档在 内存中的逻辑结构,并提供了访i b x m l 文档的方法。利用d o m 规范,可 以实现d o m 文档和x m l 文档之间的相互转换,遍历、操纵相应的d o m 文 档的内容。d o m 文档中的逻辑结构可以用节点树的形式来表示,通过对 x m l 文档的解析处理,x m l 文档中的元素便可转化为d o m 文档中的节点 对象。一旦将x m l 文档转化为d o m 文档,就可以自由地处理x m l 文档了。 d o m 实现广泛应用于多种编程语言,它还是许多其它与x m l 相关的标准 的基础,因为它j 下式获得了w 3 c 的推荐( 与基于非标准的j a v a 模型相对1 。 选择d o m 还是选择s a x ? 对于需要自己编写代码来处理x m l 文档的 开发人员来说,选择d o m 还是s a x 解析模型是一个非常重要的设计决策。 d o m 采用建立树形结构的方式访问x m l 文档,而s a x 采用事件模型。本 文选择采用d o m 来解析x m l 文档。一旦x m l 文档进行过语法分析,并且 作为一个对象使用时,就可以在该对象上执行分析和判断。- - 一h d o m 数据 结构存储于内存中,就可以把基于x m l 文档的代码用于分析和转换数据, 最终代码生成器直接从d o m 数据结构中获取信息。 2 2 3 2 利用j s p 生成程序j s p ( j a v as e r v e rp a g e s ) 是普遍应用于i n t e r n e t 上 的重要的程序生成器。j s p 是一种非常简单的规范语言,包含了输出到w 曲 页面的静态文本和调用基本实现语言的转义符,它没有高层次的抽象化并 且不涉及语言结构。转义符提供很大的灵活性,同时又只产生最小的影响。 j s p 是一种既简单又强有力的技术,用于在w 曲服务器端生成动态的h t m l 页面。j s p 提供了一个非常简单的利用“模板”创建程序生成器的途径。 尽管j s p 是用于设计和实现w e b 页面的,但原则上可以传送任何其它内容, 特别是它可以传送j a v a 程序。 2 2 _ 3 _ 3 利用x p a t h 和x s l t 生成程序x s l t ( e x t e n s i b l es t y l e s h e e tl a n g u a g et r a n s f o r m a t i o n ,扩展样式表转换语言) 和x p a t h 能够不利用任何j a v a 代码就 可以创建程序生成器。x m l 构成了信息互交换标准的基础。x m l 提供了信 息构成的结构,x s l t 与x p a t h ( x m l 路径语言1 提供了提取、重建和熟练使 用x m l 中信息的手段。x p a t h 使用一种简单的路径语言来对x m l 文档的各 1 3 燕山大学工学硕士学位论文 个部分进行寻址,x m l 提供了一系列的操作和操作方法。而x p a t h 保证了 选择和寻址的准确度。生成程序的方法多种多样,可以利用j s p 生成程序, 也可利用x s l t 生成程序。而本文选择利用d o m 生成程序,即使用x m l 文 档和d o m 构建一个数字图书馆包装层生成器。由于x m l 的出现,这使得 从x m l 文档的描述信息中获取可变性信息变得非常轻松,这是j s p 无法比 拟的;同时d o m 的程序编写简单,这又是x s l t 无法比拟的。 2 2 4 程序生成器的设计风格 程序生成器可以使用如下程序设计风格【4 ”。 ( 1 ) 面向对象的驱动风格使用面向对象技术来组织程序的结构。 ( 2 ) 代码驱动风格在任何需要的地方生成代码并直接嵌入数据,不必 过多担心程序结构,而只需将考虑的重点放在简单高效的代码上。 ( 3 ) 表驱动风格将数据与代码分离。规范信息存储在专门设计的数据 结构中,并且代码在适当的时候参照数据结构恢复数据。 2 2 5 生成程序的风格 手写程序与生成程序在风格上的主要区别是:两者虽然都是由人设计 的,但是其指导原则和侧重点各不相同。重要的手写程序指导原则如下。 ( 1 ) 为变化而设计软件工程师常常使用抽象化、有用的注释、合适的 变量名、好的结构以及面向对象的技术,这些技术降低了将来由于维护、 扩展和重用而需要作修改的代价。 ( 2 1 正确性软件工程师致力于写出功能正确的程序,并且要使程序在 即使不合逻辑的情况下也能作出合乎逻辑的事情。软件工程师可以使用程 序防错设计技术( 断言、不变量、冗余、容错机制) v a 及可以提高正确性的 社会过程( 复审、稽核、测试、质量保证) 。 ( 3 ) 性能软件工程师尽量减少所需的资源,如代码、数据、网络流量 以及c p u 时间。提高性能常常会增加程序的复杂性,间接地使程序更难修 改,并且可能使正确性降低。 设计生成程序的指导原则也是这样,但侧重点有所不同,现比较如f 。 1 4 第2 章数字图书馆包装层生成的相关技术 ( 1 ) 为修改而设计这对生成程序是次重要的。正如几乎没有人关心编 译器的汇编语言输出风格一样,很少有人去检查生成程序。一个优化的编 译器的输出是难于阅读的;同样,一个优化的程序生成器的输出几乎不能 被译解。在为修改而设计这点上,规范和程序生成器比生成的程序更重要。 ( 2 ) 正确性至少这点对生成程序与手写程序是同等重要的。新的程序 生成器很可能同其他新的程序一样也存在错误。事运的是,一旦程序生成 器有了已经验证过的路径记录,则生成的程序比新的手写程序的正确性更 高。因此,对于生成的程序,本来应该花在正确性上的精力转移到了规范 上而不是生成的程序本身。 ( 3 ) 性能这一点有时不重要,有时又很重要。在大多数情况下,人们 愿意牺牲性能以换取生产力的提高。在其他情况下,程序生成器通过使用 标准技术可以更快速且更正确地生成个高效的程序。一个显著的优点是 生成程序的设计无需过多地考虑程序的结构或可读性。 因为手写程序与生成程序客观上的区别,使用与判别手写程序相同的 标准去判别生成的程序是不公平的。生成的程序是正确而高效的,但不一 定是一个“漂亮”的程序。 2 3 本章小结 本章对数字图书馆包装层生成中的相关技术进行了介绍,其中包括: x m l 及其相关技术和程序生成器技术。并且详细地分析了程序生成器技术 中的可变性问题,以及程序生成器的实现方法。这些都为数字图书馆包装 层的生成奠定了技术基础。 燕山大学丁学硕士学位论文 第3 章数字图书馆包装层的结构模型 及相关机制 本文所研究的是数字图书馆包装层的生成,而包装层和所要

温馨提示

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

评论

0/150

提交评论