2.2.2 知识获取本体表示
领域知识获取本体表示语言KAOL(Knowledge Acquisition Ontology Language)由两部分所构成:类别表示和槽模式表示。
2.2.2.1 类别表示
根据框架表示语言的结构性和集成性的特点,类别表示语言中,类别标题包括关键字“defcategory”和类别名称。类别主体由槽集合和公理所构成。槽进一步可分为属性槽和关系槽。对于槽的属性和性质等附加信息,利用槽的侧面(Facet)进行描述。公理是一阶谓词公式,表示关于类别的属性和性质、类间关系等。类别的表示示例如下所示。
构建子类生成规则的目的是根据类别的槽的值域来生成类的子类。其形式为〈C1.S1>〈C2.S2>,其中,S1为类别C1的槽,S2为类别C2的槽。例如,根据子类名称生成规则“〈磨制石器.器形>〈磨制石器.子类>”,可构建磨制石器的子类“单刃石锛”,因为“单刃”为磨制石器的一种器形,“石锛”为磨制石器的子类。有关类别及其槽的内容示例,如下所示。
框架“defcategoryslot主要石制品(类别=石制品)”中,表示类别“石制品”的槽“主要石制品”为类内槽继承属性,继承公共槽“主要~MS”,~MS为参数,值为“石制品”。
2.2.2.2 槽模式表示
槽模式(Slot Pattern)是为了获取领域实例或领域个体的知识而设计的。给定类C的槽S1,S2,…,Sn(n≥1)的槽模式,若I为C的实例,则可以根据其槽模式来提取I的槽S1,S2,…,Sn的槽值。槽模式包括类名、槽名、触发条件、模式、泛化模式、合并模式、实例槽名槽值等内容。槽模式采用框架来进行表示。模式和槽模式具有不同的含义。槽模式中可能包含多个模式,每个模式是获取槽值的一个句子层次上的模式。槽模式的内容示例,如下所示。
其中,“#SV”和“#INS”为字符串变量名,“#INS”表示实例变量,“#SV”表示槽值变量。“〈!发掘队>”和“〈!发掘>”等表示常量类项,例如,常量类项〈!发掘>包括字符串“发掘”和“挖掘”。对于句子“1963年,由冯汉骥领队,四川省博物馆、四川大学历史系组成的联合考古队再次发掘了三星堆遗址的月亮湾等地点。”,该句子可与模式I进行匹配。
2.2.2.3 模式项的类型
模式的项分为常量项和变量项,其分类结构如图2.2所示。常量项包括单常量项和常量类项。变量项包括自由变量项和约束变量项。约束变量项是指对项加以结构、词汇、语法、语义等方面的约束。例如,词性变量项、关系动词变量项和字符串变量项为约束变量项。自由变量项是指对项不加以约束,可为任意非空的字符串。模式项的内容示例如下所示。
图2.2 模式项的类型
根据模式项的可选性质,模式项可分为模式必选项和模式可选项。
(1)必选项。
对于必选项,标识符为“〈项>”。例如,必选项“〈质料>”,其含义为表示该项为必选项。
(2)可选项。
对于可选项,标识符为“[〈项>]”。例如,可选项“[〈主要>]”,其含义为表示该项为可选项。
在模式项的基础上,可以定义模式或语境。
定义(模式,Pattern):设Γ1为常量项集合,Γ2为变量项集合,
(1)∀α,β∈Γ1∪Γ2,则α+β和β+α均为模式,α+β表示对项α和β进行链接运算,简写为αβ。例如,对三个项“〈以>”“〈#非空字符串z>”和“〈而得名>”通过链接运算,构建模式“〈以>〈#非空字符串z>〈而得名>”。
(2)∀α,β∈Γ1∪Γ2,则α∨β是模式,α∨β表示对项α和项β进行析取运算。例如,对项“〈因而得名>”和项“〈因以得名>”进行析取运算,构建模式“〈因而得名∨因以得名>”。
(3)∀α∈Γ1∪Γ2,CP是模式,则α+CP和CP+α均是模式,α+CP表示对项α和模式CP进行链接运算。
定义(目标值):给定模式CP和句子s,CP=〈t1>〈t2>…〈tm>,s=c1c2…cn(t是项,c是字符串,m和n是整数),若s匹配CP,即对于j=1,2,…,m,字符串cj1,cj2,...,cji匹配项tj。若tj是变量项,则cj1,cj2,...,cji定义为目标值。
2.2.2.4 谓词和操作
本节首先定义关于模式的谓词,如下所示。