結構 知識的表示就是對知識的一種描述,或者說是對知識的一組約定,一種
計算機 可以接受的用於描述知識的數據結構。某種意義上講,表示可視為數據結構及其處理機制的綜合:表示= 數據結構+處理機制。因此在ES中知識表示是ES中能夠完成對專家的知識進行計算機處理的一系列技術手段。常見的有
產生式 規則、
語義網 、框架法等。
表示主體 知識是
信息接收者 通過對信息的提煉和推理而獲得得的正確結論;是人對自然世界、人類社會以及思維方式與運動規律的認識與掌握,是人的大腦通過思維重新組合和、系統化的信息集合。
在KR中,知識的涵義和一般我們認識的知識的涵義是有所 區別的,它是指以某種結構化的方式表示的概念、事件和過程。因此在KR中,並不是日常生活中的所有知識都能夠得以體現的,而是只有限定了範圍和結構,經過 編碼改造的知識才能成為KR中的知識。在KR中的知識一般有如下幾類:
有關現實世界中所關心對象的概念,即用來描述現實世界所抽象總結出的概念。
有關現實世界中發生的事件、所關係對象的行為、狀態等內容,也就是說不光有靜態的概念,還有動態的信息。
關於過程的知識,即不光有當前狀態和行為的描述,還要有對其發展的變化及其相關條件、因果關係等描述的知識。
元知識,即關於知識的知識,例如包括知識利用方面的知識。
方法 經過國內外學者的共同努力,目前已經有許多知識表示方法得到了深入的研究,目前使用較多的知識表示方法主要有以下幾種知識表示方法。
(1)邏輯表示法
邏輯表示法以謂詞形式來表示動作的主體、客體,是一種敘述性知識表示方法。利用邏輯公式,人們能描述對象、性質、狀況和關係。它主要用於自動定理的證明。邏輯表示法主要分為命題邏輯和謂詞邏輯。
邏輯表示研究的是假設與結論之間的蘊涵關係,即用邏輯方法推理的規律。它可以看成自然語言的一種簡化形式,由於它精確、無二義性,容易為計算機理解和操作,同時又與自然語言相似。
命題邏輯是數理邏輯的一種,數理邏輯是用形式化語言(邏輯符號語言)進行精確(沒有歧義)的描述,用數學的方式進行研究。我們最熟悉的是數學中的設未知數表示。例:用命題邏輯表示下列知識:
如果a 是偶數,那么a2 是偶數。
解:定義命題如下:P:a 是偶數;Q: a2 是偶數,則:原知識表示為:P→Q
謂詞邏輯相當於數學中的函式表示。例:用謂詞邏輯表示知識:自然數都是大於等於零的整數
解:定義謂詞如下:N(x):x 是自然數;I(x):x 是整數;GZ(x):x 是大於等於零的數。所以原知識表示為:(∀x)(N(x)(GZ(x)∧I(x)),∀(x)是全稱量詞。
(2)產生式表示法
產生式表示,又稱規則表示,有的時候被稱為IF-THEN 表示,它表示一種條件-結果形式,是一種比較簡單表示知識的方法。IF 後面部分描述了規則的先決條件,而THEN 後面部分描述了規則的結論。規則表示方法主要用於描述知識和陳述各種過程知識之間的控制,及其相互作用的機制。
例:MYCIN 系統中有下列產生式知識(其中,置信度稱為規則強度):
IF 本生物的染色斑是革蘭性陰性,本微生物的形狀呈桿狀,病人是中間宿主
THEN 該微生物是綠膿桿菌,置信度為 0.6
(3)框架表示
框架(Frame)是把某一特殊事件或對象的所有知識儲存在一起的一種複雜的數據結構。其主體是固定的,表示某個固定的概念、對象或事件,其下層由一些槽(Slot)組成,表示主體每個方面的屬性。框架是一種層次的數據結構,框架下層的槽可以看成一種子框架,子框架本身還可以進一步分層次為側面。槽和側面所具有的屬性值分別稱為槽值和側面值。槽值可以是邏輯型或數字型的,具體的值可以是程式、條件、默認值或是一個子框架。相互關聯的框架連線起來組成框架系統,或稱框架網路。
例:用框架表示下述地震事件:[虛擬新華社3月15日電]昨日,在雲南玉溪地區發生地震,造成財產損失約10萬元,統計部門如果需要詳細的損失數字可電詢62332931。另據專家認為震級不會超過4 級,並認為地處無人區,不會造成人員傷亡。
(4)面向對象的表示方法
面向對象的知識表示方法是按照面向對象的程式設計原則組成一種混合知識表示形式,就是以對象為中心,把對象的屬性、動態行為、領域知識和處理方法等有關知識封裝在表達對象的結構中。在這種方法中,知識的基本單位就是對象,每一個對象是由一組屬性、關係和方法的集合組成。一個對象的屬性集和關係集的值描述了該對象所具有的知識;與該對象相關的方法集,操作在屬性集和關係集上的值,表示該對象作用於知識上的知識處理方法,其中包括知識的獲取方法、推理方法、訊息傳遞方法以及知識的更新方法。
(5)語義網表示法
語義網路是知識表示中最重要的方法之一,是一種表達能力強而且靈活的知識表示方法。它通過概念及其語義關係來表達知識的一種網路圖。從圖論的觀點看,它是一個“帶標識的有向圖”。語義網路利用節點和帶標記的邊構成的有向圖描述事件、概念、狀況、動作及客體之間的關係。帶標記的有向圖能十分自然的描述客體之間的關係。
例:用語義網路表示下列知識:中南大學湘雅醫學院是一所大學,位於長沙市,建立時間是1914 年。
(6)基於XML 的表示法
在XML(eXtensible Markup language,可擴展標記語言)中,數據對象使用元素描述,而數據對象的屬性可以描述為元素的子元素或元素的屬性。XML 文檔由若干個元素構成,數據間的關係通過父元素與子元素的嵌套形式體現。在基於XML 的知識表示過程中,採用XML 的DTD(Document Type definitions,文檔類型定義)來定義一個知識表示方法的語法系統。通過定製XML 套用來解釋實例化的知識表示文檔。在知識利用過程中,通過維護數據字典和XML 解析程式把特定標籤所標註的內容解析出來,以“標籤”+“內容”的格式表示出具體的知識內容。知識表示是構建知識庫的關鍵,知識表示方法選取得合適與否不僅關係到知識庫中知識的有效存貯,而且也直接影響著系統的知識推理效率和對新知識的獲取能力。
(7)本體表示法
本體是一個形式化的、共享的、明確化的、概念化規範。本體論能夠以一種顯式、形式化的方式來表示語義,提高異構系統之間的互操作性,促進知識共享。因此,最近幾年,本體論被廣泛用於知識表示領域。用本體來表示知識的目的是統一套用領域的概念,並構建本體層級體系表示概念之間的語義關係,實現人類、計算機對知識的共享和重用。五個基本的建模元語是本體層級體系的基本組成部分,這些元語分別為:類、關係、函式、公理和實例。通常也把Classes(類)寫成Concepts。將本體引入知識庫的知識建模,建立領域本體知識庫,可以用概念對知識進行表示,同時揭示這些知識之間內在的關係。領域本體知識庫中的知識,不僅通過縱向類屬分類,而且通過本體的語義關聯進行組織和關聯,推理機再利用這些知識進行推理,從而提高檢索的查全率和查準率。
上面簡要介紹分析了常見的知識表示方法,此外,還有適合特殊領域的一些知識表示方法,如:概念圖、Petri、基於格線的知識表示方法、粗糙集、基於雲理論的知識表示方法等,在此不做詳細介紹。在實際套用過程中,一個智慧型系統往往包含了多種表示方法。
完整過程 從一般意義上講,知識表示就是為描述世界所做的一組約定,是知識的符號化、形式化或模型化;從
計算機科學 的角度來看,知識表示是研究計算機表示知識的可行性、有效性的一般方法,是把人類知識表示成機器能處理的數據結構和系統控制結構的策略。
一個完整知識表示過程是:首先是設計者針對各種類型的問題設計多種知識表示方法;然後表示方法的使用者選用合適的表示方法表示某類知識;最後知識的使用者使用或者學習經過表示方法處理後的知識。所以,知識表示的客體就是知識;知識表示的主體包括3 類:表示方法的設計者、表示方法的使用者、知識的使用者。具體來說,知識表示的主體主要指的是人(個人或集體),有時也可能是計算機。
知識表示的過程如圖1 所示。圖1 中的“ 知識Ⅰ” 是指隱性知識或者使用其他表示方法表示的顯性知識;“ 知識Ⅱ” 是指使用該種知識表示方法表示後的顯性知識。“ 知識Ⅰ” 與“ 知識Ⅱ” 的深層結構一致,只是表示形式不同。所以,知識表示的過程就是把隱性知識轉化為顯性知識的過程, 或者是把知識由一種表示形式轉化成另一種表示形式的過程。
相關示例 假設有這樣一個知識需要表示:小潘是計科系的學生,但他不喜歡編程。我們用一階
謂詞邏輯 來表示它就需要採用如下的步驟:首先,定義謂詞
Computer(x):x是計科系的學生
Like(x,y):x喜歡y
Computer(xiaopan)∧¬Like(xiaopan,programing)
產生式 規則:在條件、因果等類型的判斷中所採用的一種對知識進行表示的方法。其基本的形式是P→Q,或者是if P then Q。這裡這個產生式規則與剛才的謂詞邏輯中的“蘊涵(→)式”表示還是有區別的,後者是一種精確的匹配,即如果x,則100%的會是y,而前者則可以表示 一種模糊匹配,有一定的
置信度 ,即發生機率。
例如:if “咳嗽 and 發燒”,then “感冒”,置信度80%。這裡if部分表示條件部,then部分表示結論部,置信度表示當滿足條件時得到結論的發生
機率 。這整個部分就形成了一條規則,表示的就是這樣一類因果知識:“如果病人發燒且咳嗽,則他很有可能是感冒了”。
因此,針對比較複雜的情況,我們都可以用這種
產生式 規則的知識表示方式形成一系列的規則。