Ontology 是近年信息科學界最熱門的辭彙之一,國內一般將其譯為“本體”,實質上應該譯為“存在”。原是哲學的分支,研究客觀事物存在的本質。
Ontology- - 本體論(Ontology:o大寫)原是哲學的分支,研究客觀事物存在的本質。
它與認識論(Epistemology)相對,認識論研究人類知識的本質和來源。也就是說,本體論研究客觀存在,認識論研究主觀認知。而本體(ontology:o小寫)的含義是形成現象的根本實體(常與“現象”相對)。
在人工智慧領域,知識建模必須在知識庫和兩個子系統之間建立聯繫:agent行為(問題求解技能)和環境(問題存在的領域)[1]。而長期以來,AI的研究者較為注重前一個子系統,而領域知識的表達依賴於特定的任務。這樣做的好處是只需要考慮相關的領域知識。但是,大規模的模型共享、系統集成、知識獲取和重用依賴於領域的知識結構分析。
因此,進入九十年代以來,與任務獨立(task-independent)的知識庫(本體)的價值被發現,並受到廣泛關注。本文作者在研究產品設計知識重用的過程中,閱讀了大量有關本體的文獻資料。作者認為,本體工程在信息共享、系統集成、基於知識的軟體開發等方面具有重要的作用和廣闊的套用前景,而在國內,這方面的研究剛剛起步。
本文將扼要介紹這一新興學科分支的概念、方法及研究和套用現狀。
1 本體的基本概念 1.1 本體的定義近十年來,本體的研究日趨成熟。在各種文獻中,儘管與本體相關的概念和術語的用法並不完全一致,但是事實的使用約定已經出現。在參考文獻[2]、[3]中,作者根據已有文獻中相關概念和術語的使用情況,提出了推薦的使用約定。我們首先列出本體的幾種比較有代表性的定義,然後對相關的概念做簡要的描述。
本體(ontology)的幾個代表性定義:
(1) 本體是對於“概念化”的某一部分的明確的總結或表達[2]。
(2) 本體在不同的場合分別指“概念化”或“本體理論”[3]。
(3) 本體是對於“概念化”的明確表達[4]。
(4) 本體是用於描述或表達某一領域知識的一組概念或術語。它可以用來組織知識庫較高層次的知識抽象,也可以用來描述特定領域的知識[5]。
(5) 本體屬於人工智慧領域中的內容理論(content theories),它研究特定領域知識的對象分類、對象屬性和對象間的關係,它為領域知識的描述提供術語[6]。
從以上定義我們可以知道,本體通過對於概念、術語及其相互關係的規範化描述,勾畫出某一領域的基本知識體系和描述語言。其中定義1、2和3以“概念化”的定義為基礎,概念化(以及定義2中的“本體理論”)的定義見下文。 與本體相關的概念和術語: 本體論(Ontology,o大寫):特指哲學的分支學科[3]。
本體(ontology,o小寫):在不同的場合分別指“概念化”或“本體理論”[3]。(即以上本體定義2)。 概念化(conceptualization):指某一概念系統所蘊涵的語義結構,它是對某一事實結構的一組非正式的約束規則[3]。它可以理解和/或表達為一組概念(如實體、屬性、過程)及其定義和相互關係[7]。概念化的定義是以上本體定義1、2和3的基礎。 本體理論(ontological theory):表達本體知識的邏輯理論,它是一種特殊的知識庫,是本體知識所賴以存在的介質,強調的是具體的產品(designed artifact)。而“概念化”強調的是語義結構本身,是從具體的產品中抽象出來的對應的語義成分(semantical counterpart)[3]。 本體約定(ontological commitment):對使用某一本體所定義辭彙並與其含義保持一致的承諾[2]。 本體工程(ontological engineering):知識工程的分支,它研究如何用本體論的原則來構造本體理論[3]。 1.2 本體的作用總的來說,構造本體的目的都是為了實現某種程度的知識共享和重用。參考文獻[6]
認為本體的作用主要有以下兩方面:
(1) 本體的分析澄清了領域知識的結構,從而為知識表示打好基礎。本體可以重用,從而避免重複的領域知識分析。
(2) 統一的術語和概念使知識共享成為可能。
參考文獻[7]中則更具體的總結了本體的作用,即通訊(communication)、互操作(inter-operability)和系統工程(systems engineering)。
通訊
主要為人與人之間或組織與組織之間的通訊提供共同的辭彙。
在不同的建模方法、範式、語言和軟體工具之間進行翻譯和映射,以實現不同系統之間的互操作和集成。
本體分析能夠為系統工程提供以下方面的好處:
(re-usability):本體是領域內重要實體、屬性、過程及其相互關係形式化描述的基礎。這種形式化描述可成為軟體系統中可重用和共享的組件(component)。
(knowledge acquisition):當構造基於知識的系統時,用已有的本體作為起點和基礎來指導知識的獲取,可以提高其速度和可靠性。
(reliability):形式化的表達使得自動的一致性檢查成為可能,從而提高了軟體的可靠性。
(specification):本體分析有助於確定IT系統(如知識庫)的需求和規範。
本體的種類根據本體不同方面的屬性(如形式化程度、目的和描述對象),可以對本體進行不同的分類。 如根據本體的形式化程度不同,可以把本體分為高度非形式化的(highly informal)、結構非形式化的(structured-informal)、半形式化的(semi-formal)和嚴格形式化的(rigorously formal)[2]。 根據本體的描述對象不同,可以把本體分為特殊領域本體(如醫藥、地理、金融等)、一般世界知識本體、問題求解本體和知識表示語言本體等[2]。 由於本體的分類方法很多,目前還沒有能夠被廣泛接受的分類標準。但以下幾個概念的定義意義明確,並從某種程度上提供了本體的分類方法[2]:
(DOMAIN ONTOLOGY):以某一領域為描述對象的本體(區別於領域的問題和任務)。 ? 問題求解模型(PROBLEM SOLVING MODEL):以問題求解方法為描述對象的本體。
(REPRESENTATION ONTOLOGY):以知識表示語言為描述對象的本體。在表示本體中,類、對象、關係、屬性、槽等術語經過嚴謹的分析和定義。 本體和知識庫一般來說,本體提供一組術語和概念來描述某個領域,知識庫則使用這些術語來表達該領域的事實。例如醫藥本體可能包含“白血病”、“皮膚病”等術語的定義,但它不會包含對某一病人患某一疾病的診斷;而這正是知識庫所要表達的內容[5]。 實際上,如果本體和知識庫用同一語言表達的話,兩者之間並沒有清晰的界限。區別僅僅在於知識庫的哪一部分是可以共享和重用的,哪一部分是針對特定套用的。這種區別往往還隨著時間和具體的背景變化[2]。 1.5 用本體描述世界從描述對象的類型來說,本體既可以用來描述簡單的事實,又可以用來描述信念、假設、預測等抽象的概念;既可以描述靜態的實體,又可以描述與時間推移相關的概念,如事件、活動、過程等。 從描述對象的範圍來說,本體可以定義通用的、適合所有領域知識表示的術語,如空間、時間、部分等;也可以定義特定領域知識才使用的術語,如故障、肝炎等。 不同本體之間存在著差別,但它們在較高的抽象層次上(upper ontology)具有一些共同的特徵[6]:
(object); 對象具有屬性(property or attribute),屬性可以賦值(value); 對象之間存在著不同的關係(relation); 屬性和關係隨著時間(time)的推移而改變; 不同的時刻(time instant)會有事件(event)發生; 在一定的時間段上存在著過程(process),對象參與到過程當中; 世界和對象具有不同的狀態(state); 事件能導致(cause)其他事件發生或狀態改變,即產生影響(effect); 對象可以分解成部分(part)。
本體的描述是和特定的任務和目的無關的,但是我們使用本體總是有一定的任務背景,因此對於所描述的知識的選擇是和特定任務相關的。這也是不同頂層本體(upper ontology或top-level ontology)之間存在差異的主要原因。 面向對象的軟體設計也依賴於適當的領域本體,對象、屬性、方法或多或少會反映領域中與套用相關的方面,OO系統中對於領域的分析往往可以在不同的應用程式中重用。OO系統和本體強調了不同的側面。
領域本體將在軟體系統中起著與AI領域中類似的重要作用。 2 本體的構造本體作為通訊、互操作和系統工程的基礎,必須經過精心的設計,實際上,本體的構造是一個非常費時費力的過程。本節介紹本體構造的準則、方法和工具。 2.1 本體的構造準則 T.R. Gruber在參考文獻[4]中提出了指導本體構造的5個準則,
(Clarity):本體必須有效的說明所定義術語的意思。定義應該是客觀的,與背景獨立的。當定義可以用邏輯公理表達時,它應該是形式化的。定義應該儘可能的完整。所有定義應該用自然語言加以說明。 ? 一致(Coherence):本體應該是一致的,也就是說,它應該支持與其定義相一致的推理。它所定義的公理以及用自然語言進行說明的文檔都應該具有一致性。 ? 可擴展性(Extendibility):本體應該為可預料到的任務提供概念基礎。它應該可以支持在已有的概念基礎上定義新的術語,以滿足特殊的需求,而無須修改已有的概念定義。 ? 編碼偏好程度最小(Minimal encoding bias):概念的描述不應該依賴於某一種特殊的符號層的表示方法。因為實際的系統可能採用不同的知識表示方法。 ? 本體約定最小(Minimal ontological commitment):本體約定應該最小,只要能夠滿足特定的知識共享需求即可。這可以通過定義約束最弱的公理以及只定義通訊所需的辭彙來保證。 為了說明以上準則,Gruber還在此文中分析了兩個具體本體(工程數學本體和圖書信息本體)的構造實例。 2.2 本體的構造方法在參考文獻[7]中,Uschold & Gruninger提出了一個本體構造的方法學框架,該框架包括以下組成部分: ? 確定本體的目的和使用範圍 ? 構造本體,包括: ² 本體捕獲:即確定關鍵的概念和關係,給出精確定義,並確定其它相關的術語; ² 本體編碼:選擇合適的表示語言表達概念和術語; ² 已有本體的集成:對已有本體的重用和修改。 ? 評估:根據需求描述、能力問題(competency question)等對本體以及軟體環境、相關文檔進行評價。 ? 文檔記錄 ? 每一階段的指導準則 在這個框架內,他們詳細的描述了本體捕獲和形式化的本體設計和評估方法。 M. Gruninger & M.S. Fox在進行TOVE[8]本體的研究和開發時,也總結了設計和評估本體的方法學,包括背景和需求描述、非形式化的能力問題描述、辭彙和術語確定、形式化的能力問題描述、用一階謂詞邏輯進行規範描述、確定完整性定理等步驟。 2.3 本體的表示語言和開發工具目前的領域知識表達採用謂詞邏輯(predicate calculus)作為基本的形式化方法(加上type-of關係表達類的繼承關係),情景邏輯(situational calculus)是謂詞邏輯的變種,它引入時間的概念來表達狀態、事件和過程。如果我們把圖像和其它感覺形式也包括到知識範疇中來,就需要非常不同的表達方式。但是目前,謂詞邏輯為本體共享技術開了一個好頭。 在具體的本體開發環境和工具方面,有史丹福大學KSL(知識系統實驗室:Knowledge Systems Laboratory)的Ontolingua[9]、KACTUS項目使用的CML[10](概念建模語言:Conceptual Modeling Language)、英國Open大學KMI(知識媒體研究所:Knowledge Media Institute)的Tadzebao和WebOnto[11]等,在此不作詳細的介紹。 3 本體的研究與套用現狀 3.1 領域本體研究 3.1.1 CYC CYC是位於美國德州奧斯汀的MCC (Microelectronics and Computer Technology Corporation)公司的研究項目[12],其目的是通過本體開發為常識推理(common sense reasoning)提供基礎。 CYC中的知識用一階謂詞邏輯的變種CYCL表達。知識庫中包含簡單的聲明、推理規則、推理控制規則。在知識庫的基礎上,可以使用推理機產生新的推斷。 CYC本體按照模組(module)組織,稱為微理論(microtheories)。
每個微理論包括某一特定領域知識和推理所需的概念,如空間、時間、因果、智慧型體等。某一領域本體可能包括多個微理論,以反映該領域建模的不同側面和前提。在這個意義上,CYC不是一體的集成本體,而是一個微理論的網路,該網路的並集為若干領域提供本體約定。 3.1.2 TOVE TOVE (TOronto Virtual Enterprise)是加拿大多倫多大學的研究項目,其目的是構造企業本體,並具有以下特徵:1)為企業的套用軟體提供共享的術語;2)用一階謂詞邏輯為每個術語定義儘可能精確的含義;3)用一組Prolog公理來實現本體語義約束,使TOVE能夠自動的對與企業有關的常識性問題進行演繹推理;4)定義一套符號,對術語和概念進行圖形化的描述。 TOVE本體包括活動、組織、資源、產品、成本和質量等部分,它們組成了集成的企業模型。 3.1.3 Enterprise Enterprise項目是英國愛丁堡大學人工智慧套用研究所(AIAI: Artificial Intelligence Application Institute)的研究項目[13]。其目的是通過一個集成框架,集成企業建模的方法和工具,以改進和代替現有的建模方法。該集成框架以企業建模本體為基礎。通過提供一組工具,可以輔助用戶進行企業建模和分析,具體內容包括:1)對於企業模型的捕獲和描述;2) 描述經營問題和需求;3)在戰略、戰術和操作層次上,確定和評估解決問題的方法以及系統的設計和實現;4)對相關的度量體系進行表示,並支持高級仿真。
企業本體由以下部分構成: ? 元本體:實體,關係,角色,行動者,事件狀態 ? 活動和過程:活動,資源,計畫,能力 ? 組織:組織單元,合法實體,管理,所有權 ? 策略:目的,策略,有助於實現,假設 ? 行銷:銷售,產品,零售商,客戶,市場 3.1.4 KACTUS KACTUS是歐洲ESPRIT項目[14]。其目的是開發出技術系統全生命周期的知識重用方法學,以便在設計、診斷、操作、維護、再設計和培訓時使用同一知識庫。通過構造支持產品知識重用的本體,KACTUS能夠支持計算機集成製造方法和知識工程方法的集成。另外,KACTUS還試圖將本體同現有標準(如STEP)進行集成。 KACTUS的主要表達方法是CML(概念建模語言:Conceptual Modelling Language)。與其它的本體表達方法不同,CML在領域知識、推理知識、任務知識和問題求解知識之間作了區分。 KACTUS還提供了互動式的環境,支持本體的瀏覽、編輯和管理。除了CML以外,KACTUS工具還提供了對EXPRESS和Ontolingua的支持。 3.2 表示本體和問題求解模型 3.2.1 KSL Knowledge Sharing Effort Knowledge Sharing Effort是美國DARPA項目[15],主要由史丹福大學知識系統實驗室承擔。其目的是使得知識系統的開發者能夠從可重用的模組庫中選擇構件,進行裝配,形成所需的新系統。該項目分為四部分內容:(1)不同語言表示的知識庫之間的翻譯機制(KIF: Knowledge Interchange format);(2)在一族表達範式之間建立共同的語言版本和推理模組;(3)基於知識的系統之間的通訊協定(KQML: Knowledge Query and Manipulation Language);(4)本體庫,即為構造領域知識庫而預置的基礎。KIF是一種中性語言,能夠表示目前高級知識表示語言中幾乎所有重要的概念和區別。 為了解決本體表示不統一的問題,他們還開發了基於Web的Ontolingua系統[16]。Ontolingua是獨立於特定表示系統的本體定義機制,它允許用KIF定義類、關係和對象,並能將這些定義翻譯成幾種特定的表示語言。Ontolingua還進一步定義了框架本體(表示本體),來支持本體的移植。 3.2.2 Guarino對於本體的研究 Guarino是義大利帕多瓦大學LADSEB-CNR(Institute for Systems Theory and Biomedical Engineering)的高級研究員。他分析總結了本體及相關概念的含義[3],提出了“本體層”的概念[17],研究了表示本體的本體約定[18],並探索了本體在物理對象、STEP語義方面的套用[19][20],具有重要的參考價值。 3.2.3 CommonKADS CommonKADS是歐洲ESPRIT項目[21],它在問題求解模型研究方面有重要作用。它定義了技能模型(Model of Expertise)、解釋模型(Interpretation Model)和任務模型(Task Model)等重要概念。技能模型包括啟發式模型(基於規則的求解模型)、深度模型(基於功能和結構信息的求解模型)、隱含模型(基於連線主義方法的求解模型)、能力模型(與表示語言獨立的對於技能的高層描述)、分散式模型(Multi-agent問題求解系統)等。解釋模型是對問題求解方法的描述。任務模型是對問題求解過程控制結構的描述。 3.2.4 本體與標準之間的集成本體的開發可以使得不同工具之間的表示標準化,目前有幾個項目正在進行這方面的工作。如工作流管理同盟、STEP和EXPRESS、CORBA和KIF等。 工作流管理同盟(Workflow Management Coalition)定義了一組辭彙[22],包括定義、使用、同義詞等。這些辭彙作為半形式化的本體進行共享。另外,MIT、史丹福大學、多倫多大學、愛丁堡大學等還聯合開發了PIF(Process Interchange Fromat)[23],來支持不同軟體系統之間的過程數據交換。 STEP (Standard for the Exchange of Product Model Data)是進行產品定義和描述的中性語言,其目的是在不同的套用之間進行信息交換和互操作。STEP使用EXPRESS作為建模語言,但EXPRESS並不能完全解決產品建模的語義問題,參考文獻[20][24]中對此問題進行了基於本體的初步探討。 CORBA (the Common Object Request Broker Architecture)標準的出現是為了解決分散式環境下的對象互操作問題[25]。它使用IDL(Interface Definition Language:接口定義語言)來定義遠程對象間進行互操作的接口。KSL的Ontolingua服務提供了IDL和Ontolingua之間的翻譯。CORBA定義了對象模型,對象的實現提供了對象的語義。業務對象管理組(Business Object Management group)還提供了辭彙表,這些都可以看作本體的雛形。 KIF[26]和概念圖(conceptual graphs)[27]都是用來表示本體的語言,它們都基於一階謂詞邏輯,但細節上有所不同。目前正在開發系統,實現兩者之間的翻譯和映射。
綜上所述,目前,本體方面的研究文獻已經大大豐富,基於Web的本體構造、編輯、瀏覽和使用工具已經可用。已經存在幾種本體表示的方法,對於本體設計和評估的方法學也有了初步的探索,並可利用工具在不同的表示方法之間進行翻譯和互操作。 本體已經在一些商用系統中得到套用,它的重要性已經被半導體製造業、飛機製造、企業過程管理、異構資料庫集成、知識工程和規劃等不同領域所認識。 目前的主要困難在於[28]:儘管構造本體的目的在於重用,但真正重用的實例卻不多見。人們往往喜歡構造自己的本體。造成這種情況的原因主要有兩方面,一是本體構造的目的不同;二是本體表示的方法不統一。如何解決這個問題,將是下一步研究的重點。