第二十七章 生命状态元素工程
——Individual State Element Model
27.1 人工个体为什么需要生命状态
在前面的章节中,人工个体已经建立了身份、性格、价值、经历、教育、职业、社会角色和关系等基本元素。
这些元素回答的是:
这个人工个体具有什么。
但是,仅仅拥有这些元素,还不足以形成一个能够持续运行的人工个体。
因为个体并不是静止存在的。
同一个人工个体,在不同时间、不同环境、不同经历以及不同内部条件下,会处于不同状态。
例如,一个人工个体具有:
这些内容可以长期存在。
但是,在某一个具体时间,它可能处于:
等不同状态。
因此,在人工个体的对象结构中,必须增加一个独立维度:
其中:
Elements描述个体拥有的属性。
Relationships描述元素之间以及个体与其他对象之间的关系。
States描述个体在特定时间和条件下所处的实际状态。
27.1.1 状态不是身份
例如:
这是身份和职业元素。
而:
不是职业本身,而是当前状态。
同一个职业元素:
可以对应不同状态:
因此:
同样:
状态必须作为独立对象存在。
27.1.2 状态具有时间性
普通元素可以相对稳定地存在。
例如:
而状态具有明显的时间属性。
例如:
因此状态不能简单设计成:
因为这种设计只能知道:
现在是什么状态。
却无法知道:
之前是什么状态。
更不能知道:
为什么发生了变化。
所以人工个体的状态必须具有时间结构:
27.1.3 状态具有变化性
状态不是一个永久固定的值。
它应该被理解为:
例如:
这条变化过程本身,就是人工个体历史的一部分。
因此,本章研究的并不仅仅是:
“当前状态是什么?”
而是进一步研究:
人工个体的状态如何产生、如何持续、如何变化,以及状态变化如何影响认知、判断、决策和行为。
27.1.4 状态进入人工认知
状态最重要的工程意义在于:
状态会进入认知过程。
同一个对象,在不同状态下,人工个体可能产生不同理解。
例如:
当人工个体处于:
状态时,可能形成:
当人工个体处于:
状态时,可能形成:
对象没有发生变化。
变化的是人工个体自身状态。
因此可以形成:
进一步:
这说明,状态不是附加信息,而是人工个体认知结构的重要输入。
27.1.5 状态进入软件对象
在PHP OOP实现中,状态不能只是Individual类中的几个字段。
不推荐:
因为随着系统发展,Individual会不断膨胀。
更合理的结构是:
状态独立成为对象:
于是形成:
状态成为人工个体中的独立工程对象。
27.1.6 状态进入WSaiOS
在WSaiOS-ICAI中,状态进一步由独立Engine负责:
状态Engine负责:
系统结构可以形成:
而前端表现由Smarty完成:
由此,本章开始把“生命状态”从理论概念转化为真正能够进入PHP OOP、MVC、Smarty和数据库体系的工程对象。
27.1.7 生命状态元素的基本定义
因此,本书将生命状态元素定义为:
与人工个体当前存在条件、时间位置、身体条件、心理条件、环境条件和生活条件相关,并能够随经历、事件和行为发生变化的动态个体元素。
其基本结构为:
最终进入:
由此形成一个完整的动态循环。
27.1 小结
27.1建立了本章最基本的工程定义:
人工个体不仅需要拥有元素,还必须拥有状态。
元素解决:
“个体有什么?”
关系解决:
“元素如何联系?”
状态解决:
“个体现在处于什么条件?”
因此,ICAI的个体结构进一步从:
发展为:
而状态又会继续进入:
这就使人工个体从一个静态对象集合,开始转变为一个能够持续变化的动态人工对象。