元数据收割协议OAI-PMH,本文主要内容关键词为:协议论文,数据论文,PMH论文,OAI论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
中图分类号:G250.76 文献标识码:A 文章编号:1007-7634(2005)03-0414-06
图书馆在各自的数字化过程采用了不同的系统结构,使用了不同的信息技术,这些不 同造成了数据结构的差异。因此要使客户在不同的数据库系统之间进行检索就存在很大 的障碍,这样跨库检索就成了一个研究重点。元数据为图书馆提供了很好的信息内容描 述,从MARC到DC各种元数据标准一直是图书馆界重点关注的对象。元数据标准的不同也 给信息共享带来了障碍,因此互操作(Interoperability)技术也成为数字图书馆建设中 的一项关键性技术。本文所介绍的OAI(Open Archives Initiative)就是一个可以很好 解决元数据共享和互操作的协议。
1 OAI概述
OAI—Open Archives Initiative(开放文档先导),其主要目的是为了促进信息的有效 交流和共享。它起源于电子出版组织(E-prints),“Archive”在E-prints组织中是学 术论文库的意思,不过OAI中的“Archive”意义则更加广泛,它可以指代所有存储的信 息。上世纪90年代为了更好解决传统出版模式滞后于学术研究发展的问题,学术出版界 兴起了通过使用“预印本”(pre-print)方式进行学术交流的潮流,一些学术组织把用 于共享的学术信息存放于服务器中供感兴趣的组织或个人检索查阅。这些服务器被为“ 仓储”(Repositorise)或者“文档库”(Archives),随着Internet的发展,这种出版模 式成为了学术界发布和交流信息的重要形式。这种方式存在的一个问题是这些服务器的 系统结构、所采用的数据库类型等都存在差异,如何解决好分布式的异构数据库之间的 跨库检索就成了倍受关注的问题。
1999年在美国新墨西哥州的圣达菲召开的一次电子出版界研讨会上,提出了一个标准 接口,使得网络服务器可以通过这个接口来发布其上电子文档的元数据,多个采用这种 接口的仓储(Repositories)结合在一起可以形成一个联邦式的仓储,其他组织可以像对 单独一个仓储操作一样检索和利用这些仓储中的元数据,这个接口就是OAI协议的雏形 。这次会议基本确立了OAI协议的框架,同时把核心的参与者组织到一起成立了协议的 领导和组织机构,圣达菲会议因此也成为OAI发展历史上的第一个里程碑。[1]圣达菲会 议以后几个工作组就开始着手具体标准的制定。由于许多部门也都面临相似的信息共享 问题,所以这项工作有许多对网络信息有兴趣的组织参与进来,其中有NASA、OCLC等著 名机构以及众多大学、图书馆、博物馆以及一些出版组织。并且在网络信息联盟(CNI,The Coalition for Networked Information)、数字图书馆联盟(DLF,Digital Library Federation)和国家科学基金(NSF,The National Science Foundation)的支持和资助 下在Cornell大学设立了主管这项工作的秘书处,由OAI协议框架的最初倡导者Carl Lagoze和Herbert Van de Sompel两位教授负责主持日常事务,同时设立指导委员会和 技术委员会分别负责协议框架的指导和具体的技术开发工作。经过开发人员一年多的努 力,2001年1月推出了OAI协议的可操作版本OAI-PMH(Open Archives Initiative Protocol for Metadata Harvesting)的第一版。OAI-PMH1.0版的协议可以为各类从事 网络内容出版的组织所用,任何网络服务器都可以配置这个协议。经过一年多的试用反 馈OAI组织的开发人员又于2002年6月推出了协议的第二版OAI-PMH2.0。OAI-PMH1.0和2.0版的诞生也分别成为了OAI协议历史上了的另外两次里程碑性的事件。
2 OAI-PMH的工作原理
OAI-PMH使用TCP/IP协议作为收割者和仓储之间的传输框架。在这个互操作框架中有两 种不同的角色:数据提供者(Data Provider)和服务提供者(Service Providers)。
(1)Data Provider:数据提供者是元数据的发布方,一般拥有一个或多个仓储,采用OAI技术框架发布元数据,使得服务提供者可以根据自己的需要对这些元数据进行收割 加工。
(2)Service Providers:服务提供者是元数据的收割方,使用OAI协议向数据提供者发 出请求,并接收返回的元数据作为构造附加服务的基础。一个服务提供者可以收割多个 数据提供者的数据,如图1所示。
OAI-PMH采用了基于HTTP协议的请求和XML格式的响应方式,这使得协议可以和目前的Web方式很好结合。由于利用的都是现有成熟技术,在配置上也很方便,所以它是一个 应用成本很低的元数据收割机制。多个服务提供者可以从多个数据提供者那里收割元数 据,这在某种程度上确保了元数据信息的广泛传播。经过三年多的发展OAI-PMH已经从 最初的应用于电子出版组织发展到对各种信息资源描述有共享要求的领域。虽然为了标 准的统一和更广泛的适用性,OAI-PMH把Dublin Core(DC)作为互操作的标准元数据,但 是由于DC的15个元素集不能很好满足不同类型部门的需求,所以OAI-PMH也支持其他任 何可以编码成XML格式的元数据标准。现在采用OAI协议的多数组织都是采用对DC进行扩 展的方式来实现自身的特殊要求。
信息仓储是网络服务器上OAI协议的HTTP请求提交的对象,仓储内存储了对各类资源的 描述信息,这些信息叫做条目,每个条目又可能有多种元数据格式表示,每一种表示叫 做记录。这里的资源可以是数字资源也可以是非数字资源。记录是由OAI-PMH支持的元 数据格式表示(比如,同一个条目可能既有DC格式的表示,也有RCF1867格式的表示), 而每个条目都有一个唯一的标识。多个条目又可以分组成集,某个条目可以属于某个集 或者多个集,也可以不属于任何集。在OAI构架中,集可以有等级结构,在这种情况下 ,子集可以被作为它的父集的部分被收割。集或者集的等级结构并没有在OAI框架中定 义,但可以在仓储的内部定义集或者集的等级,只是要注意这个定义要在数据提供者和 服务提供者之间达成一致。定义集的等级结构的一个好处就是可以进行选择性的收割, 即可以根据相应的集合结构有选择性地对元数据进行收割,另外还可以根据日期进行选 择性收割。[2]
在OAI协议中,通过HTTP协议主要规定了如下六种请求,这些请求也被称作动词:
Identify:得到关于仓储的基本信息,比如;URL、所采用的协议版本、E-mail地址等 。
Listmetadataformat:得到仓库所支持的元数据格式信息。
Listsets:得到仓储中记录的等级情况,以便用户选择性收割。
ListIdentifiers:得到数据仓储中的相关条目号。
ListRecords:列出完整的元数据记录。
GetRecords:根据指定的条目号和元数据格式,从仓储中得到记录内容
服务提供者方利用收割器生成请求,采用HTTP协议的GET或者POST方法发向数据提供者 ,从数据提供者获得元数据以后,经过规格化处理、查重等操作以后存放在服务提供者 的数据库中以构建增值服务,比如,如果服务提供者提供对某些仓储统一的检索界面就 是一种增值服务。
数据提供者也是采用HTTP协议的方式响应,响应的内容采用XML格式编码。响应信息中 有可能也包含HTTP协议的一些状态信息,比如错误信息(503,service not available) 。以XML格式返回的元数据记录(一般采用DC格式)包括下面三个部分。[3]
第一,头部分(header),这一部分包括元数据的标示符以及一些用于选择性收割的描 述信息,比如datestamp记录了创建、修改或者删除的日期,setSpec表明记录所属的子 集。
第二,元数据部分(metadata),这一部分给出了所采用的元数据格式以及详细的元数 据描述。比如oai__dc:dc表明所采用的为DC格式的元数据,title、creator、subject 等就是按照DC格式的元数据信息。
第三,关于(about),这一部分是可选项,用于复验记录的元数据部分。内容包括对
XML Schema的验证,以及元数据的收割状态信息。
以下是一条XML格式的元数据记录。
xmlns:dc = “http://purl.org/dc/elements/1.1/” xmlns:sxi = “http://www.w3.org/2001/XML Schema-instance” xsi:schemaLocation = “http://www.openarchives.org/OAI/2.0/oai__dc/” http://www.openarchives.org/OAI/2.0/oai__dc.xsd”> Content Comment:23 pages including 2 appendices,8 figures 2001-12-14
xmlns:xsi = “http://www.w3.org/2001/XML Schema - instance” xsi:schemaLocation = “http://www.openarchives.org/OAI/2.0/provenance http://www.openarchives.org/OAI/2.0/provenance.xsd”>
3 OAI-PMH的配置
在配置OAI-PMH之前,需要考虑清楚一些问题。比如对于数据提供者来说,需要考虑共 享哪些信息;打算给哪些服务提供者提供数据。对于服务提供者来说需要考虑:为那些 对象提供什么样的服务;从哪些数据提供者那里收割元数据;为了支持自己的服务,该 怎样处理收割来的元数据。作为收割双方的数据提供者和服务提供者之间还要就一些问 题达成共识,比如更新的频率(包括数据提供者数据更新的频率和服务提供者收割的频 率),元数据格式(采用何种格式的元数据)等。另外,在数据提供者方面,可以根据需 要对元数据进行分类,比如按照主题分类或者按照资源的类型分类,这种分类还可以等 级结构的。在被收割的时候只要和服务提供者方达成共识,就可以按照等级结构来进行 收割。
具体的配置过程中,不需要专门开发软件,在OAI的官方网站(www.openarchives.org) 上有一些可以利用的工具列表,这些工具大多是遵循开放源代码协议的,所以可以下载 后直接使用,或者按照自己的要求进行修改。
3.1 数据提供者方的配置
数据提供者的元数据都存储在数据库中(比如关系数据库),其中的每一个条目都被唯 一标示。数据提供者方配置成一个Web服务器(采用Apache、IIS等),对它的访问通过Internet,当服务提供者向数据提供者发出请求以后,数据提供者方有一个验证程序( 采用PHP、Perl或JSP等编写)对这个请求的合法性进行验证,如果通过验证则创建SQL查 询语句,否则生成一条错误消息返回给服务提供者方。SQL语句对数据库进行查询以后 ,数据库返回相应的纪录,并送交程序处理成XML格式响应返回到服务提供者方,这个 过程中可能还有一个数据流的控制,如果一次查询的结果较多,数据提供者可以通过流 控制(Flow control)来控制每次返回的查询结果,同时为了提高数据传输的效能,还可 以对数据进行压缩以后再发送,如图2所示。
数据提供者配置好服务器以后,可以创建一些基于OAI-PMH的查询,来对配置的效果进 行测试。不过测试也有专门的工具软件,可以使用Vermout大学开发的Repository Explorer(http://oai.dlib.vt.edu/cgi-bin/Explorer/oai2.0/testoai/)协助进行测 试。Repository Explorer具有交互式的自动测试功能,可以在页面窗体中输入数据仓 储的URL地址,然后选择列表中的动词,返回的页面就是使用这个动词查询的响应结果 ,还可以选择响应结果的方式,选择以未解析的XML格式返回或者是己解析的结果返回 。它还可以对Schema进行验证,通过这种方式可以很方便的对数据提供者的配置情况进 行测试。Repository Explorer目前支持中文、英文、西班牙语、法语、德语、韩国语 以及葡萄牙语。
如果确信配置工作没有问题了,就可以在OAI的官方网站上对这个数据仓储进行注册。 注册时需要提供仓储的名称、URL、简单的描述信息、负责人的联系方式(Email)等,注 册地址是:http://www.openarchives.org/data/registerasprovider.html。OAI组织 会对每个注册的仓储进行评估测试,如果通过测试,这个数据仓储就会被加入OAI组织 的官方列表中。这样这个仓储中的数据就可以被所有对它感兴趣的服务提供者收割利用 ,其中的信息也可以被更广泛的传播和使用。一些所提供的信息内容相关的数据提供者 还可以组成一个小组,这样当服务提供者收割某一个仓储时可以通过返回信息发现更多 的相关仓储。目前在OAI官方网站注册的数据提供者有139个(http://www.openarchives .org/Register/BrowseSites.pl)。
3.2 服务提供者方的配置
服务提供者方需要有一台和Internet相连的服务器,另外还要有一个数据库系统和程 序环境。服务提供者方通过文档管理组件对被收割的仓储进行管理,建立一个可以收割 的文档列表,每次收割的时候选择需要收割的仓储。请求组件生成HTTP格式的请求,并 发送到OAI仓储,使用OAI-PMH允许的动词来请求元数据,也可以使用集参数对仓储进行 有选择性的收割,还可以定义收割的时间和规则。收割来的XML格式的数据经过XML
Schema验证重复性检查以后,把它们转化为需要的内部数据格式存放在数据库中(也可 以使用支持XML格式的数据库),如图3所示。
对于服务提供者的测试可以采用对已经注册的数据提供者的收割操作来检查配置效果 。已经注册的数据提供者列表可以在OAI的官方网站上找到。即使根据服务提供者的情 况,并不打算从这些数据提供者处收割元数据,也还是可以通过这种方法来验证服务提 供者的配置是否正确。如果已经通过测试,并确信这些服务是可以为公众所用的,也可 以到OAI的官方网站注册(http://www.openarchives,org/service/listproviders.html ),这里列出了所有已经通过注册的服务提供者。至于具体提供什么样的增值服务,则 是服务提供者需要重点考虑的问题。
4 OAI协议评价及应用
4.1 对OAI协议的评价
OAI-PMH的配置很简单,数据提供者只需要经过简单的编程和配置Web服务器以便可以 对OAI-PMH的请求进行解析,并且返回XML编码的元数据。相应地采用OAI-PMH进行元数 据共享成本也很低。根据OAI组织的说法如果本来数据已经过很好的组织并且有相应的 元数据记录,配置工作甚至可以在一两天内完成。
在OAI协议出现以前,在跨库信息检索方面使用较多的协议是Z39.50——信息检索应用 服务定义和协议规范(Information Retrieval Application Service Definition and Protocol Specificaton)。Z39.50协议较之OAI协议就要复杂得多,不过它的功能也强 大得多。采用Z39.50协议需要在客户端和服务器端都安装相应的软件。Z39.50协议主要 用于图书馆中目录的共享,操作的对象是MARC纪录。客户端可以是编目员使用的个人计 算机或公共目录查询终端,服务器则是图书馆管理系统服务器,双方的交互采用TCP/IP 协议。编目人员使用这种客户端,可以更新书目数据,读者使用这种客户端,可以了解 各图书馆的文献收藏情况。Z39.50协议还具有对客户端管理以及对检索信息进行过滤的 功能。不过众多的功能也增加了Z39.50协议配置的复杂程度和应用成本。[4]
为了实现协议配置和操作的简便性,当前的OAI体系结构中只定义了对元数据信息的跨 库共享,而没有提供对没有编码成XML格式的内容数据的获取机制,也没有要求元数据 必须和相应内容相连。但是,许多的用户可能都希望可以访问相应的内容信息,数据提 供者可以提供这种元数据和内容之间的联系。DC中的identifier元素就可以用来解决这 个问题。
OAI目前还没有加入任何一个标准化组织。虽然成为一种标准可以使更多的人了解和应 用该协议,但是一个标准的认证过程却是很琐碎和冗长的,需要投入大量人力,这使得 OAI组织仍然想继续现在的状态,即通过协议被广泛采用来形成一种事实上的标准,他 们认为只有当真正需要的时候再去进行标准的官方认证。
4.2 OAI协议的应用
OAI协议推出以后,受到了许多涉及到数字资源的组织的支持和响应,也有一些组织的 研究项目采用了OAI协议,这些项目一般都是由一些著名机构所资助的。下面列举几个 比较有影响力的项目。
(1)NDLTD-Networked Digital Library of Thesis and Dissertations。NDLTD(http://www.ndltd.org/)是由美国国家自然科学基金支持的一个网上学位论文共建共享项目 ,为用户提供免费的学位论文文摘和部分全文。NDLTD首先定义了一个满足他特定需要 的元数据集。这个元数据集是DC的扩展,它增加了额外的字段,用来存放有关学位论文 的类型信息。从DC继承的字段被赋予了能被所有成员理解的特定语义。所有的NDLTD站 点都遵循该元数据规范,通过OAI协议对所有的NDLTD站点进行访问,Virginia大学为此 开发了一个基于OAI的跨库文档检索系统。[5]目前全球有170多家图书馆、7个图书馆联 盟、20多个专业研究所加入了NDLTD。[6]
(2)ARC-A Cross Archive Search Service。ARC(http://arc.cs.odu.edu/)是Old Dominion大学数字图书馆研究组开发的一个实验性的服务提供者,它对收割来的元数据 进行处理以后存储到一个关系数据库中(比如,MySQL或者Orasle),目前有从众多数据 提供者收割了大约六百万条不同领域的元数据记录。ARC提供统一界面对这些数据进行 检索服务。它有简单搜索和复杂搜索两种检索方式。其中简单查询可以按照时间或相关 度排序输出,复杂查询中用户可以选择对作者、标题、文摘进行检索,还可以对需要检 索的数据提供者进行选择,排序和分类的选择也比简单查询多。另外,Arc还提供了对 所有记录的浏览功能。
(3)NSDL-National Science Digital Library。NSDL(www.nsdl.org)是美国国家科学 基金资助的项目,目的是建设美国最大和最多样化的国家科学数字图书馆。NSDL的一个 核心部分是元数据仓储(Metadata Repository),元数据由分布在全美各个州的项目参 与者提供。OAI协议在整个过程中起到连接和传递作用,把NSDL的各个组成部分有机地 结合为一个整体,并将底层的数据提供者所提供的元数据最终传递给需要这些数据的外 部应用程序。[7]
(4)OAIster。OAIster(http://oaister.umdl.umich.edu)是密歇根大学数字图书馆(University of Michigan Digital Library)服务的一个项目。它的目标是创建一个方 便使用面向学术数字资源的仓储。另外,OAIster也是受梅隆基金(Mellon fund)资助的 一个项目,用于测试公共数字资源共享中利用OAI的可行性。OAIster采用OAI协议收割 不同机构的元数据记录构建自己的服务,比如,它可以收割国会图书馆“美国记忆(American Memory Project)”项目的元数据,用户可以通过检索OAIster获得这些元数 据记录,并通过这些记录直接链接到相应的数字资源。截止到2003年11月OAIster已经 收录了239个机构的近200万条记录。
(5)myOAI。myOAI(http://www.myoai.com)是一个功能齐全的搜索引擎,由美国FS Consulting公司开发,用于检索经过选择的采用OAI协议的元数据数据库。它可以按照 用户的需要定制检索过程,用户可以选择希望检索的数据库、选择结果集排序输出方式 等,如果是注册用户还有保存检索出的文档、处理检索的历史纪录、对检出的文档进行 评价、定制检索界面等功能。
相对来说目前国内在OAI的应用方面还没有国外普遍,不过也有一些项目采用了OAI协 议来实现元数据的互操作。比如CSDL(国家科学数字图书馆)的“科学数据库跨库搜索引 擎”,采用了OAI协议提供资源检索服务,目前采集了110个数据提供者的3,461,462 条数据,用户可以同时检索多个关键词,还可以选择题名、描述、作者、投稿者、出版 者、主题词和URL等来缩小检索范围。[8]CALIS的各个子项目(包括参考虚拟咨询、导航 库建设、馆际互借等)服务也都利用了OAI协议,将各个参建馆对应系统的元数据收割到 子项目分中心的资源库中。北京大学数字图书馆研究所的中文古籍数字图书馆采用了OAI协议来发布和检索估计拓片的元数据信息。[9]上海交通大学与美国自然科学基金会 国际数字图书馆的合作项目“CMNet,中华文化网”的子项目中国民族音乐数字图书馆 项目也利用了OAI协议,OAI协议在MNet的系统框架中实现元数据的收割、管理并支持构 建相应的增值服务。[10]
5 结语
目前,OAI在分布式信息共享领域应用很广泛,它也是数字图书馆领域中讨论的热点技 术。国外有很多机构资助和参与OAI相关项目的研究。另外,OAI-PMH在挖掘“深层网络 ”(Deep Web)的隐藏信息方面也有很好的应用前景,比如Old Dominion大学的DP9项目 就是利用OAI与Web搜索引擎结合挖掘隐藏在网络深层的信息。我国在利用OAI-PMH方面 的研究也是方兴未艾。OAI-PMH必将在数字图书馆建设中扮演着越来越重要的角色。