用OAI—MHP协议解决数字图书馆互操作问题,本文主要内容关键词为:数字图书馆论文,协议论文,操作论文,OAI论文,MHP论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
【分类号】G250.76
1 OAI简介
开放文档先导(Open Archives Initiative—OAI)是一个讨论和解决数字图书馆之间互操作问题的论坛,这个论坛旨在促进网络信息资源开发、发布与共享,为实现数字图书馆间的互操作提供简单、有效的机制。OAI的第一次会议于1999年10月由美国图书馆和信息资源委员会(CLIR)、数字图书馆联盟(DLF)等组织发起,在美国新墨西哥州的圣达菲市召开。这次会议的中心议题是“电子出版文献的互操作”,主要讨论了元数据收获(Metadata Harvesting)的方法,最后形成了圣达菲协定(Santa Fe Convention)。这个协定建议数字图书馆的互操作应建立在元数据收获(Harvesting)的层次上。该协定主要包括两部分,其一定义了一个简单的元素集——开放文档元数据集(OAMS),以便在文档之间较大粒度地发现文档;其二定义了一个公共协议——开放文档Dienst协议的子集(OA-Dienst),以便在文档之间提供OAMS和指定文档的元数据。同时圣达菲协定还定义了数据提供者(Data Provider—DP)与服务提供者(Service Provider—SP)模型,另外这个协议还规定文档中的每个记录必须有一个永久性的唯一标记——URI。
圣达菲协定的初衷是用于电子出版(E—Print)领域,以解决传统学术刊物出版体系所面临的诸多问题。但自2000年2月圣达菲协定被正式发布之后,它所带来的影响远远超出了电子出版研究领域,其它领域的专家也对这个协定表现出极大的兴趣,他们将元数据收获视为最好的解决低成本互操作问题的手段。在这种背景下,DLF(Digital Library Federation)、CNI(Coalition of Networked Information)、Andrew W.Mellon基金会、ACM等数字图书馆领域的著名研究机构与OAI一起对圣达菲协定进行修改,使之符合更广泛领域中的需求。同时这个协定的名字也变成了OAI-MHP(Metadata Harvesting Protocol,有时也写成OAI-PMH)。从2000年9月到现在,OAI-MHP不断发布新版本,具体情况如下:2000年9月,发布OAI-MHP的首个Alpha版;2001年1月,发布OAI-MHP1.0(beta)版;2001年7月,发布OAI-MHP1.1(beta2)版;2002年6月,发布OAI-MHP2.0版(标准版)。
目前OAI-MHP协议的最高版本仍然是2.0,要获取OAI-MHP的最新信息,请访问http://www.openarchives.org/OAI/openarchivesprotocol.html。
有关OAI-PMH的研究主要由美国科学基金会(NSF)与美国国防部高级研究项目署(DAEPA)资助,项目编号分别是IIS—9817416与N66001—98—8908。OAI的执行机构设在美国Cornell大学计科系。另外OAI也得到了美国图书馆和信息资源委员会(CLIR)、网络信息联合会(CNI)等机构的支持。
2 OAI-MHP协议的基本思想
根据数字图书馆的资源建设情况,我们大致可以将数字图书馆的发展分为两个阶级:第一阶级的主要任务是文献信息数字化,建立起各自独立的、封闭的数字资源库;第二阶段的任务是在此基础上将各个独立的资源库连接起来,形成彼此之间可以进行互操作的分布式数字图书馆。为达到这一目标,人们进行了许多探索。在此以前,许多研究数字图书馆互操作问题的项目都主要着眼于利用分布式检索技术将不同的数字图书馆整合成一个单一的信息服务系统。对于数字图书馆结点比较少(一般来说是不超过20个)的情况下,这种技术是比较适用的,但在Internet环境中,数字图书馆结点的数量都比较大(大于100),在这种情况下,利用分布式检索技术来解决数字图书馆互操作问题就变得十分困难。
基于这种情况,OAI抛弃了以前那种复杂的分布式检索模型,而采用了一种技术上不那么复杂、但十分灵活、收缩性强的数字图书馆互操作方案,这个方案只定义了一个通用的元数据批量传输协议,对于其它方面,要么从其它现有标准、技术中借用,要么实现为一个独立的服务。
理解OAI技术的关键是要理解“服务提供者(Service Provider—SP)”与“数据提供者(Data Provider—DP)”这两个角色的分离。在实际中,SP与DP可以是不同机构,也可以属于同一机构(现在大多数下DP与SP是合二为一的),但理解这两者之间的区别是十分重要的。一个DP就是一个存储有大量元数据的信息库(这些元数据不一定指向其对应的全文文档),而一个SP则从一个或多个DP中抽取元数据,提供增值服务(如搜索、浏览等)。图1演示了一个简单的SP/DP模型,在这个例子总共有两个不同的SP,一个SP从两个DP中“收获(Harvest)”元数据,另一个SP则从三个DP中“收获”元数据,数字图书馆用户可以在这两个SP中进行选择。各个SP可以根据自身情况以及所服务的用户群特点,自主决定本SP的服务内容、服务方式以及用户界面。SP的服务可能是免费的,也可能是收费的,不同的SP之间会存在着竞争。
图1 一个简单的DP/SP模型
OAI元数据收获协议(OAI-MHP)定义了SP与DP之间的交互协议。一个数字图书馆可以既是SP又是DP(实际上传统的数字图书馆几乎都是如此),然而SP与DP功能的分离有利于社会分工,使得一些机构成为专业的数据发布者,而另外一些机构则专注于针对其特定用户群体开发有特色的增值服务。虽然最初制定OAI-MHP的主要目的是为了学术领域的电子文献共享,但OAI-MHP同样适用于其它很多领域,包括多媒体信息处理以及Web隐藏信息的发现。
3 元数据收获(Metadata Harvesting)协议
OAI-MHP协议定义了6个谓词(Verb),这些谓词完成DP与SP之间的交互,见表1。这6个谓词中,有三个谓词用于提供描述文档本身的元数据,它们分别是:Identify、ListSets 与ListMetadata Formats,它们提供了对文档的描述、联系方式、用户协议以及其它有关规定。
表1 OAI-MHP中的6个谓词
Verb
说明
Identify 返回该存档的详细描述(名称、联系方式等)
ListSets 返回库中可用的资源分组的名称(如音乐、影
片等)
List Metadata Formats
返回存档所用的元数据格式
List Identifiers
返回满足查询条件的记录的标识
Get Record 返回与指定标识对应的记录
List Records
返回满足查询条件的记录
元数据收获的主要实质性工作是由ListIdenti-fiers、GetRecord以及ListRecords这三个谓词完成的。注意,此处的标识(Identifier)是指元数据本身的唯一标识,并不是指向全文文档的标识。这些标识都是层次结构的,以“oai:”打头,紧接着是库标识,再就是为标记元数据的逻辑字符串。ListIdentifiers与ListRecords这两个谓词可以接受参数,指定日期或日期范围,以实现增量元数据收获(例如,我们可以要求DP提供自2003-9-22以后新增加的元数据)。另外这三个谓词都有可选的资源分组(Set)参数(例如,收获所有“subject=physics & status=approved”的记录)。当使用多个参数时,则取其各自运算结果的交集(即进行与运算),以限定所收获结果的范围。
OAI-MHP协议是基于HTTP协议的,所有的OAI中的谓词都在URL中编码成一个HTTP请求,由一个SP发送给一个DP,DP中返回的结果都使用XML进行编码,SP与DP之间的交互见图2。例如,假设一个DP的基本URL地址是http://naca.larc.nasa.gov/oai,如果我们要列出自2003—9—22以后DP中所有新增资源的标识,则应向此DP发出如下请求:
http://naca.larc.nasa.gov/oai?verb=ListIdentifiers&from=2003-9-22
DP返回的结果可能是如下内容:
<?xml version="1.0"encoding="UTF?8"?>
<ListIdentifiers
xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers
http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers.xsd">
<responseDate>2003-9-24T23:23:57+00:00</responseDate>
<requestURL>http%3A%2F%2Fnaca.larc.nasa.gov%2Foai%2Findex.cgi%3Fverb%3DListIdentifiers
%26from%3D2003—9—22</requestURL>
<identifier>oai:NACA:1958:naca-rm-a58c03</identifier>
<identifier,>oai:NACA:1958:naca-rm-a58c21</identifier>
<identifier>oai:NACA:1958:naca-tm-1441</identifier>
</ListIdentifiers>
从DP返回的内容可以看出,自2003—9—22以后,此DP中总共加入了3条新记录,这三条记录的标识分别是:
oai:NACA:1958:naca—rm—a58c03
oai:NACA:1958:naca—rm—a58c21
oai:NACA:1958:naca—tm—1441
SP收到这些结果后,可以分别使用三个GetRecord以一一获取这三个新记录的元数据,也可以使用ListRecord加上from参数以一次性地获取这三个新记录的元数据。需要指出的是,终端用户是无法直接看到DP与SP之间进行的OAI交互过程的,OAI只是一个对用户而言完全透明的中间件。如果开发人员想在自己所开发的数字图书馆中加入OAI界面的话,可以借助于OAI网站提供的一些工具。这些工具中最重要的是库浏览器(Repository Explorer),通过使用这种浏览器,用户可以方便地对其所使用的DP进行浏览、测试。
图2 SP与DP使用HTTP协议进行交互
4 关于OAI的进一步说明
关于OAI,有几个常见的认识上的误区,需要进步说明。首先,我们应该记住,OAI本身并不是一个数字图书馆,它只是加在已有的数字图书馆之上的互操作层,正因为如此,OAI协议并没有提供增加、删除、修改记录的机制,诸如此类的这些操作应该在各个数字图书馆内部中进行,而不是由OAI这种互操作层来完成。同样地,OAI不是数据库,不是搜索引擎,不是元数据,也不是OAIS(开放档案信息系统)。
其次,OAI—MHP协议并没有提供分布式搜索机制。虽然OAI提供了基于日期范围的数据获取功能,但这只是为了解决元数据的同步问题。OAI并不支持关键词检索、通配符检索等高级检索功能,这些功能也应该由各个数字图书馆来实现。OAI技术的一个重要思想就是“DP越简单越好”,其它功能则交给SP来完成。
另外,OAI中并没有诸如安全认证、访问控制的功能。OAI将这些功能交给OAI所依赖的传输协议也就是由HTTP来完成,而不是集成到OAI-MHP协议之中。在实际的OAI系统中,我们可以在HTTP中进行安全设置,以控制SP对DP的元数据收获。例如,我们可以进行IP设置,只有具有特定IP地址的SP才能够从某个DP中获取元数据;也可以进行用户名/密码控制,SP必须提交了正确的用户名与密码后才能够从DP中获得元数据。需要说明的是,OAI中的Open一词并不是说将DP中的元数据毫无保留地将Internet开放,而是指资源库按一定方式向外界开放以及交互协议的开放性。
5 小结
OAI-MHP协议是一种在国际数字图书馆互操作研究领域产生了重大影响的批量元数据传输协议。基于“越简单越好”的设计思想,OAI-MHP协议只定义了最基本的DP与SP之间的接口,其它部分则尽可能地借用已有的协议、标准、规范(HTTP、XML、都柏林核心元数据等)中。在这种模式下,DP的任务变得相对轻松,那些本来属于DP的、比较复杂、繁重的工作被转移到SP这一方。OAI-MHP基于HTTP协议,定义了6个谓词(Verb),每个谓词都有可选的参数,一个完整的元数据收获请求由一个谓词、该谓词的参数再加上DP的URL基地址构成,DP的返回结果采用XML格式进行编码。从以上描述可以看出,OAI-MHP协议具有很强的兼容性、开放性与灵活性,正因为它具有这些特点,所以OAI-MHP在世界范围内受到广泛欢迎,正在运用到越来越多的领域之中。