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

第191章 KnowledgeEngine

第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

即满足以下任一条件时停止:

  1. 没有新的知识产生;
  2. 达到最大递推深度;
  3. 出现冲突;
  4. 条件失效。

例如:

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 }

只有被实际事实和验证过程支持的变化,才能进入新的知识状态。

Leave a Reply

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