首页 理论教育 知识工程的过程

知识工程的过程

时间:2022-02-11 理论教育 版权反馈
【摘要】:例如,wumpus 知识库是否需要具有选择行动的能力或者它是否只需要回答跟环境相关的问题?知识工程师可能已经是该领域的专家,或者还需要和真正的专家进行合作以便提取专家的知识——这一过程被称为知识获取。对于由人造规则集定义的wumpus世界,很容易确定它的相关知识。与程序设计风格一样,知识工程的风格对项目最终的成败有重大影响。一旦做出了选择,它的结果就是被称为域的本体论的一个词表。

8.4.1 知识工程的过程

不同的知识工程项目在内容、范围和难度方面差别比较大,但是所有这样的项目都包括以下步骤:

(1)确定任务。知识工程师必须勾画出知识库支持的问题范围以及对于每个特定的问题实例可以采用哪些种类的事实。例如,wumpus 知识库是否需要具有选择行动的能力或者它是否只需要回答跟环境相关的问题?传感器的事实是否需要包括当前的位置?任务将决定必须表示哪些知识,从而可以将问题实例和答案联系起来。这一步骤与第二章中用于设计智能体的PEAS过程类似。

(2)搜集相关知识。知识工程师可能已经是该领域的专家,或者还需要和真正的专家进行合作以便提取专家的知识——这一过程被称为知识获取。在这一阶段,还未对知识进行形式化的表示。因此采取的思路是了解任务决定的知识库范围,并了解该领域是如何实际运转的。

对于由人造规则集定义的wumpus世界,很容易确定它的相关知识。(然而需要注意的是, wumpus世界的规则并没有直接给出相邻关系的定义。)对于现实领域,相关性问题可能非常难解决——例如,仿真VLSI设计的系统可能需要,也可能不需要考虑杂散电容和趋肤效应。

(3)确定谓词、函数和常量的词汇表。也就是把重要的域级概念转换为逻辑级的名称,它涉及到知识工程风格的很多问题。与程序设计风格一样,知识工程的风格对项目最终的成败有重大影响。例如,陷阱应该表示为对象还是关于方格的一元谓词?智能体的朝向应该是函数还是谓词?wumpus 的位置是否应该与时间相关?一旦做出了选择,它的结果就是被称为域的本体论的一个词表。本体论意味着关于存在或实体的本质的特殊理论。本体论决定哪种事物是存在的,但是并不决定它们的特定属性和相互关系。

(4)对域的通用知识进行编码。知识工程师对所有词汇项写出公理。(尽可能)明确给出项的含义,使得专家可以对内容进行检查。此步骤通常可以揭示词汇表中的误解或者缺陷,这些必须通过返回步骤3并迭代执行整个过程加以修正。

(5)对特定问题实例的描述进行编码。如果本体论设计良好,那么这一步骤将很容易实现。它涉及写出已经是本体论的一部分的概念实例的简单原子语句。对于逻辑智能体,问题实例由传感器提供,而在“无实体的”知识库中,问题实例是由附加语句按照传统程序中输入数据的同样方式来提供的。

(6)把查询提交给推理过程并获取答案。这么做的好处在于:我们可以让推理过程对公理和问题相关的事实进行操作,从而推导出我们有兴趣了解的内容。

(7)调试知识库。查询的答案很少在第一次尝试的时候就正确。更准确地说,假定推理过程是可靠的,那么答案对于知识库的内容来说是正确的,但是它们可能不是用户所期望的答案。例如,如果某条公理缺失,则根据知识库某些查询是无法回答的。因此需要寻求一种值得考虑的调试过程。它可以通过注意推理链意外停止之处来确定缺失或者过弱的公理。例如,如果知识库包括一条针对陷阱的诊断公理:


但没有别的公理,那么智能体永远也无法证明陷阱的不存在。由于不正确的公理对世界做出了错误的陈述,因此很容易识别。例如,语句


对于爬行动物两栖动物、以及更重要的,对于桌子为假。可以独立于其余的知识库来判断这个语句的假。相反,程序中的一个典型错误如下所示:

offset = position+1

不查看余下程序而判断这条语句是否正确是不可能的:例如,offset 被用于指代当前的位置(即position——译者注),或者是超过当前位置距离为1的位置,或者position的值是否被另一个语句改变从而再次导致offset也被改变。

为了更好地理解这个七步过程,我们现在把它应用于一个扩展的实例——电路领域。

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

我要反馈