基于OAI-PMH和复杂对象格式的资源收割机制探讨,本文主要内容关键词为:对象论文,机制论文,格式论文,资源论文,OAI论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
1 OAI-PMH及资源收割问题简介
1.1 OAI-PMH简介[1]
OAI-PMH(Open Archive Initiative for Protocol Metadata Harvesting),简称OAI协议,其核心思想非常简单:定义数据提供者和服务提供者两类角色,服务提供者从多个数据提供者的仓储(Repository)中收割元数据,将之集中保存在一个中心仓储中,并在此基础上提供增值服务。OAI-PMH是建立在HTTP协议基础上的应用协议,采用了HTTP协议的许多设计方法,它使用http get/post方法发出请求,使用http的状态码来表示请求/响应中的错误。当HTTP协议中的内容不能满足OAI-PMH的收割请求时,OAI-PMH对其进行了扩展,即规定了6个方法,每个方法下面又包括一些参数,表1列出了它规定的所有方法名及其所包含的参数。任何仓储只要使用OAI-PMH规定的6个方法支持http get/post请求,就可成为数据提供者,服务提供者收割来自数据提供者的XML格式编码的元数据并在此基础上提供增殖服务。为了实现内容层面的互操作,OAI协议规定所有数据提供者必须支持DC的15个元素,但是并不限制采用其他的元数据格式。
表1 OAI-PMH支持的方法名和参数列表
方法名对应的参数
说明
Identify 无
得到有关系统配置的信息
From:指定返回记录的时间范围(开始)
Until:指定返回记录的时间范围(结束) 得到记录集,记录集中只包含标
ListIdentifiers
Set:用于选择性收割,收割set指定条件的记录
识符(简单格式的记录集)
ResumptionToken:指示不完整记录列表,当返回的记录较多时,使用
该参数分几次得到所需的记录
ListMetadat-aFormats Identifier:记录的唯一标识符 得到系统或某一条记录支持的
元数据格式
GetRecord Identifier:记录的唯一标识符 得到一条记录
MetadataPrefix:元数据格式
From:指定返回记录的时间范围(开始)
Until:指定返回记录的时间范围(结束)
ListRecords
Set:用于选择性收割,收割set指定条件的记录
得到完整的记录集
ResumptionToken:指示不完整记录列表,当返回的记录较多时,使用
该参数分几次得到所需的记录MetadaPrefix:元数据格式
ResumptionToken:指示不完整记录列表,当返回的记录较多时,使用得到系统支持的所有set列表
ListSets 该参数分几次得到所需的记录
1.2 基于OAI-PMH的资源收割问题
OAI-PMH广泛应用于资源元数据的收割,而出于长期保存和资源发现的目的,数字资源本身的收割也变得十分必要。人们在实践中已经探索出通过OAI-PMH所暴露的普通描述元数据来间接获取数字资源的一些方法。大多数情况下,这些仓储所暴露的DC元数据描述了可在某个网址访问的数字资源,这些数字资源及其访问网址一般处于运行OAI-PMH仓储的数据提供者的控制之下。在这种情形下,常用的数据获取方法如下:
(1)OAI-PMH收割器从OAI-PMH仓储收割DC记录;
(2)收割器分析每条DC记录,抽取dc.identifier信息以获悉所描述资源的网址;
(3)一个独立于OAI-PMH的应用进程从该网址获取资源。
这种方法存在两个突出的问题:
(1)基于dc.identifier中提供的信息定位资源时,无法区分各种类型的标识符和定位符;
(2)OAI-PMH时间戳不是基于日期进行资源增量收割的一个可靠基础,缺少触发资源收割的时间戳,无法保障收割资源的同步问题。
为了克服上述两个问题,人们又提出种种具体解决方法,但是都不具有通用性。这是因为不加修饰的DC不具备足够严格的语义来明确表达资源收割所需要的信息,加修饰的DC也无法克服第二个问题[2]。另外,有人提出扩展OAI-PMH,增加一个动词专门用于内容获取。我们认为,协议的扩展需要慎重,因为目前已经有大量基于OAI-PMH的应用和工具,协议的扩展会对它们造成一定的影响,不利于互操作。
因此,资源收割问题需要一种更好的通用解决方案,而技术的不断发展也提供了这种可能。我们都知道,OAI-PMH作为元数据收割的一种方法得到广泛应用,而资源相关的元数据本身却在OAI-PMH数据模型之外。通过OAI-PMH所暴露的元数据一般为描述性的,其复杂程度不同。目前已经出现一些基于对元数据的灵活理解,对OAI-PMH的创新应用,如将关于资源的访问历史作为元数据,通过OAI-PMH暴露给外界[3]。由于OAI-PMH具有支持各种元数据格式的灵活性,那么很自然的一个想法是采用更加复杂的元数据格式,克服DC等普通描述元数据在资源收割方面的不足。 事实上,目前更加复杂的对象格式存在并且逐渐得到认可和应用,如METS、MPEG-21 DIDL、OEBPS、SCORM等。下面我们首先分析复杂对象格式,然后对基于OAI-PMH和复杂对象格式的资源收割机制及其应用模式进行探讨。
2 复杂对象格式分析
下面对Warwick框架这种数字对象元模型和复杂对象格式进行分析。
2.1 Warwick Framework[4]
为了解决不同类型元数据的组合使用及互操作问题,Cornell大学的数字图书馆研究小组于1996年提出Warwick框架,一种容纳各种元数据集的容器结构。Warwick框架是对整个元数据空间的模块化表示,它可以将不同元数据集合聚集在一起。在Warwick 框架中存在着两种基本的构件:容器和包。这里,包代表不同的元数据集合,而容器是包的聚集单位。为了表达容器中各种包之间的复杂关系,引入了一个新的抽象:Warwick框架目录(WFC)。WFC是一个包括容器中包及其关系的列表。WFC可以作为容器中第一个包提供给客户,以提供足够的处理本容器内其他包的信息。
元数据与数据有相似的行为与特征,它们主要通过语义和环境来区分。因此我们可以很方便地将Warwick框架一般化,使其能够包含任何类型的资源而不仅仅是所谓的“元数据”,这样可以将Warwick框架视为一种数字对象元模型。下面提到的几种复杂对象格式的设计都受到了Warwick框架的影响。图1为一个Warwick框架示例。
附图
图1 Warwick框架示例
2.2 METS(元数据编码与传输标准)[5]
METS是使用XML技术对元数据进行编码和表达文献结构的标准,其基本结构如图2所示。主要由描述性元数据、管理性元数据、文件组、结构图、操作行为等部分组成,每部分又可以进一步模块化。描述性元数据和管理性元数据部分主要是通过引用或内嵌的方式,采用其他外部元数据集合中的合适元素来表达与描述和管理相关的元数据信息,并把它们封装在一起。文件组和结构图是结构性元数据部分,使用了自己定义的元素。操作行为部分包括抽象的接口定义和具体的实现机制,用来在METS对象的内容和可以执行的操作行为之间建立联系。总的来说,METS提供了一种灵活可变的机制来表达结构,将结构与内容连接,将结构和内容与相应的描述性元数据、管理性元数据、操作行为信息关联。
附图
图2 METS的基本结构
2.3 MPEG-21 DIDL[6]
MPEG-21 DIDL是一种使用XML技术封装数字内容的标准手段,它定义了若干具有层次和嵌套关系的抽象实体,如容器、数字项、组件、资源等,即一个数字对象封装为一个容器,容器由若干数字项组成,还可以嵌套地包含子容器;数字项由若干组件组成, 也可以嵌套地包含其他数字项;组件由一个或多个资源组成,同一个组件中的多个资源等价。同时使用描述符来表达与实体相关的二次信息,如标识信息、描述信息、权限信息、操作处理信息等。可以看出,这是一种非常强大的具有底层模型支撑的复杂数字对象格式,它可以标准而灵活的方式表达任意元数据、聚集不同类型的多种资源、表达资源集合中的复杂结构关系,并且能够准确地标识实体且将相关实体与其操作处理信息关联。
其他常用的复杂对象格式还有针对电子图书的OEBPS[7] 和针对学习对象的SCORM等,在此就不一一列举。
2.4 比较分析
通过分析可以发现,尽管METS、MPEG-21 DIDL、OEBPS、SCORM等复杂对象格式是由不同领域提出,它们在本质上却是一致的,都借鉴了Warwick框架的容器机制,采用模块化方法设计,均具有如下核心特点:
(1)使用XML技术,通过一个封装的XML文档表示一个数字对象。数字对象是一种抽象的数据结构,除了数据本身和元数据外,还包含了对数据进行的操作。
(2)可以表示由单个数据流组成的简单数字对象和由多个数据流组成的复合数字对象,能够明确地传递数字对象及其组成数据流的标识符。
(3)可以两种互不排斥的方式(传值或传址)包括一个数据流,能够以引用或内嵌的方式包括一个数据流相关的多种二次信息(描述元数据、权限信息、技术元数据等)。
(4)基于面向对象理论的数字对象模型,能够提供统一的管理模式和灵活的发布机制,具有良好的可扩展性。
目前它们之间的一个区别是对于数字对象及其组成实体的标识,MPEG-21 DIDL遵循MPEG-21 DII部分的明确规定,OEBPS推荐采用DOI技术,而METS和SCORM则是由应用方自己决定。另外,在数字资源的结构表达方面,METS和MPEG-21 DIDL更为灵活通用,OEBPS和SCORM则针对各自的应用领域定义了一些基本框架,更加具体。
3 基于OAI-PMH和复杂对象格式的资源收割机制
3.1 复杂对象格式作为OAI-PMH的元数据格式
对于长期保存和资源发现服务来说,资源的准确收割和同步问题很重要。在OAI-PMH中采用更加复杂、有表现力、准确描述数字资源的元数据格式可以有效地解决资源的准确收割和同步问题。将前面分析的复杂对象格式与OAI-PMH相结合,似乎是一种自然的解决方案。但是将复杂对象格式作为元数据格式合适吗?
通过前面的分析,可以发现METS、MPEG-21 DIDL、OEBPS、SCORM等复杂对象格式均可用于描述和封装包含不同类型和任意数量数据流的各种数字对象。而能够描述各种资源是元数据格式的一个核心特点,也是将元数据格式与文件格式区分开的一个特点。基于这些考虑,将复杂对象格式作为元数据格式是合适的。这种观点也被METS(元数据编码与传输标准)本身的命名所支持。
3.2 基于OAI-PMH和复杂对象格式的资源收割模式
图3在OAI-PMH数据模型中引入了复杂对象格式,该数据模型可分为三个层次,最上层是数字资源,一个OAI-PMH仓储所暴露的元数据就是针对该资源的。数字资源可以是简单或者复合的,由单个或者多个数据流组成,而资源本身在OAI-PMH数据模型之外。中间层是OAI-PMH范围内的最高层实体一条目,本质上它是资源相关的所有元数据的入口点,在协议中是通过一个OAI-PMH标识符来唯一标识。最底层为元数据,从左到右,格式渐趋复杂和准确。DC是最低要求,使用面向资源发现的DC元数据格式对资源进行描述;MARC是根据更加复杂、有表现力、面向编目的MARC元数据格式描述资源;而METS或MPEG-21 DIDL等则是基于能够准确表示数字对象的更加复杂的格式来描述资源,这些格式允许表达资源相关的各种二次信息,包括描述元数据、管理元数据和结构元数据,它们也允许明确传递标识符,并以传值或传址的方式包括资源本身[2]。
附图
图3 OAI-PMH数据模型
此时,OAI-PMH中的数据提供者(资源提供方)需要支持一种复杂对象格式并且通过OAI协议将按照相应格式封装的XML文档暴露给外界,以便服务提供者(资源收割方)进行资源收割。收割方通过将条目的OAI-PMH标识符、元数据前缀(如METS或MPEG-21 DIDL或者其他复杂对象格式)和元数据记录的时间戳相结合,就可以准确地收割以METS或MPEG-21 DIDL或者其他复杂对象格式封装的XML文档,进而可以实现具体数据流的获取。
在OAI-PMH内使用复杂对象格式进行资源收割的典型模式如下:
(1)OAI-PMH收割器使用ListMetadataFormats方法来检查OAI-PMH仓储对于资源收割方可理解的一种复杂对象格式的支持。
(2)如果检查到仓储支持一种收割方可理解的复杂对象格式,收割器使用OAI-PMH规定的方法从仓储收割以复杂对象格式表示的元数据。OAI-PMH元数据记录时间戳的语义保证可以探测到增加和更改过的资源。
(3)在收割应用端的一个解析器分析每条被收割的复杂对象记录:
①解析器抽取以传值方式传送的比特流;
②解析器抽取以传址方式传送的比特流的明确参照网址。
(4)OAI-PMH之外的一个独立应用过程,从抽取到的网址获取以传址方式传送的比特流。
3.3 优点
将复杂对象元数据格式引入OAI-PMH数据模型以实现资源收割的优点包括[2]:
(1)复杂对象格式通过一个封装的XML文档表示一种资源,这种表示可以自然地传递为OAI-PMH响应中的元数据。
(2)复杂对象格式提供了明确表达资源及其组成数据流网址的机制,这解决了收割资源的准确定位问题。
(3)将一种复杂对象格式作为OAI-PMH框架中的一种元数据格式产生了一种明确的触发资源收割的机制。按照定义,OAI-PMH时间戳是元数据的创建或者修改日期。在使用一种复杂对象格式时,这种复杂元数据是资源的一种表示,包括资源的所有组成,如多个数据流、描述元数据等。因此,当其中之一变化时,相应的OAI-PMH时间戳必须变化。需要注意的是,这类变化有时不一定会导致封装XML文档的变化。如果以传址方式提供的一个比特流变化,而它的访问网址不变,那么相应的封装XML文档保持不变。然而,由于在复杂对象格式中以传值或传址方式提供的比特流被视为等价,OAI-PMH时间戳在传址方式中与在传值方式中一样,也必须发生变化。因此,使用资源对应的复杂对象表示的OAI-PMH时间戳能够探测到新资源的添加或者已有资源的修改,从而保障资源收割方与资源提供方的内容同步。
(4)对于由单个数据流组成的简单资源和多个数据流组成的复合资源,复杂对象格式均提供一种统一的资源收割方案。
(5)复杂对象格式具备区分资源(包括组成的各个数据流)的标识符和定位符的能力,甚至能够区分资源和元数据的标识符和定位符。
(6)在OAI-PMH中使用复杂对象格式时,如同对于其他元数据一样,属性如Set和About容器(传递元数据相关的二次信息)的使用以一致的语义应用到作为复杂对象表示的元数据记录。
3.4 应用中需要考虑的几个问题
首先,由于多种复杂对象格式存在,并且存在根据这些格式表征资源的许多方法,如同元数据格式过多时,它们之间的转换和匹配是一个极大的障碍,不利于互操作性,实现一种基于OAI-PMH交换资源的真正互操作方案将要求制定一种规范, 把允许选择的复杂对象格式和它们的自由表达程度限制在一定范围。
其次,在传输数字资源对应的复杂对象表征为大记录时(尤其是在以传值方式传送数据流时)容易引发一些问题。可能的解决方法包括根据实际情况对以传值方式传送的数据流所允许的最大容量通过设置一个门槛值来进行限制,超过这个值的数据流将以传址方式传送,或者仅对元数据以传值方式传送,对内容则以传址方式传送。
另外,需要考虑应用于所收割资源的权限的表达。因为传递的是资源而不仅仅是一般的描述元数据,这个问题比普通的元数据收割情况更为突出。这个问题还有待进一步的探讨。
4 应用实例分析
各种项目已经在探讨将复杂对象格式与OAI-PMH相结合,以解决资源收割问题。
4.1 基于OAI-PMH和METS的资源收割
(1)CALIS的教育数字图书馆项目[7]
CALIS二期启动的教育数字图书馆项目包括学位论文库、特色库、教参库等子项目的建设,它们都涉及到大量数字资源的共建共享。由于OAI-PMH不涉及数字对象本身的交换,CALIS在其整体技术框架中提出METS与OAI-PMH相结合的数字对象收割方式,定义了一套数字对象交换协议规范,包括基于OAI元数据的METS接口规范和基于数字对象唯一标识符的METS接口规范。前者是根据OAI收割服务器中所收割的元数据MetaID或者元数据时间戳,来发出对于相关数字对象的请求。后者是根据数字对象所具有的唯一标识符(符合CALIS—OID)来从数字对象仓库请求数字对象。另外,CALIS拟采用消息队列(Message Queue)技术来处理数字对象网络传输中的各种问题,以实现METS包的可靠传输。该方案的优点是采用METS这种广泛认可的格式,以类似OAI-PMH中元数据交换的方式实现资源收割,缺点是CALIS没有明确地将METS直接视为OAI-PMH的一种复杂元数据格式,所以又定义了几个用于数字对象收割的指令及参数,这样将不利于以后与其他系统的互操作。
(2)北航和HP合作的中国数字博物馆项目
由北航计算机系、HP实验室、多家博物馆和图书馆合作的中国数字博物馆项目(The China Digital Museum Project),将基于Dspace系统探讨数字资源的长期保存问题,并利用网格技术实现各大学数字博物馆的互联互通和资源共享。在项目中拟采用OAI-PMH和METS相结合的方式,实现中心系统从多个分布式系统准确收割数字资源以及它们之间添加或者修改数字资源的紧密同步。
(3)Dspace和Fedora系统
它们是两种应用广泛的用于数字资源管理的模块化的开放源系统。目前Dspace具有将系统中资源导出为METS文件的工具,Fedora系统也使用METS作为保存和交换格式,它们都实现了OAI协议。在此基础上将METS文件作为OAI-PMH的元数据暴露给外界,是非常方便的。
4.2 基于OAI-PMH和MPEG-21 DIDL的资源收割
(1)LANL Repository[8]
在LANL研究图书馆,使用MPEG-21 DIDL表征数字对象,作为数字图书馆仓储中的AIP(OAIS模型中的保存信息包),OAI-PMH作为一种仓储访问协议。下游的应用使用ListRecords来基于时间戳/set增量地收割内容,使用GetRecord来请求单个AIP的传播。自2004年6 月这种方式投入运行,目前LANL Repository包括超过30,000,000个AIP。在仓储的体系架构中使用现有的OAI-PMH工具如OCLC的OAICat、OAIHarvester和OAI Viewer。
(2)在LANL中镜像APS的收藏[9]
在LANL研究图书馆,需要准确及时地镜像APS的收藏,以实现资源发现和长期保存的目的。在这个应用中,镜像指的是在LANL复制APS的内容,而不是镜像APS应用系统及其底层存储技术和架构方法。这要求一种具有及时同步资源能力、确保镜像内容的真实性和完整性、并且独立于双方仓储结构的解决方案。项目中采用OAI-PMH和MPEG-21 DIDL/DII相结合实现资源的收割和同步,使用W3C的XML签名技术确保收割内容的真实性和完整性。由APS创建的数字对象一般由多个数据流组成,这种对象通过已有的、限制访问的OAI-PMH接口暴露为一个复杂对象。APS集成一个模块到OAI-PMH接口,以方便将以APS内部数据模型表示的数字对象映射并封装为DIDL XML文档。通过定期的OAI-PMH收割,LANL从APS收集更改和增加的内容,因此依赖针对所暴露复杂对象的OAI-PMH时间戳的语义来确保内容的准确同步。初期是采用物理媒介方式传送APS的收藏,自某个日期之后使用OAI-PMH收割APS的更新内容。到目前为止的试验结果证明了这种方法的可行性。
(3)Dspace和Fedora插件[2]
LANL研究图书馆创建了一个针对Dspace系统的试验性插件,使得Dspace中资源可以通过已有的Dspace OAI-PMH接口暴露为MPEG-21 DIDL XML文档。通过安装这个插件,系统管理员可以方便地试验镜像Dspace仓储的内容或者创建基于Dspace内容的服务。 插件允许系统管理员指定以传值方式传送的比特流的最大容量,因此可以控制自己环境中的收割负载。目前已经启动一个项目来创建一个类似的针对Fedora的试验性插件。
(4)mod_oai[2]
mod_oai是Mellon资助的Old Dominion大学和LANL研究图书馆的联合项目,开发了一个Apache模块,mod_oai,以代表一个Web服务器自动响应OAI-PMH请求,用来实现网络资源的收割。mod_oai在OAI-PMH响应中提供3种元数据格式:DC,只包括技术元数据如file size和MIME type;http_header,包含通过一个有规律的网络爬行程序获取资源时应该返回的所有http响应头;oai_didl,使用MPEG-21 DIDL格式表征网络资源,这种表征包括http_header格式中的元数据和使用传值或传址方式提供的网络资源本身。mod_oai有两种普遍的使用方式,其一是发送ListIdentifiers作为识别添加到一个有规律的网络爬行程序的新URL的手段,其二是使用ListRecords来获取oai_didl格式的资源。
5 结语
由于基于OAI-PMH收割的普通描述元数据来获取数字资源存在种种问题,通过在OAI-PMH框架中引入更加有表现力、准确描述资源的复杂对象格式作为元数据格式产生了针对资源收割问题的一种可靠而通用的解决方案。而且,对于数字资源的复杂对象表征的OAI-PMH 时间戳概念的正确阐释产生了一种随表征资源组成而变的时间戳,这又引发了一种增量收割资源的可靠触发机制。这种方案可以在已有的OAI-PMH中完全规定,因此能够使用已经广泛部署的OAI-PMH工具实施,实施具体表现为对于另外一种元数据格式(复杂对象格式)的支持。这是一种低门槛、可广泛部署的资源收割方案,若干正在进行的工作已经体现了其可行性。同时,部署一种基于OAI-PMH和复杂对象格式的针对资源收割的真正互操作框架还有一些需要考虑的问题,如选择和实施复杂对象格式所允许的自由程度,在收割大资源时可能存在的问题,如何传递与所收割资源相关的权限。随着更多应用开始采用这种资源收割机制,无疑更多的问题还会涌现,而这种资源收割方案也会在发现问题和解决问题的实践过程中不断完善。