18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 知识库语言(数据库)

知识库语言(数据库)

时间:2022-12-10 06:30:01 | 来源:信息时代

时间:2022-12-10 06:30:01 来源:信息时代

    知识库语言 : 用于知识库开发的程序设计语言。这是一种描述性的逻辑数据语言,是知识库研究的核心内容之一。知识库系统是一种软件系统,同常规软件系统开发一样,知识库系统的开发也需要某种程序设计语言的支撑。一般来讲,知识库语言应具备如下功能: ①符号与数值的兼容处理功能; ②知识表示功能; ③逻辑推理功能; ④并行处理、递归及回溯功能。
在目前已推出的智能处理语言中,有多种知识语言符合以上五种功能中的全部或大部分要求,可作为知识处理使用。常用的知识处理语言有以LISP为代表的函数型语言,以PROLOG、DATALOG为代表的逻辑型语言,及以Smalltalk、C++为代表的面向对象语言。这些程序设计语言总体来说是基于一阶谓词逻辑的,是Horn子句的扩充。
知识库系统工作过程中主要涉及知识库、知识处理器(knowledge processor,KP)、知识库语言和知识库用户。其中: 知识处理器规定了对知识库操作的底层原语(primitive),相当于一般程序设计语言中的低级语言; 知识库语言调用知识处理器的原语操作,实现高级语言的功能; 知识库用户则直接使用知识库语言编程,实现对知识库的操作与处理; 内建应用程序是利用知识库语言及知识处理器的底层原语实现的程序,可被知识库用户直接调用。知识库语言与知识系统的关系如图1所示。


图1 知识库语言与知识系统的关系


在数据库领域,由于描述性查询语言SQL的成功使用,“描述性”受到更多的重视。描述性语言DATALOG的提出,使部分学者认为知识库语言应该是描述性的(或称为非过程性的)。描述性与过程性是两个对立的概念; 用过程性语言写应用程序时不但要告诉计算机做什么,还要告诉计算机如何做,程序严格规定了计算机的每一个工作步骤; 而用描述性语言解题,则只要告诉计算机做什么,而不必说明具体的执行步骤。
然而,描述性语言是计算不完备的。因为在冯·诺依曼体系下,从问题求解的底层看,求解一个问题的解法严格规定了计算机的每一步工作,这是问题的过程性内容(即控制),其中必须用到过程性语言的控制功能。
尽管如此,描述性的概念仍然很有意义。传统的过程语言中有顺序、分支和循环三种用户控制。适当减少控制,增加描述性成分可以给用户带来极大方便。如PROLOG语言没有循环和分支结构而只有顺序结构,所以编程相对方便简单。另外,关系数据库查询语言SQL是描述性的,它也给用户带来方便。
计算机逻辑语言的基础是数理逻辑,即以命题演算和一阶谓词演算为基础的公理化集合论、证明论、模型论和递归论等。如PROLOG、DATALOG等都是以一阶谓词演算的Horn子句逻辑为基础。逻辑语言的程序一般由事实和规则组成。当提问目标时,系统根据规则(规则是问题的描述,也可以包括问题的解法)和事实导出满足目标的事实或给出证明的结论(true或false)。因此,逻辑语言的描述性直观地可理解为: 事实、规则及其子目标的顺序与程序的执行结果无关。
一阶谓词演算系统可以描述自然语言的很多内容以及大多数数学定理。由Skolem定理,一阶语言的语句集可以转化为Skolem标准型,故作为其真子集的Horn子句也具有这种性质。因此,通过特定算法可以使基于Horn子句(甚至可以是基于一阶谓词逻辑)的语言转换成描述性的,例如,基于Horn子句的DATALOG(一个描述性逻辑语言)、基于一阶逻辑的描述性语言SQL等。
逻辑程序设计由定理自动证明发展而来。定理自动证明可以用描述性语言实现,但定理自动证明不仅要证明定理,还需将证明过程展示给用户或允许用户查看中间结果。因此,逻辑程序设计语言必须向用户提供一些控制机制,例如,PROLOG语言。
基于Horn子句的逻辑语言(如,PROLOG、DATALOG)的规则隐含了循环和分支两种控制结构; 循环可由递归实现,而规则本身就是分支结构。
描述性在数据库领域受到重视有两个重要原因。首先,关系数据库查询语言SQL是描述性的;其次,描述性语言可以高效地给出一个问题的所有解答结果。因此,数据库系统“每次一个集合”的计值模型就大大优于人工智能领域常用的“每次一个元组”的计值模型。也就是说用数据库技术实现描述性语言在某些情况下更为方便。
当AI与DB相结合产生知识库的时候,DB研究人员就很自然地希望将SQL的优点加以保持并扩展,而且希望能够克服SQL与宿主语言不匹配的缺点。Ullman给出的知识库系统的定义要求: 有一个既可以作为数据操纵语言,又可作为宿主语言的描述性语言;支持数据库系统大批量数据的高效存取、数据共享、并发控制及故障恢复等主要功能。然而在实际中,逻辑语言为了满足描述性,难以起到宿主语言的作用,还需加入用户控制机制或引入过程语言,所以在现阶段实现知识库语言时无法完全遵循描述性要求。
知识库语言取逻辑语言的形式是出于AI的要求和逻辑语言的优越性。对描述性、操纵语言和宿主语言如何取舍可作如下考虑:
(1)保持描述性,即建立一个描述性的查询语言(如DATALOG),将其与宿主语言(过程性语言)分开。这里的DATALOG和DML不同,可以随意编程定义各种递归,而DML只提供几种有限的操作。因此,DATALOG也起了一定的宿主语言的作用。
(2)放弃描述性条件,建立一个既作查询语言又作宿主语言的逻辑语言。
综上所述,知识库语言应是一种既有查询语言功能又可作为宿主语言的逻辑语言(基于Horn子句的语言)。
逻辑语言直接用来表示和实现知识库系统(尤其是具有更高语义层次和特殊要求的复杂应用)还存在一定困难,因此,人们对逻辑语言的理论、结构和表达能力等方面还在进行改进和扩充,这方面工作主要集中在语义理论、表达能力和系统实现等方面的研究。另一种研究方向是,将AI、OO和DB三者结合起来开发具有更高智能的知识库系统。因为在数据库的发展过程中,知识库(即智能数据库)研究由理论研究驱动,而面向对象数据库由应用驱动,两种类型的数据库在很多方面是互补的。最后,还有综合多种AI语言和多种知识表示方法来实现AI和DB结合的知识库,以提高系统的问题求解能力和智能化水平。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭