周莉
摘 要: 針對目前基于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
隨著網絡、計算機和通信技術的快速發(fā)展,數字圖書館已經成為人們取得信息的重要來源,然而對于網絡上眾多的分布式數字資源[1?2],人們希望通過檢索獲得所需的信息。但由于早期在建立數字圖書館時沒有統(tǒng)一的標準,其資源的元數據格式并不相同,因而要制定出一套能夠描述不同數字圖書館資源的統(tǒng)一元數據格式相當困難;同時,早期建立的數字圖書館數據提供者與服務提供者間多是點對點的協議服務,協議外的數據提供者與服務提供者間無法進行元數據交互[3?4]。
針對上述問題,設計了數字圖書館中廣泛使用的元數據格式MARC和DC的格式轉換器,并重新設計了基于OAI?PMH協議互操作平臺的命令動詞,對數字圖書館間資源的共享具有重要意義。
1 OAI?PMH協議概述
數據提供者、服務提供者、注冊服務器構成了數字圖書館領域[5?7]中OAI?PMH協議的框架。數據提供者是框架中存儲大量元數據的信息庫,服務提供者可從多個數據提供者中提取元數據并提供檢索、瀏覽等增值服務,服務提供者對數據提供者發(fā)出的是到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所示。
本系統(tǒng)提供了一個項批輸入接口,所以設計的MarcDc模塊應在項批輸入者之前進行處理。如果輸入的是MARC格式,則先經過MarcDc格式轉換器進行數據轉換,然后通過項批處理模塊進行處理;如果輸入的就是DC格式,則直接應用項批處理模塊進行處理。
3 OAI?PMH互操作平臺的實現
3.1 基于OAI?PMH協議的命令動詞分析
基于OAI?PMH協議的數字圖書館中,為實現多個數據提供者與服務提供者間之間的元數據交互,重新設計了基于OAI?PMH協議互操作平臺的命令動詞,命令動詞的主要功能如下:
(1) GetRecord:此動詞可從倉儲中搜索元數據記錄。如果從倉儲中和指定的項中無法得到由metadataPrefix指定的元數據格式,其可以返回狀態(tài)屬性的頭部信息值為“刪除”,此功能的實現依賴于倉儲所跟蹤的刪除級別;
(2) Identify:此動詞用于檢索倉儲的有關信息。利用此動詞,倉儲也可以返回余下的描述性信息,在返回的信息中,一部分對于基于OAI?PMH協議的互操作平臺是需要的;
(3) ListIdentifiers:此動詞不返回記錄本身,而僅返回頭部的記錄,通過基于集合成員和時間戳的頭部可獲取選擇的參數?;趥}儲對刪除的支持特性,如過請求中刪除了與指定參數匹配的記錄,則返回的記錄中將含有值為“刪除”的狀態(tài)屬性;
(4) ListMetadataFormats:此動詞可從倉儲中檢索獲得所需的元數據格式,同時可以通過參數限制該請求對指定項元數據格式的獲取;
(5) ListRecords:此動詞用于從倉儲中獲取記錄?;趥}儲對刪除的支持特性,如果刪除了請求中與參數匹配的記錄,則返回的記錄中將含有值為“刪除”的狀態(tài)屬性,但返回有“刪除”狀態(tài)的記錄是不能被表達為元數據格式的;
(6) ListSets:此動詞用于返回倉儲的集合結構,對于選擇性獲取有益。
3.2 數據提供者與服務提供者間命令動詞使用方式分析
數據提供者與數據服務者之間的請求和應答是通過上述六個核心動詞來實現的。使用標準的Web服務器是一個典型請求的實現方式,通過配置該Web服務器,使其可以向能夠處理OAI?PMH請求的軟件分發(fā)OAI?PMH請求,具體交互過程如圖5所示。
數據提供者與數據服務者之間的交互步驟具體如下:
(1) 服務提供者首先找到其所需元數據的數據提供者,然后獲取其惟一標識;
(2) 服務提供者向數據提供者發(fā)出ListSets請求和ListMetaFormats請求。數據提供者根據服務提供者的請求返回其所能提供的滿足一定條件(如某種格式,某種主題,某個時間段)的元數據;服務提供者取得元數據后向用戶提供服務。
3.3 OAI?PMH命令動詞的請求和應答格式分析
(1) 請求格式
3.4 OAI六個動詞的設計
(1) 概要設計
當數據提供者接收到OAI請求后,需對該請求進行解析。首先判斷該請求類型是否合法,若不合法,則向服務提供者發(fā)送一個錯誤的信息;若合法,則判斷該請求屬于六個有效請求的哪個類型。由于參數metadataPrifix對于請求類型 ListIdentifiers是強制的,所以如果數據提供者接收到的請求類型是ListIdentifiers,那么解析器可以直接檢查這個請求的第二個參數。但如果請求中沒有相關參數,那么要確認這個請求有效,則需確認請求中必須包含resumptionToken (恢復標志參數),并且數據提供者知道這個參數。
假設數據提供者在unqualified DC模式下只能發(fā)送元數據集合,那么metadataPrifix參數惟一有效的值只能是oai_dc。在正常情況下,請求中可選取的參數是必須被解析的,但可以簡單化,以一種非正式的形式進行描述。然后,根據接收到的請求參數,數據提供者運用SQL語句在倉儲中進行查詢,如果產生了記錄大于傳遞標識符一次所能傳遞的最大值,那么數據提供者則會新生成一個resumptionToken標志,并將查詢參數與指針信息存儲在一起,具體實現流程如圖6所示。
(2) 詳細設計
① 利用Protocol數據庫包進行六個動詞的請求、響應及信息顯示,其中Date類使用java.util.Date,Calendar或String方法實現年、月、日等各種格式間的相互轉換和輸出;Set類可通過一個已命名的集合創(chuàng)建一個新的集合,并用XML形式描述。
② 處理客戶端源代碼Client,可以利用一個URL或一個集合的性質創(chuàng)建HarvesterItinerary類用于描述harvester類的狀態(tài),HarvesterItinerary類中可以對Harvester類的狀態(tài)進行保存。OAIConnection類可以描述一個到OAI的連接,用于接收單一的請求,該連接是基于用doReques或基于倉儲的URL所返回的Response。
③ 互操作平臺中的Server包可以提供服務器端的OAI源代碼,并把源代碼轉換為文檔服務。OAI服務的目標編程接口通過Target類實現,互操作平臺通過TargetAdapter類定義了一個不做任何事的執(zhí)行,GenericTarget類可以實現由一個非常簡單的機制以創(chuàng)建小型的OAI收集器,并在存儲器中尋找與服務,利用集合規(guī)程和給定的元數據前綴得到所有的記錄; JDBCServer類是OAI servlet提供的一般服務器,OAIServerIfc類為OAI提供了一個框架,元數據前綴用在DC元數據核心記錄,處理GetRecord 請求、Identify 請求、ListRecords請求、 ListSets請求、ListMetadataFormats請求和ListIdentifiers請求。ResumableResultSet類描述了一個結果,該結果通過與重用標記相結合,可以被客戶作為一系列局部結果而重用。
3.5 數據提供者的功能實現
(1) 項的訂購及提交
用戶可以使用e?mail訂購自己所需的項,這樣可以共享數字圖書館的資源。用戶首先提交項的要素描述元數據,然后上傳源文件,在通過系統(tǒng)的驗證后可把文件提交到互操作平臺上供大家瀏覽及下載。
(2) 工作流的實現
三個小組負責人負責實現社團的工作流,每個小組負責人完成不同的工作流步驟。工作流的次序如下:當社團收到一個遞呈時,如果社團中有小組負責人,那么他將會選擇接受或拒絕,如果社團中沒有小組負責人,這一步工作流將會被直接省略。第二步和第三步的遞呈也是按照此步驟處理。
當調用工作流的第一步時,完成工作流步驟的任務把相關的遞呈放到“任務箱”中,如果組中的一個成員接受任務箱中的任務,則任務被從任務箱中移出。如果一個遞呈被拒絕,則系統(tǒng)會通過e?mail把原因發(fā)送給遞呈提交者,提交者可以修改后重新提交;如果一個遞呈被“接受”,將轉到工作流的下一步。
(3) 搜索和瀏覽功能實現
終端用戶可以使用多種方法發(fā)現內容,具體如下:使用關鍵字進行搜索;使用外部的ID號進行搜索;使用標題、數據進行瀏覽。
在數字圖書館系統(tǒng)中,發(fā)現內容最基本的方法是搜索?;贠AI?PMH協議的互操作平臺的搜索和索引模塊是一個簡單的API接口,它能夠在全部的社區(qū)、社團中完成新內容的索引、再生索引,系統(tǒng)的具體搜索界面如圖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] 王海波,耿暉,姜吉發(fā),等.基于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.