第158章 ICAI对象关系模型
158.1 提出背景
第157章建立了ICAI从理论概念到对象模型的完整转换:
TheoryConcept→MathematicalModel→LogicalModel→DataObject→DomainObject→ObjectRelation→RuntimeObjectTheoryConcept \rightarrow MathematicalModel \rightarrow LogicalModel \rightarrow DataObject \rightarrow DomainObject \rightarrow ObjectRelation \rightarrow RuntimeObject
但是,单独建立Domain Object还不能形成完整的ICAI工程。
机器个体不是一个孤立对象,而是由大量对象按照一定关系组成的整体:
Object1→Relation→Object2Object_1 \rightarrow Relation \rightarrow Object_2
例如:
Individual→CognitionIndividual \rightarrow Cognition Goal→CapabilityGoal \rightarrow Capability Capability→MethodCapability \rightarrow Method Method→DecisionMethod \rightarrow Decision Decision→BehaviorDecision \rightarrow Behavior Behavior→ResultBehavior \rightarrow Result
如果没有对象关系,ICAI中的对象只能成为彼此孤立的数据结构,无法形成真正的机器个体。
因此,本章建立ICAI对象关系模型:
ObjectRelationModel=Association+Composition+Inheritance+Dependency+Lifecycle\boxed{ ObjectRelationModel= Association+ Composition+ Inheritance+ Dependency+ Lifecycle }
158.2 对象关系模型定义
**ICAI对象关系模型(ICAI Object Relation Model)**是指按照ICAI理论定义不同领域对象之间的关联、组成、继承、依赖以及生命周期关系,并使这些关系能够在程序中被表达、保存、计算和运行的对象模型。
形式化:
ORM=Association+Composition+Inheritance+Dependency+Lifecycle\boxed{ ORM= Association+ Composition+ Inheritance+ Dependency+ Lifecycle }
其中:
- AssociationAssociation:对象关联;
- CompositionComposition:对象组合;
- InheritanceInheritance:对象继承;
- DependencyDependency:对象依赖;
- LifecycleLifecycle:对象生命周期。
这里的ORM表示Object Relation Model,不等同于数据库领域通常所说的Object-Relational Mapping。
158.3 对象关系的基本结构
ICAI对象关系统一表示为:
R={Subject,Type,Object,Direction,Condition,State,Time}\boxed{ R= \{ Subject, Type, Object, Direction, Condition, State, Time \} }
其中:
- SubjectSubject:关系主体;
- TypeType:关系类型;
- ObjectObject:关系对象;
- DirectionDirection:关系方向;
- ConditionCondition:关系成立条件;
- StateState:关系当前状态;
- TimeTime:关系发生或者有效时间。
因此:
ObjectA→RObjectBObject_A \xrightarrow{R} Object_B
不是简单的程序指针,而是具有明确领域语义的关系。
158.4 对象关联
158.4.1 对象关联定义
**对象关联(Object Association)**是指两个或多个领域对象之间存在相对独立、可以独立存在,但在特定条件下相互连接的关系。
基本形式:
ObjectA↔ObjectB\boxed{ Object_A \leftrightarrow Object_B }
或者:
ObjectA→Relation→ObjectBObject_A \rightarrow Relation \rightarrow Object_B
关联关系的主要特点是:
ObjectA≠ObjectBObject_A\neq Object_B
并且:
Exist(ObjectA)Exist(Object_A)
不必要求:
Exist(ObjectB)Exist(Object_B)
158.5 关联与对象独立性
例如:
Customer→PlacesOrder→OrderCustomer \rightarrow PlacesOrder \rightarrow Order
Customer和Order是两个独立领域对象。
即使:
Order→DeletedOrder \rightarrow Deleted
Customer仍然存在。
因此:
Association≠CompositionAssociation \neq Composition
关联强调:
两个对象之间存在关系。
组合强调:
一个对象由另一个对象组成。
158.6 ICAI中的关联类型
ICAI关联可以包括:
AssociationType={Has,Uses,RelatedTo,Operates,BelongsTo,LocatedIn,Connects,Observes}AssociationType= \{ Has, Uses, RelatedTo, Operates, BelongsTo, LocatedIn, Connects, Observes \}
例如:
Individual→Has→CapabilityIndividual \rightarrow Has \rightarrow Capability Individual→Has→MemoryIndividual \rightarrow Has \rightarrow Memory Behavior→Uses→MethodBehavior \rightarrow Uses \rightarrow Method ObjectA→RelatedTo→ObjectBObject_A \rightarrow RelatedTo \rightarrow Object_B
158.7 关联方向
关联具有方向:
A→BA\rightarrow B
不必等于:
B→AB\rightarrow A
例如:
Individual→Has→MemoryIndividual \rightarrow Has \rightarrow Memory
表达的是个体拥有记忆结构。
而:
Memory→BelongsTo→IndividualMemory \rightarrow BelongsTo \rightarrow Individual
表达的是记忆属于哪个个体。
两者虽然可以互相对应,但语义不同。
因此:
AssociationDirection≠OptionalInformation\boxed{ AssociationDirection\neq OptionalInformation }
而是对象关系结构的一部分。
158.8 关联的条件
关联不一定永久成立。
例如:
Individual→Uses→CapabilityIndividual \rightarrow Uses \rightarrow Capability
可能只有在:
CapabilityState=AvailableCapabilityState=Available
时成立。
因此:
Association=ObjectA+ObjectB+ConditionAssociation= Object_A+ Object_B+ Condition
动态关系:
Rt→Rt+1R_t\rightarrow R_{t+1}
例如:
Available→UnavailableAvailable \rightarrow Unavailable
会导致:
Uses→NotAvailableUses \rightarrow NotAvailable
158.9 对象组合
158.9.1 对象组合定义
**对象组合(Object Composition)**是指一个领域对象由多个具有明确职责的子对象共同构成,并形成一个具有整体边界的领域对象结构。
基本形式:
AggregateObject=Object1+Object2+⋯+Objectn\boxed{ AggregateObject = Object_1+ Object_2+ \cdots+ Object_n }
ICAI机器个体就是典型的组合对象。
158.10 Individual Object的组合
机器个体:
IndividualObjectIndividualObject
可以组合:
CognitiveObjectCognitiveObject BehaviorObjectBehaviorObject MemoryObjectMemoryObject MaintenanceObjectMaintenanceObject
形成:
MachineIndividual=Individual+Cognition+Behavior+Memory+Maintenance\boxed{ MachineIndividual = Individual + Cognition + Behavior + Memory + Maintenance }
因此:
Individual→CognitiveObjectIndividual \rightarrow CognitiveObject Individual→BehaviorObjectIndividual \rightarrow BehaviorObject Individual→MemoryObjectIndividual \rightarrow MemoryObject Individual→MaintenanceObjectIndividual \rightarrow MaintenanceObject
158.11 组合与关联的区别
二者必须严格区分。
关联
A↔BA\leftrightarrow B
两个对象可以独立存在。
组合
A={B,C,D}A=\{B,C,D\}
B、C、D构成A的内部整体结构。
因此:
Association=对象之间的连接\boxed{ Association=对象之间的连接 } Composition=对象内部的组成\boxed{ Composition=对象内部的组成 }
158.12 组合的层次
ICAI可以形成多层组合。
例如:
MachineIndividualMachineIndividual
内部:
CognitiveDomainCognitiveDomain
认知领域内部:
CognitiveObjectCognitiveObject
而CognitiveObject又具有:
AttributeAttribute StateState RelationRelation
形成:
MachineIndividual→Cognition→Object→Attribute/State/RelationMachineIndividual \rightarrow Cognition \rightarrow Object \rightarrow Attribute/State/Relation
行为同样:
MachineIndividual→Behavior→Action→ResultMachineIndividual \rightarrow Behavior \rightarrow Action \rightarrow Result
因此:
ICAIObject=MultiLevelComposition\boxed{ ICAIObject = MultiLevelComposition }
158.13 组合边界
组合对象必须具有边界。
例如:
MachineIndividualMachineIndividual
拥有:
MemoryMemory
但是其他机器个体的Memory不应该自动成为该个体Memory。
因此:
Memory(I1)≠Memory(I2)Memory(I_1) \neq Memory(I_2)
对象组合必须遵守:
ObjectBoundaryObjectBoundary
否则会产生个体之间的数据混淆。
158.14 组合生命周期
组合关系通常具有生命周期约束。
例如:
MachineIndividual→MemoryMachineIndividual \rightarrow Memory
机器个体初始化:
IndividualCreated→MemoryInitializedIndividualCreated \rightarrow MemoryInitialized
机器个体终止:
IndividualTerminated→MemoryArchivedIndividualTerminated \rightarrow MemoryArchived
因此组合关系可以参与生命周期管理。
158.15 对象继承
158.15.1 对象继承定义
**对象继承(Object Inheritance)**是指一个对象类型在保持父类型基本结构和规则的基础上,获得父类型可继承特征,并增加自身特有结构的关系。
基本形式:
ChildType→ParentType\boxed{ ChildType \rightarrow ParentType }
或者:
ChildType⊆ParentTypeChildType\subseteq ParentType
158.16 ICAI类型继承
例如:
EnterpriseIndividual⊆SocialIndividualEnterpriseIndividual \subseteq SocialIndividual RobotIndividual⊆MachineIndividualRobotIndividual \subseteq MachineIndividual IndustrialIndividual⊆MachineIndividualIndustrialIndividual \subseteq MachineIndividual
这种关系描述的是:
一个类型属于另一个更一般的类型。
158.17 继承与组合不能混淆
例如:
RobotIndividual⊆MachineIndividualRobotIndividual \subseteq MachineIndividual
是继承关系。
但是:
RobotIndividual→MemoryRobotIndividual \rightarrow Memory
是组合或关联关系。
因此:
Inheritance≠CompositionInheritance\neq Composition
判断原则:
如果表达:
A是一种B。
使用:
A⊆BA\subseteq B
如果表达:
A具有B。
使用:
A→Has→BA\rightarrow Has\rightarrow B
158.18 ICAI继承层次
可以建立:
Individual
│
├── NaturalIndividual
│
├── SocialIndividual
│
├── InformationIndividual
│
├── ServiceIndividual
│
└── MachineIndividual
│
├── ProductIndividual
├── DeviceIndividual
├── IndustrialIndividual
└── RobotIndividual
这里表达的是类型层次:
TypeChild⊆TypeParentType_Child\subseteq Type_Parent
而不是每一个类型都必须建立完全独立的认知系统。
所有类型仍然共享:
GeneralCoreTheoryGeneralCoreTheory
158.19 继承的工程表达
PHP中可以表达类型继承:
class MachineIndividual
{
protected $id;
protected $type;
protected $state;
}
例如:
class RobotIndividual extends MachineIndividual
{
protected $device;
protected $motion;
}
这里:
RobotIndividualRobotIndividual
继承:
MachineIndividualMachineIndividual
的基础结构。
但ICAI工程不应为了使用继承而建立过深的继承树。
158.20 为什么ICAI不能过度使用继承
ICAI机器个体结构变化较大。
例如同样是Robot:
RobotA≠RobotBRobot_A\neq Robot_B
它们可以具有不同:
CapabilityCapability MemoryMemory ExperienceExperience MethodMethod
因此,更重要的是:
CompositionComposition
而不是建立大量Class继承。
原则:
TypeDifference→Inheritance\boxed{ TypeDifference\rightarrow Inheritance } StructureDifference→Composition\boxed{ StructureDifference\rightarrow Composition }
158.21 对象依赖
158.21.1 对象依赖定义
**对象依赖(Object Dependency)**是指一个对象在完成自身某项职责或者运行某项操作时,需要使用另一个对象提供的结构、状态、能力、方法或结果。
基本形式:
ObjectA→DependsOn→ObjectB\boxed{ Object_A \rightarrow DependsOn \rightarrow Object_B }
158.22 依赖与关联的区别
关联表示:
A和B存在关系。
依赖表示:
A的某项运行需要B。
例如:
Behavior→Uses→MethodBehavior \rightarrow Uses \rightarrow Method
这属于行为对方法的依赖。
又如:
Decision→DependsOn→CapabilityDecision \rightarrow DependsOn \rightarrow Capability
如果能力不可用:
CapabilityState=UnavailableCapabilityState=Unavailable
则:
Decision→BlockedDecision \rightarrow Blocked
158.23 依赖与组合的区别
组合:
A={B,C}A=\{B,C\}
表示B是A结构的一部分。
依赖:
A→DependsOn→BA\rightarrow DependsOn\rightarrow B
B不一定属于A内部。
例如:
Decision→DependsOn→RiskEvaluationDecision \rightarrow DependsOn \rightarrow RiskEvaluation
RiskEvaluation可以由独立Engine产生。
因此:
Dependency≠CompositionDependency\neq Composition
158.24 ICAI核心依赖链
ICAI存在大量运行依赖:
Need→GoalNeed \rightarrow Goal Goal→CapabilityGoal \rightarrow Capability Capability→MethodCapability \rightarrow Method Method→DecisionMethod \rightarrow Decision Decision→BehaviorDecision \rightarrow Behavior Behavior→ActionBehavior \rightarrow Action Action→ResultAction \rightarrow Result Result→FeedbackResult \rightarrow Feedback
因此:
Need→Goal→Capability→Method→Decision→Behavior→Action→Result\boxed{ Need \rightarrow Goal \rightarrow Capability \rightarrow Method \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Result }
本质上也是一条对象运行依赖链。
158.25 依赖条件
对象依赖不是绝对的。
例如:
Decision→CapabilityDecision \rightarrow Capability
只有:
CapabilityAvailable=TrueCapabilityAvailable=True
才能继续:
Decision→BehaviorDecision \rightarrow Behavior
因此:
DependencyCondition=ObjectState+CapabilityState+Resource+RuleDependencyCondition= ObjectState+ CapabilityState+ Resource+ Rule
如果依赖条件不满足:
DependencyFailureDependencyFailure
可能导致:
BlockedBlocked
或者:
AlternativeAlternative
158.26 依赖关系的动态变化
对象依赖会随着状态变化而变化:
Dependencyt→Dependencyt+1Dependency_t \rightarrow Dependency_{t+1}
例如:
CapabilityA→AvailableCapability_A \rightarrow Available
时:
MethodA→ExecutableMethod_A \rightarrow Executable
而:
CapabilityA→UnavailableCapability_A \rightarrow Unavailable
则:
MethodA→BlockedMethod_A \rightarrow Blocked
因此:
StateChange→DependencyChange→RematchingStateChange \rightarrow DependencyChange \rightarrow Rematching
158.27 对象生命周期
158.27.1 生命周期定义
**对象生命周期(Object Lifecycle)**是指一个Domain Object从创建、初始化、激活、运行、更新、暂停、失效、归档到终止的完整存在过程。
基本形式:
Create→Initialize→Active→Running→Update→Archive→Terminate\boxed{ Create \rightarrow Initialize \rightarrow Active \rightarrow Running \rightarrow Update \rightarrow Archive \rightarrow Terminate }
不同对象可以具有不同生命周期。
158.28 对象生命周期状态
通用生命周期:
LifecycleState∈{Created,Initialized,Active,Running,Paused,Updated,Inactive,Archived,Terminated}LifecycleState\in \{ Created, Initialized, Active, Running, Paused, Updated, Inactive, Archived, Terminated \}
基本转换:
Created→InitializedCreated \rightarrow Initialized Initialized→ActiveInitialized \rightarrow Active Active→RunningActive \rightarrow Running Running→UpdatedRunning \rightarrow Updated Updated→RunningUpdated \rightarrow Running
最终:
Running→Archived→TerminatedRunning \rightarrow Archived \rightarrow Terminated
158.29 生命周期不是对象状态
必须区分:
LifecycleState≠DomainStateLifecycleState \neq DomainState
例如:
CognitiveState=RunningCognitiveState=Running
表示被认知对象所描述的状态。
而:
LifecycleState=ActiveLifecycleState=Active
表示这个Domain Object自身处于激活生命周期。
因此:
ObjectState≠ObjectLifecycleObjectState \neq ObjectLifecycle
158.30 Individual Object生命周期
机器个体生命周期可以定义为:
Modeling→Initialization→Verification→Activation→Runtime→Update→Maintenance→Archive→Termination\boxed{ Modeling \rightarrow Initialization \rightarrow Verification \rightarrow Activation \rightarrow Runtime \rightarrow Update \rightarrow Maintenance \rightarrow Archive \rightarrow Termination }
具体:
现实个体建模
↓
机器个体创建
↓
基础结构初始化
↓
Runtime结构初始化
↓
机器个体验证
↓
机器个体激活
↓
Runtime运行
↓
反馈
↓
学习与更新
↓
重新验证
↓
继续运行
因此:
Individualt→Individualt+1Individual_t \rightarrow Individual_{t+1}
158.31 Cognitive Object生命周期
认知对象生命周期:
Create→Recognize→Build→Update→Invalidate→ArchiveCreate \rightarrow Recognize \rightarrow Build \rightarrow Update \rightarrow Invalidate \rightarrow Archive
例如:
Information→ObjectInformation \rightarrow Object
然后:
Object→Attribute→State→RelationObject \rightarrow Attribute \rightarrow State \rightarrow Relation
当信息失效:
Object→InvalidObject \rightarrow Invalid
但不一定立即删除:
Invalid≠DeletedInvalid\neq Deleted
158.32 Behavior Object生命周期
行为对象生命周期:
Pending→Executing→CompletedPending \rightarrow Executing \rightarrow Completed
或者:
Executing→FailedExecuting \rightarrow Failed
或者:
Executing→Paused→ExecutingExecuting \rightarrow Paused \rightarrow Executing
或者:
Executing→CancelledExecuting \rightarrow Cancelled
因此:
BehaviorLifecycleBehaviorLifecycle
与:
IndividualLifecycleIndividualLifecycle
是不同层次的生命周期。
158.33 Memory Object生命周期
记忆对象:
Created→Valid→UpdatedCreated \rightarrow Valid \rightarrow Updated
也可能:
Valid→InvalidValid \rightarrow Invalid
或者:
Valid→ArchivedValid \rightarrow Archived
例如历史数据不再适用于当前状态时:
MemoryState=InvalidMemoryState=Invalid
但仍可以保留:
HistoryHistory
以支持追溯。
158.34 Maintenance Object生命周期
维护对象生命周期:
Normal→Detecting→Diagnosing→Repairing→Verifying→RecoveredNormal \rightarrow Detecting \rightarrow Diagnosing \rightarrow Repairing \rightarrow Verifying \rightarrow Recovered
风险保护:
Risk→Protection→ControlledRisk \rightarrow Protection \rightarrow Controlled
冲突:
Conflict→Resolution→VerifiedConflict \rightarrow Resolution \rightarrow Verified
因此:
MaintenanceLifecycleMaintenanceLifecycle
具有明显的事件驱动特征。
158.35 生命周期事件
对象生命周期变化由事件触发:
Event→LifecycleTransitionEvent \rightarrow LifecycleTransition
例如:
CreateEvent→CreatedCreateEvent \rightarrow Created InitializeEvent→InitializedInitializeEvent \rightarrow Initialized StartEvent→RunningStartEvent \rightarrow Running FailureEvent→FailedFailureEvent \rightarrow Failed RepairEvent→RecoveringRepairEvent \rightarrow Recovering VerifyEvent→VerifiedVerifyEvent \rightarrow Verified
因此:
ObjectLifecycle=State+Event+Transition+Rule\boxed{ ObjectLifecycle = State+ Event+ Transition+ Rule }
158.36 生命周期与历史
每一次生命周期变化都应该形成历史记录:
Lifecyclet→EventLifecyclet+1Lifecycle_t \xrightarrow{Event} Lifecycle_{t+1}
记录:
History={Before,Event,After,Reason,Time}History= \{ Before, Event, After, Reason, Time \}
例如:
Active
↓
Failure
↓
Failed
↓
Repair
↓
Recovering
↓
Verification
↓
Active
这样机器个体可以知道:
一个对象经历了什么变化。
158.37 五种对象关系的统一模型
现在可以统一:
对象关联
A↔BA\leftrightarrow B
对象组合
A={B,C,D}A=\{B,C,D\}
对象继承
A⊆BA\subseteq B
对象依赖
A→DependsOn→BA\rightarrow DependsOn\rightarrow B
对象生命周期
At→EventAt+1A_t\xrightarrow{Event}A_{t+1}
因此:
ObjectRelation=Association+Composition+Inheritance+Dependency+Lifecycle\boxed{ ObjectRelation= Association+ Composition+ Inheritance+ Dependency+ Lifecycle }
158.38 ICAI对象关系图
完整ICAI对象关系可以表示为:
IndividualObject
│
┌────────────────┼────────────────┐
↓ ↓ ↓
CognitiveObject BehaviorObject MemoryObject
│ │ │
│ │ │
┌─────┼─────┐ ┌────┼─────┐ ┌───┼────┐
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
State Goal Capability Method Decision Action Result Memory Experience
│ │ │ │ │ │
└───────┴───────┴───────┴───────┴──────┘
↓
Feedback
│
↓
IndividualUpdate
MaintenanceObject
│
┌──────────────┼──────────────┐
↓ ↓ ↓
Risk Conflict Anomaly
↓ ↓ ↓
Protection Resolution Diagnosis
↓
Repair
↓
Verification
158.39 对象关系图的核心
ICAI不是:
Object1Object_1 Object2Object_2 Object3Object_3
的简单集合。
而是:
ICAIObjectSystem=(V,E)\boxed{ ICAIObjectSystem= (V,E) }
其中:
V={DomainObjects}V=\{DomainObjects\} E={ObjectRelations}E=\{ObjectRelations\}
因此:
ICAIObjectSystem=Objects+RelationsICAIObjectSystem = Objects+ Relations
158.40 对象关系与Runtime
Runtime中,对象关系不是静态结构,而是动态运行关系。
例如:
Goal→CapabilityGoal \rightarrow Capability
能力状态变化:
Available→UnavailableAvailable \rightarrow Unavailable
导致:
Goal→Capability→MethodGoal \rightarrow Capability \rightarrow Method
重新匹配。
进一步:
Method→DecisionMethod \rightarrow Decision
可能变为:
Decision=BlockedDecision=Blocked
因此:
StateChange→RelationChange→RuntimeChangeStateChange \rightarrow RelationChange \rightarrow RuntimeChange
158.41 对象关系与认知
对象关系是认知形成的基础。
例如:
ObjectA→Relation→ObjectBObject_A \rightarrow Relation \rightarrow Object_B
机器个体由关系获得:
RelationshipKnowledgeRelationshipKnowledge
进一步:
Relation→Scene→KnowledgeRelation \rightarrow Scene \rightarrow Knowledge
因此:
ObjectRelation→CognitionObjectRelation \rightarrow Cognition
158.42 对象关系与行为
行为同样依赖对象关系:
Goal→CapabilityGoal \rightarrow Capability Capability→MethodCapability \rightarrow Method Method→DecisionMethod \rightarrow Decision Decision→BehaviorDecision \rightarrow Behavior
所以:
ObjectRelation→BehaviorFormationObjectRelation \rightarrow BehaviorFormation
如果关系断裂:
CapabilityUnavailableCapabilityUnavailable
则:
Method→BlockedMethod \rightarrow Blocked
最终:
NoValidDecision→NoBehaviorNoValidDecision \rightarrow NoBehavior
158.43 对象关系与记忆
对象关系变化需要被记录:
Rt→Rt+1R_t \rightarrow R_{t+1}
形成:
RelationHistoryRelationHistory
进一步:
RelationChange→MemoryRelationChange \rightarrow Memory
因此:
ObjectRelation→History→MemoryObjectRelation \rightarrow History \rightarrow Memory
158.44 对象关系与维护
维护系统同样建立对象关系:
Risk→TargetObjectRisk \rightarrow TargetObject Protection→RiskProtection \rightarrow Risk Diagnosis→AnomalyDiagnosis \rightarrow Anomaly Repair→TargetObjectRepair \rightarrow TargetObject
形成:
MaintenanceObject→TargetDomainObjectMaintenanceObject \rightarrow TargetDomainObject
因此维护对象不是独立存在,而是直接作用于其他领域对象。
158.45 PHP对象关系表达
ICAI可以在PHP中使用对象引用表达领域对象之间的工程关系:
class CognitiveGoal
{
protected $capabilities = array();
protected $methods = array();
}
能力:
class CognitiveCapability
{
protected $id;
protected $type;
protected $state;
protected $range;
}
方法:
class CognitiveMethod
{
protected $goalId;
protected $capabilities = array();
protected $steps = array();
}
但程序引用只是实现手段:
PHPReferencePHPReference
必须对应:
DomainRelationDomainRelation
否则就会出现:
ProgramStructure≠DomainStructureProgramStructure\neq DomainStructure
158.46 对象关系持久化
对象关系需要独立保存时,可以建立关系表:
individual_object_relations
cognitive_object_relations
cognitive_goal_capabilities
cognitive_goal_methods
cognitive_method_capabilities
cognitive_decision_methods
cognitive_behavior_actions
machine_memory_relations
machine_maintenance_relations
关系数据:
R={SubjectID,RelationType,ObjectID,Direction,Condition,State,Time}R= \{ SubjectID, RelationType, ObjectID, Direction, Condition, State, Time \}
因此:
DomainRelation→Repository→MySQLDomainRelation \rightarrow Repository \rightarrow MySQL
158.47 对象生命周期持久化
生命周期变化也可以记录:
object_lifecycle
object_lifecycle_history
individual_lifecycle_history
cognitive_object_lifecycle
behavior_object_lifecycle
memory_object_lifecycle
maintenance_object_lifecycle
记录:
BeforeStateBeforeState EventEvent AfterStateAfterState ReasonReason TimeTime
形成:
LifecycleHistoryLifecycleHistory
158.48 ICAI对象关系工程层次
最终工程结构:
Theory→DomainObject→ObjectRelation→Lifecycle→Runtime\boxed{ Theory \rightarrow DomainObject \rightarrow ObjectRelation \rightarrow Lifecycle \rightarrow Runtime }
程序结构:
Domain Object
↓
Relation
↓
State
↓
Event
↓
Lifecycle
↓
Runtime
完整架构:
ICAI Theory
↓
Mathematical Model
↓
Logical Model
↓
Domain Object
↓
Object Relation
├── Association
├── Composition
├── Inheritance
├── Dependency
└── Lifecycle
↓
Service
↓
Engine
↓
Repository
↓
MySQL
↓
Runtime Object
158.49 对象关系模型的统一运行公式
建立:
Objectt+Relationt+Conditiont+Eventt→Objectt+1+Relationt+1\boxed{ Object_t + Relation_t + Condition_t + Event_t \rightarrow Object_{t+1} + Relation_{t+1} }
表示对象在运行过程中,关系和状态都会发生变化。
进一步:
Object→Relation→Condition→Event→StateChange→LifecycleChange\boxed{ Object \rightarrow Relation \rightarrow Condition \rightarrow Event \rightarrow StateChange \rightarrow LifecycleChange }
这构成ICAI对象Runtime变化的基础。
158.50 对象关系模型与机器个体形成
第154章建立:
IndividualInitialization→StructureFormation→CognitionFormation→BehaviorFormation→RuntimeFormationIndividualInitialization \rightarrow StructureFormation \rightarrow CognitionFormation \rightarrow BehaviorFormation \rightarrow RuntimeFormation
第155章建立:
TheoryObject→ProgramObjectTheoryObject \rightarrow ProgramObject
第156章建立:
DomainObjectDomainObject
第157章建立:
Theory→Model→DomainObjectTheory \rightarrow Model \rightarrow DomainObject
本章进一步建立:
DomainObject→ObjectRelation→ObjectLifecycle→Runtime\boxed{ DomainObject \rightarrow ObjectRelation \rightarrow ObjectLifecycle \rightarrow Runtime }
因此前面章节形成连续工程链:
Theory→Model→DomainObject→Relation→Lifecycle→Runtime\boxed{ Theory \rightarrow Model \rightarrow DomainObject \rightarrow Relation \rightarrow Lifecycle \rightarrow Runtime }
158.51 本章总结
第158章建立了ICAI对象关系模型。
ICAI对象不是孤立存在的,而是通过五种基本关系形成完整的机器个体对象体系:
Association\boxed{ Association }
表示:
对象之间的连接对象之间的连接 Composition\boxed{ Composition }
表示:
对象内部的组成对象内部的组成 Inheritance\boxed{ Inheritance }
表示:
对象类型之间的继承对象类型之间的继承 Dependency\boxed{ Dependency }
表示:
对象运行所需要的其他对象对象运行所需要的其他对象 Lifecycle\boxed{ Lifecycle }
表示:
对象从创建到终止的存在过程对象从创建到终止的存在过程
五种关系共同形成:
ObjectRelationModel=Association+Composition+Inheritance+Dependency+Lifecycle\boxed{ ObjectRelationModel= Association+ Composition+ Inheritance+ Dependency+ Lifecycle }
在ICAI中,机器个体首先是一个组合对象:
MachineIndividual=Individual+Cognition+Behavior+Memory+MaintenanceMachineIndividual = Individual+ Cognition+ Behavior+ Memory+ Maintenance
然后通过对象关系形成内部运行链:
Need→Goal→Capability→Method→Decision→Behavior→Action→Result→Feedback\boxed{ Need \rightarrow Goal \rightarrow Capability \rightarrow Method \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Result \rightarrow Feedback }
通过维护关系形成:
Risk→Protection\boxed{ Risk \rightarrow Protection } Conflict→Resolution\boxed{ Conflict \rightarrow Resolution } Anomaly→Diagnosis→Repair→Verification\boxed{ Anomaly \rightarrow Diagnosis \rightarrow Repair \rightarrow Verification }
同时,对象关系并不是静态不变的:
ObjectRelationt→Event→ObjectRelationt+1ObjectRelation_t \rightarrow Event \rightarrow ObjectRelation_{t+1}
对象自身也具有生命周期:
Create→Initialize→Active→Running→Update→Archive→Terminate\boxed{ Create \rightarrow Initialize \rightarrow Active \rightarrow Running \rightarrow Update \rightarrow Archive \rightarrow Terminate }
最终形成:
ICAI=DomainObjects+ObjectRelations+ObjectLifecycles+Runtime\boxed{ ICAI = DomainObjects + ObjectRelations + ObjectLifecycles + Runtime }
因此,第158章完成了ICAI面向对象工程中一个非常关键的转换:
孤立对象→对象关系→对象网络→对象生命周期→机器个体Runtime\boxed{ 孤立对象 \rightarrow 对象关系 \rightarrow 对象网络 \rightarrow 对象生命周期 \rightarrow 机器个体Runtime }
由此,ICAI的领域对象不再只是静态Class集合,而开始形成具有结构关系、认知关系、行为关系、依赖关系和生命周期关系的动态机器个体对象系统。