Thinking XML: 利用模式注釋實(shí)現(xiàn)自下而上的語義透明::讓模式超越語法進(jìn)入語義范疇
級(jí)別: 初級(jí)
Uche Ogbuji, 首席顧問, Fourthought, Inc.
2005 年 8 月 08 日
進(jìn) 一步了解實(shí)現(xiàn)語義透明的不同方法,Uche Ogbuji 闡述了語義透明對(duì)使用 XML 的開發(fā)人員意味著什么。無論是否重用模式,都會(huì)發(fā)現(xiàn)使用正式的注釋(與以前討論的非正式注釋相比)是很有價(jià)值的。這樣做在不同的層次上帶來了好處。在最直 接的實(shí)踐層面上,可以生成更好的文檔。更深遠(yuǎn)的好處在于它提供了語義透明性的一種重要度量。這一期的文章將討論語義錨,并給出一些例子。作者還將花一點(diǎn)時(shí) 間討論一下 XTech Conference 2005。
以前的兩期文章“ Thinking XML: XML 建模藝術(shù)描述”和“ Thinking XML: 利用模式標(biāo)準(zhǔn)化實(shí)現(xiàn)自上而下的語義透明” 中,我介紹了針對(duì)語義透明的一些有趣的技術(shù)和技巧。本文是這一小型系列的最后一部分,即第 3 部分,在本文中,我將討論我認(rèn)為最重要的語義透明工具。正確的模式注釋在各種層次上都很有用,最起碼可以改進(jìn)文檔。本系列的第一期中討論了非正式的模式注 釋。本文中討論的方法是對(duì)這一思想的重要提煉,將利用語義錨實(shí)現(xiàn)注釋的形式化。這種方法還受益于 developerWorks 上的另一篇短文,“ 技巧:將數(shù)據(jù)詞典用于 XML 和 Web 服務(wù)大綱”。繼續(xù)閱讀本文之前,建議您看一看這些文章。
不過,首先我想提一下最近參加的一次很棒的會(huì)議。
XTech 會(huì)議源自原來的 XML Europe 會(huì)議,特別增加了補(bǔ)充 XML 的瀏覽器技術(shù)和語義技術(shù)專題討論會(huì)。此外, 開放式數(shù)據(jù)的專題討論會(huì)和所有主題不僅考察處理 XML 的全新技術(shù),還探討人們和組織如何向世界自由提供數(shù)據(jù),以便創(chuàng)建全新的、增加價(jià)值的應(yīng)用程序和資源。
XTech 2005 于 5 月 25-27 日在阿姆斯特丹召開(與 XML Europe 2004 的地點(diǎn)相同,很可能 2006 年也在這里召開)。我一直非常喜歡這個(gè)會(huì)議,高度關(guān)注標(biāo)記技術(shù)的新思想和實(shí)際應(yīng)用。瀏覽器和開放式數(shù)據(jù)專題討論會(huì)為整個(gè)會(huì)議注入了很大活力,組織者 Edd Dumbill 為了營造團(tuán)結(jié)協(xié)作的大會(huì)氛圍所做的創(chuàng)造性工作也增強(qiáng)了大會(huì)的吸引力。會(huì)議提供了 Wiki(公開征求意見)和 IRC 頻道(公開討論)。Edd 在主持 Planet XTech 中很好地運(yùn)用了流行的 XML 技術(shù)用法,這是一個(gè)元數(shù)據(jù)驅(qū)動(dòng)的 Weblog 和 XTech 相關(guān)圖片的集合,以 XML 的形式提供會(huì)議的日程安排,鼓勵(lì)人們以有趣的、有用的方式“重新混合”或者處理信息。它幫助完成了開放式數(shù)據(jù)專題討論會(huì)的所有任務(wù)。
微格式(microformat)是 會(huì)議討論的一大主題。基本上就是內(nèi)嵌在宿主格式(如 XHTML 或 CSS)中的 XML 數(shù)據(jù)島。微格式允許用戶在信息中混合各種類型的擴(kuò)展內(nèi)容,如日歷信息、個(gè)人聯(lián)系信息或者圖片元數(shù)據(jù)。大會(huì)中我最喜歡的話題之一討論了一個(gè)系統(tǒng),該系統(tǒng)的名 稱很長,叫做 Gleaning Resource Descriptions from Dialects of Languages,或 GRDDL,可以用它從微格式中提取結(jié)構(gòu)化的元數(shù)據(jù)(用法之一)。GRDDL 是一個(gè)重要的概念,我希望在以后的 Thinking XML 專欄文章中討論它。雖然我個(gè)人的陳述出了些問題 —— 會(huì)場上的投影儀拒絕與我的膝上電腦視頻驅(qū)動(dòng)程序合作 —— 但我還是學(xué)到了很多東西,度過了一段美好的時(shí)光,最重要的是,我很滿意地看到 XML 領(lǐng)域?qū)φZ義技術(shù)越來越重視的更多證據(jù)(有于 XTech 大會(huì)的更多信息,請(qǐng)參閱 參考資料)。
![]() ![]() |
![]()
|
形式化模式注釋的關(guān)鍵在于為所用的術(shù)語找到好的詞匯表資源和一組清晰的標(biāo)識(shí)符。然后在模式中作為數(shù)據(jù)詞典連接的端點(diǎn)寫上這些標(biāo)識(shí)符(通常是 URI)。清單 1 中的 RELAX NG 模式(緊湊語法)片段包含有非正式的注釋。
清單 1. 使用非正式注釋提供語義線索的示例 RELAX NG 模式
|
這種方法的局限性很大。僅僅提供了非正式的描述,需要人們讀懂后才能使用。因此很難開發(fā)能夠使用這類注釋推斷模式語義的軟件。非正式性反映在注釋使用了
dc:description
元素,該元素一般用于資源的松散說明。為了實(shí)現(xiàn)注釋的正式化,我將選用 OWL Web Ontology Language
中更確定的聲明,顯然我是在使用詞匯表術(shù)語標(biāo)識(shí)模式數(shù)據(jù)元素。我選擇 WordNet 作為詞匯表。WordNet
是英文單詞及其詞法關(guān)系的數(shù)據(jù)庫。我曾經(jīng)在本專欄 最近的一期文章 中討論過 WordNet,基本上可以將其作為一種機(jī)器可讀的詞匯表使用。清單 2 以
清單 1 為基礎(chǔ),但使用了更正式的注釋。
清單 2. 使用正式注釋提供語義線索的示例 RELAX NG 模式
|
該例中的注釋為記錄定義提供了明確的引用。可以在引用的 WordNet 頁面上直接找到詞典中的定義:
名詞“purchase order”在 WordNet 中有一種意義。
1. order, purchase order ——(付款并提供規(guī)格說明和數(shù)量要求后,請(qǐng)求某人提供某物的商業(yè)文檔,“IBM 接到了一百臺(tái)計(jì)算機(jī)的訂單”。)
名詞“identifier”在 WordNet 中有一種意義。
1. identifier ——(建立受體的身份的符號(hào)。)
機(jī) 器可使用 URL 的等價(jià)物來檢查語義是否等價(jià) —— WordNet 允許您在此基礎(chǔ)上更進(jìn)一步,使用它的同義詞設(shè)置更豐富的語義。如果一個(gè)模式中包含指向“name”的錨,另一個(gè)包含指向“identifier”的錨,那 么機(jī)器就可以導(dǎo)航 WordNet 自動(dòng)識(shí)別這些術(shù)語詞義的相似性。不過,在實(shí)踐中,WordNet 并不一定是這類注釋的最佳選擇,模式中使用的術(shù)語多數(shù)都有專門的技術(shù)含義,而通用詞典中并沒有記載這些含義。另外,由于過于雄心勃勃,WordNet 還沒有完全完成,它包含不少錯(cuò)誤,仍然在不斷的發(fā)展中。作為語義錨,還可以選擇 ebXML 核心成分和 RosettaNet 詞典,兩者本專欄中都曾經(jīng)談到過。您甚至可以在每個(gè)符號(hào)中組合使用多個(gè)錨。
即使在準(zhǔn)備從語義層面上處理這類注釋之前,也可以在文 檔任務(wù)中加以利用。很容易使用 XSLT 抽取模式定義和注釋,以生成模式索引和數(shù)據(jù)詞典。甚至可以將從頁面中抽取的信息與 URL 錨結(jié)合起來。如果要使用 WordNet 來實(shí)現(xiàn),可能需要使用 WordNet 的某個(gè) RDF 翻譯版本,而不是原來 Princeton 網(wǎng)頁,否則標(biāo)記非常冗長。
![]() ![]() |
![]()
|
如果閱讀過我撰寫的“ Discover the flexibility of Schematron abstract patterns”, 就會(huì)了解一種非常有用的技術(shù),從具體的 XML 語法中抽象出模式的基本信息內(nèi)容。我在那篇文章中指出,“通過為 Schematron 抽象模式增加語義豐富的注釋,還可以進(jìn)一步提高表達(dá)能力……最終的模式很容易適應(yīng)任何語法,同時(shí)還提供了語義透明性。”清單 3 中的 Schematron 片段示范了這兩種技術(shù)結(jié)合的強(qiáng)大功能。
清單 3. 帶有正式注釋的 Schematron 抽象模式
|
這段代碼定義了一個(gè) Schematron 抽象模式,包含帶有惟一標(biāo)識(shí)符的訂購單的抽象概念。可以用任何 XML 范式來實(shí)例化它,比如使用帶有
ID
屬性的
PO
元素,或者包含子元素
ident
的
purchase-order
元素。其工作原理請(qǐng)參閱我的
前一篇文章。無論選擇什么語法,都可以把這種結(jié)構(gòu)從具體的模式范式回溯到抽象范式(參見
清單 3),從而找到確定其定義的語義錨。模式將限定
count(key('ids', .)) = 1
檢查所有的標(biāo)識(shí)符,從而確保只有一個(gè)包含當(dāng)前值(換句話說,確定該標(biāo)識(shí)符是否是惟一的)。它要求事先定義一個(gè)名為
ids
的鍵。
![]() ![]() |
![]()
|
在從事 XML 設(shè)計(jì)的咨詢活動(dòng)中,我發(fā)現(xiàn),對(duì)于提高模式以及我開發(fā)的其他工具的質(zhì)量,語義錨是一種非常有用的工具。明顯的好處是,可以使用語義錨為客戶生成支持文檔,而后,清晰的語義所帶來的快速調(diào)整和處理技術(shù)會(huì)讓客戶感到驚喜。
本文結(jié)束了關(guān)于實(shí)用語義透明技術(shù)的考察。希望我已經(jīng)闡明,良好的語義設(shè)計(jì)不僅僅是一堆理論,而且能夠在 XML 技術(shù)實(shí)踐中應(yīng)用。當(dāng)然,我將繼續(xù)在本專欄中討論這個(gè)主題,也建議您參與 Thinking XML 討論論壇,與他人分享您的觀點(diǎn)。
![]() ![]() |
![]()
|
-
參與論壇討論。
- 您可以參閱本文在 developerWorks 全球站點(diǎn)上的
英文原文。
- 參閱本期文章中引用的 developerWorks 文章:
- “ XML 建模藝術(shù)描述”(2005 年 3 月)
- “ 利用模式標(biāo)準(zhǔn)化實(shí)現(xiàn)自上而下的語義透明”(2005 年 4 月)
- “ 將數(shù)據(jù)詞典用于 XML 和 Web 服務(wù)大綱”(2004 年 5 月)
- “ Schematron 抽象范式的靈活性”(2004 年 10 月)
- 進(jìn)一步了解
XTech 2005,此次大會(huì)已經(jīng)在今年 5 月 25-27 日于阿姆斯特丹召開。有于會(huì)議的更多內(nèi)容,請(qǐng)參閱
Planet XTech 和
The XTech Wiki。Uche Ogbuji 的演講題目為“
Matching Python idioms to XML idioms”。
- 了解
Gleaning Resource Descriptions from Dialects of Languages (GRDDL)。“使用明確關(guān)聯(lián)的轉(zhuǎn)換算法,通常用 XSLT 表示從 XML 和 XHTML 文檔生成 RDF 數(shù)據(jù)”的系統(tǒng)。
- 有于微格式的更多信息,請(qǐng)閱讀 Micah Dubinko 撰寫的“
What Are Microformats?”。
- 了解 RELAX NG,這是一種更有效的 XML 設(shè)計(jì)。David Mertz 在他的 developerWorks
XML Matters 專欄中提供了很好的入門介紹:
- 第 1 部分 相當(dāng)完整地概括了 RELAX NG 模式的語法和語義(2003 年 2 月)。
- 第 2 部分 闡述了一些附加的語義問題,考察了使用 RELAX NG 的工具(2003 年 3 月)。
- 第 3 部分 考察了使用 RELAX NG 緊湊語法的工具(2003 年 5 月)。
- 請(qǐng)?jiān)L問
WordNet 主頁,這是普林斯頓大學(xué) Cognitive Science Laboratory 開發(fā)的英文詞匯及其詞法關(guān)系數(shù)據(jù)庫。
- 在
developerWorks XML 專區(qū) 可以找到更多 XML 參考資料,其中包括 Thinking XML 專欄的
以前各期文章。“
XML 符合語法,第 3 部分”討論了 RosettaNet 詞典(2001 年 5 月)。
- 了解如何才能成為一名
IBM 認(rèn)證的 XML 及相關(guān)技術(shù)的開發(fā)人員。
![]() ![]() |
![]()
|
![]() |
||
|
![]() |
Uche Ogbuji 是 Fourthought Inc. 的顧問兼創(chuàng)始人,該公司是一家專為企業(yè)知識(shí)管理提供 XML 解決方案的軟件供應(yīng)商和咨詢公司。Fourthought 開發(fā)了 4Suite,這是一個(gè)用于 XML、RDF 和知識(shí)管理應(yīng)用程序的開源平臺(tái)。Ogbuji 先生還是 Versa RDF 查詢語言的首席開發(fā)人員。他是一位出生于尼日利亞的計(jì)算機(jī)工程師和作家,目前生活和工作在美國科羅拉多的博耳德。您可以通過 Ogbuji 先生的 Weblog Copia 進(jìn)一步了解他,或者通過 uche.ogbuji@fourthought.com 與他聯(lián)系。 |
posted on 2006-03-21 23:51 Vincent.Chen 閱讀(279) 評(píng)論(0) 編輯 收藏 所屬分類: XML