第174章 KnowledgeService
174.1 提出背景
在前面的ICAI对象体系中,Individual可以拥有Object、Attribute、Relation、Memory、Experience等认知对象。
但是,仅仅拥有这些对象,还不能形成真正可以参与认知计算的Knowledge。
例如系统中已经存在:
Object A = Robot
Object B = Arm
Relation = Robot contains Arm
Attribute = Arm length 50cm
State = Arm Ready
这些信息分别存在于不同的对象中。
如果系统需要回答:
Robot是否具有可使用的Arm?
Arm是否处于可工作状态?
该Arm是否满足当前任务要求?
系统就需要将已有的Object、Attribute、Relation、State、Memory、Experience等信息组织起来,形成可以读取、计算和验证的Knowledge。
因此:
Knowledge≠MemoryKnowledge \neq Memory
也不等于:
Knowledge≠ExperienceKnowledge \neq Experience
Knowledge是经过结构化组织、具有明确语义和关系、能够参与规则计算的认知对象。
由此建立:
KnowledgeService(知识服务)
负责Knowledge的应用层生命周期管理:
知识读取
↓
知识计算
↓
知识更新
↓
知识验证
其核心目标不是简单保存知识,而是使知识能够进入ICAI的实际认知过程。
174.2 Knowledge定义
Knowledge(知识) 是由Object、Attribute、Relation、State、Fact、Rule以及其他认知对象按照确定结构组织形成的可解释认知信息。
基础知识结构可以表示为:
K=(S,P,O,C,St)K=(S,P,O,C,S_t)
其中:
- SS:Subject,主体;
- PP:Predicate,谓词或关系;
- OO:Object,客体;
- CC:Condition,成立条件;
- StS_t:Knowledge State,知识状态。
例如:
Robot-001
contains
Arm-001
可以形成:
K1=(Robot-001,contains,Arm-001)K_1=(Robot\text{-}001,contains,Arm\text{-}001)
进一步加入条件:
Robot-001 contains Arm-001
when Arm-001 is active
形成:
K2=(Robot-001,contains,Arm-001,ArmState=Active)K_2=(Robot\text{-}001,contains,Arm\text{-}001,ArmState=Active)
因此Knowledge不是单纯的一句话,而是具有结构的认知对象。
174.3 KnowledgeService定义
KnowledgeService是负责知识读取、知识计算、知识更新和知识验证的应用服务。
基本模型:
KS=(R,C,U,V)KS=(R,C,U,V)
其中:
- RR:Read,知识读取;
- CC:Calculate,知识计算;
- UU:Update,知识更新;
- VV:Verify,知识验证。
完整流程:
Knowledge Source
↓
Knowledge Read
↓
Knowledge Structure
↓
Knowledge Calculation
↓
Knowledge Result
↓
Knowledge Update
↓
Knowledge Verification
因此KnowledgeService不是单纯的CRUD Service。
与ObjectService不同:
ObjectService≈CRUDObjectService \approx CRUD
而:
KnowledgeService=Read+Calculate+Update+VerifyKnowledgeService = Read + Calculate + Update + Verify
其中Knowledge的核心价值集中在:
计算
+
验证
174.4 Knowledge与Object的关系
Object是具体存在的领域对象。
例如:
Robot-001
Arm-001
Sensor-001
Knowledge描述这些对象及其关系、属性和状态所形成的结构化事实。
因此:
Object→Relation→KnowledgeObject \rightarrow Relation \rightarrow Knowledge
例如:
Robot-001
↓
contains
↓
Arm-001
可以形成:
Knowledge:
Robot-001 contains Arm-001
因此:
Knowledge=Object+Attribute+Relation+State+FactKnowledge = Object + Attribute + Relation + State + Fact
但这不是说Knowledge等于这些对象的简单集合,而是这些对象经过规则组织后形成的认知结构。
174.5 Knowledge与Relation
第173章建立了RelationService。
Relation回答:
两个Object之间是什么关系?
Knowledge进一步回答:
这些Object、Relation、Attribute和State组合后代表什么可计算事实?
例如:
Robot
↓
contains
↓
Arm
Relation本身:
R=(Robot,contains,Arm)R=(Robot,contains,Arm)
Knowledge可以进一步组织:
K={Robot,Arm,contains,ArmState,ArmCapability}K= \{ Robot, Arm, contains, ArmState, ArmCapability \}
于是:
Relation
↓
Knowledge Structure
↓
Knowledge Calculation
Relation是Knowledge的重要结构基础。
174.6 Knowledge与Memory
Memory主要解决:
过去保存了什么信息?
Knowledge主要解决:
当前系统掌握什么结构化事实和规则?
例如Memory:
昨天Robot使用Arm完成任务
这是历史信息。
Knowledge:
Robot has Arm
Arm supports Move
Arm State = Ready
这是当前可参与认知计算的结构化知识。
因此:
Memory≠KnowledgeMemory \neq Knowledge
但:
Memory→KnowledgeMemory \rightarrow Knowledge
Memory中的历史事实经过整理、验证和结构化后,可以形成Knowledge。
174.7 Knowledge与Experience
Experience表示从过去执行过程中形成的结构化经验模式。
例如:
使用Method-A
+
Condition-X
+
Result-Success
形成Experience。
Knowledge则可以表达:
Method-A
requires
Capability-B
因此:
Experience→KnowledgeExperience \rightarrow Knowledge
同时:
Knowledge→DecisionKnowledge \rightarrow Decision
经验可以为知识提供来源,而知识可以参与后续决策。
二者职责不同:
Memory
↓
过去发生了什么
Experience
↓
过去形成了什么经验模式
Knowledge
↓
当前掌握什么结构化事实与规则
174.8 知识读取
174.8.1 定义
知识读取(Knowledge Read) 是从Knowledge Repository或Runtime Knowledge Space中取得当前有效知识的过程。
基本模型:
Read(Kid)→KRead(K_{id}) \rightarrow K
例如:
$knowledge =
$knowledgeService->get(
$knowledgeId
);
读取不是简单的数据库SELECT。
读取之后必须恢复Knowledge对象的完整结构:
Knowledge
├── Subject
├── Predicate
├── Object
├── Condition
├── State
├── Relations
└── Evidence
174.9 按对象读取知识
可以根据Object读取相关Knowledge:
$knowledge =
$knowledgeService->getByObject(
$objectId
);
例如:
Robot-001
↓
Knowledge
├── contains Arm
├── has Sensor
├── state Ready
└── capability Move
形成:
K(O)={K1,K2,…,Kn}K(O)=\{K_1,K_2,\ldots,K_n\}
即:
与Object相关的Knowledge集合。
174.10 按关系读取知识
也可以根据Relation读取相关Knowledge。
例如:
Robot
contains
Arm
系统可以读取:
contains关系
+
Robot信息
+
Arm信息
+
双方State
+
相关Attribute
从而构成完整Knowledge Context。
因此:
K(R)=R+O1+O2+A+SK(R)= R + O_1 + O_2 + A + S
这样知识读取就不再是单一记录读取,而是上下文结构读取。
174.11 知识上下文
Knowledge计算不能脱离Context。
可以定义:
Context=Object+State+Relation+Time+ConditionContext= Object + State + Relation + Time + Condition
例如同一个Object:
Arm
在:
State = Ready
与:
State = Failed
情况下,对同一问题可能产生完全不同的知识计算结果。
因此:
Knowledget≠Knowledget+1Knowledge_t \neq Knowledge_{t+1}
当Object State、Relation或Condition发生变化时,Knowledge也可能发生变化。
174.12 知识计算
174.12.1 定义
知识计算(Knowledge Calculation) 是根据已有Knowledge、Object、Relation、State、Condition和Rule,对当前知识状态进行确定性推导和计算的过程。
基本模型:
CK=(K,C,R)C_K=(K,C,R)
其中:
- KK:已有Knowledge;
- CC:当前Condition;
- RR:Rule;
- CKC_K:Knowledge Calculation Result。
即:
(K,C,R)→Result(K,C,R) \rightarrow Result
174.13 知识计算不是生成内容
ICAI中的Knowledge Calculation不依赖大模型。
它不使用:
LLM
Transformer
Embedding
Vector Search
Prompt Engineering
Neural Network
LLM API
知识计算使用:
Object
+
Attribute
+
Relation
+
State
+
Rule
+
Condition
+
Discrete Calculation
例如:
Robot State = Ready
Arm State = Ready
Arm Capability = Move
Task Requirement = Move
通过规则:
Ready∧Ready∧Capability(Move)∧Requirement(Move)Ready \land Ready \land Capability(Move) \land Requirement(Move)
得到:
KnowledgeMatch=TrueKnowledgeMatch=True
这是确定性的符号计算。
174.14 知识推导
知识计算可以形成新的Knowledge。
例如已有:
K1=(Robot,has,Arm)K_1=(Robot,has,Arm)
以及:
K2=(Arm,supports,Move)K_2=(Arm,supports,Move)
规则:
has(x,y)∧supports(y,z)→supports(x,z)has(x,y) \land supports(y,z) \rightarrow supports(x,z)
则可以得到:
K3=(Robot,supports,Move)K_3=(Robot,supports,Move)
这里并不是生成一段文本,而是:
已有Knowledge
↓
Rule
↓
Logical Calculation
↓
New Knowledge
这就是ICAI中的知识推导。
174.15 知识计算的基本类型
KnowledgeService可以处理多种离散计算。
事实匹配
A = B ?
条件判断
Condition → True / False
属性计算
Value1 + Value2
关系推导
A → B
B → C
因此A → C
状态判断
State + Condition
→
State Result
能力判断
Capability
+
Requirement
→
Match / Not Match
方法适配判断
Method
+
Capability
+
Condition
→
Available / Unavailable
这些都属于离散、可解释的知识计算。
174.16 知识计算流程
完整流程:
Knowledge Read
↓
Context Load
↓
Rule Load
↓
Condition Evaluation
↓
Knowledge Calculation
↓
Calculation Result
↓
Comparison
↓
Candidate Knowledge
例如:
读取Robot
↓
读取Arm
↓
读取contains关系
↓
读取Arm State
↓
读取Capability
↓
读取Task Requirement
↓
规则计算
↓
得到Capability Match
174.17 知识更新
174.17.1 定义
知识更新(Knowledge Update) 是根据新的事实、状态、关系、验证结果或计算结果,对现有Knowledge进行新增、修改、失效或修正的过程。
基本模型:
Kt+ΔF→Kt+1K_t + \Delta F \rightarrow K_{t+1}
其中:
- KtK_t:当前Knowledge;
- ΔF\Delta F:新的Fact变化;
- Kt+1K_{t+1}:更新后的Knowledge。
174.18 知识更新来源
Knowledge更新不能无条件发生。
主要来源包括:
Object Update
Relation Update
State Change
Execution Result
Feedback
Memory
Experience
Verification
例如:
Arm State
Ready
↓
Execution
↓
Failure
↓
Feedback
↓
State = Failed
↓
Knowledge Update
最终:
Knowledge:
Arm State = Failed
旧Knowledge不再有效。
174.19 知识状态
Knowledge本身也应该具有State。
例如:
candidate
valid
invalid
outdated
verified
unverified
conflicted
archived
这样系统可以区分:
Knowledge存在
与:
Knowledge有效
二者不是同一个概念。
因此:
Exists(K)≠Valid(K)Exists(K) \neq Valid(K)
174.20 知识更新与历史保留
Knowledge更新不能简单覆盖所有旧值。
例如:
Arm State = Ready
后来变成:
Arm State = Failed
系统应该能够保留:
Old Knowledge
+
New Knowledge
+
Change Time
+
Change Reason
因此:
KnowledgeUpdate→KnowledgeHistoryKnowledgeUpdate \rightarrow KnowledgeHistory
这样可以追踪:
为什么改变?
什么时候改变?
由什么事实导致?
经过什么验证?
174.21 知识验证
174.21.1 定义
知识验证(Knowledge Verification) 是检查Knowledge是否具有事实依据、结构完整性、规则一致性和当前有效性的过程。
基本模型:
V(K)=F∧S∧C∧EV(K)= F \land S \land C \land E
其中:
- FF:Fact Evidence,事实依据;
- SS:Structure,结构完整;
- CC:Consistency,一致性;
- EE:Current Validity,当前有效性。
最终:
V(K)→Valid/InvalidV(K)\rightarrow Valid/Invalid
174.22 知识验证的四个基本维度
事实验证
检查Knowledge是否存在事实来源。
例如:
Robot contains Arm
必须能够找到:
Robot Object
Arm Object
contains Relation
否则知识缺乏结构依据。
结构验证
检查:
Subject
Predicate
Object
是否完整。
例如:
Robot
contains
?
缺少Target Object,则结构不完整。
一致性验证
检查Knowledge之间是否冲突。
例如:
A located_in B
同时:
A located_in C
如果规则规定A不能同时处于B和C,则产生Knowledge Conflict。
当前有效性验证
检查Knowledge是否已经过时。
例如:
Arm State = Ready
但最新事实:
Arm State = Failed
则:
Valid(Kold)=FalseValid(K_{old})=False
旧Knowledge必须失效或更新。
174.23 Knowledge验证流程
Knowledge
↓
Load Evidence
↓
Structure Check
↓
Fact Check
↓
Consistency Check
↓
Current State Check
↓
Verification Result
↓
Knowledge State Update
例如:
Knowledge:
Robot has Arm
↓
检查Robot是否存在
↓
检查Arm是否存在
↓
检查contains Relation
↓
检查Relation State
↓
检查是否存在冲突
↓
Verified
174.24 Knowledge验证与Verification对象
前面已经建立Verification。
因此Knowledge验证不应该重新定义一套完全独立的Verification机制。
可以:
KnowledgeService
↓
VerificationService
↓
Verification
KnowledgeService负责组织:
验证什么
什么时候验证
为什么验证
Verification负责记录:
Verification Result
Evidence
Time
Rule
Status
从而保持系统结构统一。
174.25 KnowledgeService与KnowledgeEngine
KnowledgeService负责应用流程。
KnowledgeEngine负责知识计算。
结构:
KnowledgeService
↓
KnowledgeEngine
↓
Rule
↓
Calculation
例如:
$result =
$this->engine->calculate(
$knowledge,
$context
);
Engine负责:
事实匹配
关系推导
条件计算
规则判断
状态判断
一致性计算
Service负责:
读取
组织Context
调用Engine
保存Result
更新Knowledge
触发Verification
因此:
Service≠EngineService\neq Engine
174.26 KnowledgeService与Repository
Knowledge的持久化由KnowledgeRepository负责。
基本结构:
KnowledgeService
↓
KnowledgeRepository
↓
MySQL
Repository可以提供:
find($id)
findByObject($objectId)
findByRelation($relationId)
findByType($type)
findValid($objectId)
save($knowledge)
update($knowledge)
delete($id)
Service不直接负责SQL。
174.27 KnowledgeService PHP结构
可以建立:
class KnowledgeService
{
protected $repository;
protected $engine;
protected $verificationService;
public function __construct(
$repository,
$engine,
$verificationService
) {
$this->repository =
$repository;
$this->engine =
$engine;
$this->verificationService =
$verificationService;
}
public function get($id)
{
return $this->repository->find(
$id
);
}
public function getByObject(
$objectId
) {
return $this->repository
->findByObject(
$objectId
);
}
public function calculate(
$knowledge,
$context
) {
return $this->engine->calculate(
$knowledge,
$context
);
}
public function update(
$knowledge
) {
return $this->repository->save(
$knowledge
);
}
public function verify(
$knowledge
) {
return $this->verificationService
->verify(
$knowledge
);
}
}
这里形成清晰的四个核心入口:
get()
calculate()
update()
verify()
174.28 Knowledge数据结构
数据库可以建立:
knowledge
id
type
subject_id
predicate
object_id
condition
state
source
confidence
created_at
updated_at
其中:
subject_id
predicate
object_id
构成知识的基础结构。
如果Knowledge不是简单二元结构,还可以增加:
knowledge_conditions
knowledge_attributes
knowledge_evidence
knowledge_relations
knowledge_history
从而支持复杂知识结构。
174.29 Knowledge Evidence
Knowledge验证需要Evidence。
可以定义:
Evidence=(Source,Type,Value,Time)Evidence=(Source,Type,Value,Time)
例如:
Source = Object
Type = Relation
Value = Robot contains Arm
Time = 2026-09-10
或者:
Source = Execution
Type = Result
Value = Move Success
Time = 2026-09-10
因此:
Knowledge→EvidenceKnowledge \rightarrow Evidence
验证时:
K+Evidence→VerificationK + Evidence \rightarrow Verification
174.30 Knowledge计算结果
知识计算应该产生明确Result,而不是模糊结论。
例如:
CalculationResult
{
rule: "capability_match",
subject: Robot-001,
requirement: Move,
result: true
}
形式化:
CR=(K,R,C,O,S)CR=(K,R,C,O,S)
其中:
- KK:参与计算的Knowledge;
- RR:使用的Rule;
- CC:Condition;
- OO:Output;
- SS:Calculation State。
这样每一次计算都具有可追踪性。
174.31 知识计算与Decision
Knowledge本身不负责Decision。
Knowledge提供:
Facts
Relations
States
Rules
Calculation Results
Decision负责:
Candidate
+
Condition
+
Comparison
+
Selection
因此:
Knowledge
↓
Knowledge Calculation
↓
Decision Evidence
↓
Decision
例如:
Knowledge:
Method-A requires Capability-X
Knowledge:
Individual has Capability-X
Knowledge Calculation:
Method-A is Available
Decision:
Select Method-A
这样可以保持:
Knowledge≠DecisionKnowledge \neq Decision
174.32 Knowledge计算与Capability
CapabilityService后续可以利用Knowledge。
例如:
Knowledge:
Robot has Arm
Knowledge:
Arm supports Move
Knowledge:
Arm state = Ready
计算:
HasCapability(Robot,Move)=TrueHasCapability(Robot,Move)=True
然后形成Capability状态:
Capability Move
State = Available
因此:
Knowledge→CapabilityKnowledge \rightarrow Capability
Knowledge为Capability判断提供事实基础。
174.33 Knowledge计算与Method
Method需要知道:
Required Capability
Required Condition
Required Object
Knowledge可以计算:
当前条件是否满足
例如:
Knowledge+MethodCondition→MethodAvailableKnowledge + MethodCondition \rightarrow MethodAvailable
因此:
Knowledge
↓
Method Condition Evaluation
↓
Method Availability
174.34 Knowledge与Risk
Risk计算也可以使用Knowledge。
例如:
Knowledge:
Sensor State = Failed
Risk Rule:
Sensor Failed
→
Movement Risk
得到:
RiskDetected=TrueRiskDetected=True
因此:
Knowledge→RiskKnowledge \rightarrow Risk
RiskEngine使用Knowledge作为事实依据,而不是凭空预测。
174.35 Knowledge与Diagnosis
Diagnosis同样需要Knowledge。
例如:
Result = Failed
系统进一步读取:
Knowledge:
Sensor State = Failed
Knowledge:
Sensor supports Movement
Knowledge:
Movement requires Sensor
可以推导:
Possible Cause:
Sensor Failure
因此:
Knowledge+Result+History→DiagnosisKnowledge + Result + History \rightarrow Diagnosis
174.36 Knowledge的完整生命周期
Knowledge可以形成:
Created
↓
Loaded
↓
Calculated
↓
Candidate
↓
Verified
↓
Valid
↓
Updated
↓
Re-verified
↓
Invalid / Archived
如果验证失败:
Calculated
↓
Verification Failed
↓
Invalid
如果外部事实改变:
Valid
↓
Fact Changed
↓
Outdated
↓
Update
↓
Re-verify
因此Knowledge不是永久不变的静态数据。
174.37 KnowledgeService完整流程
综合本章四项核心职责:
Knowledge Read
↓
Context Build
↓
Knowledge Calculate
↓
Calculation Result
↓
Knowledge Update
↓
Knowledge Verify
↓
Valid Knowledge
↓
Decision / Capability / Method / Risk / Diagnosis
可以形式化为:
Kt+1=Verify(Update(Calculate(Read(Kt))))K_{t+1} = Verify( Update( Calculate( Read(K_t) )))
其中:
- Read(Kt)Read(K_t):读取当前Knowledge;
- CalculateCalculate:根据规则进行知识计算;
- UpdateUpdate:更新Knowledge;
- VerifyVerify:验证更新后的Knowledge;
- Kt+1K_{t+1}:新的知识状态。
174.38 KnowledgeService整体架构
最终Service层形成:
Controller
↓
KnowledgeService
├── KnowledgeEngine
├── VerificationService
└── KnowledgeRepository
↓
MySQL
领域对象:
Knowledge
├── Subject
├── Predicate
├── Object
├── Condition
├── State
├── Evidence
└── Relations
外部依赖:
ObjectService
RelationService
StateService
Memory
Experience
Verification
形成:
Object
↓
Relation
↓
Knowledge
↓
KnowledgeEngine
↓
Calculation
↓
Verification
↓
Knowledge Update
174.39 KnowledgeService与ICAI整体认知链
经过前面的Individual、Object、Relation以及本章KnowledgeService,ICAI对象体系进一步形成:
Individual
↓
Object
↓
Attribute
↓
State
↓
Relation
↓
Knowledge
↓
Capability
↓
Method
↓
Decision
↓
Behavior
↓
Action
↓
Execution
↓
Result
↓
Feedback
↓
Memory
↓
Experience
其中Knowledge位于:
Object / Relation
↓
Knowledge
↓
Capability / Method / Decision
它承担的是:
把离散对象、属性、状态、关系、事实和规则组织成能够参与认知计算的结构化知识。
174.40 本章核心原则
第一,Knowledge不是普通数据
Knowledge≠DataKnowledge\neq Data
Knowledge必须具有结构、语义、关系和计算意义。
第二,Knowledge不是Memory
Knowledge≠MemoryKnowledge\neq Memory
Memory保存过去可检索的信息,Knowledge表示经过结构化组织的认知事实与规则。
第三,Knowledge不是Experience
Knowledge≠ExperienceKnowledge\neq Experience
Experience描述从历史执行中形成的经验模式。
第四,Knowledge不是Decision
Knowledge≠DecisionKnowledge\neq Decision
Knowledge提供事实和计算结果,Decision负责候选方案选择。
第五,Knowledge计算必须可解释
Input Knowledge
+
Rule
+
Condition
→
Calculation Result
每一个结果都应该能够追溯到参与计算的事实和规则。
第六,Knowledge必须验证
Knowledge Created
↓
Calculation
↓
Verification
↓
Valid / Invalid
存在的Knowledge不一定是有效Knowledge。
第七,Knowledge更新必须具有事实依据
Fact Change
+
State Change
+
Relation Change
+
Verification
才能形成:
Kt→Kt+1K_t\rightarrow K_{t+1}
第八,KnowledgeService不承担所有知识逻辑
职责应该保持:
KnowledgeService
= 流程协调
KnowledgeEngine
= 规则与计算
Knowledge
= 领域对象
KnowledgeRepository
= 持久化
VerificationService
= 验证
174.41 本章小结
第174章将Knowledge从ICAI理论中的认知概念进一步落实到Service层。
Knowledge基础模型:
K=(S,P,O,C,St)K=(S,P,O,C,S_t)
KnowledgeService核心模型:
KnowledgeService=Read+Calculate+Update+Verify\boxed{ KnowledgeService = Read + Calculate + Update + Verify }
其中:
Read
→ 读取当前知识
Calculate
→ 根据事实、条件和规则进行确定性计算
Update
→ 根据新事实、状态、关系和计算结果更新知识
Verify
→ 检查知识的事实依据、结构、一致性和当前有效性
完整工程链:
KnowledgeService→KnowledgeEngine→Knowledge→VerificationService→KnowledgeRepository\boxed{ KnowledgeService \rightarrow KnowledgeEngine \rightarrow Knowledge \rightarrow VerificationService \rightarrow KnowledgeRepository }
更完整的认知链:
Object+Attribute+Relation+State→Knowledge→Calculation→Verification→Update\boxed{ Object + Attribute + Relation + State \rightarrow Knowledge \rightarrow Calculation \rightarrow Verification \rightarrow Update }
最终,Knowledge在ICAI中不再只是数据库中的一条记录,而成为连接 Object、Relation、State、Capability、Method、Decision、Memory、Experience 的核心认知结构。
其本质可以归纳为:
Knowledge=Structured Facts+Relations+Conditions+Rules+Verification\boxed{ Knowledge = Structured\ Facts + Relations + Conditions + Rules + Verification }
而KnowledgeService的核心职责,就是让这些知识能够被读取、计算、更新和验证,从而真正进入ICAI的离散认知计算体系。