概述
以 Web 技術為代表的 Internet 極大地促進了人類知識的傳播和交流,改變了人類的生產和生活方式。統計表明,當前有超過 5 億的用戶每天通過計算機網路存取線上文檔,而且隨著經濟全球化發展,這一數字將按指數級快速增長。但是,基於 HTML 的 Web 頁面缺乏語義信息,不能將顯示和數據分離,難以實現信息共享和互操作,這一問題妨礙著 Internet 的發展。
W3C 正致力於開發一系列標準來解決這一問題。其中,XML (eXtensible Markup Language) 作為網際網路信息書寫、交換的標準文檔格式,它注重描述數據的內容和結構,實現數據和顯示分離,但XML 只能定義信息的結構,不能定義信息的含義。RDF ( Resource Description Framework) 作為描述網際網路信息語義、實現信息推理的標準化框架,提供了用於描述資源的基本事實的模型,但 RDF本身尚不具備表達本體模型的能力。語法和語義作為信息表達不可或缺的 2 個方面,必須將二者有效結合才能完整、準確描述信息。為此,本文基於本體論(Ontology) 和 XML 技術,提出了一種新的知識描述語言 KDL ( Knowledge Description Language),以實現 Web 知識描述語法與語義的統一。
KDL 設計思想
Web 為了支持描述、搜尋、管理、交換和更新等準確的處理,需要以某種方式進行元信息的結構化甚至語義化處理。由於 Web 計算的特徵就是對資源或對象進行標記的過程,傳統的描述元數據的標準難以直接套用於Web 計算模式中。為此,本文採用本體論描述特定領域中的辭彙及領域知識。
基於本體論的建模技術
本體論是哲學中提出的一個概念,本意是指從紛繁複雜的世界中剝離出客觀事物,研究世間萬事萬物的本原及其與其他事物之間的關係。在人工智慧研究領域中,本體論是對共享的概念化信息的一種明確的形式化規範。Nicola Guarino 把概念化信息C 定義為:
C =〈D , W , R〉
式中,D 是一個領域;W是該領域中相關的事務狀態 (state of affairs) 的集合;R 是領域空間〈D , W〉上概念關係 (conceptual relation) 的集合。從上述定義來看,一個領域中的術語、術語的定義以及各個術語之間的語義網路應是任一個領域本體論所必須包含的基本信息。通常,本體論採用“屬性-值”機制來描述每一個概念的重要屬性,概念間的進一步關係通過額外的邏輯語句描述。
KDL 試圖按組或類別組織和管理 Web 知識,並為 Web 知識的定義、推理、表示和管理提供一種標準化的工具和方法,為此 KDL 充分借鑑了描述邏輯 DL (Description Logics) 和框架系統 FS(Frame-based Systems) 的研究成果。其中,KDL 繼承了 DL 的規範語義,用概念和角色約束來描述自動分級分類的知識,套用一階邏輯對概念描述和角色約束進行判定和推理。同時,KDL 繼承了FS 的建模原語,採用基於類和屬性的概念對領域知識進行描述。領域中的關係可以作為獨立的實體,而不僅是類的屬性加以定義和描述,具有自身的領域和約束,也像類那樣具有層次化結構。由於在 DL 中概念是角色約束的子類,角色並不是概念的一部分,而從框架系統的角度出發,角色和概念的關係可以表述為:一個類是它屬性的子類。因此,KDL 約定屬性就是類的一部分。
本體需要某種語言來說明,該語言應該能夠以機器可理解的方式準確地定義概念以及概念之間豐富的關係。由於 XML 正成為 Web 上數據交換的標準語言,RDF (S) 是 W3C 推薦的定義網際網路語義數據模型的基礎構架,因此 KDL 採用了基於XML 和 RDF(S) 技術的語法。
KDL 框架結構
為了增強 KDL 的可擴展性,使其能夠隨著套用領域的不斷擴大而逐漸完善和豐富自身的建模原語和描述方法,KDL 採用了 3 層框架結構。
核心 KDL 層:作為目前 KDL 分層模型的最低層,核心 KDL 層力圖覆蓋最基本的建模原語,為套用開發人員提供足夠強大的表示能力、易於理解的語法符號、準確無誤的語義描述和切實可行的推理機制。為了與 W3C 的標準儘量保持一致,核心 KDL 層大量採用了 RDFPRDFS 的語法符號,可以將其看作 RDFS 標準的擴展。
擴展 KDL 層:鑒於核心 KDL 層只提供了基本的建模原語和語法符號,本層的主要工作集中在 2 個方面:一是豐富建模原語,在核心 KDL層的基礎上添加更多的原語以支持更加強大的建模功能;二是最佳化語法符號,利用新增的原語簡化KDL 語法符號表示或對原有語法符號變形,在不削弱可讀性的條件下儘量使其語法形式短小精悍。
複雜 KDL 層:充分參考 W3C 採用的 DAML語言在建模原語和語法符號上的發展,提供更加複雜、表示能力更強的 KDL 描述語言。在 KDL 3 層框架結構中,每一子層都增強了KDL 的功能和複雜性,其中低層子語言為上層提供支撐服務 (如聲明語法符號、建模原語和語義等),上層子語言調用低層提供的功能以實現新的服務。在保證接口不發生變化的前提下,每個子語言層都可以獨立的更新,提供新的建模原語和語法符號,從而使 KDL 的設計、開發、升級和套用具有更強的分散式特性。
KDL 的語法和語義
基於 XML 和 RDF 的語法
作為 W3C 定義的計算機文檔表示的標準標記元語言,XML 具有清晰嚴格的語法和良好的可擴展性,實現了數據的顯示樣式與數據本身分離。XML 的名字空間將來自單一 XML 套用的相關元素和屬性集合在一起,並且用來區分不同 XML 套用具有相同名稱的元素和屬性。通過在每個元素和屬性前添加名字空間前綴,區別不同的元素集合。XML 能夠描述任意結構的數據,DTD (Data Type Description) 或 XML Schema 提供了一套完整的機制以定製文檔的結構。
KDL 對 RDFS 擴展的包容結構關係RDF 的基本對象類型有:資源、屬性、陳述。任何可以通過 URI(Universal Resource Identifier) 來表示的對象都是 RDF 資源,它的屬性由屬性類型來標識,每一個屬性類型都有對應的屬性值。RDF 採用對象-屬性-值的三元組來描述資源之間的相互關係,記為A (O ,V) ,分別對應上面的資源、屬性和屬性值,或者稱為主題、謂詞和對象。此外陳述本身可被看作一個資源,即可以建立具體化的RDF 數據模型。
RDFS 定義了一種模式定義語言,提供了一個定義在 RDF 之上抽象的辭彙集,如:rdfs:Resource,rdfs:Class 和 rdfs : Property 類,rdfs : subClassof 和rdfs: subPropertyof 屬性關係,以及 rdfs : domain 和rdfs :range 的屬性約束關係。該辭彙集構成了一種基本類型系統及該系統的基礎類,這些基礎類包括定義新類必需的元對象類型,因此 RDFS 具有擴展特性,適合於 Web 上資源描述的本體建模。
KDL 對 RDFS 建模原語的擴展主要集中在類擴展定義、槽定義 2 個方面,類之間的約束關係通過槽約束表示,槽的定義通過 RDFS 的屬性擴展定義實現。KDL 通過 RDF 數據模型擴展定義類,類定義把同名字、文檔、類型、類的超類及為該類定義的屬性聯繫在一起。
KDL 的一階邏輯語義
由於一階邏輯 FOL ( First Order Logic) 廣泛用於自然語言、數學命題的形式化及程式語義的刻畫中。因此本文將從 FOL 角度說明 KDL 的語義特徵,提供 KDL 到 FOL 的映射方法以完成 KDL 語言和 FOL 表達式之間的轉化。同時,提供一組公理用來解釋轉化所得的 FOL 表達式中存在的非邏輯性符號 (如關係符號、函式符號和常量等)。
由於 KDL 是對 RDF (S) 的擴充,所有 KDL 描述均可以轉換為 RDF 表達式。因此,只要實現RDF 到 FOL 的映射就可以完滿的實現 KDL 的一階邏輯語義。通過以下 3 步可以將 KDL 本體論知識描述映射為 FOL 表達式:
1.將 KDL 語言描述的具體語法符號轉換成一組 RDF 表達式。其中,轉換輸出的 RDF 表達式各元素必須採用合法的 URI(字元串) 或 Skolem 常量標記。
2.將每一個由屬性 p 、資源 r 和屬性值 v 構成的 RDF 表達式轉換成一個知識互動格式 ( KIF)的 FOL 表達式。
3.添加公理解釋 RDF,RDFS 和 KDL 中的屬性、類和常量定義等非邏輯符號。