級別: 初級
Naveen Balani, 技術架構師, Webify Solutions
2005 年 12 月 12 日
Naveen Balani 在向您介紹組織如何利用基于存在論開發的同時,還探索了語義 Web 技術的基礎。語義 Web 有助于有效的知識管理和有成本效益的產品生命周期自動化,實現更快的開發和集成過程。
一般來說,語義學(semantics) 研究的是意義。(“semantic”這個詞來自希臘語 semantikos,或者說“顯著意義”,派生于 sema ,或者說“標記(sign)”)。語義 Web 技術有助于利用基于開放標準的技術,從數據、文檔內容或應用程序代碼中分離出意義。如果計算機理解文檔的語義,那么它就不僅僅是解釋構成文檔的一系列字符:它能夠理解文檔的意義。
語義 Web 提供了公共的框架,允許在應用程序之間、企業之間和社區邊界之間共享和重用數據。可以把語義 Web 想像成在萬維網世界中表示數據的有效途徑,或者把它當成一種數據庫,用某種能夠由機器理解的方式,鏈接到全球 Web 文檔中的內容。語義技術用存在論(ontology) 表示意義,并通過這些存在論中表示的關系、規則、邏輯和條件來提供推理。
構成語義 Web 的技術
要表示語義 Web,需要使用以下技術:
- 全球性的命名方案(URI)
- 描述數據的標準語法(RDF)
- 描述數據屬性的標準機制(RDF Schema)
- 描述數據條目間關系的標準機制(用 OWL Web 存在論語言定義的存在論)
我們來深入研究這些技術。
全球性的命名方案:URI
URI 就是 Web 標識符,就像在萬維網上經常看到的用 http
或 ftp
開始的字符串。任何人都可以創建 URI,而且 URI 的所有權委托得很清晰,所以它們構成了理想的技術基礎,可以在其上構建全球性的
Web。實際上,萬維網就是這樣的:任何擁有 URI 的事物都被認為是“在 Web 上”。語義 Web
中的每個數據對象和每個數據模式/模型都必須擁有惟一的 URI。
統一資源定位符(URL) 是一種 URI,除了標識資源外,通過描述資源的主要訪問機制或網絡位置,URL 還提供了對資源的表示進行操作或獲取的方式。例如,URL http://www.webifysolutions.com
是一個 URI,標識了一個資源(Webify Solutions 的主頁),還代表這個資源的表示形式(例如主頁目前的 HTML 代碼,作為編碼字符)是可以從名為 www.webifysolutions.com
的網絡主機通過 HTTP 得到的。
統一資源名稱(URN) 也是一種 URI,根據特定名稱空間中的名稱來標識資源。可以用 URN 表示資源,而不用指明資源的位置或者如何取消對它的引用。例如,URN urn:ISBN:1-0-7666-98-0
是一個 URI,像 ISBN 圖書編號一樣,它允許您談到一本書,但是并未指明在哪里能實際得到它的拷貝和如何得到。
描述數據的標準語法:RDF
RDF
是一個規范,它定義了表達世界的模型,定義了序列化和交換這個模型的語法。W3C 已經開發了 RDF 的 XML 序列化。RDF XML 是語義
Web 上 RDF 的標準交換格式,雖然它并不是惟一的格式。例如,Notation3 是可以替代 RDF XML 的一種優秀的純文本序列化方式。
RDF
提供了一致的、標準化的方式來描述和查詢 Internet
資源,資源從文本頁面和圖片一直到音頻文件和視頻剪輯。它提供了句法的互操作性,還提供了構建語義 Web 的基礎層。RDF
定義了關系的導向圖。這些是由對象-屬性-值三元組表示的 —— 即對象 O 擁有屬性 A,屬性 A 的值是 V。
清單 1 提供了 RDF XML 的示例。
清單 1. RDF XML 示例
<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:contact="http://www.w3.org/2000/05/contact#">
<contact:Company rdf:about="http://www.w3.org/Organization/contact#WebifySolutions"> <contact:name>Webify Solutions</contact:name> <contact:mailbox rdf:resource="mailto:info@webifysolutions.com"/> <contact:phone>1-800-4WEBIFY</contact:phone> </contact:Company>
</rdf:RDF>
|
清單 1 中的這段 RDF 基本上構成了關于一個資源的陳述,在這個示例中是公司 http://www.w3.org/Organization/contact#WebifySolutions
。公司可以用 URI http://www.w3.org/Organization/contact#WebifySolutions
來標識;公司名稱是 Webify Solutions,公司的電子郵件地址是 info@webifysolutions.com,公司的電話號碼是 1-800-4WEBIFY。
關系導向圖如 圖 1 所示。
圖 1. 描述 Webify Solutions 聯系人細節的 RDF 圖
描述數據屬性的標準機制:RDF Schema
RDF Schema 是 RDF 的語義擴展。它提供了描述相關資源以及這些資源之間關系的機制。
RDF Schema 的類和屬性系統與面向對象編程語言(比如 Java 語言)的類型系統類似。RDF 與許多這樣的系統不同。RDF 詞匯描述語言不是用實例的屬性來定義類,而是用屬性要在其上應用的資源類來描述屬性。
RDF 和 RDF Schema 都基于 XML 和 XML Schema。描述數據的標準(RDF)和描述數據屬性的標準(RDF Schema)的存在,促進了從多個源讀取和利用數據的工具集的開發。不同應用程序能夠共享和利用數據的程度,有時叫做句法互操作性(syntactic interoperability)。這些數據操縱工具越標準化、越廣泛,句法互操作性的程度就越高,那么使用語義 Web 方式取代點對點集成解決方案就越容易,也越有吸引力。
要獲取全套 W3C RDF Schema 數據模型和規范,請參閱 參考資料。
描述數據項目間關系的標準機制:使用 OWL Web 存在論語言的存在論
在多個應用程序可以真正理解數據并把它當作信息之前,語義的互操作性是必需的。語義互操作性就是正確地解析數據。它要求術語間的映射,映射又要求內容分析。
這個內容分析要求正式和明確的域模型規范,規范定義了使用的術語和它們的關系。這類正式的域模型有時叫做存在論。存在論用類、子類和屬性來定義數據模型。
使
用 W3C 推薦的 OWL Web 存在論語言,可以表示存在論。OWL(存在論工作語言)添加了比 RDF 或 RDF Schema
更多的詞匯來描述屬性和類:除了其他東西之外,它還能描述類之間的關系(比如剝離)、
基數(例如“確切的一”)、等價、更豐富的屬性類型化,以及屬性的特征(比如對稱性)。
OWL Web
存在論語言設計用于的應用程序,不僅僅是向人類呈現信息,更需要處理信息的內容。OWL 既提供了正式的語義,又提供了附加的詞匯,所以比起
XML、RDF 和 RDF Schema,對 Web 內容實現了更好的機器互操作性。OWL 有三個子語言:按表現能力降序排列,分別是 OWL Full、OWL DL、 和 OWL Lite。
-
OWL Web 存在論語言的總和叫做 OWL Full。OWL
Full 使用 OWL 語言的所有原始材料,并允許這些原生材料按任意方式與 RDF 和 RDF RDF Schema 組合。OWL Full
完全向上兼容 RDF,從句法上和語義上都兼容:任何合法的 RDF 文檔也都是合法的 OWL Full 文檔。要讓推理軟件支持 OWL Full
的每個特性是不太可能的,因為它提供了最大的表現力和 RDF 的句法自由,但是在計算上沒有保證。
-
OWL DL 支持的用戶需要在不損失計算完整性的前提下得到最大表現力。OWL DL 是 OWL Full 語言構造的子語言,但是有一些限制,比如類型分離 (例如,類不能還是個體或屬性,而屬性不能還是個體或類)。
-
OWL Lite 支持的用戶需要分類層次結構和簡單的約束特性。這個語言的優勢在于理解和實現起來比前兩個語言都容易;但是,它限制了表現力。例如,雖然 OWL Lite 支持基數約束,但是只支持基數值 0 或 1。
存在論的例子包括:Amazon.com 這樣的在線購物站點的目錄,UNSPSC (用于產品和服務的術語體系)這類特定域的標準術語體系,或者 Web 上各種各樣的分類,比如“My Yahoo”分類。
接下來,我將進一步研究 OWL 的組成部分。
OWL Web 存在論語言的組成部分
OWL 基本組成部分包括類、屬性 和個體,下面將依次介紹它們。
類
類 是 OWL 存在論的基本構建塊。類是域中的概念。類通常構成分類的層次結構(子類-超類的層次結構)。
類是用 owl:Class
元素定義的。OWL 自帶了兩個預定義的類:owl:Thing
和 owl:Nothing
。owl:Thing
是最通用的類,它包含任何東西;owl:Nothing
是一個空類。所有自定義的類都是 owl:Thing
的子類,是 owl:Nothing
的超類。銀行領域的類的例子可能包括 Account
或 Customer
。
清單 2 展示了 OWL 類的一個示例。
清單 2. OWL 類示例
<owl:Class rdf:ID="SavingsAccount"> <rdfs:subclassOf rdf:resource="#Account"/> </owl:Class>
|
清單 2 中的代碼指定 SavingAccount
是一個類,而且是 Account
的子類。
OWL 支持 6 種主要的描述類的方式。最簡單的一種是命名 類。其他方式是交叉 類、聯合 類、補充 類、限制 類和 枚舉 類。清單 2 演示了兩種描述類的方式:限制把 SavingAccount
定義為命名類 Account
的子類。要獲得全套 W3C OWL 類規范,請參閱 參考資料。
屬性
屬性有兩大類:
-
對象屬性,它把個體關聯到其他個體。
-
數據類型屬性,它把個體關聯到數據類型的值,比如 integer、float 和 string 類型。Owl 利用 XML Schema 定義數據類型。
屬性可以有關聯的域和范圍。每個屬性可以屬于以下一個類別:
-
功能的: 對于給定對象,屬性只能有一個值。例子包括人的年齡、身高或體重。
-
反轉功能的: 兩個不同個體不能擁有相同的值。例如,
bankNumber
或 SSN
屬性對每個人來說都是惟一的。
-
對稱的:如果某個屬性把 A 鏈接到 B,那么就可以推斷 B 鏈接到了 A。對稱屬性的例子包括:“兄弟”或“相同”。
-
傳遞的:如果某個屬性把 A 鏈接到 B,而 B 鏈接到 C,那么可以推斷它也把 A 鏈接到了 C。例如,如果 A 比 B 高,B 比 C 高, 那么 A 比 C 高。
可以對類和屬性應用不同的限制。例如,基數限制指定某類個體可以參與的關系的數量。
要獲得全套 W3C OWL 規范,請參閱 參考資料。
個體
個體 是類的實例,屬性可以把一個個體關聯到其他個體。例如,可以把名為 Smith
的個體描述為 Person
類的實例,而且可能用 hasEmployer
屬性把 Smith
關聯到個體 Webify Solutions
,表明 Smith 是 Webify Solutions 的員工。
清單 3 提供了 OWL 個體的一個示例。
清單 3. OWL 個體
<owl:Thing rdf:about="SmithAccount"> <rdfs:type="#Account"/> </owl:Class>
|
rdf:type
是一個 RDF 屬性,它把個體綁定到一個數字類。清單 3 表明 SmithAccount
是類型 Account
的一個實例。
圖 2 表示了 OWL 存在論的基本構造塊。
圖 2. 描述 Webify Solutions 組織的 OWL 存在論
存在論的商業價值
IT 系統用關系數據模型、扁平文件、面向對象模型或專用的數據模型來組織意義。變化的業務需求不斷地要求向關系數據模型或面向對象模型中添加新實體和關系。
而
且,如果組織采用了許多由不同開發商提供的應用程序,那么可能要在應用程序的數據庫之間重復相同的模型。例如,銀行公司提供了不同的產品,以服務不同類型
的客戶。企業客戶可能需要欺詐檢測功能,而普通客戶可能只使用在線銀行功能。一般會有多個開發商為銀行提供應用程序,但是每個應用程序都會在應用程序特定
的數據庫中重復同樣的公共信息 —— 帳戶、客戶,等等。當組織增加產品以滿日益增長的業務需求時,相同的冗余信息就散落在整個企業中。
對于所有這些正在開發的應用程序來說,絕對有許多服務是公共的 —— 例如查看銀行交易和電匯。每個服務都要用每種應用程序特定的方式重復,從而導致點對點的集成。
如
果銀行采用了存在論驅動的方式,那么銀行就可以用一種語言中立的形式來捕捉并表示它整體的產品知識,并把知識部署到中央倉庫。使用這種共享的、適應性的存
在論,組織可以跨越應用程序,提供單一而統一的數據視圖。這種統一的視圖支持信息的精確檢索和無縫的企業集成,同時業務過程和不同的數據源可以通過一個公
共的元模型彼此相互映射。這樣,共享的存在論就消除了點對點集成,并簡化了應用程序的集成,減少了數據冗余,在應用程序之間提供了相同的語義,從而方便了
銀行的維護與升級。
語義 Web 對萬維網的好處
萬維網是有史以來創建的最大的信息倉庫,而且各種語言和各個知識領域的內容還在不斷增長。但是,從長遠看,讓這種內容有意義是極端困難的。搜索引擎可能會
幫助找到包含特定詞語的內容,但是內容可能并不是您確切想要的。那么缺少什么呢?搜索是基于頁面內容的,而不是基于頁面內容或頁面信息的語義。
一
旦語義 Web 存在,它就能夠提供為 Web
內容做標記的能力,可以描述各部分內容是關于什么的,并給內容的項目提供語義。這樣,搜索引擎會變得比現在更有效率,用戶也會精確地找到所要尋找的信息。
提供不同的服務的組織可以給這些服務標記上意義;使用基于 Web 的軟件代理,就可以動態地發現這些服務,并利用它們或讓它們與其他服務協作。
語義技術在 SOA 中的角色和價值
要
想正確地建模和管理面向服務的架構(SOA),企業架構師必須維護企業可用服務的活動表示。具體來說,要發現和組織他們的服務,架構師就必須采用最佳實
踐,用元數據來建模和組織他們的服務,把業務邏輯封裝在元數據中進行動態綁定,并用元數據進行管理。存在論提供了非常強大和靈活的方式,可以聚合、可視化
和規范化這個服務元數據層。
存在論就是概念、關系和約束的網絡,為數據、信息以及過程提供了上下文。存在論增強了服務發現、建
模、匯集、協調和語義互操作性。它們改善了人們瀏覽、探索復雜的元數據空間以及和它們交互的方式。業務存在論是業務概念和它們之間關系的正式規范,促進了
機器的推理和判斷。業務存在論用元數據把系統捆綁在一起,非常像數據庫把離散的數據片斷綁在一起。這一抽象提供了敏捷性和靈活性,因為接口可以改變,新的
資源和訂閱者可以容易地加入,即使系統正在運行也可以。
語義是面向服務集成的未來。語義技術提供了超越現有 IT
技術的抽象層,它支持跨越業務和 IT
領域之上的數據、內容和過程的溝通與互聯。最后,從人類交互的角度來說,語義技術添加了新一級語義門戶,比起目前使用的傳統的點對點集成方式的基于門戶的
信息發布,提供了更加智能、更加相關、上下文更敏感的交互。
結束語
在
這篇文章中,您了解了構成語義 Web 技術的核心標準,以及為什么企業可能要采用這些技術。利用語義 Web
技術,組織可以跨越應用程序提供單一而統一的數據視圖,這可以支持信息的精確檢索,簡化企業和 SOA
集成,減少數據冗余,并在應用程序之間提供一致的語義。所有這些會簡化整個企業的開發、維護和升級。
參考資料
學習
獲得產品和技術
關于作者
|
|
|
Naveen
Balani 把自己的大部分時間花在設計和開發基于 J2EE 的框架和產品上。他為 IBM developerWorks
撰寫了各種不同的文章,涉及的主題包括:ESB、SOA、JMS、Web 服務架構、CICS、AXIS、DB2、XML
Extender、WebSphere Studio、MQSeries、Java Wireless Devices and DB2
Everyplace for Palm、J2ME、MIDP、Java-Nokia、Visual Studio
.Net,以及無線數據同步。可以通過他的電子郵件 naveenbalani@rediffmail.com 與他聯系。
|