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

第228章 ICAI核心数据表

第228章 ICAI核心数据表

228.1 核心数据表的定位

ICAI 的所有认知计算,都建立在一个最基础的数据事实体系之上。

在前面的章节中已经分别定义了:

  • Individual:个体
  • Object:对象
  • Attribute:属性
  • State:状态
  • Relation:关系
  • Scene:场景

这六类数据构成 ICAI 的基础认知数据层。

可以定义:

CoreData=Individual+Object+Attribute+State+Relation+SceneCoreData= Individual + Object + Attribute + State + Relation + Scene

其基本关系为:

Individual
    ↓
Object
    ↓
Attribute
    ↓
State
    ↓
Relation
    ↓
Scene

但这并不是简单的一条线性数据库关系。

实际上,六者构成的是一个多维结构:

                    Individual
                         │
              ┌──────────┴──────────┐
              ↓                     ↓
           Objects               Scenes
              │                     │
       ┌──────┼──────┐        ┌─────┼─────┐
       ↓      ↓      ↓        ↓     ↓     ↓
   Attributes States Relations Objects States Relations

因此:

Scene=F(Object,State,Relation,Condition,Environment,Time)Scene=F(Object,State,Relation,Condition,Environment,Time)

Scene 并不是简单复制 Objects。


228.2 Domain与数据库的对应关系

六个核心数据表必须遵循:

Domain Object
      ↓
Mapper
      ↓
Repository
      ↓
PDO
      ↓
MySQL

例如:

Object Domain
      ↓
ObjectMapper
      ↓
ObjectRepository
      ↓
objects

读取则相反:

objects
   ↓
PDO
   ↓
ObjectRepository
   ↓
ObjectMapper
   ↓
Object Domain

因此:

DomainObject≠DatabaseRowDomainObject\neq DatabaseRow

数据库只是 Domain Object 的持久化表示。


228.3 individuals——个体核心表

Individual 是 ICAI 的主体。

第166章已经定义:

I=(ID,T,A,S,C,M,B,MM,E)I=(ID,T,A,S,C,M,B,MM,E)

在组合体系中,一个 Individual 可以拥有:

Object
Knowledge
Capability
Method
Behavior
Memory
Experience
Relation
State

因此 individuals 只保存 Individual 的基础身份和当前核心状态。


228.3.1 individuals表设计

CREATE TABLE individuals (
    id BIGINT NOT NULL AUTO_INCREMENT,
    individual_code VARCHAR(100) NOT NULL,
    individual_type VARCHAR(100) NOT NULL,
    name VARCHAR(255) NULL,
    state VARCHAR(50) NOT NULL,
    description TEXT NULL,
    created_at DATETIME NOT NULL,
    updated_at DATETIME NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uk_individual_code (individual_code),
    KEY idx_individual_type (individual_type),
    KEY idx_individual_state (state)
);

核心字段:

字段 含义
id MySQL持久化ID
individual_code Domain业务ID
individual_type 个体类型
name 个体名称
state 当前核心状态
description 描述
created_at 创建时间
updated_at 更新时间

其中:

DatabaseID≠DomainIDDatabaseID\neq DomainID

例如:

id = 15
individual_code = I-001

15 是数据库内部主键,I-001 是 ICAI Domain 层标识。


228.4 Individual与Object

Individual 与 Object 是 ICAI 最重要的组合关系之一。

Individual→ObjectIndividual\rightarrow Object

例如一个 Individual:

I-001

可以拥有:

O-001
O-002
O-003

数据库中:

individuals
      │
      │ 1:N
      ↓
objects

因此 objects.individual_id 可以保存所属 Individual 的数据库 ID。

但是这个关系不应该被理解为:

Object 永远只能属于 Individual。

因为未来可能存在系统级 Object。

因此:

individual_id = NULL

在特定设计下也是合法的。


228.5 objects——对象核心表

Object 是 ICAI 最基础的认知实体。

第167章定义:

O=(ID,T,A,S,R)O=(ID,T,A,S,R)

其中:

  • IDID:对象标识
  • TT:对象类型
  • AA:对象属性
  • SS:对象状态
  • RR:对象关系

数据库不应该把所有内容全部塞入 objects

应该进行结构拆分:

objects
   ├── attributes
   ├── states
   └── relations

228.5.1 objects表

CREATE TABLE objects (
    id BIGINT NOT NULL AUTO_INCREMENT,
    object_code VARCHAR(100) NOT NULL,
    individual_id BIGINT NULL,
    object_type VARCHAR(100) NOT NULL,
    name VARCHAR(255) NULL,
    state VARCHAR(50) NOT NULL,
    description TEXT NULL,
    created_at DATETIME NOT NULL,
    updated_at DATETIME NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uk_object_code (object_code),
    KEY idx_object_individual (individual_id),
    KEY idx_object_type (object_type),
    KEY idx_object_state (state)
);

主要字段:

id
object_code
individual_id
object_type
name
state
description
created_at
updated_at

其中:

object_code

用于 Domain 层。

id

用于数据库内部关联。


228.6 Object不直接保存全部Attribute

Object模型中的:

A=AttributesA=Attributes

不应该理解为所有属性都必须作为 objects 的物理字段。

例如:

Object O-001

可能具有:

name = Device A
type = device
weight = 1200
capacity = 500
temperature = 35

如果这些属性全部作为数据库字段:

name
type
weight
capacity
temperature
...

随着系统扩展,objects 会不断增加字段。

因此将属性独立出来:

objects
    ↓
attributes

更适合 ICAI 的动态对象体系。


228.7 attributes——属性表

属性模型:

A=(N,V,T,S,Tm)A=(N,V,T,S,T_m)

其中:

  • NN:属性名称
  • VV:属性值
  • TT:属性类型
  • SS:属性状态
  • TmT_m:属性时间

因此数据库:

CREATE TABLE attributes (
    id BIGINT NOT NULL AUTO_INCREMENT,
    attribute_code VARCHAR(100) NOT NULL,
    object_id BIGINT NOT NULL,
    attribute_name VARCHAR(100) NOT NULL,
    attribute_value TEXT NULL,
    attribute_type VARCHAR(50) NULL,
    state VARCHAR(50) NULL,
    attribute_time DATETIME NULL,
    created_at DATETIME NOT NULL,
    updated_at DATETIME NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uk_attribute_code (attribute_code),
    KEY idx_attribute_object (object_id),
    KEY idx_attribute_name (attribute_name),
    KEY idx_attribute_type (attribute_type)
);

228.8 为什么Attribute必须独立

属性具有自己的生命周期。

例如:

temperature = 20

经过运行:

temperature = 35

再经过运行:

temperature = 48

这实际上形成:

At→At+1A_t\rightarrow A_{t+1}

属性不是永远不变的。

因此:

Object
    ↓
Attribute
    ↓
Attribute Change

可以进一步形成属性历史:

attribute_history

例如:

CREATE TABLE attribute_history (
    id BIGINT NOT NULL AUTO_INCREMENT,
    history_code VARCHAR(100) NOT NULL,
    attribute_code VARCHAR(100) NOT NULL,
    value_before TEXT NULL,
    value_after TEXT NULL,
    reason_data TEXT NULL,
    evidence TEXT NULL,
    created_at DATETIME NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uk_attribute_history_code (history_code),
    KEY idx_attribute_history_attribute (attribute_code),
    KEY idx_attribute_history_time (created_at)
);

因此:

CurrentAttribute≠AttributeHistoryCurrentAttribute\neq AttributeHistory


228.9 states——状态核心表

State 是 ICAI 运行过程中最重要的动态数据之一。

状态模型:

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

其中:

  • OO:状态所属对象
  • VV:状态值
  • TT:状态时间
  • CC:状态上下文
  • RR:状态原因

数据库保存当前状态:

CREATE TABLE states (
    id BIGINT NOT NULL AUTO_INCREMENT,
    state_code VARCHAR(100) NOT NULL,
    owner_type VARCHAR(100) NOT NULL,
    owner_id BIGINT NOT NULL,
    state_value VARCHAR(100) NOT NULL,
    context_data TEXT NULL,
    reason_data TEXT NULL,
    state_time DATETIME NOT NULL,
    created_at DATETIME NOT NULL,
    updated_at DATETIME NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uk_state_code (state_code),
    KEY idx_state_owner (owner_type, owner_id),
    KEY idx_state_value (state_value),
    KEY idx_state_time (state_time)
);

228.10 State为什么使用owner_type + owner_id

ICAI 中不仅 Object 有状态。

以下对象都可能具有状态:

Individual
Object
Goal
Capability
Method
Decision
Behavior
Action
Execution
Relation
Risk
Conflict
Diagnosis
Repair

因此如果建立:

object_id

就无法支持完整的 ICAI。

采用:

owner_type
owner_id

可以表达:

owner_type = object
owner_id = 10

也可以:

owner_type = behavior
owner_id = 25

或者:

owner_type = execution
owner_id = 31

这是一种多 Domain 状态持久化设计。


228.11 Current State与State History

必须严格区分:

states

和:

state_history

当前状态:

Object O-001
state = ready

历史:

created
→ ready
→ running
→ failed
→ repairing
→ ready

数据库:

states
    ↓
当前状态

state_history
    ↓
完整变化过程

因此:

CurrentState≠StateHistoryCurrentState\neq StateHistory


228.12 state_history

CREATE TABLE state_history (
    id BIGINT NOT NULL AUTO_INCREMENT,
    history_code VARCHAR(100) NOT NULL,
    owner_type VARCHAR(100) NOT NULL,
    owner_id BIGINT NOT NULL,
    state_before VARCHAR(100) NULL,
    state_after VARCHAR(100) NOT NULL,
    event_data TEXT NULL,
    condition_data TEXT NULL,
    reason_data TEXT NULL,
    evidence TEXT NULL,
    created_at DATETIME NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uk_state_history_code (history_code),
    KEY idx_state_history_owner (owner_type, owner_id),
    KEY idx_state_history_time (created_at)
);

StateEngine计算:

T(St,E,C)→St+1T(S_t,E,C)\rightarrow S_{t+1}

StateRepository保存:

S_t
S_{t+1}

以及:

StateHistory

228.13 relations——关系核心表

Relation模型:

R=(ID,O1,T,O2,C,S,Tm)R=(ID,O_1,T,O_2,C,S,T_m)

其中:

  • O1O_1:源对象
  • TT:关系类型
  • O2O_2:目标对象
  • CC:关系条件
  • SS:关系状态
  • TmT_m:关系时间

核心数据库:

CREATE TABLE relations (
    id BIGINT NOT NULL AUTO_INCREMENT,
    relation_code VARCHAR(100) NOT NULL,
    object1_id BIGINT NOT NULL,
    relation_type VARCHAR(100) NOT NULL,
    object2_id BIGINT NOT NULL,
    condition_data TEXT NULL,
    state VARCHAR(50) NOT NULL,
    evidence TEXT NULL,
    relation_time DATETIME NULL,
    created_at DATETIME NOT NULL,
    updated_at DATETIME NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uk_relation_code (relation_code),
    KEY idx_relation_object1 (object1_id),
    KEY idx_relation_object2 (object2_id),
    KEY idx_relation_type (relation_type),
    KEY idx_relation_state (state)
);

228.14 Relation的方向性

Relation必须具有明确方向。

例如:

Object A
   |
   | supports
   ↓
Object B

数据库:

object1_id = A
relation_type = supports
object2_id = B

不能自动转换成:

B supports A

除非规则明确规定:

supports
    ↔
supported_by

因此:

RelationDirectionRelationDirection

是关系数据的重要组成部分。


228.15 Relation存在不等于Relation有效

数据库中存在:

relation_code = R-001

不代表该关系一定有效。

必须区分:

Exists
Active
Valid
Verified

因此:

Exists≠ValidExists\neq Valid

RelationEngine负责:

关系计算
关系匹配
关系合法性判断
关系更新候选

Repository负责:

保存
查询
更新

228.16 relations与Object的关系

Object模型:

O=(ID,T,A,S,R)O=(ID,T,A,S,R)

其中的 RR 就是 Object 参与的关系集合。

因此:

Object A
   ↓
Relations
   ↓
Object B

形成:

Object→Relation→ObjectObject \rightarrow Relation \rightarrow Object

数据库可以形成对象网络:

O1 ──supports────→ O2
 │                  │
 │uses              │located_in
 ↓                  ↓
O3 ───────────────→ O4

这个网络是后续:

KnowledgeEngine
SceneEngine
MatchingEngine
DecisionEngine

计算的重要基础。


228.17 scenes——场景核心表

Scene不是简单的Object集合。

第190章定义:

Sc=(ID,T,O,S,R,C,E,Tm)Sc=(ID,T,O,S,R,C,E,T_m)

其中:

  • IDID:场景标识
  • TT:场景类型
  • OO:场景对象集合
  • SS:场景状态集合
  • RR:场景关系集合
  • CC:场景条件
  • EE:环境
  • TmT_m:时间

Scene的核心本质是:

在特定条件、环境和时间下,由一组对象、状态和关系形成的可计算结构。


228.18 Scene不能简单放进一个JSON

例如:

Scene
{
    objects: [...]
    states: [...]
    relations: [...]
}

虽然可以作为计算结果暂存,但不能把它作为唯一数据库结构。

因为 Scene 中的:

Object
State
Relation

本身都是独立 Domain。

因此应该:

scenes
    ↓
scene_objects
scene_states
scene_relations

而不是:

scenes.scene_data = 全部对象

228.19 scenes表

CREATE TABLE scenes (
    id BIGINT NOT NULL AUTO_INCREMENT,
    scene_code VARCHAR(100) NOT NULL,
    scene_type VARCHAR(100) NOT NULL,
    name VARCHAR(255) NULL,
    condition_data TEXT NULL,
    environment_data TEXT NULL,
    state VARCHAR(50) NOT NULL,
    scene_time DATETIME NOT NULL,
    created_at DATETIME NOT NULL,
    updated_at DATETIME NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uk_scene_code (scene_code),
    KEY idx_scene_type (scene_type),
    KEY idx_scene_state (state),
    KEY idx_scene_time (scene_time)
);

228.20 scene_objects

Scene与Object是多对多关系。

CREATE TABLE scene_objects (
    id BIGINT NOT NULL AUTO_INCREMENT,
    scene_id BIGINT NOT NULL,
    object_id BIGINT NOT NULL,
    role_type VARCHAR(100) NULL,
    state VARCHAR(50) NULL,
    created_at DATETIME NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uk_scene_object (scene_id, object_id),
    KEY idx_scene_objects_scene (scene_id),
    KEY idx_scene_objects_object (object_id)
);

例如:

Scene S-001
   ├── Object O-001
   ├── Object O-002
   └── Object O-003

不同 Object 在 Scene 中可以具有不同角色:

subject
target
resource
environment
tool
obstacle

228.21 scene_states

场景中的状态不是简单复制 Object 当前状态。

因为 Scene 是时间和条件相关的认知结构。

因此:

CREATE TABLE scene_states (
    id BIGINT NOT NULL AUTO_INCREMENT,
    scene_id BIGINT NOT NULL,
    owner_type VARCHAR(100) NOT NULL,
    owner_id BIGINT NOT NULL,
    state_value VARCHAR(100) NOT NULL,
    context_data TEXT NULL,
    created_at DATETIME NOT NULL,
    PRIMARY KEY (id),
    KEY idx_scene_state_scene (scene_id),
    KEY idx_scene_state_owner (owner_type, owner_id)
);

例如:

Scene S-001
    ↓
Object O-001
    ↓
State = running

这个状态属于该 Scene 下的状态事实。


228.22 scene_relations

场景也可以保存当前场景中的关系。

CREATE TABLE scene_relations (
    id BIGINT NOT NULL AUTO_INCREMENT,
    scene_id BIGINT NOT NULL,
    relation_id BIGINT NOT NULL,
    state VARCHAR(50) NULL,
    created_at DATETIME NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uk_scene_relation (scene_id, relation_id),
    KEY idx_scene_relation_scene (scene_id),
    KEY idx_scene_relation_relation (relation_id)
);

这样 Scene 可以引用已经存在的 Relation。

因此:

Scene
   ↓
Relation
   ↓
Object

而不是重复创建另一套 Object。


228.23 Scene的计算来源

SceneEngine的核心计算:

Sc=F(O,S,R,C,Env,T)Sc=F(O,S,R,C,Env,T)

其中:

  • OO:当前对象事实
  • SS:当前状态事实
  • RR:当前关系事实
  • CC:条件
  • EnvEnv:环境
  • TT:时间

因此:

Object Facts
      ↓
State Facts
      ↓
Relation Facts
      ↓
Condition
      ↓
Environment
      ↓
Time
      ↓
SceneEngine
      ↓
Scene Calculation

数据库中的 Scene 是持久化后的结构。

SceneEngine 才负责场景计算。


228.24 六个核心表之间的总体关系

完整数据库关系可以表示为:

individuals
     │
     │ 1:N
     ↓
objects
     │
     ├────────→ attributes
     │
     ├────────→ states
     │
     └────────→ relations
                    ↑
                    │
              object ←→ object

objects
   │
   ↓
scene_objects
   │
   ↓
scenes
   │
   ├────→ scene_states
   │
   └────→ scene_relations

228.25 六个核心Domain的关系

从 Domain 角度:

I→OI\rightarrow O

表示:

Individual拥有Object

O→AO\rightarrow A

表示:

Object具有Attribute

O→SO\rightarrow S

表示:

Object具有State

O1→R→O2O_1\rightarrow R\rightarrow O_2

表示:

Object之间存在Relation

O+S+R+C+Env+T→ScO+S+R+C+Env+T\rightarrow Sc

表示:

Objects + States + Relations
在条件、环境、时间下
形成Scene

228.26 六个核心表不是六个独立系统

不能设计成:

Individual System
Object System
Attribute System
State System
Relation System
Scene System

完全互相隔离。

它们实际上构成 ICAI 的底层数据基础。

正确结构:

                    Individual
                         │
                         ↓
                       Object
                    ↙    ↓    ↘
              Attribute State Relation
                         │       │
                         └───┬───┘
                             ↓
                           Scene

Scene是对当前对象、状态、关系及环境条件的组合性认知结果。


228.27 PHP Domain结构

对应的 PHP Domain 可以设计为:

class Individual
{
    protected $id;
    protected $type;
    protected $name;
    protected $state;

    protected $objects;
}

Object:

class ObjectEntity
{
    protected $id;
    protected $type;
    protected $name;
    protected $attributes;
    protected $state;
    protected $relations;
}

Attribute:

class Attribute
{
    protected $id;
    protected $name;
    protected $value;
    protected $type;
    protected $state;
    protected $time;
}

State:

class State
{
    protected $id;
    protected $ownerType;
    protected $ownerId;
    protected $value;
    protected $context;
    protected $reason;
    protected $time;
}

Relation:

class Relation
{
    protected $id;
    protected $object1Id;
    protected $type;
    protected $object2Id;
    protected $condition;
    protected $state;
    protected $time;
}

Scene:

class Scene
{
    protected $id;
    protected $type;
    protected $objects;
    protected $states;
    protected $relations;
    protected $condition;
    protected $environment;
    protected $time;
}

这些是 Domain Object。

它们不是数据库 Row。


228.28 Mapper映射

对应 Mapper:

IndividualMapper
ObjectMapper
AttributeMapper
StateMapper
RelationMapper
SceneMapper

例如:

class ObjectMapper
{
    public function toPersistence($object)
    {
        return array(
            'object_code'   => $object->getId(),
            'object_type'   => $object->getType(),
            'name'          => $object->getName(),
            'state'         => $object->getState()
        );
    }
}

反向:

class ObjectMapper
{
    public function toDomain($row)
    {
        return new ObjectEntity(
            $row['object_code'],
            $row['object_type'],
            $row['name'],
            $row['state']
        );
    }
}

实际工程中可以根据现有 Domain 构造方式调整。

核心原则是:

Mapper=Domain↔PersistenceMapper=Domain\leftrightarrow Persistence


228.29 Repository对应关系

六个核心 Domain 对应:

Individual
    ↓
IndividualRepository

Object
    ↓
ObjectRepository

Attribute
    ↓
AttributeRepository

State
    ↓
StateRepository

Relation
    ↓
RelationRepository

Scene
    ↓
SceneRepository

调用关系:

Service
   ↓
Repository
   ↓
Mapper
   ↓
MySQL

如果某个 Repository 需要多个表,可以协调这些表,但不应该把 Engine 的计算逻辑放进去。


228.30 Engine与核心表的关系

核心 Engine:

ObjectEngine
StateEngine
RelationEngine
SceneEngine

它们分别负责:

ObjectEngine
    → Object计算

StateEngine
    → State计算

RelationEngine
    → Relation计算

SceneEngine
    → Scene计算

因此:

ObjectEngine≠ObjectRepositoryObjectEngine\neq ObjectRepository StateEngine≠StateRepositoryStateEngine\neq StateRepository RelationEngine≠RelationRepositoryRelationEngine\neq RelationRepository SceneEngine≠SceneRepositorySceneEngine\neq SceneRepository


228.31 一次完整核心认知计算

假设系统读取一个 Individual。

首先:

IndividualRepository
        ↓
Individual

读取其 Objects:

ObjectRepository
        ↓
Objects

读取属性:

AttributeRepository
        ↓
Attributes

读取状态:

StateRepository
        ↓
States

读取关系:

RelationRepository
        ↓
Relations

然后进入 CognitiveEngine:

Individual
+
Object Facts
+
Attribute Facts
+
State Facts
+
Relation Facts
+
Condition
+
Environment
+
Time

进入:

ObjectEngine
    ↓
StateEngine
    ↓
RelationEngine
    ↓
SceneEngine

形成:

Object Result
State Result
Relation Result
Scene Result

最后进入 KnowledgeEngine 等后续认知计算。


228.32 核心数据读取顺序

一个合理的读取顺序是:

Individual→Object→Attribute→State→Relation→SceneIndividual \rightarrow Object \rightarrow Attribute \rightarrow State \rightarrow Relation \rightarrow Scene

但这只是 Repository 的数据准备顺序。

真正的 Engine 计算顺序应根据依赖关系:

Object→State→Relation→SceneObject \rightarrow State \rightarrow Relation \rightarrow Scene

原因是:

Scene=F(O,S,R,C,Env,T)Scene=F(O,S,R,C,Env,T)

Scene依赖 Object、State、Relation。


228.33 核心数据更新顺序

当运行结果产生变化:

Execution
    ↓
Result
    ↓
Feedback
    ↓
State Change

之后:

StateEngine
    ↓
Candidate State
    ↓
Verification
    ↓
UpdateEngine
    ↓
StateRepository

然后可能重新计算:

Relation
    ↓
Scene
    ↓
Knowledge
    ↓
Capability
    ↓
Method
    ↓
Decision

因此核心数据更新不是简单的:

UPDATE objects

而是一个受规则和验证约束的数据变化过程。


228.34 核心数据完整生命周期

六类核心数据可以统一表示为:

Create→Load→Calculate→Validate→Verify→Update→History→ArchiveCreate \rightarrow Load \rightarrow Calculate \rightarrow Validate \rightarrow Verify \rightarrow Update \rightarrow History \rightarrow Archive

例如 Object:

Create Object
     ↓
Save
     ↓
Load
     ↓
Calculate
     ↓
State Change
     ↓
Verify
     ↓
Update
     ↓
Object History

Relation:

Calculate Relation
     ↓
Validate
     ↓
Verify
     ↓
Save
     ↓
Update
     ↓
Relation History

Scene:

Object + State + Relation
     ↓
SceneEngine
     ↓
Scene Result
     ↓
Verify
     ↓
SceneRepository
     ↓
Scene

228.35 核心数据与历史数据

六个核心表并不意味着历史都放在核心表。

例如:

objects

保存当前 Object。

object_history

保存 Object 变化。

同样:

states
state_history

relations
relation_history

scenes
scene_history

因此:

CurrentData+HistoryDataCurrentData+HistoryData

共同形成完整生命周期。


228.36 六个核心数据的最小数据库结构

如果第一阶段只建立最小核心数据库,可以先建立:

individuals
objects
attributes
states
relations
scenes
scene_objects
scene_states
scene_relations
state_history

其中:

individuals
objects
attributes
states
relations
scenes

是六个核心主表。

而:

scene_objects
scene_states
scene_relations
state_history

属于核心关联/历史支撑表。


228.37 核心数据库结构总图

最终可以形成:

┌───────────────────────┐
│      individuals      │
│       个体核心表       │
└───────────┬───────────┘
            │
            ↓
┌───────────────────────┐
│        objects        │
│       对象核心表       │
└──────┬────┬────┬──────┘
       │    │    │
       ↓    ↓    ↓
 attributes states relations
       │    │    │
       │    ↓    │
       │ state   │
       │ history │
       │         │
       └────┬────┘
            ↓
┌───────────────────────┐
│        scenes         │
│       场景核心表       │
└──────┬────┬────┬──────┘
       ↓    ↓    ↓
 scene_objects
 scene_states
 scene_relations

228.38 核心数据与认知计算的关系

六个核心数据最终进入 ICAI 的认知计算链:

Individual→Object→State→Relation→Scene→KnowledgeIndividual \rightarrow Object \rightarrow State \rightarrow Relation \rightarrow Scene \rightarrow Knowledge

随后进入:

Knowledge→Capability→Matching→Method→DecisionKnowledge \rightarrow Capability \rightarrow Matching \rightarrow Method \rightarrow Decision

再进入:

Decision→Behavior→Action→ExecutionDecision \rightarrow Behavior \rightarrow Action \rightarrow Execution

形成:

Execution→Result→FeedbackExecution \rightarrow Result \rightarrow Feedback

最终反馈到:

State+Memory+Experience+Learning+UpdateState + Memory + Experience + Learning + Update

从而再次形成新的:

Object
State
Relation
Scene

因此核心数据库实际上处于 ICAI 整体认知循环的最底层。


228.39 核心原则

第一:

Individual≠ObjectIndividual\neq Object

Individual 是主体,Object 是被认知和操作的对象。

第二:

Object≠AttributeObject\neq Attribute

Object 是实体,Attribute 是实体的特征。

第三:

Attribute≠StateAttribute\neq State

Attribute 描述对象特征,State 描述对象当前运行状态。

第四:

Object≠RelationObject\neq Relation

Relation 表达对象之间的结构关系。

第五:

Scene≠ObjectScene\neq Object

Scene 是对象、状态、关系在条件、环境和时间下形成的组合认知结构。

第六:

CurrentState≠StateHistoryCurrentState\neq StateHistory

当前状态和历史状态必须分离。

第七:

Domain≠DatabaseDomain\neq Database

Domain Object 不能直接等同于数据库 Row。

第八:

Repository≠EngineRepository\neq Engine

Repository 保存和查询,Engine 计算和判断。


228.40 本章总结

第228章建立了 ICAI 最基础的六个核心数据实体:

Individual+Object+Attribute+State+Relation+Scene\boxed{ Individual + Object + Attribute + State + Relation + Scene }

其中:

Individual→ObjectIndividual\rightarrow Object

建立个体与对象之间的主体关系;

Object→AttributeObject\rightarrow Attribute

建立对象与属性之间的结构关系;

Object→StateObject\rightarrow State

建立对象与当前运行状态之间的关系;

Object1→Relation→Object2Object_1\rightarrow Relation\rightarrow Object_2

建立对象之间的显式关系;

最终:

Scene=F(Object,State,Relation,Condition,Environment,Time)Scene=F(Object,State,Relation,Condition,Environment,Time)

形成场景。

数据库层:

individuals
objects
attributes
states
relations
scenes

配合:

scene_objects
scene_states
scene_relations
state_history

形成 ICAI 的核心数据基础。

完整工程链为:

Domain→Mapper→Repository→PDO→MySQL\boxed{ Domain \rightarrow Mapper \rightarrow Repository \rightarrow PDO \rightarrow MySQL }

而认知计算链为:

Object→State→Relation→Scene→Knowledge\boxed{ Object \rightarrow State \rightarrow Relation \rightarrow Scene \rightarrow Knowledge }

这意味着 ICAI 的认知体系首先建立在真实、可保存、可查询、可验证、可追踪的结构化数据事实之上,再由各级 Engine 对这些事实进行离散计算、规则判断、状态转换、关系计算和场景计算,而不是把数据库本身当成智能计算主体。

Leave a Reply

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