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

第158章 ICAI对象关系模型

第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集合,而开始形成具有结构关系、认知关系、行为关系、依赖关系和生命周期关系的动态机器个体对象系统。

Leave a Reply

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