首页 理论教育 基于本体的知识组织法

基于本体的知识组织法

时间:2022-03-04 理论教育 版权反馈
【摘要】:基于本体的知识组织首先需要构造一个形式本体,也就是能进行形式化表达的本体模型,然后用计算机软件形式表达出来。这种承诺是基于知识层级的。在本体设计时,应该在支持知识共享活动要求的基础上尽可能地减少本体承诺,即允许对本体进行承诺的知识系统根据自身需要自由地对本体进行专门化和实例化。根据本体的应用目的和设定的形式化程度,确定本体的知识主题范围。

3.3.4 基于本体的知识组织法[33-36]

本体(Ontology)是在语义层次上描述知识的概念模型。在前面我们曾经介绍过基于本体的知识表示方法,实际上,本体也是一种有效的知识组织工具。它具有良好的概念层次结构和对逻辑推理的支持能力,能较好地反映知识体系。在最简单情况下,本体只描述概念的分类层次结构;在复杂情况下,本体在概念分类层次的基础上,加入合适的属性以约束概念的内涵,或加入其他概念之间的语义关系以形成概念网络。

本节侧重讨论基于本体的知识组成元素、本体的构造方法和本体概念层次结构的构建方法,关于本体知识组织实例参见第9章。

1.本体的类型

目前关于本体的研究非常广泛,尤其是在国外,许多研究组织和机构都研究建立了各种各具特色的本体。不同的学者也从不同的角度出发对本体的类型进行了概括。

Fensel根据其应用主题,将本体划分为四种类型:

(1)领域知识本体,用于描述某个特定专业领域的本体,定义该领域的概念和概念间关系,描述该领域的基本原理、主要实体和活动关系,提供领域内部知识共享和知识重用的公共理解基础。目前许多领域已经拥有了相应的本体,例如美国国家医学图书馆建立的UMLS医学领域本体、爱丁堡大学开发的企业本体,另外还有如GENSIM生物医学本体,Plinius陶瓷材料本体等。

(2)通用或常识本体,用于描述通用知识,如:时间、空间、事件等。目前世界上最大的常识本体体系是Cyc公司开发的OpenCyc,最新版的OpenCyc包括6000个概念和60000个关于这些概念的声明(包括概念间的关系、对概念的限制等),另外OpenCyc还包括一个基于本体的常识推理机。

(3)方法本体,也称为任务本体,用于描述任务的求解方法,如医学诊断方法、知识检索方法等。方法本体和一般的本体不同,它主要描述的是动态知识,其目的在于提供求解方法的共享基础,方法本体中经常描述的要素包括:任务目标、任务数据、执行状态等。

(4)元数据本体,用于描述信息资源元数据的本体,元数据用来定义联机信息资源的格式和内容,元数据本体则提供了这些定义方法的公共理解基础。

Mike Uschold和Robert Jasper根据本体表示的形式化程度,将本体分为四种类型:

(1)完全非形式化,用自然语言进行表示,结构非常松散,典型的如术语列表。

(2)结构非形式化,用受限的或结构化的自然语言进行表示,能有效提高本体的清晰度,减少模糊性。如:Enterprise Ontology的文本版本。

(3)半形式化,用人工定义的形式化语言进行表示,目前已有许多研究机构开发制定了这类形式化本体表示语言。

(4)完全形式化,具有详细的概念项定义、语义关系的形式化定义以及稳固和完整的公理和证明。

在实际应用中,这几种表示方式各有所长。如果本体的应用目的是为了加强人与人之间的交流,则非形式化的本体将更为适用,如果对本体的处理需要由机器自动完成,则其形式化程度越高越好,在有些情况下,需要将非形式化和形式化两种方式组合起来使用。

2.本体的构造原则

基于本体的知识组织首先需要构造一个形式本体,也就是能进行形式化表达的本体模型,然后用计算机软件形式表达出来。不少研究者为了指导本体的构造,提出了不少有益的标准。归纳起来,本文总结了七项本体构造原则[37]

(1)明确性和客观性。明确有效地表述概念知识的内容,客观地和形式化地定义概念名称,准确地表达概念项的内涵,尽可能地使用标准术语。概念知识虽然将被应用于计算机环境,但它本身应该是独立于计算机环境的。所有的定义都应该具有自然语言的文本说明。

(2)连贯性。本体中的知识应该保持连贯性,推断出的概念知识应该和已定义的概念知识保持一致。

(3)可扩展性。建立本体时应考虑到其可能的扩展,能够让人们对本体作进一步的补充和专门化说明。换言之,人们可以为特殊的应用定义新的概念项,而不需要修改现有的定义。

(4)层次性。使用概念层次关系、多重继承机制来增加表达能力,但要注意同层次概念间应保持最小的语义距离。

(5)交互性。本体的建立是一个不断反复的过程。在本体的原型建立之后,通过领域专家的评估和实际应用的检验对它进行不断的完善和修正。

(6)最小编码偏差。本体中的概念知识不应该依赖于其编码符号。如果不是知识内容的需要,而是为了标注或实现上的方便而作出某种表示选择,就可能导致编码偏差。编码偏差应尽可能最小化,因为不同的知识系统往往使用不同的知识编码体系,只有最小的编码偏差才能使本体具有较好的独立性。

(7)最小本体承诺。当某个知识系统使用知识的行为与某个本体中的定义相一致时,就可以称这个知识系统承诺了该本体。这种承诺是基于知识层级的。在实际应用中,本体中定义了用于在知识系统间进行交换的词表,而本体承诺则是以连贯和一致的方式使用这个共享词表的协议。在本体设计时,应该在支持知识共享活动要求的基础上尽可能地减少本体承诺,即允许对本体进行承诺的知识系统根据自身需要自由地对本体进行专门化和实例化。

3.本体的构造方法

建立本体的方法和技术有很多,但它们针对不同种类的本体,互相间不能融合一致,也没有遵循统一的开发模式和协议。要将这些方法和技术统一到一个单一的方法论中是不现实的,因此这里只从知识工程的角度提出建立本体的一般典型过程,它主要包括下面五个步骤。

第一步:确定本体的目标。

在本体建立之初,首先要对本体的需求目的有一个明确的认识,即为什么要使用该本体?它将被用来干什么和它将被怎样使用?回答这些问题的方法主要有:

●确定和识别本体用户的范围(如:管理者、技术人员、程序员)。

●将本体的具体使用环境与本体的通用应用目的相对照。

●利用假想场景和能力问题辨析特定的使用和运行机制。

●建立一个关于本体用途的用户需求文档。

另外,在建立本体的初始阶段,还应该根据本体在特定环境中的应用目的和用户类型,决定本体的形式化程度。如果用户是非技术人员,而本体的主要目的在于提供共享的术语集合,以方便人与人之间的交流,则一个非形式化的术语表就可以满足要求。如果本体需要支持知识库的内部操作,则该本体需要具有高度形式化的表述。通常来说,本体的形式化程度随着其系统任务的自动化程度的提升而提升。

有时也可能需要在一个系统中同时采用形式化和非形式化两种方式描述本体,以便同时满足技术用户和非技术用户的需要。即使是在只面对技术用户的系统中,完全非形式化的本体也可以发挥作用,如帮助建立技术说明文档或者作为形式化本体的编制基础等。

对本体的应用目的和形式化程度的准确判断有助于对本体的内容、性质和评估标准等进行清晰的定义和规划。

第二步:确定本体的主题范围。

根据本体的应用目的和设定的形式化程度,确定本体的知识主题范围。例如对于知识检索领域,本体的主题范围包括检索领域知识、检索专家知识、通用知识、语言学知识和用于控制的元知识等。获取本体主题范围的方法是收集相关的信息资源和专家知识并将其以主题知识(一组涵盖本体全部知识内容的词项)的形式表示。

第三步:建立本体。

在拥有了本体所必须包含的主题知识集合后,下一步就是建立本体来表示知识,这一过程也是知识的概念化和形式化的过程,其任务包括三个部分。

首先,设计领域知识的整体概念结构,包括识别该领域重要的概念项、概念属性和概念间的关系;提取或设立抽象概念作为组织特性;识别具有实例的概念;产生概念定义,决定如何对已定义的项进行组织,确定本体的结构;根据实际需要设计其他一些指导方针等。

其次,利用类、关系、函数、公理、实例等本体要素组织和表示领域概念知识,其详细程度以满足本体的应用目的为宜。

最后,选择合适的本体工具和本体语言,建立具体的本体。

第四步:检查和评估本体。

通过领域专家对本体进行最终的验证,包括检查各个本体元素间在句法上、逻辑上和语义上的一致性,依据评估参考(如需求说明、应用场景和能力问题等)对本体、本体相关的软件环境和文档作技术性的评判。

第五步:提交本体和反馈。

将本体发布到相关的应用环境并进行配置,应用反馈信息用于对本体的修正和完善。

4.本体概念层次结构的构建方法

本体的最大特色之一就是其概念层次结构。概念是本体中的基本知识元,通常用类来定义。类用于描述抽象的实体对象,代表着一类具有共性的实例对象。类具有继承性和层次性,最高层的类代表着最抽象的实体概念,子类继承了其父类的抽象特性,代表比其父类更具体或范围更小的实体概念。因此,本体的概念层次结构实际上就是一种类层次结构。图3-2中的信息系统本体就具有典型的类层次结构。

img11

图3-2 信息系统本体

定义类和类层次结构的基本方法是:从概念集合中选取具有独立存在性的对象概念(而不是描述这些对象性质的概念),作为本体中的类和类层次结构中的锚点。通过判断某个类的实例是否也是另一类的实例来判断两个类的层次关系。

定义类层次结构的方式主要有三种:自底向上法、自顶向下法和中间开始法。

①自底向上法。自底向上法的定义过程从类层次结构的底层开始,首先定义最细化、最专指的叶子结点类,然后逐步将这些类概括,形成较综合的上层概念类。自底向上法的缺点是容易产生过多的细节,进而导致重复工作和不一致性。

②自顶向下法。自顶向下法的定义过程从类层次结构的顶层开始,首先定义最通用的概念类,然后逐步将通用概念分解,形成专指概念。自顶向下的方法可以较好地控制细节,但是由于高层概念的产生比较随意,不是通过自然聚合形成的,因而容易导致整体模型的不稳定性。

③中间开始法。鉴于自底向上法和自顶向下法的缺陷,大多数开发者偏向于采用一种可操作性更强的组合式方法——中间开始法。在类的层次结构中,位于中间层次的概念类往往是一个知识领域中最具代表性的概念,中间开始法就是从概念集合中选取最重要的对象概念,作为类层次结构的中间层,然后再对其进行逐步的细化或泛化。这种方法从最突出、最明显的类开始定义,描述细节的概念类只在需要的时候才提出,因此可以保证适当的细节规模。另外,由于高层概念由中间层概念自然产生,因而保证了整体模型的稳定性[38]

在定义了一定规模的新类后,需要对已有类的层次结构进行检查,确定其正确性,这对于保证整体模型的稳定性具有重要意义。检查类层次结构的正确性需要注意以下几个要点。

①父子关系。类层次结构中最主要的关系就是父子关系(“isa”关系)。判断父子关系的原则是:如果类A的每一个实例也都是类B的实例,则类A是类B的子类。有时也可以根据属种联系(“kind-of”关系)建立父子关系,例如:“喷气机”是“飞机”的一种,因此“喷气机”可以是“飞机”的子类。

②层次结构关系的传递性。类的父子关系是可以传递的,如果B是A的子类,C又是B的子类,则C也是A的子类。有时还需要区分直接子类和间接子类,直接子类是指离某个类最近的子类,在该类与其子类间不再有别的类,例如上面的B是A的直接子类,C是B的直接子类,而C是A的间接子类。由于类的父子关系具有传递性,因此在定义类的层次结构时,要特别注意避免循环定义,如果A是B的子类,而B又是A的子类,则意味着A与B等价。

③类层次结构的进化。在领域知识的进化和发展中,类层次结构也要相应地进行调整和进化。例如:在“酒和食物”本体中将“Ziafandel酒”作为“红酒”的子类,因为目前所有的Ziafandel酒都是红色的,但是如果今后由于某种原因生产出白色的Ziafandel酒,则需要将Ziafandel酒分为“Ziafandel红酒”和“Ziafandel白酒”两类,并让它们分别属于“红酒”类和“白酒”类。

④类的多重继承。类的多重继承性表明一个类可以是多个类的子类,假设创建了两个单独的类“红酒”和“甜酒”,那么对于“Port酒”来说,它既是“红酒”也是“甜酒”,因此它同时是这两个类的子类,也同时继承这两个类的属性槽和侧面。

⑤兄弟关系。如果两个类都属于同一个父类的直接子类,则认为这两个类之间存在兄弟关系。类层次结构中的所有具有兄弟关系的类彼此都处于同一个泛化程度上(根结点除外),就如书的同一层次的章节一样,因此从某种意义上说,类的层次结构就是本体的纲要。

位于根结点的概念往往代表对领域知识的划分,因此不需要与之相似的兄弟概念,为了方便本体的整合和共享,一般都将领域知识的根结点定义为最通用的类(如“Thing类”)的子类。

对于一个类所能拥有的子类的数目并没有明确的规定,但据研究,大多数结构化程度较好的本体中的类一般都具有二至十二个直接子类。这是因为:

●如果一个类只有一个直接子类,则意味着知识的建模存在一定的问题或者本体本身不完整。例如,几乎所有的红色Burgundy酒都是Cotesd'Or酒,那么如果在定义“红色Burgundy酒”类的同时,又定义了它的一个子类“Cotesd'Or酒”,则后者可能是前者唯一的直接子类,两者传达的知识内容也完全相同。因此定义“Cotesd'Or酒”类不能提供更多的有用信息,不具备任何意义。

●如果一个类具有多于十二个的直接子类,则意味着可能需要对其进行进一步的分类。使直接子类中的一部分归于新的分类中,变成该类的间接子类。但是在实际应用中要注意的是,如果现实中并没有可以用来进一步划分的概念类,则没有必要特意去编造一个人工类,而是保留原来的结构,因为本体需要尽可能真实地反映现实知识。

另外,在构造和完善类层次结构的过程中,还有一些要注意的原则和要仔细处理的问题。

①引入新类。在对类的层次结构进行建模的过程中,最难处理的问题是何时引入一个新的类。有两种不利于知识导航的类层次结构,一种是具有大量无关联的类且嵌套复杂的多层次结构,另一种是类的数目不多,但类的槽中却包含过多信息量的平面层次结构,必须在这两者之间寻找最佳的平衡点,下面的原则有助于决定引入新类的时机。

如果要引入一个新类,则它至少应该具备下面的条件之一:

●具有其父类没有的属性;

●具有不同于其父类的特殊限制;

●参与了不同于其父类的关系。

换言之,引入一个新类往往是因为这个新类可以反映出其父类没有的知识内容。在实际应用中,每一个新加入的子类,要么加入了新的槽,要么具有槽值的新定义,要么重载了继承槽的某些侧面。

不过在一些特殊的应用情况下,可以创建某个没有引入任何新属性的新类,最典型的情况是创建某个知识领域的术语层次结构。例如某个用于电子医学记录系统的本体,包含了医学领域的大量参考概念,如各种疾病的名词及其分类结构。这种分类结构可能仅仅只是一个概念名称的层次结构,不包含属性或者都具有相同的属性集合。在这种情况下,为了便于对疾病名称的浏览和导航,或是为了方便医生选择某一个适应于实际情况的概念的泛化层次,仍然需要将这些概念术语组织成为层次结构的形式,而不是一个平面的列表。

从另一方面来说,也不应该为每一个新的性质或限制都创建一个新的子类。例如,定义“红酒”和“白酒”类是因为它们都是现实世界中实际存在的差别个体,但是不会定义“美味的酒”、“好酒”之类的类。在定义一个类的层次结构时,必须在创建有用的新类和创建过多的类之间寻求最佳平衡点。

②对类与属性值的判别。在对领域知识建模时,当遇到某个与现有模型有差别的现象时,就需要在本体中加入新的知识片以反映这种差别。问题是将这种差别描述为类还是描述为一个属性值呢?这同样取决于领域的适用范围和当前的任务需要。

●如果个体间的差别在领域知识的应用中非常重要,且具有不同差别值的对象被认为是不同种类的对象,则需要建立新的类来反映这种差别。

举例来说,假设要在本体中反映“白酒”这种差别现象,那么是建立“白酒”类还是在“酒”类中加入值为“白色”的颜色属性槽取决于这个差别在应用知识中的重要程度。如果“酒”这个类在应用领域中的地位不重要,或者酒是否为白色对于它与其他对象间的关系没有任何特殊意义,如一个生产酒标签的工厂,对任何颜色酒的标签生产规则都是相同的,颜色差别无足轻重,那么就没有必要建立“白酒”这个专门类。但是如果本体应用于酒和食物的组合选择,则红酒和白酒的区别将是非常重要的因素,这就有必要创建一个单独的类。

●考虑一个新类可能的个体实例也可以有助于决定是否引入一个新类。如果其实例集合易于变化,则应该采用属性值而不是类。

属于某个类的个体实例集合应该是比较稳定的。如果用概念的外部属性而不是内在属性来区别不同的类,会使这些类的实例变得不稳定。例如,如果定义了“冰冻酒”这个类,则它的实例很容易终止与它的关系(如果酒被解冻后就不再是冰冻酒了)。因此将“冰冻”作为瓶装酒的一个属性值更为合适。通常,数字、颜色、位置等描述性概念所反映的差别都应该作为类的属性值。

③对类和实例的判别。在对领域知识建模时,另一个重要问题是,判别某个特定的概念是本体中的一个类还是一个个体实例。由于个体实例代表是本体中所描述的最专指的概念,因此决定何时结束对类的描述和开始对个体实例的描述,实质上就是决定本体对知识描述的最小粒度。最有效的方法是根据能力问题来决定,将组成这些问题答案的专指概念作为本体的个体实例。

举例来说,如果本体用于确定食物和酒的搭配,则最专指的概念应该是每一种酒,而不用细化到每一瓶酒,也就是说代表某一种酒的概念将是该本体中的个体实例。与之相反,如果本体用于维护餐馆里的酒饮料清单,则需要将具体的每一瓶酒作为本体的个体实例。同样,如果要记录某一类酒的不同年份的不同品质,则特定年份的酒就成为了该本体的实例。

决定某个概念是类还是实例的另一个原则是:如果该概念来自于现实世界的实体层次结构,则应该将其描述为类。例如,假设要描述酒的出产地,开始可能会定义一些如法国、美国、德国等大的产酒地作为类,并将一些属于这些地域的小的产酒地作为它们的实例,如勃艮第(属于法国)。但是这样做的结果是很难清楚地判断哪些地区应属于类,哪些地区应属于实例。因此最好是将所有的产酒地都定义为抽象类(不能拥有直接实例)。由此可见,如果在概念项中含有自然的层次结构,则这些概念项应该被定义成类。

④限制类的范围。本体不应该包含领域中所有可能的信息。不需要细化(或泛化)那些应用中不会深入涉及的细节(最多只需要超过一个层次)。例如对于酒和食物的本体,一般不需要知道用什么类型的纸来生产标签。同样本体中不应该反映所有可能的属性,也不应该加入所有可能存在的关系。

⑤分离的子类。很多系统允许指明类和类之间的分离性。如果两个类间不拥有任何共同的实例,则称这两个类是分离的。例如“红酒”和“白酒”是分离的类,因为没有一种酒既是红色又是白色。但“甜酒”和“白酒”则不是分离的类。指明类和类间的分离关系,有利于系统更好地验证本体,比如在声明了“红酒”和“白酒”类的分离性之后,却定义了一个类同时是两者的子类,则系统将指出这是一个建模错误。

5.应用示例——语义Web

语义Web(Semantic Web)又称语义网,被视为下一代互联网的演进方向之一,是当今互联网技术研究的热点。随着自然语言处理、本体等技术的发展,语义Web的研究突飞猛进,主要集中于语义知识的组织与检索。

语义Web的创始人是Tim Berners Lee,他在1998年提出了语义Web的概念。2001年2月,W3C组织正式推出语义Web,使网络环境下的语义处理技术研究渐入佳境。语义Web研究活动的目标是开发一系列可由计算机理解和处理的语义表示语言和技术,通过显性的语义表示和领域本体将网络信息空间编织成为一个巨大的(机器可读的)知识网络,以支持自动化的信息访问和知识管理,实现高质量的网络信息服务。目前关于语义Web的研究主要集中在网络信息资源及其内容的语义和语义关系表征,基于语义的数据自动分析、理解和处理,不同应用领域和系统间的数据自动交换、转换和复用。

语义Web中的结点既可以代表物理页面,也可以代表知识实体;语义Web中页面的内容不但可以被人理解,而且可以被机器理解;语义Web中的链接不再是任意的,而是遵循一定的语义关系。通过语义Web技术,可以改变现有网络松散的数据结构,将信息资源结构化并赋予含义,对网络信息的整合、处理和检索都将变得容易。

Tim Berners Lee描述了他对语义Web结构的设想,其体系结构如图3-3所示。该层次结构可以支持更丰富的知识表示,并且提供了信任机制,允许对推理出来的结果进行“追根到底”。在此语义Web层次结构中,从底层到高层依次为Unicode(统一字符编码)与URI(Universal Resource Indicator,统一资源定位符)、XML、RDF与RDFSchema(简称RDFS)、Ontology(本体)、Logic(逻辑)、Proof(证明)、Trust(信任)共七层。

语义Web的七层结构并不是严格意义上的软件体系结构层次,而是一种概念功能上的分层。XML、RDF和Ontology这三层主要用于表示Web信息的语义,是系统的核心和关键所在。此外,Digital Signature(数字签名)用来检测文档是否被篡改过,以证实其真实可靠性

(1)Unicode与URI层

Unicode和URI是整个语义Web的基础,其中Unicode处理资源的编码,保证使用的是国际通用字符集,实现网上信息的统一编码。URI支持语义Web上的对象和资源的精细标识,从而使精确信息搜索成为可能。

(2)XML+Name Space+XMLSchema层

XML层具有名字空间和XML模式定义。通过XML标记语言将网上信息的结构、内容与数据的表现形式进行分离,并支持与其他基于XML的标准进行无缝集成。

img12

图3-3 语义Web层次结构

(3)RDF+RDFSchema层

该层用于描述万维网上的资源及其类型,为网上资源描述提供了一种通用框架和实现数据集成的元数据解决方案。最底层的URI用于标识网上的对象,RDF和RDFS则可对URI标识的对象进行陈述。RDF和RDFS层还可以赋予资源与链接一定的类型。

(4)Ontology Vocabulary层

该层用于描述各种资源之间的联系。本体揭示了资源本身以及资源之间更为复杂和丰富的语义信息,从而将信息的结构和内容相分离,对信息作完全形式化的描述,使网上信息具有计算机可理解的语义。

(5)Logic层

逻辑层主要提供公理和推理规则,为智能推理提供基础。该层用来产生规则。

(6)Proof层

证明层执行逻辑层产生的规则,并结合信任层的应用机制来评判是否能够信赖给定的证明。证明层注重于提供认证机制。

(7)Trust层

顶层的信任层注重于提供信任机制,保证用户代理Agent在网上进行个性化服务,并保证多Agent之间交互合作时的安全性和可靠性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈