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

第244章 ICAI认知MVC

第244章 ICAI认知MVC

244.1 提出背景

第243章建立了 ICAI 的完整 MVC 数据流:

Browser→Controller→Service→Engine→DomainObject→Repository→MySQLBrowser \rightarrow Controller \rightarrow Service \rightarrow Engine \rightarrow DomainObject \rightarrow Repository \rightarrow MySQL

这一结构解决的是 ICAI 软件系统中:

一个完整 Web 请求如何进入系统、经过业务层和计算层、访问持久化数据,并最终返回 View。

但是,ICAI 最核心的运行并不是普通的数据增删改查,而是:

一个机器个体接收到信息以后,如何形成认知结果。

因此,在通用 MVC 结构基础上,需要进一步建立 ICAI 的认知 MVC。

其核心结构为:

认知请求→Controller→CognitiveService→CognitiveEngine→认知结果\boxed{ 认知请求 \rightarrow Controller \rightarrow CognitiveService \rightarrow CognitiveEngine \rightarrow 认知结果 }

这条链路不是普通 CRUD 的简单变形,而是将前面建立的:

对象→属性→状态→关系→场景→知识→匹配→判断对象 \rightarrow 属性 \rightarrow 状态 \rightarrow 关系 \rightarrow 场景 \rightarrow 知识 \rightarrow 匹配 \rightarrow 判断

转换为实际程序运行过程。


244.2 ICAI认知MVC定义

ICAI认知MVC(ICAI Cognitive MVC),是指将 ICAI 的认知过程映射到 MVC 软件工程结构,使认知请求能够通过 Controller 进入 CognitiveService,再由 CognitiveEngine 执行认知计算,最终形成结构化认知结果。

其基本模型:

认知请求
   ↓
Controller
   ↓
CognitiveService
   ↓
CognitiveEngine
   ↓
认知结果

如果涉及已有个体数据:

认知请求
   ↓
Controller
   ↓
CognitiveService
   ↓
CognitiveEngine
   ↓
Domain Object
   ↓
Repository
   ↓
MySQL

然后:

MySQL
   ↓
Repository
   ↓
Domain Object
   ↓
CognitiveEngine
   ↓
CognitiveService
   ↓
Controller
   ↓
认知结果

因此:

CognitiveMVC=Request+Service+Engine+Result\boxed{ CognitiveMVC= Request+Service+Engine+Result }


244.3 认知请求

**认知请求(Cognitive Request)**是要求 ICAI 对某一信息、对象、状态、关系、场景或问题进行认知处理的输入。

例如:

机器个体:企业个体A

认知请求:
“当前订单是否处于异常状态?”

或者:

机器个体:个人个体A

认知请求:
“当前任务是否已经完成?”

认知请求不是简单的数据库查询。

因此:

CognitiveRequest≠DatabaseQueryCognitiveRequest\neq DatabaseQuery

数据库查询解决:

数据在哪里?

认知请求解决:

当前信息代表什么?当前对象处于什么状态?应该如何理解?


244.4 认知请求结构

认知请求可以定义为:

CR={Individual,Input,Object,Condition,Context,Time}CR= \{ Individual, Input, Object, Condition, Context, Time \}

其中:

  • Individual:进行认知的机器个体;
  • Input:输入信息;
  • Object:认知对象;
  • Condition:认知条件;
  • Context:认知场景;
  • Time:认知时间。

例如:

Individual = 企业机器个体
Input = 订单数据
Object = 当前订单
Condition = 当前状态
Context = 订单处理场景
Time = 当前时间

244.5 Controller接收认知请求

认知请求首先进入 Controller。

例如:

class CognitiveController
{
    protected $service;

    public function __construct(
        CognitiveService $service
    ) {
        $this->service = $service;
    }

    public function analyze()
    {
        $input =
            isset($_POST['input'])
                ? $_POST['input']
                : '';

        return $this->service
            ->cognize($input);
    }
}

Controller 的作用是:

HTTPRequest→CognitiveRequestHTTPRequest \rightarrow CognitiveRequest

它负责把外部请求转换成系统能够理解的认知请求。


244.6 Controller不负责认知

Controller 可以处理:

  • 请求;
  • 参数;
  • 基础验证;
  • 身份;
  • 响应。

但是不能把认知规则直接写在 Controller 中。

错误结构:

Controller
↓
读取输入
↓
判断对象
↓
判断属性
↓
判断状态
↓
计算关系
↓
形成结论

这种方式会导致 Controller 同时承担:

Request+Business+CognitionRequest+Business+Cognition

正确结构:

Controller
↓
CognitiveService
↓
CognitiveEngine

因此:

Controller≠CognitiveEngine\boxed{ Controller\neq CognitiveEngine }


244.7 CognitiveService

**CognitiveService(认知服务)**是 ICAI 认知业务流程的组织层。

它位于:

ControllerController

与:

CognitiveEngineCognitiveEngine

之间。

其基本作用是:

CognitiveService=CognitiveBusinessFlowCognitiveService= CognitiveBusinessFlow

例如:

class CognitiveService
{
    protected $engine;

    public function __construct(
        CognitiveEngine $engine
    ) {
        $this->engine = $engine;
    }

    public function cognize(
        $request
    ) {
        return $this->engine
            ->process($request);
    }
}

244.8 CognitiveService的职责

CognitiveService 主要负责:

接收认知请求
↓
组织认知上下文
↓
准备Domain Object
↓
调用认知Engine
↓
接收认知结果
↓
组织业务结果

因此:

CognitiveService=认知流程组织者\boxed{ CognitiveService = 认知流程组织者 }

它不应该代替 CognitiveEngine 执行具体认知计算。


244.9 CognitiveEngine

**CognitiveEngine(认知引擎)**是 ICAI 中执行认知计算的核心工程对象。

它负责将认知请求转换为认知结果。

基本形式:

CognitiveResult=F(Object,Attribute,State,Relation,Scene,Knowledge,Condition)\boxed{ CognitiveResult = F( Object, Attribute, State, Relation, Scene, Knowledge, Condition ) }

例如:

class CognitiveEngine
{
    public function process(
        $request
    ) {
        $object =
            $request['object'];

        $state =
            $request['state'];

        if ($state === 'active') {
            return array(
                'type' => 'normal',
                'object' => $object,
                'state' => $state
            );
        }

        return array(
            'type' => 'abnormal',
            'object' => $object,
            'state' => $state
        );
    }
}

这里的判断完全建立在明确的数据、规则和条件上。


244.10 CognitiveEngine与ICAI认知理论

CognitiveEngine 不是一个普通计算类。

它对应 ICAI 的认知理论。

理论:

Object→Attribute→State→Relation→Scene→CognitiveResultObject \rightarrow Attribute \rightarrow State \rightarrow Relation \rightarrow Scene \rightarrow CognitiveResult

工程:

DomainObject→CognitiveEngine→CognitiveResultDomainObject \rightarrow CognitiveEngine \rightarrow CognitiveResult

因此:

CognitiveEngine=ICAI认知理论的工程执行层\boxed{ CognitiveEngine = ICAI认知理论的工程执行层 }


244.11 认知对象

认知计算首先需要明确对象。

例如:

Object
ID = 1001
Type = Order

程序中:

$order =
    $repository->find(1001);

形成:

DatabaseRecord→Repository→OrderObjectDatabaseRecord \rightarrow Repository \rightarrow OrderObject

然后 CognitiveEngine 才能够处理这个对象。

因此:

Cognition→Object\boxed{ Cognition\rightarrow Object }


244.12 属性认知

获得对象以后,CognitiveEngine 读取对象属性。

例如:

订单
金额 = 1000
地区 = 深圳
客户类型 = 企业

形成:

Object→AttributeObject \rightarrow Attribute

属性是对象认知的重要组成部分。

因此:

Attribute=Name+Value+Type+ConditionAttribute= Name+Value+Type+Condition


244.13 状态认知

对象属性还不能完整描述当前情况。

例如:

订单
状态 = 待处理

因此需要:

Object→StateObject \rightarrow State

状态表示对象在某一时间和条件下的实际状态。

例如:

Statet=PendingState_t=Pending

经过行为以后:

Statet+1=CompletedState_{t+1}=Completed


244.14 关系认知

ICAI 不仅认识单个对象,还需要认识对象之间的关系。

例如:

客户
↓
下单
↓
订单

可以表示:

Customer→PlaceOrderOrderCustomer \xrightarrow{PlaceOrder} Order

因此:

Relation=Subject+Type+Object+ConditionRelation= Subject+Type+Object+Condition

CognitiveEngine 可以根据关系判断对象所处的实际结构。


244.15 场景认知

对象、属性、状态和关系还需要放入具体场景。

例如:

场景:
深圳
工作日
上午
订单处理

形成:

Scene=Object+Attribute+State+Relation+Condition+Time+SpaceScene= Object+ Attribute+ State+ Relation+ Condition+ Time+ Space

因此:

CognitiveEngine=SceneAwareCalculation\boxed{ CognitiveEngine = SceneAwareCalculation }

即认知计算必须能够结合当前场景。


244.16 知识参与认知

CognitiveEngine 还可以使用机器个体已经建立的知识。

例如:

规则:
订单超过处理时间
且状态仍为待处理
→
可能异常

形成:

Knowledge→Rule→CognitiveCalculationKnowledge \rightarrow Rule \rightarrow CognitiveCalculation

因此:

CognitiveResult=F(Object,Attribute,State,Relation,Scene,Knowledge)CognitiveResult = F( Object, Attribute, State, Relation, Scene, Knowledge )


244.17 认知计算

完整认知计算可以定义:

C=F(O,A,S,R,Sc,K)\boxed{ C= F(O,A,S,R,Sc,K) }

其中:

  • CC:认知结果;
  • OO:对象;
  • AA:属性;
  • SS:状态;
  • RR:关系;
  • ScSc:场景;
  • KK:知识。

这不是生成文本,而是对结构化对象进行规则和逻辑计算。

因此:

ICAI认知计算=结构化信息计算\boxed{ ICAI认知计算 = 结构化信息计算 }


244.18 认知结果

**认知结果(Cognitive Result)**是 CognitiveEngine 对输入对象及其相关信息进行计算后形成的结构化结果。

可以定义:

CognitiveResult={Object,State,Relation,Judgment,Reason,Confidence,Time}CognitiveResult= \{ Object, State, Relation, Judgment, Reason, Confidence, Time \}

例如:

array(
    'object' => 'order_1001',
    'state' => 'pending',
    'judgment' => 'abnormal',
    'reason' => 'timeout',
    'confidence' => 0.92
);

这里的 confidence 如果使用,应明确表示基于既定规则、权重或概率计算得到的结果置信度,而不是生成式模型的概率输出。


244.19 认知结果与业务结果

认知结果:

CognitiveResultCognitiveResult

与业务结果:

BusinessResultBusinessResult

不能完全等同。

例如:

CognitiveResult=AbnormalCognitiveResult= Abnormal

业务层可能进一步决定:

BusinessResult=CreateAlertBusinessResult= CreateAlert

因此:

CognitiveEngine
↓
CognitiveResult
↓
CognitiveService
↓
BusinessResult

244.20 CognitiveService处理认知结果

CognitiveService 获得:

CognitiveResultCognitiveResult

以后,可以根据业务流程继续处理。

例如:

$result =
    $this->engine
        ->process($request);

if (
    $result['judgment']
    === 'abnormal'
) {
    return array(
        'success' => true,
        'action' => 'alert',
        'cognition' => $result
    );
}

return array(
    'success' => true,
    'action' => 'none',
    'cognition' => $result
);

因此:

CognitiveResult→BusinessDecisionCognitiveResult \rightarrow BusinessDecision


244.21 认知MVC完整数据流

完整认知流程:

认知请求
   ↓
Controller
   ↓
CognitiveService
   ↓
CognitiveEngine
   ↓
Domain Object
   ↓
认知计算
   ↓
CognitiveResult
   ↓
CognitiveService
   ↓
Controller

如果需要访问数据库:

认知请求
   ↓
Controller
   ↓
CognitiveService
   ↓
Repository
   ↓
MySQL
   ↓
Repository
   ↓
Domain Object
   ↓
CognitiveEngine
   ↓
CognitiveResult

244.22 认知MVC与普通MVC的区别

普通 MVC:

Request→Service→Engine→ResultRequest \rightarrow Service \rightarrow Engine \rightarrow Result

认知 MVC:

CognitiveRequest→CognitiveService→CognitiveEngine→CognitiveResultCognitiveRequest \rightarrow CognitiveService \rightarrow CognitiveEngine \rightarrow CognitiveResult

区别在于认知 MVC 的 Engine 处理的是:

CognitiveStructureCognitiveStructure

而普通业务 Engine 可能处理:

BusinessRuleBusinessRule

因此:

CognitiveEngine≠GenericBusinessEngine\boxed{ CognitiveEngine\neq GenericBusinessEngine }


244.23 认知MVC与Domain Object

CognitiveEngine 不应该直接操作数据库。

正确结构:

Repository→DomainObject→CognitiveEngineRepository \rightarrow DomainObject \rightarrow CognitiveEngine

例如:

$individual =
    $repository->find(
        $individualId
    );

$request = array(
    'individual' => $individual,
    'input' => $input
);

$result =
    $this->engine
        ->process($request);

因此:

CognitiveEngine→DomainObject\boxed{ CognitiveEngine \rightarrow DomainObject }

而不是:

CognitiveEngine→MySQLCognitiveEngine \rightarrow MySQL


244.24 认知请求与机器个体

ICAI 的认知不是脱离个体的。

因此认知请求必须明确:

IndividualIndividual

例如:

Individual = Enterprise_1001

同一个输入对于不同机器个体可能产生不同认知结果。

因此:

CognitiveResult=F(Individual,Input,Knowledge,Capability,Condition)CognitiveResult = F( Individual, Input, Knowledge, Capability, Condition )

由此体现 ICAI 的核心:

不同机器个体具有不同的认知结构。


244.25 个体差异

假设:

I1I_1

与:

I2I_2

分别代表两个不同机器个体。

即使:

Input(I1)=Input(I2)Input(I_1)=Input(I_2)

也不能要求:

Cognition(I1)=Cognition(I2)Cognition(I_1)=Cognition(I_2)

因为:

Knowledge(I1)≠Knowledge(I2)Knowledge(I_1) \neq Knowledge(I_2)

或者:

Capability(I1)≠Capability(I2)Capability(I_1) \neq Capability(I_2)

因此:

Cognition(I)=F(Input,Knowledge,Capability,State,Goal)\boxed{ Cognition(I)= F(Input,Knowledge,Capability,State,Goal) }


244.26 认知请求的完整结构

可以进一步建立:

CognitiveRequest={Individual,Input,Object,Context,Condition,Goal}CognitiveRequest= \{ Individual, Input, Object, Context, Condition, Goal \}

其中:

  • Individual:机器个体;
  • Input:输入信息;
  • Object:认知对象;
  • Context:当前场景;
  • Condition:当前条件;
  • Goal:认知目的。

因此 CognitiveEngine 获得的不是孤立字符串,而是一个完整认知上下文。


244.27 CognitiveEngine内部处理流程

CognitiveEngine 可以按照以下顺序工作:

认知请求
↓
读取机器个体
↓
识别对象
↓
读取属性
↓
读取状态
↓
读取关系
↓
识别场景
↓
加载知识
↓
条件匹配
↓
规则计算
↓
形成判断
↓
形成认知结果

形式化:

Input→Object→Attribute→State→Relation→Scene→Knowledge→Matching→Judgment→ResultInput \rightarrow Object \rightarrow Attribute \rightarrow State \rightarrow Relation \rightarrow Scene \rightarrow Knowledge \rightarrow Matching \rightarrow Judgment \rightarrow Result


244.28 CognitiveEngine与认知匹配

前面章节已经建立:

Matching=f(Compare,ConditionCheck,StructureCheck,RelationCheck,ResultEvaluation)Matching= f( Compare, ConditionCheck, StructureCheck, RelationCheck, ResultEvaluation )

因此 CognitiveEngine 可以调用认知匹配机制:

CognitiveEngine→MatchingEngineCognitiveEngine \rightarrow MatchingEngine

或者在内部组织匹配计算。

例如:

对象匹配
↓
属性匹配
↓
状态匹配
↓
关系匹配
↓
场景匹配
↓
知识匹配
↓
认知结果

这样认知 MVC 可以与前面的认知理论直接连接。


244.29 CognitiveEngine与认知结果解释

认知结果不仅需要给出:

normal

还应该能够说明形成结果的主要依据。

例如:

array(
    'judgment' => 'abnormal',
    'reason' => array(
        'state' => 'pending',
        'timeout' => true,
        'rule' => 'order_timeout'
    )
);

因此:

CognitiveResult=Judgment+ReasonCognitiveResult= Judgment+Reason

这样结果具有可追踪性。


244.30 认知MVC异常处理

认知过程中也可能出现异常。

例如:

认知请求
↓
Controller
↓
CognitiveService
↓
CognitiveEngine
↓
缺少必要对象

如果属于业务条件:

CognitiveFailureCognitiveFailure

如果属于系统错误:

SystemExceptionSystemException

例如数据库无法访问:

PersistenceExceptionPersistenceException

因此:

CognitiveFailure≠PersistenceExceptionCognitiveFailure \neq PersistenceException


244.31 认知结果与Controller

CognitiveService 最终把结果返回 Controller:

$result =
    $this->cognitiveService
        ->cognize($request);

Controller 再决定输出方式:

HTML
JSON
页面
API Response

例如:

return array(
    'success' => true,
    'data' => $result
);

因此:

CognitiveResult→ControllerResponseCognitiveResult \rightarrow ControllerResponse


244.32 认知MVC与View

如果认知请求来自 Web 页面:

CognitiveResult
↓
Controller
↓
ViewData
↓
Smarty
↓
HTML

例如:

<h2>
    认知结果
</h2>

<p>
    {$result.judgment}
</p>

<p>
    {$result.reason}
</p>

因此:

CognitiveResult→ViewCognitiveResult \rightarrow View


244.33 认知MVC与JSON

如果认知请求来自系统接口,也可以直接输出结构化 JSON:

header(
    'Content-Type: application/json'
);

echo json_encode(
    $result
);

形成:

CognitiveResult→JSON→ClientCognitiveResult \rightarrow JSON \rightarrow Client

这里的 JSON 只是系统间的数据表达方式,不属于认知机制本身。


244.34 ICAI认知MVC完整模型

综合本章:

CognitiveRequest→Controller→CognitiveService→CognitiveEngine→CognitiveResult\boxed{ CognitiveRequest \rightarrow Controller \rightarrow CognitiveService \rightarrow CognitiveEngine \rightarrow CognitiveResult }

如果认知过程中需要数据:

CognitiveEngine→DomainObject→Repository→MySQL\boxed{ CognitiveEngine \rightarrow DomainObject \rightarrow Repository \rightarrow MySQL }

读取完成后:

MySQL→Repository→DomainObject→CognitiveEngine\boxed{ MySQL \rightarrow Repository \rightarrow DomainObject \rightarrow CognitiveEngine }

最终:

CognitiveResult→CognitiveService→Controller→View\boxed{ CognitiveResult \rightarrow CognitiveService \rightarrow Controller \rightarrow View }


244.35 ICAI认知MVC完整运行链

最终形成:

                    Cognitive Request
                           ↓
                    ┌──────────────┐
                    │  Controller  │
                    └──────┬───────┘
                           ↓
                    ┌──────────────┐
                    │CognitiveService│
                    └──────┬───────┘
                           ↓
                    ┌──────────────┐
                    │CognitiveEngine│
                    └──────┬───────┘
                           ↓
                    ┌──────────────┐
                    │Domain Object │
                    └──────┬───────┘
                           ↓
                    ┌──────────────┐
                    │  Repository  │
                    └──────┬───────┘
                           ↓
                    ┌──────────────┐
                    │    MySQL     │
                    └──────┬───────┘
                           ↓
                    Domain Object
                           ↓
                    CognitiveEngine
                           ↓
                    CognitiveResult
                           ↓
                    CognitiveService
                           ↓
                    Controller
                           ↓
                       View/JSON

244.36 本章总结

第244章将前面建立的 MVC 工程结构进一步应用到 ICAI 的核心认知过程。

基本认知链为:

认知请求→Controller→CognitiveService→CognitiveEngine→认知结果\boxed{ 认知请求 \rightarrow Controller \rightarrow CognitiveService \rightarrow CognitiveEngine \rightarrow 认知结果 }

当认知过程需要访问机器个体数据时:

CognitiveEngine→DomainObject→Repository→MySQL\boxed{ CognitiveEngine \rightarrow DomainObject \rightarrow Repository \rightarrow MySQL }

读取数据以后重新进入认知计算:

MySQL→Repository→DomainObject→CognitiveEngine\boxed{ MySQL \rightarrow Repository \rightarrow DomainObject \rightarrow CognitiveEngine }

最终形成:

CognitiveResult→CognitiveService→Controller→View\boxed{ CognitiveResult \rightarrow CognitiveService \rightarrow Controller \rightarrow View }

因此,ICAI 的认知 MVC 可以统一表示为:

CognitiveRequest→Controller→CognitiveService→CognitiveEngine→DomainObject→Repository→MySQL→DomainObject→CognitiveEngine→CognitiveResult→CognitiveService→Controller→View\boxed{ CognitiveRequest \rightarrow Controller \rightarrow CognitiveService \rightarrow CognitiveEngine \rightarrow DomainObject \rightarrow Repository \rightarrow MySQL \rightarrow DomainObject \rightarrow CognitiveEngine \rightarrow CognitiveResult \rightarrow CognitiveService \rightarrow Controller \rightarrow View }

这一结构把 ICAI 的认知理论、领域对象、认知计算和 MVC 工程结构连接起来,使“认知”不再只是理论上的概念,而成为可以由 Controller 发起、由 CognitiveService 组织、由 CognitiveEngine 执行、由 Domain Object 提供对象状态、由 Repository 提供持久化数据、最终形成结构化认知结果的完整程序运行过程。

同时必须明确:

Controller≠CognitiveServiceController\neq CognitiveService CognitiveService≠CognitiveEngineCognitiveService\neq CognitiveEngine CognitiveEngine≠RepositoryCognitiveEngine\neq Repository DomainObject≠DatabaseRecordDomainObject\neq DatabaseRecord CognitiveResult≠BusinessResultCognitiveResult\neq BusinessResult

由此建立 ICAI 认知工程的基本 MVC 边界。

Leave a Reply

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