符号主义 AI 的心脏:把知识写成机器可操作的句子,再用推理引擎从已知推出未知。本章以逻辑编程(Prolog)为载体,展示「知识库 + 推理机」的架构,讲清它的辉煌(专家系统、定理证明)、它的软肋(常识问题、不确定性),以及它如何把接力棒交给统计学习。离散数学课第 2、3 章的命题/谓词逻辑在此直接变成代码。
同一个知识「鸟会飞(除企鹅)」,三种写法:
∀x (Bird(x) ∧ ¬Penguin(x) → Flies(x))——离散数学课的公式,精确、可推理;IF 动物是鸟 AND 不是企鹅 THEN 会飞——专家系统的形式,人类专家「口述」最自然;选型口径:要严格推理(数学、法律条文、硬件验证)用逻辑;要专家经验(诊断、配置)用规则;要关联检索(搜索、问答)用图。三者在真实系统里常混用(知识图谱 + 规则引擎 + 神经网络)。
Prolog(Programming in Logic)是逻辑编程的活标本:程序 = 事实 + 规则,查询 = 推理请求:
% 事实
parent(tom, bob). % tom 是 bob 的家长
parent(tom, liz).
parent(bob, ann).
male(tom). male(bob).
% 规则:grandparent 是推导出来的
grandparent(G, C) :- parent(G, P), parent(P, C).
% 查询
?- grandparent(tom, Who).
Who = bob ;
Who = liz ;
false.
没有 for 循环、没有赋值:你声明「什么是真」,推理引擎自己搜出「怎么证」。:- 读作「如果」(右边都成立则左边成立),逗号是「与」。上面查询的执行过程:回溯搜索(第 2 章的深度优先 + 回退):先把 Who 绑定为 bob,验证 parent(bob, ann) 成立,输出;继续搜,换 liz;搜尽返回 false。**「程序 = 知识库」**的范式在这里实现。
推理引擎的核心是归结原理(Robinson, 1965):要证 KB ⊨ 结论,等价于证明「KB ∧ ¬结论」矛盾(反证法的形式化,离散数学课第 4 章)。归结规则一句话:两个子句(或项的析取)中含互补文字 P 与 ¬P,消去它们合并出新子句——一条规则支撑起整个自动定理证明。
工程推理机的两条路线:前向链(数据驱动,从事实出发反复点火规则直到无新事实,专家系统 MYCIN 的诊断、规则引擎 Drools 的风控);后向链(目标驱动,从要证的结论倒推需要的证据,Prolog 的执行模式,「我怀疑 X,要证 X 需要先证 Y 和 Z」)。诊断类系统用前向(症状进结论出),证明类任务用后向(目标导向)。
符号推理的巅峰成就:专家系统(1980s 产值十亿美元级,XCON 配置计算机系统每年省亿级成本)、自动定理证明(四色定理的计算机辅助验证,第 6 章离散数学提过;今天的形式化验证 SeL4 内核、CompCert 编译器,数学上零缺陷)。
但它撞上三堵墙(第 1 章的呼应):
一个公允的注脚:符号方法没有死,它在与神经方法分工——LLM 会「说」但不可靠,符号系统可靠但不会「学」;今天的神经符号系统(LLM 生成 SQL/代码,求解器验证执行)正在把两代 AI 拼回一起。
把「知识库」做到工业规模需要工程化:本体(ontology)定义领域的概念体系(类、属性、关系,如「」药物-成分-禁忌是一张什么样的网),知识图谱(Knowledge Graph)是它的具体实现(节点实体、边关系,Google 2012 年提出,今天每个搜索引擎背后都有一张)。构建路径:从文本抽取(实体识别、关系抽取——用第 8 章的神经模型!)+ 人工校对 + 融合对齐。图谱的强项是可查询、可解释的多跳推理:「A 的导演的妻子的前夫的作品」这类查询,LLM 经常幻觉,图谱一次查准。这也是 RAG(检索增强生成,第 10 章)选图谱当知识源的原因。