第132章 知识更新
132.1 提出背景
知识是认知系统对对象、属性、状态、关系、条件、行为、结果以及规则进行结构化表达后形成的认知结构。系统在运行过程中,会不断获得新的信息,也会不断产生新的状态、行为、结果和反馈。如果知识结构不能随着这些变化而变化,系统所依据的知识就会逐渐与实际对象和实际环境产生偏差。
因此,知识系统不仅需要具备知识存储能力,还必须具备知识更新能力。
知识更新(Knowledge Update)是指系统依据新的信息、已有知识、当前状态、历史记录、关系结构和有效性规则,对知识对象及其关系进行新增、修改、确认、失效和删除的过程。
知识更新的核心不是简单地把新数据写入数据库,而是首先回答以下问题:
这个信息是不是新知识?
它是否对应已有知识?
已有知识是否需要修改?
知识之间的关系是否发生变化?
原来的知识现在是否仍然有效?
已经失效的知识是否应该删除?
因此,知识更新可以表示为:
新信息 → 知识识别 → 知识匹配 → 新旧比较 → 更新判断 → 知识更新 → 有效性验证 → 新知识结构
知识更新使知识从静态结构转变为动态结构,使系统能够保持认知对象与实际对象之间的持续对应。
132.2 新知识
新知识(New Knowledge)是指当前知识结构中不存在,或者已有知识结构无法完整表达的新认知内容。
新知识首先来源于信息,但信息不等于知识。
例如系统获得:
对象A → 温度=30℃
这首先是一条信息。
只有经过对象识别、属性识别、状态判断、条件确认以及结构化处理后,才可以形成知识:
对象A → 温度属性 → 30℃ → 时间T → 条件C
因此:
信息 → 识别 → 结构化 → 验证 → 新知识
新知识可以包括:
- 新对象;
- 新属性;
- 新状态;
- 新关系;
- 新条件;
- 新行为;
- 新结果;
- 新规则;
- 新方法。
新知识的基本结构可以表示为:
NK={O,A,S,R,C,B,T,V}NK=\{O,A,S,R,C,B,T,V\}
其中:
- OO:Object,对象;
- AA:Attribute,属性;
- SS:State,状态;
- RR:Relation,关系;
- CC:Condition,条件;
- BB:Behavior,行为;
- TT:Time,时间;
- VV:Validity,有效性。
系统接收到新信息后,首先需要判断该知识是否已经存在:
Exists(N,K)={TRUE,N已经存在于KFALSE,N不存在于KExists(N,K)= \begin{cases} TRUE,&N已经存在于K\\ FALSE,&N不存在于K \end{cases}
其中 NN 为新知识,KK 为已有知识集合。
如果不存在,则:
新知识 → 验证 → 建立知识对象 → 保存
如果已经存在,则不能直接新增,而需要进入:
已有知识匹配 → 新旧比较 → 修改判断
因此,新知识处理存在两个基本方向:
不存在 → 新增
已经存在 → 比较 → 修改或保持
132.3 知识修改
知识修改(Knowledge Modification)是指已有知识与新信息之间出现确定差异后,对原知识的内容、属性、状态、条件或者其他结构进行调整。
知识修改的核心过程是:
已有知识 → 新信息 → 匹配 → 比较 → 差异 → 修改
设已有知识为 KoK_o,新知识为 KnK_n,则:
D=Compare(Ko,Kn)D=Compare(K_o,K_n)
其中 DD 为知识差异。
当:
D=0D=0
表示新旧知识一致,不需要修改。
当:
D>0D>0
表示二者存在差异,需要进一步判断差异属于新增、修改、冲突或者无效信息。
知识修改不能简单理解为:
旧值 → 新值
因为知识具有时间、条件和历史结构。
例如:
设备A → 状态=运行
经过新的检测:
设备A → 状态=停止
系统不能简单地把“运行”删除,然后只保留“停止”。
更合理的知识结构是:
设备A → 运行 → 时间T1
设备A → 停止 → 时间T2
由此形成状态历史。
因此:
CurrentKnowledge≠HistoricalKnowledgeCurrentKnowledge \neq HistoricalKnowledge
当前知识用于当前认知,历史知识用于历史追踪。
132.3.1 属性修改
属性修改是最基本的知识修改形式。
例如:
对象A → 速度=50
新信息:
对象A → 速度=60
形成:
旧属性 → 比较 → 新属性 → 属性更新
但更新时需要同时记录:
- 旧值;
- 新值;
- 修改时间;
- 修改条件;
- 修改来源;
- 修改原因;
- 验证状态。
这样才能形成完整的知识变化记录。
132.3.2 状态修改
状态具有明显的时间特征。
例如:
系统 → IDLE
之后:
系统 → RUNNING
再之后:
系统 → ERROR
形成:
IDLE → RUNNING → ERROR
因此状态知识本质上也是一种状态转换历史。
132.3.3 条件修改
知识往往不是无条件成立的。
例如:
条件C → 方法M有效
后来发现方法M只适用于新的条件:
条件C’ → 方法M有效
则需要修改知识的适用条件。
因此:
KnowledgeValidity=Match(CurrentCondition,KnowledgeCondition)KnowledgeValidity=Match(CurrentCondition,KnowledgeCondition)
知识条件发生变化时,知识本身未必错误,但其适用范围可能发生变化。
132.4 知识关系更新
知识关系更新(Knowledge Relation Update)是指对知识对象之间的关联关系进行新增、修改、失效和删除。
知识不是孤立存在的。
设知识网络为:
KN={K,R}KN=\{K,R\}
其中:
- KK:知识对象集合;
- RR:知识关系集合。
关系可以表示为:
R=(K1,Type,K2,C,T,V)R=(K_1,Type,K_2,C,T,V)
其中:
- K1K_1:关系起点;
- TypeType:关系类型;
- K2K_2:关系终点;
- CC:关系成立条件;
- TT:关系时间;
- VV:关系有效性。
例如:
对象A → 属于 → 系统B
就是一个知识关系。
如果发现新的关系:
对象A → 连接 → 对象C
则需要增加新的关系结构。
因此:
新关系 → 关系验证 → 关系建立 → 知识网络更新
132.4.1 关系新增
如果两个知识对象之间以前没有关系,而新的信息确认它们之间存在关系:
K1 → NewRelation → K2
则执行:
RelationAdd
132.4.2 关系修改
如果关系已经存在,但是关系条件或者关系属性发生变化:
K1 → R_old → K2
变成:
K1 → R_new → K2
则执行:
RelationModify
132.4.3 关系失效
如果关系过去成立,但是现在不再成立:
K1 → R → K2
则:
RelationValid = FALSE
关系可以进入:
ACTIVE → INACTIVE
这样既可以停止当前认知使用,又可以保留历史关系。
132.5 知识有效性
知识有效性(Knowledge Validity)是指判断某一知识在当前条件、当前状态和当前时间下是否仍然能够参与认知计算的能力。
知识存在并不意味着知识当前有效。
可以表示为:
Valid(K)=f(C,S,T,E,R)Valid(K)=f(C,S,T,E,R)
其中:
- CC:当前条件;
- SS:当前状态;
- TT:当前时间;
- EE:证据;
- RR:相关关系。
知识有效性可以分为:
VALID → 有效
CONDITIONAL → 条件有效
EXPIRED → 已过期
INVALID → 无效
UNKNOWN → 未知
有效性判断过程:
知识 → 条件检查 → 状态检查 → 时间检查 → 关系检查 → 证据检查 → 有效性结果
132.5.1 时间有效性
部分知识只在某一时间范围内有效:
Tstart≤Tcurrent≤TendT_{start}\leq T_{current}\leq T_{end}
当:
Tcurrent>TendT_{current}>T_{end}
则知识进入:
ACTIVE → EXPIRED
132.5.2 条件有效性
部分知识只有在指定条件下才能使用。
例如:
温度条件C → 方法M有效
如果当前温度已经不满足C,则:
Knowledge → ConditionMismatch → Inactive
这并不一定意味着知识错误,而可能意味着知识暂时不能用于当前认知。
因此需要区分:
知识错误
与:
知识当前不适用
132.5.3 证据有效性
知识还需要考虑支撑它的证据。
如果新证据与原知识一致:
Evidence → Confirm → KnowledgeValid
如果新证据否定原知识:
Evidence → Conflict → KnowledgeReview
因此知识更新与验证之间形成:
知识 → 新证据 → 比较 → 有效性判断 → 保留/修改/失效
132.6 知识删除
知识删除(Knowledge Deletion)是指系统确认某一知识已经错误、重复、永久失效或者不再属于当前知识结构后,将其从有效知识空间移除。
删除必须建立在判断之上。
基本流程:
知识 → 有效性判断 → 删除条件判断 → 删除 → 删除验证
可以定义:
DeleteAllowed(K)=I∨D∨E∨RDeleteAllowed(K)=I\lor D\lor E\lor R
其中:
- II:Invalid,无效;
- DD:Duplicate,重复;
- EE:Expired,永久过期;
- RR:Replaced,被新知识替代。
132.6.1 逻辑删除
对于具有历史价值的知识,不宜直接从数据库中永久删除。
可以采用:
ACTIVE → INVALID → DELETED
知识仍然保留,但不再参与当前知识匹配。
这可以保证系统具有历史追踪能力。
132.6.2 物理删除
对于确定错误、重复且没有历史保留价值的知识,可以执行物理删除:
Knowledge → DELETE
物理删除意味着知识记录真正从当前存储结构中移除。
但对于认知系统而言,应谨慎使用物理删除。
因为:
当前无效 ≠ 历史无价值
一条当前无效的知识,仍然可能用于:
- 历史分析;
- 经验形成;
- 错误分析;
- 更新原因分析;
- 学习验证。
因此更合理的设计是:
当前知识空间 + 历史知识空间
132.7 知识更新统一模型
前面的五个机制可以统一为知识更新模型。
KU=Update(K,N,C,T,E)KU=Update(K,N,C,T,E)
其中:
- KK:已有知识;
- NN:新信息;
- CC:当前条件;
- TT:当前时间;
- EE:证据。
知识更新类型可以表示为:
UpdateType={ADD,新知识MODIFY,知识修改RELATION,关系更新INVALIDATE,知识失效DELETE,知识删除NOCHANGE,无变化UpdateType= \begin{cases} ADD,& 新知识\\ MODIFY,& 知识修改\\ RELATION,& 关系更新\\ INVALIDATE,& 知识失效\\ DELETE,& 知识删除\\ NOCHANGE,& 无变化 \end{cases}
统一过程:
新信息 → 知识识别 → 对象匹配 → 新旧比较 → 更新类型判断 → 执行更新 → 有效性验证 → 保存结果
由此形成完整的知识更新机制。
132.8 知识更新与学习
知识更新与学习具有直接关系,但两者不是同一个概念。
经验回答:
过去发生了什么,以及什么关系具有重复价值。
学习回答:
系统未来应该发生什么变化。
知识更新回答:
知识结构现在应该如何变化。
三者可以形成:
记忆 → 经验 → 学习 → 知识更新
例如系统经过多次行为得到:
条件C → 方法M → 结果成功
经过经验形成和学习判断后,系统可以形成新的知识:
条件C → 方法M → 成功
此时:
经验 → 学习 → 知识更新
但知识更新也可以不经过完整学习过程。
例如:
设备A → 状态=运行
实时检测得到:
设备A → 状态=停止
这是当前知识状态更新,不一定意味着系统形成了新的学习能力。
因此:
Learning≠KnowledgeUpdateLearning \neq KnowledgeUpdate
但是:
Learning→KnowledgeUpdateLearning \rightarrow KnowledgeUpdate
在需要改变知识结构时成立。
132.9 知识更新与记忆
记忆负责保存发生过的事情,知识负责形成可以被认知系统使用的结构。
二者关系可以表示为:
事件 → 记忆 → 知识形成 → 知识更新
当知识发生修改时,旧知识变化过程也应形成记忆:
旧知识 → 更新事件 → 新知识
例如:
K1 → K2 → K3
表示知识连续发生三次变化。
系统因此可以知道:
原来是什么 → 什么时候变化 → 变化成什么 → 当前是什么
这种能力对于认知连续性具有重要作用。
132.10 知识更新的工程对象
在WSaiOS/ICAI中,可以将知识更新设计成独立的工程对象 KnowledgeUpdate。
其基本结构为:
KnowledgeUpdate
├── updateId
├── knowledgeId
├── updateType
├── oldValue
├── newValue
├── oldRelation
├── newRelation
├── condition
├── evidence
├── validity
├── status
├── createdAt
└── verifiedAt
其中:
updateId 表示更新编号。
knowledgeId 表示被更新的知识对象。
updateType 表示新增、修改、关系更新、失效或删除。
oldValue 保存旧知识。
newValue 保存新知识。
oldRelation 与 newRelation 保存关系变化。
condition 保存更新条件。
evidence 保存更新依据。
validity 保存有效性判断。
status 保存更新状态。
createdAt 与 verifiedAt 保存更新时间和验证时间。
这样,知识更新就成为可计算、可记录、可验证的机器对象。
132.11 PHP OOP工程映射
知识更新可以通过PHP OOP进行实现。
核心类可以设计为:
KnowledgeManager
KnowledgeRepository
KnowledgeMatcher
KnowledgeComparator
KnowledgeAdder
KnowledgeModifier
KnowledgeRelationUpdater
KnowledgeValidator
KnowledgeDeleter
KnowledgeHistory
KnowledgeUpdateRecord
其中:
KnowledgeMatcher 负责匹配新信息与已有知识。
KnowledgeComparator 负责比较新旧知识。
KnowledgeAdder 负责新增知识。
KnowledgeModifier 负责修改知识。
KnowledgeRelationUpdater 负责更新知识关系。
KnowledgeValidator 负责知识有效性判断。
KnowledgeDeleter 负责知识删除和逻辑失效。
KnowledgeHistory 负责保存知识变化历史。
整体调用过程为:
Information → KnowledgeMatcher → KnowledgeComparator → UpdateType → KnowledgeManager → KnowledgeValidator → KnowledgeRepository
这使理论中的知识更新直接映射为PHP对象、方法和数据结构。
132.12 知识更新状态
知识更新本身也需要具有状态。
可以建立:
IDLE → RECEIVED → MATCHING → COMPARING → CLASSIFYING → UPDATING → VERIFYING → COMPLETED
异常状态包括:
CONFLICT
FAILED
ROLLBACK
例如:
UPDATING → VERIFYING → FAILED → ROLLBACK
说明本次知识更新没有通过验证。
如果更新成功:
UPDATING → VERIFYING → COMPLETED
因此:
UpdateSuccess=ApplySuccess∧VerifySuccessUpdateSuccess=ApplySuccess\land VerifySuccess
知识被写入并不代表知识更新成功。
只有更新操作成功,并且更新后的知识通过验证,才可以认为知识更新完成。
132.13 知识更新规则
知识更新可以由机器规则进行控制。
新知识:
IF KnowledgeExists = FALSE
THEN AddKnowledge
知识修改:
IF KnowledgeExists = TRUE
AND KnowledgeDifference > Threshold
THEN ModifyKnowledge
关系新增:
IF NewRelation = TRUE
AND RelationValid = TRUE
THEN AddRelation
知识失效:
IF KnowledgeValidity = FALSE
THEN SetInactive
知识删除:
IF KnowledgeInvalid = TRUE
AND HistoricalValue = FALSE
THEN DeleteKnowledge
历史保留:
IF KnowledgeInvalid = TRUE
AND HistoricalValue = TRUE
THEN RetainAsHistory
这样,知识更新不再依赖人工判断,而可以转化为明确的机器规则。
132.14 知识更新数据库模型
知识主体可以使用:
cognitive_knowledge
主要字段:
knowledge_id
knowledge_type
object_type
object_value
attribute
content
condition
state
validity
status
version
created_at
updated_at
expired_at
知识关系可以使用:
cognitive_knowledge_relations
主要字段:
relation_id
source_knowledge_id
relation_type
target_knowledge_id
condition
validity
status
created_at
updated_at
知识更新记录可以使用:
cognitive_knowledge_updates
主要字段:
update_id
knowledge_id
update_type
old_value
new_value
old_relation
new_relation
evidence
status
created_at
verified_at
由此形成:
Knowledge → Relation → UpdateHistory
知识主体保存当前知识结构,关系表保存知识网络,更新记录保存知识演化过程。
132.15 知识更新闭环
知识更新最终进入整个认知系统闭环:
感知 → 信息 → 记忆 → 经验 → 学习 → 知识更新 → 知识匹配 → 认知 → 决策 → 行为 → 结果 → 反馈 → 记忆
知识更新产生的新知识又会参与下一次认知:
Kt→Update→Kt+1K_t \rightarrow Update \rightarrow K_{t+1}
然后:
Kt+1→Cognitiont+1K_{t+1}\rightarrow Cognition_{t+1}
因此知识更新是持续性的,而不是一次性的。
系统每获得新的有效信息,都可能导致:
新增知识
或者:
修改知识
或者:
更新关系
或者:
知识失效
或者:
知识删除
这使知识结构能够随着系统运行持续演化。
132.16 本章总结
知识更新解决的是认知系统中的一个基本问题:
知识不是永远不变的,系统必须能够知道什么时候增加知识、什么时候修改知识、什么时候改变关系、什么时候判断知识失效,以及什么时候删除知识。
五个核心机制形成完整结构:
新知识 → 知识进入
知识修改 → 知识变化
知识关系更新 → 知识网络变化
知识有效性 → 知识可用性判断
知识删除 → 无效知识退出当前知识空间
完整模型为:
新信息 → 知识识别 → 知识匹配 → 新旧比较 → 新增/修改/关系更新 → 有效性判断 → 保留/失效/删除 → 更新验证 → 新知识结构
进一步与前面的理论连接:
行为 → 结果 → 反馈 → 记忆 → 经验 → 学习 → 知识更新 → 认知 → 决策 → 行为
因此,知识更新使WSaiOS/ICAI中的知识从静态存储结构发展成为一种能够持续变化、持续验证、持续维护和持续演化的认知结构。
知识的价值不只是“存下来”,更重要的是能够保持:
正确、有效、关联、可用和可追溯。
知识更新由此成为连接学习系统、知识系统与认知系统的重要基础机制。