第161章 Individual基类
161.1 本章提出背景
第160章建立了 PHP OOP 的基本工程结构。Class 用于定义对象结构,Object 用于形成具体运行实体,Property 保存对象信息,Method 执行对象操作,Constructor 完成对象初始化,Encapsulation 管理对象内部结构。
在此基础上,ICAI 需要进一步解决一个更高层的问题:
如果系统要模拟一个能够持续存在、具有自身状态、拥有对象、积累知识、形成目标、使用能力并产生行为的 Individual,那么这些信息应该由什么程序对象统一承载?
因此,需要建立 Individual Class(个体类)。
Individual Class 不是普通的业务对象类,而是 ICAI 个体运行环境的基础类。它负责建立一个相对完整的“个体”程序实体,使 Identity、State、Objects、Relations、Knowledge、Goals、Capabilities、Methods 和 Behaviors 能够在同一个 Individual 内形成结构化关联。
其基本结构可以表示为:
Individual → Identity + Type + State + Objects + Relations + Knowledge + Goals + Capabilities + Methods + Behaviors
161.2 Individual Class:个体类
**Individual Class(个体类)**是 ICAI 中用于定义“个体”程序结构的基础 Class。
它不是某一个具体的人,也不是某一个具体设备,而是对“一个具有独立身份、内部状态、对象集合、关系集合、知识、目标、能力、方法和行为的运行个体”的程序抽象。
可以定义基础结构:
class Individual
{
protected $identity;
protected $type;
protected $state;
protected $objects = array();
protected $relations = array();
protected $knowledge = array();
protected $goals = array();
protected $capabilities = array();
protected $methods = array();
protected $behaviors = array();
}
这里的 $individual 并不是简单的数据集合,而是一个具有内部结构和运行能力的 OOP Object。
其基本关系是:
Individual Class
↓
Individual Object
↓
个体运行实体
因此:
Individual Class = 个体结构定义
Individual Object = 具体个体运行实例
161.3 Individual的基本结构
Individual 可以建立为一个多层对象结构:
Individual
│
├── Identity
├── Type
├── State
│
├── Objects
├── Relations
│
├── Knowledge
├── Goals
├── Capabilities
├── Methods
└── Behaviors
这十个部分并不是十个相互独立的数据字段,而是共同构成 Individual 的内部运行结构。
可以进一步分为四个层次。
第一层:个体自身
Identity
Type
State
回答:
“我是谁?属于什么类型?当前处于什么状态?”
第二层:个体内部认知世界
Objects
Relations
Knowledge
回答:
“我有什么对象?对象之间有什么关系?我知道什么?”
第三层:个体运行方向
Goals
Capabilities
Methods
回答:
“我要完成什么?我能够做什么?我通过什么方法完成?”
第四层:个体外部表现
Behaviors
回答:
“这个个体最终执行了什么行为?”
形成:
Identity → Objects → Knowledge → Goals → Capabilities → Methods → Behaviors
同时受到:
State
持续影响。
161.4 Identity:个体身份
**Identity(身份)**用于确定 Individual 是哪个具体个体。
身份不是普通名称,而是个体在系统内部保持连续性的基础。
例如:
class Identity
{
protected $id;
protected $name;
public function __construct($id, $name)
{
$this->id = $id;
$this->name = $name;
}
public function getId()
{
return $this->id;
}
public function getName()
{
return $this->name;
}
}
Individual 使用 Identity:
class Individual
{
protected $identity;
public function setIdentity(Identity $identity)
{
$this->identity = $identity;
}
public function getIdentity()
{
return $this->identity;
}
}
于是:
Individual
↓
Identity
├── ID
└── Name
Identity 的主要作用是建立:
个体存在的唯一标识 → 个体连续性
没有 Identity,系统就无法可靠地区分不同 Individual Object。
161.5 Type:个体类型
**Type(类型)**用于描述 Individual 属于哪一种个体类别。
例如:
Human
Machine
Robot
SoftwareAgent
Device
Organization
在程序中可以暂时表示为:
$individual->setType('machine');
形成:
Individual
├── Identity
└── Type = machine
Identity 与 Type 必须区分。
Identity回答“是哪一个”
Type回答“属于哪一类”
例如:
Identity = machine_001
Type = robot
两个 Robot 可以具有相同 Type,但不能具有相同的 Individual Identity。
161.6 State:个体状态
**State(状态)**描述 Individual 在某一个时间点的运行状态。
例如:
created
idle
running
waiting
learning
executing
stopped
可以建立:
class Individual
{
protected $state;
public function setState($state)
{
$this->state = $state;
}
public function getState()
{
return $this->state;
}
}
状态不是静态身份。
例如:
Identity = individual_001
Type = machine
State = idle
经过运行:
idle
↓
running
↓
executing
↓
completed
↓
idle
因此:
Identity保持个体连续性,State描述个体当前状态。
161.7 Objects:个体对象集合
Individual 不可能只拥有自身身份和状态。
一个运行个体还必须能够处理大量 Object。
因此:
Individual
↓
Objects
├── Object A
├── Object B
├── Object C
└── ...
PHP 中可以建立:
class Individual
{
protected $objects = array();
public function addObject($object)
{
$this->objects[] = $object;
}
public function getObjects()
{
return $this->objects;
}
}
例如:
$individual->addObject($egg);
$individual->addObject($hand);
$individual->addObject($table);
形成:
Individual
↓
Objects
├── Egg
├── Hand
└── Table
这里的 Objects 是 Individual 当前能够处理、管理或关联的对象集合。
161.8 Relations:对象关系
只有 Objects 还不够。
ICAI 必须能够表达对象之间的关系。
例如:
Hand → holds → Egg
Egg → on → Table
Individual → observes → Egg
因此 Individual 需要 Relations。
class Individual
{
protected $relations = array();
public function addRelation($relation)
{
$this->relations[] = $relation;
}
public function getRelations()
{
return $this->relations;
}
}
形成:
Individual
│
├── Objects
│ ├── Hand
│ ├── Egg
│ └── Table
│
└── Relations
├── Hand → holds → Egg
└── Egg → on → Table
因此:
Objects描述“有什么”
Relations描述“它们之间是什么关系”
这是从对象集合进入认知结构的重要一步。
161.9 Knowledge:知识
**Knowledge(知识)**是 Individual 内部已经形成并保存的结构化认知信息。
在 ICAI 中,Knowledge 不应简单理解成一段文章,而应该理解为可以被系统保存、检索、匹配和使用的信息结构。
例如:
Object:
Egg
Attribute:
round
fragile
Relation:
Egg → on → Table
Experience:
Egg can be grasped by Hand
Individual 可以拥有:
Individual
↓
Knowledge
├── Object Knowledge
├── Attribute Knowledge
├── Relation Knowledge
├── State Knowledge
└── Experience Knowledge
因此 Knowledge 与 Objects 不完全相同。
Objects 是当前个体关联的对象。
Knowledge 则是个体已经形成并保存的认知信息。
161.10 Goals:目标
**Goals(目标)**描述 Individual 希望实现的结果。
例如:
Goal:
grasp egg
可以表示:
Current State
↓
Goal State
例如:
Egg on Table
↓
Goal
Egg in Hand
于是 Individual 的运行过程可以表示:
Current State → Goal → Method → Behavior → New State
这使 Individual 不再只是“保存数据”,而开始具备目标驱动的运行结构。
161.11 Capabilities:能力
**Capabilities(能力)**表示 Individual 当前能够执行什么类型的操作。
例如:
observe
move
grasp
release
store
learn
可以表示:
Capabilities
├── Observe
├── Move
├── Grasp
└── Release
能力与目标之间形成重要关系:
Goal
↓
需要什么能力?
↓
Capabilities
例如:
Goal = Grasp Egg
Required Capability
↓
Grasp
如果 Individual 不具有 Grasp Capability,那么目标虽然存在,却不能直接完成。
因此:
Goal定义方向,Capability定义可能性。
161.12 Methods:方法集合
**Methods(方法)**表示 Individual 实际用于处理问题和完成目标的操作方式。
Capability 和 Method 虽然相关,但并不相同。
例如:
Capability:
Grasp
表示:
能够抓取。
而:
Method:
GraspByHand
表示:
通过某一种具体方法完成抓取。
形成:
Capability
↓
Method
↓
Operation
例如:
Grasp Capability
↓
GraspByHand Method
↓
Move Hand
↓
Contact Egg
↓
Close Fingers
↓
Hold Egg
因此,Capability 是能力层,Method 是实现层。
161.13 Behaviors:行为
**Behavior(行为)**是 Individual 在运行环境中实际表现出来的动作过程。
例如:
observe egg
→ move hand
→ contact egg
→ grasp egg
→ lift egg
形成:
Goal
↓
Capability
↓
Method
↓
Behavior
↓
Environment
↓
Feedback
Behavior 是 Individual 与外部环境发生实际交互的重要出口。
因此:
Knowledge
↓
Goal
↓
Capability
↓
Method
↓
Behavior
↓
State Change
↓
Feedback
这个过程开始形成 ICAI 的个体运行闭环。
161.14 Individual基类的完整结构
将本章所有部分组合起来,可以建立基础 Individual Class:
class Individual
{
protected $identity;
protected $type;
protected $state;
protected $objects = array();
protected $relations = array();
protected $knowledge = array();
protected $goals = array();
protected $capabilities = array();
protected $methods = array();
protected $behaviors = array();
public function setIdentity($identity)
{
$this->identity = $identity;
}
public function setType($type)
{
$this->type = $type;
}
public function setState($state)
{
$this->state = $state;
}
public function addObject($object)
{
$this->objects[] = $object;
}
public function addRelation($relation)
{
$this->relations[] = $relation;
}
public function addKnowledge($knowledge)
{
$this->knowledge[] = $knowledge;
}
public function addGoal($goal)
{
$this->goals[] = $goal;
}
public function addCapability($capability)
{
$this->capabilities[] = $capability;
}
public function addMethod($method)
{
$this->methods[] = $method;
}
public function addBehavior($behavior)
{
$this->behaviors[] = $behavior;
}
}
这个 Class 目前是Individual 基础对象模型,不是完整的 ICAI Cognitive Engine。
它首先解决的是:
一个 Individual 在程序中应该具有什么基本结构。
161.15 Individual运行模型
建立 Individual Object 后,可以形成:
Individual
↓
Identity
↓
Type
↓
State
↓
Objects
↓
Relations
↓
Knowledge
↓
Goals
↓
Capabilities
↓
Methods
↓
Behaviors
↓
Feedback
↓
State Update
其中并不是简单的线性执行。
更准确的模型是:
┌──────── Knowledge ────────┐
↓ │
Identity → State → Objects → Relations │
↓ │
Goals │
↓ │
Capabilities │
↓ │
Methods │
↓ │
Behaviors │
↓ │
Environment │
↓ │
Feedback ──────────────────────┘
这样 Individual 就开始具有持续运行的可能。
161.16 Individual基类与ICAI的关系
Individual Class 是 ICAI 工程中的一个上层基础对象。
它不替代 Element、Object、Attribute、Relation、State、Method 和 Behavior,而是把这些对象组织到一个具有独立身份的 Individual 运行实体之中。
可以形成层级:
Individual
│
├── Identity
├── Type
├── State
│
├── Object System
│ ├── Objects
│ ├── Attributes
│ └── Relations
│
├── Knowledge System
│ ├── Knowledge
│ └── Experience
│
├── Goal System
│ └── Goals
│
├── Capability System
│ └── Capabilities
│
├── Method System
│ └── Methods
│
└── Behavior System
└── Behaviors
因此,第161章建立的是一个个体级容器与运行主体。
后续的各个 Class 可以逐步成为它内部的组成对象。
161.17 从Individual基类进入认知工程
第160章解决的是:
PHP如何建立对象。
第161章解决的是:
ICAI中的“个体”应该由哪些程序对象组成。
两章连接起来就是:
PHP OOP
↓
Class
↓
Object
↓
Individual Class
↓
Individual Object
↓
Identity
Type
State
Objects
Relations
Knowledge
Goals
Capabilities
Methods
Behaviors
由此,ICAI 从单个 PHP Object 开始进入**Individual Runtime Object(个体运行对象)**阶段。
161.18 本章小结
Individual Class 是 ICAI 个体工程的基础类。它将一个独立个体抽象为具有身份、类型、状态、对象、关系、知识、目标、能力、方法和行为的程序实体。
其核心结构可以概括为:
Individual = Identity + Type + State + Objects + Relations + Knowledge + Goals + Capabilities + Methods + Behaviors
其中:
Identity → 确定个体是谁
Type → 确定个体属于什么类型
State → 描述个体当前状态
Objects → 描述个体所关联的对象
Relations → 描述对象之间的关系
Knowledge → 保存个体已经形成的认知信息
Goals → 描述个体希望实现的结果
Capabilities → 描述个体能够做什么
Methods → 描述个体如何完成操作
Behaviors → 描述个体实际执行了什么
最终形成 ICAI 个体的基础运行链:
Identity → State → Objects → Relations → Knowledge → Goals → Capabilities → Methods → Behaviors → Feedback → State
这个 Individual 基类建立之后,下一步就可以继续把 Element、Object、Attribute、Relation、State 等具体认知对象正式嵌入 Individual 的 OOP 对象体系,使“个体”从一个基础 Class 逐步变成真正可以运行的 ICAI 对象模型。