周莉
摘 要: 针对目前基于OAI?PMH协议的数据提供者只支持DC这一种格式的元数据及OAI?PMH协议中多个数据提供者与多个服务提供者之间无法进行元数据交互的问题,设计了MARC格式元数据到DC格式元数据的格式转换器并重新设计了基于OAI?PMH协议互操作平台的命令动词。研究了MARC格式与DC格式的对照关系、命令动词的使用方式及请求应答格式,最后给出了格式转换器和命令动词的实现方法,解决了上述问题。
关键词: 数据提供者; 服务提供者; OAI?PMH; 格式转换器
中图分类号: TN915.04?34; TM417 文献标识码: A 文章编号: 1004?373X(2016)09?0027?04
Abstract: Since the current data provider based on OAI?PMH protocol only supports metadata in DC format, and the metadata interaction between multiple data providers and multiple service providers in OAI?PMH protocol can′t be performed, the format converter from MARC metadata to DC metadata was designed, and the command verbs of interactive operation platform based on OAI?PMH protocol was redesigned. The comparison relation between MARC format and DC format, and usage mode and request response format of the command verbs are studied. The implementation method of format converter and command verbs is given. The above problems were solved.
Keywords: data provider; service provider; OAI?PMH; format converter
随着网络、计算机和通信技术的快速发展,数字图书馆已经成为人们取得信息的重要来源,然而对于网络上众多的分布式数字资源[1?2],人们希望通过检索获得所需的信息。但由于早期在建立数字图书馆时没有统一的标准,其资源的元数据格式并不相同,因而要制定出一套能够描述不同数字图书馆资源的统一元数据格式相当困难;同时,早期建立的数字图书馆数据提供者与服务提供者间多是点对点的协议服务,协议外的数据提供者与服务提供者间无法进行元数据交互[3?4]。
针对上述问题,设计了数字图书馆中广泛使用的元数据格式MARC和DC的格式转换器,并重新设计了基于OAI?PMH协议互操作平台的命令动词,对数字图书馆间资源的共享具有重要意义。
1 OAI?PMH协议概述
数据提供者、服务提供者、注册服务器构成了数字图书馆领域[5?7]中OAI?PMH协议的框架。数据提供者是框架中存储大量元数据的信息库,服务提供者可从多个数据提供者中提取元数据并提供检索、浏览等增值服务,服务提供者对数据提供者发出的是到UDP的请求,也就是基于OAI?PMH的命令动词,数据提供者对服务提供者的请求是通过HTTP协议以XML的形式响应的,注册服务器中可以进行数据提供者和服务提供者的注册。其具体框架如图1所示。
2 MARC到DC格式转换器的设计与实现
目前数字图书管中使用的元数据格式主要为MARC,而基于OAI?PMH协议的数据提供者只能支持DC格式的元数据[8]。所以要实现基于OAI?PMH协议的元数据互操作平台,就需要把MARC格式的元数据转换为DC格式的元数据。
2.1 MARC与DC格式的域对照关系
DC格式包含的元素描述共有15个,按照其描述内容的范围和类别可分为三组,具体如表1所示。
本系统提供了一个项批输入接口,所以设计的MarcDc模块应在项批输入者之前进行处理。如果输入的是MARC格式,则先经过MarcDc格式转换器进行数据转换,然后通过项批处理模块进行处理;如果输入的就是DC格式,则直接应用项批处理模块进行处理。
3 OAI?PMH互操作平台的实现
3.1 基于OAI?PMH协议的命令动词分析
基于OAI?PMH协议的数字图书馆中,为实现多个数据提供者与服务提供者间之间的元数据交互,重新设计了基于OAI?PMH协议互操作平台的命令动词,命令动词的主要功能如下:
(1) GetRecord:此动词可从仓储中搜索元数据记录。如果从仓储中和指定的项中无法得到由metadataPrefix指定的元数据格式,其可以返回状态属性的头部信息值为“删除”,此功能的实现依赖于仓储所跟踪的删除级别;
(2) Identify:此动词用于检索仓储的有关信息。利用此动词,仓储也可以返回余下的描述性信息,在返回的信息中,一部分对于基于OAI?PMH协议的互操作平台是需要的;
(3) ListIdentifiers:此动词不返回记录本身,而仅返回头部的记录,通过基于集合成员和时间戳的头部可获取选择的参数。基于仓储对删除的支持特性,如过请求中删除了与指定参数匹配的记录,则返回的记录中将含有值为“删除”的状态属性;
(4) ListMetadataFormats:此动词可从仓储中检索获得所需的元数据格式,同时可以通过参数限制该请求对指定项元数据格式的获取;
(5) ListRecords:此动词用于从仓储中获取记录。基于仓储对删除的支持特性,如果删除了请求中与参数匹配的记录,则返回的记录中将含有值为“删除”的状态属性,但返回有“删除”状态的记录是不能被表达为元数据格式的;
(6) ListSets:此动词用于返回仓储的集合结构,对于选择性获取有益。
3.2 数据提供者与服务提供者间命令动词使用方式分析
数据提供者与数据服务者之间的请求和应答是通过上述六个核心动词来实现的。使用标准的Web服务器是一个典型请求的实现方式,通过配置该Web服务器,使其可以向能够处理OAI?PMH请求的软件分发OAI?PMH请求,具体交互过程如图5所示。
数据提供者与数据服务者之间的交互步骤具体如下:
(1) 服务提供者首先找到其所需元数据的数据提供者,然后获取其惟一标识;
(2) 服务提供者向数据提供者发出ListSets请求和ListMetaFormats请求。数据提供者根据服务提供者的请求返回其所能提供的满足一定条件(如某种格式,某种主题,某个时间段)的元数据;服务提供者取得元数据后向用户提供服务。
3.3 OAI?PMH命令动词的请求和应答格式分析
(1) 请求格式
3.4 OAI六个动词的设计
(1) 概要设计
当数据提供者接收到OAI请求后,需对该请求进行解析。首先判断该请求类型是否合法,若不合法,则向服务提供者发送一个错误的信息;若合法,则判断该请求属于六个有效请求的哪个类型。由于参数metadataPrifix对于请求类型 ListIdentifiers是强制的,所以如果数据提供者接收到的请求类型是ListIdentifiers,那么解析器可以直接检查这个请求的第二个参数。但如果请求中没有相关参数,那么要确认这个请求有效,则需确认请求中必须包含resumptionToken (恢复标志参数),并且数据提供者知道这个参数。
假设数据提供者在unqualified DC模式下只能发送元数据集合,那么metadataPrifix参数惟一有效的值只能是oai_dc。在正常情况下,请求中可选取的参数是必须被解析的,但可以简单化,以一种非正式的形式进行描述。然后,根据接收到的请求参数,数据提供者运用SQL语句在仓储中进行查询,如果产生了记录大于传递标识符一次所能传递的最大值,那么数据提供者则会新生成一个resumptionToken标志,并将查询参数与指针信息存储在一起,具体实现流程如图6所示。
(2) 详细设计
① 利用Protocol数据库包进行六个动词的请求、响应及信息显示,其中Date类使用java.util.Date,Calendar或String方法实现年、月、日等各种格式间的相互转换和输出;Set类可通过一个已命名的集合创建一个新的集合,并用XML形式描述。
② 处理客户端源代码Client,可以利用一个URL或一个集合的性质创建HarvesterItinerary类用于描述harvester类的状态,HarvesterItinerary类中可以对Harvester类的状态进行保存。OAIConnection类可以描述一个到OAI的连接,用于接收单一的请求,该连接是基于用doReques或基于仓储的URL所返回的Response。
③ 互操作平台中的Server包可以提供服务器端的OAI源代码,并把源代码转换为文档服务。OAI服务的目标编程接口通过Target类实现,互操作平台通过TargetAdapter类定义了一个不做任何事的执行,GenericTarget类可以实现由一个非常简单的机制以创建小型的OAI收集器,并在存储器中寻找与服务,利用集合规程和给定的元数据前缀得到所有的记录; JDBCServer类是OAI servlet提供的一般服务器,OAIServerIfc类为OAI提供了一个框架,元数据前缀用在DC元数据核心记录,处理GetRecord 请求、Identify 请求、ListRecords请求、 ListSets请求、ListMetadataFormats请求和ListIdentifiers请求。ResumableResultSet类描述了一个结果,该结果通过与重用标记相结合,可以被客户作为一系列局部结果而重用。
3.5 数据提供者的功能实现
(1) 项的订购及提交
用户可以使用e?mail订购自己所需的项,这样可以共享数字图书馆的资源。用户首先提交项的要素描述元数据,然后上传源文件,在通过系统的验证后可把文件提交到互操作平台上供大家浏览及下载。
(2) 工作流的实现
三个小组负责人负责实现社团的工作流,每个小组负责人完成不同的工作流步骤。工作流的次序如下:当社团收到一个递呈时,如果社团中有小组负责人,那么他将会选择接受或拒绝,如果社团中没有小组负责人,这一步工作流将会被直接省略。第二步和第三步的递呈也是按照此步骤处理。
当调用工作流的第一步时,完成工作流步骤的任务把相关的递呈放到“任务箱”中,如果组中的一个成员接受任务箱中的任务,则任务被从任务箱中移出。如果一个递呈被拒绝,则系统会通过e?mail把原因发送给递呈提交者,提交者可以修改后重新提交;如果一个递呈被“接受”,将转到工作流的下一步。
(3) 搜索和浏览功能实现
终端用户可以使用多种方法发现内容,具体如下:使用关键字进行搜索;使用外部的ID号进行搜索;使用标题、数据进行浏览。
在数字图书馆系统中,发现内容最基本的方法是搜索。基于OAI?PMH协议的互操作平台的搜索和索引模块是一个简单的API接口,它能够在全部的社区、社团中完成新内容的索引、再生索引,系统的具体搜索界面如图7所示。
4 结 论
本文设计了MARC格式到DC格式的格式转换器及基于OAI?PMH协议互操作平台的命令动词,解决了数字图书馆中数据提供者与服务提供者间的元数据交互问题。给出了不同格式间的对照关系及格式转换器的实现方法,同时完成了命令动词的实现代码,对推动OAI?PMH协议在数字图书馆领域的应用具有重要意义。
参考文献
[1] NELSON M L, SOMPEL H V D, WARNER S. Advanced overview of version 2.0 of the open archives initiative protocol for metadata harvesting [C]// Proceedings of 2002 ACM/IEEE Joint Conference on Digtal Labraries. [S.l.]: ACM, 2002: 418.
[2] WARNER S, NELSON M, LAGOZE C. The open archives initiative protocol for metadata harvesting [EB/OL]. [2002?09?11]. http://www.openarchives.org/oai.
[3] 谢莉莉,林春梅,陈家训.基于XML的数据交换中心模型研究[J].东华大学学报(自然科学版),2001(6):33?36.
[4] 王海波,耿晖,姜吉发,等.基于XML的数据交换的实现[J].计算机应用,2001(4):67?68.
[5] 王爱华,张铭,杨冬青,等.基于OAI的数字图书馆中元数据互操作框架[J].计算机工程与应用,2002(1):5?7.
[6] 张咏.XML及其在图书馆和情报检索中的应用[J].现代图书情报技术,2001(2):30?34.
[7] 施芝元,刘杰群,粟欣,等.基于XML技术资源组件库的管理及调度研究[J].现代电子技术,2013,36(3):115?118.
[8] WATERS D J. The metadata harvesting initiative of the Mellon Foundation ARL bimonthly report [R]. US: Mellon Foundation, 2001.