KIF

數學家用來描述問題的通用工具是邏輯學。早在維根斯坦時代,許多數學家、哲學家和計算機科學家都試圖使用數理邏輯來清晰而無歧義地定義和描述感興趣的事情,結果簡單邏輯學(如一階邏輯FOL - First Order Logic)在描述事情方面表現出極大的威力。有些數學家和計算機科學家發現相對簡單的邏輯足以用來向人和其它的智慧型代理描述表示感興趣的事情和套用,比如簡單的具體事實、定義、摘要、推理規則、限制和元知識(關於知識的知識) 等。

1.一階邏輯

一階邏輯是用來表示知識的重要方法。一階邏輯是一種形式語言系統,研究的是假設與結論之間的蘊含關係,即用邏輯的方法研究推理的規律。它可以看成自然語言的一種簡化形式。由於它精確、無二義性,所以容易為計算機理解和操作,同時又與自然語言相似,故一階謂詞邏輯系統可以用來表示人類的某些知識。

一階邏輯作為形式語言存在局限性,其遠遠不能表示人類自然語言所能表達的全部知識,而人類所認識的知識類比自然語言所能表達的知識類還多。因此一階邏輯所能表示的知識範圍十分有限。從思維推理的角度看,一階謂詞邏輯所體現的邏輯推理規律,只能用來模擬人類的部分邏輯思維現象,也遠遠不能代表人類邏輯思維的全部。因此各種非規範邏輯的研究很有必要。

2.KIF的作用

KIF(Knowledge Interchange Format)是一種基於一階邏輯的形式語言,用於各種不同電腦程式之間進行知識交換,由史丹福大學建立,已經成為建議標準。目前KIF被普遍用在專家系統、資料庫和智慧型代理等領域,其構思不是用來實現人與機器的互動,不同的程式以自身適當的方式將信息展現給用戶,如框架、圖表和自然語言等。KIF的目的也不在於實現機器內或聯繫緊密的計算機集群中的知識的內部表示,即使KIF也能夠用於上述目的。尤其KIF起到了兩種其它語言間的連結紐帶和中間語言的作用,例如可以開發翻譯程式實現STEP/PDES表示到KIF相應表示的映射,或者相反,當STEP/PDES讀取KIF表示的知識庫KB時,需要將數據轉換成自身內部結構(如特殊的指針結構、數組等),所有計算工作就是以該種結構完成的。如果STEP/PDES程式與其它程式通信,必須將內部數據結構轉變成KIF。假設使用語言MSEC開發電子商務套用能為廣大用戶認識使用,那么就必須同時開發一種翻譯程式實現與KIF的互通,這樣就可以使用KIF來實現STEP/PDES和MSEC間的通信。為增強知識庫中知識的共享與交換,降低通用工具的開發難度,各種知識表示標準和交換協定被先後提出,KIF的作用顯得更加重要。

3.KIF中的定義

KIF的定義是極其詳細,其中有些細節內容是必須的,而有些是任意的。KIF定義的主要特點:

①KIF語言具有宣布語義 KIF表達式的語義是可以理解的,不需要求助解釋程式。在這點上。KIF不同於基於特定以解釋程式的語言,如Emycin和Prolog。

②KIF語言是邏輯可理解的 KIF以謂詞演算的形式提供任意句子的表達式,其與關係資料庫語言和類Prolog語言存在不同。很多關係資料庫語言只提供基本元句子,類Prolog語言卻必須作用於Horn子句。

③KIF語言提供關於元知識的支持 這樣就可以清楚地進行知識表示。並且在不修改語言的情況下引進新的知識表示結構。

4.KIF語義及OKBC

KIF語言基於一階邏輯,增加了對非單調推理和定義的支持,其語言描述包括語法規範和語義規範。特別需要指出的是,,KIF提供簡單數據表示。

KIF核心語義(即沒有規則和定義的KIF)與一階邏輯語義相似,增加了處理非標準運算符的功能,但是通過其格式對基本辭彙賦予語義要求模型應適應多種公理模式。儘管KIF核心對一階邏輯進行了擴展和限制,但是依然保留了一階邏輯的基本特點,包括簡潔和半決定性。KIF(Knowledge Interchange Format)是一種用於在不同計算機系統之間交換知識的面向計算機的一階語言。當一個計算機系統需要和其它的系統通信時,可通過將其內部的數據結構轉換成KIF來實現。作為純粹的表示語言,KIF並沒有包含知識庫存取和操作的命令。由史丹福大學知識系統實驗室提出的OKBC(Open Knowledge Base Connectivity)是為存取知識庫而設計的協定,它為知識庫的操作提供了通用接口。這一接口使應用程式獨立於特定的知識表示形式,使開發知識表示系統通用工具成為可能(如圖形瀏覽器和編輯器等)。這是通過定義一套“知識模型”(OKBC Knowledge Model)作為知識表示的中間語言(Interlingua)及其存取操作而實現的。OKBC是對KIF的補充,它側重於能被大多數知識庫支持並具有普遍性的操作,如對框架、槽的操作等。

5.KIF語法簡介

和許多計算機為主的語言一樣,KIF可比描述為三層結構。第一:基本的語言符號;其次,這些符號可以組成詞語;最後,詞語可以組成合法的表述。雖然KIF不要求必須以這種方式定義,這種方式卻簡化了句法描述並在詞語的層次上完成了對空格的處理。

nonterminal*表示符號出現零或更多次。nonterminal+表示符號出現一或更多次。space, tab, return, linefeed和page轉換為相應的ASCII編碼32, 9, 13, 10和12。所有符號使用ASCII字元集的128個字元。

KIF字元使用7位來存儲。包括大寫字母,小寫字母,數字,符號,空格和其他字元。

upper ::= A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

lower ::= a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z

digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

special ::= ! | $ | % | & | * | + | - | . | / | < | = | > | ? | @ | _ | ~ |

white ::= space | tab | return | linefeed | page

initialchar ::= upper | lower

wordchar ::= upper | lower | digit | - | _ | special

character ::= upper | lower | digit | special | white

KIF語言基本內容包括對象、關係和函式等,對象可以是常量和變數,這裡常量用小寫英文字母a,b,c等表示。KIF中的單個變數通常表示為?x,?y等,x,y是變數名,而序列變數表示@y,y變數名。其關係和函式對應著一階邏輯中的謂詞。KIF中關係函式表達式的格式是(< 關係或函式名> < 參數> *),其中“*”意指可以有多個或沒有參數。

關係定義 (Profession ?x a)指x(某人)的身份為a,a是常量,可以是教師、學生等;(Age ?x b)指x(某人)的年齡為b,b為某個整數;(Sex ?x c)指x(某人)的性別c,c取值男或女;(Yearonduty ?x d)指x(某人)的工齡為d,d為某個整數;(Education ?x e)指x(某人)的文化程度為e,e分為大學、中學和國小三檔;(Retire ?x)指x已退休。

函式定義 (Great Even ?x ?y)指x >= y。(Add ?x ?y)下面用到此函式,不需要用戶定義,KIF語言庫已經進行了定義。

6.KIF套用展望

目前為了使電腦程式更好地為人類提供信息等方面的服務,已經開發出了許多關於知識庫的套用,就是在網路界也提出了語義Web的概念,實現網路內容的計算機可理解性,所有這些套用的實施都離不開本體的創建,它們可能是使用各自工具通過不同本體語言實現的。正如前所論,這些套用間的通信是藉助知識交換格式KIF 來達到的,並且基本上所有的本體語言,如RDF/S和DAML+OIL都提供程度不同的邏輯推理機制以及與一階邏輯的映射,都提供了對KIF的支持。有理由相信,KIF將在今後的網路套用方面發揮更加巨大的作用。

相關詞條

相關搜尋

熱門詞條

聯絡我們