沈 藝
(南京師范大學 圖書館,南京 210023)
2009年初,開放數據(open data)作為美國新一屆政府的第一個政府令,引起研究人員廣泛關注,發表論文數量逐年增加[1].隨著開放數據應用和研究的深入,針對開放數據元數據研究也在近期成為重要選題,如:司莉和趙潔以美國開放政府數據網站data.gov中的元數據標準為例,分析其元數據體系及具體標準[2].黃如花和李楠選取澳大利亞開放政府數據平臺Data.gov.au為研究對象,分析其元數據標準的元素組成、數據格式、語法結構[3];趙蓉英、梁志森、段培培以Data.gov.uk為研究對象,通過查閱相關政府文獻和對網站信息進行調查,從文件結構、元素組成及規則等方面總結元數據標準的特點,揭示Data.gov.uk 兩種類型的元數據,即面向網站數據資源的CKAN 格式記錄和針對地理空間數據的Gemini 地理空間元數據標準[4];黃如花和林焱對開放政府數據水平較高的英國、美國、加拿大、澳大利亞、新西蘭、歐盟的政府數據開放門戶及其相關公共部門的元數據描述規范進行調研,提出我國開放數據元數據標準建設要求,以期更好地實現政府數據開放共享[5];翟軍、于夢月、林巖在介紹W3C元數據標準DCAT (Data Catalog Vocabulary)、美國的“開放數據項目”(Project Open Data,POD)和歐盟的DCAT 應用綱要(DCAT-AP)方案基礎上,分析和總結美國、歐盟和愛爾蘭政府開放數據元數據建設的成果和特點[6],此外,還借鑒和參考其它國家經驗,調查和分析我國地方政府開放數據元數據,設計基于DCAT的描述數據集和數據資源的核心元數據方案[7].由此可見,元數據是政府開放數據行動的重要內容,也是開放數據平臺建設的重要基礎,更是開放數據質量保證的關鍵因素.
開放數據元數據映射(open data metadata mapping)雖然在相關國際集團[8]中,列為共同行動計劃,但描述和管理開放數據的元數據標準和規范不斷變遷,任何一種元數據標準都不可能完全適應結構日益復雜、分布日益廣泛、共享的需求日益增強、檢索方式差異日益增大的開放數據.迫切需要對開放數據元數據映射相關內容作進一步探索.為此,本文在研究目前主要開放數據元數據標準規范的基礎上,解析其元數據映射實現機制,為開放數據資源整合,實現跨平臺開放數據共享提供參考.
為讓開放數據元數據映射行動得到較廣泛的接受,可根據開放數據元數據字段所起作用,選取五類元數據字段[9]:(1)聯絡信息(contact information),包含與開放數據相關的聯絡人姓名、辦事處或機構信息,如開放數據擁有者、發布者,以及聯系方式;(2)數據集描述(dataset information),是與數據集相關的信息,如數據集唯一標識符,數據集更新頻率,相關的關鍵詞或者標簽;(3)范圍信息(extent information),指明數據集適用范圍,即數據集覆蓋的地理區域、數據細節等字段;(4)補充信息(supplemental information),與數據集(資源)相關的其他重要信息,如上下文文檔等;(5)發布信息(distribution information),是開放數據資源發布使用相關的信息,如文件大小、格式、語言等.這5個方面的元數據字段元素構成的開放數據元數據映射的核心框架.這5 類元數據字段需要隨著開放數據應用發展狀況進行擴充或修改.
聯絡信息包含8個字段,分別是聯系人(person)、聯系人郵箱(contact Email)、機構(organization)、出版者(publisher)、作者(author)、作者郵箱(author Email)、維護者(maintainer)及維護者郵箱(maintainer Email).其中聯系人是指將開放數據作為數據資產管理所指定對外聯系人,機構(所有者)是指出版機構,如果是涉及多部門機構可以使用這個字段來描述發布該數據集的下屬機構.
數據集(dataset)是有組織的數據集合,不僅可以包含結構化數據文件,還可以包含各種非結構化或半結構化的信息文件.數據集可以被某個機構所擁有,成為特定的數據資產(data asset),用于支持各個用戶對信息資源的需求.這里的數據集是指開放數據集,可以給公眾開放使用.
數據集標識(dataset identification)元數據標記了開放數據集的辨識信息,主要有9個屬性:唯一標識符(unique identifier)、發布日期(release date)、修改日期(modified)、最后更新日期(last updated)、描述(description)、關鍵詞(keyword)、更新周期(frequency of update)、題名(title)和目錄(category).數據集唯一標識符一般需要由代理商維護,以確保開放數據集的標題或網址變更后,其唯一標識符不變.描述信息是對數據集內容特征的簡要描述,如摘要等,供使用者閱讀后,獲得足夠的細節,能夠快速決定是否對該數據集感興趣.
數據集覆蓋范圍元數據用于描述開放數據集覆蓋的地域范圍,及與數據集位置相關的細節,一般作為擴展信息使用.因此,在描述管理數據集覆蓋范圍信息時,可以使用其他元數據標準中的詞匯表.這些擴展信息可以被網絡搜索引擎或開放數據平臺編入索引,為開放數據共享提供幫助,也可以讓開放數據集的發布者方便使用擴展信息字段列表中的元素,以及從其他任何元數據標準(如:DC、Schema.org、FGDC、ISO 19115和NIEM 等)中引入相關字段,并通過目錄元數據前面描述的By和@context 字段來定義這些擴展,正確分配字段.
這里給出的描述開放數據集覆蓋范圍元數據字段都不是必備字段,其字段名的機讀形式可以自定義:
(1)Spatial coverage/空間覆蓋范圍
(2)Spatial Type/空間覆蓋類型
(3)Spatial Coordinates/空間坐標
(4)Geographic Region Name/地理區域名稱
(5)Geographic Bounding Box - Lower Left Corner/地理邊界框-左下角
(6)Bounding Box - Upper Right Corner/地理邊界框-右上角
(7)Bounding Box - Coordinate Reference System/地理邊界框-坐標參照系
(8)Geographic Bounding Box–Dimensions/地理邊界框-維度
(9)Temporal coverage/數據集時間跨度
(10)Temporal coverage starts/數據集時間范圍開始時間
(11)Temporal coverage ends/數據集時間范圍結束時間
(12)Temporal granularity/數據集時間粒度
(13)Temporal granularity factor/數據集時間粒度因子數據
(14)Periodicity of data(set) collection/數據(集)采集周期
(15)Periodicity of the production process/數據集生產周期
(16)Periodicity of the estimates/數據集引用周期
(17)Temporal and spatial comparability/數據集時空比較
(18)Periodicity of data dissemination/數據發布周期
(19)Data Quality/數據質量
(20)Granularity/粒度
其中,空間范圍是指開放數據集的空間適用性范圍,可以包含像邊界框或指定位置的空間區域.以十進制度數指定,順序為:最小經度,最小緯度,最大經度,最大緯度;空間坐標表示開放數據集中地理信息相關點的緯度/經度對(十進制度);地理區域名稱使用簡單特征文檔以地理標記語言表示的地理特征,或來自地理名稱數據庫的地理特征,其字段名可以spatial 開頭.時間跨度為數據集的時間適用范圍(即數據適用性的開始和結束日期),字段應包含由開始和結束日期定義的時間間隔.日期應使用24 小時制時間表示法,格式為YYYY-MM-DD hh:mm:ss 格式對{開始日期,結束日期},例如:2017-02-14 12:00:00,2018-02-14 12:00:00.
與開放數據集發布相關的元數據至少有7 項.其中,開放數據資源網址(resource URL)必須提供可直接訪問并能下載開放數據集的網址.主頁網址(homepage URL)讓用戶在開放數據平臺上選擇開放數據集時可以重定向到開放數據的內容.主頁網址不能用代理托管門戶主頁代替,而必須是開放數據的中心網站.資源格式(Format)顯示所發布開放數據文件格式或應用程序接口(API)類型,因此,文件必須使用擴展名(例如,CSV,XLS,XSLX,TSV,JSON,XML)來描述.
增補信息(supplemental information)中只有一個相關文檔網址(documentation URL)的元數據,用于表示元數據數據集技術信息文檔和開發者文檔的網址.字段名可以用resources 表示,它不是必備字段,其值是逗號分隔的網址.
此外,開放數據平臺會根據自己的情況擴展一些特定的元數據項.如:主題(Theme)、公共訪問級別(Public Access Level)、API 端點(API Endpoint)、RSS訂閱(RSS Feed)、數據字典(Data Dictionary)和記錄系統(System of Records)等.其中,主題表明數據集的主要類別,多個主題詞用逗號分隔.公共訪問級別定義了數據集可以公開獲取的程度,如:公共(公開可用),限制(在某些條件下可用)或私有(永遠不能公開),必須在所定義的選項中選擇一種.API 端點定義訪問數據集的Web 服務端點,可用于描述由代理機構提供的網絡服務,以及匯總跨開放數據平臺的API 目錄.RSS訂閱提供對數據集訪問RSS 訂閱網址.這些RSS 源將用于創建一個跨機構的RSS 源搜索工具.數據字典記錄數據集或API 屬性描述對照表的URL.記錄系統收錄與此數據集相關的記錄網址.
開放數據元數據映射行動目前才剛剛起步,英國承諾在政府發布的企業數據中進行開放數據元數據映射實踐,在2015年6月之前建立標準化的通用元數據詞匯表,用于數據集的發布,同步建立可持續使用的元數據詞典[10].加拿大承諾為元數據映射實踐作貢獻.美國各級政府結合自身特點提出各自開放數據元數據映射方法.從開放數據全面共知共享要求來看,開放數據元數據映射應包含3個層面的內容:①國家間開放數據元數據映射;②不同開放數據元數據方案(標準)間映射;③相同標準不同版本間的映射.
開放數據平臺上發布的數據集大都使用本國官方指定語言.而描述開放數據集的元數據與記錄放數據所用語言就可能不同,并且元數據的用戶閱讀形式和機讀形式也可能不同.如開放數據的許可元數據Licence 用戶閱讀形式,美國為License,而英國、法國和加拿大都是Licence,德國是Nutzungsbestimmungen,日本是ライセンス,意大利是Licenza,俄國是Условия использования набора данных.而機讀形式大多采用英文.如開放數據集發布信息中的資源格式元數據Format,不同國家,不同開放數據平臺,所用的元數據的表達形式會不一樣,這要求在跨平臺共享操作時進行映射.元數據Format 在英美等國之間的映射如表1所示.

表1 元數據Format 在國家之間的映射
開放數據元數據標準多樣性,往往表現在:一個開放數據平臺上所采用的元數據標準規范不止一種,不同國家或地區的開放數據平臺所用的元數據標準也會有多種選擇,常用的有:
(1)DCAT (Data CATalog vocabulary)[11]及其應用綱要(Application Profile):DCAT 最初由愛爾蘭國立高威大學的數字化企業研究所(Digital Enterprise Research Institute) 開發,是目前最為廣泛采用的元數據詞表[12],經W3C 發布,成為政府開放數據元數據正式推薦標準,被歐盟、美國、英國、西班牙、愛爾蘭和意大利等政府機構、服務全球的數據目錄DataHub和CKAN等開放數據平臺采用,有7個類,其中dcat:Catalog 類有13個屬性;dcat:Dataset 類有15個屬性,5個新屬性;dcat:Distribution 類有11個屬性,4個新屬性.
(2)DCAT-AP (DCAT Application Profile for data portals in Europe):是歐盟在DCAT 基礎上將類和屬性分成強制的(mandatory)、推薦的(recommended)和可選的(optional)三組,共計22個類,DCAT-AP 被歐盟各成員國通過,并被用于歐盟14個國家的開放數據門戶網站.
(3)POD 開放數據元數據修飾詞規范(Project Open Data Metadata Schema V1.1[13]):POD“元數據方案”由美國白宮“開放數據項目”(Project Open Data)發布,廣泛用于美國各級政府開放數據平臺,PODV1.1的數據目錄設有6個元素,描述數據集的元素有29個(17個來自DCAT),描述數據資源的元素有10個(6來自DCAT,4個自定義).
(4)開放數據平臺自定義元數據,如CKAN 等;CKAN是一種開源的數據門戶平臺,由開放知識國際(Open Knowledge International) 開發,提供數據發布、共享、搜索和使用的一系列流程的工具,被英國、荷蘭和歐盟等用于開放數據平臺的構建.該平臺定義自己的元數據規范ADMS (Asset Description Metadata Schema)[14],可用于開放數據描述和管理.
(5)Schema.org 體系:它于2011年6月由谷歌、微軟和雅虎聯合建立.目的是要創建搜索引擎都支持的結構化數據標記架構,在提供一套通用模式的基礎上,給用戶提供更好的網絡體驗.
不同開放數據平臺、不同標準規范方案之間的元數據也需要映射.這里,以發布信息指標元數據為例,展示不同開放數據元數據方案之間的映射,如表2.

表2 不同元數據方案的發布信息指標元數據映射表
有些國家甚至對同一種元數據標準(或規范),采用不同的版本,由于開放數據元數據標準或規范會隨時間進行修改升級,依據老版本標準對開放數據進行描述所產生的元數據,與新版本相比,如果變化較大,特別是有描述字段等的增改,是有對新老版本描述的元數據進行映射.表3列出POD中數據集發布類元數據字段的映射,為適應開放數據的發展,POD v1.1 版就比v1.0 版增加很多字段.

表3 POD v1.1 與v1.0 數據集發布類元數據字段映射表
元素映射存在一對一、一對多和無對應元素三種映射關系,也存在必備元素映射為必備元素、可選元素或者條件元素的差異.因此要深入研究元數據映射實現機制,還要著力實現不同元數據標準元數據元素之間的完全映射.
完成元數據映射,既可用轉換程序,也可用中介格式,更有效的是建立一個標準的資源描述框架(RDF).轉換程序對元數據方案進行轉換,轉換程序修改元數據內容,存儲在目標元數據方案相似的元素里,這個元數據方案中定義的元素(類或字段)通過轉換程序被其它相關元數據方案識別和利用.中介格式是對同一格式框架下的多種元數據格式進行轉換,這種方法映射轉換準確、轉換效率較高,但在面對多種元數據格式并存的開放式環境中的應用效率明顯受到限制[15,16].而建立一個標準的資源描述框架(RDF),即定義一種標準的框架描述所有的元數據格式,開放數據平臺只要能解析這個標準描述框架,就能解讀相應的開放數據的元數據格式,建立元數據元素的語義關系,利用XML或JSON 實現開放數據元數據映射.
RDF 以可擴展標記語言(eXtensible Markup Language,XML)為表達工具,構成元數據交換和處理的通用語法結構體系.RDF 描述體系封裝多種元數據,統一了元數據的描述體系,也為多種元數據之間的互操作提供了基礎.這里以開放機讀目錄元數據和DC為例說明如何將它們描述的對象納入到同一個RDF 框架中,實現數據共享.
xmlns:rdf="http://www.w3.org/1999/02/22-rdfsyntax-ns#" xmlns:dc="http://purl.org/metadata/dublin_core#" ……
JSON (JavaScript Object Notation)即JavaScript 對象表示法是一種目前流行的數據交換格式,在Web API、服務端編程語言、NoSQL 數據庫及客戶端框架等方面都有應用.JSON 可用于不同平臺間的數據交換,是一種輕量級的數據交換格式,既易于人編寫和閱讀,又易于機器生成和解析,非常適合在不同平臺、不同元數據標準所描述開放數據之間的映射表達[17],相比XML,JSON的效率更高.
JSON的數據是被保存在花括號{}中,這里給以美國開放數據的發布信息元數據映射為例,看看如何用JSON 實現對不同元數據標準描述的開放數據進行映射.首先對發布信息的元數據字段進行定義:
[{ "title":"Data Catalog","description":"Version 1.0","keyword":"catalog","modified":"2013-05-09 06:00:00","publisher":"US Department of X","person":"Contact Person","mbox":"contact.person@agency.gov","identifier":"1","accessLevel":"public","distribution":[{ "accessURL":"http://agency.gov/data.json","format":"json" } ]
……
接下來對不同格式的開放數據的存取進行了映射:
"http://nces.ed.gov/ccd/pdf/INsc09101a.pdf","distribution":[{ "accessURL":
"https://explore.data.gov/views/ykv5-fn9t/rows.csv?accessType=DOWNLOAD","format":"csv","size":"200mb" },{ "accessURL":
"https://explore.data.gov/views/ykv5-fn9t/rows.json?accessType=DOWNLOAD","format":"json" },{ "accessURL":
"https://explore.data.gov/views/ykv5-fn9t/rows.xml?accessType=DOWNLOAD","format":"xml" } ],
可見,開放數據元數據映射機制是將不同開放數據平臺上的多種元數據方案,建立相應映射機制,將不同平臺上開放數據整合成一個共知、共享的系統.
為整合不同開放數據平臺上的多種元數據,需要將其描述的數據集納入到一個開放框架中.由于不同的開放數據平臺可能采用不同的元數據標準,即使同一個開放數據平臺,不同的開放數據集,其元數據描述也可能不相同.為此,元數據映射就承擔了轉換和解釋各種元數據的功能.基于元數據映射的開放數據整合是一個雙向的過程[18],一方面將用戶的提問翻譯成不同的元數據系統的表達形式,從而可以分別自動對應相關的開放數據資源;另一方面,元數據體系還要將用不同種類的元數據系統描述的檢索結果用一種元數據系統表達出來,以解決開放數據(集)的多樣性.
建立一個標準的資源描述框架,定義一種標準的框架描述所有的元數據格式,開放數據平臺只要能解析這個標準描述框架,就能解讀相應的開放數據的元數據格式,建立元數據元素的語義關系,利用XML 或JSON 實現開放數據元數據映射,是實現開放數據元數據映射的關鍵.