第263章 Element API|元素 API
263.1 提出背景
第261章建立了 ICAI API Architecture|ICAI API 架构,确定了 ICAI 与外部系统之间的通信边界。
第262章进一步建立了 JSON Cognitive Data|JSON 认知数据,使 ICAI 内部的认知结构能够通过 JSON 进行标准化表示。
此时,ICAI 已经形成:
External System
↓
API
↓
JSON
↓
Cognitive Data
↓
ICAI Runtime
但是,统一认知数据还需要进一步分解为可以被独立访问的认知资源。
ICAI 的认知结构从最基础的 Element 开始:
Real-Time Data
↓
Element
↓
Object
↓
Relation
↓
State
↓
Scene
↓
Cognition
因此,API 工程首先需要解决最基础的数据对象通信问题:
外部系统如何向 ICAI 提交一个 Element?
ICAI 如何向外部系统返回一个 Element?
一个 Element 如何在 API 中被创建、读取、更新和删除?
由此建立:
Element API|元素 API。
Element API 是 ICAI API 体系中最基础的对象级 API 之一。
263.2 Element API 的定义
Element API|元素 API,是 ICAI 用于接收、创建、读取、更新和传输 Element Data|元素数据的标准化程序接口。
其基本关系为:
Element API=F(Request,Element,Response)Element\ API = F(Request,Element,Response)
其中:
- Request:外部请求;
- Element:ICAI 元素对象;
- Response:元素处理结果。
基本流程为:
External System
↓
Element API
↓
Element Controller
↓
Element Service
↓
Element Engine
↓
Element Model
返回:
Element Model
↓
Element Engine
↓
Element Service
↓
Element Controller
↓
JSON Response
↓
External System
因此:
Element API
≠
Element Engine
API 是通信入口。
Engine 是内部处理机制。
Model 是元素的内部结构。
263.3 Element API 在 ICAI 中的位置
Element API 位于 ICAI 认知系统的底层数据入口。
整体结构为:
External System
↓
Element API
↓
Element Controller
↓
Element Service
↓
Element Engine
↓
Element Model
↓
Object
↓
Scene
↓
Cognition
如果 Element 来自现实世界,则形成:
World
↓
Real-Time Data
↓
Element API
↓
Element
↓
Object
↓
Scene
↓
Cognition
因此 Element API 可以成为外部实时数据进入 ICAI 认知系统的重要入口。
263.4 Element 的 API 数据结构
第209章已经定义了 Dynamic Attribute|动态属性的基本结构。
对于 Element,可以建立统一数据结构:
E=(ID,Type,Value,Unit,Time,Source)E=(ID,Type,Value,Unit,Time,Source)
其中:
- IDID:元素唯一标识;
- TypeType:元素类型;
- ValueValue:元素值;
- UnitUnit:单位;
- TimeTime:产生时间;
- SourceSource:数据来源。
对应 JSON:
{
"element": {
"id": "element_001",
"type": "position",
"value": [10, 20, 30],
"unit": "mm",
"timestamp": 1756980000,
"source": "sensor_001"
}
}
这就是 Element API 的基础数据结构。
263.5 Element Type|元素类型
Element 不只是一个 Value。
系统必须能够知道这个数据是什么类型。
例如:
position
velocity
force
pressure
temperature
distance
orientation
image
sound
touch
state
time
因此:
{
"id": "element_002",
"type": "force",
"value": 2.5,
"unit": "N"
}
与:
{
"id": "element_003",
"type": "position",
"value": [10, 20, 30],
"unit": "mm"
}
虽然都是 Element,但具有不同的类型。
因此:
ElementType→MeaningElementType \rightarrow Meaning
Element Type 是后续对象构建和认知计算的重要依据。
263.6 Element Value|元素值
Element Value 是元素所承载的具体数据。
Value 可以是:
Scalar
Vector
Boolean
String
Array
Structured Value
例如标量:
{
"type": "force",
"value": 2.5
}
向量:
{
"type": "position",
"value": [10, 20, 30]
}
布尔值:
{
"type": "stable",
"value": true
}
因此:
Value∈{Scalar,Vector,Boolean,String,Array,Object}Value\in \{Scalar,Vector,Boolean,String,Array,Object\}
Element API 不规定所有元素必须使用相同的数据形式。
而是允许不同类型的 Element 保存不同结构的数据。
263.7 Element Timestamp|元素时间
动态认知系统中的 Element 必须具有时间属性。
定义:
Et=(ID,Type,Value,Unit,t,Source)E_t=(ID,Type,Value,Unit,t,Source)
其中 tt 表示元素产生或采集的时间。
例如:
{
"id": "element_004",
"type": "velocity",
"value": [0.5, 0, 0],
"unit": "m/s",
"timestamp": 1756980010
}
通过 Timestamp,ICAI 可以判断:
Element(t0)
↓
Element(t1)
↓
Element(t2)
从而形成动态数据序列。
因此 Element API 不只是传递“数据是什么”,还传递:
数据什么时候产生。
263.8 Element Source|元素来源
Element 还需要记录数据来源。
例如:
sensor
device
camera
microphone
external_system
user
software
calculation
JSON:
{
"id": "element_005",
"type": "pressure",
"value": 1.2,
"unit": "N/cm2",
"source": "sensor_003"
}
Source 可以帮助 ICAI 判断数据来源及其所属系统。
因此:
Element=Data+SourceElement = Data+Source
对于需要进行数据追踪的系统,Source 是重要的结构信息。
263.9 Element API Endpoint|元素 API 端点
Element API 可以建立标准 Endpoint|接口端点。
例如:
/api/element/create
/api/element/get
/api/element/update
/api/element/delete
/api/element/list
也可以采用资源型结构:
/api/elements
/api/elements/{id}
其基本关系为:
Element API
│
├── Create
├── Get
├── Update
├── Delete
└── List
这些接口负责 Element 数据的基本生命周期管理。
263.10 Create Element|创建元素
外部系统可以通过 Create Element API 提交新的元素。
请求:
{
"type": "force",
"value": 2.5,
"unit": "N",
"timestamp": 1756980010,
"source": "sensor_001"
}
API 接收以后:
Request
↓
Validation
↓
Element Creation
↓
Element Model
↓
Element Storage
↓
Response
系统可以生成:
{
"status": "success",
"element": {
"id": "element_101",
"type": "force",
"value": 2.5,
"unit": "N"
}
}
这样外部系统获得一个 ICAI Element ID。
263.11 Get Element|读取元素
外部系统可以根据 Element ID 请求元素。
例如:
GET /api/elements/element_101
处理流程:
Request
↓
Element Controller
↓
Element Service
↓
Element Model
↓
JSON Response
返回:
{
"status": "success",
"element": {
"id": "element_101",
"type": "force",
"value": 2.5,
"unit": "N",
"timestamp": 1756980010,
"source": "sensor_001"
}
}
因此 Element API 可以作为外部系统访问 ICAI 元素数据的统一入口。
263.12 Update Element|更新元素
动态认知系统中的 Element 会不断变化。
例如:
Force(t0)=2.0Force(t_0)=2.0
经过一段时间:
Force(t1)=2.5Force(t_1)=2.5
再变化为:
Force(t2)=3.0Force(t_2)=3.0
因此:
Element(t0)
↓
Element(t1)
↓
Element(t2)
API 可以通过 Update Element 完成:
External Data
↓
Element API
↓
Element Update
↓
Object Update
↓
Scene Update
↓
Cognition Update
例如:
{
"id": "element_101",
"value": 3.0,
"timestamp": 1756980020
}
更新后的元素将成为新的 Runtime 数据。
263.13 Element History|元素历史
对于动态元素,仅保存当前值可能不足以描述完整变化过程。
因此可以建立:
Element History
例如:
{
"element_id": "element_101",
"history": [
{
"value": 2.0,
"timestamp": 1756980000
},
{
"value": 2.5,
"timestamp": 1756980010
},
{
"value": 3.0,
"timestamp": 1756980020
}
]
}
这样可以得到:
E(t0)→E(t1)→E(t2)E(t_0)\rightarrow E(t_1)\rightarrow E(t_2)
元素历史可以为后续状态变化、动态计算和反馈分析提供数据基础。
263.14 Delete Element|删除元素
Element 具有生命周期。
其基本状态可以表示为:
Created
↓
Active
↓
Updated
↓
Inactive
↓
Deleted
API 可以提供 Delete Element 操作。
但是对于认知系统而言,删除并不一定意味着物理数据立即消失。
可以采用逻辑状态:
active = false
表示该元素已经不再参与当前认知运行。
因此:
Physical Data
≠
Current Cognitive Data
现实数据可能仍然存在,但 ICAI 当前运行状态中可以将其标记为 inactive。
263.15 Element Validation|元素验证
Element API 接收到数据后,不能直接进入 Runtime。
需要进行基本验证:
Request
↓
ID Validation
↓
Type Validation
↓
Value Validation
↓
Unit Validation
↓
Timestamp Validation
↓
Source Validation
↓
Element
例如:
force
↓
Value = 2.5
↓
Unit = N
如果 Value 不是有效数值,则不能形成有效 Force Element。
因此:
Valid(E)=Valid(ID)∧Valid(Type)∧Valid(Value)∧Valid(Time)Valid(E)= Valid(ID) \land Valid(Type) \land Valid(Value) \land Valid(Time)
只有:
Valid(E)=1Valid(E)=1
时,Element 才可以进入下一层处理。
263.16 Element API 与 Object API
Element API 并不等同于 Object API。
两者处于不同层级。
Element API
↓
Element
↓
Object API
↓
Object
Element 是基础认知数据。
Object 是多个元素经过结构化组织后形成的认知对象。
例如:
position
weight
shape
color
temperature
多个 Element 可以共同参与:
Object
的构建。
因此:
Object=F(E1,E2,…,En)Object=F(E_1,E_2,\ldots,E_n)
这里:
- E1,E2,…,EnE_1,E_2,\ldots,E_n 表示多个 Element;
- FF 表示对象构建关系。
263.17 Element API 与 Scene API
Scene 更高一层。
其结构为:
Element
↓
Object
↓
Relation
↓
State
↓
Scene
因此:
Element API
负责元素级通信。
而未来的:
Object API
Scene API
Cognitive API
Behavior API
Device API
则分别处理更高层级的认知结构。
可以形成 API 层次:
Element API
↓
Object API
↓
Relation API
↓
State API
↓
Scene API
↓
Cognitive API
↓
Behavior API
↓
Action API
↓
Device API
↓
Feedback API
这与 ICAI 的认知对象层次保持一致。
263.18 Element API 与 Runtime
Element API 最终不能停留在数据 CRUD 层。
真正重要的是:
Element API
↓
Runtime
例如外部系统提交一个新的 Position Element:
Position Element
↓
Element API
↓
Element Engine
↓
Object Update
↓
Scene Update
↓
Cognition Update
如果这个元素改变了对象状态:
Position
↓
Distance
↓
Reachability
↓
State
↓
Cognition
因此 Element API 可以触发整个认知链条。
263.19 Element API 的事件机制
当 Element 创建或更新以后,可以产生事件:
ElementCreated
ElementUpdated
ElementChanged
ElementExpired
ElementDeleted
例如:
ElementUpdated
↓
ObjectEngine
↓
ObjectUpdated
↓
SceneEngine
↓
SceneChanged
↓
CognitiveEngine
↓
CognitionChanged
因此:
ElementEvent→RuntimeEventElementEvent \rightarrow RuntimeEvent
Element API 与 ICAI Runtime 的事件系统可以形成连接。
263.20 Element API 的 PHP OOP 工程结构
可以建立:
ElementApiController
ElementService
ElementEngine
ElementModel
ElementRepository
其结构为:
ElementApiController
↓
ElementService
↓
ElementEngine
↓
ElementModel
↓
ElementRepository
其中:
ElementApiController
负责 API 请求和响应。
ElementService
负责元素业务服务组织。
ElementEngine
负责元素处理与更新。
ElementModel
表示元素对象。
ElementRepository
负责元素数据存取。
263.21 PHP Element API Controller
可以建立:
class ElementApiController
{
protected $elementService;
public function create($request)
{
$data = $this->validate($request);
$element = $this->elementService->create($data);
return $this->response($element);
}
public function get($id)
{
$element = $this->elementService->get($id);
return $this->response($element);
}
protected function validate($request)
{
return $request;
}
protected function response($element)
{
return array(
'status' => 'success',
'element' => $element
);
}
}
这里 Controller 仍然不负责认知计算。
它只负责 API 层的控制。
263.22 PHP Element Service
Service 负责调用 Element Engine。
class ElementService
{
protected $elementEngine;
public function create($data)
{
return $this->elementEngine->create($data);
}
public function get($id)
{
return $this->elementEngine->get($id);
}
public function update($id, $data)
{
return $this->elementEngine->update($id, $data);
}
}
形成:
API Controller
↓
Element Service
↓
Element Engine
这样 API 层不会直接耦合底层 Element 数据结构。
263.23 PHP Element Engine
Element Engine 负责元素内部处理。
class ElementEngine
{
protected $repository;
public function create($data)
{
return $this->repository->create($data);
}
public function get($id)
{
return $this->repository->find($id);
}
public function update($id, $data)
{
return $this->repository->update($id, $data);
}
}
进一步可以在 Engine 中加入:
Type Check
Value Check
Unit Check
Timestamp Check
Source Check
State Update
Event Dispatch
因此 Engine 是 Element API 与内部 Runtime 之间的处理层。
263.24 Element API Request Model
一个标准 Element Request 可以定义:
ER={Type,Value,Unit,Timestamp,Source}ER= \{Type,Value,Unit,Timestamp,Source\}
例如:
{
"type": "distance",
"value": 25,
"unit": "mm",
"timestamp": 1756980030,
"source": "sensor_004"
}
API Controller 接收到以后:
Request
↓
Validation
↓
Element
↓
Element Engine
最终形成 ICAI 内部 Element Object。
263.25 Element API Response Model
Response 可以定义:
EP={ID,Type,Value,Unit,Timestamp,Source,Status}EP= \{ID,Type,Value,Unit,Timestamp,Source,Status\}
例如:
{
"status": "success",
"element": {
"id": "element_105",
"type": "distance",
"value": 25,
"unit": "mm",
"timestamp": 1756980030,
"source": "sensor_004"
}
}
Response 不仅告诉外部系统数据内容,还告诉外部系统:
Request 是否成功
+
Element 是否有效
+
Element 当前状态
263.26 Element API 与实时数据
ICAI 是动态认知系统,因此 Element API 可以成为实时数据入口。
例如:
Sensor
↓
Real-Time Data
↓
Element API
↓
Element
↓
Object
↓
Scene
↓
Cognition
如果连续产生数据:
Sensor
↓
E1
↓
E2
↓
E3
↓
E4
↓
E5
则 ICAI 可以形成:
E1→E2→E3→E4→E5E_1\rightarrow E_2\rightarrow E_3\rightarrow E_4\rightarrow E_5
进一步计算:
Xt=[x1(t),x2(t),…,xn(t)]X_t=[x_1(t),x_2(t),…,x_n(t)]
形成动态属性向量。
因此 Element API 可以成为实时认知数据流进入 ICAI 的底层通信接口。
263.27 Element API 与认知闭环
Element API 最终进入完整认知闭环:
External Data
↓
Element API
↓
Element
↓
Object
↓
Relation
↓
State
↓
Scene
↓
Cognition
↓
Behavior
↓
Action
↓
Device
↓
Feedback
↓
Element Update
↓
Re-Cognition
因此,Element API 并不是一个孤立的数据接口。
它位于认知闭环的数据入口和更新位置。
263.28 Element API 的完整架构
综合本章,可以建立:
External System
│
↓
Element API
│
↓
Element API Controller
│
↓
Element Service
│
↓
Element Engine
│
↓
Element Model
│
↓
Object
│
↓
Scene
│
↓
Cognition
│
↓
Behavior
│
↓
Action
│
↓
Device
│
↓
Feedback
│
↓
Element Update
这形成了 Element API 与 ICAI Runtime 之间的完整关系。
263.29 Element API 的核心原则
Element API 建立过程中需要保持几个基本原则。
第一,元素独立
Element API 只负责 Element 层的数据,不直接承担完整对象认知。
第二,结构统一
所有 Element 都遵循统一的数据结构:
E=(ID,Type,Value,Unit,Time,Source)E=(ID,Type,Value,Unit,Time,Source)
第三,动态更新
Element 可以随时间变化:
Et→Et+1E_t\rightarrow E_{t+1}
第四,来源明确
每一个动态元素都可以记录 Source。
第五,时间明确
每一个动态元素都可以记录 Timestamp。
第六,认知解耦
API、Element Engine、Object Engine、Cognitive Engine 各自保持独立。
第七,数据驱动
新的实时元素进入系统后,可以根据当前对象、关系和场景动态参与认知。
因此不需要为每一种具体对象建立独立的 Element API。
263.30 本章总结
第263章建立了 Element API|元素 API。
本章将第262章的 JSON Cognitive Data 进一步落实到最基础的认知对象层。
其核心结构为:
External System
↓
Element API
↓
Element Controller
↓
Element Service
↓
Element Engine
↓
Element Model
↓
Object
↓
Scene
↓
Cognition
Element 的统一结构为:
E=(ID,Type,Value,Unit,Time,Source)E=(ID,Type,Value,Unit,Time,Source)
并支持:
Create
Get
Update
Delete
List
History
Validation
Event
因此形成:
Real-Time Data
↓
Element API
↓
Element
↓
Object
↓
Scene
↓
Cognition
同时,当反馈产生以后,又可以反向进入:
Feedback
↓
Element Update
↓
Object Update
↓
Scene Update
↓
Re-Cognition
由此,Element API 成为 ICAI API Architecture 中最底层的认知数据通信接口。
第261章解决:
ICAI 如何对外通信?
第262章解决:
认知数据如何通过 JSON 表示?
第263章进一步解决:
最基础的 Element 如何通过 API 进入和离开 ICAI?
由此下一层可以自然进入:
Element API
↓
Object API
↓
Object JSON
↓
Object Instance
↓
Object Runtime
因此下一章进入:
第264章 Object API|对象 API