[This is preliminary documentation and is subject to change.]
Assembly: CLARIONLibrary (in CLARIONLibrary.dll) Version: 6.1.0.7 (6.1.0.7)
Syntax
C# |
---|
public static class AgentInitializer |
Remarks
The agent initializer has static "Initialize..." methods that can be used to initialize any of the following internal objects for an agent:
- Drives
- Drive components
- Action rules
- Implicit decision networks
- Associative rules
- Associative memory networks
- Associative episodic memory networks
- Meta-cognitive modules
- Meta-cognitive action rules
- Meta-cognitive decision networks
![]() |
---|
ALL items initialized by this class MUST be committed to the agent (drive, or module) in which they were initialized! Failure to do so WILL result in an error! |
Like the "New..." methods in the World class, the "Initialize..." methods use a factory design pattern for generating functional objects. In other words, a component, returned by an "Initialize..." method, will already exist within an agent when that method returns. This means that internal components are always agent-specific. It is impossible to initialize an internal component and then share that component between multiple agents. This requirement exists for two reasons:
- Allowing agents to share internal components would be an implementation NIGHTMARE
- Conceptually, it makes no sense. It would be like saying that two agents are joined together at the brain
Initializing agent internals using the agent initializer is done using component factories. In general, initializer methods are called using the following convention:
CopyC#
[2] comp = AgentInitializer.Initialize[1]([3], [4], [5]);
- The "name" of the internal (e.g., Drive, ImplicitDecisionNetwork, MetaCognitiveModule, etc.) you wish to initialize
- The type of component desired (e.g., FoodDrive, BPNetwork, GoalSelectionModule, etc.)
- The target agent in whom the internal item is to be initialized
- *The factory that is to be used for initializing the desired component
- *(optional) Any parameters that may be needed in order to initialize the internal component using the factory
![]() |
---|
Developers implementing their own custom internal items (e.g., custom components, drives, etc.) are advised to CLEARLY note in the documentation the exact parameters that are required in order |
Copyright 2011. Nicholas Wilson
Examples

SimplifiedQBPNetwork net = AgentInitializer.InitializeImplicitDecisionNetwork(John, SimplifiedQBPNetwork.Factory);
IRLRule rule = AgentInitializer.InitializeActionRule(John, IRLRule.Factory, SomeAction, IRL_SupportCalculator);
GoalSelectionModule gsm = AgentInitializer.InitializeMetaCognitiveModule(John, GoalSelectionModule.Factory);
FoodDrive foodDrive = AgentInitializer.InitializeDrive(John, FoodDrive.Factory, .5);