摘 要: OAI旨在通過定義簡單的協(xié)議來解決元數(shù)據(jù)的交互性問題,以便有效分發(fā)數(shù)據(jù)內(nèi)容。本文簡要介紹了OAI的歷史并詳細(xì)闡述了元數(shù)據(jù)收獲的技術(shù)標(biāo)準(zhǔn)及其應(yīng)用。
關(guān)鍵詞: OAI協(xié)議 交互性 元數(shù)據(jù)
1999年10月,在美國圣達(dá)菲舉行的一次會議上討論了開發(fā)電子文本的解決方案,提出了開放文獻(xiàn)倡導(dǎo)OAI(Open Archives Initiative),從此開始了基于框架的數(shù)據(jù)交互。OAI在組織性和技術(shù)性上得到了不斷發(fā)展,焦點(diǎn)也由原來單一的電子文本擴(kuò)展到了各個(gè)領(lǐng)域的內(nèi)容提供者。OAI已經(jīng)開發(fā)出一個(gè)精簡的并且經(jīng)過廣泛測試的技術(shù)框架,并已經(jīng)建立了支持開放文獻(xiàn)倡導(dǎo)的組織機(jī)構(gòu)。
OAI中的開放并不意味著任意的、沒有限制地存取知識倉庫中的信息,因?yàn)殡S意存取信息不僅涉及版權(quán)問題,而且還存在網(wǎng)絡(luò)安全及信息濫用問題。而“文獻(xiàn)”在這里已經(jīng)成為廣義上的存儲信息的知識倉庫。
1 OAI技術(shù)框架
OAI技術(shù)框架以提供一個(gè)低障礙的交互方法為目的。通常,交互性的成本隨著功能的增長而增長。OAI技術(shù)框架雖然不想代替其他的交互協(xié)議,但它提供了一種更易實(shí)現(xiàn)和易配置的方案。
技術(shù)協(xié)議基于二種不同角色:
(1)數(shù)據(jù)提供者:把OAI技術(shù)作為提供元數(shù)據(jù)的方法。
(2)服務(wù)提供者:使用OAI協(xié)議從數(shù)據(jù)提供者收獲元數(shù)據(jù),并作為增值服務(wù)的基礎(chǔ)。
如圖1所示,數(shù)據(jù)提供者對來自服務(wù)提供者的OAI Request消息做出響應(yīng),從它管理的知識倉庫以O(shè)AI Response消息的形式向服務(wù)器發(fā)布元數(shù)據(jù)。服務(wù)器獲得元數(shù)據(jù)并提供增值服務(wù)。OAI對數(shù)據(jù)提供者提供的元數(shù)據(jù)格式作了規(guī)定,即Dublin Core格式或者服務(wù)提供者要求的元數(shù)據(jù)格式。數(shù)據(jù)提供者按照規(guī)定的格式以XML文檔的形式為服務(wù)提供者提供元數(shù)據(jù)。一個(gè)數(shù)據(jù)提供者可以向多個(gè)服務(wù)提供者提供元數(shù)據(jù),一個(gè)服務(wù)提供者也可以從多個(gè)數(shù)據(jù)提供者處獲取元數(shù)據(jù)。數(shù)據(jù)提供者和服務(wù)提供者只是角色的劃分,一個(gè)組織既可以是數(shù)據(jù)提供者也可以是服務(wù)提供者。

2 元數(shù)據(jù)
OAI技術(shù)框架對元數(shù)據(jù)提出交互性和可擴(kuò)展性二個(gè)基本要求。交互性和可擴(kuò)展性已經(jīng)成為元數(shù)據(jù)團(tuán)體討論的主題。
為了使元數(shù)據(jù)具有交互性,OAI統(tǒng)一規(guī)定數(shù)據(jù)提供者提供的元數(shù)據(jù)格式為Dublin Core元數(shù)據(jù)核心集[2]。這樣做雖然加重了數(shù)據(jù)提供者的負(fù)擔(dān),但卻為元數(shù)據(jù)信息的發(fā)布提供了統(tǒng)一的接口。表1給出了Dublin Core的15個(gè)元素。

DC只有15個(gè)元素,且都具有一個(gè)能夠普遍理解的語義,適合各種領(lǐng)域使用。每個(gè)元素都可以自由選用及重復(fù)使用,元素的含義不因其是否嵌入所描述的資源而受到影響。DC并非某一具體學(xué)科專用,它支持任何內(nèi)容的資源描述,使得跨學(xué)科的語義描述有了互操作性的可能。OAI要求在OAI Records中包含多個(gè)DC元素,并且保持了元素的可選性。這樣更益于交互性,數(shù)據(jù)提供者可以根據(jù)自己的需求提供DC元數(shù)據(jù)。
OAI技術(shù)框架支持DC之外的其他元數(shù)據(jù)集。但是元數(shù)據(jù)Records必須以XML文檔的形式給出。而且這些XML文檔必須有相應(yīng)的XML Schema來驗(yàn)證。OAI倡導(dǎo)開發(fā)特定領(lǐng)域的元數(shù)據(jù)集規(guī)范。
3 元數(shù)據(jù)記錄Records
OAI技術(shù)框架定義了一個(gè)記錄Record,它以XML字節(jié)流的形式作為收獲的元數(shù)據(jù)。Record包括以下三個(gè)部分:
(1)Header:包含了發(fā)布這個(gè)Record的Item的惟一標(biāo)識符Identifier以及用來確定選擇性收獲的屬性:Record被產(chǎn)生、刪除或者最近被修改的日期Datestamp以及發(fā)布這個(gè)Record的Item所屬知識倉庫集合setSeps。
(2)metadata:包含了單一格式的元數(shù)據(jù)。OAI數(shù)據(jù)提供者必須能夠發(fā)布包含DC元數(shù)據(jù)的record,其他的元數(shù)據(jù)格式是可以選擇的。
(3)About:描述關(guān)于Record的Metadata部分的來源以及版權(quán)信息。
元數(shù)據(jù)Record來源于知識倉庫,即數(shù)據(jù)提供者的服務(wù)器。抽象地說,知識倉庫包含許多Item,每個(gè)元數(shù)據(jù)Record從知識倉庫中相應(yīng)的Item獲取。具體來說,每個(gè)Record有一個(gè)標(biāo)識符Identifier,用來標(biāo)識從哪個(gè)知識倉庫中的Item取得元數(shù)據(jù)Metadata。
程序1為一個(gè)OAI Record的示例。
程序1


4 開放文獻(xiàn)元數(shù)據(jù)收獲協(xié)議OAI-PMH
OAI-PMH(OAI Protocol for Metadata Harvesting)定義了數(shù)據(jù)提供者和服務(wù)提供者之間的交互機(jī)制。OAI-PMH由六種Request或者verb組成,分別是GetRecord、Identify、ListIdentify、ListMetadataFormats、ListRecords、ListSets。協(xié)議以HTTP POST和GET二種方法來實(shí)現(xiàn)。知識倉庫必須支持這二種方法。OAI Request的結(jié)構(gòu)如下:
(1)基本URL:作為知識倉庫的HTTP服務(wù)器的主機(jī)地址,有一個(gè)可選擇的路徑來處理OAI Request。
(2)關(guān)鍵字參數(shù):包含了一個(gè)“關(guān)鍵字-值”的列表,其形式為“Verb=OAI Request”。每個(gè)OAI Request至少有一對關(guān)鍵字-值來表示OAI Request的名字。
程序2給出了用HTTP GET和POST方法請求的示例,從基本URL為http://arXiv.org/oai1的arXiv預(yù)印文本文獻(xiàn)庫知識倉庫中請求以oai_dc格式返回標(biāo)識符為oai:arXiv.org:cs.SE/0101002的記錄。
程序2
以HTTP GET方法Request的示例:http://arXiv.org/oai1?
verb=GetRecord&
identifier=oai:arXiv.org:cs.SE/0101002&
metadataPrefix=oai_dc
以HTTP POST方法Request的示例:POST http://arXiv.org/oai1
Content-Length:82
Content-Type:application/x-www-form-urlencoded
verb=GetRecord&
identifier=oai:arXiv.org:cs.SE/0101002&
metadataPrefix=oai_dc
作為對OAI Request的響應(yīng),OAI Response包括了以下幾個(gè)部分:
(1)XML聲明,例如。
(2)根元素OAI-PMH以及它的三個(gè)命名空間URI(統(tǒng)一資源標(biāo)識符)屬性。
(3)響應(yīng)時(shí)間ResponseDate以及對應(yīng)的Request。
(4)與Request相同類型的元素,即在Request中的Verb參數(shù)的值。
程序3為對GetRecord請求響應(yīng)Response的示例。
程序3

下面對OAI-PMH協(xié)議的各種請求做一個(gè)總結(jié)。
(1)GetRecord。這個(gè)請求用來從知識倉庫中的Item得到單個(gè)得元數(shù)據(jù)Record。要求具體的標(biāo)識符參數(shù)Identifier。從程序3中可以清楚地看到。
(2)Idetify。這個(gè)請求用來得到知識倉庫的信息。響應(yīng)應(yīng)該包括以下一些信息:①知識倉庫的名字。②知識倉庫的基本URL。③知識倉庫所支持的OAI協(xié)議的版本。④知識倉庫管理員的e-mail地址。
(3)ListIdentifier。這個(gè)請求用來得到所有可以從知識倉庫中獲取的記錄的標(biāo)識符。幾個(gè)可選參數(shù)有選擇地得到這些標(biāo)識符,例如from、until確定得到在具體的日期范圍內(nèi)增、刪、改記錄的標(biāo)識符。
(4)ListMetadataFormats。這個(gè)請求用來得到所有能從知識倉庫返回的元數(shù)據(jù)格式。
(5)ListRecords。這個(gè)請求用來從知識倉庫獲取記錄集??蛇x參數(shù)允許選擇性地進(jìn)行獲取?;蛘邚奶囟ǖ腟et中取記錄集,或者按照一定日期范圍內(nèi)進(jìn)行增、刪、改來收獲記錄集。
(6)ListSets。這個(gè)請求用來得到知識倉庫中的所有Set。
5 結(jié)束語
本文詳細(xì)論述了基于OAI技術(shù)框架的元數(shù)據(jù)的交互,并給出了應(yīng)用示例。OAI協(xié)議的實(shí)現(xiàn)為不同格式的數(shù)字資源共享提供了更多的靈活性,有廣闊的發(fā)展前景。目前,許多國外數(shù)字圖書館已經(jīng)能夠支持OAI服務(wù),如法國國家圖書館、英國圖書館UKOLN、美國Digital Library Federation、UC Berkeley等。我國數(shù)字圖書館的建設(shè)中,OAI也將成為一個(gè)通用的標(biāo)準(zhǔn),為數(shù)字資源的共享和交互提供強(qiáng)有力的支持。
參考文獻(xiàn)
1 王愛華,張銘,楊冬青等.基于OAI的數(shù)字圖書館中元數(shù)據(jù)互操作框架.計(jì)算機(jī)工程應(yīng)用,2002;(1)
2 Lagoze C,Sompel H V.Building a low-barrier interoperability framework.Digital Library Research Group
Cornell University.http://www.openarchives.org/documents/oai.pdf
