XML 程式設計思想:XML語義(轉)

amyz發表於2007-08-12
XML 程式設計思想:XML語義(轉)[@more@]

  這篇對 XML 和語義的討論揭開了這個由 Uche Ogbuji 撰寫的專欄的序幕,本專欄討論了 XML 知識管理方面的問題,包括後設資料、語義、資源描述結構 (RDF)、主題對映和自主主體。本專欄從實踐的角度來剖析這個主題,因此它針對的讀者是程式設計師,而不是針對理論家。

  “XML 程式設計思想”這個新專欄將討論 XML 和 知識體系結構 (KA) 的交匯處。知識體系結構聽起來象是一句行話,但它其實只是一個涵蓋面很廣的術語,是指當今 XML 逐步走向成熟時出現的一些非常有用的技術。後設資料管理、語義透明性和自主主體都是 XML 獨有的概念,但 XML 對統一結構化語法和半結構化語法的承諾有助於將幾乎不可能的事變成切實可行的。

  區分本專欄和許多此類主題討論的主要特徵是我將針對程式設計師展開討論,而不是針對理論家。我將討論一些開發工具和技術,它們可以讓開發人員使用 XML 更好地收集和瀏覽隱藏在資料中的知識,無論這些資料是在公司的資料庫中還是在 Web 上。這聽上去象是在誇誇其談,但本專欄的各篇文章其實是一個循序漸進的過程,決不會脫離常識。

  本專欄的前兩篇文章介紹了預備知識,因此它們可能會稍微偏離我的基本規則“重程式碼,輕理論”。前兩篇專欄文章將討論 XML 的語義和相關詞彙。我只用現有產品來討論其創始過程,以供開發人員瞭解,但現在還不會展示許多實用程式碼。

  究竟什麼是語義?

  那麼,什麼是語義?因為語義這個單詞的特殊性,每個人對語義定義的觀點都各有不同。一般來說,語義是構建在公用語法上的系統中 XML 資料的一層規範。這就引出了許多標記了 XML 語義的概念。

  它們包括:

  • 元素型別名稱、屬性名稱和某些情況下內容術語的解釋
  • 用於用有效文件引導事務的處理規則(也稱作商業規則)
  • 一個文件中的結構化元素與另一個文件中的結構化元素之間的關係

  當然,在這三概念之間有一些重疊。

  反觀語義

  兩年前,我寫了一篇文章在 Sunworld(現在稱作 Unix Insider:請參閱 參考資料)上發表,這篇文章研究了新的 XML 如何適應電子資料交換 (EDI) 的世界。促使 EDI 回到 70 年代的事件之一就是對統一商業事務詞彙的承諾,以便改進不同公司的資訊系統之間的電子通訊自動化。

  EDI 為特定業界定義了一種特殊語法和一套特殊語義 -- 一些是普通語義,而另一些是非常特殊的語義。XML 目前有明確的語法和結構,但它沒有提 語義透明性。語義透明性可以使 XML 機器建立元素(比如, PurchaseOrder 或 PO )和根據該元素執行專門操作的高階處理之間的關係。總而言之,它意味著資料中的表示式如實地表示了相應概念的含義。語義透明性的最終測試是如果某個人 只使用適用於 XML 處理軟體的機制,他能否正確理解 XML 資料的含義。

  顯然,單靠 XML 根本無法實現語義透明性,這正是那麼多 XML 技術專家關注語義透明性的原因。如果 XML 系統不能實現語義透明性,那麼這些系統可能就不符合有三十幾年歷史的 EDI,就不能成為一種自動電子交易的方式。

  關於 XML 實現語義透明性的必要性還有一些爭論。在完成 XML 1.0 規範之前,各種團體都期望開發語義透明性的機制。實際上,某些創意沒有考慮到 XML;它們期望(至今仍是這樣)成為集 SGML、XML、EDI、表格式報表和其它機器格式的術語於一身的通用權威。

  關於 ISO BSR

  機器可讀語義的業界元老自有其 EDI 基礎:自 1998 年開始開發的 ISO 基本語義字典 (BSR),其主旨是“充當參考中心,輔助跨商業、工業和管理的資料的通用、多語言理解”。這個宏偉的目標似乎只有 ISO 才能承擔,然而 BSR 卻遲遲不能完成。

  目前已經建立了基本規則(出版物 ISO 16668:2000),ISO 已經收集了一個試用集合,有幾千項,例如 AccountsPayables 、 ContactParty.CustomerAssigned.Identifier 和 Contract 。一旦完成,BSR 可以讓程式設計師使用合成 XML 模式,如以下 DTD 片段:

     

  假設那些元素是由製造公司使用的報表格式,該公司將其會計工作外包給另一家公司。那麼,XML 詞彙的開發人員將從以下方式中得到語義透明性的好處:

  • 開發人員確保所使用的元素型別名稱符合 BSR 中的等價概念,以最小化元素含義的多義性。製造商可以與會計人員討論資料,並確保雙方都認同所表達的內容。
  • 由於術語的含義非常清楚,因此將此格式對映成會計學的標準格式比完成此類任務的常規做法更簡單,它甚至可以自動完成。即使製造商使用 EDI,而會計人員使用 XML,這種簡單對映仍是可行的。
  • BSR 中的含義指出了元素之間的關係,例如 ContactParty.CustomerAssigned.Identifier 元素和報表中別處或另一個文件中的 Contract 元素。

  即便在這個初級階段,也可以使用 BSR 進行實驗,因為全球資訊定位服務 (GILS) 已經創造了試用 BSR 項的 RDF 模式和 XML 模式編譯。GILS 是美國政府的倡議,它涵蓋了用於尋找結構化資訊的技術和資源。GILS BSR 編譯是一個有價值的資源,它已經涵蓋了在常規政府與私人交流中使用的常用術語。

  但是,請注意這個初始集合是實驗性的。不僅描述非常粗略,而且 XSchema 和 RDFS 表示中還有語法錯誤。

  我建議檢視 BSR,因為它影響著重要組織,如 UN/CEFACT(全球範圍)、CEN/ISSS(歐洲)和 DISA(美國)。

  統一歐洲和美國的術語

  CEN/ISSS 值得一提,這個組織在 XML/EDI 的領域中做了大量工作。CEN/ISSS 是負責促進歐盟中資訊系統標準化的委員會。雖然據官方聲稱,它的 XML/EDI 工作仍處於試行階段,但 CEN/ISSS 已經建立了一個綜合結構,用於將 EDI 的 UN/EDIFACT 風格轉換成 XML。這個轉換結構包括 DTD 生成規則和熟悉 EDI 的開發人員可以試用的樣本。其結果的確很複雜,但 EDI 的悠長曆史確保了這兩個欄位和 XML/EDI 中使用的訊息流都是非常明確的。

  顯然,開發 EDI 的組織在處理 XML 語義方面跳躍了一大步。其中不帶 EDI 標記的主要代表是 Microsoft。在 1999 年,Microsoft 推出了 BizTalk 結構。BizTalk 是 Microsoft、其夥伴和業界組織用於註冊模式、程式描述和樣本 XML 檔案的庫。其旨在充當 XML 格式和相關程式的交換所,這是它成為實現語義透明性的重要力量。

  部分是因為它是由一家公司開發的,部分是因為常用行業政策,BizTalk 已經成為激烈爭論的主題。某些人將它看作是 Microsoft 透過在語義問題上建立霸權以達到掠奪 XML 的目的。不管政策如何,現在已經出現了在 BizTalk 結構中工作的工具。許多工具都是類似於 XML 解決方案的對映軟體,它們提供了 GUI 以便將一個詞彙對映成詞彙。同樣,開發人員可以開始使用基於 SOAP 的 BizTalk XML 訊息格式的公開規範。遺憾的是,如果要執行重要的 BizTalk 訊息傳遞,需要使用 Microsoft 的商業 BizTalk 伺服器產品。

  該領域中的新生事物

  我沒有涵蓋部分相關的工作,如 OMG 的 XML 後設資料交換 (XMI),或 Unisys 的通用庫 (UREP),因為它們的主要目的是交換應用程式開發模型(雖然 XMI 和 UREP 與 XML 有一些關係)。

  在這篇文章中,我討論了 XML 語義這個舞臺上的一些重要演員。然而,現在該領域中的許多活動來自於新生代,如 ebXML、UDDI 和 eCo,以及縱向聯合行業組織的工作。在下一篇文章中,我將討論這些新加入者更實際的方面。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-950199/,如需轉載,請註明出處,否則將追究法律責任。

相關文章