
- 知识关系
- 规则推理
START WITH A QUESTION
设备不制冷,能否解释为什么需要检查?
报修人员说“空调已通电,但不制冷”。系统如果只输出一个故障名称,你很难知道它根据什么判断。另一种方式是保存明确事实和规则,逐步推出“需要检查制冷系统”,同时展示推理依据。
这套小规则不能代替专业检修,但适合学习知识表示:先把含糊描述变成有结构的事实,再按明确条件推理。规则输出的是检查建议,不是未经验证的故障结论。
BUILD YOUR VOCABULARY
先把三个概念讲清楚
事实与关系
事实是当前已知且可追溯的陈述;关系连接实体。实体是所描述的对象,如某台空调。未知事实不应自动当作否定。
“设备 A 已通电”和“设备 A 位于二楼”表达不同属性与关系。
规则
规则规定当前提都成立时可推出什么。它是人为约定的知识表达,不是从数据中自动学到的参数。
已通电且不制冷 → 需要检查制冷系统。
推理与解释链
推理把已有事实和规则组合成新事实;解释链记录用了哪些前提。结论可靠性取决于事实和规则是否正确适用。
需要检查制冷系统 → 建议人工检修;可以追溯两步来源。
FOLLOW THE PROCESS
把原理放进完整流程
- 01
整理事实
记录来源和时间,区分已知、否定与未知。
- 02
匹配前提
逐条检查规则需要的事实是否全部成立。
- 03
加入新结论
把满足条件的结论加入事实集合并记录来路。
- 04
重复到稳定
新结论可触发后续规则,直到没有新增事实。
| 步骤 | 已知条件 | 推导结果 |
|---|---|---|
| 输入 | 已通电、不制冷 | 尚未确定故障原因 |
| 规则 1 | 两个输入事实都成立 | 需检查制冷系统 |
| 规则 2 | 需检查制冷系统 | 建议人工检修 |
CHANGE ONE THING & OBSERVE
切换事实,观察推理链
勾选已确认的事实,观察哪些规则被触发。未勾选表示尚未确认,而非一定为假。
- 规则 1已通电 + 不制冷 → 需检查制冷系统
- 规则 2需检查制冷系统 → 建议人工检修
KNOW THE LIMITS
哪些结论不能直接推出?
知识库不是绝对真理
规则需要适用范围、版本和维护人员。过期或相互冲突的规则可能给出错误建议。
没有记录不等于没有发生
如果不知道是否通电,应先补问,而不是把“未记录”替换成“未通电”。
READ, RUN & EXPLAIN
让规则推理持续到没有新结论
以下示例仅使用 Python 3 标准库,可复制到本地 Python 环境运行。先看每一行的作用,再修改一个输入观察结果;无需网络或密钥。
facts = {'已通电', '不制冷'}
rules = [({'已通电', '不制冷'}, '需检查'), ({'需检查'}, '人工检修')]
changed = True
while changed:
changed = False
for premises, conclusion in rules:
if premises <= facts and conclusion not in facts:
facts.add(conclusion)
changed = True
print('人工检修' in facts)复制或下载只获取本课示例,不会自动执行。
逐行解释(10 行)
- 第 1 行
facts = {'已通电', '不制冷'}用集合记录初始事实。集合会自动去除重复项。
- 第 2 行
rules = [({'已通电', '不制冷'}, '需检查'), ({'需检查'}, '人工检修')]每条规则由前提集合和结论组成。这里是教学规则。
- 第 3 行
changed = True标记是否还可能产生新事实。
- 第 4 行
while changed:只要上一轮出现新事实,就再检查一轮。
- 第 5 行
changed = False先假设本轮不会新增。
- 第 6 行
for premises, conclusion in rules:依次取出前提与结论。
- 第 7 行
if premises <= facts and conclusion not in facts:<= 对集合表示包含关系;只新增还没有的结论。
- 第 8 行
facts.add(conclusion)将可推导的结论加入事实集合。
- 第 9 行
changed = True告诉循环需要继续检查。
- 第 10 行
print('人工检修' in facts)检查目标结论是否最终可推出。
True
CHECK YOUR UNDERSTANDING
换一个角度,检查自己是否理解
已回答 0 / 3 题 · 当前答对 0 题
TAKE IT WITH YOU
带走三个判断,再做一次迁移练习
- 先明确事实、对象与关系,再讨论推理。
- 规则匹配前提,推理生成有依据的新结论。
- 维护未知、版本和适用范围,避免过度诊断。
参考与延伸阅读
本课例子、代码和模拟数据为教学设计。以下一手文档用于延伸核对,不代表对本示例的认证。
- Python 官方教程:数据结构列表、集合与队列等示例语法参考。
- scikit-learn:模型评估评估指标与预测、决策的区别。
- IBM:检索增强生成检索与生成组合的进一步说明。
- NIST:AI 风险管理框架可靠性与风险管理的延伸阅读;不是特定项目的合规结论。