歷史學家知識工程/入門基本元素
知識工程的基本工具是實體和關係。
實體類似於概念——例如封建制度——或個體——聖彼得大教堂、查理大帝等。一些實體是永恆的,並且具有自指性,例如數字或名稱;而另一些實體則具有複雜的歷史,例如我們上面提到的兩個實體。
在我們檢視一些示例之前,請簡要說明一下符號:出於這裡展示的示例的目的,我們將使用大寫字母表示實體,使用小寫字母開頭表示關係。我們將使用雙分號——;;;——在我們的表示中表示註釋;因此,雙分號標記之後到該行末尾的任何內容都是註釋,可以包含任意字元。
也就是說,讓我們看一些示例
;; a couple of entities from the 4th century AD Trier-RomanCity ConstantineTheGreat HelenaOfConstantinople
這裡我們確定了三個實體:羅馬城市特里爾,德國;公元4世紀的羅馬皇帝君士坦丁大帝;以及他的母親,後來的奧古斯塔君士坦丁堡的海倫娜。
關係本身也是一個實體(或者至少應該如此),用於將(通常)兩個實體連線在一起。更準確地說,關係可以連線在一起的實體數量稱為該關係的元數。
;; something about our entities yearOfBirth(ConstantineTheGreat,272) motherOf(ConstantineTheGreat,HelenaOfConstantinople) residence(ConstantineTheGreat,Trier-RomanCity)
雖然人們可能懷疑連線兩個實體的關係(所謂的二元關係)是最有用的,但實際上元數為 1(一元關係)的關係確實有有趣的用途,即說明一個實體屬於一個特定的類別或型別
;; some type information about our entities male(ConstantineTheGreat) female(HelenaOfConstantinople) city(Trier)
請注意,並非所有本體都以這種方式處理型別資訊;事實上,我們可以將“男性”作為一個獨立的實體,然後使用二元關係將它歸屬於君士坦丁大帝。
;; for those who dont like unary relations is-a(ConstantineTheGreat,Male) is-a(HelenaOfConstantinople,Female) is-a(Trier-RomanCity,City)
以這種方式做事的好處是,像城市這樣的概念確實感覺應該成為獨立的實體。但是,並非所有型別都如此。事實上,有些型別在被視為實體時看起來很奇怪
;; which looks better? many think the first one does red(MyFerrari) is-a(MyFerrari,RedObject)
一些表示語言選擇不將關係作為獨立的實體(例如基於框架的系統),這會優先使用二元謂詞來分配型別資訊。然而,正如我們在上面所說,實際上沒有理由不將關係視為獨立的實體!
對於一些表示語言來說,關係的最大元數可能是一個與實現相關的選擇。這是可以辯護的,因為理論上來說,始終可以使用僅二元關係來構建n元關係的等效關係,前提是將關係本身提升到實體的級別。
;; Henry VIII and his wives, using a 7-ary relation hadAsWives(HenryVIIIofEngland,CatherineOfAragon,AnneBoleyn,JaneSeymour,AnneOfCleves,CatherineHoward,CatherineParr) ;; gets away with just binary relations memberOf(TheWivesOfHenryVIII,CatherineOfAragon) memberOf(TheWivesOfHenryVIII,AnneBoleyn) memberOf(TheWivesOfHenryVIII,JaneSeymour) memberOf(TheWivesOfHenryVIII,AnneOfCleves) memberOf(TheWivesOfHenryVIII,CatherineHoward) memberOf(TheWivesOfHenryVIII,CatherineParr)
這種方法有時被稱為“戴維森表示”,以哲學家唐納德·戴維森的名字命名,這是一個我們將在後面更詳細討論的問題。當然,人們可能嘗試過以下方法,但這並不能以同樣的方式捕捉到這些女士(有點無意地)共享的共同點
;; uses a another binary relations spouses(HenryVIII,CatherineOfAragon) spouses(HenryVIII,AnneBoleyn) spouses(HenryVIII,JaneSeymour) spouses(HenryVIII,AnneOfCleves) spouses(HenryVIII,CatherineHoward) spouses(HenryVIII,CatherineParr)
因為它不允許我們將任何資訊歸因於關係本身
;; this is only possible by making the relationship itself an entity nameOfTopic(TheWivesOfHenryVIII,"The Six Wives of Henry VIII") themeOfTVShow(TheWivesOfHenryVIII,TheSixWivesOfHenryVIII-PBSSpecial)
現在我們已經看到了幾個關係,很明顯它們有不同的型別。讓我們把一些真正不同的型別放在一起,並討論是什麼造成了它們的差異
;; some place information -- true though maybe not a deep insight locationOf(Trier-RomanCity,Germany) locationOf(Trier-RomanCity,Trier-RomanCity)
像locationOf這樣的關係被稱為自反關係;它們具有以下性質:它們通常(以一種微不足道的方式)將第一個引數與自身關聯起來。不出所料,自反關係始終是二元關係(將一個事物與自身關聯不止一次有什麼意義呢?)。
;; a bit of dynastic knowledge childOf(HenryVIII,HenryVII) childOf(MaryI,HenryVIII)
這些王朝關係與自反關係相反,它們是反自反關係。
;; more generally speaking descendant(HenryVIII,HenryVII) descendant(MaryI,HenryVIII)
在這個例子中,關係的有趣特性是——沒有明確說明這一點——我們知道瑪麗一世女王也是亨利七世國王的後裔(他畢竟是她的祖父)。這類關係被稱為傳遞關係,這意味著它們傳遞的屬性可以透過它們共享關係的中間實體從一個實體轉移到另一個實體。例如,childOf不是傳遞的,或者更準確地說,是非傳遞的。
;; more dynastic details spouses(HenryVIII,CatherineParr)
關係spouses與其他關係的不同之處在於,引數順序不傳達任何資訊。這類關係被稱為對稱關係,這意味著可以以任何順序編寫引數,而不會改變所表達的意思。這絕對不適用於childOf或parentOf——在這裡,引數順序至關重要。
有趣的是,有一小部分關係結合了這三個特性——自反性、對稱性和傳遞性——這些關係被稱為等價關係——可能因為equals是這類關係的典型示例。
型別關係的特性不僅限於考慮關係本身;還可以識別將兩個關係相互關聯的特性。
;; another dynastic variation husbandOf(HenryVIII,CatherineParr) wifeOf(CatherineParr,HenryVIII)
這種關於婚姻資訊的非對稱變化很有趣,因為這兩個關係傳達了同一資訊的不同觀點。我們稱這類關係為彼此的逆關係,因為需要反轉實體的引數位置才能表達相同的意思。