摘要:元數據在網絡信息資源的管理、存儲和檢索中發揮著重大的作用。目前業界對于元數據的定義和管理都還沒有統一的標準。在現有元數據標準的基礎上進行擴展,并提出一種基于XML的元數據模型的設計方法,在元數據的層次上來定義和管理資源。
關鍵字:元數據;XML;XML Schema;元數據模型
中圖分類號:TP30文獻標識碼:A 文章編號:1009-3044(2008)06-10ppp-0c
A Research About The Method Of Metadata Model Design Based On XML
XU Xiao-jing,YANG Qing
(Computer Science And Technology Academy,Wuhan University Of Technology,Wuhan 430063,China)
Abstract:Metadata takes an important action on the manage、save and search of network information resources. Today, there has no uniform standard about the definition and management of metadata. Based on the exist standard of metadata and extend it, bring out a design method about the metadata model based on XML, definite and manage resources on the metadata levels.
Key words:metadata; xml; xml schema; metadata model
1 引言
計算機網絡的發展,使數據形式出現了多樣化,除了數據庫以外,還有許許多多的數據存放于TXT文件或者其他字處理文件和表格文件或者視頻和圖像文件,這些數據本身又呈現出各種不同的形式。這樣,大量分散的形式以及不同格式的數據給現代數據處理帶來越來越大的困難。
數據庫特別是關系數據庫具有極強的數據管理能力,數據的安全程度高,具有穩定可靠的并發訪問機制。但是各數據庫管理系統之間的異構性及其所依賴操作系統的異構性,嚴重限制了信息共享和數據交換的范圍;此外,數據庫技術的語義描述能力較差。因此,在數據交換和共享方面,傳統的關系數據庫面臨著嚴重的挑戰。
元數據是”關于數據的數據”,它極大的方便了異構系統間數據的交換和共享。元數據建模是指為更好利用數據,為所使用數據創建更健壯、生命力更強的數據模型的行為。 一般來說元數據建模包含兩個方面工作,信息建模和創建模式。信息建模包括靜態信息建模、動態信息建模、文檔設計,而創建模式則是利用元語言構建數據模型。元數據模型描述了系統內各個元素、元素之間的關系及元素的屬性,為在不同模型中交叉使用公共定義數據提供了多方面的協定。
XML作為更好實現網絡互操作和數據交換的標記語言,已經得到極大發展。XML正在逐漸成為Web上數據組織和交換的標準,也是實現語義Web和Web服務的基礎。XML作為一種語言,可以對結構化和半結構數據進行標注,作為一種標準可以建立特定領域的數據的組織和交換規范。因此,目前已經成為不同行業和領域中元數據建模所采用的標記語言。
異構系統間數據的交換和共享以及不同形式內容的管理,這些都已經成為急需解決的問題。目前,已經有了很多關于內容管理和元數據建模方面的研究,但這些研究大多是針對特定需求的專項研究。為了系統的研究與內容管理相關的處理方案,我們提出一套基于XML的元數據模型的設計方法。本文建立了一個元數據模型的框架,用以說明與元數據處理以及異形內容管理相關的途徑。
2 相關概念簡介
2.1 元數據模型
目前一些專家認為元數據模型[4]應當包括兩個層次:描述數據自身的元數據和描述數據之間關系的元數據。
描述數據自身的元數據主要是指那些只與數據本身相關的一些信息,比如數據標識信息、數據生成時間、數據質量信息和數據發布信息等現有的元數據標準。而描述數據之間關系的元數據則描述了各個數據集是通過什么樣的關系構成了一個有機的整體,比如最基本的組成關系。
2.2 其它概念
元數據模型包括描述數據自身的元數據和描述數據之間關系的元數據。而元數據是關于數據的結構化數據。目前,一般的都使用XML語言來表示元數據,而XML文檔的結構或模式需由DTD或XML Schema來描述。
根據上面分析,得出本文涉及的各概念之間的相互關系,用下例UML圖來表示:

圖1
從圖1中,我們可以發現元數據使用XML文檔來表示,而XML文檔的結構通過(依賴)XML Schema來描述。XML文檔表示的是數據(元數據);而XML Schema表示的是數據的結構,是內容本身。元數據模型描述的是內容本身而不是數據,因此,它和XML Schema直接關聯。
3 元數據模型的設計
3.1 元數據模型框架
元數據模型包括兩個層次:描述數據自身的元數據和描述數據之間關系的元數據。相應的,元模型的框架也應該包括兩部分:元數據層和元數據管理層。

圖2 元數據模型框架
由圖2可知,此框架主要由三部分組成:元數據層、元數據管理層以及元數據處理模塊。輸入數據流為該框架提供數據源,元數據處理模塊在元數據層和元數據管理層之間發揮著“橋梁”的作用,它主要實現元數據的讀取、編輯、寫入和解析等功能,輔助完成元數據模型的管理。
元數據主要是從各類數據源中提取而來。不管是TXT文件、字處理文件、表格文件還是各類圖象視頻文件,都可以按照一定的標準來提取元數據。最初提取出來的元數據是一個個分散、雜亂無章的數據,沒有系統性。因此,為了便于元數據的統一管理和使用,這里我們提出了元數據層的概念。元數據層是統一存放元數據的地方,我們可以把它看作是一個元數據的容器。這個容器是元模型的核心,它存儲著一系列定義元數據的結構良好的XML文檔,它是實現異構系統間數據交換和共享的基礎。
元數據管理層主要完成元數據模型的創建、存儲、查詢、修改等功能。在本文中,元數據模型即一組“XML Schema”和“XML文檔”。由于XML Schema本身也是一個XML文檔,所以,只要有支持XML數據類型的容器就可存儲元數據模型。如,Oracle 10g數據庫就支持XML Type的數據字段,此外,它還提供XQuery來支持對基于XML元素的查詢。這樣,就可滿足元模型的管理和查詢。
該元數據模型框架是以元數據的管理為中心而設計的。框架的主要應用場景是一般的內容管理系統,其中涉及到不同類型的數據源,異構系統之間數據的交換和共享以及需要實現基于語義的查詢。
3.2 元數據的定義
這里,我們定義元數據遵從的標準是基于國際上公認的都柏林核心元素集[6](DUBLIC CORE,DC)而擴展的。DC元數據格式描述的對象是網絡資源。簡單的元素定義和設置可以很方便的著錄,是DC獲得廣泛應用的重要原因,然而它也帶來另外一個問題,對著錄對象的描述深度不夠,不能進行專指度較高的檢索。因此,本文將采用DC應用模式中的簡單DC(Simple DC)模式來定義元數據。
在此,我們定義了描述元數據的13種基本元素(括號內為元素的名稱或注釋):Title(資源名稱)、Author(作者)、Keywords(關鍵字)、Description(資源描述)、Publisher(出版者)、Date(日期)、Resource Type(資源類型)、Format(資源格式)、Resource Identifier(資源的唯一標識,如URL、ISBN等)、Source(資源來源)、Language(語言)、Rights Management(權限管理)、Email。
每個元素根據ISO/IEC 11179可定義多個屬性,即:
名稱(Name):元素名稱
標識(Identifier):元素唯一標識
版本(Version):產生該元素的元數據版本
語言(Language):元素說明語言
定義(Definition):對元素概念與內涵的說明
數據類型(Datatype):元素值中所表現的數據類型
注釋(Comment):元素應用注釋。
我們使用XML這種自描述的、半結構化和可擴展的標記語言來表示元數據。表示元數據的XML文檔必須是有效的,也就是XML文檔的結構或模式應該遵循DTD或XML Schema的描述。
3.3 元數據管理
元數據雖然都存放在了統一的容器(元數據層)中,有了一定的系統性,但各個元數據之間缺少關聯性,它們都是一個個獨立的元素。因此,需要對這些元數據進行統一的管理,使各個元素之間相互聯系起來,相互作用。
元數據管理的數據來源是元數據層,通過對元數據的讀取、解析、編輯、寫入以及其他相關操作來完成對元數據的管理。
① 元數據讀取:主要實現從元數據源(如元數據庫)中讀取元數據。
② 元數據解析:負責對元數據層中的元數據進行解析,然后將解析后的數據傳遞給具體任務模塊進行相應的處理。
③ 元數據編輯:負責將元數據進行封裝,編輯成預先定義的DTD或XSD(XML Schema Description)樣式。
④ 元數據寫入:實現將編輯好的元數據寫入元數據庫。
⑤ 其它相關操作主要包括元數據庫的實現;元數據的檢測(判斷元數據在元數據庫中是否已經存在);元數據管理過程中的任務調度以及系統異常的監控和處理。
4 案例分析
這里,我們將采用本文背景項目(視頻文件管理)中的部分實例來分析如何用XSD以及XML文檔來描述元數據模型的兩個層次。
4.1 案例數據
本案例引入兩部分相互關聯的數據,分別是視頻文件數據以及視頻作者(視頻的創作者而非視頻文件的編輯者)數據。
視頻文件包含如下一些重要信息(我們按照上面3.2中分析的規范來描述):Title、Author、Keywords、Description、Publisher、Date、Format和Language。
視頻作者信息包括:Title(姓名)、Source(國籍)、Email和Description(個人簡介)。
4.2 xsd文檔
下面這個xsd文檔(author.xsd)片段用于描述視頻作者信息的XML實例文檔的結構。
<?xml version=“1.0” encoding=“ISO-8859-1” ?>
<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema
targetNamespace=http://whut.com/app/authorInfo>
<xs:element name=“firstname” type=“xs:string”/>
<xs:element name=“lastname” type=“xs:string”/>
<xs:element name=“Source” type=“xs:string”/>
<xs:element name=“Email”>
<xs:simpleType>
<xs:restriction base=“xs:string”>
<xs:pattern value=“[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z]+”/>
</xs:restriction>
</xs:simpleType>
<xs:element name=“Description” type=“xs:string”/>
<!-- 屬性的定義 -->
<xs:attribute name=“authorid” type=“xs:string”/>
<!-- 復合元素的定義 -->
… …
</xs:schema>
下面是一個名為videoFile.xsd的文檔片段。該xsd文檔用來規范的描述案例中XML實例文檔的結構。
<?xml version=“1.0” encoding=“ISO-8859-1” ?>
<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema
targetNamespace=http://whut.com/app/videoInfo
xmlns:author= http://whut.com/app/authorInfo>
<import namespace= http://whut.com/app/authorInfo
schemaLocation=“http://whut.com/app/ author.xsd”/>
<xs:element name=“Title” type=“xs:string”/>
<xs:element name=“Author” type=“author:Title”/>
… …
<xs:element name=“Date” type=“xs:date”/>
<xs:element name=“Format”>
<xs:simpleType>
<xs:restriction base=“xs:string”>
<xs:pattern value=“wmv|avi|rm|asf|rmvb|mpg”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name=“Language” type=“xs:string”/>
<!-- 屬性的定義 -->
<xs:attribute name=“fileid” type=“xs:string”/>
<!-- 復合元素的定義 -->
… …
</xs:schema>
從上面的videoFile.xsd中可以看到Author元素的Type(類型)是“外部類型“,它是通過import機制導入另一個xsd文件來實現的。
此外,當被導入模式和現有模式擁有相同域名或者被導入模式沒有域名的情況下,還可以通過include機制來實現“外部類型“的使用。
4.3 XML實例文檔
下面這個名為author.xsd的文檔片段用于描述視頻作者信息(author.xml文檔)的結構。
<author authorid=“112233”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://whut.com/app/authorInfo author.xsd”>
<Title>
<firstname>wang</firstname>
<lastname>wu</lastname>
</ Title>
… …
</ author >
下面是一個videoFile.xml(視頻文件)文檔的片段,它是符合上面的xsd文檔(videoFile.xsd)描述規范的。
<?xml version=“1.0” encoding=“ISO-8859-1”?>
<videoFile fileid=“889966” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://whut.com/app/videoInfo videoFile.xsd”>
<Title>Long March</ Title >
<Author>
<firstname>wang</firstname>
<lastname>wu</lastname>
</ Author >
… …
<Date>2001-08-08</Date>
<Format>wmv</Format>
<Language>Chinese</Language>
</ videoFile >
5 結語
首先通過一個UML類圖來分析涉及到的各概念之間的關聯。然后,在元數據層次上提出一個元數據層的概念,同時提出一個用XML實現的元數據模型的設計方法,制定了元數據分類的標準,并且分析比較了與元數據管理相關的一些技術。最后,通過案例實現用XSD描述的XML實例文檔來表示元數據模型的兩個層次(描述數據自身的元數據和描述數據間關系的元數據)。下一步,將采用其中的某些技術來進一步的完善并實現元數據模型的框架。
參考文獻:
[1]Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, et al. Extensible Markup Language (XML) 1.0(Third Edition)[EB/OL].http://www.w3.org/TR/REC-xml, W3C Recommendation 04 February 2004.
[2]劉洪星[著]. XML建模和XML數據庫建模[J]. 計算機科學. 2004.
[3]周駿,徐林,李征[著]. 元模型驅動的企業建模[J]. 計算機工程與應用. 2005(27).
[4]中文元數據標準研究項目組. 國外元數據標準比較研究報告[R]. 2000.12.
收稿日期:2008-01-12
作者簡介:徐小靜(1983-),男,浙江衢州人,學生,碩士研究生,研究方向:數據庫應用技術;楊青(1964-),女,湖北武漢人,副教授,研究方向:數據庫應用技術。