Vincent.Chan‘s Blog

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          網(wǎng)站

          最新評(píng)論

          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 Conference 2005

          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 模式
          												
          														

          namespace dc = "http://purl.org/dc/elements/1.1/"
          element purchase-order
          {
          dc:description [ "General purpose purchase order for merchandise" ]
          attribute id {
          dc:description [ "Unique identifier for the purchase order" ]
          text
          }
          #Rest of the schema here
          }


          這種方法的局限性很大。僅僅提供了非正式的描述,需要人們讀懂后才能使用。因此很難開發(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 模式
          												
          														

          namespace wn = "http://www.cogsci.princeton.edu/"
          element purchase-order
          {
          wn:definition [
          http://cogsci.princeton.edu/cgi-bin/webwn?stage=1&word=purchase+order]
          attribute id {
          wn:definition [
          http://cogsci.princeton.edu/cgi-bin/webwn2.0?stage=1&word=identifier]
          text
          }
          #Rest of the schema here
          }


          該例中的注釋為記錄定義提供了明確的引用。可以在引用的 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 抽象模式
          												
          														

          <pattern abstract="true" name="purchase-order">
          <rule context="$purchase-order">
          <wn:definition href=
          "http://cogsci.princeton.edu/cgi-bin/webwn?stage=1&word=purchase+order"
          />
          <assert test="$id">
          A purchase order requires an ID
          </assert>
          </rule>
          <rule context="$id">
          <wn:definition href=
          "http://cogsci.princeton.edu/cgi-bin/webwn?stage=1&word=identifier"
          />
          <assert test="count(key('ids', .)) = 1">
          An ID must be unique
          </assert>
          </rule>
          </pattern>


          這段代碼定義了一個(gè) Schematron 抽象模式,包含帶有惟一標(biāo)識(shí)符的訂購單的抽象概念。可以用任何 XML 范式來實(shí)例化它,比如使用帶有 ID 屬性的 PO 元素,或者包含子元素 identpurchase-order 元素。其工作原理請(qǐng)參閱我的 前一篇文章。無論選擇什么語法,都可以把這種結(jié)構(gòu)從具體的模式范式回溯到抽象范式(參見 清單 3),從而找到確定其定義的語義錨。模式將限定 count(key('ids', .)) = 1 檢查所有的標(biāo)識(shí)符,從而確保只有一個(gè)包含當(dāng)前值(換句話說,確定該標(biāo)識(shí)符是否是惟一的)。它要求事先定義一個(gè)名為 ids 的鍵。





          回頁首


          結(jié)束語

          在從事 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)。





          回頁首


          參考資料





          回頁首


          關(guān)于作者

          Uche Ogbuji 的照片

          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

          主站蜘蛛池模板: 开阳县| 合作市| 通河县| 沁阳市| 万宁市| 铁岭市| 商水县| 邮箱| 会同县| 施秉县| 多伦县| 佳木斯市| 贵定县| 镇坪县| 天全县| 清徐县| 科技| 沧州市| 临潭县| 楚雄市| 天全县| 寿宁县| 阜阳市| 浑源县| 天柱县| 平乐县| 鹤岗市| 中西区| 吴川市| 汽车| 黄平县| 讷河市| 辰溪县| 法库县| 汤阴县| 特克斯县| 海宁市| 洛阳市| 汕头市| 天等县| 林周县|