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

第220章 GoalCapabilityRepository

第220章 GoalCapabilityRepository

220.1 GoalCapabilityRepository定义

在前面的 Repository 体系中,已经建立:

IndividualRepository
ObjectRepository
StateRepository
RelationRepository
KnowledgeRepository

这些 Repository 分别负责 Individual、Object、State、Relation、Knowledge 的持久化。

在 ICAI 的认知过程继续向上运行时,需要解决一个直接关系:

Goal
  ↓
需要什么能力?
  ↓
Capability
  ↓
是否匹配?
  ↓
当前是否可用?
  ↓
Method

因此,本章建立:

GoalCapabilityRepositoryGoalCapabilityRepository

GoalCapabilityRepository 并不是把 Goal 和 Capability 合并成为一个 Domain Object,而是建立一个面向目标—能力关联数据的 Repository 协作边界

其核心模型:

GCR=(G,C,M,S,Q,P,T)GCR=(G,C,M,S,Q,P,T)

其中:

  • GG:Goal,目标;
  • CC:Capability,能力;
  • MM:Matching,目标与能力之间的匹配数据;
  • SS:State,目标和能力的状态;
  • QQ:Query,查询;
  • PP:Persistence,持久化;
  • TT:Time,时间。

因此:

GoalCapabilityRepository=Goal+Capability+Matching+State Persistence\boxed{ GoalCapabilityRepository = Goal + Capability + Matching + State\ Persistence }

但必须特别强调:

GoalCapabilityRepository≠GoalCapability\boxed{ GoalCapabilityRepository \neq GoalCapability }

它不是创造一个新的“目标能力对象”,而是负责围绕 Goal、Capability、Matching、State 建立持久化查询和关联。


220.2 Goal与Capability的基本关系

Goal 在第175章已经定义:

G=(ID,N,T,C,P,S)G=(ID,N,T,C,P,S)

其中:

  • IDID:Goal ID;
  • NN:Goal Name;
  • TT:Goal Type;
  • CC:Goal Condition;
  • PP:Priority;
  • SS:Goal State。

Capability 在第159章和第193章已经定义:

C=(T,Co,S,R,V)C=(T,Co,S,R,V)

其中:

  • TT:Capability Type;
  • CoCo:Capability Condition;
  • SS:Capability State;
  • RR:Capability Range;
  • VV:Verification。

目标提出:

我要达到什么结果?

能力回答:

我能够完成什么?

因此:

Goal≠CapabilityGoal\neq Capability

二者之间需要通过 MatchingEngine 建立计算关系:

Match(G,C,Context)→MMatch(G,C,Context)\rightarrow M


220.3 GoalCapabilityRepository的职责

本 Repository 协作体系主要处理四类数据:

目标
能力
目标—能力匹配记录
目标—能力相关状态

因此可以形成:

Goal
  ↓
GoalRepository

Capability
  ↓
CapabilityRepository

Goal + Capability
  ↓
MatchingEngine
  ↓
Match Result
  ↓
GoalCapabilityRepository

Repository 主要负责:

第一,目标读取

Goal Load
Goal Query
Goal State Read

第二,能力读取

Capability Load
Capability Query
Capability State Read

第三,匹配记录保存与查询

Goal
 ↓
Capability
 ↓
Match Result

第四,状态相关数据读取

Goal State
Capability State
Match State

220.4 Repository不是匹配计算器

这一点必须明确。

GoalCapabilityRepository 可以保存:

Goal G1
Capability C1
Match M1

但是:

G1 是否真的适合 C1?

不是 Repository 判断。

真正的计算:

Match(G,C,Context)→MMatch(G,C,Context) \rightarrow M

由 MatchingEngine 完成。

因此:

Repository=保存和查询\boxed{ Repository=保存和查询 } MatchingEngine=匹配计算\boxed{ MatchingEngine=匹配计算 }


220.5 Goal与Capability的匹配模型

目标能力匹配可以定义:

Mgc=(G,C,O,S,Co,R,V,T)M_{gc}= (G,C,O,S,Co,R,V,T)

其中:

  • GG:Goal;
  • CC:Capability;
  • OO:适用对象;
  • SS:当前状态;
  • CoCo:条件;
  • RR:能力范围;
  • VV:验证状态;
  • TT:匹配时间。

基本匹配过程:

Goal
 ↓
Required Capability
 ↓
Load Capability
 ↓
Object Check
 ↓
Condition Check
 ↓
State Check
 ↓
Range Check
 ↓
Verification Check
 ↓
Match Result

220.6 Goal到Capability的查询

Repository 可以根据 Goal 查询候选 Capability。

例如:

QueryCapabilities(G)→{C1,C2,…,Cn}QueryCapabilities(G) \rightarrow \{C_1,C_2,\ldots,C_n\}

但这里的“候选”只是持久化层面的候选集合。

它不代表:

Ci=MatchedC_i=Matched

完整流程:

Goal
 ↓
GoalCapabilityRepository
 ↓
Capability Candidates
 ↓
MatchingEngine
 ↓
Matching Result

220.7 Capability到Goal的反向查询

同样可以根据 Capability 查询它可能服务的 Goal:

QueryGoals(C)→{G1,G2,…,Gn}QueryGoals(C) \rightarrow \{G_1,G_2,\ldots,G_n\}

例如:

Capability:
process_object

↓
Goals:
process_object
inspect_object
transform_object

但是最终适用关系仍需要 MatchingEngine 计算。


220.8 Goal状态

Goal 本身具有生命周期状态:

created
pending
active
paused
blocked
completed
failed
cancelled
expired

因此:

SG∈{created,pending,active,paused,blocked,completed,failed,cancelled,expired}S_G\in \{ created, pending, active, paused, blocked, completed, failed, cancelled, expired \}

GoalCapabilityRepository 可以保存和查询 Goal 当前状态。

但状态转换:

SGt→SGt+1S_{G_t}\rightarrow S_{G_{t+1}}

应由 StateEngine / UpdateEngine 计算和应用。


220.9 Capability状态

Capability 同样具有状态。

例如:

available
unavailable
blocked
expired
verified
unverified

能力可用性不能简单等同于能力存在。

因此:

CapabilityExists≠CapabilityAvailableCapabilityExists \neq CapabilityAvailable

进一步:

CapabilityAvailable≠CapabilityVerifiedCapabilityAvailable \neq CapabilityVerified

前面 CapabilityEngine 已经定义:

CapabilityAvailable=T∧Co∧S∧RCapabilityAvailable = T\land Co\land S\land R

验证后的能力:

CapabilityVerified=T∧Co∧S∧R∧VCapabilityVerified = T\land Co\land S\land R\land V

GoalCapabilityRepository 保存这些状态事实,但不计算它们。


220.10 Goal与Capability状态共同作用

目标是否能够推进,需要同时考虑:

GoalStateGoalState

和:

CapabilityStateCapabilityState

例如:

Goal = active
Capability = available

可能允许继续匹配。

如果:

Goal = active
Capability = blocked

则:

Match(G,C)=BlockedMatch(G,C)=Blocked

如果:

Goal = completed
Capability = available

则当前 Goal 已经不需要继续执行。

因此匹配结果需要保留状态原因。


220.11 匹配结果不是Boolean

不能只保存:

matched = 1

更完整的 Match Result:

M=(ID,G,C,S,Score,Reason,Ev,T)M= (ID,G,C,S,Score,Reason,Ev,T)

其中:

  • IDID:匹配记录 ID;
  • GG:Goal ID;
  • CC:Capability ID;
  • SS:Match State;
  • ScoreScore:匹配计算结果;
  • ReasonReason:原因;
  • EvEv:Evidence;
  • TT:时间。

匹配状态可以包括:

matched
partial
unmatched
unknown
blocked
conflicted
expired
invalid

220.12 GoalCapability匹配计算

一个基础匹配条件可以定义为:

Matchable=Gv∧Cv∧Ov∧Sv∧Cov∧Rv∧VvMatchable = G_v \land C_v \land O_v \land S_v \land Co_v \land R_v \land V_v

其中:

  • GvG_v:Goal 有效;
  • CvC_v:Capability 有效;
  • OvO_v:对象匹配;
  • SvS_v:状态允许;
  • CovCo_v:条件满足;
  • RvR_v:能力范围满足;
  • VvV_v:验证条件满足。

如果所有条件满足:

Matchable=1Matchable=1

否则需要进一步分类原因。


220.13 匹配查询与匹配计算的区别

Repository 可以查询:

Goal G1
Capability C1

但 MatchingEngine 才能计算:

G1 ↔ C1 = matched

因此:

Query(G,C)≠Match(G,C)Query(G,C) \neq Match(G,C)

这是 ICAI Repository 与 Engine 分层的重要原则。


220.14 GoalCapabilityRepository接口

可以设计:

<?php

interface GoalCapabilityRepositoryInterface
{
    public function findGoalById($goalId);

    public function findCapabilityById($capabilityId);

    public function findCapabilitiesByGoalId($goalId);

    public function findGoalsByCapabilityId($capabilityId);

    public function findMatchesByGoalId($goalId);

    public function findMatchesByCapabilityId($capabilityId);

    public function findMatch(
        $goalId,
        $capabilityId
    );

    public function saveMatch($match);

    public function updateMatch($match);

    public function findGoalState($goalId);

    public function findCapabilityState($capabilityId);
}

这里的 Goal 和 Capability 实体本身仍然可以由:

GoalRepository
CapabilityRepository

负责持久化。

GoalCapabilityRepository 主要承担二者之间的关联查询和匹配结果持久化。


220.15 GoalCapabilityMapper

匹配数据需要独立 Mapper。

class GoalCapabilityMapper
{
    public function toPersistence($match)
    {
        return array(
            'id' => $match->getId(),
            'goal_id' => $match->getGoalId(),
            'capability_id' => $match->getCapabilityId(),
            'match_state' => $match->getState(),
            'score' => $match->getScore(),
            'reason' => $match->getReason(),
            'evidence' => $match->getEvidence(),
            'matched_at' => $match->getTime()
        );
    }

    public function toDomain($data)
    {
        $match = new GoalCapabilityMatch();

        $match->setId($data['id']);
        $match->setGoalId($data['goal_id']);
        $match->setCapabilityId(
            $data['capability_id']
        );
        $match->setState(
            $data['match_state']
        );
        $match->setScore(
            $data['score']
        );
        $match->setReason(
            $data['reason']
        );
        $match->setEvidence(
            $data['evidence']
        );
        $match->setTime(
            $data['matched_at']
        );

        return $match;
    }
}

Mapper只负责转换数据。


220.16 匹配结果保存

匹配计算完成以后:

Goal
 ↓
Capability
 ↓
MatchingEngine
 ↓
Match Result
 ↓
Verification
 ↓
GoalCapabilityRepository
 ↓
MySQL

保存公式:

Save(M)→Validate→Map→Persist→VerifySave(M) \rightarrow Validate \rightarrow Map \rightarrow Persist \rightarrow Verify

这里的 Verify 是匹配记录的持久化验证。

它不取代 MatchingEngine 对匹配结果本身的计算。


220.17 匹配记录更新

匹配关系不是永久不变的。

例如:

Goal G1
Capability C1

matched
   ↓
blocked

或者:

partial
   ↓
matched

因此:

Mt+ΔM→Mt+1M_t+\Delta M\rightarrow M_{t+1}

更新流程:

Current Match
      ↓
MatchingEngine
      ↓
New Match Candidate
      ↓
Verification
      ↓
UpdateEngine
      ↓
GoalCapabilityRepository

220.18 为什么匹配状态需要更新

例如 Capability 原来:

available

后来:

blocked

那么原来的:

Goal G1 ↔ Capability C1
matched

可能变成:

Goal G1 ↔ Capability C1
blocked

因此:

CapabilityStateChange→MatchRecalculationCapabilityStateChange \rightarrow MatchRecalculation

完整过程:

Capability State Change
       ↓
MatchingEngine
       ↓
Goal-Capability Recalculation
       ↓
Match Update Candidate
       ↓
UpdateEngine
       ↓
Repository

220.19 Goal状态变化引起重新匹配

同样:

GoalStateChange→MatchRecalculationGoalStateChange \rightarrow MatchRecalculation

例如:

Goal = active

变成:

Goal = completed

那么:

Goal-Capability Match

可能不再是当前执行候选。

这并不意味着 Capability 被删除。

只是当前匹配关系发生变化。

因此:

GoalCompleted≠CapabilityInvalidGoalCompleted \neq CapabilityInvalid


220.20 Capability更新不等于匹配更新

例如 Capability 范围:

0-100

变成:

0-50

这是 Capability 更新:

Ct+ΔC→Ct+1C_t+\Delta C\rightarrow C_{t+1}

然后必须重新计算相关 Goal:

Capability Update
       ↓
Affected Goals
       ↓
MatchingEngine
       ↓
Match Recalculation

因此:

CapabilityUpdate→MatchRecalculationCapabilityUpdate \rightarrow MatchRecalculation

但:

CapabilityRepository≠MatchingEngineCapabilityRepository \neq MatchingEngine


220.21 状态查询

GoalCapabilityRepository 可以提供:

findGoalState()
findCapabilityState()
findMatchState()

例如:

public function findMatch(
    $goalId,
    $capabilityId
) {
    $sql = "
        SELECT *
        FROM goal_capability_matches
        WHERE goal_id = :goal_id
        AND capability_id = :capability_id
        ORDER BY id DESC
        LIMIT 1
    ";

    $stmt = $this->pdo->prepare($sql);

    $stmt->execute(array(
        ':goal_id' => $goalId,
        ':capability_id' => $capabilityId
    ));

    $data = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$data) {
        return null;
    }

    return $this->mapper->toDomain($data);
}

这里查询的是已经保存的匹配记录。


220.22 匹配记录数据库

可以建立:

CREATE TABLE goal_capability_matches (
    id INT NOT NULL AUTO_INCREMENT,
    goal_id INT NOT NULL,
    capability_id INT NOT NULL,
    match_state VARCHAR(50) NOT NULL,
    score DECIMAL(10,4) DEFAULT NULL,
    reason TEXT,
    evidence TEXT,
    matched_at DATETIME NOT NULL,
    PRIMARY KEY (id)
);

可以进一步建立组合索引:

INDEX idx_goal_capability
(goal_id, capability_id)

INDEX idx_goal
(goal_id)

INDEX idx_capability
(capability_id)

INDEX idx_match_state
(match_state)

这些索引只解决查询效率问题。

DatabaseIndex≠MatchingLogicDatabaseIndex \neq MatchingLogic


220.23 GoalCapabilityRepository与GoalRepository

GoalRepository负责:

Goal Save
Goal Load
Goal Update
Goal Delete

GoalCapabilityRepository负责:

Goal ↔ Capability
Match Query
Match Persistence

因此:

GoalRepository≠GoalCapabilityRepositoryGoalRepository \neq GoalCapabilityRepository

它们可以协作:

GoalRepository
      ↓
Goal

CapabilityRepository
      ↓
Capability

GoalCapabilityRepository
      ↓
Goal-Capability Match

220.24 GoalCapabilityRepository与CapabilityRepository

同理:

CapabilityRepository
        ↓
Capability Domain Object

而:

GoalCapabilityRepository
        ↓
Goal-Capability Association

因此 Capability 本身的保存仍然属于 CapabilityRepository。

GoalCapabilityRepository 不应该复制 CapabilityRepository 的全部保存逻辑。


220.25 GoalCapabilityRepository与StateRepository

状态属于独立的 State Domain Object。

因此:

Goal
 ↓
StateRepository

Capability
 ↓
StateRepository

GoalCapabilityRepository 可以查询关联状态,但状态正式持久化仍可以由 StateRepository 完成。

因此:

GoalCapabilityRepository≠StateRepositoryGoalCapabilityRepository \neq StateRepository

如果系统采用独立 State 表,则完整关系为:

Goal
 ↓
State
 ↓
StateRepository

Capability
 ↓
State
 ↓
StateRepository

220.26 GoalCapabilityRepository与MatchingEngine

完整边界:

GoalRepository
      ↓
Goal

CapabilityRepository
      ↓
Capability

Goal + Capability
      ↓
MatchingEngine
      ↓
Match Result
      ↓
GoalCapabilityRepository

因此:

MatchingEngine=计算匹配\boxed{ MatchingEngine=计算匹配 } GoalCapabilityRepository=保存和查询匹配数据\boxed{ GoalCapabilityRepository=保存和查询匹配数据 }


220.27 GoalCapabilityRepository与DecisionEngine

匹配之后可能存在多个 Capability:

Goal G1
 ↓
C1 matched
C2 matched
C3 partial

MatchingEngine 得到:

C1 = matched
C2 = matched
C3 = partial

但最终:

选择 C1 还是 C2?

属于 DecisionEngine。

因此:

MatchingEngine→Candidates→DecisionEngineMatchingEngine \rightarrow Candidates \rightarrow DecisionEngine

而不是:

Repository→DecisionRepository \rightarrow Decision


220.28 GoalCapability完整计算链

最终形成:

Goal
 ↓
Required Capability
 ↓
CapabilityRepository
 ↓
Capability
 ↓
MatchingEngine
 ↓
Object Check
 ↓
State Check
 ↓
Condition Check
 ↓
Range Check
 ↓
Verification Check
 ↓
Match Result
 ↓
GoalCapabilityRepository
 ↓
DecisionEngine

这条链将:

目标
能力
匹配
状态
决策

连接起来。


220.29 GoalCapability状态闭环

状态变化可以产生重新匹配:

Goal
 ↓
Capability
 ↓
Match
 ↓
State
 ↓
State Change
 ↓
Re-Match
 ↓
New Match

例如:

Capability C1
available
      ↓
blocked
      ↓
MatchingEngine
      ↓
G1-C1
matched
      ↓
blocked

之后 DecisionEngine 可以重新寻找其他 Capability。


220.30 GoalCapability持久化闭环

完整持久化:

Goal
 ↓
GoalRepository
 ↓
MySQL

Capability
 ↓
CapabilityRepository
 ↓
MySQL

Goal + Capability
 ↓
MatchingEngine
 ↓
Match
 ↓
GoalCapabilityRepository
 ↓
MySQL

读取:

MySQL
 ↓
GoalRepository
 ↓
Goal

MySQL
 ↓
CapabilityRepository
 ↓
Capability

MySQL
 ↓
GoalCapabilityRepository
 ↓
Match

220.31 GoalCapability更新原则

目标能力体系必须遵守最小更新原则。

如果只改变 Goal State:

ΔG=ΔSG\Delta G=\Delta S_G

如果只改变 Capability State:

ΔC=ΔSC\Delta C=\Delta S_C

如果只改变匹配结果:

ΔM=ΔMstate\Delta M=\Delta M_{state}

不能因为:

Capability State Changed

就直接重建:

Goal
Capability
Method
Behavior

正确流程:

State Change
 ↓
Affected Match
 ↓
Recalculate
 ↓
Update Match

220.32 GoalCapability数据一致性

Goal、Capability、Match 三者之间需要保持引用一致。

至少满足:

ValidReference=GoalExists∧CapabilityExistsValidReference = GoalExists \land CapabilityExists

匹配记录:

ValidMatchReference=GoalExists∧CapabilityExists∧MatchExistsValidMatchReference = GoalExists \land CapabilityExists \land MatchExists

如果 Goal 被归档:

Goal
 ↓
archived

相关 Match 不能继续被当成当前有效匹配。

因此:

GoalState→MatchValidityGoalState \rightarrow MatchValidity

Capability 同样如此:

CapabilityState→MatchValidityCapabilityState \rightarrow MatchValidity


220.33 删除原则

GoalCapabilityRepository 不应该简单地:

DELETE FROM goal_capability_matches

删除所有历史匹配。

因为匹配历史对于:

Decision
Experience
Learning
Diagnosis

可能具有价值。

因此优先:

active
 ↓
inactive
 ↓
archived

而不是无条件物理删除。

原则:

DeleteMatch≠DeleteGoalDeleteMatch \neq DeleteGoal DeleteMatch≠DeleteCapabilityDeleteMatch \neq DeleteCapability


220.34 GoalCapability历史

为了支持后续 Learning 和 Experience,可以保存:

goal_capability_history

模型:

GH=(G,C,Mb,Ma,R,T)GH=(G,C,M_b,M_a,R,T)

其中:

  • GG:Goal;
  • CC:Capability;
  • MbM_b:更新前匹配;
  • MaM_a:更新后匹配;
  • RR:变化原因;
  • TT:变化时间。

例如:

G1
 ↓
C1
 ↓
matched
 ↓
Capability blocked
 ↓
unmatched

该历史事实可以成为后续经验计算的数据来源。


220.35 GoalCapability与Learning

完整学习路径:

Goal
 ↓
Capability
 ↓
Matching
 ↓
Execution
 ↓
Result
 ↓
Feedback
 ↓
Experience
 ↓
LearningEngine
 ↓
Goal/Capability/Match Update Candidate
 ↓
UpdateEngine
 ↓
Repository

因此学习可以发现:

某类 Goal
通常需要某类 Capability

或者:

某 Capability
在某类条件下无法满足某类 Goal

但是这些变化必须经过验证。


220.36 PHP工程结构

推荐目录:

app/
├── Domain/
│   ├── Goal/
│   │   └── Goal.php
│   ├── Capability/
│   │   └── Capability.php
│   └── GoalCapability/
│       └── GoalCapabilityMatch.php
│
├── Engines/
│   ├── GoalEngine.php
│   ├── CapabilityEngine.php
│   └── MatchingEngine.php
│
├── Repositories/
│   ├── GoalRepository.php
│   ├── CapabilityRepository.php
│   ├── StateRepository.php
│   └── GoalCapabilityRepository.php
│
├── Services/
│   ├── GoalService.php
│   ├── CapabilityService.php
│   └── GoalCapabilityService.php
│
└── Infrastructure/
    ├── Database/
    └── Mapping/

这样可以明确:

Domain
 ↓
Engine
 ↓
Service
 ↓
Repository
 ↓
MySQL

220.37 Service调用关系

实际应用中建议:

GoalCapabilityService
        ↓
GoalRepository
        ↓
CapabilityRepository
        ↓
MatchingEngine
        ↓
GoalCapabilityRepository

如果状态需要更新:

GoalCapabilityService
        ↓
StateService
        ↓
StateEngine
        ↓
UpdateEngine
        ↓
StateRepository

这样可以避免 Repository 自己承担业务编排。


220.38 完整GoalCapability流程

正常路径:

Need
 ↓
Goal
 ↓
GoalRepository
 ↓
Required Capability
 ↓
CapabilityRepository
 ↓
Capability
 ↓
MatchingEngine
 ↓
Goal/Capability/State/Condition/Range
 ↓
Match Result
 ↓
GoalCapabilityRepository
 ↓
DecisionEngine
 ↓
MethodEngine

状态变化路径:

Capability State Change
 ↓
StateEngine
 ↓
UpdateEngine
 ↓
StateRepository
 ↓
MatchingEngine
 ↓
Match Recalculation
 ↓
GoalCapabilityRepository
 ↓
DecisionEngine

220.39 核心公式

目标模型:

G=(ID,N,T,C,P,S)\boxed{ G=(ID,N,T,C,P,S) }

能力模型:

C=(T,Co,S,R,V)\boxed{ C=(T,Co,S,R,V) }

目标能力匹配:

Mgc=Match(G,C,O,S,Co,R,V,T)\boxed{ M_{gc}=Match(G,C,O,S,Co,R,V,T) }

匹配条件:

Matchable=Gv∧Cv∧Ov∧Sv∧Cov∧Rv∧Vv\boxed{ Matchable = G_v \land C_v \land O_v \land S_v \land Co_v \land R_v \land V_v }

匹配更新:

Mt+ΔM→Mt+1\boxed{ M_t+\Delta M\rightarrow M_{t+1} }

目标更新:

Gt+ΔG→Gt+1\boxed{ G_t+\Delta G\rightarrow G_{t+1} }

能力更新:

Ct+ΔC→Ct+1\boxed{ C_t+\Delta C\rightarrow C_{t+1} }

状态变化:

St+ΔS→St+1\boxed{ S_t+\Delta S\rightarrow S_{t+1} }


220.40 本章核心原则

原则一:Goal与Capability是两个独立Domain Object

Goal≠CapabilityGoal\neq Capability

原则二:GoalCapabilityRepository不是新的认知对象

它是围绕 Goal、Capability、Match、State 的持久化协作边界。

原则三:Repository不负责匹配计算

GoalCapabilityRepository≠MatchingEngineGoalCapabilityRepository \neq MatchingEngine

原则四:匹配不是Boolean

Match∈{matched,partial,unmatched,unknown,blocked,conflicted,expired,invalid}Match\in \{ matched, partial, unmatched, unknown, blocked, conflicted, expired, invalid \}

原则五:能力存在不代表能力可用

Exists(C)≠Available(C)Exists(C)\neq Available(C)

原则六:能力可用不代表能力已经验证

Available(C)≠Verified(C)Available(C)\neq Verified(C)

原则七:状态变化必须能够影响匹配

StateChange→ReMatchStateChange \rightarrow ReMatch

原则八:匹配变化应该能够追溯

MatchChange→MatchHistoryMatchChange \rightarrow MatchHistory

原则九:多个匹配候选最终由DecisionEngine处理

Matching→Candidates→DecisionMatching \rightarrow Candidates \rightarrow Decision

原则十:Repository不负责决策

Repository≠DecisionEngineRepository\neq DecisionEngine


220.41 本章总结

GoalCapabilityRepository 建立了 ICAI 中非常重要的:

Goal↔Capability\boxed{ Goal \leftrightarrow Capability }

持久化关联体系。

目标回答:

Goal=需要达到什么Goal=需要达到什么

能力回答:

Capability=能够做什么Capability=能够做什么

MatchingEngine回答:

Match=当前能力是否能够满足目标Match=当前能力是否能够满足目标

State回答:

State=目标、能力以及匹配当前处于什么状态State=目标、能力以及匹配当前处于什么状态

Repository回答:

Repository=这些事实如何保存和查询Repository=这些事实如何保存和查询

因此最终形成:

Goal
 ↓
GoalRepository
 ↓
Goal

Capability
 ↓
CapabilityRepository
 ↓
Capability

Goal + Capability
 ↓
MatchingEngine
 ↓
Match Result
 ↓
GoalCapabilityRepository
 ↓
MySQL

状态变化:

StateEngine
 ↓
UpdateEngine
 ↓
StateRepository
 ↓
State Change
 ↓
MatchingEngine
 ↓
New Match
 ↓
GoalCapabilityRepository

决策阶段:

Goal
 ↓
Capability Candidates
 ↓
Matching
 ↓
Matched Capabilities
 ↓
DecisionEngine
 ↓
Selected Capability
 ↓
MethodEngine

因此可以最终确定:

GoalRepository=目标持久化\boxed{ GoalRepository=目标持久化 } CapabilityRepository=能力持久化\boxed{ CapabilityRepository=能力持久化 } MatchingEngine=目标能力匹配计算\boxed{ MatchingEngine=目标能力匹配计算 } StateRepository=状态持久化\boxed{ StateRepository=状态持久化 } GoalCapabilityRepository=目标—能力匹配关联数据的持久化与查询\boxed{ GoalCapabilityRepository=目标—能力匹配关联数据的持久化与查询 }

最终形成:

Goal→Capability→Matching→State→Decision\boxed{ Goal \rightarrow Capability \rightarrow Matching \rightarrow State \rightarrow Decision }

并与前面的认知计算体系连接:

Need→Goal→Capability→Matching→Method→Decision→Behavior→Action→Execution\boxed{ Need \rightarrow Goal \rightarrow Capability \rightarrow Matching \rightarrow Method \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Execution }

GoalCapabilityRepository 因此成为 Goal 从“目标定义”进入“能力可行性判断”,再进入 Method 与 Decision 的持久化连接层

Leave a Reply

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