第191章 KnowledgeEngine
在 ICAI 的认知工程体系中,ObjectEngine 负责对象计算,StateEngine 负责状态计算,RelationEngine 负责关系计算,SceneEngine 负责场景建立与场景变化。
这些 Engine 解决的是:
对象是什么 → 状态是什么 → 对象之间有什么关系 → 当前形成什么场景
但是,仅有对象、状态、关系和场景,还不能形成稳定的认知依据。
ICAI 还需要回答:
- 已经知道什么;
- 当前事实是否能够与已有知识匹配;
- 已有知识是否适用于当前对象和场景;
- 新事实是否能够形成新的知识;
- 原有知识是否应该被修改、失效或产生冲突。
因此,需要建立 KnowledgeEngine(知识计算引擎)。
KnowledgeEngine 的核心职责是:
KnowledgeEngine=KnowledgeCalculation+KnowledgeMatching+KnowledgeUpdateKnowledgeEngine= KnowledgeCalculation+ KnowledgeMatching+ KnowledgeUpdate
即:
知识计算 + 知识匹配 + 知识更新
它不是一个生成文本的模块,也不是语言模型。
它处理的是结构化知识对象、事实、条件、关系、状态、证据和规则。
191.1 Knowledge 的定义
在 ICAI 中,Knowledge(知识)不是任何被保存的数据。
知识必须具有明确的对象、属性或关系、适用条件以及状态。
第174章已经定义:
K=(S,P,O,C,St)K=(S,P,O,C,S_t)
其中:
- SS = Subject,知识主体;
- PP = Predicate,谓词或属性关系;
- OO = Object,知识客体或属性值;
- CC = Condition,适用条件;
- StS_t = State,知识状态。
例如:
产品A
→
适用于
→
环境B
并且:
条件:
温度 < 40℃
那么完整知识不是简单的:
产品A适用于环境B
而是:
Subject = 产品A
Predicate = 适用于
Object = 环境B
Condition = 温度 < 40℃
State = Verified
因此:
Knowledge≠DataKnowledge \neq Data
也:
Knowledge≠MemoryKnowledge \neq Memory
知识是经过结构化、条件化和验证后的认知事实。
191.2 KnowledgeEngine 的定义
KnowledgeEngine 是对结构化知识进行计算、匹配、验证、推导和更新评估的确定性计算引擎。
可以定义:
KE=(K,R,C,D,M,U,V)KE=(K,R,C,D,M,U,V)
其中:
- KK = Knowledge,知识;
- RR = Rule,知识规则;
- CC = Condition,条件;
- DD = Discrete Calculation,离散计算;
- MM = Matching,知识匹配;
- UU = Update,知识更新;
- VV = Verification,知识验证。
其基本输入:
Input=(K,F,C,R,E,T)Input=(K,F,C,R,E,T)
其中:
- KK = 当前知识;
- FF = 新事实;
- CC = 当前条件;
- RR = 规则;
- EE = 证据;
- TT = 时间。
输出:
KnowledgeResult=(K′,M,C,D,E,V,U,T)KnowledgeResult= (K’,M,C,D,E,V,U,T)
其中:
- K′K’ = 更新后的知识候选;
- MM = 匹配结果;
- CC = 条件判断;
- DD = 计算结果;
- EE = 证据;
- VV = 验证结果;
- UU = 更新结果;
- TT = 时间。
191.3 知识计算
Knowledge Calculation 是 KnowledgeEngine 的第一项核心职责。
知识计算不是生成一段解释,而是依据已有知识、事实和规则进行确定性计算。
基本结构:
KnowledgeCalculation=Facts+Relations+Conditions+RulesKnowledgeCalculation= Facts+ Relations+ Conditions+ Rules
例如已有:
A→supports→BA\rightarrow supports\rightarrow B
以及:
B→supports→CB\rightarrow supports\rightarrow C
如果系统规定:
supports(x,y)∧supports(y,z)→supports(x,z)supports(x,y)\land supports(y,z) \rightarrow supports(x,z)
那么可以计算:
A→supports→CA\rightarrow supports\rightarrow C
这里产生的是一个新的结构化知识事实。
不是:
生成一段自然语言
而是:
Subject = A
Predicate = supports
Object = C
191.4 知识计算与普通查询的区别
数据库查询主要回答:
数据库里有没有这条数据?
KnowledgeEngine 进一步回答:
根据当前知识、条件和规则,可以计算出什么知识事实?
例如数据库中存在:
A → belongs_to → B
B → located_in → C
普通查询可以分别查询两条记录。
KnowledgeEngine 则可以根据规则:
belongs_to(x,y)∧located_in(y,z)→located_in(x,z)belongs\_to(x,y) \land located\_in(y,z) \rightarrow located\_in(x,z)
计算:
A → located_in → C
因此:
Query≠KnowledgeCalculationQuery \neq KnowledgeCalculation
查询负责获取数据。
KnowledgeEngine 负责在已有数据基础上进行结构化计算。
191.5 知识计算的基本模型
知识计算可以表示为:
Kout=F(Kin,Fnew,C,R)K_{out}=F(K_{in},F_{new},C,R)
其中:
- KinK_{in} = 输入知识;
- FnewF_{new} = 新事实;
- CC = 条件;
- RR = 规则;
- KoutK_{out} = 计算结果。
如果:
Fnew⊨CF_{new}\models C
并且:
R(Fnew)→K′R(F_{new})\rightarrow K’
那么:
K′∈CandidateKnowledgeK’\in CandidateKnowledge
但必须注意:
计算出的知识候选 ≠ 已验证知识。
因此:
CalculatedKnowledge≠VerifiedKnowledgeCalculatedKnowledge \neq VerifiedKnowledge
必须经过验证过程。
191.6 知识计算的类型
KnowledgeEngine 可以支持多个确定性计算类型。
191.6.1 事实匹配计算
判断事实是否存在:
Match(F,K)→True/FalseMatch(F,K)\rightarrow True/False
191.6.2 属性计算
根据对象属性计算新的属性:
A1+A2→A3A_1+A_2\rightarrow A_3
例如:
数量 = 100
单价 = 10
计算:
总价 = 1000
191.6.3 状态知识计算
根据状态条件形成知识:
设备 = Active
+
温度 < 40℃
→
设备处于正常运行条件
191.6.4 关系知识计算
根据多个关系推导新关系:
A → part_of → B
B → part_of → C
如果规则规定 part_of 可传递:
A → part_of → C
191.6.5 条件知识计算
例如:
Temperature<40∧Pressure<10→NormalTemperature<40 \land Pressure<10 \rightarrow Normal
191.6.6 能力知识计算
根据:
Capability
+
Condition
+
Range
+
State
计算:
Capability Available
191.6.7 方法知识计算
根据:
Method
+
Capability
+
Condition
+
Resource
计算:
Method Applicable
191.7 知识规则
KnowledgeEngine 的计算必须依赖明确规则。
规则可以定义:
Rule=(Condition,Action,Result)Rule=(Condition,Action,Result)
例如:
Condition:
A has B
AND
B supports C
Result:
A supports C
PHP 中可以表示为:
array(
'conditions' => array(
'has',
'supports'
),
'result' => 'supports'
);
规则本身不是 Engine。
:
Rule≠EngineRule \neq Engine
规则描述:
在什么条件下得到什么结果。
Engine 负责:
执行规则并计算结果。
因此:
KnowledgeEngine(Rule,Knowledge,Condition)→KnowledgeResultKnowledgeEngine(Rule,Knowledge,Condition) \rightarrow KnowledgeResult
191.8 知识匹配
Knowledge Matching 是 KnowledgeEngine 的第二项核心职责。
知识匹配解决:
当前对象、状态、关系或场景,与已有知识是否匹配?
基本模型:
Match(F,K,C)→MMatch(F,K,C)\rightarrow M
其中:
- FF = 当前事实;
- KK = 已有知识;
- CC = 条件;
- MM = 匹配结果。
匹配不能只判断:
存在 / 不存在
而应该至少区分:
Matched
Partial
Unmatched
Unknown
Blocked
Conflicted
Outdated
191.9 知识匹配维度
KnowledgeEngine 可以从多个维度进行匹配。
191.9.1 Subject 匹配
Subject相同
例如:
Product A
191.9.2 Predicate 匹配
supports
和:
belongs_to
不是同一个 Predicate。
191.9.3 Object 匹配
例如:
A → supports → B
不能直接认为:
A → supports → C
也就是说:
O1≠O2O_1\neq O_2
除非存在明确关系或规则。
191.9.4 Condition 匹配
即使:
A → supports → B
相同,也必须检查条件是否一致。
例如:
Temperature < 40℃
与:
Temperature > 80℃
不能视为相同条件。
191.9.5 State 匹配
知识本身也有状态。
例如:
Verified
和:
Outdated
不能拥有相同的使用优先级。
191.9.6 Time 匹配
某些知识只在一定时间内有效。
因此:
Valid(K)=f(K,Time)Valid(K)=f(K,Time)
当前时间超过知识有效期时:
Valid
可以变成:
Outdated
191.10 知识匹配结果
可以定义:
KM=(K,F,D,S,E,T)KM=(K,F,D,S,E,T)
其中:
- KK = Knowledge;
- FF = Fact;
- DD = Difference;
- SS = Match State;
- EE = Evidence;
- TT = Time。
例如:
array(
'state' => 'partial',
'subject_match' => true,
'predicate_match' => true,
'object_match' => false,
'condition_match' => true
);
这比简单返回:
true
具有更强的工程意义。
因为后续 DecisionEngine 可以知道:
为什么没有完全匹配。
191.11 知识存在不等于知识有效
这是 KnowledgeEngine 必须严格区分的问题。
数据库中存在:
K1
只能证明:
Exists(K1)=TrueExists(K1)=True
不能证明:
Valid(K1)=TrueValid(K1)=True
知识有效还必须满足:
Valid(K)=Fact∧Condition∧State∧Evidence∧TimeValid(K)= Fact \land Condition \land State \land Evidence \land Time
例如:
知识:
产品A支持环境B
即使这条记录存在,如果:
产品A已经停产
或者:
条件已经改变
那么该知识可能:
Outdated
而不是:
Valid
191.12 知识冲突
KnowledgeEngine 还需要检测知识之间的冲突。
例如:
K1:
A → supports → B
同时:
K2:
A → does_not_support → B
如果二者条件相同:
C1=C2C_1=C_2
则:
Conflict(K1,K2)=TrueConflict(K_1,K_2)=True
KnowledgeEngine 不应该随机选择其中一条。
应该输出:
Conflicted
然后交给:
ConflictEngine
或者:
DecisionEngine
进一步处理。
因此:
KnowledgeEngine→ConflictDetectionKnowledgeEngine \rightarrow ConflictDetection
但:
KnowledgeEngine≠ConflictResolutionKnowledgeEngine\neq ConflictResolution
191.13 知识更新
Knowledge Update 是 KnowledgeEngine 的第三项核心职责。
知识更新解决:
当前新事实是否足以改变已有知识?
基本公式:
Kt+1=Update(Kt,ΔF)K_{t+1}=Update(K_t,\Delta F)
其中:
- KtK_t = 当前知识;
- ΔF\Delta F = 新的、经过验证的事实;
- Kt+1K_{t+1} = 更新后的知识。
但是:
ΔF\Delta F
不能是任意输入。
必须经过:
Evidence
→
Validation
→
Comparison
→
Verification
→
Update Candidate
之后才可以进入知识更新。
191.14 知识更新的最小变化原则
ICAI 必须遵循:
Minimal Knowledge Update Principle(知识最小更新原则)
即:
只有被实际证据证明发生变化的知识字段,才允许被修改。
例如:
K:
Product A
supports
Environment B
Condition: Temperature < 40
新证据只证明:
Condition:
Temperature < 50
那么系统只修改:
Condition
而不是重新创建整条知识。
因此:
ΔK=ChangedFields(Kt,Knew)\Delta K = ChangedFields(K_t,K_{new})
而不是:
Kt+1=Replace(Kt)K_{t+1}=Replace(K_t)
191.15 知识更新类型
KnowledgeEngine 可以定义:
Create
Modify
Verify
Invalidate
Expire
Conflict
Merge
Archive
NoChange
例如:
新知识
New Fact
→
Create
已有知识条件改变
New Evidence
→
Modify
原知识被证明错误
Evidence
→
Invalidate
超过有效时间
Time
→
Expire
两条知识互相冲突
Conflict
新旧知识内容相同
NoChange
191.16 知识更新验证
更新之前必须计算:
CanUpdate=Evidence∧Valid∧Verified∧ApplicableCanUpdate= Evidence \land Valid \land Verified \land Applicable
其中:
- Evidence = 有证据;
- Valid = 数据结构有效;
- Verified = 已验证;
- Applicable = 当前知识适用。
如果:
CanUpdate=FalseCanUpdate=False
则:
No Update
不能因为:
New Input
就自动修改知识。
191.17 知识更新与学习的区别
KnowledgeEngine 可以执行知识更新,但它并不等于 LearningEngine。
二者区别是:
KnowledgeEngine:
根据已经确认的事实修改知识。
LearningEngine:
管理学习过程,并根据结果、反馈、经验等更新未来认知基础。
因此:
KnowledgeUpdate≠LearningKnowledgeUpdate \neq Learning
例如:
新事实:
设备B最大温度为80℃
KnowledgeEngine 可以更新:
Device B
→
max_temperature
→
80℃
但是:
为什么过去的判断错误?
以及:
未来如何调整能力和方法?
属于 LearningService / LearningEngine 的职责。
191.18 KnowledgeEngine 与 MemoryEngine
Memory 保存的是过去有价值的信息。
Knowledge 表示结构化认知事实。
例如:
Memory:
某次设备运行过程中出现异常。
Knowledge:
设备B
在温度 > 80℃
时
可能进入异常状态。
Memory 是历史信息。
Knowledge 是结构化事实。
因此:
Memory→KnowledgeCandidateMemory\rightarrow KnowledgeCandidate
但:
Memory≠KnowledgeMemory\neq Knowledge
必须经过比较、验证和结构化计算。
191.19 KnowledgeEngine 与 ExperienceEngine
Experience 是过去行为和结果形成的结构化模式。
例如:
多次历史:
设备温度升高
→
性能下降
ExperienceEngine 可以形成经验模式。
KnowledgeEngine 则可以在有充分证据后形成:
Temperature > X
→
PerformanceRisk
因此:
Experience→KnowledgeCandidateExperience \rightarrow KnowledgeCandidate
但:
Experience≠KnowledgeExperience\neq Knowledge
经验必须经过验证才能成为稳定知识。
191.20 KnowledgeEngine 与 SceneEngine
第190章的 SceneEngine 建立当前场景。
SceneEngine 输出:
Objects
States
Relations
Conditions
Events
Scene
KnowledgeEngine 可以使用场景作为知识匹配上下文。
关系:
Scene→KnowledgeMatchingScene \rightarrow KnowledgeMatching
例如:
当前场景:
设备A = Active
温度 = 35℃
环境 = Normal
KnowledgeEngine 可以匹配:
设备A
+
Temperature < 40℃
+
Environment = Normal
→
Normal Operation
因此:
Scene 提供当前环境,Knowledge 提供认知依据。
191.21 KnowledgeEngine 与 CapabilityEngine
CapabilityEngine 判断:
当前个体是否具备某种能力。
KnowledgeEngine 可以提供:
Capability Requirement
例如:
Method A
requires
Capability B
这可以作为知识事实保存。
CapabilityEngine 再根据当前实际状态判断:
Capability B = Available
因此:
Knowledge→CapabilityCalculationKnowledge \rightarrow CapabilityCalculation
但:
KnowledgeEngine≠CapabilityEngineKnowledgeEngine\neq CapabilityEngine
191.22 KnowledgeEngine 与 MethodEngine
知识还可以描述方法适用条件。
例如:
Method A
适用于
Condition B
KnowledgeEngine 可以匹配:
Current Scene
+
Method Condition
得到:
Method A Applicable
然后 MethodEngine 再进一步计算方法结构。
因此:
KnowledgeEngine→MethodEngineKnowledgeEngine \rightarrow MethodEngine
191.23 KnowledgeEngine 与 DecisionEngine
DecisionEngine 不应该自己维护大量知识计算逻辑。
它可以调用 KnowledgeEngine:
Current Context
→
Knowledge Match
→
Knowledge Result
→
Candidate Evaluation
→
Decision
例如:
Candidate A
requires K1
Candidate B
requires K2
KnowledgeEngine 判断:
K1 = Valid
K2 = Invalid
DecisionEngine 才可以继续计算候选方案。
因此:
KnowledgeEngine→DecisionEngineKnowledgeEngine \rightarrow DecisionEngine
但:
KnowledgeEngine≠DecisionEngineKnowledgeEngine\neq DecisionEngine
191.24 PHP OOP 工程实现
KnowledgeEngine 应保持 PHP 5.6 / 7.0 兼容。
基础 Engine:
abstract class Engine
{
abstract public function calculate($input);
}
KnowledgeEngine:
class KnowledgeEngine extends Engine
{
public function calculate($input)
{
$knowledge = isset($input['knowledge'])
? $input['knowledge']
: array();
$facts = isset($input['facts'])
? $input['facts']
: array();
$rules = isset($input['rules'])
? $input['rules']
: array();
$match = $this->matchKnowledge(
$knowledge,
$facts
);
$calculation = $this->calculateKnowledge(
$knowledge,
$facts,
$rules
);
$update = $this->calculateUpdate(
$knowledge,
$facts,
$calculation
);
return new EngineResult(
true,
array(
'match' => $match,
'calculation' => $calculation,
'update' => $update
),
'knowledge_calculated'
);
}
protected function matchKnowledge($knowledge, $facts)
{
$result = array();
foreach ($knowledge as $k) {
foreach ($facts as $fact) {
if (
isset($k['subject']) &&
isset($fact['subject']) &&
$k['subject'] == $fact['subject']
) {
$result[] = array(
'knowledge_id' => $k['id'],
'fact_id' => $fact['id'],
'state' => 'matched'
);
}
}
}
return $result;
}
protected function calculateKnowledge(
$knowledge,
$facts,
$rules
) {
$results = array();
foreach ($rules as $rule) {
$results[] = $this->applyRule(
$rule,
$knowledge,
$facts
);
}
return $results;
}
protected function applyRule(
$rule,
$knowledge,
$facts
) {
return array(
'rule_id' => isset($rule['id'])
? $rule['id']
: null,
'state' => 'calculated'
);
}
protected function calculateUpdate(
$knowledge,
$facts,
$calculation
) {
return array(
'type' => 'candidate',
'verified' => false
);
}
}
这里特别要注意:
KnowledgeEngine
没有直接操作:
MySQL
也没有直接修改:
KnowledgeRepository
它只负责:
计算
匹配
更新候选
最终由 Service 层协调保存。
191.25 KnowledgeEngine 与 KnowledgeService
两者必须严格分工。
KnowledgeService:
接收请求
→
加载知识
→
准备 Context
→
调用 KnowledgeEngine
→
验证结果
→
保存知识
→
返回结果
KnowledgeEngine:
接收知识
→
计算
→
匹配
→
比较
→
产生更新候选
→
返回 EngineResult
因此:
KnowledgeService=OrchestrationKnowledgeService=Orchestration KnowledgeEngine=ComputationKnowledgeEngine=Computation
191.26 KnowledgeEngine 与 Repository
Repository 负责:
Create
Read
Update
Delete
KnowledgeEngine 负责:
Calculate
Match
Compare
UpdateCandidate
VerifyCandidate
完整结构:
Controller
↓
KnowledgeService
↓
KnowledgeEngine
↓
EngineResult
↓
VerificationService
↓
KnowledgeRepository
↓
MySQL
191.27 知识计算结果的可解释性
ICAI 的知识计算必须保留计算依据。
因此:
KnowledgeResult=Input+Rule+Condition+Calculation+Evidence+OutputKnowledgeResult= Input+ Rule+ Condition+ Calculation+ Evidence+ Output
例如:
Input:
A supports B
B supports C
Rule:
supports transitivity
Condition:
Transitive(supports) = true
Calculation:
supports(A,C)
Evidence:
K1 + K2
Output:
A supports C
任何一个结果都可以追溯:
结果
↓
计算
↓
规则
↓
条件
↓
输入事实
这使 ICAI 的知识系统具有可审计性。
191.28 知识计算错误
KnowledgeEngine 计算过程中可能出现:
Invalid Rule
Missing Subject
Missing Predicate
Missing Object
Invalid Condition
Conflicted Knowledge
Outdated Knowledge
Insufficient Evidence
Circular Dependency
Invalid Relation
例如:
A → supports → B
B → supports → A
如果系统又允许无限递推,则可能形成循环。
因此 KnowledgeEngine 必须具备:
Cycle Detection
和:
Maximum Derivation Depth
等确定性保护机制。
191.29 知识递推
知识递推必须基于明确规则。
例如:
K1∧K2→K3K_1 \land K_2\rightarrow K_3
然后:
K3∧K4→K5K_3\land K_4\rightarrow K_5
形成:
K1
+
K2
↓
K3
+
K4
↓
K5
这属于:
Symbolic Knowledge Recursion(符号知识递推)
它与大模型生成机制完全不同。
这里没有:
Token Prediction
Embedding
Vector Similarity
Neural Network
LLM Inference
而是:
Fact
+
Rule
+
Condition
→
Discrete Result
191.30 知识递推终止条件
知识计算不能无限运行。
可以设置:
Stop=NoNewKnowledge∨MaxDepth∨Conflict∨InvalidConditionStop= NoNewKnowledge \lor MaxDepth \lor Conflict \lor InvalidCondition
即满足以下任一条件时停止:
- 没有新的知识产生;
- 达到最大递推深度;
- 出现冲突;
- 条件失效。
例如:
K1 + K2 → K3
K3 + K4 → K5
K5 + K6 → K7
当:
K7
之后没有新规则可以应用时:
Stop
而不是继续进行无意义计算。
191.31 知识闭包
如果一个知识集合经过规则计算后,不再产生新的合法知识,可以定义为:
Knowledge Closure(知识闭包)
设初始知识集合:
K0K_0
经过计算:
K1,K2,⋯ ,KnK_1,K_2,\cdots,K_n
当:
Kn+1=KnK_{n+1}=K_n
即:
ΔK=0\Delta K=0
则达到知识计算稳定状态。
因此:
KnowledgeClosure:ΔK=0KnowledgeClosure: \Delta K=0
这可以用于确定一个知识上下文是否已经完成当前轮次计算。
191.32 知识更新后的验证
KnowledgeEngine 生成:
Update Candidate
不能直接认为:
Knowledge Updated
正确流程是:
New Fact
↓
Match
↓
Calculate
↓
Update Candidate
↓
Validate
↓
Verify
↓
Knowledge Update
因此:
CandidateUpdate≠ActualUpdateCandidateUpdate \neq ActualUpdate
只有验证成功后:
Kt→Kt+1K_t \rightarrow K_{t+1}
才成立。
191.33 知识历史
每次知识发生实际更新,都应该保留历史。
可以定义:
KH=(Kt,ΔK,Kt+1,E,R,T)KH=(K_t,\Delta K,K_{t+1},E,R,T)
其中:
- KtK_t = 更新前知识;
- ΔK\Delta K = 变化;
- Kt+1K_{t+1} = 更新后知识;
- EE = Evidence;
- RR = Reason;
- TT = Time。
这样能够回答:
这条知识为什么发生变化?
而不是只有:
当前值
没有:
变化原因
191.34 数据库结构
KnowledgeEngine 对应的数据库可以保持与第174章 KnowledgeService 的结构一致,并增加 Engine 计算记录。
核心:
knowledge
字段示例:
id
subject_id
predicate
object_id
object_value
condition
state
valid_from
valid_to
created_at
updated_at
知识证据:
knowledge_evidence
保存:
knowledge_id
source
evidence_type
evidence_value
verified
created_at
知识关系:
knowledge_relations
知识历史:
knowledge_history
保存:
knowledge_id
old_value
new_value
change_type
reason
evidence_id
created_at
计算记录:
knowledge_calculations
保存:
knowledge_id
rule_id
condition
calculation
result
state
created_at
这样可以实现:
Knowledge
↓
Calculation
↓
Matching
↓
Update Candidate
↓
Verification
↓
History
191.35 KnowledgeEngine 的完整工作流
完整流程可以表示为:
Load Knowledge
↓
Load Facts
↓
Load Conditions
↓
Load Rules
↓
Load Evidence
↓
Knowledge Matching
↓
Condition Evaluation
↓
Knowledge Calculation
↓
Derived Knowledge Candidate
↓
Compare Existing Knowledge
↓
Update Candidate
↓
Verification
↓
EngineResult
如果存在冲突:
Knowledge Conflict
↓
ConflictEngine
↓
Decision / Diagnosis
如果知识实际发生变化:
Knowledge Update
↓
Knowledge History
↓
Memory / Experience
↓
Learning
191.36 KnowledgeEngine 的完整闭环
KnowledgeEngine 并不是独立存在的。
它与 ICAI 其他 Engine 构成:
ObjectEngine
↓
StateEngine
↓
RelationEngine
↓
SceneEngine
↓
KnowledgeEngine
↓
CapabilityEngine
↓
MethodEngine
↓
DecisionEngine
其中:
ObjectEngine
提供对象事实。
StateEngine
提供状态事实。
RelationEngine
提供关系事实。
SceneEngine
提供场景上下文。
KnowledgeEngine
将这些事实与知识、规则和条件结合,计算新的知识事实。
因此:
Knowledge=f(Object,State,Relation,Scene,Condition,Rule)Knowledge= f(Object,State,Relation,Scene,Condition,Rule)
191.37 KnowledgeEngine 的核心原则
KnowledgeEngine 必须遵循以下原则。
第一,事实优先
没有实际事实,不能凭空建立知识。
第二,规则明确
知识计算必须有明确规则。
第三,条件有效
知识必须考虑适用条件。
第四,存在不等于有效
数据库存在的知识不代表当前有效。
第五,计算结果不等于验证结果
计算出的知识必须经过验证。
第六,最小更新
只修改被证据证明发生变化的部分。
第七,冲突显式化
发现冲突时输出 Conflict,而不是随机覆盖。
第八,历史可追溯
知识变化必须能够追踪来源和原因。
第九,计算可重复
相同输入、规则和条件应产生相同结果。
第十,不使用生成式大模型
KnowledgeEngine 不依赖 LLM、Transformer、Embedding、Vector Search、Prompt Engineering、Neural Network 或 LLM API。
191.38 KnowledgeEngine 在 ICAI 中的最终位置
经过 ObjectEngine、StateEngine、RelationEngine、SceneEngine 和 KnowledgeEngine,可以建立一条完整的基础认知计算链:
Object→State→Relation→Scene→KnowledgeObject \rightarrow State \rightarrow Relation \rightarrow Scene \rightarrow Knowledge
分别表示:
Object
是什么
State
现在是什么状态
Relation
与什么存在什么关系
Scene
当前整体环境是什么
Knowledge
根据事实和规则可以确定什么
因此 KnowledgeEngine 是从“环境事实”进入“认知事实”的关键 Engine。
它不是单纯的数据库查询器,也不是文本生成器,而是一个基于:
事实
+
规则
+
条件
+
关系
+
状态
+
证据
进行离散计算的知识计算系统。
191.39 知识计算、知识匹配、知识更新三者统一
最终可以把本章三项核心功能统一表示为:
KnowledgeEngine=Kcalc+Kmatch+KupdateKnowledgeEngine= K_{calc}+K_{match}+K_{update}
其中:
Kcalc=F(K,Facts,Rules,Conditions)K_{calc}=F(K,Facts,Rules,Conditions)
解决:
根据当前事实和规则能够计算出什么?
Kmatch=Match(K,Context,Condition)K_{match}=Match(K,Context,Condition)
解决:
当前事实、对象、状态和场景与哪些知识匹配?
Kupdate=Update(K,ΔF,Verification)K_{update}=Update(K,\Delta F,Verification)
解决:
哪些知识应该被新事实更新?
最终:
Knowledget→Match→Calculate→Compare→Verify→Update→Knowledget+1\boxed{ Knowledge_t \rightarrow Match \rightarrow Calculate \rightarrow Compare \rightarrow Verify \rightarrow Update \rightarrow Knowledge_{t+1} }
191.40 本章小结
KnowledgeEngine 是 ICAI Engine 层中负责“知识事实计算”的核心组件。
它建立在:
Object+State+Relation+SceneObject + State + Relation + Scene
之上,并进一步通过:
Knowledge+Rule+Condition+EvidenceKnowledge + Rule + Condition + Evidence
形成结构化知识计算。
其三个核心职责为:
KnowledgeCalculation+KnowledgeMatching+KnowledgeUpdate\boxed{ KnowledgeCalculation + KnowledgeMatching + KnowledgeUpdate }
知识计算负责根据事实、规则和条件推导结构化知识。
知识匹配负责判断当前事实与已有知识之间的对应关系、适用关系和冲突关系。
知识更新负责根据经过验证的新事实,对已有知识进行最小、可追溯、可验证的更新。
因此,ICAI 的知识系统不是:
输入
→
生成答案
而是:
事实
↓
结构化知识
↓
规则
↓
条件
↓
离散计算
↓
知识候选
↓
验证
↓
知识更新
最终形成:
Object→State→Relation→Scene→Knowledge→Capability→Method→Decision\boxed{ Object \rightarrow State \rightarrow Relation \rightarrow Scene \rightarrow Knowledge \rightarrow Capability \rightarrow Method \rightarrow Decision }
这条链路使 ICAI 能够在不依赖大模型、神经网络和生成式模型的情况下,通过明确对象、明确关系、明确状态、明确条件、明确规则和明确证据建立可计算、可匹配、可验证、可更新的知识体系。
KnowledgeEngine 的最终定位可以概括为:
KnowledgeEngine=计算知识+匹配知识+验证知识+更新知识\boxed{ KnowledgeEngine = 计算知识 + 匹配知识 + 验证知识 + 更新知识 }
而其最核心的工程原则是:
Knowledget+1=Knowledget+Verified Fact\boxed{ Knowledge_{t+1} = Knowledge_t + Verified\ Fact }
只有被实际事实和验证过程支持的变化,才能进入新的知识状态。