数字图书馆:体系结构、问题及分析,本文主要内容关键词为:体系结构论文,数字图书馆论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
数字图书馆的体系结构是建设数字图书馆的过程中无法回避的问题。对于用户而言,体系结构隐藏在用户界面之下。好的体系结构应提供一个透明层,用户甚至感觉不到它的存在。但对于实施者而言,体系结构决定了数字图书馆中信息的组织方式、系统软硬件构成、数据操作方法等具体问题,因此体系结构问题是实施者首先应考虑和解决的问题之一。
由美国国家研究创新公司(CNRI)最初提出的一种体系结构最具代表性。这一结构以及以此为基础发展起来的一些结构先后被美国国会图书馆、美国国防技术信息中心(DTIC)、美国航空航天局(NASA)和洛斯-阿拉莫斯国家实验室等单位的数字图书馆项目采用。本文较为详细地考察了这一结构及其应用和发展情况,最后回答了“现阶段应采用怎样的体系结构”这一问题。
1 CSTR结构
1.1 简介
从1993年到1995年,在美国国防部高级研究计划局(DARPA )资助下,CNRI与康奈尔大学、加州大学伯克利分校、斯坦福大学、麻省理工学院和卡内基-梅隆大学实施了“计算机科学技术报告”(CSTR)计划。这一计划的目的是将这5所大学计算机科学领域的技术报告数字化并上网提供服务。该计划的一项主要内容是研究数字图书馆的体系结构,提出数字图书馆的一种通用框架。这一框架不是针对某种特殊的数字图书馆,而是具有某些“基本”特征的数字图书馆,这些基本特征是:1)数字图书馆拥有由各种资料构成的大量的信息资源(数字对象);2)人们能够在广域网(例如因特网)上访问这些信息资源。为了叙述的方便,笔者把这一框架称为CSTR结构。
在讨论CSTR结构的过程中,研究人员提出了8项原则。 从传统图书馆和信息服务转移到数字图书馆的过程中必然出现一系列问题,这8 项原则就是对其中一些关键问题思考的结果。即使在5-6年之后的今天重新审视这些原则,会发现许多原则仍然具有现实意义。
(1)技术框架存在于法律和社会的框架之内。这就是说, 数字图书馆的体系结构必须放在法律和社会这样一个更大的背景下进行考虑,应该为可能面临的法律问题和社会问题提供技术上的一种解决办法。
(2)术语妨碍了对数字图书馆概念的理解。CSTR 结构虽然没有明确指出使用的数字图书馆概念,但通过考察这一结构的具体内容会发现,此时的数字图书馆被限定在一个很小的范围之内,即局限于一个图书馆内的数字图书馆,相当于微观的数字图书馆的概念,笔者认为可以等同于“数字图书馆系统”的概念。由于作了这样的限定,CNRI能够对数字图书馆的内部结构做出更清晰的分析。
(3)位于底层的体系结构应和图书馆中存储的信息内容分离。 这个原则是开放系统互连(OSI )参考模型的思想在数字图书馆的具体体现。OSI参考模型的核心是一个分层结构, 处于某个层面的部分只需要考虑该层面的问题,按照这一模型构造的系统具有更好的通用性和开放性。因此该原则也是通用的数字图书馆体系结构所必需的。
(4)名称及标识是数字图书馆的基本构件。CSTR 结构解决的一个重要问题就是数字对象的名称及标识问题。这一结构将数字对象视为结构化的数据,并不考虑数字对象的具体内容,因此提供存在于数字对象具体内容之外的位置信息就十分必要,位置信息表现为一种标识,可以代表数字对象的内容,也可以与内容毫无关系,它既用于数字对象的存储,也用于数字对象的提取和传递。名称及标识相对于数字图书馆的重要性,与域名服务相对于因特网的重要性类似。
(5)数字图书馆对象不仅仅是二进制位的集合。CSTR 结构中数字对象的构成在下文详述。
(6)数字图书馆使用时和存储时的形态可能完全不同。 这一项原则深化了第2项原则,它说明在数字图书馆的体系结构中, 至少存在计算机应用层和计算机存储层这两个层面。
(7)仓储必须保管好所持有的信息。
(8)用户需要的是供人使用的知识作品, 而非供机器处理的数字对象。和第6项原则类似,这一项原则进一步深化了第3项原则,即处于底层的体系结构必须为处于高层的人类应用层提供支持。[1][2]
仅仅根据这8项原则,可以得到数字图书馆的一种层次模型,如图1所示。
1.2 CSTR结构
Robert Kahn和Robert Wilensky在其著名的《分布式数字对象服务的框架》一文中详细地描述了CSTR结构[3]。在某些文献里,CSTR结构又被称为FDDOS(分布数字对象服务框架的首字母缩写)[4]、Kahn/Wilensky框架或KWF[5][6]。这一结构的主要构件包括[3][7]:
(1)数字对象(digital object):数字图书馆中的基本实体。 数字图书馆中的信息以数字对象的形式存储、访问、传播和管理。数字对象中的主要部件是数字资料或数据,加上称为句柄的该数字资料的唯一标识。其正式的定义是“具有数据和关键元数据这两个部件的一种抽象数据类型的一个实例”。
图2(a)是CSTR结构中数字对象的模型。图中的“句柄”在下文叙述。网络环境下使用“关键元数据”管理数字对象的存储、复制和传输。关键元数据中包含了句柄、以及与数字对象相关的权限信息。
在进一步解剖数字资料之前还需要了解“元素”和“包”的概念。元素:带有自身标识的基本信息单元。包(package):带有自身标识的元素和其他包的组合。这就是说,包是可以嵌套的。如果一个包的标识是句柄,则这个包就是数字对象。因此,数字对象是一种特殊的包,数字资料由包和/或元素组成,见图2(b)。
元素还可以进一步地解剖,见图3。
图3中的数据元素是任意的2进制序列,属性是处理元素所必须的信息,包括作用(role)和类型(type),前者定义了元素的功能,例如指明一个元素是SGML的数据类型定义(DTD);后者包含了技术性信息,例如指明一个元素的类型是“jpeg。一个SGML文本可以被编码为3 个元素:置标后的文本、DTD以及样式表,其中DTD定义了置标使用的语法,样式表指定了输出的格式。
(2)句柄(handle):数字对象的全局性的唯一标识, 实际是使用具有唯一性的字符串给数字对象提供一个具有唯一性的名称。结合上述数字对象的定义可以看出,句柄包含在关键元数据之中。它还具有持久性,并且独立于具体的存储位置。句柄由前缀和后缀构成,前者又称为命名权威代码(naming authority),后者又称为项目标识(item ID)。例如有一个句柄为:100.1/ADA319240。其中“100.0”就是前缀,“ADA319240”就是后缀。人们可以按级分配前缀,并用“.”作为分级符号,此时句柄和广泛使用的URL十分类似。 句柄的解析由句柄系统完成[8]。
(3)仓储(repository):用于存储和提供数字对象的系统。 该系统具有向其中增加新的数字对象的机制,称为“放置”(deposit),以及提供数字对象的机制,称为“访问”(access)。这些机制的基础是仓储访问协议称(RAP)。RAP定义了外界访问仓储的最基本的接口。
2 CSTR结构的应用与发展
CNRI的成员参加了历时5 年的美国国会图书馆的“国家数字图书馆计划”(NDLP)。这样做的一个结果便是CSTR结构在NDLP中得到应用。此外,他们还参加了DTIC的“国防虚拟图书馆”计划[9]。在这两个项目中,数字图书馆的主要部件见图4[7][10]。
图4还说明了数字图书馆提供服务的基本流程[10]:(1)最终用户通过一定的用户接口(例如浏览器)搜索仓储中数字对象的索引;(2)搜索系统返回搜索的结果;(3)用户选中的结果形成句柄,并转换成对CNRI句柄系统的查询;(4 )句柄系统返回数字对象在仓储中的位置;(5)客户机查询仓储得到数字对象;(6)仓储根据请求返回数字对象。
如果说CSTR结构最初面向的还是一个个孤立的数字图书馆,那么它的发展必定需要解决多个数字图书馆联合的问题。CNRI和康奈尔大学数字图书馆研究组(CDLRG )合作建设的“网络化计算机科学技术参考图书馆”(NCSTRL)将CSTR结构又向前推进了一步[11],笔者将这一结构称为NCSTRL结构。
在NCSTRL计划中,CNRI的研究侧重于数字对象的结构,在CSTR计划后他们实施了“数字对象结构”计划[12];CDLRG则侧重于分布式数字图书馆的研究;主要成果是“分布式数字图书馆的康奈尔参考结构”(CRADDL)[13],他们还对仓储进行了研究,主要成果是“灵活可扩展的数字对象和仓储结构”(FEDORA)[5]。
与CSTR结构不同的是,NCSTRL结构的研究过程采用了这样一种数字图书馆概念:
“数字图书馆是数字对象(内容)以及与之相关联的存储、发现、检索和保存等服务的一个受控集合。”[14]
NCSTRL结构继承了CSTR结构的主要概念,例如数字对象、句柄和仓储等,其重要贡献是在CSTR结构的基础上,定义了一系列数字图书馆服务。数字图书馆的各项功能划分成若干种服务,每种服务通过各自的协议来提供。用户、其他服务或其他数字图书馆不必知道某种服务的具体实施方法就能访问该服务,这样就实现了数字图书馆的开放性[14]。
NCSTRL结构定义了以下几种服务:
(1)命名服务。 数字对象具有全局性的唯一持久的名称——统一资源名称(URN),在NCSTRL结构中就是句柄。 命名服务的主要功能是注册和解析URN。
(2)仓储服务。仓储服务提供了数字对象的放置、 存储和访问机制,以及对仓储中储存信息进行复杂的管理、聚合和整理的机制。
(3)索引服务。索引服务提供了通过查询发现数字对象的机制。 发送到这些索引服务器的查询返回命中的数字对象的句柄。此外,索引服务还能产生基于被索引的内容的元数据,这些元数据能够为其它服务使用。
(4)馆藏服务(collection service)。 馆藏服务提供了将数字对象聚合成馆藏的机制。馆藏所处的层面高于数字对象所处的层面,对最终用户而言,“馆藏”比“数字对象”更容易理解。馆藏服务器扫描一组索引服务器,读取它们产生的元数据,并根据“馆藏定义标准”确定将哪些数字对象纳入馆藏。这些数字对象可能分布在多个仓储服务器上,并被多个索引服务器索引。
(5)用户接口关。 用户接口关提供访问联合的数字图书馆各项服务的入口,它能利用一个或多个馆藏服务器提供的信息确定是否能搜索和访问馆藏中的数字对象,并且能够根据馆藏服务器和索引服务器提供的信息确定查询的路由信息。 因此用户接口关能够简化用户访问NCSTRL中各项服务的过程。
研究发现,如果两个数字图书馆符合NCSTRL结构,则它们之间相对容易实现互操作(至少是基本语法级的互操作)[14]。但NCSTRL结构只是众多数字图书馆体系结构中的一种。NCSTRL结构的数字图书馆与非NCS-TRL结构的数字图书馆要实现互操作可能会非常困难[11]。这一问题的解决还有待NC-STRL结构及其他体系结构的进一步发展。
3 问题、初步的分析及结论
我们研究数字图书馆体系结构的目的是为了回答这样一个问题:如果现在要进行数字图书馆项目,应采用什么样的体系结构?
至今,还没有一种“成熟”和“通用”的体系结构。尽管研究人员在这个问题上已经花费了很多时间,已经确定了一个相对正确的发展方向,但距离“成熟”的体系结构可能还有很大的距离。仅仅从这一点,就不难理解为什么国外(包括美国)所有的数字图书馆项目实现的都是小型试验系统(pilot system)。这其中包括了CSTR计划和NCSTRL计划。
这些试验系统主要用来试验一种结构或算法的可行性,在这一阶段建造大型数字图书馆是很不恰当的。NCSTRL计划有118 个成员单位,总的容量只有22000篇文献[16]。 研究者简单地将试验系统用于建造大型数字图书馆,结果发现了许多问题。
这些问题可能来自体系结构之外,例如选用的操作系统、数据库管理系统以及其他支撑系统的限制。例如,NCSTRL选用的操作系统是Solaris。Solaris的一个目录下只能有32767个子目录,对小型数字图书馆这可能已经足够,对大型数字图书馆却很可能不够。又如,NCSTRL选用的搜索引擎是freeWAIS-sf。如果某个单词出现了20000次,freeWAIS-sf自动将这个词作为停用词(stop word)[17]。
问题也可能来自体系结构本身。例如,NCSTRL结构提供了馆藏服务,可以很容易地定义馆藏。可以用“学科”作为“馆藏定义标准”,将整个数字图书馆馆藏分为航空航天、化学、数学、计算机科学等门类;也可以用“文献类型”作为“馆藏定义标准”,将整个馆藏分为机构-项目报告、学位论文、会议文献、期刊论文、图书、专利等门类。但无法同时根据“学科”和“文献类型”来划分馆藏[18]。
前一种问题解决起来要相对容易一些,解决后一种问题则可能需要修改已有的体系结构。
数字图书馆领域充满挑战。数字图书馆项目成功有两个必备条件,一是坚持拿来主义,积极吸取别人已有的成果;二是坚持实事求是,坚持科学态度。
目前还没有“成熟”的体系结构,我们应该从这些不够成熟但技术思路正确的中间成果实现跳跃式的发展,而不是等待“成熟”的、“万无一失”的体系结构出现。同时应该看到,采用不够成熟的结构需要承受一定的技术风险。试图“跳过”试验系统直接建设大型实际系统的做法是很不科学的,其结果难以预料;建立小型试验系统则要稳妥得多。在这一点上我们需要认真地学习美国人的经验。
(中国国防科技信息中心龚昌明研究馆员、胡均平副研究馆员阅读过本文,并提出了宝贵意见,谨在此表示诚挚的谢意。)