首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第132章 知识更新

第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 保存新知识。

oldRelationnewRelation 保存关系变化。

condition 保存更新条件。

evidence 保存更新依据。

validity 保存有效性判断。

status 保存更新状态。

createdAtverifiedAt 保存更新时间和验证时间。

这样,知识更新就成为可计算、可记录、可验证的机器对象。


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中的知识从静态存储结构发展成为一种能够持续变化、持续验证、持续维护和持续演化的认知结构

知识的价值不只是“存下来”,更重要的是能够保持:

正确、有效、关联、可用和可追溯。

知识更新由此成为连接学习系统、知识系统与认知系统的重要基础机制。

Leave a Reply

Your email address will not be published. Required fields are marked *