出處:Dublin Core Terms(http:\/\/purl.org\/dc\/terms\/)

標簽:出版日期

定義:將資源編印或製作出來的日期。

注釋:出版者將編撰完成的書稿批量複製的行為日期。

編碼體係修飾詞:年號紀年;公元紀年

2) 印刷日期

出處:《古籍著錄規則》(GB\/T 3792.7—1987)

標簽:印刷日期

定義:將資源印在紙張等介質上的日期。

注釋:將資源印在紙張等介質上成為古籍的日期。

編碼體係修飾詞:年號紀年;公元紀年

(六) 東亞楚辭注釋著作元數據著錄實例

實例一:清吳世尚《楚辭疏》八卷(又名《楚辭注疏》),清雍正五年尚友堂刻本薑亮夫.楚辭書目五種[M].上海:上海古籍出版社,1993:157—158.

題名:《楚辭疏》八卷

並列題名:《楚辭注疏》

主要責任者:吳世尚

責任者說明:名世尚,字六書。清貴池人。

責任方式:撰

其他責任者:曹文超

責任者說明:清

責任方式:訂

出版者:尚友堂

出版地:蘇州

日期:出版日期

年號紀年:清雍正五年

公元紀年:1727

版本類別:刻本

載體形態:

裝訂方式:線裝

行款版式:每半頁九行,行十九字,大小字數相同。

館藏信息:上海圖書館,江蘇國學圖書館

實例二:宋洪興祖《楚辭補注》十七卷,汲古閣重刊宋本

題名:《楚辭補注》十七卷

主要責任者:洪興祖

責任者說明:興祖(1090—1155)字慶善,丹陽人。著有《老莊本旨》、《周易通議》、《楚辭補注》等書。入《宋史·儒林傳》,卷四百三十三。

責任方式:撰

出版者:汲古閣

出版地:常熟

日期:出版日期

年號紀年:清康熙年間

公元紀年:1662—1722

版本類別:重刊宋本

載體形態:

裝訂方式:線裝

行款版式:每卷首頁版心有“汲古閣”字樣,半頁九行,行十五字。注雙行,行二十字。毛表有跋文。

館藏信息:北京圖書館,浙江圖書館

實例三:吹野安《楚辭集注全注釋七招魂大招》,明德出版社平成二十五年六月二十七日

題名:楚辭集注全注釋七招魂大招

主要責任者:吹野安

責任者說明:吹野安,1932年出生於茨城縣。國學院大學文學部畢業。師從藤野岩友學習楚辭。文學博士,國學院大學名譽教授,國學院大學大學院、東海大學大學院講師。

責任方式:著

出版者:明德出版社

出版地:日本

日期:出版日期

年號紀年:平成二十五年六月二十七日

公元紀年:2013年6月27日

語種:日語

實例四:千金梅、金星花、李紅梅譯《楚辭考論》(譯著),商務印書館2016年版

題名:楚辭考論

並列題名:?劔B?勮?冨z?剴

主要責任者:周建忠

責任者說明:周建忠,1955年生,畢業於中國揚州大學中文係,隨後又於上海師範大學中文係研究生院獲得文學博士學位。曾任南通大學副校長和文學院院長等職位。

責任方式:著

其他責任者:千金梅 金星花 李紅梅

責任方式:譯

出版者:商務印書館

出版地:上海

日期: 出版日期:2016年8月20日

印刷時間:2016年8月10日

語種:韓語

(七) 東亞楚辭研究期刊論文元數據字段(見表26)及著錄示例表26楚辭研究期刊論文元數據表

元素名稱本地數據庫

字段名稱缺省值編碼體係

修飾詞必備字段字段值

唯一題名題名無必備交替題名無無有則必備主要責任者主要責任者有則必備機構無有則必備責任方式無有則必備其他責任者其他責任者有則必備其他責任機構無有則必備其他責任者

責任方式無有則必備日期接受日期發布日期分類號分類號有則必備中文關鍵詞中文關鍵詞無有則必備英文關鍵詞英文關鍵詞無有則必備學科學科有則必備目次目次有則必備中文摘要中文摘要有則必備英文摘要英文摘要有則必備全文全文有則必備資助資助無有則必備附注附注有則必備資源類型資源類型期刊文獻資源格式資源格式有則必備資源標識資源標識有則必備語種語種必備來源來源有則必備參照參照有則必備譯自譯自有則必備文件名文件名分類導航分類導航權限權限東亞楚辭研究期刊論文元數據著錄實例:

實例一:楊義.《離騷》的心靈史詩形態[J].文學遺產,1997(6).

題名:《離騷》的心靈史詩形態

主要責任者:楊義

機構:中國社會科學院文學所

責任方式:著

分類號:I222.3

中文關鍵詞:離騷;心靈史詩;芳草情操

學科:中國古代文學

目次:

一、 心靈史詩與《離騷》解題

二、 “人之初”的精神原點

三、 芳草情操與時間體驗

四、 曆史意識與現實憂患

五、 人生挫折與精神升華

六、 自我裂變與戲劇性詩學機製

七、 神話隱喻性心理邏輯

資源類型:期刊文獻

語種:漢語

來源:《文學遺產》,1997年第6期

實例二:周建忠,施仲貞.朝華已披 夕秀方振——楚辭學的形成因由和發展態勢[J].文學評論,2009(5).

題名:朝華已披 夕秀方振——楚辭學的形成因由和發展態勢

主要責任者:周建忠

機構:南通大學楚辭研究中心

責任方式:著

其他責任者:施仲貞

機構:南通大學楚辭研究中心

責任方式:著

分類號:I207.22

中文關鍵詞:楚辭學;形成因由;發展態勢

學科:中國古代文學

目次:

一、 楚辭學的形成因由

二、 楚辭學的發展態勢

中文摘要:探析楚辭學形成因由,以此揭示楚辭學的必然發生,進而預測楚辭學的發展態勢以把握楚辭學的未來走向。楚辭學在政治、文學、學術、闡釋、民俗等因素共同作用下成為一門獨立的學科。楚辭學的未來走向將圍繞傳統文獻、出土文獻、海外文獻、學術史深化以及信息化工程等方麵來研究。

資源類型:期刊文獻

語種:漢語

來源:《文學評論》,2009年第5期

(八) 東亞楚辭研究學位論文元數據著錄細則

東亞楚辭研究學位論文元數據著錄規則見表27。表27楚辭研究學位論文元數據表

元素名稱數據庫字段名稱缺省值編碼體係

修飾詞必備字段字段值唯一題名 題名無必備交替題名無無有則必備主要責任者作者有則必備主要責任者機構無有則必備導師無有則必備導師機構無有則必備日期答辯日期有則必備發布日期有則必備提交日期有則必備分類號分類號有則必備學科學科有則必備目次目次有則必備中文摘要中文摘要有則必備英文摘要英文摘要有則必備成果目錄成果目錄有則必備相關資源附注相關資源附注有則必備全文全文有則必備資助資助無有則必備資源類型資源類型學位論文資源格式資源格式有則必備資源標識資源標識有則必備語種語種必備參照參照有則必備被參照被參照有則必備附加資源關聯附加資源關聯有則必備版本相關資源版本相關資源有則必備權限聲明權限聲明有則必備保密級別保密級別有則必備學位名稱與級別學位名稱與級別有則必備學位授予單位學位授予單位有則必備文件名文件名有則必備分類導航分類導航有則必備館藏地館藏地有則必備典藏號典藏號有則必備頁碼頁碼有則必備東亞楚辭研究期刊論文元數據著錄示例:

實例一:貴州大學肖治強碩士學位論文《〈山帶閣注楚辭〉探析》

題名:《山帶閣注楚辭》探析

主要責任者:肖治強

主要責任者機構:貴州大學文學院

導師:梅桐生

導師機構:貴州大學文學院

日期: 2007年5月(提交日期)

分類號: I207.22

目次:

第一章《山帶閣注楚辭》的學術背景及成書過程

第二章《山帶閣注楚辭》知人論世評析

第三章參之地理論屈注騷

第四章《山帶閣注楚辭》字詞訓釋特色

第五章《山帶閣注楚辭》之屈辭藝術論

第六章《山帶閣注楚辭》之屈原論

中文摘要:通過文本解讀,結合清代前期的時代學術背景、蔣驥生平以及成書過程,運用曆史比較、知人論世、參照體悟等方法,探討蔣驥《山帶閣注楚辭》的注釋特色和學術貢獻。研究認為該書對屈辭研究重視知人論世,著力楚辭地理考證,以實證方法,精審嚴謹地考辨屈子放逐貶謫行蹤,確定屈辭創作時間、地點,得出的一些結論為楚辭學界廣為接受,成為共識;整體解讀屈辭的意旨闡釋及藝術體悟,對屈辭中的“章法絕奇處”與意境的“虛幻”創設有獨特體會;對字詞的訓釋,旁征博引,駁議舊說;對屈原的評論,視角獨具,別出心裁,顯示出推崇中又有所偏離的傾向。

英文摘要:Through the text interpretation, combined with the era of the early stage of the Qing dynasty academic background and the life of JiangJi and development process of the book. It uses the method of historical comparison, individual understanding to explore JiangJis Annotation on Chuci in Shandai pavilion and its characteristics and academic contribution.We think that this book pays attention to exploring the geography to determine the time and place of the works. This book interpretates the principle and art of Chuci. It also abandons the traditional ways of understanding,having its own special comment on Quyuan, showing a tendency to err on the side of praise.

成果目錄:《蔣驥〈山帶閣注楚辭〉知人論世探析》,載《貴州文史叢刊》2007年第1期;《〈五臧山經〉祀禮初探》,載《貴州文史叢刊》2007年第3期

語種:漢語

權限聲明:附學位論文原創性聲明和關於學位論文使用授權的聲明

學位名稱及級別:文學碩士

學位授予單位:貴州大學

頁碼:70

(九) 東亞楚辭研究會議論文元數據著錄細則

東亞楚辭研究會議論文元數據著錄規則見表28。表28東亞楚辭研究會議論文元數據著錄表

元素名稱數據庫字段名稱缺省值編碼體係

修飾詞必備字段字段值唯一題名 題名無必備交替題名無無有則必備主要責任者主要責任者有則必備機構無有則必備責任方式無有則必備其他責任者其他責任者有則必備其他責任機構無有則必備其他責任者責任方式無有則必備分類號中圖分類號有則必備中文關鍵詞中文關鍵詞無有則必備英文關鍵詞英文關鍵詞無有則必備學科學科有則必備目次目次有則必備中文摘要中文摘要有則必備英文摘要英文摘要有則必備全文全文有則必備資助資助無有則必備附注附注有則必備接受日期接受日期有則必備發布日期發布日期有則必備資源類型資源類型會議論文資源格式資源格式有則必備資源標識資源標識有則必備語種語種有則必備來源來源有則必備參照參照有則必備譯自譯自有則必備文件名文件名有則必備分類導航分類導航有則必備權限權限有則必備會議名稱會議名稱有則必備會議地點會議地點有則必備主辦單位會議主辦單位有則必備會議日期會議日期有則必備論文集題名會議論文集題名有則必備出版者出版者有則必備出版日期出版日期有則必備東亞楚辭研究會議論文元數據著錄實例:

實例一:2011年楚辭學國際學術討論會暨中國屈原學會第十四屆年會論文:《〈詩經·國風〉與〈楚辭·九歌〉》

題名:《詩經·國風》與《楚辭·九歌》

主要責任者:馬誌林

機構:陝西師範大學

責任方式:著

其他責任者:劉生良

機構:陝西師範大學

責任方式:著

分類號:I207.22

中文關鍵詞:詩經;國風;楚辭;九歌

學科:中國古代文學

目次:

一、 一樣的原型意義

二、 相同的抒情模式

三、 共有的演唱形式

中文摘要:《詩經·國風》和《楚辭·九歌》都是我國早期民間詩歌的傑作,並通過文人的加工潤色而更加瑰麗奪目。本文從產生的時代、地域、風格等方麵闡釋了兩者的不同點,同時,從原形意義、抒情模式、演唱形式加以比較研究,發現並揭示了二者的許多共同之處。

英文摘要:The Book of Odes and The Songs of Chu were Chinese early famous works in folk,and they became much more fantastic through the polishment of literature writers.This passage demonstrates the differences on the time,place and style of the two works.On the meanwhile,we compare and discover many common points of them on the side of meanings,lyrical ways and singing forms.

語種:漢語

會議名稱:2011年楚辭學國際學術討論會暨中國屈原學會第十四屆年會

會議地點:中國福建漳州

會議主辦單位:中國屈原學會

會議日期:2011年6月4日

會議論文集題名:2011年楚辭學國際學術討論會暨中國屈原學會第十四屆論文集

出版者:學苑出版社

出版日期:2013年8月

(十) 東亞楚辭研究報紙論文元數據著錄細則

東亞楚辭研究報紙論文元數據著錄細則見表29。表29東亞楚辭研究報紙論文元數據著錄表

元素名稱數據庫

字段名稱缺省值編碼體係

修飾詞必備字段字段值唯一題名題名無必備交替題名無無有則必備主要責任者主要責任者有則必備機構無有則必備責任方式無有則必備其他責任者其他責任者有則必備其他責任機構無有則必備其他責任方式無有則必備分類號中圖分類號有則必備中文關鍵詞中文關鍵詞無有則必備英文關鍵詞英文關鍵詞無有則必備學科學科有則必備目次目次有則必備中文摘要中文摘要有則必備英文摘要英文摘要有則必備全文全文有則必備資助資助無有則必備附注附注有則必備接受日期接受日期有則必備發布日期發布日期有則必備資源類型資源類型有則必備資源格式資源格式有則必備資源標識資源標識有則必備語種語種必備來源來源有則必備參照參照有則必備譯自譯自有則必備文件名文件名有則必備分類導航分類導航有則必備權限權限有則必備東亞楚辭研究報紙論文元數據著錄實例:

實例一:2000年楚辭學國際學術討論會暨中國屈原學會第八屆年會綜述:《“與日月齊光”的楚辭研究》

題名:“與日月齊光”的楚辭研究

交替題名:2000年楚辭學國際學術討論會綜述

主要責任者:方銘

主要責任者機構:北京語言文化大學

責任方式:著

中圖分類號:BF24

中文關鍵詞:楚辭學國際學術討論會;楚辭研究;楚辭學;屈原思想

英文關鍵詞: Chucis international academic proseminar;research of Chuci;Chuci;QuYuans ideology

中文摘要:2000年楚辭學國際學術討論會的中心議題是探討在過去一個世紀, 特別是二十世紀八十年代以來屈原及楚辭研究的新成果,和屈原及楚辭學在未來的世紀中國文化建設和世界文化建設中的地位問題。

英文摘要:Chus international academic proseminar was held in 2000,its main points are exploration of the discovery to QuYuan and Chus research and the status of Chinese and the worlds cultural constructions about QuYuan and ChuCi.

日期:發布日期:20001220

資源格式:PDF

語種:漢語

來源:《人民政協報》,20001220(第004版)

(十一) 東亞楚辭研究音像資料元數據著錄細則

東亞楚辭研究音像資料元數據著錄細則見表210。表210東亞楚辭研究音像資料元數據著錄表

元素名稱數據庫字段名稱缺省值編碼體係

修飾詞必備字段字段值唯一題名題名必備主要責任者主要責任者有則必備責任方式責任方式有則必備其他責任者其他責任者有則必備其他責任者

責任方式其他責任者

責任方式有則必備分類號分類號有則必備關鍵詞關鍵詞有則必備內容簡介內容簡介有則必備作者簡介作者簡介有則必備出版者出版者有則必備出版地出版地有則必備版次及其他

版本形式版次及其他

版本形式有則必備製作日期製作日期有則必備出版日期出版日期有則必備可獲得日期可獲得日期有則必備發布日期發布日期有則必備學科學科有則必備附注附注有則必備來源來源有則必備資源類型資源類型有則必備資源格式資源格式有則必備權限聲明權限聲明有則必備資源標識資源標識有則必備ISRCISRC有則必備篇幅篇幅有則必備語種語種有則必備載體載體形態有則必備分類導航分類導航有則必備東亞楚辭研究音像資料元數據著錄實例。

實例一:楚辭音

題名:楚辭音其他題名信息: P.2494

主要責任者: 王重民攝製

出版、發行者:王重民

出版發行地:巴黎

關鍵詞:敦煌學語音

語種:漢語

分類導航:中圖分類:K870.6 H113

載體形態:6照片

實例二:離騷

題名:離騷

並列正題名: Li Sao—The Story of Chu Yuan

叢編題名:中國十大古典文學名著精選

文獻類型:計算機文件

主要責任者:上海金仕達多媒體有限公司

其他責任者:南京钜盛電腦自動化有限公司製作

出版發行者:複旦大學出版社

出版發行地:上海

出版發行時間:1997

關鍵詞:曆史故事;中國;現代

語種:漢語,英語

分類號:I247.8

資源標識:ISBN:7900606319

載體形態:CDROM

2.5東亞楚辭文獻語義詞表與知識地圖

楚辭的內容涵蓋領域廣泛,如果沒有一個以揭示專業詞彙(關鍵詞、術語、主題詞等)所代表的概念之間的關係(上下位詞、局部與整體、同義、反義、相關)為基本內容並動態更新的大容量詞典,就不能通過程序自動訓練和語義挖掘找出相關詞條並通過關聯規則揭示其概念關係。《楚辭語義詞典》是一個多功能新型數字化詞典,反映楚辭全文中每個字詞之間的語義關係;反映曆代學者對同一詞語的不同解釋;包含每個字詞所屬的句子,反映字詞在具體語境中的語義。因此它兼具語文性詞典的注音、釋義,英漢雙語對照功能;傳統索引的句子索引和逐字索引的功能;計算機用語義詞典的語義關係標注、識別功能。古代文獻的不同版本中語句、詞形都會分差異,楚辭文獻也是如此。我們以中華書局版的洪興祖《楚辭補注》為底本,參校其他版本,對不同的詞形另列條目,人工標注語義關係,在知識地圖獲得相應的賦值。為便於和楚辭研究數據庫整合,我們采用關係型數據庫建設語義詞典,數據庫文件可以轉換成多種文件格式。語義詞典可以單獨檢索,輸入檢索詞,顯示該詞語的漢語拚音,對應的英文譯名,古今學者對該詞語的代表性解釋,楚辭中包含該詞語的所有句子。列舉詞語的同義近義詞、上下位詞、相關詞等,參見圖251。

在“詞典檢索”模塊查閱詞目,點擊“檢索文獻”,跳轉到文獻數據庫檢索界麵,所選字詞自動填入檢索框,選擇相應的檢索字段,可實現對默認文獻庫中的所有數據庫進行跨庫檢索。在單庫檢索界麵(選擇文獻庫模塊任意一個數據庫),輸入檢索詞,係統自動顯示所輸入檢索詞的同義近義詞、上位詞、下位詞、相關詞。勾選所需詞語,可實現相關詞的同步擴檢。目前該詞典在經過人工審核和程序校驗後,已經能夠清晰地向用戶提供個性化的核心知識組成。經過未來的不斷充實與拓展,將可以對楚辭領域進行更深入的語義關聯和知識挖掘。

知識地圖是既包含顯性知識又包含隱性知識的知識導航係統。一份完整的知識地圖包含的內容十分豐富——不僅提供知識資源的存儲、結構、功能、存在、防偽以及查詢路徑,還清楚地揭示相關知識資源的類型、特征及知識之間的相互關係。依據語義標注模型,楚辭研究數據庫建成了一種以中心詞為本體詞,可通過詞語相關性來繪製知識網絡,並可根據中心詞和相關詞分別進行語義關聯,可點擊查詢可視化的關聯知識地圖。嵌入楚辭數據庫檢索係統的楚辭知識地圖與楚辭語義詞典、楚辭文獻庫整合,以圖形網絡的方式反映楚辭詞語之間的語義關係,如圖252所示,楚辭知識地圖中的每一個詞都可被選為中心詞,通過中心詞可以擴展至相關聯的主題詞。在此地圖中,中心詞為藍色,與所選中心相關度最高的主題詞為綠色,橙色為延伸主題詞。用直線連接表示兩個主題詞之間相互關聯,直線長短表示兩個主題詞關聯的緊密程度,越短表示關聯度越緊密,這是通過設置語義詞典中相關詞之間的距離參數來實現的。在本平台中,知識地圖不但可以顯示詞與詞之間的關聯,同時單擊鼠標右鍵還可以直接檢索所選詞在詞典中的釋義及在文獻庫中各類著作、論文的命中結果。

圖251楚辭詞典詞目檢索楚辭研究數據庫[EB\/OL].[20170709]. http:\/\/chuciyj.ntu.edu.cn\/WebSearch\/WordDictSearch.aspx.

圖252楚辭知識地圖檢索楚辭研究數據庫[EB\/OL].[20170709]. http:\/\/chuciyj.ntu.edu.cn\/.

第三章東亞楚辭文獻語義知識組織關鍵技術第三章東亞楚辭文獻語義知識組織關鍵技術

楚辭文獻語義知識組織是以數字化楚辭文獻為基礎,以語義網技術為核心,綜合運用楚辭學、文獻學、計算語言學、自然語言處理技術、語義網技術,揭示楚辭文獻知識單元,包含楚辭注釋、各種類型研究文獻的顯性知識以及隱含在文獻內容中有待挖掘與揭示的隱性知識,並通過關聯數據模型建立楚辭文獻知識關聯,實現楚辭知識關聯檢索、可視化呈現與隱性知識發現,為用戶檢索楚辭,學者研究楚辭文獻提供結構化的楚辭文獻知識與楚辭文獻數字化的研究工具和方法。本章在前兩章文獻知識組織概論與楚辭文獻數字化理論與實踐的基礎上,首先提出構建楚辭文獻語義知識組織模型,然後結合語義網核心技術,詳細論述XML、RDF、OWL等語義網關鍵技術應用於楚辭文獻語義知識組織的過程與實現方法。

3.1東亞楚辭文獻語義知識組織模型

語義到底是指什麼?不同對象有不同解析,具體到楚辭文獻中,我們可以將語義看作文獻知識單元(字、詞、句子)所代表的概念的含義,以及這些含義之間的關係,它是對不同類型楚辭文獻的抽象或者更高層次的邏輯表示。以楚辭文獻關係數據庫為例,數據庫中的文獻以元數據元素和數字對象存儲在一張張數據表中,例如將一本楚辭注釋著作基本信息存入到楚辭注釋著作表中,這時,對於表中的每一列數據所構成的集合,其所隱含的意思就是該列數據所要表達的對應的概念,這個概念往往體現為設計人員對該列數據對應的屬性所給定的名稱,例如“書名”、“作者”、“版本”、“注釋內容”、“字詞句注釋”、“詞彙語義”等,這些屬性之間的關係就相當於數據對應的概念之間所存在的關係,它們都是注釋著作這個實體的屬性,數據庫表中的屬性和關係都可以看作數據的語義信息。楚辭文獻的語義知識組織就是利用語義技術對數字化的楚辭文獻知識進行標注與組織,建立楚辭文獻注釋與注釋、詞義與典故、字形與字音、作品與作者、作品與作品、人物與年代、版本與載體、刻本與譯本、研究與實體、物品與寓意、宗教與節慶等多種楚辭文獻知識關聯,實現基於語義的楚辭知識檢索、可視化呈現與知識發現。實現的技術基礎是以語義網技術為核心的語義知識組織關鍵技術。

傳統的基於元數據的文獻數據庫知識組織模型,即以分類法\/主題詞\/關鍵詞為組織模式,這種模型可以實現基於楚辭文獻分類的檢索與基於楚辭主題詞、關鍵詞的檢索,但無法實現楚辭概念知識的檢索。我們考慮的楚辭文獻知識組織模型不局限於這種傳統的數據庫元數據檢索模型,而是努力想實現一種基於語義概念的個性化關聯的語義檢索模型。從模型論的角度,這就是概念和關係的匹配,是一種用於分析概念、知識、邏輯關係和算法序列的表示體係。如果從語義和模型的結合出發,其關鍵之處在於要實現語義的個性化關聯,這也是語義檢索模型構建中必須關注的焦點。例如用戶查找的是“屈原”,與之相匹配的詞語還應輸出“楚辭”、“九歌”、“九章”、“離騷”等屈原作品。因此,該檢索模型應具備如下重要特征:其一是能夠基於某種語義關聯進行知識組織體係構建;其二是能夠以知識庫為基礎對資源對象進行語義標注;其三是能夠采用自然語言分析處理用戶的提問和文檔信息內容;其四是能夠進行多維語義的推理和動態鏈接的學習。

構建基於語義的知識組織模型,須利用文本挖掘(text mining)技術進行語義中概念關係的知識發現和個性關聯,以便於實現關鍵詞自動標引、自動摘要、自動分類、文獻相似度分析等。我們在對楚辭文獻的研究中就定義的概念關係挖掘流程,可以達到以下目的:一是實現人名、地名、機構名、專有名詞等命名實體的辨識和自動提取;二是將大量散亂的文本和知識自動歸類、自動梳理;三是對檢索結果進行自動聚類或者對未知類別的文本進行分析歸類;四是根據需求對動態的信息流進行過濾,僅保留用戶感興趣的信息;五是在篇章結構和內容分析的基礎上按照句數或者比例抽取摘要;六是通過統計語言學和機器學習的手段為文本自動標引關鍵詞;七是使用關聯規則分析,實現係統自動推薦主題詞或者分類規則,進而形成語義檢索的本體知識模式。現代自然語言處理技術很難自動處理古代文學,尤其是以楚辭為代表的先秦辭賦類型的文獻。古代文學作品中詞語的多義和歧義還表現在後人的闡釋方麵——對古代文學作品中詞語的語義,曆代學者有不同的解釋,今人的研究也有不同的看法,沒有定論。例如:楚辭中有大量詞語存在不同注解,不僅僅是對同一詞語的解釋不同,對同一詞形的雙音節或多音節詞語,有的學者認為是一個詞,有的學者則看作兩個詞。如《天問》:“夜光何德,死則又育?厥利維何,而顧菟在腹?” 屈原對於月亮及月中陰影的提問,後人給出不同的解答。有人認為顧菟是兩個詞,如:“顧”,顧望(王逸)、卻望(汪仲弘)、照顧(金開誠);“菟”,同兔(王逸、洪興祖、金開誠等)。有人認為“顧菟”是一個詞,如:兔之名號(朱熹)、月中暗影似兔者(王夫之),顧菟是“於菟”,即老虎(湯炳正)。因此在文本標注時,自動分詞就有問題,需要切成“而\/顧\/菟\/在\/腹”,“而\/顧菟\/在\/腹\/”。所以,在概念知識組織過程中,必須高度重視領域專家的參與和協作,采用半自動的文本標注方法來保障語義的完整性。

結合楚辭文獻數據庫的語義研究,我們提出了一種以本體知識庫建設為核心,由本體開發係統、語義標注係統、資源管理係統、知識服務係統四層架構組成的楚辭文獻語義知識組織的模型結構,該模型不僅專注於本體係統的開發,還力圖構造出一種在傳統的以元數據為核心的關係數據庫知識組織的關係模型基礎之上實現全新數據構造,各層次之間承上啟下、相互貫通,同時又能表達自然語言複雜關係的語義數據處理流程,如圖31所示。在圖31中,底層是以基於元數據標準體係的楚辭文獻標注與楚辭注釋語料庫建設開發為基礎的楚辭文獻本體開發係統建設,著重於楚辭文獻本體知識庫的構建,語義標注係統著重於內容的標引和關聯規則的設定,資源管理係統著重於數據的歸類與存儲,知識檢索服務係統著重於概念知識的可視化展示。四者相輔相成,進而通過一個融跨庫檢索、搜索引擎、語義詞典、關聯知識地圖為一體的檢索界麵,引導用戶由此及彼,由表及裏地進入楚辭領域知識的斑斕世界。在這樣一個模型中,各層次功能相互關聯。楚辭文獻知識本體開發係統基本遵循本體構建的七步法,在此基礎上有所改進,將其歸納為基於元數據標準的楚辭文獻語料庫、本體規範設計、概念類構建、定義推理規則與領域知識庫建立5個方麵(楚辭文獻知識本體構建將在第四章詳細論述);語義標注係統繼承本體開發係統,通過製定抽取規則與語義關聯規則來實現對文本內容的半自動語義化標注(楚辭文獻語義標注係統將在第五章詳細論述);資源管理係統則主要是實現數據的歸類與存儲,按照相關資源的元數據標準劃分成各相關資源庫;知識檢索服務係統則綜合以上三個層次實現的結果進行推送,不僅提高一般意義上的跨庫語義檢索和專題搜索能力,還特別設計了作為中文自然語言處理基石的語義詞典和對個性化領域各種關係進行直觀展示的知識地圖,這種層次分明而又相輔相成的獨特結構布局,對於本模型個性化關聯的展示和麵向實用的突破,起到了至關重要的作用。

圖31東亞楚辭文獻語義知識組織係統模型

3.2東亞楚辭文獻語義知識組織關鍵技術

語義網技術是文獻語義知識組織的核心關鍵技術,具體包括XML、RDF、OWL三大技術以及相關可視化技術。語義網概念是由萬維網聯盟(W3C:World Wide Web Consortium)主席Tim Berners Lee在1998年首次提出的。他認為:“語義網並非另外一個獨立的萬維網,而是現在的萬維網的一個延伸,這種網絡上所有的信息都具有定義好的語義,使得萬維網上信息具有計算機可以理解的語義,滿足智能軟件代理(Agent)對萬維網上異構和分布式信息的有效訪問與檢索,並使網絡可以提供動態的、個性化的、主動的服務。” 可見語義網的目的就是擴展當前的萬維網,使其能夠表達可以被機器(計算機)所“理解”的語義,以便於人和機器(計算機)以及機器和機器之間的交互與合作。簡單說,語義網是一種智能網,它不僅能夠理解詞語與概念,而且還可以理解它們之間的邏輯關係,可使交流變得更有效率和價值。語義網的本質是采用一種適用於機器理解的訪問新方式來表達Web上的內容,從而方便機器的閱讀與處理,並在此基礎上實現知識管理、概念檢索、智能主體、普適計算等智能化功能。在XML2000大會上,BernersLee在綜合了語義Web研究領域最新成果的基礎上提出了語義網信息組織體係結構(如圖32所示)。

圖32語義網標準體係架構W3C語義網概述[EB\/PL].[20170718].https:\/\/www.w3.org\/TR\/2004\/RECrdfprimer20040210\/#rdfmodel.

第一層是字符集層,即Unicode和URI。該層是整個語義網的基礎,Unicode負責處理資源的編碼,URI負責資源的標識。它解決萬維網資源定位與跨區域字符編碼的標準格式統一的問題。第二層是XML擴展標記語言結構層,即:XML+NS+XMLSchema。該層負責在語法上標識數據的內容和結構,它通過使用標準的置標語言將網絡信息的表現形式、數據結構和內容分離。第三層是資源描述框架層,即RDF。RDF是W3C推薦的用來描述萬維網上信息資源及其之間關係的標準框架模型,它尤其適用於描述文獻資源的元數據,如題名、作者、出版日期、版本、版權信息等描述文獻外部特征屬性與文獻內容的元素。RDF用於使所描述的資源的元數據信息成為機器可以理解的信息,rdfs使用一種機器可以理解的體係來定義描述資源的詞彙,並在該框架下使多種詞彙可以集成在一起實現對Web資源的描述。第四層是本體詞彙層,即Ontology Vocabulary。該層用於描述領域知識,描述各類資源及資源之間的關係,實現對詞彙表的擴展。例如可以通過構建楚辭注釋本體描述楚辭詞彙知識,並通過構建楚辭文獻知識本體描述楚辭各類資料及其資源之間的關係,建立詞彙與文本、資源與資源、資源與作者、作者與注釋、注釋與作品等多種關聯,以實現基於楚辭概念知識的關聯檢索。第五至七層分別為邏輯層(Logic)、證據層(Proof)、確信層(Trust)。Logic負責提供公理和推理規則,Proof支持代理間通訊的證據,Trust和數字簽名或加密技術是為了保證信息交換的安全問題。在這個七層架構中,第二、三、四層是語義網的關鍵層,XML、RDF和本體是構建語義網的基礎,它們用於表示Web信息的語義,也是現在語義網研究的熱點所在。其中可擴展標記語言XML讓每個人都能創建自己的信息標簽,來對網頁或頁麵的部分文字進行注釋。資源描述框架RDF的基本結構是對象、屬性和值所組成的三元組,也就相當於一個句子中的主語、謂語和賓語。這些三元組可以用XML語法來表示。用這種結構描述並由機器處理大量數據,是非常自然的方法。RDF模式是一個描述RDF資源的屬性(Property)和類(Class)的詞彙表,提供了關於這些屬性和類的層次結構的語義。由於RDF的數據語義描述仍然可能存在語義衝突,所以我們在描述數據語義的時候可以通過引用本體的相關技術,對語義描述結果做進一步的約束,以消除語義衝突。RDFS(Schema)在提供了簡單的機器可理解語義模型的同時,為領域化的Ontology語言提供了建模基礎,下節開始我們就結合楚辭文獻語義知識描述,詳細介紹語義知識組織的關鍵技術:可擴展標記語言——XML、資源描述框架——RDF、本體語言——OWL及其相關技術。

3.2.1可擴展標記語言

(1) 可擴展標記語言概述

可擴展標記語言全稱Extensible Markup Language,簡稱XML——它是在標準通用標記語言SGML(Standard Generalized Markup Language)的基礎上發展而來。通用標記語言SGML又稱元標記語言,是不針對特定程序的一般化的標記語言,用於描述信息的內容與結構,SGML是國際標準化組織(ISO)於1986年12月製定的文檔標記的國際標準,該標準定義了電子文件結構與內容描述規範的標準,是用來定義其他語言的元語言,它以結構化與邏輯化的方式描述文本文檔,實現文本電子文檔的創建、保存與分發。一個SGML文檔由語法定義、文檔類型定義(DTD)與文檔實例三部分組成。其中語法定義確定了文檔類型與文檔實例的語法結構;文檔類型定義確定了文檔實例的邏輯結構與元素類型;文檔實例包含文檔所有數據元素,它是SGML文檔的主體內容。SGML是與平台無關的結構化的可擴展的標記語言,SGML文檔包含一係列DTD(Docment Type Definition),在DTD中定義了各種不同標記含義,表明SGML語法的可擴展性。由於SGML具有較強的彈性、擴展性以及其他一些特性,使得編寫程序在Web瀏覽器中處理與顯示SGML信息非常困難,歐洲粒子實驗室研究人員於1989年開發了一個基於SGML的超文本標記語言簡化版本,這就是HTML(Hyper Text Markup Language),HTML作為SGML的一個子集,繼承了SGML的許多特點,但隻使用SGML中的很小一部分標記。為方便應用,HTML的標記都是固定的,不需包含DTD,因此HTML的語法是不可擴展的,這種固定了的語法結構使開發處理HTML的瀏覽器變得簡單易行,人們無須了解通用標記語法就可以使用所見即所得的網頁編輯軟件進行網頁創作,此後Web技術迅速普及,進入快速發展階段。

在網頁文件描述法推廣與應用的過程中,W3C發現現有的網頁標記語言HTML存在一些問題,HTML標簽的作用主要是告訴瀏覽器該以何種方式顯示這些內容,隨著HTML標簽越來越多,其顯示能力也越來越不夠,其語法結構不夠嚴謹;同時HTML在性能上也有問題,需要下載整份文件才能開始對文件做搜索;此外,隨著網頁標記數量和類型的不斷增加,HTML的擴充性、彈性、易讀性均有局限,比如, HTML僅注重文本的表現形式,如字體顏色、大小、類型等,而不考慮文本的具體內容與含義,HTML標簽不能揭示信息的語義。這些問題使得在HTML中查找信息非常困難,為了解決以上這些問題, W3C專家們使用SGML精簡製作,依照HTML的發展經驗,生成一套使用上規則嚴謹並且簡單的描述數據語言XML。XML是一種可擴展標記語言,跟超文本標記語言HTML類似,用於標記電子文件並使其具有結構性。1995年開始有XML雛形,1998年2月發布為W3C標準XML1.0。XML不是HTML的替代,而是HTML的補充,兩者是為不同的目的而設計的。HTML被設計用來顯示數據,其焦點是數據的外觀;而XML被設計用來傳輸和存儲數據,其焦點是數據的內容。XML是W3C的推薦標準,非常適合用於數據交換和文獻電子出版。也可以將XML描述為:XML是獨立於軟件和硬件的信息傳輸工具。XML簡介[EB\/OL].[20170719].http:\/\/www.w3school.com.cn\/xml\/xml_intro.asp.XML是SGML的一個子集,它具有80%的SGML功能,其複雜度隻有SGML的20%。XML的規模比SGML小,同時由於XML包含了可擴展鏈接語言XLL和可擴展樣式語言XSL,使得它與SGML相比,擴展了鏈接概念並可提供更多的樣式支持機製。與HTML相比,XML具有以下特點宋武.XML基礎教程與實驗指導[M].北京:清華大學出版社,2013:9—10.: 1) HTML不具有擴展性,而XML是元標識語言,具有可擴展性;2) HMTL 側重如何表現信息,而XML側重如何結構化描述信息;3) 在語法要求上,HTML不要求標記嵌套、配對等,不要求標識之間按一定順序,XML語法嚴格要求嵌套、配對並遵循DTD的樹形結構;4) 在可讀性方麵,相比HTML,XML結構清晰便於閱讀與維護;5) 在數據與顯示關係方麵, 相比HTML將內容描述與顯示方式整合一體,XML將內容描述與顯示方式相分離;6) 文件結構描述方麵,HTML不支持深層結構描述,XML描述文件結構嵌套可以複雜到任何程度;7) 與數據庫的關係方麵,HTML本身與數據庫沒有直接關係,XML與關係數據庫或層狀數據庫都可以實現對接與轉換;8) 在實現超級鏈接方麵,HTML實現單文件、書簽鏈接,XML可定義雙向鏈接、多目標鏈接以及擴展鏈接;9) 在保值性方麵,HTML不具有保值性,XML具有保值性;10) 在大小寫敏感性方麵,HTML不區分大小寫,而XML區分大小寫。由於XML繼承了SGML的元語言特征並具有上述優點,因此XML可以在Web信息組織方麵直接應用,也可成為文獻知識組織的應用語言。以下結合XML對楚辭文獻的知識組織,詳述XML的基本語法。

(2) XML基本語法

1) XML文檔內容結構

XML的文檔內容結構呈樹狀結構,它一般由兩部分組成,第一部分是XML文檔的序言;第二部分是XML文檔的元素(如圖33)。

圖33XML文檔結構

第一部分文檔序言區是XML文檔的起始部分,一般位於XML文檔頂端,根元素的前麵。序言部分包括XML聲明、XML處理指令、XML文檔類型定義、XML注釋四個部分。XML聲明包含了XML版本信息(version)、字符編碼信息(encoding)、文檔的獨立性信息(standalone)三個部分。賈素玲,王強.XML技術應用[M].北京:清華大學出版社,2007:15—16.完整的XML聲明表示如下:

〈?XML 版本信息(字符代碼信息)(文檔獨立性信息)?〉

關於XML版本,盡管XML1.1已經成為W3C推薦標準,但是由於大部分XML解析器還以XML1.0為標準,所以一般XML版本聲明還采用version1.0;字符代碼信息加了括號是可選的,如果XML序言聲明中沒有明確給出字符編碼屬性,XML解析器一般就默認XML文檔采用UTF8。字符編碼信息(encoding)常用的屬性值包括:UTF8、GB2312、ISO88591等。一個標準的XML聲明如下:

〈?xml version“1.0” encoding=GB2312 standalone=“yes”)?〉

這句聲明了該XML文檔采用版本為1.0的XML規範,操作係統平台處理的字符編碼采用GB2312,該XML文檔是獨立的,該宣言聲明了XML標記不存在於別的文件裏。

XML處理指令的作用是為XML解析器提供傳送給應用程序的信息,它是供計算機程序閱讀的文檔內容,應用程序根據XML處理指令進行相關的操作。XML處理指令的語法結構如下:

〈?目標程序名 指令?〉

XML處理指令以〈?開始,以?〉結束,目標程序名必須是合法的、符合命名規範的XML名稱,其中,用來指令傳遞給哪個應用程序的指令為一個字符串。例如以下的處理指令:

〈?xmlstylesheet type=“text\/css” href=“mystyle.css?〉

在這條處理指令中,目標程序名是xmlstylesheet,它是應用程序都可以識別的通用標識符;type=“text\/css”和href=“mystyle.css處理指令,它告訴應用程序IE瀏覽器所應用的樣式表類型為css,樣式表文件所在的路徑為mystyle.css。XMLstylesheet指令通常位於XML聲明與XML根元素的開始標記之間,屬於XML文檔的序言區域。

XML注釋的作用是在程序中引入一些用作解釋的文字,並要求XML處理器不對這些解釋進行任何處理,這種類型的文本就稱為注釋(DOCMMENT)文本,這些注釋文字也可增加文檔的可讀性。XML注釋的語法格式如下:

〈!--注釋文字--〉

這裏注釋語句是以“〈!--”開始,以“--〉”結束。例如:

〈?xml version“1.0” encoding=GB2312?〉

〈!--楚辭文獻注釋標注的注釋--〉

〈示例〉

要求標注題名、注釋作者、注釋出處

〈\/示例〉

在給XML加注釋的時候需要注意注釋內容不能包含字符“-”或者字符串“--”,注釋不能被嵌套,此外元素開始標記和結束標記不能被注釋掉。

2) XML文檔元素及其屬性

XML文檔裏除序言部分的XML聲明、處理指令、文檔類型定義和注釋以外的內容是XML文檔元素,這是XML文檔的主體,涵蓋了XML文檔的主要內容信息,具體包括XML元素名稱、元素標記、元素類型和元素的屬性。

元素的語法格式是:〈標記名〉文本信息〈\/標記名〉。

這裏元素的“標記名”是指該元素的名稱,XML元素名須遵守一些規範:元素名不能以XML開頭;元素名的開頭不能用數字或標點符號;元素名不能包含空格;對應數據庫的元素名一般需與數據庫字段名一致以便於數據轉換;盡管可以使用非英文字符命名XML元素,但為了與更多的軟件兼容,還是盡量使用英文字母命名元素。

起始標記是包含在尖括號裏的元素名,如〈book〉、〈author〉,結束標記由反斜杠+元素名組成,如〈\/book〉、〈\/author〉,結束標記與它前麵的起始標記必須對應。

XML有非空元素與空元素兩種類型,在開始標記與結束標記之間有數據信息內容的元素就是非空元素,元素的內容稱作元素的數據,這些內容可以是文本,同時還可以包含多個子元素。例如以下描述洪興祖《楚辭補注》的XML文檔:

〈?XML version“1.0” encoding=GB2312?〉

〈book〉

〈title〉楚辭補註〈\/title〉

〈author〉洪興祖〈\/author〉

〈press〉中華書局〈\/press〉

〈ISBN〉9787101024449〈\/ISBN〉

〈\/book〉

這裏的title、author、press、ISBN都是子元素而且都是非空元素,根元素book包含了4個子元素,也是非空元素。

XML空元素是在元素開始標記與結束標記之間沒有數據內容的元素,如〈book〉〈\/book〉。

也可以用〈book\/〉標記空元素的開始與結束。XML空元素有兩個作用,一是空元素可告訴XML的應用程序執行某個動作,如HR空元素告訴瀏覽器加入一行水平分界線,二是空元素可通過屬性存儲信息。如〈楚辭補注 作者=“洪興祖” 點校=“白化文” 出版社=“中華書局”\/ 〉。

XML文檔中的元素都是以嵌套形式存在,並以樹形結構組織起來的,XML文檔必須有一個並且是唯一的頂層元素稱作“根元素”,其他所有元素都被嵌套在根元素下麵,例如以下描述楚辭文獻的XML代碼:

〈?XML version“1.0” encoding=GB2312?〉

〈!—包含嵌套XML元素的楚辭XML文檔--〉

〈Literature of the Songs of Chu 〉

〈book〉

〈title〉楚辭集注〈\/title〉

〈author〉朱熹〈\/author〉

〈press〉上海古籍出版社〈\/press〉

〈topic〉楚辭注釋中國〈\/topic〉

〈\/book〉

〈book〉

〈title〉楚辭考論〈\/title〉

〈author〉周建忠〈\/author〉

〈press 〉商務印書館〈\/press〉

〈topic〉楚辭—文學研究〈\/topic〉

〈\/book〉

〈\/Literature of the Songs of Chu〉

上述XML文檔代碼中,Literature of the Songs of Chu是XML文檔根元素,book是其子元素,title、author、press、topic是book的子元素,形成描述楚辭注釋著作和楚辭研究著作的嵌套的層次關係。

XML元素的屬性是在XML元素的開始標記中用來描述該元素的特征的數值。XML非空元素屬性的基本語法格式如下:

〈開始標記 屬性名1=“屬性值” 屬性名2=“屬性值”…〉 數據內容〈\/結束標記〉

XML空元素屬性的基本語法格式如下:

〈空標記 屬性名1=“屬性值” 屬性名2=“屬性值”…\/〉

XML屬性都是以屬性名=屬性值的形式成對出現;XML屬性命名規則和標記名命名規則相同,同一名稱元素不允許設置多個同名屬性;XML的一個元素可以定義多個屬性且屬性之間用空格分開,XML的處理指令中也可以有屬性設置。例如:

〈book languge=“kor”〉?剼4?剚\"(離騷)?剹6 ?剼4?剢h〈\/book〉

上述代碼中在XML元素book中定義了屬性名為languge,屬性值為kor,標記了一本語種為韓語的楚辭書。

下例描述了同一個元素定義多個屬性:

〈book languge=“kor” author=“?匌

?勽?儊?” press=“新雅社”〉?剼4?剚\"(離騷)?剹6 ?剼4?剢h〈\/book〉

上述代碼定義了book元素的languge、author、press三個屬性及屬性值kor、?匌

?勽?儊?、新雅社。這種描述相當於根元素book包含三個子元素languge、author、press,描述如下:

〈book〉?剼4?剚\"(離騷)?剹6 ?剼4?剢h

〈languge〉kor〈\/languge〉

〈author〉?匌

?勽?儊?〈\/author〉

〈press〉新雅社〈\/press〉

〈\/book〉

XML元素值的定義須遵循以下規則,一是屬性值應使用雙引號或者半角的單引號括起來,如果屬性值本身含有單引號就必須用雙引號括起來,如果屬性值本身含有雙引號就必須用單引號括起來;二是屬性值字符串不能含有“〈”、“〉”、“&”等特殊符號,但可包含內部實體引用或者預先定義的特殊字符編碼。XML中有5個預定義的實體引用特殊字符可以分別代替文本中出現的&、〈、〉、雙引號、單引號,見表31。表31XML預定義實體引用Fawcett J, et al. XML入門經典(第5版)[M].北京:清華大學出版社,2013:29.

實體引用對應的特殊符號作用&&代替&符號<〈代替標記開始字符>〉代替標記結束字符\"“設置屬性值&apos‘設置屬性值例如:〈book〉

〈title〉<楚辭補註>〈\/title〉

〈author〉洪興祖〈\/author〉

〈\/book〉

在代碼〈title〉<楚辭補註>〈\/title〉中,以&l代替〈,以>代替〉,

顯示結果:〈title〉〈楚辭補註〉〈\/title〉。

XML支持雙音節編碼Unicode字符集,可以使用中文或者其他符合命名規範的文字命名元素的屬性。Unicode字符引用由字符“&#”、字符代碼與分號“;”組成。

在XML文檔中常使用的一種更高級的結構,其被稱作CDATA片段。這裏CDATA代表字符數據,表示它不需要被標記,它的作用是告訴XML解析器CDATA片段所包含的所有內容都應當作文字處理,並將這段文字原樣傳送到應用程序。CDATA片段以〈![CDATA[開始,以]]〉結束,在開始與結束之間可以輸入除“]] 〉”的任何字符數據。在CDATA中,任何字符都被當作純文本而不是XML標記、實體引用或元素屬性部分,可以在CDATA片段中使用任何通常需要轉義的字符,如“〉”、“〈” 等,如需表示CDATA節的結束符]]〉,可將其轉義為:]]>;。CDATA片段必須放在元素的內容中而不是XML標記中,在屬性值中也不能使用CDATA片段,使用CDATA片段需要注意三點:一是CDATA必須大寫;二是在CDATA節中不能出現]]〉,這表示CDATA節不能嵌套使用;三是CDATA節結束字符串“]]〉”的前麵不能有空格或換行符。例如我們創建一個XML文檔:chuci.xml,使用CDATA來引用文本,代碼如下:

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈chuci〉

〈book〉

〈title〉楚辭集注〈\/title〉

〈author〉朱熹〈\/author〉

〈press〉上海古籍出版社〈\/press〉

〈![CDATA[

一個CDATA片斷

〈topic〉楚辭注釋作品〈\/topic〉

]]〉

〈\/book〉

〈\/chuci〉

以上代碼在IE瀏覽器中顯示如圖34:圖34CDATA片段的使用

3) XML名稱空間

XML名稱空間區分不同的元素標記。兩個相同XML元素在不同XML文檔中含義不一樣,如〈name〉標記在表示圖書的XML文檔中可以既表示書名含義,也可以表示作者名含義,這種情況下就可以使用名稱空間來解決命名衝突。XML名稱空間處理XML元素與屬性的方式是將不同含義的名稱歸入各自名稱空間之下,使應用軟件能夠區分不同名稱空間下的同名元素的不同含義。XML名稱空間使用的語法格式如下:

〈標記名 xmlns:標識符=“URI”〉

以上代碼中,標記名是用戶要定義名稱空間的XML元素標記名,xmlns是定義名稱空間的專用標記,標識符是用戶定義的名稱空間的標識名稱,這裏使用“URI”統一資源標識符表示該名稱空間的元素在Web文檔中歸屬文檔URL或者URN。當名稱空間定義好以後,XML解析器就會將名稱空間中的標識符與其對應的URI綁定,這樣就可以區分相同背景之下的不同名稱空間的同名元素的不同含義。例如我們創建一個XML文檔——chucinamespace1.xml,分別定義兩個名稱空間以區別同名的NAME元素,代碼如下:

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈Chuci xmlns:books=\"http:\/\/chuciyj.ntu.edu.cn\" xmlns:person=\"http:\/\/ccyjzx.ntu.edu.cn\"〉

〈book〉

〈books:NAME〉楚辭集注〈\/books:NAME〉

〈person:NAME〉朱熹〈\/person:NAME〉

〈press〉上海古籍出版社〈\/press〉

〈topic〉楚辭注釋中國〈\/topic〉

〈\/book〉

〈\/Chuci〉

上述XML代碼中,分別定義了兩個名稱空間以區分同名的NAME元素,在根元素chuci起始標記中定義了books與person兩個標識符,它們分別表示楚辭注釋書的名稱空間和楚辭作者的名稱空間。這使得應用程序可以區分NAME同名元素的不同含義。我們利用IE瀏覽器打開該文檔,顯示如圖35:

圖35XML名稱空間的使用

XML文檔中不僅元素可以加名稱空間標識,屬性也可添加名稱空間標識符。如在上述實例中,我們可以為book元素的NAME屬性添加名稱空間標識代碼如下:

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈Chuci xmlns:books=\"http:\/\/chuciyj.ntu.edu.cn\"

xmlns:person=\"http:\/\/ccyjzx.ntu.edu.cn\"〉

〈book books:NAME=\"楚辭集注\"〉

〈person:NAME〉朱熹〈\/person:NAME〉

〈press〉上海古籍出版社〈\/press〉

〈topic〉楚辭注釋中國〈\/topic〉

〈\/book〉

〈\/Chuci〉

以上XML代碼中,在book元素的NAME屬性中添加了一個名稱空間標識“books”。

XML文檔中如果每個元素都加名稱空間標識符,會使一個大的XML文檔裏包含非常多的不同的名稱空間,這會增加文檔複雜度,可以通過定義默認名稱空間來解決這個問題。默認名稱空間的語法格式是:〈\/標記名稱 xmlns=\"URI\"〉。

在根元素或某一個元素標記中定義的名稱空間就被規定作為該元素的默認名稱空間,它的作用域包含這個元素及其所有的子元素。例如在上述實例中給根元素定義名稱空間,同時定義了一個標識符為person的名稱空間如下:

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈Chuci xmlns=\"http:\/\/chuciyj.ntu.edu.cn\"

xmlns:person=\"http:\/\/ccyjzx.ntu.edu.cn\"〉

〈book〉

〈NAME〉楚辭集注〈\/NAME〉

〈person:NAME〉朱熹〈\/person:NAME〉

〈press〉上海古籍出版社〈\/press〉

〈topic〉楚辭—注釋—中國〈\/topic〉

〈\/book〉

〈\/Chuci〉

上述XML代碼中,我們給根元素Chuci定義了默認名稱空間,對於根元素Chuci和其他未加名稱空間標識符的子元素都屬於這個默認的名稱空間,隻有標記《楚辭集注》作者的NAME元素屬於指定的標識符為person的名稱空間。將這段XML代碼保存文件chucinamespace2.xml,通過IE瀏覽器打開該文檔顯示如圖36:圖36XML默認名稱空間的使用

在XML文檔中可使用元素的特殊屬性xml:space來通知應用程序保留該元素的空白。xml:space屬性應被聲明為枚舉類型,其屬性值必須是default或preserve。其中default表示對該元素應用程序默認空白處理模式,preserve指令應用程序保留所有的空白。

4) 文檔類型定義——DTD

文檔類型定義簡稱DTD,英文全稱是Document Type Definition。DTD是一套為了進行程序間的數據交換而建立的關於標記符的語法規則,它是XML1.0版規格的一部分,XML文檔可根據某種DTD語法規則驗證其格式是否符合此規則。DTD提供了一種進一步理解XML文檔及其結構的方法。DTD的主要作用具體表現在以下四個方麵:一是DTD可以確切指定文檔結構的一係列規則並列出用在文檔中的元素、屬性、實例等以及它們之間可能產生的各種關聯,這些規則在DTD聲明中定義;二是DTD可檢驗XML文檔的有效性,檢驗XML文檔有效性的程序通過讀取DTD以確定XML文檔是否遵循了DTD規則,如遵循則該文檔是有效XML文檔,反之則無效;三是不同的XML文檔可共享常用DTD,這樣就將確保不同開發人員與應用程序可以互相讀取XML文檔;四是DTD能夠和在它所描述的文檔中的URL或和外部URL相鏈接,此外文檔類型定義將不同的樣式和格式加在XML基本結構上,這樣可以使用戶不需要查看實際數據就可以看到這些文檔的結構。

DTD定義包含了XML文檔所需使用的元素、元素之間的關係、元素可用的屬性、可用實體等規則內容,這些內容包含在關於DTD的元素、屬性、實體等定義的一係列規則的聲明的集合中,DTD聲明及其語法內容邏輯結構如圖37。

圖37DTD結構

DTD開始聲明包含在XML文檔開始部分的序言中,具體內容包括DTD開始語句聲明、元素類型聲明、屬性列表聲明、實體聲明等。DTD開始聲明必須以“〈!DOCTYPE”語句開始,全部的DTD聲明都必須包括在以此開頭,以“]〉”結束的語句段中,“〈!DOCTYPE”語句還指定了XML根元素的名稱。元素類型的聲明是以“〈!ELEMENT”開始的語句,它定義了XML文檔中的元素名稱、元素的數據類型、元素的子元素等內容。屬性列表聲明是以“〈!ATTLIST”開始的語句,它定義了包含在元素中的屬性名、屬性的數據類型及其屬性默認值。實體聲明是以“〈!ENTITY”開始的實體聲明語句,它的作用是存儲常用文字區塊或將非XML數據包括在文檔之中,此外DTD聲明還可包括注釋語句。

DTD元素聲明內容包含元素聲明、元素類型和元素限定符。DTD描述的基本內容是元素與屬性,通過元素與屬性描述就確定了XML文檔的邏輯結構,通過元素描述文檔的數據對象,通過屬性描述該對象的特性,一個元素可以有多個不同類型子元素,但根元素必須隻有一個。

在使用元素前必須對元素的類型進行聲明,DTD中的元素類型聲明使用ELEMENT標記,其語法格式是:〈!ELEMENT 元素名 元素內容〉 。其中元素內容跟在元素名後麵用來指定元素內容類型,元素類型具體包括EMPTY、子元素類型、#PCDATA、ANY類型、混合類型等五種類型。EMPTY類型是聲明空元素,其語法格式如下:〈!ELEMENT 元素名 EMPTY〉。子元素類型聲明用於指定元素包含的子元素及其順序,其語法格式如下:〈!ELEMENT 元素名(子元素列表)〉,子元素內容的順序結構有兩種:

一是序列結構,其語法格式如下:〈!ELEMENT 元素名(子元素1,子元素2,子元素3…)〉,其中子元素出現的次數可以通過在子元素列表中為每個子元素添加元素限定符號來限定次數,若沒有限定符號則該子元素隻能出現一次,例如:〈!ELEMENT 讀者(證件號碼,姓名,借閱權限)〉,這段聲明指定了元素“讀者”必須包含證件號碼、姓名、借閱權限三個子元素,子元素隻能出現一次並且必須按指定順序出現。

二是選擇結構,其語法格式如下:〈!ELEMENT 元素名(子元素1|子元素2|子元素3…)〉,該結構適用於子元素多選一的情況,例如:〈!ELEMENT 讀者(手機號|QQ號|微信號…)〉,這裏指定了讀者元素包含了手機號、QQ號、微信號三個子元素,可以選擇其一。#PCDATA類型表示標記的內容是可解析的文本,同時使用#PCDATA聲明元素不能包含子元素。

#PCDATA聲明的語法格式是:〈!ELEMENT 元素名(#PCDATA)〉,例如〈!ELEMENT楚辭書目(#PCDATA)〉聲明了楚辭書目元素包含非標記文本的字符數據並且不能包含它的子元素。ANY類型表示在它聲明的該文檔中可以包含DTD定義的任意元素或者已編譯的字符包括PCDATA、元素等,元素內容為ANY的元素可為空元素,ANY聲明的語法格式是:〈!ELEMENT 元素名(ANY)〉,例如〈!ELEMENT 楚辭(ANY)〉聲明了根元素楚辭,它可以包含任何標記。

混合類型表示元素可以同時包含子元素與編譯好的文本數據,它的語法格式是:〈!ELEMENT 元素名(#PCDATA|子元素1|子元素2|子元素3…)*〉。例如〈!ELEMENT 楚辭書目(#PCDATA|書名|著者|出版社|出版時間|館藏)*〉。在DTD中常用元素限定符規定子元素出現的次數和順序。

常用的元素限定符有六個:第1個限定符是括號“()”,它的作用是給元素分組;第2個限定符是“|”,它的作用是在列出的元素中選擇一個;第3個限定符是加號“+”,它的作用是限定列出的元素最少出現一次,也可以出現多次;第4個限定符是星號“*”,它的作用是對列出的元素允許出現0次到任意次數;第5個限定符是問號“?”,它的作用是限定列出的元素可以出現也可以不出現,但隻能出現1次(0到1次);第六個限定符是逗號“,”,它的作用是限定列出的元素必須按照指定順序出現。以下一段代碼是在XML內部進行元素聲明的實例:

〈?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"yes\"?〉

〈!--DTD定義--〉

〈!DOCTYPE 楚辭文獻係列[

〈!--元素定義--〉

〈!ELEMENT 楚辭文獻係列(楚辭作品*)〉

〈!ELEMENT 楚辭作品(作品名,ISBN?,著者+,出版社,出版時間)〉

〈!ELEMENT作品名(#PCDATA)〉

〈!ELEMENTISBN(#PCDATA)〉

〈!ELEMENT 著者(#PCDATA)〉

〈!ELEMENT 出版社(#PCDATA)〉

〈!ELEMENT 出版時間(#PCDATA)〉

]〉

〈!--內容定義--〉

〈楚辭文獻係列〉

〈楚辭作品〉

〈作品名〉楚辭校釋〈\/作品名〉

〈ISBN〉9787101102758〈\/ISBN〉

〈著者〉王泗原〈\/著者〉

〈出版社〉中華書局〈\/出版社〉

〈出版時間〉2014〈\/出版時間〉

〈\/楚辭作品〉

〈楚辭作品〉

〈作品名〉楚辭韻譜〈\/作品名〉

〈著者〉徐泉聲〈\/著者〉

〈出版社〉弘道文化事業有限公司〈\/出版社〉

〈出版時間〉1974〈\/出版時間〉

〈\/楚辭作品〉

〈\/楚辭文獻係列〉

以上代碼中,首先通過DTD開始聲明定義了XML文檔的根元素是“楚辭文獻係列”,在此根元素之下包含0到多個“楚辭作品”元素,“楚辭作品”元素包含“作品名”、“ISBN”、“著者”、“出版社”、“出版時間”等5個子元素,元素“ISBN”後麵加“?”表示該元素可以出現也可以不出現,“著者”元素後麵的“+”表示著者至少是一個,也可以是多個著者,“內容定義”部分標記了兩本楚辭作品:《楚辭校釋》和《楚辭韻譜》,XML文檔分別標記了兩本“楚辭作品”的子元素:作品名、ISBN、著者、出版社、出版時間,其中第二本《楚辭韻譜》沒有ISBN。

一個有效的XML文檔必須在DTD中明確聲明元素的屬性,具體包括設定元素的各個屬性與名稱、設定屬性的數據類型、設定屬性是否是必需的或者是否具有固定值或設定默認值。DTD屬性聲明的語法格式是:

〈!ATTLIST Element_name Attribute_name TYPE [added_declare]

Attribute_name TYPE [added_declare]

……

以上聲明代碼中,ATTLIST是屬性聲明的關鍵字,後麵跟相應的元素名,在後麵兩行Attribute_name TYPE [added+declare]是屬性列表,每個屬性由屬性名(Element_name)、屬性類型(Attribute_name TYPE)、屬性值附加聲明(added_declare)3個部分組成。屬性名必須與XML文檔中所使用的屬性名完全相同,包括名稱空間前綴。屬性類型有10種,這些屬性類型具體取值說明見表32。表32DTD屬性類型

屬性類型取值說明CDATA表示屬性值是字符型數據,說明該屬性的取值可以是任意的字符串,是限製最少、最自由的屬性(與PCDATA不同的是解析CDATA時忽略一些保留字)。IDID是用來唯一標識包含它的元素的屬性值,它是以字母開頭,由字母、數字、短直線和句號組成的字符串,一個元素隻能有唯一一個ID類型屬性。IDREFIDREF類型屬性的取值必須與當前XML文檔中某個元素的屬性的取值相同,以利用其他元素的ID屬性找到其他元素並與之交互。IDREFSIDREFS可以包含一個或者多個其他XML元素的ID屬性,從而起到引用所有這些元素的作用,當IDREFS屬性包含一個以上的ID,這些取值之間用空格分隔。ENTITYENTITY類型屬性的取值必須是當前XML文檔中某個外部不可解析的實體的名字,如圖片文件、音視頻文件或其他二進製文件。ENTITIESENTITIES屬性取值可以包含多個非解析的外部實體名,其間使用空格分隔。NMTOKENNMTOKEN屬性取值隻能包括字母、數字、句號、短橫線、下劃線、句號,而不能包含任何其他種類的字符,例如不能包含空格。NMTOKENSNMTOKENS屬性取值可取多個NMTOKEN類型屬性值,其間使用空格分隔。NOTATIONNOTATION屬性取值是在DTD中聲明過的注解名稱(聲明使用什麼軟件解讀二進製文件如圖片文件、視頻文件等)。Enumerated

(枚舉)直接列出當前屬性的所有可能取值,這些具體的屬性值用圓括號括成一組,各屬性之間使用豎線分隔,各屬性本身不需要引號括起,隻能從中選定一個屬性值。在DTD中,屬性值附加聲明(added_declare)的作用是聲明了該屬性是必須的還是可選的、是預設的固定屬性值還是當屬性值缺省時的默認值。DTD中的屬性值附加聲明主要有以下4種,第1種附加聲明是#REQUIRED,某個元素的屬性附加聲明中使用#REQUIRED說明每當具有該屬性的元素在相應的XML文檔中出現時,這個屬性是必需的並且必須給出一個具體的屬性值,也就是說該屬性的取值在任何情況下不能為空。例如根據屬性類型聲明〈!ATTLIST楚辭文獻 類型 CDATA #REQUIRED〉,在相應的XML文檔中以下“楚辭文獻”元素是有效的:〈楚辭文獻 類型=\"注釋著作\"〉楚辭補注〈\/楚辭文獻〉;而在相應的XML文檔中直接寫成:〈楚辭文獻〉楚辭補注〈\/楚辭文獻〉,則“楚辭文獻”是無效的。第2種附加聲明是#IMPLIED,在某元素附加中使用#IMPLIIED說明在相應的XML文檔中,該元素可有具體屬性值,也可為空,例如根據屬性類型聲明〈!ATTLIST 楚辭文獻 類型 CDATA # IMPLIED〉,上例中的“楚辭文獻”元素都是有效的。第3種附加聲明是#FIXED,它表示在XML文檔中該附加聲明元素的屬性值是所給定的固定值,不能更改,如果在包含它的元素的實例中沒有出現該屬性值,元素就自動取該固定值為屬性值。#FIXED聲明的語法格式是:#FIXED AttValue。其中AttValue是用引號括起來的字符串,代表預先固定的屬性值。例如,在以下聲明中——〈!ATTLIST 楚辭文獻 類型 CDATA #FIXED \"注釋著作\"〉,表示“楚辭文獻”元素的類型屬性固定值是“注釋著作”。第4種附加聲明是默認屬性值Default_Value, Default_Value是用引號括起來的字符串,表示預設的默認屬性值。例如:〈!ATTLIST 楚辭文獻 類型 CDATA \"注釋著作\"〉。以上語句聲明了“楚辭文獻”的類型的默認屬性值是字符串\"注釋著作\"。

XML實體機製允許將不同類型數據歸到XML中,實體是存儲的符合一定規則的XML文檔片段的單元,也可以認為XML實體是符合一定規則的一段代碼或者數據。比如在XML中使用5個預定義的實體引用特殊字符“&;”、“<;”、“>;” 、“&apos;”、“\"e;”可以分別代替文本中出現的&、〈、〉、雙引號、單引號。在XML文檔中,實體根據其所處位置分為內部實體與外部實體,其中內部實體是在XNL文檔內部引用的實體,外部實體是在XML文檔外部定義的通過URL來引用的實體,同時XML實體還可分為一般實體與參數實體,其中前者是DTD中定義的可在XML文檔中使用的實體,後者是在DTD中定義隻能在DTD內部使用的實體。XML實體聲明是在DTD的聲明中進行的。

內部一般實體是指在XML文檔內部定義的可以在XML文檔中使用的實體,通常是一段代碼的縮寫,其定義語法格式是:〈!ENTITY實體名 \"實體內容\"〉。引用語法格式是:&實體名。例如以下是一段內部一般實體的聲明代碼:

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈!—內部實體聲明--〉

〈!DOCTYPE 楚辭作品[

〈!ELEMENT 楚辭作品(作品名,ISBN,著者,出版社,出版時間)〉

〈!ELEMENT 作品名(#PCDATA)〉

〈!ELEMENT ISBN\"9787101102758\"〉

〈!ELEMENT 出版時間\"2014\"〉

]〉

〈楚辭作品〉

〈作品名〉楚辭校釋〈\/作品名〉

〈ISBN〉&ISBN;〈\/ISBN〉

〈出版時間〉&出版時間;〈\/出版時間〉

〈\/楚辭作品〉

這段代碼表示在XML文檔中,“&ISBN;”和“&出版時間;”被預先定義的字符串值“9787101102758”和“2014”所替代。內部引用需要注意兩點,一是DTD內部一般實體引用隻能用於另外一個實體的定義中,不能用於元素的聲明中;二是內部一般實體無須先定義後引用,在某個實體定義中如果引用另外一個實體,必須避免重複引用出現死循環。

外部一般實體是指實體在XML文檔外部定義之後,通過URL在文檔內部進行引用。其定義語法格式是:〈!ENTITY實體名 SYSTEM\"被引用實體的URL\"〉,引用語法格式是:&實體名。例如在上麵的實例中加入一段〈!ELEMENT content SYSTEM \"context.txt\"〉代碼的外部引用:

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈!—內部實體聲明--〉

〈!DOCTYPE 楚辭作品[

〈!ELEMENT 楚辭作品(作品名,ISBN,著者,出版社,出版時間)〉

〈!ELEMENT 作品名(#PCDATA)〉

〈!ELEMENT ISBN\"9787101102758\"〉

〈!ELEMENT 出版時間\"2014\"〉

〈!ELEMENT content SYSTEM\"context.txt\"〉

]〉

其中Content.txt文件代碼如下:

〈楚辭作品〉

〈作品名〉楚辭校釋〈\/作品名〉

〈ISBN〉&ISBN;〈\/ISBN〉

〈出版時間〉&出版時間;〈\/出版時間〉

〈\/楚辭作品〉

這裏的“〈!ELEMENT content SYSTEM\"context.txt\"〉”就是外部一般實體的聲明。

內部參數實體是指在外部DTD中定義且隻能在DTD中引用的實體,這種實體不能在XML文檔的基本元素中使用,隻能在外部DTD中被定義後,才能在DTD中被引用。其定義語法格式是:

〈!ENTITY%實體名\"實體內容\"〉,其引用的語法格式是:%實體名;

外部參數實體是指在文檔外部定義了的並且隻能DTD中引用的實體。這種機製可將很長的DTD文檔轉化為一個個很小的可以調用的文檔集合。外部參數實體既可以在內部DTD中聲明也可以在外部DTD中聲明。其定義語法格式是:〈!ENTITY%實體名 \"外部實體的URL\"〉。其引用語法格式是:%實體名。

需要注意的是引用一個外部DTD,必須將XML聲明部分修改如下:

〈?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"no\"?〉;

此外還應添加文檔類型聲明以表示一個外部DTD,其中引用未公開的私有DTD語法格式是:

〈!DOCTYPE 根元素名 SYSTEM DTD_URL〉;

引用公開的公有DTD的語法格式是:

〈!DOCTYPE 根元素名 PUBLIC DTD_name DTD_URL〉。

在上述兩種外部DTD引用格式中,SYSTEM指定外部DTD文件是私有的,PUBLIC指定外部DTD文件是公用的,關鍵字SYSTEM與PUBLIC必須大寫;DTD_name指明DTD文件的邏輯名稱,它需要用引號括起來;DTD_URL指明外部DTD文件的存放位置,它也需要用引號括起來。例如:

〈?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"no\"?〉

〈!DOCTYPE 楚辭作品 SYSTEM \"http:\/\/chuciyj.ntu.edu.cn\/chuci.dta\"〉

〈楚辭作品〉

〈題名〉楚辭韻譜〈\/題名〉

〈著者〉徐泉聲〈\/著者〉

〈\/楚辭作品〉

以上這段代碼描述了根元素是“楚辭作品”的外部DTD文件引用,其中DTD文件chuci.dta是創建在楚辭研究網站http:\/\/chuciyj.ntu.edu.cn\/中的私有外部DTD文件引用。

(3) XML Schema

XML Schema又稱XML模式,它是在DTD後出現的描述與規範XML文檔的XML標準模式, XML Schema有Microsoft XML Schema與W3C XML Schema兩種模式,其定義的XML文檔結構相同,本章介紹W3C的XML Schema規範。W3C於2001年5月推出XML Schema,經過多年的開發與應用,已經成為公認的XML建模工具標準。XML Schema解決了DTD存在的問題,比如對於正則表達式的描述能力不夠、沒有數據類型支持、描述的約束能力不足、結構化程度不高、構建與訪問缺少標準編程接口等。首先,XML Schema直接使用XML語言將DTD重新定義,它使用XML語法定義文檔,使XML文檔與模式定義實現了從內容到形式的統一;其次,Schema定義數據類型比DTD更加豐富,不僅支持DTD的10種數據類型還支持整數、浮點數、日期類型、字符類型、URL等37種數據類型,同時還可以創建新的數據類型;再次,XML Schema利用元素的內容與屬性定義XML的整體結構,這種描述機製基於XML語法,相比DTD機製更加規範;最後,由於XML Schema文檔具有較好的結構形式,更易於DOM和SAX的訪問處理,同時通過映射實現不同XML Schema轉換與更高層次數據交換。以下就從XML Schema元素聲明、XML Schema數據類型、XML Schema名稱空間等幾個方麵介紹XML Schema基本語法,最後將利用XML SPY構建楚辭文獻語義描述XML模型。

1) XML Schema根元素〈Schema〉聲明

XML Schema 的用途是合法定義和構建XML文檔的模塊,XML文檔都是由元素、屬性、名稱空間定義以及XML文檔中其他節點組成的模塊,其中必須包含Schema根元素、XML模式名稱空間定義、元素定義等。XML Schema的構建結構首先從根元素〈Schema〉聲明開始。XML Schema定義的過程就是聲明元素的過程,XML Schema文檔開始必須聲明唯一的根元素名為“Schema”,它必須位於http:\/\/www.w3.org\/2001XMLSchema這個名稱空間中,該名稱空間一般必須使用“xsd”或“xs”為前綴,它不但指明了該文檔為XML Schema文檔,同時還表示了XML Schema名稱空間信息。〈Schema〉元素是XML Schema詞彙之一,它對大小寫敏感,因此其名稱空間應區分大小寫。在〈Schema〉元素中,我們聲明名稱空間信息以及文檔中聲明的默認值,還可以插入描述版本的version屬性以幫助處理器識別XML Schema詞彙的版本,其格式如下:

〈schema targetNamespace= \"URI\"

attributeFormDefault=\"qualified or unqualified\"

elementFormDefault=\"qualified or unqualified\"

version=\"version number\"〉

XML Schema根元素〈Schema〉聲明名稱空間格式如下:

〈xs:schema xmlns:xs=\"http:\/\/www.w3.org\/2001XMLSchema\"〉

這段聲明代碼中的xsd:schema聲明了schema是文檔根元素,xmlns是聲明名稱空間的關鍵字,名稱空間值http:\/\/www.w3.org\/2001XMLSchema被映射到前綴xs,表明此文檔後麵語句中都可以使用前綴xs來表示該名稱空間。

XML Schema聲明詞彙是由targetNamespace屬性裏指定的目標名稱空間來標識的,在聲明一個targetNamespace屬性的時候,必須插入一個與之相匹配的名稱空間聲明。以下是一個包含目標名稱聲明:

〈xs:schema xmlns:xs=\"http:\/\/www.w3.org\/2001XMLSchema\"〉

targetNamespace=\"http:\/\/www.example.com\/name\"〉

xmlns:xs=\"http:\/\/www.example.com\/name\"

在XML Schema實例文檔內部,元素與屬性可以限定,也可以不限定。假如一個元素或者屬性關聯到名稱空間,我們說它們是受限定的,反之則說它們是非限定的。在〈Schema〉元素中利用elementFormDefault和attributeFormDefault屬性指定了元素的限定方式,因此可修改元素的默認值,利用這兩個屬性我們可以控製實例文檔裏元素與屬性的默認限定值,大多數情況其默認限定值是非限定的(unqualified),但有些元素必須受限,比如實例文檔中全局元素聲明必須在實例文檔中受限。

2) XML Schema的〈element〉元素聲明

Schema根元素下的第一個子元素是element元素,element元素聲明的語法格式如下:

〈element abstract|block|default|final|form|id|maxOccurs|minOccurs|name|nillable|ref|substitutionGroup|type〉

〈annotation|simleType|complexType|unique|key|keyref〉……

〈\/element〉

element元素及常用子元素具體的屬性功能見表33。表33element元素及常用子元素的屬性宋武.XML基礎教程與實驗指導[M].北京:清華大學出版社,2013:114.

元素屬性名稱子屬性名稱屬性功能說明abstract說明元素能否在實例文檔中使用,如果值為true,則實例中不能出現該元素。block派生的類型,防止具有指定派生類型的元素替代該元素。id規定該元素的唯一ID。final設置element元素的屬性final屬性默認值。default為元素規定默認值(僅當元素是簡單類型或textOnly 時)。fixed為元素規定默認值(僅當元素是簡單類型或textOnly 時)。maxOccurs規定element元素在父元素中可出現的最大次數,如果不限定次數就需要使用字符串“unbouned”,默認值為1。minOccurs規定element元素在父元素中可出現的最小次數,默認值為1,若父元素是schema元素,則不能使用該屬性。name推定元素的名稱。nillable說明是否可以將零值分配給該元素,默認值為false。refRef是對另一元素的引用,其屬性可包含一個名稱空間前綴。type規定simpleType與complexType類型元素的名稱。form說明該元素的形式,其默認值是包含該元素的schema元素的elementFormDefault屬性的值。substutionGroup可用來代替該元素的名稱,該元素必須具有相同的類型或者是從指定的元素類型派生的類型。annotation定義批注。simpleType定義一個簡單類型,確定與具有純文本內容的屬性或者元素的值有關的信息及其約束。complexType定義一個複雜類型,確定屬性集與元素內容。unique指定屬性或者元素值在指定範圍內必須唯一或者為零。key指定屬性或者元素值(或一組值)必須是指定範圍內的鍵,鍵的範圍是實例文檔中包含的element,其數據在指定範圍內應該是始終存在的唯一的並且不為零的。keyref指定屬性或元素值與指定的key或unique的值對應。在XML Schema的架構中,有全局與局部兩種聲明元素的方式,在根元素〈schema〉下的元素聲明必須具有“name”屬性,表示它聲明的元素是全局元素;而出現在其他位置的元素聲明都被稱作局部元素聲明。XML Schema中的局部元素聲明可以使用“ref”屬性引用文檔中已聲明的全局元素以表示此局部元素與其被引用的全局元素有相同的結構。同時“ref”屬性還表示局部元素的名稱,這樣在局部元素中就不能再出現“name”屬性。以下實例聲明了兩個全局元素:

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈xs:schema xmlns:xs=\"http:\/\/www.w3.org\/2001XMLSchema\"element FormDfault=\"qualified\" attibutedFormDefault=\"unqualified\"〉

〈xs:element name=\"楚辭\"〉

〈xs:complexType〉

〈xs:choice maxOccurs=\"unbouned\"〉

〈!--引用全局元素\"楚辭作品\"--〉

〈xs:element ref=\"楚辭作品\"〉

〈xs:\/choice〉

〈xs:\/complexType〉

〈xs:\/element〉

〈xs:element name=\"楚辭作品\"〉

〈xs:complexType〉

〈xs:sequence〉

〈xs:element name=\"楚辭注釋作品\" type=\"xs:string\"\/〉

〈xs:\/sequence〉

〈xs:\/complexType〉

〈xs:\/element〉

〈xs:\/schema〉

在上述代碼中聲明了兩個全局元素“楚辭”與“楚辭作品”,其中“楚辭作品”元素可以包含“楚辭注釋作品”元素,這樣“楚辭”元素中出現的局部元素“楚辭作品”也可以包含“楚辭注釋作品”元素。符合上述XML Schema架構定義的XML文檔格式如下:

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈楚辭〉

〈楚辭作品〉

〈楚辭注釋作品〉楚辭補註〈\/楚辭注釋作品〉

〈\/楚辭作品〉

〈楚辭作品〉

〈楚辭注釋作品〉楚辭譯注〈\/楚辭注釋作品〉

〈\/楚辭作品〉

〈\/楚辭〉

當XML Schema架構包含多個全局元素聲明的時候,每個全局元素都可成為實例文檔的根元素,例如以下實例:

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈xs:schema xmlns:xs=\"http:\/\/www.w3.org\/2001XMLSchema\"element FormDfault= \"qualified\" attibutedFormDefault=\"unqualified\"〉

〈xs:element name=\"楚辭作品\"〉

〈xs:annotation〉

〈xs:documentation〉聲明可作為根元素的\"楚辭作品\"元素〉〈\/xs:documentation〉

〈\/xs:annotation〉

〈xs:complexType〉

〈xs:sequence〉

〈xs: element name=\"楚辭注釋著作\"〉

〈xs: element name=\"楚辭研究著作\"〉

〈\/xs:sequence〉

〈\/xs:complexType〉

〈\/xs:element〉

〈xs:element name=\"楚辭論文\"〉

〈xs:annotation〉

〈xs:documentation〉聲明可作為根元素的\"楚辭論文\"元素〉〈\/xs:documentation〉

〈\/xs:annotation〉

〈xs:complexType〉

〈xs:sequence〉

〈xs:element ref=\"楚辭著作\"\/〉

〈\/xs:sequence〉

〈\/xs:complexType〉

〈\/xs:element〉

〈\/xs:schema〉

在上述實例中包含了“楚辭作品”和“楚辭論文”兩個全局元素聲明,這樣在後麵的實例文檔中使用“楚辭作品”和“楚辭論文”都將有效。

在XML Schema架構中如果要表示“element”元素包含子元素,不能直接使用“element”元素去直接嵌套另外一個“element”元素,而應該使用定義元素的複雜類型“complexType”。例如以下代碼嵌套表示element元素“楚辭網頁”的兩個子元素的方法是不正確的:

〈xs:element name=\"楚辭網頁\"〉

〈xs:element name=\"head\"\/〉

〈xs:element name=\"body\" type=\"bodyType\"\/〉

〈xs:complexType〉

〈\/xs:element〉

在上述代碼中表示element 元素“楚辭網頁”包含子元素必須使用複雜類型“complexType”元素表示,“complexType”定義了“element” 元素“楚辭網頁”具有複雜類型,可以包含子元素、屬性等內容,可以利用“complexType”定義將上述代碼改寫為正確的表示方式。

〈xs:element name=\"楚辭網頁\"〉

〈xs:complexType〉

〈xs:sequence〉

〈xs:element name=\"head\"\/〉

〈xs:element name=\"body\" type=\"bodyType\"\/〉

〈\/xs:sequence〉

〈\/xs:complexType〉

〈\/xs:element〉

“complexType”類型定義中的元素順序關係表示有兩種結構:“sequence”與“choice”。第一種是“sequence”,它表示一個序列組,定義了一係列按順序出現的內容,例如在上述實例中“element” 元素“楚辭網頁”聲明中使用“sequence”關係定義了它的兩個子元素“head”和“body”,這兩個元素必須按架構的先後順序作為“楚辭網頁”元素的子元素出現。第二種結構是“choice”,它表示一個選擇組,在選擇組中的內容可以不按照指定順序出現。在XML Schema架構中還有一種子元素關係“all”,它表示所有子元素都必須在父元素中出現,〈all〉聲明允許元素可以以任意順序出現且每個子元素出現0或1次,XML Schema對〈all〉聲明的使用限製必須遵循3個規則,一是〈all〉聲明必須是〈complexType〉定義的唯一內容模型聲明並且它本身也是〈complexType〉聲明的子聲明;二是〈all〉聲明不允許包含如〈choice〉、〈sepuence〉、〈group〉等聲明,隻允許包含〈element〉聲明作其子聲明;三是〈all〉聲明裏minOccurs與maxOccurs屬性值被限定為0和1,每個元素隻能在實例中出現一次。

XML Schema架構的文檔類型分為兩種,一種是複雜類型(complexType),另一種是簡單類型(simpleType)。複雜類型(complexType)又分為兩類,一類是具有“name”屬性的複雜類型,又被稱為“Named complexType”具名複雜類型,它隻能出現在“schema”元素下;另一類是不具有“name”屬性的複雜類型,又被稱為“Anonymous complexType”匿名複雜類型,它出現在元素聲明或者其他複雜類型之內。例如以下代碼:

〈xs:complexType name=\"bodyType\" mixed=\"true\"〉

〈!--使用\"name\"屬性的具名複雜類型(Named complexType)--〉

〈xs:choice maxOccurs=\"unbounded\"〉

〈xs:element name=\"head\"\/〉

〈xs:element name=\"input\"〉

〈xs:complexType〉

〈!—不包含\"name\"屬性的匿名複雜類型(Named complexType)--〉

〈xs:attribute name=\"type\" type=\"inputType\" use=\"required\"\/〉

〈xs:attribute name=\"value\" type=\"xs:string\"\/〉

〈\/xs:complexType〉

〈\/xs:element〉

〈\/xs:choice〉

〈\/xs:complexType〉

以上代碼中的元素“complexType”就是一個具名的複雜類型,它的名稱是“bodyType”, “bodyType”類型可以在前麵的代碼中的〈xs:element name=\"body\" type=\"bodyType\"〉元素以“type”屬性引用,“body”就具有與“bodyType”類型相同的結構。

上述代碼中出現在“input”元素聲明中的“complexType”元素是一個匿名複雜類型,它包含兩個屬性聲明,表示“input”元素可以有“type”與“value”兩個屬性,這裏由於沒有使用“name”屬性表示類型名稱,它就不能被引用。如果一個元素具有屬性同時又包含子元素,可以使用一個“complexType”元素包含該元素內的屬性與子元素,同時還必須使用“sequence”或者“choice”屬性以表示元素之間的順序關係或者選擇關係。以下代碼表示“楚辭作品”元素可包含“楚辭作者”與“出版社”屬性,同時還可以選擇包含有“楚辭注釋著作”與“楚辭論文”子元素。

〈xs:element name=\"楚辭作品\"〉

〈xs:complexType〉

〈xs:choice〉

〈xs:element name=\"楚辭注釋著作\"〉

〈xs:element name=\"楚辭研究論文\"〉

〈\/xs:choice〉

〈xs:attribute name=\"楚辭作者\"〉

〈xs:attribute name=\"出版社\"〉

〈\/xs:complexType〉

〈\/xs:element〉

在以上這段代碼中,“楚辭作者”與“出版社”屬性兩個屬性聲明被放在〈xs:choice〉結構外麵,“choice”表示元素之間的選擇關係,根元素“楚辭作品”可以包含“楚辭注釋著作”與“楚辭研究論文”。需要注意的是在XML Schema的架構中不允許在“choice”結構中加入屬性聲明,即屬性與元素之間不能建立互斥的選擇關係。

在XML Schema的架構中,如果元素不是複雜類型(complexType)元素,則默認可以包含文本內容,而如果元素屬於複雜類型(complexType)時,則默認不能包含文本內容,假如要求既包含子元素或者屬性又包含文本內容,則要在複雜類型(complexType)中添加屬性“mixed=true”,它表示該元素具有混合內容。

在XML文檔中有些元素沒有內容,定義內容為空的類型可先定義一個元素,該元素隻能包含子元素不能包含元素的內容,在其中不再定義任何子元素,空元素可以包含屬性,這樣就可以定義空元素。

在XML Schema的架構中,對於所定義的元素結構或者所聲明的元素的出現次數,以屬性“minOccurs”(最少出現次數)和“maxOccurs”(最多出現次數)進行限製。如果某個結構或者元素需要無限出現時,則使用屬性值“maxOccurs=\"unbounded\"”確定。例如在“bodyType”類型的choice組具有“maxOccurs=\"unbounded\"”屬性時,則表示該選擇在實例文檔中可以無限次出現;如果沒有設置“maxOccurs”屬性,默認的“maxOccurs”屬性值為“1”,則該組或者元素最多出現一次;另外在choice組以及其他聲明元素中還可以有一個隱含的出現次數關係“minOccurs=\"1\"”。若choice組、sequence組、element元素聲明不包含“minOccurs”屬性,則默認該組或者元素至少出現一次。以下代碼粗體字標出了隱含出現次數的限製。

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈xs:schema xmlns:xs=\"http:\/\/www.w3.org\/2001XMLSchema\"〉

〈xs:element name=\"楚辭作品\"〉

〈xs:annotation〉

〈xs:documentation〉文檔根元素〈\/xs:documentation〉

〈\/xs:annotation〉

〈xs:complexType〉

〈xs:sequence minOccurs=\"1\" maxOccurs=\"1\"〉

〈xs:element name=\"head\"type=\"xs:string\" minOccurs=\"1\" maxOccurs=\"1\"\/〉

〈xs:element name=\"body\"type=\"bodyType\" minOccurs=\"1\" maxOccurs=\"1\"\/〉

〈\/xs:sequence〉

〈\/xs:complexType〉

〈\/xs:element〉

〈xs:complexType name=\"bodyType\"〉

〈xs:choiceminOccurs=\"1\" maxOccurs=\"unbounded\"〉

〈xs:element name=\"print\" minOccurs=\"1\" maxOccurs=\"1\"\/〉

〈xs:element name=\"input\" minOccurs=\"1\" maxOccurs=\"1\"\/〉

〈xs:complexType〉

〈xs:attribute name=\"type\" type=\"inputType\" use=\"required\"\/〉

〈xs:attribute name=\"value\" type=\"xs:string\" use=\"optional\"\/〉

〈\/xs:complexType〉

〈\/xs:element〉

〈\/xs:choice〉

〈\/xs:complexType〉

〈xs:simpleType name=\"inputType\"〉

〈xs:restriction base=\"xs:string\"〉

〈xs:enumeration value=\"text\"〉

〈xs:enumeration value=\"pdf\"〉

〈xs:enumeration value=\"audio\"〉

〈xs:enumeration value=\"submit\"〉

〈\/xs:restriction〉

〈\/xs:simple Type〉

〈\/xs:schema〉

在XML Schema的架構中,聲明屬性的方式是:“xs:attribute”,如以下代碼:

〈xs:element name=\"input\"〉

〈xs:complexType〉

〈xs:attribute name=\"type\" type=\"inputType\" use=\"required\"〉

〈xs:attribute name=\"value\" type=\"xs:string\"〉

〈\/xs:complexType〉

〈\/xs:element〉

這段代碼聲明了“input”元素中的兩個屬性:“type”與“value”。當聲明的屬性在元素中必須出現時,就要在屬性聲明中添加“use=\"required\"”屬性;當所聲明的屬性在元素中可出現也可不出現時,就要在屬性聲明中添加“use=\"optional\"”屬性;當所聲明的屬性不能在元素中出現時,要在屬性聲明中添加“use=\"prohibited\"”屬性。上麵代碼中聲明的“input”元素的兩個屬性“type”與“value”中,其中“type”屬性聲明使用了“type=\"required\"”表示該屬性在“input”元素中必須出現,而“value”屬性沒有必需的聲明,因此它是可選的。

3) 定義元素、屬性文本數據的簡單類型

在XML Schema的架構中,定義屬性或者元素文本內容的取值形式,可以通過指定其所屬單值類型來定義,也可以通過創建數據“簡單類型”來指定,與複雜類型必須用於定義元素及其所包含子元素或屬性不同的是簡單類型可以用於元素或屬性,定義其文本內容數據的取值類型。在XML Schema的架構中,對於元素或屬性隻能具有文本內容的類型被稱為“簡單類型”,XML Schema架構中的簡單類型分為自定義簡單類型與內置的簡單類型兩類。在上麵的代碼中聲明的“input”元素中的“type”屬性聲明中“type=\"inputType\"”就屬於自定義簡單類型“inputType”;而“value”屬性聲明“type=\"xs:string\"”就屬於XML Schema架構內置的字符串類型“string”。除常見的“xs:string”外,在XML Schema架構中預定義了大量簡單數據類型(簡稱單值類型),如: “xs:int”(整數)、“xs:float”(浮點數)、“xs:integer”(任意大小整數)、“xs:byte”(單字節數)、“xs:boolean”(布爾值)、“xs:date”(日期時間)等。詳細見表34。

在XML Schema的架構中,與元素聲明類似,屬性聲明也分全局聲明與局部聲明兩種方式。全局屬性必須出現在根元素“xs:schema”之下,具有“name”屬性;局部屬性可出現在其他位置,在全局屬性聲明中也可以使用“ref”屬性聲明引用全局屬性,在其屬性聲明中不能出現“name”屬性。例如以下代碼:

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈xs:schema xmlns:xs=\"http:\/\/www.w3.org\/2001XMLSchema\"element FormDefault=\"qualified\" attibutedFormDefault=\"unqualified\"〉

〈xs:element name=\"input\"〉

〈xs:complexType〉

〈xs:attributeref=\"type\" use=\"required\"\/〉

〈xs:attribute name=\"type\" type=\"xs:string\"\/〉

〈\/xs:complexType〉

〈\/xs:element〉

〈xs:attributename=\"type\"〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:string\"〉

〈xs:enumeration value=\"text\"〉

〈xs:enumeration value=\"pdf\"〉

〈xs:enumeration value=\"audio\"〉

〈xs:enumeration value=\"submit\"〉

〈\/xs:restriction〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:schema〉

在以上這段代碼中,“input”元素中引用了全局屬性“type”,這樣“input”元素中的“type”屬性就具有了與全局“type”屬性相同的取值方式。

在上麵實例代碼中,簡單類型用於元素或屬性,定義其文本的數據取值類型部分如下:

〈xs:simpleType〉

〈xs:restriction base=\"xs:string\"〉

〈xs:enumeration value=\"text\"〉

〈xs:enumeration value=\"pdf\"〉

〈xs:enumeration value=\"audio\"〉

〈xs:enumeration value=\"submit\"〉

〈\/xs:restriction〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

這裏的“simpleType” 是根元素 “schema”的子元素,它聲明了一個稱為“simpleType”的簡單類型,該類型包含一個“restriction”元素,表述需約束的簡單元素的取值類型,用“restriction”元素的“base”屬性表示該簡單類型的基本數據類型是“xs:string”,“restriction”中的4個“enumeration”元素限製取值為“text”、“pdf”、“audio”、“submit”。

W3C為Schema內置了44個簡單數據類型,這些數據類型劃分成7組不同類型,分別是字符類型、數字類型、時間類型、XML類型、布爾類型、URI引用類型、二進製類型。XML Schema支持的部分內置數據類型見表34。表34XML Schema的部分內置數據類型

數據類型類別數據類型名稱數據類型含義說明字符類型類別xs:string文檔中允許出現零個或多個字符xs:normalizedString不包含任何製表符、回車符、換行符的字符串xs:token首尾無多餘的空格、回車符、換行符且不多於一個的連續空格的字符串,表示標記字符串XML類型類別NameXML文檔中用於命名元素或屬性的名稱Qname限定名(具有名稱空間前綴的XML名稱)NCname定義沒有名稱空間前綴的XML名稱(從Name派生)IDXML 1.0中的“ID”類型,XML文檔中唯一標識IDREFXML 1.0中的“IDREF”類型,須引用ID屬性值IDREFS對多個具有ID屬性的元素的引用數字類型類別xs:int4個小節的補碼整數xs:integer任意大小的整數xs:long8個小節的補碼整數xs:short2個小節的補碼整數xs:byte1個小節的補碼整數xs:float32位浮點數xs:double64位精度數xs:decimal任意精度的十進製xs:NonPositiveInteger小於等於0的整數xs:negativeInteger嚴格小於0的整數xs:nonNegativeInteger大於等於0的整數xs:positiveInteger絕對大於0的整數時間類型類別xs:date日期型格式:YYYYMMDDxs:date Time日期時間型格式:YYYYMMDD hh:mm:ssxs:time時間型格式:HH:MM:SSXML類型類別xs:IDXML推薦標準1.0中的“ID”類型是從NCName派生的,表示XML文檔中的唯一標識符,僅應用於屬性xs:IDREFXML推薦標準1.0中的“ID”類型是從NCName派生的,僅應用於屬性,IDREF必須引用ID屬性的值XML類型類別xs:ENTITY從IDREF派生的,表示對多個具有ID類型屬性的元素的引用,僅應用於屬性xs:NOTATION表示將一個XML名稱聲明為記號名xs:IDREFS表示多個具有ID類型元素的引用xs:ENTITIES表示一個使用空格做分隔符的ENTITY名稱列表xs:NMTOKEN在XML中提交NMTOKEN屬性的字符串(僅與schema屬性一同使用)xs:NMTOKENS表示NMTOKEN類型的列表類型,一個NMTOKEN類型的屬性設置值可以是同一個XML文件中另外多個元素的NMTOKEN類型的屬性的設置值,每個NMTOKEN屬性值中間用空格隔開xs:languageXML1.0中定義的xml:lang的有效值xs:Name從token派生的,用於命名元素或屬性的名稱xs:QName表示具有名稱空間前綴的XML名稱(原始類型)xs:NCName從name派生的,表示沒有名稱空間前綴的XML名稱布爾類型類別xs:boolean布爾邏輯類型,取值為true或false默認情況下簡單類型值屬性屬於任何類型,包括字符串類型、數值數字類型、時間數據類型、布爾數值類型等,當需要限製或擴展屬性的取值範圍時,除將屬性指定為XML Schema架構中內置的簡單類型外,還可采用創建自定義匿名或具名簡單類型來自定義其取值類型,我們把這種通過自定義新的簡單類型來定義元素或屬性的取值範圍的方式稱為“派生”。XML Schema中簡單類型的常用派生關係有三種:約束(restriction)、聯合(union)、列表(list)。其中約束(restriction)與聯合(union)最常使用。其中,約束派生限製元素或屬性的取值範圍;聯合派生是將兩種以上數據類型取值範圍進行合並;列表派生則是將多個值利用空白分隔分列在元素或屬性的取值中以表示多個數值,例如:value=\"A1 B2 C3\"就通過空格分別列出表示三個不同的數值。但這種列表派生方式在XML中不是良構的語義結構形式,一般可使用以下代碼形式來表示列表派生取值:

〈values〉

〈item〉 A1 〈\/item〉

〈item〉 B2 〈\/item〉

〈item〉 C3 〈\/item〉

〈\/values〉

約束派生是最常見的簡單類型派生方式,它通過在XML Schema架構中指定“restriction”元素與“base”元素的不同基本取值限製以完成不同取值。表35列出了常見的取值約束。表35XML Schema架構常用取值約束

約束名稱約束作用常見受約束作用的基礎數據類型enumeration枚舉約束,在枚舉列表中取值常見數值型、字符串、日期型、XML名稱等maxInclusive最大值約束(包含指定值)minInclusive最小值約束(包含指定值)maxExclusive最大值約束(不包含指定值)minEnclusive最小值約束(不包含指定值)數值型、日期型totalDigits定義數值連整數與小數的總位數數值型fractionDigits定義數值的小數位數decimal、float、doublelength定義數據的長度maxLength定義數據的最大長度minLength定義數據的最小長度字符串型、XML名稱、二進製編碼數據類型、列表類型pattern定義字符的精確取值(取值必須滿足指定的正則表達式)字符串型、XML名稱whiteSpace定義空白字符的處理方式換行、回車、空格、製表符以下一段代碼是使用聯合派生的XML Schema架構,聲明了“非負整數與unbounded的聯合”屬性可以為非負整數或者是“unbounded”字符串。

〈?xml version=\"1.0\" encoding=\"GB2312\"?〉

〈xs:schema xmlns:xs=\"http:\/\/www.w3.org\/2001XMLSchema\"element FormDfault=\"qualified\" attibutedFormDefault=\"unqualified\"〉

〈xs:element name=\"聯合派生\"〉

〈xs:complexType〉

〈xs:attribute name=\"非負整數與unbounded的聯合\"〉

〈xs:simpleType〉

〈xs:union memberType=\"xs:nonNegativeInteger\"〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:string\"〉

〈xs:restriction value=\"unbounded\"\/〉

〈\/xs:restriction〉

\/xs:simpleType〉

〈\/xs:union〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈xs:element〉

〈\/xs:schema〉

(4) 基於XML Schema架構的楚辭文獻語義知識組織

到目前為止我們已經描述了XML基礎、DTD以及XML Schema架構的基本結構與語法規則,通過對XML的語法分析,結合第二章東亞楚辭文獻數字化理論與實踐中對楚辭文獻元數據知識組織的論述,歸納XML技術對東亞楚辭文獻語義知識組織的三個方麵的作用:其一,XML語法中規定了對文檔進行結構化描述的機製,這樣就保證了對楚辭文獻多種類型文檔結構化知識組織,同時由於XML允許用戶根據需要自定義標記係統,這樣在楚辭文獻語義標記楚辭文本知識的過程中,用戶構建楚辭語料庫時,就可以根據需要自己設計標記框架結構形成針對東亞楚辭文獻特點的楚辭語義知識標記體係,詳盡地標注楚辭文獻知識;其二,XML以超文本鏈接方式組織信息資源,它對楚辭文獻知識的存儲可以通過交叉聯想方式形成文獻知識的網狀結構,打破傳統文獻存儲方式線性存儲的局限,可以在一部楚辭文獻內部以及多部楚辭文獻之間建立相互關聯的知識網絡,同時由於XML可將數據與數據的顯示方式分離,這樣有利於XML標注過的楚辭語料有多種顯示效果,如利用主題圖、社會網絡分析、本體等技術實現楚辭文獻知識的可視化顯示和多語言楚辭文獻語料集成;其三,XML具有良好的兼容性,XML文檔以文本文件存儲,占用空間小,XML的瀏覽器或編輯器不依賴於開發語言,可以跨平台使用,此外XML支持國家通用UNICODE字符集,這些都有利於不同語言數據庫中的楚辭文獻語料的整合,可以實現楚辭文獻知識標注的跨國跨地區合作,同時便於標注過的楚辭語料知識庫在網上傳播與共享,有利於東亞楚辭文獻的普及傳播。

本節結合第二章對東亞楚辭文獻數字化層次分析與元數據標注,利用XMLSpy 2013編輯係統建立東亞楚辭文獻知識標注模型框架,利用XML Schema架構及其代碼,詳細介紹東亞楚辭文獻語義知識標注模型和標注實例。

1) 基於ALtova XMLSpy2013工具構建東亞楚辭文獻知識標注模型

在第二章東亞楚辭文獻數據庫構建過程中,按照文獻出版類型,我們把楚辭文獻劃分為楚辭注釋著作庫、楚辭研究論文庫、楚辭學位論文庫、楚辭報紙會議論文庫等。針對不同類型的楚辭文獻數字化內容,結合文獻語義化的內涵要求,把楚辭文獻語義化標注對象劃分為兩個部分:一是楚辭注釋文本,二是楚辭研究文獻。據此我們基於XML Schema構建東亞楚辭文獻語義標注模型,其根元素將包含:文件聲明、楚辭研究作品、楚辭注釋文本、楚辭語義詞典。以下概述基於ALtova XMLSpy2013係統構建的東亞楚辭文獻語義知識組織的XML Schema模型架構及其實現過程。

XMLSpy是XML工程集成開發環境(簡稱IDE),可利用XMLSpy平台進行XML及各種文本文檔的編輯處理,完成XML文檔與數據庫之間的數據導入導出,完成數據轉換,關聯各種不同類型XML文檔。其中ALtova XMLSPY 2013版本可以實現XML、XML Schema、XSLT、XQuery、SOAP、WSDL以及Web服務的企業級應用的各種設計、編輯、調試等功能。我們根據第二章中的東亞楚辭注釋著作核心元數據描述規範,利用XMLSpy 2013開發環境構建東亞楚辭注釋著作XML Schema架構模型的過程如下:

首先需要將ALtova XMLSpy 2013中文企業版安裝在本地計算機上,安裝過程需要閱讀軟件許可證協議,在文檔類型複選框中需要選擇XMLSpy支持的相關文檔,安裝完成後,第一次運行ALtova XMLSpy時需要進行軟件許可注冊,通過之後就進入XMLSpy2013的主界麵,選擇菜單file(文件)下New(新建),選擇W3C XML Schema,出現圖38所示界麵。

圖38新建XML Schema文檔

然後單擊主界麵下方的“Grid”按鈕進入網格視圖編輯界麵,如圖39在網格視圖中進行可視化的編輯東亞楚辭注釋著作XML Schema架構模型,在這個編輯窗口界麵上方點擊XML展開了兩行XML的版本聲明和編碼默認值聲明:〈?xml version=\"1.0\" encoding=\"UTF—8\"?〉。這裏我們可以將encoding默認值“UTF—8”修改為“GB2312”;點擊“xs:schema” 下拉展開了XML Schema樹形編輯表格結構,顯示XML Schema文檔元素聲明及其屬性聲明,在“xs:schema”編輯表格中包含根元素“xs:element”,單擊“xs:element”左邊的黑三角展開可以編輯的元素名稱,見圖39。

圖39可視化XML Schema文檔編輯界麵

在“=name”後的表格單元格輸入根節點名稱為:“filestatement”(楚辭文獻),將它的屬性設置為複雜類型:“xs:complexType”,設置子元素的順序為“xs:sequence”, 依次添加子元素名稱name=FileStatement(文件聲明)、name=ChuWorksMetadata(楚辭論著元數據)、 name=ChuAnnotation(楚辭注釋文本)、name=ChuDictionary(楚辭語義詞典)等元素,編輯界麵結果如圖310,視圖模式顯示如圖311,將文件保存為chuci001.xsd,在瀏覽器中打開如圖312。

圖310楚辭文獻語義標注XML Schema視圖編輯界麵

圖311楚辭文獻根元素語義標注XML架構圖

圖312楚辭文獻語義標注模型瀏覽器窗口截圖

以下詳細介紹楚辭文獻語義標注模型4個部分元素及其屬性架構。

首先第一部分是創建文件說明部分,這部分是對整個楚辭文獻語義標注模型架構的元素及其屬性的整體說明,具體內容包括文件名、字符集、語言、版本、內容簡介、文件創建者、文件創建時間、聯係方式、版權聲明等內容,分別創建以下XML元素標簽及其說明:title、characterSet、language、version、filesize、abstract、creator、createdtime、contact、copyrightnote,創建方法如上,視圖顯示如圖313。

圖313文件說明屬性視圖

楚辭文獻語義標注模型第二部分楚辭研究論著元數據框架和第三部分楚辭注釋文本語義標注框架是模型的主要部分,以下分別介紹它們的架構與標注實例。

2)楚辭研究論著元數據框架

楚辭文獻語義標注模型第二部分是楚辭研究論著元數據框架,這部分內容是以都柏林元數據標準集的15個核心元素為基礎,結合東亞楚辭文獻的特點創建了21個子元素,具體子元素及其屬性包括:“title”(題名)、“responsibility”(責任者)、“publisher”(出版者)、“publication”(出版地)、“pubdate”(出版時間)、“subject”(主題)、“classification”(分類)、“keyword”(關鍵詞)、“language”(語種)、“volume”(卷期)、“chapter”(篇章目錄)、 “ResourceType”(資源類型)、“coverage”(時空範圍)、“edition”(版本說明)、“PhysicalDescription”(載體描述)、“description”(附注)、“identifier”(標識符)、“resourceURL”(數字資源網址)、“location”(收藏地)、“CollectionHistory”(收藏曆史)、“權限”(rights)。上述ALtova XMLSpy 2013平台創建的楚辭研究論著元數據框架視圖如圖314。

其中title(題名)元素包含formalTitle(正題名)和otherTitle(其他題名)兩個嵌套子元素,其中其他題名子元素通過題名類型(titleType) 屬性定義了“並列題名”、“版心題名”、“內封題名”、“書衣題名”、“卷端題名”、“叢書題名”、“其他題名”7個簡單數據類型(simpleType)。“publisher”(責任者)子元素包含“creator”(著)與contributor (其他責任者)兩個嵌套子元素,其中contributor (其他責任者)子元素又通過roleType(責任方式類型)定義了“合著”、“編”、“編著”、“編譯”、“主編”、“撰”、“修”、“刻”、“纂”、“纂修”、“注”、“注評”、“點校”、 “輯”、“譯”、“繪”、“製作”等簡單數據類型(SimpleType)。“載體描述”(PhysicalDescription)子元素又包含了“BindingStyle”(裝訂方式)、“number”(數量)、“chart”(圖表)、“size”(尺寸)、“TextalignmentStyle”(行款版式)等,其中裝訂方式通過“BindingType”(裝訂方式類型)定義了“線裝”、“精裝”、“平裝”、“合訂本”、“散裝”、“卷軸裝”、“蝴蝶裝”、“摺裝”、“經摺裝”、“摺葉”、“包背裝”、“毛裝”等簡單數據類型(simpleType)。代碼如圖315。

圖314楚辭研究論著作元數據標注XML Schema框架截圖

圖315楚辭研究論著“責任者”、“載體描述”數據類型XML代碼截圖

3) 楚辭論著元數據標注實例

實例31以中文版明刊本《楚辭集注》元數據標注為例,依據“楚辭論著元數據標注模型”給出實例標注代碼如下:

〈?xml version=\"1.0\" encoding=\"UTF8\"?〉

〈xs:schema xmlns:xs=\"http:\/\/www.w3.org\/2001\/XMLSchema\"

elementFormDefault=\"qualified\" attributeFormDefault=\"unqualified\"〉

〈ChuLiterature〉

〈xs:complexType〉

〈xs:sequence〉

〈FileStatement〉

〈xs:complexType〉

〈xs:sequence〉

〈FileName〉example3—1〈\/FileName〉

〈version〉1.0〈\/version〉

〈language〉漢語〈\/language〉

〈characterSet〉Unicode9.0〈\/characterSet〉

〈size〉3.9KB〈\/size〉

〈FileCreator〉Qianzhiyong〈\/ FileCreator〉

〈FileDate〉2017—12—23〈\/FileDate〉

〈CopyrightInfo 〉Ntu〈\/CopyrightInfo〉

〈\/xs:sequence〉

〈\/xs:complexType〉

〈ChuWorksMetadata〉

〈title〉

〈FormalTitle〉

〈title〉楚辭集注〈\/title〉

〈\/FormalTitle〉

〈\/title〉

〈responsibility〉

〈creator〉

〈xs:annotation〉

〈xs:documentation〉主要作者〈\/xs:documentation〉

〈\/xs:annotation〉

〈AuthorName〉朱熹〈\/AuthorName〉

〈AuthorNote〉中國宋代著名理學家、思想家、哲學家、教育家、詩人,閩學派的代表人物,儒學集大成者,世尊稱為朱子〈\/AuthorNote〉

〈AuthorWork〉《四書章句集注》、《太極圖說解》、《通書解說》、《周易讀本》、《楚辭集注》〈\/AuthorWork〉

〈Action〉撰〈\/Action〉

〈contributor〉

〈xs:annotation〉

〈xs:documentation〉其他責任者〈\/xs:documentation〉

〈\/xs:annotation〉

〈AuthorName〉蔣之翹〈\/AuthorName〉

〈AuthorNote〉明末清初學者、藏書家〈\/AuthorNote〉

〈Action〉輯、評校〈\/Action〉

〈\/contributor〉

〈\/responsibility〉

〈edition〉

〈EditionIndentify〉17088〈\/EditionIndentify〉

〈EditionStatement〉明天啟6年[1626]刻本〈\/EditionStatement〉

〈\/edition〉

〈PhysicalDescription〉

〈BindingType〉線裝〈\/BindingType〉

〈AlignmentStyle〉9行21字,白口,四周單邊〈\/AlignmentStyle〉

〈\/PhysicalDescription〉

〈subject〉楚辭〈\/subject〉

〈language〉Chi〈\/language〉

〈volume〉

〈paragraph〉

〈VolumeId〉卷一〈\/VolumeId〉

〈VolumeTitle〉離騷經第一〈VolumeTitle〉

〈VolumeId〉卷二〈\/VolumeId〉

〈VolumeTitle〉離騷九歌第二〈VolumeTitle〉

〈VolumeId〉卷三〈\/VolumeId〉

〈VolumeTitle〉離騷天問第三〈VolumeTitle〉

〈VolumeId〉卷四〈\/VolumeId〉

〈VolumeTitle〉離騷九章第四〈VolumeTitle〉

〈VolumeId〉卷五〈\/VolumeId〉

〈VolumeTitle〉離騷遠遊第五〈VolumeTitle〉

〈VolumeId〉卷六〈\/VolumeId〉

〈VolumeTitle〉離騷卜居第六〈VolumeTitle〉

〈VolumeId〉卷七〈\/VolumeId〉

〈VolumeTitle〉離騷漁父第七〈VolumeTitle〉

〈\/paragraph〉

〈\/volume〉

〈CollectionHistory〉

〈CollectionPerson〉中國國家圖書館〈\/CollectionPerson〉

〈CollectionLocation〉北京〈\/CollectionLocation〉

〈ChuWorksMetadata〉

〈\/xs:sequence〉

〈\/xs:complexType〉

〈\/ChuLiterature〉

實例32日文版《楚辭集注全注釋七招魂大招》元數據XML標注。日文版《楚辭集注全注釋七招魂大招》元數據標注的封麵頁、作者簡介頁、版權頁和目錄頁分別見圖316、圖317、圖318、圖319,該書元數據XML標注代碼如下。

圖316日文版《楚辭集注全注釋七招魂大招》封麵吹野安.楚辭集注全注釋七招魂大招[M].東京:明德出版社,2013:封麵.圖317日文版《楚辭集注全注釋七招魂大招》作者簡介頁吹野安.楚辭集注全注釋七招魂大招[M].東京:明德出版社,2013:作者簡介頁.

圖318日文版《楚辭集注全注釋七招魂大招》版權頁吹野安.楚辭集注全注釋七招魂大招[M].東京:明德出版社,2013:版權頁.

圖319日文版《楚辭集注全注釋七招魂大招》目錄頁

日文版《楚辭集注全注釋七招魂大招》元數據XML標注:

〈?xml version=\"1.0\" encoding=\"UTF8\"?〉

〈xs:schema xmlns:xs=http:\/\/www.w3.org\/2001\/XMLSchema

elementFormDefault=\"qualified\" attributeFormDefault=\"unqualified\"〉

〈xs:element name=\"楚辭文獻\"〉

〈xs:complexType〉

〈xs:sequence〉

〈xs:element name=\"文件說明\"〉

〈xs:complexType〉

〈xs:sequence〉

〈FileName〉example32〈\/FileName〉

〈version〉1.0〈\/version〉

〈language〉漢語〈\/language〉

〈characterSet〉Unicode9.0〈\/characterSet〉

〈size〉3.9KB〈\/size〉

〈FileCreator〉Qianzhiyong〈\/ FileCreator〉

〈FileDate〉20171228〈\/FileDate〉

〈CopyrightInfo 〉Ntu〈\/CopyrightInfo〉

〈\/xs:sequence〉

〈\/xs:complexType〉

〈xs:element name=\"楚辭論著元數據\"〉

〈title〉

〈FormalTitle〉

〈title〉楚辭集注全注釈七〈\/title〉

〈\/FormalTitle〉

〈\/title〉

〈title〉

〈OtherTitle〉

〈title〉楚辭集注 七 招魂·大招〈\/title〉

〈TitleType〉內封題名〈\/TitleType〉

〈\/OtherTitle〉

〈\/title〉

〈responsibility〉

〈creator〉

〈AuthorName〉吹野 安(ふきのやす)〈\/AuthorName〉

〈AuthorNote〉1932年、茨城県生れ。國學院大學文學部卒。先師柏軒藤野岩友に師事して楚辭を學ぶ。文學博士。國學院大學名譽教授\/國學院大學大學院·東海大學大學院講師歷任。〈\/AuthorNote〉

〈AuthorWork〉「中國古代文學発想論」`「漢の詞華」`「論語新釈」(笠間書院)、佐藤一斎全集 第六卷 [「論語欄外書」 「大學欄外書」] ·第七卷 [「孟子欄外書」·「中庸欄外書」]·「楚辭集注全注釈」一~六(明德出版社)〈\/AuthorWork〉

〈\/creator〉

〈\/responsibility〉

〈publisher〉

〈pubName〉明德出版社〈\/pubName〉

〈publocation〉東京都新宿區山吹町三五三〈\/publocation〉

〈\/publisher〉

〈distributor〉

〈DistributorName〉小林真智子〈\/DistributorName〉

〈DistributorLocation〉東京〈\/DistributorLocation〉

〈DistributorDate〉平成二十五年六月二十七日〈DistributorDate〉

〈\/distributor〉

〈manufacture〉

〈ManufactureName〉興學社〈\/ManufactureName〉

〈ManufactureLocation〉東京〈\/ManufactureLocation〉

〈ManufactureDate〉平成二十五年六月二十一日〈\/ManufactureDate〉

〈\/manufacture〉

〈subject〉楚辭注釋〈\/subject〉

〈ClassiFication〉

〈cls〉I207.223〈\/cls〉

〈\/ClassiFication〉

〈keyword〉楚辭注釋〈\/keyword〉

〈language〉jap〈\/language〉

〈volume〉

〈VolumeTitle〉本文〈\/VolumeTitle〉

〈pageMode〉三〈\/pageMode〉

〈\/volume〉

〈volume〉

〈VolumeTitle〉招魂第九〈\/VolumeTitle〉

〈pageMode〉五〈\/pageMode〉

〈\/volume〉

〈volume〉

〈VolumeTitle〉大招第十〈\/VolumeTitle〉

〈pageMode〉一○五〈\/pageMode〉

〈\/volume〉

〈volume〉

〈VolumeTitle〉原文〈\/VolumeTitle〉

〈pageMode〉一七三〈\/pageMode〉

〈\/volume〉

〈edition〉

〈EditionIndentify〉第一版〈\/EditionIndentify〉

〈EditionStatement〉初版〈\/EditionStatement〉

〈\/edition〉

〈identifier〉

〈ISBN〉9784896194920〈\/ISBN〉

〈\/identifier〉

〈\/element〉

〈\/xs:schema〉

(5) 楚辭注釋文本語義標注模型與標注實例

1) 楚辭注釋文本語義標注模型

楚辭文獻語義標注模型框架是實現楚辭文獻語義知識組織的基礎,楚辭文獻語義知識標注是以多語言的東亞楚辭文獻注本、刻本、點校本、影印本等數字化的文本文獻為對象,並且按照注釋文本的結構將注釋文本標注模塊劃分為“BookBibliography”(注本書目)、“BookChapter”(注釋篇章)、“BookAnnotation”(注釋內容)、“BookLanguage”(注本語種)四個子元素,其中注釋書目元素又分為“BookTitle”(注本題名)、“BookAuthor”(注本作者)、“BookPublisher”(出版者)、“BookPublocatio”(出版地)、“BookPubdate”(出版時間)、“BookEdition”(版本說明);“BookChapter”(注釋篇章)分為“ChapterName”(篇名)、“ChapterPage”(頁碼)、“ChapterAbstract”(篇章摘要)三個子元素;“BookAnnotation”(注釋內容)是模型的核心部分,目標是按照楚辭注釋文本中的句子和字詞的語義對楚辭文獻分別進行標注,因此將該部分模塊劃分為“AnnotatedID”(注釋ID)、“Sentence”(注釋句子)、“word”(注釋字詞語義)三個部分,其中“Sentence”(注釋句子)被劃分為“AnnotatedOriginalSentence”(原句)、“AnnotatedSentence”(句子注釋)、“AnnotatedLanguage”(注釋語種標簽)、“SentenceSemantics”(注釋語義),其中後兩種元素又分別利用簡單數據類型定義了注釋語種標簽和注釋語義(楚辭句子基本語法結構);在“word”(注釋字詞語義)部分,按照詞彙語義表達方式,將“word”劃分為“WordID”、“EntryWord”(詞目)、“WordInterpretation”(字詞釋義)、“WordSemantics”(字詞語義),其中“EntryWord”(詞目)被劃分為“WordName”(詞名)和“pronunciation”(發音)兩個部分,並分別利用簡單數據類型屬性定義了語種類型標簽,依據楚辭注釋文本中的知識單元,我們把“WordInterpretation”(字詞釋義)部分劃分為“OriginalMeaning”(詞本義)、“MeaningInSentence”(原句中釋義)、“ReferenceMeaning”(引證釋義)、“TranslationMeaning”(翻譯釋義)四個部分;在“WordSemantics”(字詞語義)部分,依據語法我們把“WordSemantics”(字詞語義)劃分為“WordClass”(詞性)和“WordAssociation”(詞關聯)兩部分以標注楚辭注本中字詞的語義。楚辭部分名詞詞性標注見表36。表36楚辭詞性標注表

類別標注標記《楚辭》詞例專有名詞人,特指na伯禹,巫陽,顓頊,羿,高陽,堵敖,河伯人,泛指nb君,帝,美人,舉世,百姓動物nc鶬,鼇,魑,虺,蝮蛇,封狐,白螭,騏驥植物nd艾,白,白雉,蕙,秋蘭,薜荔,麋蕪稱謂名詞ne父,皇考作品名nf哀時命,哀郢,悲回風,抽思,惜誦,懷沙全身名ng齒,朱顏國名nh商,周,齊星宿名ni長庚,辰,角宿,攝提,孟陬官名nj掌夢,大司命,三閭大夫樂器及樂曲名nk竽瑟,篪,鼓,蔡謳,韶 物品名nl佩,采旌,瓊佩,璜,白霓裳,方枘天地日月星辰nm日,星,九天建築物nn步,八柱,葺,閶闔宗教no社,尊食,花期,祭祀,東君方位名詞陸地山川np嶓塚,蒼梧,嵞山陸地地名nq邠岐,涔陽時間名詞nr鼂,薄暮,少,四時節氣,昔,庚寅,初河流地名ns滄浪,雷淵,白水,丹水,芳洲動詞係動詞vl曰,知,以,帶及物動詞vi撥,,滋,,麾,搴,遺,惟不及物動詞vt哀,,太息助動詞vu固,熟,惟,其趨向動詞vd高,長,反顧形容詞性質形容詞aq忳鬱邑,杳,內美,大狀態形容詞as曖曃,黯黮,鬯罔,曾波,猖披,怊惝恍代詞人稱代詞rh朕,餘,夫,吾物主代詞rd疑問代詞rw胡,何,豈助詞結構助詞us得,之動態助詞ua既,過語氣助詞um啊,嗎數詞基數詞mc九(畹),百(畝)序數詞mo時數詞mu量詞名量詞qn畹,畝,年歲動量詞qv趟,遍,番複合量詞qt五音,二姚,九州,九河,百兩副詞d忽,更介詞p焉,乎,者,也連詞c苟,亦,雖,但,故感歎詞e兮,欸語氣詞y謇,羌聯綿詞zc崔嵬,徜徉,荒忽,潢洋疊韻聯綿詞zd曖曃,旖旎,嬋媛,偃蹇,潺湲,頷疊詞ze憺憺,蹇蹇,廱廱,亹亹,遑遑,明明暗暗楚地方言zf扈,擥,邅,攬利用XML SPY2013構建的楚辭注釋文本標注模型架構如圖320所示。楚辭語義詞典架構方法同楚辭注釋文本,具體內容從略。

2) 楚辭注釋文本語義標注實例

以下通過構建好的楚辭文獻標注XML Schema模型,分別介紹不同楚辭著作標注、楚辭注釋文本的標注實例(本節所有實例都經過XML SPY2013係統驗證)。

圖320楚辭注釋文本語義標注XML Schema框架(部分展開)

實例33橋本循著日文版《楚辭譯注》語義標注。該書封麵頁、版權頁、目錄頁、內容頁分別見圖321、322、323、324。圖321日文版《楚辭譯注》封麵頁橋本循.楚辭譯注[M].東京:岩波書店,1958:封麵頁.

圖322日文版《楚辭譯注》版權頁橋本循.楚辭譯注[M].東京:岩波書店,1958:版權頁.

圖323日文版《楚辭譯注》目次頁橋本循.楚辭譯注[M].東京:岩波書店,1958:目次頁.

圖324日文版《楚辭譯注》內容頁橋本循.楚辭譯注[M].東京:岩波書店,1958:23—24.實例33日文版注釋文本《楚辭譯注》語義標注XML代碼如下:

〈xs:ChuAnnotation〉

〈xs:annotation〉

〈xs:documentation〉楚辭注釋文本〈\/xs:documentation〉

〈\/xs:annotation〉

〈!—日文版注釋文本《楚辭譯註》語義標注實例--〉

〈BookBibliography〉

〈BookTitle〉楚辭〈\/BookTitle〉

〈BookAuthor〉橋本 循〈\/BookAuthor〉

〈BookPublisher〉岩波書店〈\/BookPublisher〉

〈BookPublication〉東京〈\/BookPublication〉

〈BookPubdate〉昭和十年十一月十五日〈\/BookPubdate〉

〈BookEdition〉第一版〈\/BookEdition〉

〈language〉jap〈\/language〉

〈\/BookBibliography〉

〈BookChapter〉

〈ChapterName〉緒言〈\/ChapterName〉

〈ChapterPage〉五〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterName〉凡例〈\/ChapterName〉

〈ChapterPage〉一九〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterName〉參引書目〈\/ChapterName〉

〈ChapterPage〉二○〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterName〉一、離騷〈\/ChapterName〉

〈ChapterPage〉二三〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterName〉二、九歌〈\/ChapterName〉

〈ChapterPage〉一○○〈\/ChapterPage〉

〈\/BookChapter〉

〈ChapterName〉三、天問〈\/ChapterName〉

〈ChapterPage〉一五三〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterName〉四、九章〈\/ChapterName〉

〈ChapterPage〉二二○〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterName〉五、遠遊〈\/ChapterName〉

〈ChapterPage〉三四七〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterName〉六、卜居〈\/ChapterName〉

〈ChapterPage〉三七八〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterName〉七、漁夫〈\/ChapterName〉

〈ChapterPage〉三八九〈\/ChapterPage〉

〈\/BookChapter〉

〈BookAnnotation〉

〈!—以下為《離騷》第1句注釋語義標注--〉

〈Sentence〉

〈OriginalSentence〉帝高陽之苗裔兮 朕皇考曰伯庸〈\/OriginalSentence〉

〈OriginalLanguage〉chi〈\/OriginalLanguage〉

〈OriginalSentence〉帝高陽の苗裔 朕が皇考を伯庸と曰ふ〈\/OriginalSentence〉

〈OriginalLanguage〉jap〈\/OriginalLanguage〉

〈AnnotatedSentence〉古帝顓頊高陽氏は吾が楚の祖にして吾れも亦高陽氏の遠末子孫なれば吾れと君とは同姓の親にして離るべからざる誼あり。わが既に亡き父は伯庸といふ字なり。〈\/AnnotatedSentence〉

〈AnnotatedLanguage〉jap〈\/AnnotatedLanguage〉

〈SentenceSemantics〉句型〈\/SentenceSemantics〉

〈\/Sentence〉

〈!—以下為詞注釋(包括詞目、詞釋義、詞語義)--〉

〈word〉

〈EntryWord〉

〈xs:annotation〉

〈xs:documentation〉詞目〈\/xs:documentation〉

〈\/xs:annotation〉

〈WordName〉帝〈\/WordName〉

〈pronunciation〉

〈jpn〉てい〈\/jpn〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈xs:annotation〉

〈xs:documentation〉詞釋義〈\/xs:documentation〉

〈\/xs:annotation〉

〈OriginalNotes〉帝〈\/OriginalNotes〉

〈MeaningInSentence〉皇帝〈MeaningInSentence〉

〈ReferenceMeaning〉徳の天地に合するを帝といふ。(王註)〈\/ReferenceMeaning〉

〈TranslationMeaning〉帝〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈xs:annotation〉

〈xs:documentation〉詞語義〈\/xs:documentation〉

〈\/xs:annotation〉

〈WordClass〉

〈xs:annotation〉

〈xs:documentation〉詞性〈\/xs:documentation〉

〈\/xs:annotation〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"na\"\/〉

〈\/xs:restriction

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute

〈\/xs:complexType〉

〈\/WordClass〉

〈WordAssociation〉

〈xs:annotation〉

〈xs:documentation〉詞間關係〈\/xs:documentation〉

〈\/xs:annotation〉

〈!--詞間包括同義、反義、相關、上位、下位、部分、包含關係(略)--〉

〈\/WordAssociation〉

〈\/WordSemantics〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉高陽〈\/WordName〉

〈pronunciation〉

〈xs:annotation〉

〈xs:documentation〉讀音〈\/xs:documentation〉

〈\/xs:annotation〉

〈jpn〉こうよう〈\/jpn〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉高陽〈\/OriginalNotes〉

〈MeaningInSentence〉高陽氏〈MeaningInSentence〉

〈!—以下為引文中釋義--〉

〈ReferenceMeaning〉顓頊が天下を有せし時の號、顓頊は古帝名にして黃帝の孫といふ、楚王の先祖熊繹は顓頊の後にして相傳へて楚の武王に至り、武王の子瑕が屈氏の先祖なり、郎ち楚王と屈氏とは其祖を共にするなり。(閣註)〈\/ReferenceMeaning〉

〈TranslationMeaning〉顓頊高陽氏〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈xs:annotation〉

〈xs:documentation〉詞性〈\/xs:documentation〉

〈\/xs:annotation〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"na\"\/〉

〈\/xs:restriction

〈!—na:專有名詞表示人名稱謂--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute

〈\/xs:complexType〉

〈\/WordClass〉

〈WordAssociation〉

〈xs:annotation〉

〈xs:documentation〉詞間關係〈\/xs:documentation〉

〈\/xs:annotation〉

〈\/WordAssociation〉

〈!--詞間關係包括同義、反義、相關、上位、下位、部分、包含關係(略)--〉

〈\/WordSemantics

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉苗裔〈\/WordName〉

〈pronunciation〉

〈jpn〉びょうえい〈\/jpn〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉苗裔〈\/OriginalNotes〉

〈MeaningInSentence〉遠末子孫〈\/MeaningInSentence〉

〈ReferenceMeaning〉苗は根の生する所、裔は裾の末、故に以て遠末子孫の稱をなり。(閣註)〈\/ReferenceMeaning〉

〈TranslationMeaning〉子孫〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"na\"\/〉

〈\/xs:restriction

〈!—na:專有名詞表示稱謂--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈WordAssociation〉

〈xs:annotation〉

〈xs:documentation〉詞間關係〈\/xs:documentation〉

〈\/xs:annotation〉

〈\/WordAssociation〉

〈\/WordSemantics〉

〈\/EntryWord〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉朕〈\/WordName〉

〈pronunciation〉

〈jpn〉わ〈\/jpn〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉朕〈\/OriginalNotes〉

〈MeaningInSentence〉わ〈MeaningInSentence〉

〈ReferenceMeaning〉我なり、古は上下之通用す。(補註)〈\/ReferenceMeaning〉

〈TranslationMeaning〉我〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"rh\"\/〉

〈\/xs:restriction

〈!—rh:人稱代詞--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈\/WordSemantics〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉皇考〈\/WordName〉

〈pronunciation〉

〈jpn〉こうこう〈\/jpn〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉皇考〈\/OriginalNotes〉

〈MeaningInSentence〉既に亡き父〈MeaningInSentence〉

〈ReferenceMeaning〉皇は美なり·父死して考と稱す〈\/ReferenceMeaning〉

〈TranslationMeaning〉死去的父親〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"na\"\/〉

〈\/xs:restriction

〈!—na:專有名詞表示稱謂--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈\/WordSemantics〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉伯庸〈\/WordName〉

〈pronunciation〉

〈jpn〉はくよう〈\/jpn〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉伯庸〈\/OriginalNotes〉

〈MeaningInSentence〉伯庸〈MeaningInSentence〉

〈ReferenceMeaning〉屈原の父の字。(集註)〈\/ReferenceMeaning〉

〈TranslationMeaning〉伯庸〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"na\"\/〉

〈\/xs:restriction

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈\/WordSemantics〉

〈\/word〉

〈!—以下為《離騷》第2句注釋語義標注--〉

〈Sentence〉

〈OriginalSentence〉攝提貞於孟陬兮惟庚寅吾以降〈\/OriginalSentence〉

〈OriginalLanguage〉chi〈\/OriginalLanguage〉

〈OriginalSentence〉攝提孟陬に貞り惟れ庚寅吾れ以て降る〈\/OriginalSentence〉

〈OriginalLanguage〉jap〈\/OriginalLanguage〉

〈AnnotatedSentence〉吾れは寅の年寅の月寅の日を以て生れしなり。〈\/AnnotatedSentence〉

〈AnnotatedLanguage〉jap〈\/AnnotatedLanguage〉

〈\/Sentence〉

〈word〉

〈EntryWord〉

〈WordName〉攝提〈\/WordName〉

〈pronunciation〉

〈jpn〉せつてい〈\/jpn〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉攝提〈\/OriginalNotes〉

〈MeaningInSentence〉以て〈MeaningInSentence〉

〈ReferenceMeaning〉攝提雲々。爾稚釋歲に歲寅に在るを攝提格といふと。父、爾雅釋月に正月を陬を為すと。夏正を以て之を攷ふるに蓋し寅の月なり。庚寅は日也。原の生る、年月日皆寅に在るなり。(值掌)〈\/ReferenceMeaning〉

〈TranslationMeaning〉以て〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"na\"\/〉

〈\/xs:restriction

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈WordAssociation〉

〈xs:annotation〉

〈xs:documentation〉詞間關係〈\/xs:documentation〉

〈\/xs:annotation〉

〈WordAssociation〉

〈!--詞間包括同義、反義、相關、上位、下位、部分、包含關係(略)--〉

〈\/WordSemantics〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉寅〈\/WordName〉

〈pronunciation〉

〈jpn〉いん〈\/jpn〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉寅〈\/OriginalNotes〉

〈MeaningInSentence〉寅〈MeaningInSentence〉

〈ReferenceMeaning〉寅は當るなり。(賦註)〈\/ReferenceMeaning〉

〈TranslationMeaning〉寅〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"nr\"\/〉

〈\/xs:restriction〉

〈!—nr:表示時間的名詞--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈WordAssociation〉

〈xs:annotation〉

〈xs:documentation〉詞間關係〈\/xs:documentation〉

〈\/xs:annotation〉

〈\/WordAssociation〉

〈!—詞間包括同義、反義、相關、上位、下位、部分、包含關係(略)--〉

〈\/WordSemantics〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉降〈\/WordName〉

〈pronunciation〉

〈jpn〉くだ〈\/jpn〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉降〈\/OriginalNotes〉

〈MeaningInSentence〉生れ〈MeaningInSentence〉

〈ReferenceMeaning〉生る、なり(閣註)〈\/ReferenceMeaning〉

〈TranslationMeaning〉生れ〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"vi\"\/〉

〈\/xs:restriction〉

〈!—vi:表示不及物動詞--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈WordAssociation〉

〈xs:annotation〉

〈xs:documentation〉詞間關係〈\/xs:documentation〉

〈\/xs:annotation〉

〈\/WordAssociation〉

〈!—詞間包括同義、反義、相關、上位、下位、部分、包含關係(略)--〉

〈\/WordSemantics〉

〈\/word〉

〈BookLanguage〉jap〈\/BookLanguage〉

〈\/ChuAnnotation〉

實例34韓文版注釋文本《楚辭屈原賦注》(封麵頁、目錄頁、版權頁、內容頁分別見圖325、圖326、圖327、圖328)。

圖325韓文版《楚辭屈原賦注》封麵頁柳晟俊.楚辭屈原賦注[M].首爾:新雅社,2001:封麵頁.

圖326韓文版《楚辭屈原賦注》目次頁柳晟俊.楚辭屈原賦注[M].首爾:新雅社,2001:目次頁.

圖327韓文版《楚辭屈原賦注》版權頁柳晟俊.楚辭屈原賦注[M].首爾:新雅社,2001:版權頁.

圖328韓文版《楚辭屈原賦注》內容頁柳晟俊.楚辭屈原賦注[M].首爾:新雅社,2001:29.

實例34韓文版《楚辭屈原賦注》注釋內容語義標注XML代碼(節選)如下:

〈xs:ChuAnnotation〉

〈xs:annotation〉

〈xs:documentation〉楚辭注釋文本〈\/xs:documentation〉

〈\/xs:annotation〉

〈!—韓文版注釋文本《楚辭譯註》語義標注實例--〉

〈BookBibliography〉

〈xs:annotation〉

〈xs:documentation〉注本書目〈\/xs:documentation〉

〈\/xs:annotation〉

〈BookTitle〉楚辭屈原賦注〈\/BookTitle〉

〈BookAuthor〉?剳:?匂?劻:〈\/BookAuthor〉

〈BookPublisher〉?劒5?剷b?冔v〈\/BookPublisher〉

〈BookPublication〉東京〈\/BookPublication〉

〈BookPubdate〉2001?冐? 01?剨4 20 ?剾2 ?劰J?勄V〈\/BookPubdate〉

〈BookEdition〉2001?冐?01?剨426?剾2 ?剢(〈\/BookEdition〉

〈language〉Kor〈\/language〉

〈BookChapter〉

〈xs:annotation〉

〈xs:documentation〉注釋章節〈\/xs:documentation〉

〈\/xs:annotation〉

〈ChapterName〉序〈\/ChapterName〉

〈ChapterPage〉5〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterName〉解題〈\/ChapterName〉

〈ChapterPage〉11〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterName〉離騒〈\/ChapterName〉

〈ChapterPage〉25〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterName〉九歌〈\/ChapterName〉

〈ChapterPage〉49〈\/ChapterPage〉

〈\/BookChapter〉

〈BookChapter〉

〈ChapterSection〉

〈SectionName〉東皇太一〈\/ChapterName〉

〈SectionPage〉49〈\/ChapterPage〉

〈\/ChapterSection〉

〈ChapterSection〉

〈SectionName〉雲中君〈\/ChapterName〉

〈SectionPage〉51〈\/ChapterPage〉

〈\/ChapterSection〉

〈ChapterSection〉

〈SectionName〉湘君〈\/ChapterName〉

〈SectionPage〉52〈\/ChapterPage〉

〈\/ChapterSection〉

〈ChapterSection〉

〈SectionName〉湘夫人〈\/ChapterName〉

〈SectionPage〉54〈\/ChapterPage〉

〈\/ChapterSection〉

〈ChapterSection〉

〈SectionName〉大司命〈\/ChapterName〉

〈SectionPage〉56〈\/ChapterPage〉

〈\/ChapterSection〉

〈ChapterSection〉

〈SectionName〉少司命〈\/ChapterName〉

〈SectionPage〉58〈\/ChapterPage〉

〈\/ChapterSection〉

〈ChapterSection〉

〈SectionName〉東君〈\/ChapterName〉

〈SectionPage〉60〈\/ChapterPage〉

〈\/ChapterSection〉

〈ChapterSection〉

〈SectionName〉河伯〈\/ChapterName〉

〈SectionPage〉62〈\/ChapterPage〉

〈\/ChapterSection〉

〈ChapterSection〉

〈SectionName〉山鬼〈\/ChapterName〉

〈SectionPage〉63〈\/ChapterPage〉

〈\/ChapterSection〉

〈ChapterSection〉

〈SectionName〉國殤〈\/ChapterName〉

〈SectionPage〉66〈\/ChapterPage〉

〈\/ChapterSection〉

〈ChapterSection〉

〈SectionName〉禮魂〈\/ChapterName〉

〈SectionPage〉67〈\/ChapterPage〉

〈\/ChapterSection〉

〈BookChapter〉

〈ChapterName〉天問〈\/ChapterName〉

〈ChapterPage〉69〈\/ChapterPage〉

〈\/BookChapter 〉

〈\/BookBibliography〉

〈BookAnnotation〉

〈sentence〉

〈OriginalSentence〉餘既滋蘭之九畹兮,又樹蕙之百畝〈\/OriginalSentence〉

〈SentencePronounce〉?勸\"?儔??劃2?凒??務2?凅z?剦:?剹f,?剢8?剰\"?剹f?務2?勽?勛

〈\/SentencePronounce〉

〈AnnotatedLanguage〉 Kor〈\/AnnotatedLanguage〉

〈\/sentence〉

〈Word〉

〈WordID〉1) 〈\/WordID〉

〈EntryWord〉

〈xs:annotation〉

〈xs:documentation〉詞目〈\/xs:documentation〉

〈\/xs:annotation〉

〈WordName〉滋〈\/WordName〉

〈pronounce〉

〈Kor〉?劃2,zī〈\/Kor〉

〈\/pronounce〉

〈\/EntryWord〉

〈WordInterpretation〉

〈xs:annotation〉

〈xs:documentation〉詞釋義〈\/xs:documentation〉

〈\/xs:annotation〉

〈MeaningInSentence〉?劅:?勼

?剝j?儍?.?儔??劖

?儍?〈\/MeaningInSentence〉

〈TranslationMeaning〉栽培〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈xs:annotation〉

〈xs:documentation〉詞性〈\/xs:documentation〉

〈\/xs:annotation〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"vi\"\/〉

〈\/xs:restriction〉

〈!—vi:表示不及物動詞--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈\/WordSemantics〉

〈\/Word〉

〈Word〉

〈WordID〉1) 〈\/WordID〉

〈EntryWord〉

〈xs:annotation〉

〈xs:documentation〉詞目〈\/xs:documentation〉

〈\/xs:annotation〉

〈WordName〉九畹〈\/WordName〉

〈pronounce〉

〈Kor〉?凅z?剰6〈\/Kor〉

〈Chi〉jiǔwǎn〈\/Chi〉

〈\/pronounce〉

〈\/EntryWord〉

〈WordInterpretation〉

〈xs:annotation〉

〈xs:documentation〉詞釋義〈\/xs:documentation〉

〈\/xs:annotation〉

〈OriginalNotes〉畹?剷2 ?勼?剹6 ?兗??剰2?剳

?勽?勵$ ?兙??凒??勼 20畝(一畝?凒? ?勬! 300?勞Q)·12?勞·30?勞?凒??冨z ?剟d?儍?.?勸\"?儔??勼?凒?‘?凍q?剹:?剹6 ?勼?勵$ ?兦??劔B?劗 ?劋$?凒??儍?’〈\/OriginalNotes〉

〈TranslationMeaning〉計量單位〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈xs:annotation〉

〈xs:documentation〉詞性〈\/xs:documentation〉

〈\/xs:annotation〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"qn\"\/〉

〈\/xs:restriction〉

〈!—qn:表示名量詞--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈\/WordSemantics〉

〈\/Word〉

〈Word〉

〈WordID〉2〈\/WordID〉

〈EntryWord〉

〈xs:annotation〉

〈xs:documentation〉詞目〈\/xs:documentation〉

〈\/xs:annotation〉

〈WordName〉樹〈\/WordName〉

〈pronounce〉

〈Kor〉?剰\"〈\/Kor〉

〈Chi〉 shù〈\/Chi〉

〈\/pronounce〉

〈\/EntryWord〉

〈WordInterpretation〉

〈xs:annotation〉

〈xs:documentation〉詞釋義〈\/xs:documentation〉

〈\/xs:annotation〉

〈OriginalNotes〉?劋$?凒??儍?(種).‘?剚?勞?剹6 ?勼?勵$ ?剳j?劔B?劗 ?劋$?劗?儍?’〈\/OriginalNotes〉

〈TranslationMeaning〉栽種〈\/TranslationMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈xs:annotation〉

〈xs:documentation〉詞性〈\/xs:documentation〉

〈\/xs:annotation〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"vt\"\/〉

〈\/xs:restriction〉

〈!—vt:表示及物動詞--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈\/WordSemantics〉

〈\/Word〉

〈BookAnnotation〉

〈BookLanguage〉Kor〈\/BookLanguage〉

〈\/ChuAnnotation 〉

最後我們以周建忠、賈捷注評《楚辭》(鳳凰出版社)片段(見圖329)為例,介紹簡體中文版楚辭注釋文本語義標注過程。

圖329中文簡體版《楚辭》語義標注實例周建忠,賈捷,注評.楚辭[M].南京:鳳凰出版社,2009.

實例35簡體中文版《楚辭》注釋語義標注片段如下:

〈xs:ChuAnnotation〉

〈xs:annotation〉

〈xs:documentation〉楚辭注釋文本〈\/xs:documentation〉

〈\/xs:annotation〉

〈!—簡體中文文版《楚辭》注釋文本語義標注實例--〉

〈ChuAnnotation〉

〈BookBibliography〉

〈BookTitle〉楚辭〈\/BookTitle〉

〈BookAuthor〉周建忠〈\/BookAuthor〉

〈BookAuthor〉賈捷〈\/BookAuthor〉

〈BookPublisher〉鳳凰出版社〈\/BookPublisher〉

〈BookPublication〉南京〈\/BookPublication〉

〈BookPubdate〉2009年6月〈\/BookPubdate〉

〈BookEdition〉第一版〈\/BookEdition〉

〈language〉Chi〈\/language〉

〈\/BookBibliography〉

〈BookChapter〉

〈ChapterName〉前言〈\/ChapterName〉

〈ChapterPage〉1〈\/ChapterPage〉

〈ChapterName〉離騷〈\/ChapterName〉

〈ChapterPage〉1—38〈\/ChapterPage〉

〈ChapterAbstract〉《離騷》是屈原的代表作。在先秦文學當中,《離騷》是最偉大的作品。“離騷”二字的題義有傳統兩種說法:一是劉安的“遭憂”說,二是王逸的“別愁”說。《離騷》的主要思想一是揭露了楚國政治的黑暗,二是表現了好修的美德與堅貞的操守,三是抒發了強烈的戀鄉興國之感。屈原對後代影響最大的是至死不離開鄉國的精神和堅貞的操節觀念。在表現手法上《離騷》極大地發展了《詩經》中的比興手法,使之由片段發展到係列,由具體發展到抽象,從而形成了象征體係,對後世的文學創作產生了深遠的影響。〈\/ChapterAbstract〉

〈\/BookChapter〉

〈BookAnnotation〉

〈xs:annotation〉

〈xs:documentation〉楚辭注釋文本〈\/xs:documentation〉

〈\/xs:annotation〉

〈Sentence〉

〈SentenceID〉①〈\/SentenceID〉

〈OriginalSentence〉帝高陽之苗裔兮,朕皇考曰伯庸①。攝提貞於孟陬兮,惟庚寅吾以降②〈\/OriginalSentence〉

〈AnnotatedSentence〉我的祖上可以追溯到遙遠的古代帝王—五帝顓頊氏。我又有很深感情以及受其教化培養的祖父—伯庸。〈\/AnnotatedSentence〉

〈AnnotatedLanguage〉chi〈\/AnnotatedLanguage〉

〈\/Sentence〉

〈word〉

〈wordID〉①〈\/wordID〉

〈EntryWord〉

〈WordName〉高陽〈\/WordName〉

〈pronunciation〉

〈Chi〉go yng〈\/Chi〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉帝名叫高陽〈\/OriginalNotes〉

〈MeaningInSentence〉是五帝之一顓頊的號〈MeaningInSentence〉

〈TranslationMeaning〉五帝顓頊氏〈\/TranslationMeaning〉

〈FromClassics〉

〈ClassicsTitle〉《史記·楚世家》〈\/ClassicsTitle〉

〈RecordsofClsssics〉“楚之先祖出自帝顓頊高陽。高陽者,黃帝之孫,昌意之子也。”〈\/RecordsofClsssics〉

〈ClassicsTitle〉《左傳》〈\/ClassicsTitle〉

〈RecordsofClssics〉昭公十七年雲:“衛,顓頊之虛也,故為帝丘。”杜預注曰:“衛,今濮陽縣,昔帝顓頊居之,其城內有顓頊塚。”〈\/RecordsofClsssics〉

〈ClassicsTitle〉《呂氏春秋》〈\/ClassicsTitle〉

〈RecordsofClsssics〉“帝顓頊生自若水,實處空桑”,則雲顓頊部落的原始居地為若水,在今之河南中部如周新鄭一帶。〈\/RecordsofClsssics〉

〈ClassicsTitle〉《古本竹書紀年》〈\/ClassicsTitle〉

〈RecordsofClsssics〉昌意降居若水,產帝乾荒〈\/RecordsofClsssics〉

〈ClassicsTitle〉《史記·屈原賈生列傳》〈\/ClassicsTitle〉

〈ClassicsAuthor〉司馬遷〈\/ClassicsAuthor〉

〈RecordsofClsssics〉屈原與“楚之同姓”〈\/RecordsofClsssics〉

〈ClassicsTitle〉《新序》〈\/ClassicsTitle〉

〈ClassicsAuthor〉劉向〈\/ClassicsAuthor〉

〈RecordsofClassics〉“屈原者,楚之同姓大夫〈\/RecordsofClassics〉

〈ClassicsTitle〉《楚辭章句》〈\/ClassicsTitle〉

〈ClassicsAuthor〉王逸〈\/ClassicsAuthor〉

〈RecordsofClassics〉顓頊娶於騰隍氏女而生老僮,是為楚先。其後熊繹事周成王,封為楚子,居於丹陽。周幽王時,生若敖,奄征南海,北至江、漢。其孫武王求尊爵於周,周不與,遂僭號稱王。始都於郢,是時生子瑕,受屈為客卿,因以為氏〈\/RecordsofClassics〉

〈\/FromClassics〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈xs:annotation〉

〈xs:documentation〉詞性(語義)〈\/xs:documentation〉

〈\/xs:annotation〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"na\"\/〉

〈\/xs:restriction〉

〈!—na:專有名詞特指人名--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈 \/xs:complexType〉

〈\/WordClass〉

〈\/WordSemantics〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉苗〈\/WordName〉

〈pronunciation〉

〈Chi〉mio〈\/Chi〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉禾苗〈\/OriginalNotes〉

〈MeaningInSentence〉樹木〈MeaningInSentence〉

〈\/WordInterpretation〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉裔〈\/WordName〉

〈pronunciation〉

〈Chn〉yì〈\/Chn〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉衣服的邊〈\/OriginalNotes〉

〈MeaningInSentence〉遠代〈MeaningInSentence〉

〈\/WordInterpretation〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉苗裔〈\/WordName〉

〈pronunciation〉

〈Chi〉mio yì〈\/Chi〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉後代〈\/OriginalNotes〉

〈ReferenceMeaning〉此引申為遠代的子孫〈ReferenceMeaning〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"na\"\/〉

〈\/xs:restriction〉

〈!—na:專有名詞特指人名--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈\/WordSemantics〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉兮〈\/WordName〉

〈pronunciation〉

〈Chi〉xī〈\/Chi〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉兮〈\/OriginalNotes〉

〈MeaningInSentence〉啊〈MeaningInSentence〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"y\"\/〉

〈\/xs:restriction〉

〈!—y:語氣詞--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈\/WordSemantics〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉朕〈\/WordName〉

〈pronunciation〉

〈Chi〉zhèn〈\/Chi〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉朕〈\/OriginalNotes〉

〈MeaningInSentence〉我〈MeaningInSentence〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈xs:complexType〉

〈xs:attribute name=\"WordClassType\"〉

〈xs:simpleType〉

〈xs:restriction〉

〈xs:simpleType〉

〈xs:restriction base=\"xs:token\"〉

〈xs:enumeration value=\"yh\"\/〉

〈\/xs:restriction〉

〈!—yh:人稱代詞--〉

〈\/xs:simpleType〉

〈\/xs:restriction〉

〈\/xs:simpleType〉

〈\/xs:attribute〉

〈\/xs:complexType〉

〈\/WordClass〉

〈\/WordSemantics〉

〈\/word〉

〈word〉

〈EntryWord〉

〈WordName〉皇考〈\/WordName〉

〈pronunciation〉

〈Chi〉hung〈\/Chi〉

〈\/pronunciation〉

〈\/EntryWord〉

〈WordInterpretation〉

〈OriginalNotes〉祖先〈\/OriginalNotes〉

〈MeaningInSentence〉指屈原已去世的祖父〈\/MeaningInSentence〉

〈\/WordInterpretation〉

〈WordSemantics〉

〈WordClass〉

〈WordClassType〉na〈\/WordClassType〉

〈\/WordClass〉

〈\/WordSemantics〉

〈\/word〉

〈BookLanguage〉Chi〈\/BookLanguage〉

〈\/ChuAnnotation〉

3.2.2資源描述框架——RDF

楚辭文獻語義知識組織的核心是對楚辭文獻內容的語義(包括校勘文字、字詞注音、詞義標注、詮釋各種典故、考證典章等)進行揭示和表達,楚辭文獻的語義非常複雜,往往隱藏在不同的楚辭文本之中,若要實現楚辭網絡文獻的語義化知識組織就必須要解決楚辭文獻資源描述與揭示的問題。從楚辭文獻的語義揭示角度看,XML在描述楚辭文獻時,是通過元素標簽之間並列與嵌套來表達楚辭文獻之間以及文獻數據內容之間的語義關係,但是因為XML所表達的語義隱藏於XML結構與它的標簽之間,這種通過元素標簽之間的層層嵌套表達的楚辭文獻隱含的語義常常是不確定的,計算機在對楚辭文獻語義處理時很容易產生歧義現象,這種結構表達的隱含語義關係不利於機器對楚辭文獻的理解和處理,難以表達楚辭文獻之間以及楚辭文本內容之間的確切的語義關係。XML適合表達楚辭文獻元數據的語法,但不能表達楚辭文獻數據的語義。另外一方麵,XML在描述楚辭文獻知識元時缺乏靈活性,數字化的楚辭文獻資源在萬維網上的結構是網狀的, 而XML描述數據資源是一種樹狀結構, XML架構在揭示網狀的楚辭文獻知識元必然會出現語義上的缺失,這就需要使用一種更加簡潔有效的資源描述框架來描述萬維網上複雜的文獻知識元。這種描述框架首先應該基於XML架構;其次在該框架之下可方便地描述各種類型網絡資源,同時可以揭示並顯示資源之間以及資源內容之間的語義關係;最後該框架必須適用於萬維網上網狀資源的應用且其結構宜簡單與易擴展。W3C據此推出了資源描述框架——RDF,最早的版本是1999年公布的資源描述框架RDF的推薦標準(Lassila et al.,1999)W3C.RDF推薦標準[EB\/OL].[20170711].https:\/\/www.w3.org\/TR\/1998\/WDrdfsyntax19980720\/.,成為語義知識組織的核心技術之一。

資源描述框架(resource description framework,RDF)是用於表達萬維網上各種類型文獻資源的元數據(如標題、關鍵詞、摘要、創作者、創作時間、載體、語言等)及其語義關係的模型或框架,由於XML是現有Web上的數據標準,RDF采用XML作為表示語言。此外RDF還提供了基於XML的語法(稱為RDF\/XML)以存儲與進行數據交換。RDF作為W3C的推薦標準,其規範文檔與存取地址如表37所示。表37W3C的RDF推薦標準W3C.RDF模式規範[EB\/OL].[20170711].https:\/\/www.w3.org\/TR\/2004\/RECrdfprimer20040210\/#rdfmodel.

標準名稱標準存取地址發布日期RDF語法規範(RDF\/XML)http:\/\/W3C.org\/TR\/rdfsyntaxgrammar\/2004.2.10RDF詞彙描述語言1.0:RDF Schemahttp:\/\/W3C.org\/TR\/rdfschema\/2004.2.10RDF入門http:\/\/W3C.org\/TR\/rdfprimer\/2004.2.10RDF概念和抽象語法http:\/\/W3C.org\/TR\/rdfconcepts\/2004.2.10RDF語義http:\/\/W3C.org\/TR\/rdfmt\/2004.2.10RDF測試用例http:\/\/W3C.org\/TR\/rdftestcases\/2004.2.10資源描述框架主要由RDF模型、RDF\/XML語法、RDFS(RDF Schema)與RDF語義所構成。從RDF理念與語法框架可以看出RDF與XML的本質區別是它們的語義表達方式不同。XML作為可擴展標記語言,其表達的語義隱含在XML文檔的標記和其結構中,它難以表達可被機器理解的語義,資源描述框架是W3C支持發展起來的描述元數據的基礎架構,利用該架構可以對結構化的文獻元數據進行編碼、交換與再利用。該基礎架構通過設計支持語義、語法與結構方麵的通用協議機製,使得元數據具有了語義交互可操作性。資源描述框架使用XML作為交換與描述加工元數據的通用語法。2000年3月W3C推出的“RDF模式規範”1.0版考慮了四方麵影響:一是因特網內容選擇平台(Platform for Internet Content Selection,PICS),資源描述框架模型和語義適合表達PICS標識;二是提供描述簡單的網上元數據,這是資源描述框架的一個顯著應用;三是提供描述網站地圖與概念導航。資源描述框架模式規範為製作資源描述模型提供足夠的資源,這些模型表述了此表(如漢語主題詞分類表與圖書館分類法係統)的邏輯結構;四是支持W3C的個人參數平台項目(Platform for Privacy Preference Project,P3P),P3P策略的結構可以用資源描述框架進行闡釋,利用元數據模式描述個人元數據,作用於個人的元數據描述模式規範的內容包括:種類(Class)及其屬性(Property)、限製(Constraint)、文檔記錄(Documentation)、模型與語義概念(Model and syntax concept)、擴展機製(Extensibility mechanisim)。資源描述框架定義的元數據描述機製是不確定領域的,它適用於描述任何領域的信息源。資源描述框架具有以下主要特點:一是資源描述框架提供一致化的資源描述機製,它為各種不同資源描述提供統一的表述資源及其描述語法的數據模型;二是資源描述框架隻為用戶提供資源描述的基本架構,它允許不同領域的用戶根據需要編製各自所需要的詞彙表來描述領域元數據的語義;三是資源描述框架提供不同元數據的相互兼容機製,為各種元數據提供互操作性,為其提供相互作用與相互轉換的平台。以下我們結合楚辭文獻元數據描述領域的應用,從資源描述框架(簡稱RDF)的數據模型、語法規範和特殊表達三個方麵對資源描述框架進行詳細論述。

(一) RDF數據模型

RDF的基本思想是:利用URI(Uniform Resource Identifier:統一資源標識符,即標識、定位任何資源的字符串)來標識定位任何事物,將所有可在萬維網上標識的事物(包括具體的、抽象的、存在的實體、不存在的虛擬物等)統稱資源,並利用屬性與屬性值描述資源,這裏屬性與屬性值同樣是資源,都可包含URI。通過URI可以引用任何可被標識的事物(又稱資源),利用這種方法RDF就可以通過資源屬性關聯,使萬維網上資源鏈接到任何地方,描述所有的網上資源。每個資源都有屬性(Property),每個屬性都有特殊含義,屬性用來描述資源的特性、特征或關係,和資源相關的屬性被定義為屬性類型(Property Type),它有與之對應的屬性值(Value),屬性類型表示所描述的資源同與之相關的值之間的關係,這裏的屬性值可以是文字字符串、數字,也可以是其他資源,它還可以有自己的屬性。有關同一資源屬性的集合被稱為陳述,對資源的描述可以通過對它做出指定了上述屬性及值的陳述來進行。RDF的核心就是表達資源和與之相關描述的語法的模型。基於上述思想,RDF模型將一個或者多個關於資源的描述表示為一個資源鏈接的有向圖,該圖由結點與有向邊組成,使用結點表示資源或資源的屬性值,使用邊表示屬性。RDF從自然語言的描述發展而來,使用語法如“主語—謂語—賓語”的三元組來描述萬維網上的資源及各種資源之間的關係,並提供一種基本的結構,從而在萬維網上對這些元數據進行編碼、交換和重用。RDF用一套特定的術語來表達陳述中的各個部分。確切地說,關於事物的陳述中用於識別事物的那部分就叫做主語,而用於區分陳述對象主語的各個不同屬性(譬如作者、創建日期、語種等)的那部分就叫作謂語,陳述中用於區分各個屬性的值的那部分叫賓語。圖330顯示了一個常見的RDF描述框架。

圖330資源描述框架數據模型

RDF模型中的基本概念包括:資源(Resource)、屬性(Property)、聲明和圖。

首先資源是一個對象或者事物,資源可以是文獻、作者、出版者、出版地、讀者、商場、超市,也可以是地址,如圖書館建築等。在萬維網上每一個資源都有一個URI,URI可以是一個URL(統一資源定位符或稱網址)或者其他唯一標識符(如圖書的ISBN、期刊的ISSN、電話號碼、EMAIL、門牌號等),這種URI描述資源的機製,可以使用URL資源標識符,使用戶能獲取資源本身(如一本書),也可以獲得該資源更多的描述(如作者、出版者等),它可以大大緩解萬維網上的數據的一詞多義的問題。RDF模型中的屬性被作為一類特殊的資源,它的作用是描述資源和資源之間的關係(如書和作者之間創作與被創作關係),屬性也由URI標識,可以使用解析引用屬性的URL來查找到對屬性的描述。RDF模型中的聲明斷言了資源的屬性,RDF中一個聲明是一個實體資源—屬性—屬性取值的三元組,屬性取值可以是一個資源也可以是文字,文字是原子值(如字符串、數字、日期等)。下麵就介紹一個RDF簡單數據模型:

(1) RDF簡單數據模型

我們以一本楚辭文獻資源《楚辭考論》的RDF描述為例來闡述資源描述框架的簡單數據類型。關於《楚辭考論》的作者可以語言表述為:“《楚辭考論》的著者是周建忠”、“周建忠著《楚辭考論》”,對人的理解來說,這兩種表述的意思是相同的,都聲明了《楚辭考論》的著者,但對計算機來說,這兩句陳述卻是完全不同的字符串,其無法理解兩句陳述的語義,我們利用RDF模型, 可以通過“資源→屬性→屬性值”三元組,就提供了機器可讀的方法表達不同陳述語句的明確的語義。如圖331所示。

圖331RDF簡單數據模型

圖331中,描述了兩個陳述語句“《楚辭考論》的創作者是周建忠”和“周建忠創作《楚辭考論》”,RDF模型的基本架構是通過三元組表達簡單的資源陳述,其中每個陳述都是由主語(subject)、謂語(predicate)、賓語(object)組成的。

RDF三元組描述語法如下:

主語是“《楚辭考論》”,其URL: http:\/\/222.192.62.8\/opac\/item.php?marc_no=000174609.

謂語是詞“creator”,其URL:http:\/\/purl.org\/dc\/elements\/1.1\/creator.

賓語是短語“ZhouJianzhong”,其URL:http:\/\/chuci.ntu.edu.cn\/ staffname\/ZhouJianzhong.

這裏的RDF三元組簡單數據模型是一個可用來區分一個陳述中的主語、謂語、賓語的機器可處理的標識符係統;同時它也是一種用以表示這些陳述並讓這些陳述可在計算機之間交流的機器可處理語言。在統一資源標識符(URI)中,URL是URI的一種具體形式,所有URI都具有共同的特征,即不同的人或組織可以彼此獨立地創建並使用URI來標識事物。URI並不局限於標識具有網址的資源,用戶可創建URI來引用陳述中需要被標識的任何資源,包括網絡可訪問資源、非網絡可訪問資源(如人、學校、圖書館書籍等)、非物理存在的抽象概念(如“creator”這個概念)。

RDF使用URI引用(URI references,簡稱URIref),一個URIref是一個在尾部附加了可選的片段識別符的URI,如URIref:http:\/\/chuci.ntu.edu.cn#。RDF URIrefs可以包含Unicode字符,允許在URIrefs中使用多種語言。RDF將“資源(resource)”定義為任何可被URI引用(URIref)標識的事物。因此,當使用URIrefs時,RDF實際上就可以描述任何事物,並陳述這些事物之間的關係。為了用一種機器可處理的方式來表示RDF陳述(RDF statements),RDF采用可擴展標記語言(XML)。RDF定義了一個特殊的XML標記語言(稱為RDF\/XML)來實現RDF和計算機交換信息。RDF在圖模型中使用節點和弧作為陳述的元素,在這個表示法(圖示法)中,一個陳述可表示為:一個表示主語的節點、一個表示賓語的節點和一個由主語節點指向賓語節點的表示謂語的弧。

上述實例中名稱空間標識采用都柏林核心模式,則相應的表達上述簡單RDF模型的XML代碼如下(關於RDF\/XML語法說明將在後續章節詳細闡述):

〈?xml:namespace ns=\"http:\/\/www.w3.org\/RDF\/RDF\/\" prefix=\"RDF\"?〉

〈?xml:namespace ns=http:\/\/purl.oclc.org\/DC\/ prefix=\"DC\"?〉

〈RDF:RDF〉

〈RDF:Description

RDF:HREF=http:\/\/222.192.62.8\/opac\/item.php?marc_no=000174609〉

〈DC:Creator〉 ZhouJianzhong〈\/DC:Creator〉

〈\/RDF:Description〉

(2) RDF的擴展數據模型(如圖332)

圖332RDF擴展數據模型

圖331描述的資源屬性是單一的,如果要描述更多資源屬性信息,如作品的創作時間、作品語種以及關於作者的更多信息,就需要擴展RDF簡單數據模型,圖332是擴展的RDF數據模型,它描述了如下陳述句:

http:\/\/chuci.ntu.edu.cn\/ has a creationdate whose value is July 1,2004.

http:\/\/chuci.ntu.edu.cn\/ has a language whose value is Chi

以上陳述分別描述了:“楚辭研究網站創建於2003年12月1日”、“楚辭研究網站語言是中文”,它可以使用圖332所示的RDF擴展數據模型圖模式來表示(用URIrefs標識屬性“creationdate”和“language”)。

在RDF陳述中賓語可以使用URIrefs,也可使用常量值(表示某種屬性值的字符串或數值),例如在圖332中的謂語“http:\/\/purl.org\/dc\/elements\/1.1\/language”,就使用了常量值文字:英文雙字母cn,在RDF圖中,如果節點為URIrefs,則用橢圓來表示,如果節點為文字,就使用方框來表示。這裏簡單字符串文字被稱作平凡文字,數據類型的值被稱為類型文字,平凡文字和類型文字都采用統一字符編碼UNICODE字符,允許使用多種語言描述信息。當處理複雜語法結構時,很難使用畫圖陳述,這時就會用到三元組替代書寫陳述,即將圖中的每個陳述都寫成一個依次為主語、謂語、賓語的三元組。圖332所表示的陳述用三元組書寫的陳述來如下:

〈http:\/\/ chuci.ntu.edu.cn〉 〈http:\/\/purl.org\/dc\/elements\/1.1\/creator〉

〈http:\/\/ chuci.ntu.edu.cn\/staffname\/ZhouJianzhong 〉.

〈http:\/\/chuci.ntu.edu.cn〉〈http:\/\/chuci.ntu.edu.cn\/terms\/creationdate〉\"July 1,2004\"

〈http:\/\/chuci.ntu.edu.cn〉 〈http:\/\/purl.org\/dc\/elements\/1.1\/language〉\"Chi\"

每個三元組都對應著RDF圖形中的一條弧,這條弧的開始節點與終止節點分別代表陳述中的主語與賓語。與圖形表示法不同的是三元組表示法中的每一個節點在它出現的每個陳述中都要有標識,如“http:\/\/chuci.ntu.edu.cn”在圖332的三元組中共出現了三次(在每個三元組中都出現一次),三元組表示法和圖示法描述的信息完全相同,說明RDF的基礎是陳述的圖模型。三元組表示法要求寫出完整的URIref(括在尖括號中),這會導致頁麵中出現很多長句,出於簡便,可采用簡寫法書寫三元組。類似XML的命名空間,簡寫法中使用QName(不用尖括號的XML限定名)作為一個完整URIref縮寫形式,一個QName包括一個被賦為命名空間URI的前綴,後接冒號,再後接局部名稱,通過QName將局部名稱添加到已經賦了命名空間URI的前綴就可生成完整的URIref,比如,我們將命名空間URI“http:\/\/example.org\/somewhere\/bar”賦值給QName前綴foo,那麼QName“foo:bar”就是URIref“http:\/\/example.org\/somewhere\/bar”的縮寫,QName前綴定義如表38所示。表38QName前綴定義表

前綴命名空間標識符rdf:http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#rdfs:http:\/\/www.w3.org\/2000\/01\/rdfschema#dc:http:\/\/purl.org\/dc\/elements\/1.1\/owl:http:\/\/www.w3.org\/2002\/07\/owl#ex:http:\/\/www.example.org\/(or http:\/\/www.example.com\/)xsd:http:\/\/www.w3.org\/2001\/XMLSchema#還包括一些“http:\/\/chuci.ntu.edu.cn\/”前綴“cc:”的變形,如表39所列實例。表39“cc:”的變形

前綴命名空間標識符含義ccterms:http:\/\/chuci.ntu.edu.cn\/term\/Chuci組織使用的術語ccstaff:http:\/\/chuci.ntu.edu.cn\/staffname\/Chuci組織的員工姓名ccexpert:http:\/\/chuci.ntu.edu.cn\/expetdatabase\/Chuci數據庫中楚辭專家用這種簡寫法,圖332的三元組可以寫成如下形式:

cc: ntu.edu.cndc: creatorccstaff: ZhouJianzhong

cc: ntu.edu.cnccterms: creationdate\"July 1,2003\".

cc: ntu.edu.cndc: language\"Chi\".(中文)

(二) RDF結構化的屬性值、空節點與類型文字

(1) RDF結構化的屬性值

使用簡單的RDF語句來描述文獻信息非常簡單,但現實的文獻數據單元形式遠比簡單的RDF語句所能描述的形式要複雜得多,例如我們記錄文獻創作日期是簡單的creationdate屬性,該屬性值可以是簡單的字符型,但也可能需要分別記錄年、月、日甚至涉及版本朝代等複雜信息;又比如我們在描述楚辭研究中心網頁(http:\/\/chuci.ntu.edu.cn\/)信息的創建者ZhouJianzhong的個人信息單元時可能更加複雜,例如他的地址就需要由一個街道、城市、省、國家和郵政編碼組成的結構來描述,ZhouJianzhong的地址可以寫作一個簡單的字符串,或者一個三元組描述“嗇園路9號,南通市,江蘇省 226019”,像這種結構化的數據信息在RDF中可通過以下方式描述:首先把被描述的資源聚合體(如作者住址)看成一個新的資源,然後發表關於該新資源的RDF陳述。在RDF圖中,為了將ZhouJianzhong的住址分解成它的各個組成部分,一個用來描述ZhouJianzhong的住址的新節點就隨之產生了,此時用一個新的URIref來標識,如http:\/\/chuci.ntu.edu.cn\/addressid\/26001,(可以縮寫成“exaddressid:26001”)。把這個節點作為主語,RDF陳述(附加的弧和節點)可用來描述附加的信息,如圖333所示。

圖333ZhouJianzhong的地址

(2) RDF空節點

圖333中描述RDF結構化數據的方法會產生很多的中間URIrefs,當描述集合體概念時,比如標識ZhouJianzhongs address的URIref:http:\/\/chuci.ntu.edu.cn\/addressid\/26001,這個概念可能從來不會被從RDF圖的外部引用,因此可能不需要通用的標識符;此外也可能標識“ZhouJianzhong的地址”的URIref並不是真正需要的,在這種情況下,為了減少冗餘,圖333可以簡化為圖334所示。圖334是一個近乎完美的RDF圖,它使用了一個沒有URIref的空節點來表示“ZhouJianzhongs address”這一概念,空節點又被稱作匿名資源(anonymous resources)。圖334中的空節點雖然沒有URIref,但表達了應有的含義,因為這個空節點本身提供了RDF圖中各個部分之間必需的連通作用,這裏為了把該圖表示為三元組的形式,需要一個能以某種形式清楚地表示該空節點的標識符。以下是與圖334所示內容相應的三元組RDF描述:

ccstaff: Zhou Jianzhongccterms: address_: name.

_: nameccterms: street\"嗇園路9號\".

_: namecctrems: city\"NanTong\".

_: nameccterms: province\"Jiangsu\".

_: nameccterms: postalCode\"226019\".

這裏“_: name”出現的地方就是空節點出現的地方,一個複雜圖所包含空節點可能會有許多個,這時候就需要使用一種區分圖中所出現不同的空節點的辦法,為此使用空節點標識符,即以“_: name”形式表示空節點。如在上例中使用空節點標識符“_: ZhouJianzhongaddress”來表示空節點,其相應RDF三元組可寫成如下形式:

ccstaff: 26001 ccterms: address_: Zhou Jianzhongs name.

_:Zhou Jianzhongs addressccterms: street\"嗇園路9號\".

_:ZhouJianzhongnamecctrems: city\" NanTong\".

_:ZhouJianzhongnameccterms: province\" Jiangsu\".

_:ZhouJianzhongnameccterms: postalCode\"226019\".

圖334RDF空節點

與URIref和文字不同的是空節點標識符被認為不是RDF圖的實際組成部分,空節點標識符隻在用三元組表示單一圖的時候才有意義,兩個有相同空節點數的RDF圖可能會單獨使用相同的空節點標識符用以區分那些空節點,如果需要從圖的外部引用圖中一個節點,那就需要賦予一個URIref值來標識該節點。這裏由於使用空節點標識符表示的是空節點而不是弧,因此在三元組表達式中,空節點標識符隻能出現在主語與賓語位置,不能出現在謂語的位置。該例子表明RDF隻能直接表示二元關係,例如Zhou Jianzhongs address和描述他的地址文字間的關係。要描述Zhou Jianzhong和由這個地址的每個單獨部分組成的組的關係時,就涉及處理一個N元關係,這裏是五元關係,五元分別是Zhou Jianzhong、street、city、province和postalCode,要直接描述五元結構,就必須把五元關係分解為多個二元關係,利用空節點可以完成這個任務,具體方法是:對於每個N元關係,我們選擇其中的一元作為該關係的主語(如Zhou Jianzhong),創建一個空節點來描述其餘的關係(如Zhou Jianzhongs address),將其他元(如postalCode)描述成由空節點標識的新資源的各個單獨的屬性。

對於那些沒有URI的資源,空節點通過和那些有URI的資源的關係來描述這些資源。如當發表對一個人的陳述時,會使用基於此人的email地址的URI作為他的URI,比如我們在描述楚辭研究中心學者賈捷時,使用她的個人email地址“mailto: jiajie@ntu.edu.cn”,但這可能會導致某些問題出現,當需要同時描述關於賈捷的實際住址和她的郵箱服務器地址這兩條信息時,使用基於賈捷郵箱地址的URI作為她的URIref的話,就會很難區分RDF所表示的究竟是賈捷地址還是賈捷郵箱,該問題出現的根本原因是用賈捷的郵箱來標識賈捷是不正確的,賈捷與她的郵箱是兩個概念,應該區別對待,當賈捷自己沒有URI時,賈捷可以由一個空節點表示,並使用以“ccterms: mailbox”為屬性的空節點作為陳述的主語,同時可使用URIref“mailto: jiajie@ntu.edu.cn”作為該屬性的值,該空節點也可用值為“ccterms: Person”的一個“rdf: type”屬性來表述,具體描述如以下三元組所示:

_:賈捷ccterms: mailbox〈mailto: jiajie@ntu.edu.cn〉.

_:賈捷rdf: typeccterms:Person.

_:賈捷ccterms: name\"賈捷\".

_:賈捷ccterms: age\"30\".

上述三元組表達了一個資源,其類型為ccterms:Person,其電子郵箱是由“mailto: jiajie@ntu.edu.cn”來標識的,名字是賈捷等信息。需要注意的是在此三元組中的“mailto: jiajie@ntu.edu.cn”被寫在兩個尖括號的裏麵,這是因為“mailto: jiajie@ntu.edu.cn”在mailto URI模式中是個完整的URIref,而不是一個QName縮寫,在三元組表示法中,一個完整的URIref必須寫在一對尖括號之內。空節點在這裏相當於一個資源,以此空節點作主語的陳述提供了關於該資源特性方麵的信息。這種方法可幫助我們避免不恰當地使用文字,如當描述賈捷的文章而又缺少一個識別作者的URIref時,雜誌社就可能這樣寫(使用雜誌社自己的cc2terms:詞彙表):

cc2terms: paper2009,06:122123rdf: typecc2terms: Paper.

cc2terms: paper2009,06:122123cc2terms: author\"賈捷\".

但是,文章的作者卻不是字符串“賈捷”,而是一個名叫賈捷的人。於是,當雜誌社用一個空節點時,相同的信息就可能會被更準確地表達出來:

cc2terms: paper2009,06:122123rdf: typecc2terms: Paper.

cc2terms: paper2009,06:122123cc2terms: author_: author2009,06:122123.

_: author2009,06:122123 rdf: typecc2terms: Person.

_: author2009,06:122123 cc2terms: name\"賈捷\".

(3) RDF類型文字

在程序設計語言或數據庫係統中一般都會給文字定義一個數據類型,例如可以用整數型(int)描述年齡的變量,在RDF中可使用類型文字來提供這類文字信息,RDF類型文字使用字符串和URIref配對表示文字信息。類型文字就是表示把指定字符串賦值給指定的數據類型的值。例如在圖333中的類型文字Zhou Jianzhong的年齡被表述成在三元組中使用的整數“63”:〈http:\/\/chuci.ntu.edu.cn\/ staffid\/26001〉 〈http:\/\/chuci.ntu.edu.cn\/terms\/age〉

\"63\"^^〈http:\/\/www.w3.org\/2001\/XMLSchema#integer〉.也可以使用QName簡化URI寫成如下表達式:ccstaff: Zhou Jianzhongccterms: age\"63\"^^ xsd: integer. 或如圖335所示。圖335類型文字的表示

同樣,在圖332的RDF擴展數據模型中所表述的楚辭研究網頁信息中,網頁創建日期“ccterms: creationdate”的屬性值被寫成平凡文字“July 1,2003”,假如這裏使用類型文字,則該網頁創建日期就可以寫成:2003年7月1號(July 1,2003),用三元組表示就是:

cc: ntu.edu.cnccterms: creationdate\"20030701\"^^xsd: date.

用RDF圖表示如圖336。

圖336楚辭研究網站網頁創建日期的類型文字

與高級程序語言或數據庫係統使用內置數據類型說明文字不同的是,RDF使用類型文字來說明應該用什麼數據類型表示已給定的文字,類型文字中使用的類型是在外部定義並由其數據類URI來確定的。如圖335、圖336的實例均使用了整數類型,這些都來自XML數據類型定義。用這種方法的優點是在表述來自不同信息源的信息時,不需要在信息源與RDF數據類型集之間進行轉換。RDF數據類型概念基於XML數據類型概念的架構,這種架構定義了如下部分數據類型:① 值空間(value space):用數據類型文字表示的值的集合(如XML模型數據類型xsd: date的值空間是日期的集合);② 詞法空間(lexical space):用來表示數據類型的值的字符串集合,一種數據類型的詞法空間是一個雙字節字符串的編碼集(unicode),它允許直接表示各種語言的文字。詞法空間決定了哪種字符串可以符合規則地表示該數據類型的文字(如數據類型xsd: date定義了“20030701”是符合規則的表示時間的寫法);③ 詞—值映射(lexicaltovalue):從詞空間到值空間的映射,它決定了一個取自詞法空間裏的,表示該特殊數據類型的一個特定字符串的值,如xsd: date的詞—值映射決定了該數據類型的字符串“20030701”表示日期“July 1,2003”。詞—值映射是個重要因素,因為相同的字符串可能為不同數據類型並表示不同的值。適合在RDF中使用的數據類型必須符合上述概念框架,對於一個特定字符串,數據類型必須明確指明該字符串是否在它的詞法空間裏以及該字符串在其值空間裏所表示的值。如基本的XML數據類型適合用在RDF中;而某些XML內建數據類型就不適合用在RDF中。對在RDF圖中出現的類型文字的實際解釋,應該由那些編寫成能正確處理RDF與類型文字的數據類型的軟件來完成,該軟件必須能處理一種RDF擴展語言,可將RDF與數據類型都作為其內置詞彙表的一部分。

(三) RDF語法規範(RDF\/XML)

為了與現行網絡數據標準統一,RDF提供了一種被稱為RDF\/XML的XML語法規範來書寫與交換RDF圖。與使用三元組作為RDF的簡略記法不同的是,RDF\/XML是書寫RDF的規範性語法(normative syntax),本節舉例描述RDF\/XML語法規範的內容。

(1) RDF\/XML基本原理

以例子來說明RDF\/XML語法的基本思想。例321:英文描述:http:\/\/chuci.ntu.edu.cn has a creationdate whose value is July 1,2003。這個陳述可用RDF圖來表示(其中的creationdate屬性已指定了URIref),如圖337所示。

圖337描述楚辭研究網站的創建日期的RDF圖

圖337用三元組表示代碼如下:

cc: ntu.edu.cnccterms: creationdate\"July 1,2003\".

例321:描述網頁創建日期的RDF\/XML(顯示圖337所對應的RDF\/XML語法)

[1]〈? xml version=\"1.0\"?〉

[2]〈rdf:RDF xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"

[3]xmlns: ccterms=\"http:\/\/chuci.ntu.edu.cn\/terms\/\"〉

[4]〈rdf: Description rdf: about=\"http:\/\/chuci.ntu.edu.cn\"〉

[5]〈ccterms: creationdate〉July 1,2003〈\/ccterms: creationdate〉

[6]〈\/rdf: Description〉

[7]〈\/rdf:RDF〉

以下依次說明這段XML代碼各行的作用:第1行XML聲明這段代碼是XML 1.0版本;第2行以rdf: RDF元素開始表明該行以下XML內容是表述的RDF, rdf: RDF其後的xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"是XML命名空間聲明,該聲明指明在當前內容中出現的所有前綴為rdf:的標簽都屬於由下列URIref所標識的命名空間:開頭的URIrefs用於標識來自RDF詞彙表中的術語;第3行是另一個XML命名空間聲明(前綴exterms:),該聲明用rdf: RDF元素的另一個xmlns屬性來表示,它指明了前綴exterms:與命名空間URIrdf “http:\/\/chuci.ntu.edu.cn\/terms\/”關聯,以“http:\/\/chuci.ntu.edu.cn\/terms\/”開始的URIrdfs用於由楚辭研究中心(http:\/\/chuci.ntu.edu.cn)定義的詞彙表中的術語,第3行末尾的“〉”符號表明rdf: RDF首標簽的結束。前3行表明了當前的內容是RDF\/XML,並聲明了內容中所使用的命名空間,這些是必需的;第4~6行是之前陳述的RDF\/XML的主要部分,這裏的陳述是有關“http:\/\/chuci.ntu.edu.cn”的描述。第4行“rdf: Description”的起始標簽表明某個資源描述的開始,它標識了陳述所針對的主語資源,RDF\/XML采用“rdf: about”屬性來指定主語資源的URIref;第5行以“QName ccterms: creationdate”為標簽,提供屬性元素來表示謂語以及陳述的賓語,選擇“QName ccterms: creationdate”,可將本地名稱“creationdate”擴展為“http:\/\/chuci.ntu.edu.cn\/terms\/creationdate”,該屬性元素的內容就是陳述的賓語(即平凡文字“July 1,2003”),即是主語資源的“creationdate”屬性的值。屬性元素(property element)在rdf: Description元素所包含內容中以嵌套的形式存在,表明該屬性應用於“rdf: Description”元素的“rdf: about”屬性所指定的資源;第6行表示這個“rdf: Description”的結束;第7行表示從第2行開始的“rdf: RDF”元素到此結束。

例321展現了RDF\/XML將一個RDF圖描述為XML元素、屬性、元素內容與屬性值的基本思想。謂語URIrefs寫作XML QNames,包含一個簡短的前綴(代表命名空間URI)與一個內部名(代表命名空間中的元素或屬性);主語結點URIrefs寫成XML屬性值(賓語結點的URIrefs有時也可被寫為屬性值);文字結點(總是賓語結點)寫為元素的文本內容或屬性值。對於包含多個陳述的RDF圖可以用下麵RDF\/XML方式書寫:用類似於例321中的第4至6行的書寫方式分別表達RDF圖中的陳述。例如對於以下兩個陳述:

cc: ntu.edu.cnccterms: creationdate\"July 1,2003\".

cc: ntu.edu.cndc: language\"Chi\".

可以用以下實例來表示。

例322:包含兩個陳述的RDF\/XML代碼

[1]〈? xml version=\"1.0\"?〉

[2]〈rdf:RDF xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"

[3]xmlns: dc=\"http:\/\/purl.org\/dc\/elements\/1.1\/\"

[4]xmlns: ccterms=\"http:\/\/chuci.ntu.edu.cn\/terms\/\"〉

[5]〈rdf: Description rdf: about=\"http:\/\/chuci.ntu.edu.cn\"〉

[6]〈ccterms: creationdate〉July 1,2003〈\/ccterms: creationdate〉

[7]〈\/rdf: Description〉

[8]〈rdf: Description rdf: about=\"http:\/\/chuci.ntu.edu.cn\"〉

[9]〈dc: language〉Chi〈\/dc: language〉

[10]〈\/rdf: Description〉

[11]〈\/rdf:RDF〉

以上這段代碼相比例321多了一個表達第二個陳述的“rdf: Description”元素(第8、9、10行),在第3行中給出了另一個命名空間聲明以標識在第二個陳述中用到的命名空間。用同樣的方式我們還可以添加任意多個陳述,隻需要對每條陳述分別使用一個“rdf: Description”元素。在例322中可以看出一旦書寫完成XML和命名空間聲明,RDF\/XML中各個RDF陳述的書寫就變得簡明。此外,RDF\/XML語法提供了多種簡略表達方式使得書寫簡便,在例322中就使用了多個屬性和屬性值來描述同一資源,資源“cc: ntu.edu.cn”同時作為多個陳述的主語,此時RDF\/XML允許在標識該主語的“rdf: Description”元素下嵌入多個屬性元素來表達屬性。如要表達下列一組關於資源http:\/\/chuci.ntu.edu.cn的陳述:

cc: ntu.edu.cndc: creatorccstaff: ZhouJianzhong.

cc: ntu.edu.cnccterms: creationdate\"July 1,2003\".

cc: ntu.edu.cndc: language\"Chi\".

它所對應的RDF圖如圖338所示。

圖338關於同一資源的多個陳述

例323:RDF\/XML簡略表達多個屬性(圖338所對應的RDF\/XML代碼)

[1]〈? xml version=\"1.0\"?〉

[2]〈rdf:RDF xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"

[3]xmlns: dc=\"http:\/\/purl.org\/dc\/elements\/1.1\/\"

[4]xmlns: ccterms=\"http:\/\/chuci.ntu.edu.cn\/terms\/\"〉

[5] 〈rdf: Description rdf: about=\"http:\/\/chuci.ntu.edu.cn\"〉

[6]〈ccterms: creationdate〉July 1,2003〈\/ccterms: creationdate〉

[7]〈dc: language〉Chi〈\/dc: language〉

[8]〈dc:creator rdf: resource=\"http:\/\/chuci.ntu.edu.cn\/staffname\/ZhouJianzhong \"\/〉

[9] 〈\/rdf: Description〉

[10]〈\/rdf:RDF〉

與前麵兩個例子相比,例323中多了一個“dc: creator”屬性元素(第8行),此外表達主語http:\/\/chuci.ntu.edu.cn的三個屬性都嵌套在同一個“rdf: Description”元素(標識主語http:\/\/chuci.ntu.edu.cn)裏,而不是為陳述各自單獨寫“rdf: Description”元素。第7行中的dc: language元素與例321中的ccterms: creationdate元素類似,都使用平凡文字表示屬性值,都用與屬性名稱對應的首標簽(starttag)與尾標簽(endtag)將上述文字括起來。第8行中的“dc: creator”元素表示一個屬性值為另一個資源的屬性。如果把該資源的URIref寫成被括在首標簽和尾標簽中的平凡文字(像前兩個元素那樣),這將表示“dc: creator”元素的值是字符串“http:\/\/chuci.ntu.edu.cn\/staffname\/ZhouJianzhong”,而不是由該字符串代表的URIref標識的資源,為了表明這一區別,“dc: creator”元素被寫成空元素標簽的形式,同時用一個“rdf: resource”屬性來表達屬性的值。“rdf: resource”屬性表明屬性元素的值是另一個用URIref標識資源。由於該URIref要作為屬性值,RDF\/XML要求這個URIref必須被寫成絕對URIref或相對URIref形式,而不能像寫元素名或屬性名那樣被簡略為QName。

例324:用分開的陳述書寫RDF\/XML的案例(同樣描述了圖338,其中各個陳述被分開書寫)

〈? xml version=\"1.0\"?〉

〈rdf:RDF xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"

xmlns: dc=\"http:\/\/purl.org\/dc\/elements\/1.1\/\"

xmlns:ccterms=\"http:\/\/chuci.ntu.edu.cn\/terms\/\"〉

〈rdf: Description rdf: about=\"http:\/\/chuci.ntu.edu.cn\"〉

〈ccterms: creationdate〉July 1,2003〈\/ccterms: creationdate〉

〈\/rdf: Description〉

〈rdf: Description rdf: about=\"http:\/\/chuci.ntu.edu.cn\"〉

〈dc: language〉中文〈\/dc: language〉

〈\/rdf: Description〉

〈rdf: Description rdf: about=\"http:\/\/chuci.ntu.edu.cn\"〉

〈dc: creator rdf: resource=\"http:\/\/chuci.ntu.edu.cn\/staffname\/ ZhouJianzhong\"\/〉

〈\/rdf: Description〉

〈\/rdf:RDF〉

上述實例提供了一種簡單而常用的RDF\/XML表達RDF圖的方法。這些方法要求RDF圖的書寫RDF\/XML遵循以下規則:一是要求所有空白結點被指定空白結點標識符;二是要求依次列出各個結點,將它作為一個非嵌套的“rdf: Description”元素的主語,如該結點有URIref,則“rdf: Description”元素使用rdf: about屬性,如果該結點是空結點,則“rdf: Description”元素使用“rdf: nodeID”屬性;三是要求對各個以該結點為主語的三元組,創建一個正確的屬性元素,該屬性元素可以是為文字的元素內容,也可以是有一個指定該三元組的賓語的“rdf: resource”屬性,或者是有一個指定該三元組的賓語的rdf: nodeID屬性。這種簡單的書寫方式提供了實際圖結構的最直接的表示,這種方式特別適用於當具體應用中輸出的RDF\/XML需要進一步的處理時。

(2) 簡寫與組織RDF URIrefs

在RDF\/XML中,資源標識是通過rdf: about屬性並用資源的URIref作為屬性值來實現的,盡管RDF沒有規定如何為資源指派URIrefs,但還是希望為某些資源指派URIrefs,如楚辭研究中心ccyjzx.ntu.edu.cn要為它的楚辭類藏書《楚辭補注》、《楚辭書目五種》等提供目錄並要求該目錄是一個RDF\/XML文檔,可使用http:\/\/ccyjzx.ntu.edu.cn\/2003\/books來對它進行標識與定位,這裏各種藏書可能需要有一個單獨RDF描述,例325中的RDF\/XML描述了該藏書目錄與一種書名為“楚辭補注”的藏書所對應目錄項及RDF描述。

例325:ccyjzx.ntu.edu.cn藏書目錄的RDF\/XML

[1]〈? xml version=\"1.0\"?〉

[2] 〈!DOCTYPE rdf: RDF[〈!ENEITY xsd \"http:\/\/www.w3.org\/2001\/XMLSchema#\"〉]〉

[3] 〈rdf:RDF xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"

[4]xmlns: ccterms=\"http:\/\/ccyjzx.ntu.edu.cn\/terms\/\"〉

[5]〈rdf: Description rdf: ID=\"bookI222.3\/1005\"〉

[6]〈ccterms:author rdf: datatype=\"&xsd;string\"〉洪興祖〈\/ccterms: author〉

[7]〈ccterms:masterpiece rdf: datatype=\"&xsd;string\"〉楚辭補注〈\/ccterms: masterpiece〉

[8]〈ccterms:year rdf: datatype=\"&xsd;integer\"〉2007〈\/ccterms: year〉

[9]〈ccterms:price rdf: datatype=\"&xsd;decimal\"〉17.00〈\/ccterms: price〉

[10]〈ccterms:pages rdf: datatype=\"&xsd;integer\"〉294〈\/ccterms: pages〉

[11]〈\/rdf: Description〉

...otherbook descriptions...

[12] 〈\/rdf:RDF〉

在本例中的第5行使用了“rdf: ID”屬性而不是前麵例子中使用的“rdf: about”屬性,這裏“rdf: ID”屬性用於指定一個片段標識符作為資源URIref的簡略形式,該片段標識符“rdf: ID”屬性值bookI222.3\/1005由ccyjzx.ntu.edu.cn指定的目錄分類號給出,bookI222.3\/1005的解析是相對於目錄文檔URI的。該藏書的完整URIref是:在目錄文檔URI的後麵添加字符“#”(表明後麵跟隨的是片段標識符)和字符串“bookI222.3\/1005”,就得到絕對URIref: http:\/\/ccyjzx.ntu.edu.cn\/1993\/books#bookI222.3\/1005,這裏“rdf: ID”屬性類似XML中的ID屬性。本例中“rdf: ID”屬性為這種特定藏書指派一個名稱“bookI222.3\/1005”,同一文檔中其他的RDF\/XML目錄可使用兩種方式來引用《楚辭補注》:一是使用絕對URIref http:\/\/ccyjzx.ntu.edu.cn\/2003\/books#bookI222.3\/1005;二是使用相對URIref #bookI222.3\/1005,相對URIref 可理解為一個由相對目錄的基準URIref定義的URIref。使用同樣的簡略形式,《楚辭補注》的URIref也可在目錄項中通過使用rdf: about=“#bookI222.3\/1005”來給出。作為一種簡略機製,這兩種方式本質上是相同的,RDF\/XML在這兩種方式下形成的完整URIref完全相同,都是http:\/\/ccyjzx.ntu.edu.cn\/1993\/books#bookI222.3\/1005,但使用“rdf: ID”可以在指派一組互不相同的名稱集合時進行檢測,因為rdf: ID屬性給定的值在隸屬同一個基準URI的範圍內隻能出現一次。相對URIref的使用可被理解為是對RDF中這本書指派的完整URIref的一種簡略形式,也可以被認為是對藏書目錄中這本書的URIref的指派。

位於藏書目錄外部的RDF可以用完整的URIref來引用這本書,例如豆瓣網站book.douban.com也許會用RDF來提供各種藏書的評分,比如在例325中描述的《楚辭補注》被給予的評分為9.2,這一信息可在豆瓣網站上由例326所示的RDF\/XML來表示。

例326:book.douban.com給《楚辭補注》的等級分

[1]〈? xml version=\"1.0\"?〉

[2] 〈!DOCTYPE rdf: RDF[〈!ENEITY xsd \"http:\/\/www.w3.org\/2001\/XMLSchema#\"〉]〉

[3]〈rdf:RDF xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"

[4] xmlns: bookcc=\"http:\/\/book.douban.com\/terms\/\"〉

[5]〈rdf:Description rdf:about=\"http:\/\/ccyjzx.ntu.edu.cn\/1993\/books#bookI222.3\/1005\"〉

[6]〈bookcc: ratingBy rdf:datatype=\"&xsd;string\"〉douban〈\/bookcc: ratingBy〉

[7]〈bookcc: scores rdf:datatype=\"&xsd;decimal\"〉9.2〈\/bookcc: scores〉

[8]〈\/rdf: Description〉

[9]〈\/rdf:RDF〉

例326中第5行使用的rdf: Description元素帶有一個rdf: about屬性,該屬性值為被描述《楚辭補注》的完整URIref,我們利用該URIref就可精確標識被評分的所引用藏書。

下麵我們總結一下簡寫與組織RDF URIrefs時的要點:首先盡管RDF沒有規定或限定如何為資源指派URIrefs,但在RDF中可通過特定方法獲得為資源指派URIrefs的效果,方法是在RDF外標識一個文檔並將它作為資源描述來源,在該文檔中使用相對URIref描述的各個資源,如楚辭研究中心(http:\/\/ccyjzx.ntu.edu.cn\/)可將該藏書目錄作為描述它藏書的總來源,假如一個藏書的分類號不在藏書目錄中的任何條目中出現,那麼它就不是一個ccyjzx.ntu.edu.cn的藏書。 RDF不會僅根據兩個資源的URIrefs有相同的基準(base)或在某些方麵相像而假定它們之間存在任何特定關係,可通過ccyjzx.ntu.edu.cn了解這些關係,但它們沒有直接在RDF中定義。

這些例子進一步說明了描述某個特定資源的RDF不需要全部存放於某一處,被描述資源可分布於Web上。這一點不僅在一個組織對其他組織定義的資源給出評分或評論時適用,對於資源的最初定義者希望通過增加關於資源的信息來充實資源的描述時,也可通過修改RDF文檔(資源被最初定義的文檔),即增加為了描述附加信息所必需的屬性和值來實現;另一種實現方式是創建一個單獨的文檔,並在其中使用rdf: Description元素為資源(用rdf: Description元素的rdf:about屬性的值來標識)提供附加的屬性和值。

相對URIrefs(比如#bookI222.3\/1005)的解析是相對於某個基準URI(base URI)的,缺省情況下,這個基準URI可以是該相對URI所在資源的URI,但在某些情況下可能希望可以顯式指定基準URI,比如假設除位於http:\/\/ccyjzx.ntu.edu.cn\/2003\/books的藏書目錄外,ccyjzx.ntu.edu.cn希望在某個鏡像站點(http:\/\/mirror.ccyjzx.ntu.edu.cn\/2007\/books)上提供一個藏書目錄的副本,這可能會造成一些問題,因為如果是通過鏡像站點獲得藏書目錄的話,《楚辭補注》的URIref將會通過藏書目錄的URI產生,在這種情況下形成的絕對URIref:http:\/\/mirror.ccyjzx.ntu.edu.cn\/2007\/books#bookI222.3\/1005,而不是原來位於楚辭研究中心的資源(http:\/\/ccyjzx.ntu.edu.cn\/2003\/books#bookI222.3\/1005),這將可能是非期望的資源引用。作為另一個選擇,ccyjzx.ntu.edu.cn也許希望為它的藏書的URIrefs指定一個基準URIref,而不是使用藏書目錄文檔的位置作為基準URIref,為處理以上情況,RDF\/XML語法支持XML Base,XML Base允許XML文檔指定一個基準URI,而不是將XML文檔本身的URI作為基準URI,例327顯示了藏書目錄是如何使用XML Base來進行描述的。

例327:在ccyjzx.ntu.edu.cn的藏書目錄中使用XML Base

[1]〈? xml version=\"1.0\"?〉

[2]〈!DOCTYPE rdf: RDF[〈!ENEITY xsd \"http:\/\/www.w3.org\/2001\/XMLSchema#\"〉]〉

[3]〈rdf:RDF xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"

[4]xmlns: ccterms=\"http:\/\/ccyjzx.ntu.edu.cn\/terms\/\"

[5]xml: base=\"http:\/\/ccyjzx.ntu.edu.cn\/2003\/books\"〉

[6]〈rdf:Description rdf:ID=\"bookI222.3\/1005\"〉

[7]〈ccterms:author rdf: datatype=\"&xsd;string\"〉洪興祖〈\/ccterms: author〉

[8]〈ccterms:masterpiece rdf: datatype=\"&xsd;string\"〉楚辭補注〈\/ccterms: masterpiece〉

[9]〈ccterms:year rdf: datatype=\"&xsd;integer\"〉2007〈\/ccterms: year〉

[10]〈ccterms:price rdf: datatype=\"&xsd;decimal\"〉17.00〈\/ccterms: price〉

[11]〈ccterms:pages rdf: datatype=\"&xsd;integer\"〉294〈\/ccterms: pages〉

[12]〈\/rdf: Description〉

...otherbook descriptions...

13. 〈\/rdf:RDF〉

例327的RDF\/XML代碼中第5行的“xml: base”聲明為“rdf:RDF”元素裏的內容指定了基準URI “http:\/\/ccyjzx.ntu.edu.cn\/1993\/books”(直到在遇到其他被指定的“xml: base”為止),在元素裏所引用的所有相對URIrefs的解析就將相對於xml: base所指定的基準URI,它們與這些相對URIrefs所在文檔的URI無關,這樣相對URIref “#bookI222.3\/1005”將被解析為同一個絕對URIref “http:\/\/ccyjzx.ntu.edu.cn\/2003\/books#bookI222.3\/1005”。上述例子中使用的都是ccyjzx.ntu.edu.cn藏書目錄中的具體某一本書,但當ccyjzx.ntu.edu.cn希望提供有關楚辭的多種不同書目信息(如《楚辭書目五種》、《楚辭集注》等多本不同楚辭書)時,就需要劃分不同的種類(kinds)或類別(categories),RDF通過提供預定義屬性“rdf:type”來支持這種劃分種類的需要。當我們用“rdf:type”屬性來描述一個RDF資源時,該屬性的值被看作表達該事物種類或類別的資源,該屬性的主語被看作該種類或類別的一個實例。例328展示了ccyjzx.ntu.edu.cn是如何使用“rdf:type”來表達關於《楚辭補注》的藏書描述。

例328:在《楚辭補注》描述中使用“rdf:type”

[1]〈? xml version=\"1.0\"?〉

[2]〈!DOCTYPE rdf: RDF[〈!ENEITY xsd \"http:\/\/www.w3.org\/2001\/XMLSchema#\"〉]〉

[3]〈rdf:RDF xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"

[4]xmlns: ccterms=\"http:\/\/ccyjzx.ntu.edu.cn\/terms\/\"

[5]xml: base=\"http:\/\/ccyjzx.ntu.edu.cn\/2003\/books\"〉

[6]〈rdf:Description rdf:ID=\"bookI222.3\/1005\"〉

[7]〈rdf:type rdf:resource=\"http:\/\/ccyjzx.ntu.edu.cn\/terms\/楚辭補注\"〉

[8]〈ccterms:author rdf: datatype=\"&xsd;string\"〉洪興祖〈\/ccterms: author〉

[9]〈ccterms:masterpiece rdf: datatype=\"&xsd;string\"〉《離騷》〈\/ccterms: masterpiece〉

[10]〈ccterms:year rdf: datatype=\"&xsd;integer\"〉2007〈\/ccterms: year〉

[11]〈ccterms:price rdf: datatype=\"&xsd;decimal\"〉17.00〈\/ccterms: price〉

[12]〈ccterms:pages rdf: datatype=\"&xsd;integer\"〉294〈\/ccterms: pages〉

[13]〈\/rdf: Description〉

[14]〈\/rdf:RDF〉

第7行的rdf:type屬性表示被描述資源是URIref http:\/\/ccyjzx.ntu.edu.cn\/terms\/楚辭補注 所標識的類的一個實例,如果ccyjzx.ntu.edu.cn是在藏書目錄所在文檔中描述了這個類,那麼可以用相對URIref#楚辭補注來引用它。在RDF中,為被描述的資源指定rdf:type屬性以指明它是某個特定類型或類別的實例是非常普遍的方法。這樣的資源在RDF圖中被稱作有類型結點(typed node),在RDF\/XML中被稱作有類型結點元素(typed node elements)。RDF\/XML提供了一種特殊簡略形式描述這些有類型結點,這種簡略形式中的rdf:type屬性及其值被移去,而結點所對應的rdf:Description元素被替換為一個以QName為名稱的元素(QName對應被移去的那個rdf:type屬性值)。使用這種簡略形式,上例中ccyjzx.ntu.edu.cn的《楚辭補注》也可用例329所示的RDF\/XML來描述。

例329:簡略《楚辭補注》的類型

[1]〈? xml version=\"1.0\"?〉

[2]〈!DOCTYPE rdf: RDF[〈!ENEITY xsd \"http:\/\/www.w3.org\/2001\/XMLSchema#\"〉]〉

[3]〈rdf:RDF xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"

[4]xmlns: ccterms=\"http:\/\/ccyjzx.ntu.edu.cn\/terms\/\"

[5]xml: base=\"http:\/\/ccyjzx.ntu.edu.cn\/2003\/books\"〉

[6]〈ccterms:楚辭補注 rdf:ID=\"bookI222.3\/1005\"〉

[7]〈ccterms:author rdf: datatype=\"&xsd;string\"〉洪興祖〈\/ccterms: author〉

[8]〈ccterms:masterpiece rdf: datatype=\"&xsd;string\"〉《離騷》〈\/ccterms: masterpiece〉

[9]〈ccterms:year rdf: datatype=\"&xsd;integer\"〉2007〈\/ccterms: year〉

[10]〈ccterms:price rdf: datatype=\"&xsd;decimal\"〉17.00〈\/ccterms: price〉

[11]〈ccterms:pages rdf: datatype=\"&xsd;integer\"〉294〈\/ccterms: pages〉

[12] 〈\/ccterms: 楚辭補注〉

[13]〈\/rdf:RDF〉

因為一個資源可能被描述為是多個類的實例,因此一個資源可能有多個“rdf:type”屬性,但在這些rdf:type屬性中隻有一個可被寫為簡略形式,其餘的必須用rdf:type屬性寫出。有類型結點的簡略形式除用於描述用戶自定義類(如ccterms: 楚辭補注)的實例之外,在描述內建RDF類(如rdf:Bag)和內建RDF Schema類(如rdfs:Class)時被普遍使用。例328與例329展示了一點,用RDF\/XML寫出的RDF陳述非常類似於直接用XML書寫描述。

(四) RDF特殊表達

(1) RDF容器

RDF提供了一些預定義的類型和屬性用以描述一組事物,首先RDF提供了“容器”,RDF中 “容器”是一個包含一些事物的資源,這些被包含的事物被稱為成員,成員可能是資源或文字,RDF定義了三種類型容器:第一種容器類型被稱作“包”,它是類型為“rdf:Bag”的資源,“rdf:Bag”表示一組可能包含重複成員的資源或文字,成員之間的排序是無序的,包可以用來描述對於成員的添加或處理順序沒有特別要求的組。第二種容器類型被稱作“序列”(sequence),它是指類型為“rdf:Seq”的資源,“rdf:Seq”表示一組資源或文字,這些資源或文字是有序的並且可能有重複的。第三種容器類型被稱作“替換”(alternative),它是指類型為“rdf:Alt”的資源,“rdf:Alt”表示一組可選擇的資源或文字,例如替換可用來描述一組可相互替換的楚辭文獻的不同語言的翻譯,或者可能存在的存儲楚辭文獻的若幹個鏡像站點,在實際應用中,如屬性值是一個替換,就可選擇替換容器內任意一個合適的成員作為其屬性值。某種資源是容器的必要條件是該資源必須有個屬性“rdf:type”且值為預定義的三個資源rdf:Bag、rdf:Seq和rdf:Alt之一。這個容器資源代表了作為一個整體的一組事物,容器成員與容器資源之間的關係是由一組專門為此定義的表示成員之間關係的屬性所描述的。這些屬性的主語是容器資源,賓語是其成員,這些成員之間關係屬性的名字表達為“rdf:_n”,其中n是一個大於0的十進製整數,如rdf:_1,rdf:_2,rdf:_3,等等。除成員關係屬性與“rdf:type”屬性之外,容器資源還可以有其他屬性。盡管這些容器可使用預定義的RDF類型與屬性定義,但這些容器並沒有特定含義,RDF隻是提供預定的類型和屬性用以構造RDF圖以描述各種容器,但相對於一個普通的資源如“cc:楚辭補注”,它並沒有給作為包的資源更多內置的解釋,在這種情況下,應用程序中必須注意不同類型的容器會有不同含義,這在下麵的實例中會進一步討論。

容器習慣用法是表明有某個屬性的值是一組事物。例如為了表示句子“參加《楚辭與東亞文化》國際會議的教授有:徐誌嘯、許東海、張思齊、廖國棟和周秉高”,可以先給會議一個“p:professors”屬性(來自一個相關詞彙集),它的值是一個包容器(表示一組教授),然後再使用容器成員關係屬性,每位教授可以標識為這個組的成員, RDF圖見圖339。

圖339“包容器”RDF描述(“楚辭與東亞文化”國際會議參會教授)

在圖339的實例中,由於屬性“p:professors”值是一個包,因此教授的URIrefs的順序可以是無序的,盡管容器成員屬性的名字包含了一些整數,應用程序在創建或處理圖的時候應該忽略掉屬性名字中所顯示出來的順序。RDF\/XML提供了一些特殊的語法與縮寫來簡化容器的描述。例3210描述了圖339所示的模型。

例3210:用RDF\/XML書寫的包含“楚辭與東亞文化”國際會議參會教授的包

〈? xml version=\"1.0\"?〉

〈rdf:RDF xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"

xmlns:p=\"http:\/\/ccyjzx.ntu.edu.cn\/professors\/vocab#\"〉

〈rdf:Description rdf:about=\"http:\/\/ccyjzx.ntu.edu.cn\/conferences\/楚辭與東亞文化\"〉

〈p:professors〉

〈rdf:Bag〉

〈rdf:li rdf:resource=\"http:\/\/ccyjzx.ntu.edu.cn\/professors\/徐誌嘯\"\/〉

〈rdf:li rdf:resource=\"http:\/\/ccyjzx.ntu.edu.cn\/professors\/許東海\"\/〉

〈rdf:li rdf:resource=\"http:\/\/ccyjzx.ntu.edu.cn\/professors\/張思齊\"\/〉

〈rdf:li rdf:resource=\"http:\/\/ccyjzx.ntu.edu.cn\/professors\/廖國棟\"\/〉

〈rdf:li rdf:resource=\"http:\/\/ccyjzx.ntu.edu.cn\/professors\/周秉高\"\/〉

〈\/rdf:Bag〉

〈\/p:professors〉

〈\/rdf: Description〉

〈\/rdf:RDF〉

例3210展示了RDF\/XML用“rdf:li”一種簡便的元素以避免顯式地指定屬性的名字。下劃線標號的屬性如“rdf:_1”、“ref:_2”等是由圖中的rdf:li自動生成的,元素名“rdf:li”借鑒了HTML的列表。〈rdf:Bag〉元素沒有指定URIref,這個包資源是一個匿名節點,它也是屬性元素〈p:professors〉的子節點。容器rdf:Seq的圖結構和對應的RDF\/XML寫法與rdf:Bag相似,雖然rdf:Seq是用來描述序列的,但應用程序要負責在創建和處理RDF圖時正確解釋體現在屬性名字中的順序。圖340展示了替換容器的用法。圖340RDF替換容器描述

圖340用RDF\/XML進行描述如例3211。

例3211:用RDF\/XML書寫的一個替換容器

〈? xml version=\"1.0\"?〉

〈rdf:RDF xmlns: rdf=\"http:\/\/www.w3.org\/1999\/02\/22rdfsyntaxns#\"

xmlns:p=\"http:\/\/ccyjzx.ntu.edu.cn\/professors\/vocab#\"〉

〈rdf:Description rdf:about=\"http:\/\/ccyjzx.ntu.edu.cn\/packages\/X11\"〉

〈p:DistributionSite〉

〈rdf:Alt〉

〈rdf:li rdf:resource=\"ftp:\/\/ftp.ccyjzx.ntu.edu.cn\"\/〉

〈rdf:li rdf:resource=\"ftp:\/\/ftp1.ccyjzx.ntu.edu.cn\"\/〉

〈rdf:li rdf:resource=\"ftp:\/\/ftp2.ccyjzx.ntu.edu.cn\"\/〉

〈\/rdf:Alt〉

〈\/p:DistributionSite〉

〈\/rdf: Description〉

〈\/rdf:RDF〉

一個替換容器被設計為至少有一個成員,它由屬性“rdf:_1”標識。該成員被認為是屬性的缺省值或優先值,除了“rdf:_1”外的其他剩餘成員的順序是無關緊要的。圖340中表示屬性“p:DistributionSite”的值是一個類型,它是替換容器的資源。關於此RDF圖的更多含義須通過應用程序進行解釋,如替換容器的一個成員可以看成屬性“p:DistributionSite”的值,或者ftp:\/\/ftp.ccyjzx.ntu.edu.cn是這個屬性的缺省值或優先值。替換容器經常與語言標記一起使用(RDF\/XML允許用“xml:lang”表示元素內容的書寫語言),例如,當一部楚辭論著被翻譯成了多種語言時,這本著作的標題屬性就可以使用替換容器,該容器可以包含多種語言書寫的標題。又如,《楚辭書目五種》這本書隻有一個作者,但作者有兩個名字(薑亮夫是字,薑寅清是原名),每個名字都可以表示作者,這時使用包含這兩個名字的替換比包更適合作為作者名這個屬性的值,因為包容器隱含了這是兩個不同的作者的意思。RDF容器提供了一種通用的方式,假如廣泛應用,可使描述一組資源的數據具有更好的互操作性。