級別: 初級
Uche Ogbuji, CEO 兼首席顧問, Fourthought, Inc.
2001 年 2 月 01 日
這
篇對 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 片段:
<!ELEMENT AccountsPayables.Contact (ContactParty.CustomerAssigned.Identifier)> <!ELEMENT ContactParty.CustomerAssigned.Identifier (#PCDATA)>
|
假設那些元素是由制造公司使用的報表格式,該公司將其會計工作外包給另一家公司。那么,XML
詞匯的開發人員將從以下方式中得到語義透明性的好處:
- 開發人員確保所使用的元素類型名稱符合 BSR
中的等價概念,以最小化元素含義的多義性。制造商可以與會計人員討論數據,并確保雙方都認同所表達的內容。
-
由于術語的含義非常清楚,因此將此格式映射成會計學的標準格式比完成此類任務的常規做法更簡單,它甚至可以自動完成。即使制造商使用
EDI,而會計人員使用 XML,這種簡單映射仍是可行的。
- BSR 中的含義指出了元素之間的關系,例如
ContactParty.CustomerAssigned.Identifier
元素和報表中別處或另一個文檔中的
Contract
元素。
即便在這個初級階段,也可以使用 BSR
進行實驗,因為全球信息定位服務 (GILS) 已經創造了試用 BSR 項的 RDF
模式和 XML 模式編譯。GILS
是美國政府的倡議,它涵蓋了用于尋找結構化信息的技術和資源。GILS BSR
編譯是一個有價值的資源,它已經涵蓋了在常規政府與私人交流中使用的常用術語。
|
UN/CEFACT:聯合國貿易促進及電子商務中心
CEN/ISSS:歐洲標準化委員會/信息領域標準化體系
DISA:數據互換標準協會
|
|
但是,請注意這個初始集合是實驗性的。不僅描述非常粗略,而且
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,以及縱向聯合行業組織的工作。在下一篇文章中,我將討論這些新加入者更實際的方面。
參考資料
關于作者