什么是知识工程?

以一阶逻辑构建知识库的过程称为知识工程。在知识工程中,研究特定领域、学习该领域的重要概念并生成对象的形式表示的人被称为知识工程师。

知识工程(KE)是指构建、维护和使用基于知识的系统所涉及的所有技术、科学和社会方面。

知识工程是人工智能(AI)的一个领域,它尝试模仿人类专家在特定领域的判断和行为。知识工程是创建专家系统背后的技术,以帮助解决使用编程知识领域相关的问题专家系统涉及一个与规则引擎集成的大型可扩展知识库,该规则引擎指定如何将信息获取多数特定情况。 

知识工程在各个行业都有广泛的应用:

  • 卫生保健:在医疗保健领域,知识工程用于创建诊断系统,帮助医生根据症状、病史和测试结果识别疾病。这些系统还可以推荐治疗计划并监测患者的治疗结果。
  • 金融:在金融领域,基于知识的系统可以评估市场数据以提供投资建议、检测欺诈活动并自动执行交易策略。
  • 制造业:在制造业中,知识工程可以优化生产流程、预测设备故障并支持质量控制工作。
  • 客户服务:知识工程为智能聊天机器人和虚拟助理提供支持,它们通过回答问题、解决问题并根据支持信息的知识库提供建议来提供客户支持。

以下是知识工程过程的一些主要步骤。使用这些步骤,我们将开发一个知识库,以数字电路为案例:

1. 确定任务:
该过程的第一步是识别任务,对于数字电路来说,有各种各样的推理任务。
在第一级或最高级,我们将检查电路的功能:

  • 电路是否正确添加?
  • 如果所有输入都为高电平,A2 门的输出是什么?

在第二级,我们将检查电路结构细节,例如:
  • 哪个门连接到第一个输入端?
  • 电路有反馈回路吗?

2. 整理相关知识:
第二步,我们将汇集数字电路所需的相关知识。那么对于数字电路,我们需要具备以下知识:

  • 逻辑电路由导线和门组成。
  • 信号通过电线流向门的输入端,每个门产生相应的输出,并进一步流动。
  • 在此逻辑电路中,使用了四种类型的门:AND、OR、XOR 和 NOT。
  • 所有这些门都有一个输出端和两个输入端(除非门外,它有一个输入端)。

3. 确定词汇UL
下一步是选择函数、谓词和常量来表示电路、终端、信号和门。

首先,我们要将门电路与其他对象区分开来。每个门都是一个对象,用常量命名,如 Gate(X1)。每个门的功能由其类型决定,而类型则由 AND、OR、XOR 或 NOT 等常量决定。

  • 电路将由谓词标识:电路 (C1)。
  • 对于终端,我们将使用谓词:Terminal(x):Terminal(x).
  • 对于门输入端,我们将使用函数 In(1, X1) 表示门的第一个输入端;对于输出端,我们将使用 Out (1, X1)。
  • 函数 Arity(c, i, j) 用于表示电路 c 有 i 个输入端,j 个输出端。
  • 门电路之间的连接可用谓词 Connect(Out(1, X1), In(1, X1)) 表示。
  • 我们使用一元谓词 On (t),如果某个终端的信号为开,则该谓词为真。


4.对领域常识进行编码
要对逻辑电路的一般知识进行编码,我们需要以下一些规则:

如果两个端子相连,则它们具有相同的输入信号,可以表示为
∀  t1, t2 Terminal (t1) ∧ Terminal (t2) ∧ Connect (t1, t2) → Signal (t1) = Signal (2).   

5.编码问题实例描述
现在我们对电路 C1 的问题进行编码,首先对电路及其门元件进行分类。如果已经想到了问题的本体,这一步就很容易了。这一步涉及编写概念实例的简单原子句子,即本体。

对于给定的电路 C1,我们可以用原子句子对问题实例进行如下编码:

由于电路中有两个 XOR 门、两个 AND 门和一个 OR 门,因此这些门的原子句将是

For XOR gate: Type(x1)= XOR, Type(X2) = XOR  
For AND gate: Type(A1) = AND, Type(A2)= AND  
For OR gate: Type (O1) = OR.    


6.向推理过程提出疑问并得到答案:
在这一步中,我们将找出加法器电路所有终端的所有可能值集。第一个问题是

怎样的输入组合才能使电路 C1 的第一个输出为 0,第二个输出为 1?