历史学家知识工程/入门基本元素
知识工程的基本工具是实体和关系。
实体类似于概念——例如封建制度——或个体——圣彼得大教堂、查理大帝等。一些实体是永恒的,并且具有自指性,例如数字或名称;而另一些实体则具有复杂的历史,例如我们上面提到的两个实体。
在我们查看一些示例之前,请简要说明一下符号:出于这里展示的示例的目的,我们将使用大写字母表示实体,使用小写字母开头表示关系。我们将使用双分号——;;;——在我们的表示中表示注释;因此,双分号标记之后到该行末尾的任何内容都是注释,可以包含任意字符。
也就是说,让我们看一些示例
;; 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)
这种关于婚姻信息的非对称变化很有趣,因为这两个关系传达了同一信息的不同观点。我们称这类关系为彼此的逆关系,因为需要反转实体的参数位置才能表达相同的意思。