概述
知识库,又称为智能数据库或人工智能数据库。知识库的概念来自两个不同的领域,一个是人工智能及其分支-知识工程领域,另一个是传统的数据库领域。由人工智能(AI)和数据库(DB)两项计算机技术的有机结合,促成了知识库系统的产生和发展。
知识库使基于知识的系统(或专家系统)具有智能性。并不是所有具有智能的程序都拥有知识库,只有基于知识的系统才拥有知识库。现在许多应用程序都利用知识,其中有的还达到了很高的水平,但是,这些应用程序可能并不是基于知识的系统,它们也不拥有知识库。
一般的应用程序与基于知识的系统之间的区别在于:一般的应用程序是把问题求解的知识隐含地编码在程序中,而基于知识的系统则将应用领域的问题求解知识显式地表达,并单独地组成一个相对独立的程序实体。
随着信息化进程,知识库管理越来越受到企业的重视,但是企业在进行文档管理的过程中,经常会碰到以下的问题:海量知识存储,管理困难;查找缓慢,效率低下;知识库版本管理混乱;知识库安全缺乏保障;知识库无法有效协作共享;知识库管理举步维艰等。所以知识库管理逐渐成为国内外业界研究的热点
市面上最著名的知识库管理系统是广州思昂文档管理系统、致得E6协同文档管理系统、炜邦图文档管理软件系统、德雅文档管理系统、易度文档管理系统。
历史
在20世纪80年代开始,许多厂商开始开发的知识库管理系统,以管理纸质文件为主要功能。这些系统管理记录纸张文件,其中包括印刷、出版的文件、照片和版画等。
后来开发商研发第二类知识库管理系统,即电子文件管理,这些文件存储在用户的本地计算机中。最早的电子知识库管理系统的管理,由于技术限制,对文件类型和文件数量都做了限制。主要功能集中捕获、存储、索引和检索的文件格式。
发展到现在,基于B/S架构的知识库管理系统出现,通过上传到服务器中进行集中存储,管理起来更加方便,查找更快,而且只要有互联网的地方,就可以通过浏览器直接访问系统。也增加了更多功能,包括文档的权限管理、全文搜索、存储加密、审批流程、文档审计、版本管理、规则应用、在线编辑和统计报表等。
系统结构
知识库使用关系型数据库来存放知识,包括事实与规则。
搜索模块实现知识库和推理机之间的知识搜索和与传递。
查询模块实现推理机对知识库的知识查询。
一致性、完整性检查模块在知识库中的知识发生变动时对知识库中的知识进行一致性、完整性检查。
知识库管理系统
管理知识库中知识的程序称为知识库管理系统,知识库管理系统可简称为KBMS。它应具有以下的功能。
知识的操纵
知识的操纵包括对知识库中知识的插入、删除及修改,其中知识的删除是删除知识库中的某些知识,知识的插入是在知识库中添加一些知识,知识的插入涉及到添加的知识与数据库中的知识的相容性、冗余性等。所谓相容性即是添加的知识与知识库中的知识是否相矛盾。所谓冗余性即是指所添加的知识是多余的,它可以从原有知识库中经演绎而推出,而没有添加这些知识的必要。知识的修改涉及到删除与插入两个部分,因此也存在与知识库的相容性与冗余性等问题。
知识的查询
知识的查询在这里有两层含义。一是从知识库中提取知识。二是由知识库中的知识可以推算出一些新的知识。
知识的控制
知识的控制包括知识的一致性和完整性控制、知识共享、知识安全、并发控制、故障恢复等。这都类似于数据库管理系统。根据KBMS的功能可以看出,从功能范围看,KBMS实际上是DBMS的一个扩充,即KBMS包括了DBMS的一切,因此在构制KBMS时就可以尽可能的利用现有的DBMS的功能来实现KBMS,这也为本文将KBMS集成到DBMS中提供了依据。
知识库中知识表示模型
知识库中的知识通常用一种或几种方法来表示。知识表示的方法决定了知识库的结构,因此,建立知识库的关键在于如何表达知识。当前知识的表示方去有以下几种:产生式规则(Productionrules)、语义网络(Semanticnets)、谓词演算(PredicateCalculus)、框架(Frames)等等[4]。
基于逻辑的知识表示
亦即用数理逻辑(命题逻辑和谓词逻辑〉来表示知识,这种知识表示方法是最早的一种知识表示模式,它简单、自然、灵活、模块化程度高、理论严谨、表达能力强,同关系数据库一样它有坚实的数学理论基础。为了克服上述逻辑语言表示能力有限的问题,近年来,在所谓的非经典逻辑研究方面取得了重要进展,如模态逻辑、时序逻辑和非单调逻辑等。
语义网络知识表示
一种用带标记的有向图来表示知识的形式。语义网作为人类联想记忆的显示心理学模型,它用结点和有向弧组成的网络描述知识。结点表示各种事物、概念、对象、实体、事件等,带标记的有向弧表示所连接的结点之间的特定关系。通常,一种关系对应一种推理模式。语义网是一种很强的显式知识表示方法,它直观清晰,但不适用于不确定性推理。
框架知识表示
可以把对象的所有知识存储在一起构成的复杂数据结构。它反映了人类通过一般性知识去认识个别事物的特点。一个框架由若干个槽组成,每个槽描述框架所描述的对象的某一方面的特性。槽由槽名和槽值组成,同一个槽可能有多种类型的槽值,每种类型的槽筐称为榕的一个侧面。其中,槽值为附加的过程性知识,称为附加过程。槽值还可以缺省,取缺省值。当框架具有时间性质,就构成时序框架。框架知识表示对实现知识库系统的非精确推理具有重要作用。
面向对象的知识表示
指采用基于信息隐蔽和抽象数据类型概念的面向对象的方法来表示知识,它把所有的实体都描述成对象。每个对象都包括其静态结构和一组操作。对象按“类”、“子类”、“超类”构成偏序关系。上一层对象的属性可以有条件地被下一层对象所继承,对象之间除了互递消息之外没有其它的联系。用户要完成的任务也是通过发送消息来实现的。面向对象知识表示方法封装好、层次性强、模块化程度高,有很强的表达能力,更能用于解决不确定问题。
基于本体的知识表示
基于本体的知识表示方法是近年来的研究热点之一。这种观点认为:任何复杂的知识都由最基本的概念构成,这些最基本的概念称为本题;本体是基本概念的详细说明。本体的重要性体现在它在知识的可重用和共享性上的重要作用。
基于规则知识表示
基于产生式规则时是由E.Post于1943年提出的。他运用这种规则对符号串作替换运算:运算中的每一条规则就称为一个产生式。但产生式方法用于专家系统中,无论在理论上或应用方面都有了较大改进。美国斯坦福大学早在1965年就采用这种方法开发了世界上第一个专家系统DENDRAL,用于帮助有机化学家确定化合物的内部结构。由于DENDRAL的成功开发,使得用规则来表示专家知识的方法广为采用。基于规则的知识表示使用IFCondition,THENaction形成的产生式规则表示知识,它具有良好的模块性,是目前应用最广泛的知识表示方法之一。
知识的搜索
建立知识库的重要目的之一是有效地运用知识求解复杂的问题,问题求解的过程本质上即为知识的匹配和搜索过程。在搜索过程中,知识库中的知识通常可看成具有层次关系的树状式、网状式结构。即从某一结点出发的有向图。搜索就是从该点出发对有向图的遍历,即沿着有向弧按特定次序访问有向图中的每一个结点:搜索的目地是寻找某些满足一定条件的结点的集合,搜索方法基本上可分为“盲目搜索”和“启发式搜索”两大类。
盲目搜索
盲目搜索是一种“穷尽”搜索方法,它不需要有关求解问题的先验信息,但效率较低,不适合应用于具有复杂搜索空间的场合。盲目搜索法包括深度优先搜索和宽度优先搜索法。
深度优先搜索法。深度优先搜索法从根结点出发,顺着一指定的分枝向下一层搜索,直至到达树叶结点为止:在当前结点的所有子结点均被搜索过时,回溯到上一层结点,并选择一条新的分枝重复上述过程,直至所有结点在被访问到为止。
宽度优先搜索法。宽度优先搜索法从根结点出发,按搜索树的深度一层一层地进行搜索,直至所有结点被访问到为止。
启发式搜索
启发式搜索利用以往的经验指导搜索过程,这些经验包括事实,简化的评价推理和规则等。常用的方法有爬山算法和最佳优先搜索法。爬山法直接源于我们的爬山的经验,在爬山中,我们总是选择坡度最大的方向作为前进的方向,但是采用爬山法我们有可能到达的只是局部最高点,而不是全局最高点,也就是不是最优解。最佳优先搜索法是爬山法的改进,以解决爬山法的缺陷。设想有一群登山者,从同一点出发,沿着不同的方向爬山,登山者通过通信工具相互联系直至最后到达全局的最高点。由于知识库的容量通常非常大,所以当涉及较大空间时可采用一些技术来缩小搜索空间,如消去法。消去法是尽可能早地剪去搜索树中非解〈或可能性很小〉的分校。通过这种剪枝的方法来缩小搜索空间。
知识推理方法
所谓推理,是指从已有的知识推导出某种蕴涵的未知知识或发现新的知识。知识推理技术是如何从给定的前提或假设推导出某种理论,或在要求达到某种结论的情况下,去寻找什么样的前提才能导致给定的结论。知识推理是专家系统的核心任务之一,是设计实用专家系统的关键技术。知识推理技术多种多样,有演绎和归纳、单调和非单调、确定的和不确定的等。其中,对于确定的知识处理和演绎推理是基于知识推理的核心内容。推理的方向有正向和逆向两种,对于不同的推理方向,往往有不同的控制策略。而在专家系统中,我们要寻求的是那些功能强,且能描述和解决一大类有用问题的通用方法。目前,有关确定的、以演绎推理为基础的有效推理技术主要包括:归结反演技术、规则演绎技术、启发式技术和黑板技术等。对于不确定的知识处理,目前已经提出了许多新方法,这些方法大致可分为两大类:一类是采用基于概率论和模糊集合论的数值方法:另一类是采用非数值的符号方法。
登录 | 立即注册