1、第9章 专家系统开发工具与环境 91 专家系统语言型工具专家系统语言型工具 911 程序设计语言程序设计语言 912 知识工程语言知识工程语言 92 专家系统设计工具专家系统设计工具 921 辅助型工具辅助型工具 922 支持工具支持工具 93 专家系统开发环境专家系统开发环境 931 开发环境的定义与功能开发环境的定义与功能 932 开发环境的实现途径开发环境的实现途径 94 专家系统工具经典实例专家系统工具经典实例 941 骨架工具系统骨架工具系统EMYClN 942 骨架工具系统骨架工具系统KAS 943 通用专家系统工具介绍通用专家系统工具介绍 第9章 专家系统开发工具与环境 专家系统
2、专家系统(ES)工具工具有时也叫做有时也叫做ES外壳和外壳和ES环境,主要是研环境,主要是研制样机的工具,通过抽调某个制样机的工具,通过抽调某个ES的知识库,就可从特殊的的知识库,就可从特殊的ES中抽出外壳来而成为中抽出外壳来而成为ES工具。工具。ES工具支持的功能包括工具支持的功能包括:推理过程、数据存取、自然语言:推理过程、数据存取、自然语言对话的界面对话的界面(接口接口)、过程的界面、解释功能。、过程的界面、解释功能。ES开发工具可以提高开发工具可以提高ES设计和开发的效率和性能,极大地设计和开发的效率和性能,极大地简化建造简化建造ES的工作,缩短研制周期,提供系统设计和开发的工作,缩短
3、研制周期,提供系统设计和开发的计算机辅助手段和环境,提高的计算机辅助手段和环境,提高ES生产的产量、质量和自生产的产量、质量和自动化水平。从而使程序容易掌握、易于维护、擅长学习、动化水平。从而使程序容易掌握、易于维护、擅长学习、解释和问答,使程序变得更加有用。解释和问答,使程序变得更加有用。ES开发工具与环境是一种为高效率开发开发工具与环境是一种为高效率开发ES而设计的高级程而设计的高级程序系统或高级程序设计语言环境。序系统或高级程序设计语言环境。ES开发工具和环境可分为五种主要类型开发工具和环境可分为五种主要类型:程序设计语言、程序设计语言、知识工程语言、辅助型工具、支持工具及开发环境,如图
4、知识工程语言、辅助型工具、支持工具及开发环境,如图9-1所示。所示。专家系统建造方法可以分成以下三种专家系统建造方法可以分成以下三种:利用计算机高级语言编写建造利用计算机高级语言编写建造ES;利用计算机程序设计环境编写建造利用计算机程序设计环境编写建造ES;用计算机程序设计工具建造用计算机程序设计工具建造ES。专家系统工具和环境专家系统工具和环境图图9-1 9-1 专家系统工具和环境的组成专家系统工具和环境的组成程序设计语言程序设计语言知识工程语言知识工程语言辅助型工具辅助型工具支持工具支持工具开发环境开发环境面向面向问题问题的语的语言言符号符号处理处理语言语言骨骨架架型型通通用用型型知知识识
5、获获取取系统系统设计设计助手助手程序程序设计设计辅助辅助解解释释设设施施第9章 专家系统开发工具与环境 91 专家系统语言型工具 9 91 11 1 程序设计语言程序设计语言 程序设计语言包括面向问题的语言和符号程序设计语言包括面向问题的语言和符号处理语言。面向问题的语言是为特定的问题处理语言。面向问题的语言是为特定的问题类型而设计的,其主要代表有类型而设计的,其主要代表有C、PASCAL、ADA等,它们在处理代数运算方面有很方便的等,它们在处理代数运算方面有很方便的特征;符号处理语言是为人工智能应用而设特征;符号处理语言是为人工智能应用而设计的,它的主要代表有以计的,它的主要代表有以LISP
6、为代表的函数型为代表的函数型语言,以语言,以Prolog为代表的逻辑型语言,以及为代表的逻辑型语言,以及C+、Java等为代表的面向对象语言。这些语等为代表的面向对象语言。这些语言典型的特点是具有很强的递归功能言典型的特点是具有很强的递归功能 911 程序设计语言 LISP的成功主要是它具有灵活简便的符号处理、的成功主要是它具有灵活简便的符号处理、自动存储管理、强有力的编辑和调试手段以及对程自动存储管理、强有力的编辑和调试手段以及对程序设计代码与数据的统一处理的性能。序设计代码与数据的统一处理的性能。Prolog语言具语言具有简洁的文法以及一阶逻辑的推理能力,它们的通有简洁的文法以及一阶逻辑的
7、推理能力,它们的通用性强,且使用灵活,限制少,用户能用性强,且使用灵活,限制少,用户能“随心所欲随心所欲”地设计自己的系统,因而被广泛地应用于符号处理地设计自己的系统,因而被广泛地应用于符号处理的许多研究领域中。的许多研究领域中。由于面向对象程序设计语言以其类、对象、继承由于面向对象程序设计语言以其类、对象、继承等机制,而与人工智能特别是知识表示与知识库产等机制,而与人工智能特别是知识表示与知识库产生了天然的联系。生了天然的联系。C+语言既是一种面向问题的程序语言既是一种面向问题的程序设计语言,又是一种很好的符号处理语言。尤其是设计语言,又是一种很好的符号处理语言。尤其是Visual C+的发
8、展更引人注目,它为的发展更引人注目,它为ES对多媒体信息对多媒体信息的处理、可视化界面的设计、基于网络的分布式运的处理、可视化界面的设计、基于网络的分布式运用场合等提供了一种很好的语言环境。用场合等提供了一种很好的语言环境。912 知识工程语言 1 1骨架型知识工程语言骨架型知识工程语言 骨架型知识工程语言也称为专家系统外壳,它是由一骨架型知识工程语言也称为专家系统外壳,它是由一些已经成熟的具体专家系统演变来的。其演变方法是,抽些已经成熟的具体专家系统演变来的。其演变方法是,抽去这些专家系统中的具体知识,保留它们的体系结构和推去这些专家系统中的具体知识,保留它们的体系结构和推理机功能,再把领域
9、专用的界面改为通用界面,这样,就理机功能,再把领域专用的界面改为通用界面,这样,就可得到相应的专家系统外壳。采用骨架系统可以利用系统可得到相应的专家系统外壳。采用骨架系统可以利用系统已有的知识表示模式、规则语言及推理机制,并且可以直已有的知识表示模式、规则语言及推理机制,并且可以直接使用已建立的支持该系统的许多辅助功能,如知识的编接使用已建立的支持该系统的许多辅助功能,如知识的编码输入及解释、知识库结构及管理机制、推理机结构及控码输入及解释、知识库结构及管理机制、推理机结构及控制机制、制机制、人人-机机接口及辅助工具、规则之间的一致性接口及辅助工具、规则之间的一致性检查、修改以及跟踪调试等功能
10、,使得新的系统的开发工检查、修改以及跟踪调试等功能,使得新的系统的开发工作变得简单、容易些。作变得简单、容易些。当用它来建造专家系统时,只须把相应领域的专家知当用它来建造专家系统时,只须把相应领域的专家知识用外壳规定的知识表示模式装入知识库,就可以快速地识用外壳规定的知识表示模式装入知识库,就可以快速地产生一个新的专家系统。产生一个新的专家系统。1骨架型知识工程语言 ES外壳的典型代表有外壳的典型代表有EMYCIN、KAS及及EXPERT等。等。PROSPECTOR的设计者去掉了关于地质方面的知识而的设计者去掉了关于地质方面的知识而把它变成了把它变成了KAS。KAS是用于诊断和分类的骨架系统。
11、是用于诊断和分类的骨架系统。用同样的方法把诊断治疗细菌感染的用同样的方法把诊断治疗细菌感染的ESMYCIN变成了变成了骨架系统骨架系统EMYCIN(Empty MYCIN)。把治疗和诊断青光。把治疗和诊断青光眼眼CASENT系统变成了骨架系统系统变成了骨架系统EXPERT。用程序设计语言直接开发用程序设计语言直接开发ES和用外壳型知识工程语言和用外壳型知识工程语言开发开发ES相比,后者具有省时、速度快、开发效率高、相比,后者具有省时、速度快、开发效率高、继承性强等优点。骨架系统的缺点是:灵活性和通用继承性强等优点。骨架系统的缺点是:灵活性和通用性较差,外壳的推理机制和知识表示方式是固定不变性较
12、差,外壳的推理机制和知识表示方式是固定不变的,只能用在较窄的范围内,只适合于与原系统同类的,只能用在较窄的范围内,只适合于与原系统同类的的ES的开发,在技术上受骨架系统原有水平的限制。的开发,在技术上受骨架系统原有水平的限制。2.通用型知识工程语言 通用型知识工程语言通用型知识工程语言也即通用型也即通用型ES开发工开发工具,是专门用于构造和调试具,是专门用于构造和调试ES的通用程序的通用程序设计语言。它是完全重新设计的一类设计语言。它是完全重新设计的一类ES开开发工具,不依赖于任何已有发工具,不依赖于任何已有ES,不针对任,不针对任何具体领域,能够处理不同问题领域和不何具体领域,能够处理不同问
13、题领域和不同问题类型。它比骨架系统提供了更多的同问题类型。它比骨架系统提供了更多的对数据存取和查找的控制,具有更大的灵对数据存取和查找的控制,具有更大的灵活性和通用性,但比较难于使用。活性和通用性,但比较难于使用。2.通用型知识工程语言表9-1 通用型知识工程语言 OPS5 OPS是一个基于规则的通用型知识工程语言,用是一个基于规则的通用型知识工程语言,用LISP语言语言编写,编写,1975年问世,已有年问世,已有OPSl,OPS2,OPS3,OPS4,OPS5,OPS5+,OPS5e,OPS7及及OPS83等不同版本。其中等不同版本。其中最有代表性的版本是最有代表性的版本是OPS5。OPS5
14、由产生式规则库、推理机及综合数据库三部分所组由产生式规则库、推理机及综合数据库三部分所组成。其产生式规则库是一个无序规则的集合。成。其产生式规则库是一个无序规则的集合。OPS5通过通过如下形式的循环操作来执行一个产生式系统:如下形式的循环操作来执行一个产生式系统:匹配,确定哪些规则满足前提。匹配,确定哪些规则满足前提。冲突解决,选出一个满足前提的规则,若没有一个满冲突解决,选出一个满足前提的规则,若没有一个满足前提的规则则停止执行。足前提的规则则停止执行。执行,执行选定规则的动作部分。执行,执行选定规则的动作部分。循环,转向第一步。循环,转向第一步。2.通用型知识工程语言OPS5 规则库的一般
15、形式为规则库的一般形式为:(P)OPS5的推理机只提供前向推理,推理机按照的推理机只提供前向推理,推理机按照“匹配匹配冲突消解冲突消解执行执行”的模式周期性地工作,的模式周期性地工作,直至找到问题的解。直至找到问题的解。OPS5的综合数据库用于存储的综合数据库用于存储当前求解问题的已知事实及求解过程中所得到的当前求解问题的已知事实及求解过程中所得到的中间结论等。中间结论等。OPS5的解释机制可以提供方便的交的解释机制可以提供方便的交互式程序设计环境,用户可以跟踪、中断、检查、互式程序设计环境,用户可以跟踪、中断、检查、修改系统的状态,并能在运行过程中调试程序。修改系统的状态,并能在运行过程中调
16、试程序。2.通用型知识工程语言92 专家系统设计工具 9 92 21 1 辅助型工具辅助型工具 ES辅助工具是辅助工具是ES开发工具中支撑环境的开发工具中支撑环境的一部分,主要用于帮助建造高质量的知识一部分,主要用于帮助建造高质量的知识库和调试库和调试ES,包括一些用来帮助获取知识、,包括一些用来帮助获取知识、表达知识的程序,以及帮助知识工程师设表达知识的程序,以及帮助知识工程师设计计ES的程序。的程序。921 辅助型工具 1.1.知识获取辅助工具知识获取辅助工具 这种工具用来辅助这种工具用来辅助ES进行知识获取,以加快进行知识获取,以加快ES的开发的开发过程。知识获取辅助工具有自动知识获取工
17、具、知识编辑过程。知识获取辅助工具有自动知识获取工具、知识编辑工具、面向问题求解方法的知识获取工具、面向特定问题工具、面向问题求解方法的知识获取工具、面向特定问题领域的知识获取工具以及基于特定语言的知识获取工具等领域的知识获取工具以及基于特定语言的知识获取工具等类型。如美国斯坦福大学开发的类型。如美国斯坦福大学开发的TEIRESIAS编辑器,能获得编辑器,能获得有效的良结构的专家领域知识,并加工、编辑到知识库中。有效的良结构的专家领域知识,并加工、编辑到知识库中。TEIRESIAS系统具有下列功能:系统具有下列功能:知识获取:能理解专家以特定的非口语化的自然语言知识获取:能理解专家以特定的非口
18、语化的自然语言表达的领域知识。表达的领域知识。知识库调试:它能帮助用户发现知识库的缺陷、提出知识库调试:它能帮助用户发现知识库的缺陷、提出修改建议。修改建议。推理指导:它能利用元知识对系统的推理进行指导。推理指导:它能利用元知识对系统的推理进行指导。系统维护:可查找诊断错误原因,进行修正或学习系统维护:可查找诊断错误原因,进行修正或学习。运行监控:能对运行状态和诊断推理过程进行监控。运行监控:能对运行状态和诊断推理过程进行监控。2.系统设计助手 ES的设计助手有以下三种类型:的设计助手有以下三种类型:设计辅助工具。设计辅助工具。它用来实现它用来实现ES的辅助设计。例如,美的辅助设计。例如,美国
19、斯坦福大学用国斯坦福大学用INTERLISP语言开发的语言开发的AGE就是一例。它包就是一例。它包括以下括以下4个子系统:个子系统:设计子系统:设计子系统:指导用户使用组合规则的预组合模型。指导用户使用组合规则的预组合模型。编辑子系统:编辑子系统:辅助用户选用预制构件模块,装入领域辅助用户选用预制构件模块,装入领域知识和控制信息,建造知识库。知识和控制信息,建造知识库。解释子系统:解释子系统:执行用户的程序,进行知识推理以求解执行用户的程序,进行知识推理以求解问题,并提供查错手段,建造推理机。问题,并提供查错手段,建造推理机。跟踪子系统:跟踪子系统:进行全面的跟踪和测试的子系统。进行全面的跟踪
20、和测试的子系统。归纳工具。归纳工具。它用来帮助开发者从大量的初始实例出发,它用来帮助开发者从大量的初始实例出发,归纳产生出规则或决策树。归纳产生出规则或决策树。辅助建造工具。辅助建造工具。它用来辅助建造它用来辅助建造ES。922 支持工具 ES支持工具支持工具也称为也称为ES支持环境或支持工具集。它们用来执支持环境或支持工具集。它们用来执行与行与ES建造工具的连接,帮助用户与建造工具的连接,帮助用户与ES对话,辅助程序的对话,辅助程序的调试或作为它的一部分。调试或作为它的一部分。ES支持工具由程序设计辅助支持工具由程序设计辅助(辅辅助调试、知识库编辑器、输入助调试、知识库编辑器、输入/输出界面
21、输出界面)和解释设施两部和解释设施两部分组成。分组成。辅助调试工具。辅助调试工具。该工具提供相应的跟踪辅助功能、自该工具提供相应的跟踪辅助功能、自动测试模块及中断设施等。跟踪辅助使用户能跟踪或显示动测试模块及中断设施等。跟踪辅助使用户能跟踪或显示系统的操作。自动测试模块用于测试知识库,指出知识库系统的操作。自动测试模块用于测试知识库,指出知识库的薄弱部分,选择修改对象。中断程序包使用户能预先告的薄弱部分,选择修改对象。中断程序包使用户能预先告知程序在什么位置停止。知程序在什么位置停止。知识库编辑器。知识库编辑器。这是基于文本编辑的知识编辑工具。这是基于文本编辑的知识编辑工具。输入输入/输出界面
22、。输出界面。此界面提供实时知识获取工具和多种此界面提供实时知识获取工具和多种不同输入不同输入/输出方式。有些工具提供运行时实现知识获取输出方式。有些工具提供运行时实现知识获取功能,此时工具机制本身使用户能够与运行的系统对话。功能,此时工具机制本身使用户能够与运行的系统对话。解释设施。解释设施。这是用来向用户解释系统是如何得到某个这是用来向用户解释系统是如何得到某个特定结果的。特定结果的。922 支持工具 解释机制常采用回溯推理,具有以下的能力:解释机制常采用回溯推理,具有以下的能力:解释系统是如何到达一个特定状态的。解释系统是如何到达一个特定状态的。能处理假设推理,即系统能解释如果某一能处理假
23、设推理,即系统能解释如果某一事实或规则略有不同将会推出什么结论。事实或规则略有不同将会推出什么结论。能处理反事实推理,即系统能解释为什么能处理反事实推理,即系统能解释为什么未得到一个期望的结论。未得到一个期望的结论。93 专家系统开发环境 931 开发环境的定义与功能开发环境的定义与功能 1.定义:定义:ES开发环境是以一种或多种工具和方法为核心,开发环境是以一种或多种工具和方法为核心,由若干计算机子程序或者模块组成的,为高效率由若干计算机子程序或者模块组成的,为高效率开发开发ES而设计和实现的大型智能计算机软件系统,而设计和实现的大型智能计算机软件系统,加上与之配套的各种辅助工具和界面环境的
24、完整加上与之配套的各种辅助工具和界面环境的完整的集成,形成一种集成化的集成,形成一种集成化ES开发工具包,用于解开发工具包,用于解决特殊范围或层次的问题。一个好的决特殊范围或层次的问题。一个好的ES开发环境开发环境应向用户提供多方面的支持,包括从系统分析、应向用户提供多方面的支持,包括从系统分析、知识获取、程序设计到系统调试与维护的一条龙知识获取、程序设计到系统调试与维护的一条龙的服务。的服务。931 开发环境的定义与功能 2.功能功能 ES开发环境提供的功能主要有开发环境提供的功能主要有:多种知识表示:至少提供两、三种以上知识表示。多种知识表示:至少提供两、三种以上知识表示。多种不精确推理模
25、型,最好还留有用户自定义接口。多种不精确推理模型,最好还留有用户自定义接口。多种知识获取手段:除了必需的知识编辑工具外,还多种知识获取手段:除了必需的知识编辑工具外,还应有自动知识获取即机器学习功能,以及知识求精手段。应有自动知识获取即机器学习功能,以及知识求精手段。多样的辅助工具:包括数据库访问、电子表格、作图多样的辅助工具:包括数据库访问、电子表格、作图等工具。等工具。多样的友好用户界面:包括开发界面和多样的友好用户界面:包括开发界面和ES产品的用户产品的用户界面,应该是多媒体的,并且有自然语言接口。界面,应该是多媒体的,并且有自然语言接口。广泛的适应性:能满足多种应用领域的特殊需求,具广
26、泛的适应性:能满足多种应用领域的特殊需求,具有很好的通用性。有很好的通用性。932 开发环境的实现途径 1.综合与集成综合与集成 这种途径是采用多范例程序设计、多种知识表这种途径是采用多范例程序设计、多种知识表示、多种推理和控制策略、多种组合工具,向系统示、多种推理和控制策略、多种组合工具,向系统的综合集成方向发展。由这种途径实现的的综合集成方向发展。由这种途径实现的ES开发环开发环境又称为境又称为ES开发工具箱。按综合集成途径实现的开发工具箱。按综合集成途径实现的ES开发环境包括开发环境包括:知识获取工具或辅助知识获取工具;知识获取工具或辅助知识获取工具;由各种知识表示模式所组成的模式库及其
27、管理系统;由各种知识表示模式所组成的模式库及其管理系统;知识编辑器及知识库一致性检查工具;知识工程语知识编辑器及知识库一致性检查工具;知识工程语言及言及ES描述语言;描述语言;ES建立及开发工具;建立及开发工具;ES调试工具调试工具及解释工具;能识别声、文、图等多媒体,并能进及解释工具;能识别声、文、图等多媒体,并能进行自然语言理解的智能接口等。行自然语言理解的智能接口等。932 开发环境的实现途径 2.通用与开放通用与开放 在当前网络、分布式、客户在当前网络、分布式、客户/服务器开放环境支持下,采服务器开放环境支持下,采用统一的程序设计方法、统一的知识用统一的程序设计方法、统一的知识/数据表
28、达来开发大型、数据表达来开发大型、通用、开放的人工智能开发环境与知识库通用、开放的人工智能开发环境与知识库/数据库一体化的数据库一体化的管理系统。采用面向对象程序设计方法,将知识和数据都管理系统。采用面向对象程序设计方法,将知识和数据都作为对象融为一体,构成面向对象的知识库作为对象融为一体,构成面向对象的知识库/数据库开发环数据库开发环境。这实际上是境。这实际上是“人工智能人工智能”+“面向对象面向对象”+“数据库数据库”的的综合集成。综合集成。通过通过ES开发环境提供统一的知识开发环境提供统一的知识/数据表达形式和解决访问数据表达形式和解决访问现存数据库的问题,可以为多专家协作系统、多库现存
29、数据库的问题,可以为多专家协作系统、多库(数据库、数据库、知识库、模型库、方法库知识库、模型库、方法库)支持下的综合知识库、分布式和支持下的综合知识库、分布式和开放分布式环境下的多智能体协同工作等人工智能最新应开放分布式环境下的多智能体协同工作等人工智能最新应用提供支持环境。用提供支持环境。94 专家系统工具经典实例 941 骨架工具系统骨架工具系统EMYClN EMYCIN基本上是基本上是MYCIN的一个与专业领域无的一个与专业领域无关的版本,即在细菌感染疾病诊断系统关的版本,即在细菌感染疾病诊断系统MYCIN的的基础上,抽去了系统医疗专业知识后形成的早期基础上,抽去了系统医疗专业知识后形成
30、的早期ES开发工具。系统运行于开发工具。系统运行于PDP-l1机或机或VAX机上,它机上,它特别适用于故障诊断这样一类的演绎问题。用特别适用于故障诊断这样一类的演绎问题。用EMYCIN开发的一些开发的一些ES有有SACON(工艺结构分析工艺结构分析)、DLANT/cdp(玉米虫害预测玉米虫害预测)、PUFF(肺病诊断肺病诊断)、BLUE BOX(精神病诊断精神病诊断)、LITHO(地下岩石标识地下岩石标识)等。等。另外,有一些通用另外,有一些通用ES开发工具如开发工具如:M.l、PC、PCEST及及S.l等也是根据等也是根据EMYCIN的设计原理而设计的。的设计原理而设计的。941 骨架工具系
31、统EMYClN 1.EMYCIN中的知识表示中的知识表示 在在EMYCIN中,产生式规则定义如下中,产生式规则定义如下:=(IFTHEN(ELSE):=(AND+):=(0R+)|():=():=+|+:=()这里这里“:=”表示表示“定义为定义为”;“X+”表示表示X可以出现可以出现一次或多次;一次或多次;“A|B”表示表示“A”出现或出现或“B”出现。出现。1.EMYCIN中的知识表示 例如,例如,PUFF中某条规则的前提部分在中某条规则的前提部分在EMYCIN中表中表示如下示如下:PREMISE:(AND(OR(AND(BETWEEN*(VAL1 CNTXT MMF)35 45)(GRE
32、ATERP*VAL1 CNTXT FVC)80)(AND(BETWEEN*(VAL1 CNTXT MMF)25 35)(LESSP*(VAL1 CNTXT FVC)80)它表示:当它表示:当CNTXT的的MMF值在值在35到到45之间,且之间,且FVC的值大于的值大于80时,或者当时,或者当MMF的值在的值在25到到35之之间,且间,且FVC的值小于的值小于80时,该规则的条件部分为时,该规则的条件部分为真。这里真。这里BETWEEN*、GREATERP*及及LESSP*等都是等都是谓词。谓词。EMYCIN 的控制策略如下的控制策略如下:要确定对象要确定对象0的特性的特性P的值的值V 检索与检
33、索与V(P,O)有关的规则有关的规则.WHILE 存在一条还未用过的规则存在一条还未用过的规则R,且当前,且当前V(P,O)的确定性值的确定性值1 DO BEGIN FOR R的前提中的每一个条件的前提中的每一个条件C DO FOR 在估算条件在估算条件C时所涉及的每一个时所涉及的每一个“属性属性对象对象”对对(P,0)DO IF V(P,0)还没有确定还没有确定 THEN 递归调用上述过程求递归调用上述过程求V(P,0).IF 每一个条件均为真时则执行该规则每一个条件均为真时则执行该规则THEN部分的操作部分的操作.IF 至少有一个条件为假则执行该规则至少有一个条件为假则执行该规则ELSE部
34、分的操作部分的操作.END.IF V(P,O)仍不知道则询问用户仍不知道则询问用户.2.EMYCIN的推理机制 3.EMYCIN的其他辅助功能 EMYCIN提供了提供了MYCIN中所有辅助功能,其解释程序允许中所有辅助功能,其解释程序允许用户询问得到某一结论的理由,用户也可在咨询过程中要用户询问得到某一结论的理由,用户也可在咨询过程中要求系统对所询问的问题做进一步的解释。求系统对所询问的问题做进一步的解释。EMYCIN 的跟踪的跟踪及调试功能还可以将调试过程中的每一步都记录下来,以及调试功能还可以将调试过程中的每一步都记录下来,以便对知识库作进一步的分析、修改。便对知识库作进一步的分析、修改。
35、用户还可以查询整个静态知识库中的信息。系统可将静态用户还可以查询整个静态知识库中的信息。系统可将静态知识库中的规则以英语的形式给出。知识库中的规则以英语的形式给出。此外,此外,EMYClN还提供了一个开发知识库的良好技术环境。还提供了一个开发知识库的良好技术环境。用户可以用简化的规则语言输入规则,这种规则语言是一用户可以用简化的规则语言输入规则,这种规则语言是一种比种比LISP更象英语的形式化表达方式。随后,可以用更高更象英语的形式化表达方式。随后,可以用更高级的基于知识的知识库编辑程序对其进行编辑,包括检查级的基于知识的知识库编辑程序对其进行编辑,包括检查规则的语句是否合法、规则之间是否互相
36、矛盾或者是否可规则的语句是否合法、规则之间是否互相矛盾或者是否可以归结到其它规则中去。上述知识库的开发环境为用户修以归结到其它规则中去。上述知识库的开发环境为用户修改和编辑知识库带来了很大的方便。改和编辑知识库带来了很大的方便。942 骨架工具系统KAS KAS(Knowledge Acquisition System)来自来自PROSPECTOR系系统。它是在统。它是在PROSPECTOR的基础上抽去了勘探方面的专家知的基础上抽去了勘探方面的专家知识后形成的骨架系统。它是用识后形成的骨架系统。它是用InterLISP语言编写的,系统可语言编写的,系统可运行于运行于VAX机或机或PDP-11机
37、上。机上。KAS和和PROSPECTOR的关系基本的关系基本上同上同EMYCIN和和MYCIN的关系一样。当某领域的专家知识可的关系一样。当某领域的专家知识可以用以用KAS的规则语言表达时,就可以利用的规则语言表达时,就可以利用PROSPECTOR的推的推理机制解决该问题。理机制解决该问题。KAS和和EMYCIN的最基本差别在于的最基本差别在于:KAS更直接地依赖于用更直接地依赖于用户主动输入的信息来筹划推理过程。户主动输入的信息来筹划推理过程。KAS还能做正、反向混还能做正、反向混合推理,这也是它与合推理,这也是它与EMYCIN系统的主要区别。系统的主要区别。用用KAS开发的开发的ES有有:
38、物理属性预测专家系统物理属性预测专家系统CONPHYDE,空间飞机机型识别专家系统空间飞机机型识别专家系统AIRID及美国田那西州奥克里奇及美国田那西州奥克里奇市国家试验室处理有害化学物质溢出的市国家试验室处理有害化学物质溢出的ES等。等。1.KAS中的知识表示 KAS规则语言的形式如下规则语言的形式如下:=(IF THEN ):=:=:=|:=(AND+)|(OR+)|(NOT+)1.KAS中的知识表示 KAS将将EMYCIN中表达事实的中表达事实的“属性属性对象对象值值”三元组扩充为语义网络,利用上述描三元组扩充为语义网络,利用上述描述语句就可以表示多个对象之间的多元关述语句就可以表示多个
39、对象之间的多元关系。例如系。例如:为了表示油污染正从一个贮油罐为了表示油污染正从一个贮油罐中流出来,可以用如下描述语句中流出来,可以用如下描述语句:(Composition-of O1 oil)(Type-of O1 pollutant)(Type-of O2 storage-tank)(Source-of O1 02)2.KAS的推理机制 KAS没有正式的顶层目标,但是可以把某些结论没有正式的顶层目标,但是可以把某些结论看成是顶层假设,并且从由启发式函数挑选出的看成是顶层假设,并且从由启发式函数挑选出的“最佳最佳”顶层假设出发作正、反向混合推理。咨顶层假设出发作正、反向混合推理。咨询的过程就
40、是不断地减少顶层假设表,以验证最询的过程就是不断地减少顶层假设表,以验证最可能的那个假设的真或假。即使不能得出明确的可能的那个假设的真或假。即使不能得出明确的结论,系统也会将咨询过程中推理得到的信息提结论,系统也会将咨询过程中推理得到的信息提供给用户。供给用户。KAS控制策略有两种,第一种策略用来选择顶层控制策略有两种,第一种策略用来选择顶层目标,即系统总是力求选出最好的顶层假设。一目标,即系统总是力求选出最好的顶层假设。一旦目标假设选择好之后,第二种控制策略就会开旦目标假设选择好之后,第二种控制策略就会开始起作用,用来寻找对该目标成立的确定性值影始起作用,用来寻找对该目标成立的确定性值影响最
41、大的证据。这两种控制策略又可称为选择目响最大的证据。这两种控制策略又可称为选择目标模式和提问模式。标模式和提问模式。3.KAS的其它辅助功能 KAS有一个基于知识的编辑程序,可以在一个开有一个基于知识的编辑程序,可以在一个开发周期内的任何时候使用。特别是它可以在系统发周期内的任何时候使用。特别是它可以在系统运行的过程中被调用来修改当前的知识库,一旦运行的过程中被调用来修改当前的知识库,一旦对系统的推理行为比较满意即可把修改后的知识对系统的推理行为比较满意即可把修改后的知识库存储起来,并恢复原来系统的运行。库存储起来,并恢复原来系统的运行。除上述功能外,除上述功能外,KAS还将结构化编辑程序的优
42、点还将结构化编辑程序的优点引入到对网络结构的编辑中引入到对网络结构的编辑中:它的知识编辑程序可它的知识编辑程序可直接在网络上操作。并且该程序还有许多语义网直接在网络上操作。并且该程序还有许多语义网络方面的知识,能够尽力避免各类错误。络方面的知识,能够尽力避免各类错误。9.4.3 通用专家系统工具介绍 通用通用ESES工具可分为工具可分为 归纳型工具;归纳型工具;简单的、基于规则的工具;简单的、基于规则的工具;结构化的、基于规则的工具;结构化的、基于规则的工具;混合型工具。混合型工具。1.归纳型工具 归纳型工具归纳型工具利用归纳算法,从开发者输入的大量的利用归纳算法,从开发者输入的大量的初始实例
43、出发,归纳产生规则或决策树,并且排定以初始实例出发,归纳产生规则或决策树,并且排定以后用于咨询时向用户提问问题的顺序。最早的归纳算后用于咨询时向用户提问问题的顺序。最早的归纳算法称为法称为CLS算法;早期的归纳型工具算法;早期的归纳型工具ID3,并对,并对CLS算算法做了一些改进。归纳型工具的例子有法做了一些改进。归纳型工具的例子有1st-Class、TIMM等。优秀的归纳型工具使用起来非常容易,并等。优秀的归纳型工具使用起来非常容易,并且开发过程很短,可在且开发过程很短,可在PC机、小型机和大型机上运机、小型机和大型机上运行。行。这类这类工具的特点工具的特点是具有友好的人机接口,可以较快地是
44、具有友好的人机接口,可以较快地开发开发ES,但其他功能显得相对较弱,且缺少灵活性。,但其他功能显得相对较弱,且缺少灵活性。归纳型工具特别适合于那些拥有大量的正确分析的实归纳型工具特别适合于那些拥有大量的正确分析的实例和决策过程的情况。当一些实例能够表示成与一组例和决策过程的情况。当一些实例能够表示成与一组属性的集合相关的结论形式时,利用归纳型工具则是属性的集合相关的结论形式时,利用归纳型工具则是较理想的知识获取方法。较理想的知识获取方法。2.简单的、基于规则的工具 小型工具系统的基本特点小型工具系统的基本特点 这类工具开发的这类工具开发的ES全部的领域知识都被全部的领域知识都被存储在一个单一的
45、知识库中;知识库的结存储在一个单一的知识库中;知识库的结构比较简单,都以规则的形式表示领域知构比较简单,都以规则的形式表示领域知识;以逆向推理方式进行推理识;以逆向推理方式进行推理,可带有可信可带有可信度因子;提供同外部程序的接口;可以进度因子;提供同外部程序的接口;可以进行仿真。适用于开发设计行仿真。适用于开发设计150一一500条规则条规则的的ES,也具有处理上千条规则的能力。由,也具有处理上千条规则的能力。由于它们缺乏高级的编辑能力,因此在开发于它们缺乏高级的编辑能力,因此在开发一些大型的一些大型的ES时,显得效率很低。时,显得效率很低。Insight2和和Exsys Insight2和
46、和Exsys是两个较为典型的小型工具系统,是两个较为典型的小型工具系统,这两个工具在知识表示和控制策略方面都比较灵这两个工具在知识表示和控制策略方面都比较灵活,而且具有较为友好的人机接口。活,而且具有较为友好的人机接口。知识表示及控制策略知识表示及控制策略 在在Insight2和和Exsys中,事实均表示为中,事实均表示为“属实属实值值”对的形式,例如对的形式,例如:颜色颜色(属性属性)是红色是红色值值。事实可以。事实可以是逻辑型或字符型。规则均由是逻辑型或字符型。规则均由IF-THEN-ELSE几部分几部分组成。这两种工具都可以处理不确定性。在组成。这两种工具都可以处理不确定性。在Insig
47、ht2中每一条规则都可以附有可信度因子,而中每一条规则都可以附有可信度因子,而在在Exsys中,只有那些结论部分包含系统最终目标中,只有那些结论部分包含系统最终目标的规则才能带有可信度因子。的规则才能带有可信度因子。2.简单的、基于规则的工具 What would you like to do?What would you like to do?Run a knowledge base Run a knowledge base Edit a Knowledge base Edit a Knowledge base Compile a knowledge base Compile a knowl
48、edge base Run a DBPAS program Run a DBPAS program Edit a DBPAS program Edit a DBPAS program Compile a DBPAS program Compile a DBPAS program图图9-2 Insight29-2 Insight2的主菜单的主菜单 Insight2和Exsys 系统和知识工程师之间的接口系统和知识工程师之间的接口 运行运行Insight2,开发者只需在操作系统提,开发者只需在操作系统提示符下键入示符下键入“I2”即可,系统的主菜单如图即可,系统的主菜单如图9-2所示。所示。Ins
49、ight2和Exsys 系统和知识工程师之间的接口系统和知识工程师之间的接口 Exsys有两个主要程序:用于知识库的建立、编辑有两个主要程序:用于知识库的建立、编辑及测试的系统开发程序及测试的系统开发程序Editxs和用于运行已建成知识和用于运行已建成知识库的运行程序库的运行程序Exsys。当每条规则输入完毕之后,系。当每条规则输入完毕之后,系统立即进行编译,这样可以进行规则的一致性检查。统立即进行编译,这样可以进行规则的一致性检查。键入键入“R”可以立即测试规则的运行情况,键入可以立即测试规则的运行情况,键入“ESC”键则又自动返回到编辑状态,实现编辑同运行状态键则又自动返回到编辑状态,实现
50、编辑同运行状态间的快速转换。间的快速转换。系统同终端用户之间的接口系统同终端用户之间的接口 在这两种工具中,知识工程师均可为所设计的在这两种工具中,知识工程师均可为所设计的知识库附加一些解释信息。当用户对系统所提问知识库附加一些解释信息。当用户对系统所提问的问题有疑问或用户要求系统解释如何推理出某的问题有疑问或用户要求系统解释如何推理出某个结论时,用户可通过功能键获得这些解释信息。个结论时,用户可通过功能键获得这些解释信息。另外,在另外,在Exsys中,当系统完成一次咨询后,用户中,当系统完成一次咨询后,用户可以要求系统列出在咨询过程中系统所提的全部可以要求系统列出在咨询过程中系统所提的全部问